Pregunta

Necesito ayuda con esta implicación booleana.

¿Alguien puede explicar cómo funciona esto en términos simples:

A implica B = B + A ' (si A entonces B). También equivalente a A > = B

¿Fue útil?

Solución

Implicación booleana A implica B simplemente significa "si A es verdadero, entonces B debe ser verdadero". Esto implica (juego de palabras) que si A no es cierto, entonces B puede ser cualquier cosa. Por lo tanto:

False implies False -> True
False implies True  -> True
True  implies False -> False
True  implies True  -> True

Esto también se puede leer como (no A) o B , es decir, "A es falso o B debe ser verdadero".

Otros consejos

Así es como lo pienso:

if(A)
  return B;
else
  return True;

si A es verdadero, entonces b es relevante y debe verificarse; de ??lo contrario, ignore B y devuelva verdadero.

Creo que veo de dónde viene Serge, e intentaré explicar la diferencia. Esto es demasiado largo para un comentario, así que lo publicaré como respuesta.

Serge parece estar abordando esto desde la perspectiva de cuestionar si la implicación se aplica o no. Esto es algo así como un científico tratando de determinar la relación entre dos eventos. Considere la siguiente historia:

  

Un científico visita cuatro países diferentes en cuatro días diferentes. En cada país, ella quiere determinar si la lluvia implica que las personas usarán paraguas. Ella genera la siguiente tabla de verdad:

Did it rain?  Did people      Does rain => umbrellas?  Comment
              use umbrellas?  
No            No              ??                       It didn't rain, so I didn't get to observe
No            Yes             ??                       People were shielding themselves from the hot sun; I don't know what they would do in the rain
Yes           No              No                       Perhaps the local government banned umbrellas and nobody can use them. There is definitely no implication here.
Yes           Yes             ??                       Perhaps these people use umbrellas no matter what weather it is

En lo anterior, el científico no conoce la relación entre la lluvia y los paraguas y está tratando de determinar qué es. Solo en uno de los días en uno de los países puede decir definitivamente que eso implica que no es la relación correcta.

Del mismo modo, parece que Serge está tratando de probar si A = > B, y solo es capaz de determinarlo en un caso.

Sin embargo, cuando evaluamos la lógica booleana, conocemos la relación con anticipación y queremos comprobar si la relación se cumplió. Otra historia:

  

Una madre le dice a su hijo: "Si te ensucias, toma un baño". (sucio = > baño). En cuatro días separados, cuando la madre llega a casa del trabajo, verifica si se siguió la regla. Ella genera la siguiente tabla de verdad:

Get dirty?   Take a bath?   Follow rule?   Comment
No           No             Yes            Son didn't get dirty, so didn't need to take a bath. Give him a cookie.
No           Yes            Yes            Son didn't need to take a bath, but wanted to anyway. Extra clean! Give him a cookie.
Yes          No             No             Son didn't follow the rule. No cookie and no TV tonight.
Yes          Yes            Yes            He took a bath to clean up after getting dirty. Give him a cookie.

La madre ha establecido la regla con anticipación. Ella sabe cuál es la relación entre la suciedad y los baños, y quiere asegurarse de que se cumpla la regla.

Cuando trabajamos con lógica booleana, somos como la madre: conocemos los operadores con anticipación y queremos trabajar con la declaración en esa forma. Tal vez queremos transformar la declaración en una forma diferente (como era la pregunta original, él o ella quería saber si dos declaraciones son equivalentes). En la programación de computadoras, a menudo queremos conectar un conjunto de variables en la declaración y ver si la declaración completa se evalúa como verdadera o falsa.

No es una cuestión de saber si las implicaciones se aplican, no se habría escrito allí si no fuera así. Las tablas de verdad no tratan de determinar si una regla se aplica, sino de determinar si se cumplió una regla.

Me gusta usar el ejemplo: si está lloviendo, entonces está nublado.

Raining => Cloudy

Al contrario de lo que muchos principiantes podrían pensar, esto de ninguna manera sugiere que la lluvia cause nubosidad, o que la nubosidad cause lluvia. ( EDITAR: solo significa que, en este momento , no está lloviendo y no nublado. Vea mi reciente publicación de blog sobre implicación material aquí . Allí desarrollo, entre otras cosas, una justificación de la habitual " definición " para implicación material. El lector requerirá cierta familiaridad con los métodos básicos de prueba, por ejemplo, prueba directa y prueba por contradicción.

~[Raining & ~Cloudy]

A juzgar por las tablas de verdad, es posible inferir el valor de a = > b solo para a = 1 y b = 0. En este caso, el valor de a = > b es 0. Para el resto de los valores (a, b), el valor de a = > b no está definido: ambos (a = > b) = 0 (" a no implica b ") y (a = > b) = 1 (" a implica b ") son posibles:

a b a=>b comment
0 0  ?   it is not possible to infer whether a implies b because a=0
0 1  ?   --"--
1 0  0   b is 0 when a is 1, so it is possible to conclude
         that a does not imply b
1 1  ?   whether a implies b is undefined because it is not known
         whether b can be 0 when a=1 .

Para que a implique b es necesario y suficiente que b = 1 siempre que a = 1, de modo que no haya un contraejemplo cuando a = 1 y b = 0. Para las filas 1, 2 y 4 en la tabla de verdad no se sabe si hay un contraejemplo: estas filas no se contradicen con (a = > b) = 1, pero tampoco prueban (a = > b) = 1. Por el contrario, la fila 3 refuta de inmediato (a = > b) = 1 porque proporciona un contraejemplo cuando a = 1 y b = 0. Supongo que puedo sorprender a algunos lectores con estas explicaciones, pero parece que hay errores graves en alguna parte de los aspectos básicos de la lógica que se nos enseña, y esa es una de las razones por las que problemas como la Satisfacción booleana aún no se han resuelto.

Serge Rogatch da la mejor contribución a esta pregunta.

La lógica booleana se aplica solo cuando el resultado de la cuantificación (o evaluación) es verdadero o falso y la relación entre las proposiciones de la lógica booleana se basa en este hecho.

Por lo tanto, debe existir una relación o conexión entre las proposiciones.

En la lógica de orden superior, la relación no es solo un caso de encendido / apagado, 1/0 o + voltaje / voltaje, la evaluación de una propuesta redactada es más compleja. Si no existe una relación entre las proposiciones redactadas, entonces la implicación para las proposiciones redactadas no es equivalente a las proposiciones lógicas booleanas.

Si bien la tabla de verdad de implicaciones siempre arroja resultados correctos para proposiciones binarias, este no es el caso con proposiciones redactadas que pueden no estar relacionadas de ninguna manera.

~ Tabla de verdad A V B:

A B Resultado / Evaluación

1 1 1

1 0 0

0 1 1

0 0 1

Propuesta redactada A: La luna está hecha de crema agria.
Propuesta B redactada: Mañana ganaré la lotería.

A B Resultado / Evaluación

1? ?

Como puede ver, en este caso, ni siquiera puede determinar el estado de B que decidirá el resultado. ¿Tiene sentido ahora?

En esta tabla de verdad, la proposición ~ A siempre se evalúa como 1, por lo tanto, las dos últimas filas no se aplican. Sin embargo, las dos últimas filas siempre se aplican en lógica booleana.

http://thenewcalculus.weebly.com

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top