Question

J'ai besoin d'aide avec cette implication booléenne.

Quelqu'un peut-il expliquer comment cela fonctionne en termes simples:

A implique B = B + A ' (si A alors B). Également équivalent à A > = B

Était-ce utile?

La solution

Implication booléenne A implique que B signifie simplement "si A est vrai, alors B doit être vrai". Cela implique (pun jeu voulu) que si A n'est pas vrai, alors B peut être n'importe quoi. Ainsi:

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

Cela peut également être lu comme (pas A) ou B - c.-à-d. "soit A est faux, soit B doit être vrai".

Autres conseils

Voici comment j'y pense:

if(A)
  return B;
else
  return True;

si A est vrai, alors b est pertinent et doit être coché, sinon ignorez B et retournez vrai.

Je pense que je vois d'où vient Serge et je vais essayer d'expliquer la différence. C'est trop long pour un commentaire, je vais donc le poster en guise de réponse.

Serge semble aborder cette question du point de vue de la question de savoir si l’implication s’applique ou non. Cela ressemble un peu à un scientifique qui tente de déterminer la relation entre deux événements. Considérez l'histoire suivante:

  

Un scientifique se rend dans quatre pays différents à des dates différentes. Dans chaque pays, elle veut déterminer si la pluie implique que les gens utilisent des parapluies. Elle génère la table de vérité suivante:

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

Dans ce qui précède, la scientifique ne connaît pas la relation entre la pluie et les parapluies et elle essaie de déterminer en quoi elle consiste. C’est seulement l’un des jours dans l’un des pays qui peut définitivement affirmer que cela n’est pas la bonne relation.

De même, il semble que Serge essaie de vérifier si A = & B; il ne peut le déterminer que dans un cas.

Cependant, lorsque nous évaluons la logique booléenne, nous connaissons la relation à l’avance et souhaitons vérifier si cette relation a été respectée. Une autre histoire:

  

Une mère dit à son fils "Si tu te salistes, prends un bain" (sale = > bath). Quatre jours différents, lorsque la mère rentre du travail à la maison, elle vérifie si la règle a été suivie. Elle génère la table de vérité suivante:

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 mère a défini la règle à l'avance. Elle sait quelle est la relation entre la saleté et les bains et elle veut s’assurer que la règle est suivie.

Lorsque nous travaillons avec la logique booléenne, nous sommes comme la mère: nous connaissons les opérateurs à l’avance et nous souhaitons utiliser la déclaration sous cette forme. Peut-être voudrions-nous transformer l'énoncé sous une forme différente (comme dans la question initiale, il ou elle voulait savoir si deux énoncés étaient équivalents). En programmation informatique, nous souhaitons souvent brancher un ensemble de variables dans l’instruction et voir si l’intégralité de l’instruction est vraie ou fausse.

Ce n’est pas une question de savoir si implique s’applique - cela n’aurait pas été écrit là-bas si ce n’était pas le cas. Les tables de vérité ne servent pas à déterminer si une règle s'applique, mais à déterminer si une règle a été respectée.

J'aime utiliser l'exemple suivant: s'il pleut, le ciel est nuageux.

Raining => Cloudy

Contrairement à ce que beaucoup de débutants pourraient penser, cela ne signifie nullement que la pluie cause des nuages ??ou que les nuages ??causent des pluies. ÉDITER: Cela signifie simplement que, pour le moment , il n'est pas à la fois pluvieux et nuageux. Voir mon récent blog sur les implications matérielles. ici , je développe, entre autres choses, une justification de la "définition" habituelle Le lecteur devra être familiarisé avec les méthodes de base de la preuve, par exemple la preuve directe et la preuve par contradiction.)

~[Raining & ~Cloudy]

À en juger par les tables de vérité, il est possible de déduire la valeur de a = > b uniquement pour a = 1 et b = 0. Dans ce cas, la valeur de a = > b est 0. Pour le reste des valeurs (a, b), la valeur de a = > b est indéfinie: both (a = > b) = 0 (& a; ne signifie pas b ") et (a = > b) = 1 (" a implique b ") sont possibles:

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 .

Pour que b implique b, il est nécessaire et suffisant que b = 1 toujours lorsque a = 1, de sorte qu’il n’y ait pas de contre-exemple lorsque a = 1 et b = 0. Pour les lignes 1, 2 et 4 de la table de vérité, on ne sait pas s'il existe un contre-exemple: ces lignes ne sont pas en contradiction avec (a = > b) = 1, mais elles ne prouvent pas non plus (a = > b) = 1. En revanche, la ligne 3 invalide immédiatement (a = > b) = 1 car elle fournit un contre-exemple lorsque a = 1 et b = 0. Je suppose que certains lecteurs sont choqués par ces explications, mais il semble qu’il existe de graves erreurs quelque part dans la base de la logique enseignée, et c’est l’une des raisons pour lesquelles des problèmes tels que la satisfaction booléenne n’a pas encore été résolu.

La meilleure contribution à cette question est celle de Serge Rogatch.

La logique booléenne ne s'applique que lorsque le résultat de la quantification (ou de l'évaluation) est vrai ou faux et que la relation entre les propositions de la logique booléenne est basée sur ce fait.

Il doit donc exister une relation ou un lien entre les propositions.

Dans la logique d’ordre supérieur, la relation n’est pas simplement un cas d’activation / désactivation, 1/0 ou + tension / tension, l’évaluation d’une proposition formulée est plus complexe. Si aucune relation n'existe entre les propositions formulées, l'implication de propositions libellées n'est pas équivalente à des propositions de logique booléenne.

Bien que la table de vérité d'implication produise toujours des résultats corrects pour les propositions binaires, il n'en va pas de même pour les propositions formulées qui peuvent ne pas être liées du tout.

~ Table de vérité A V B:

A B Résultat / Evaluation

1 1 1

1 0 0

0 1 1

0 0 1

Proposition formulée A: La lune est faite de crème sure.
Proposition formulée B: Demain je gagnerai le loto.

A B Résultat / Evaluation

1? ?

Comme vous pouvez le constater, dans ce cas, vous ne pouvez même pas déterminer l’état de B qui déterminera le résultat. Est-ce que cela a du sens maintenant?

Dans cette table de vérité, la proposition ~ A est toujours évaluée à 1; par conséquent, les deux dernières lignes ne s'appliquent pas. Cependant, les deux dernières lignes s'appliquent toujours dans la logique booléenne.

http://thenewcalculus.weebly.com

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top