Avez-vous soif ?
Au cours d'une journée, vous prenez des décisions logiques sans avoir à vous livrer à de grandes réflexions. Vous avez soif, vous buvez un verre
d'eau. Vous voulez sortir, il pleut, vous prenez votre parapluie. C'est évident. Mais, si vous aviez pris votre parapluie parce que vous aviez
soif, vous êtes illogique, ou pour le moins farfelu.
Eat at Joe
C'est parfois plus compliqué : par exemple, vous iriez bien ce soir au petit restau pas très loin de chez vous, mais, allez-vous avoir assez
d'argent pour finir le mois si vous vous payez cette folie ? À moins que votre meilleur(e) ami(e) vous invite comme il ou elle l'a vaguement promis
il y a quelques jours...
Évidemment, ce n'est pas encore très compliqué. Mais vous imaginez bien que des situations beaucoup plus complexes peuvent survenir. En règle
générale, arrivé à un certain degré de complexité et souvent parce qu'on n'a pas toutes les informations à disposition, on se fie à nos
intuitions ou à nos envies.
George Boole
Un certain George Boole a beaucoup oeuvré pour formaliser ces démarches logiques dans le but de faciliter les démonstrations philosophiques.
Pour cela, il a forgé des concepts très originaux dits "algèbre de Boole". Cette branche des mathématiques a surtout servi, un siècle plus tard,
à la conception et au fonctionnement des ordinateurs...
En effet, être farfelues, ce n'est pas vraiment ce que l'on va demander à nos machines la plupart du temps. Il va falloir y injecter de la
logique d'une manière ou d'une autre. Et George Boole va nous y aider.
Voyons de plus près de quoi il s'agit.
Revenons à notre soif et à notre verre d'eau. L'énoncé du problème est SI j'ai soif ALORS je bois un verre d'eau. D'une façon plus générale,
cela peut s'énoncer "
SI événement ALORS action" ou encore "
SI A ALORS S". Ceci sous-entend que A est soit vrai, soit faux
(J'ai soif ou je n'ai pas soif) est qu'en conclusion (en sortie, dirons-nous) S sera vrai ou faux également.
Pour Boole, il s'agit de la fonction
OUI pour laquelle A implique S, ce que Boole dans son algèbre bien à lui va écrire
A = S. Et pour bien fixer les idées, il va même nous offrir un tableau très clair appelé table de vérité :
Hé oui, on retrouve ici par un heureux hasard les chiffres 0 et 1 de la notation binaire. Pour Boole, 0 correspond à
FAUX et 1 correspond à
VRAI. Et toute sa logique va reposer sur les différentes combinaisons de ces deux valeurs uniquement.
Le tableau s'interprète alors très simplement. Première ligne : si A est faux, il vaut 0 (Je n'ai pas soif), alors S est faux et vaut 0 également
(je ne bois pas de verre d'eau). Et seconde ligne : si A est vrai, il vaut 1 (j'ai soif), alors S est vrai, il vaut 1 (je bois un verre d'eau).
Bon, jusque-là, il n'y a pas de raison que vous soyez perdu. Alors on va compliquer un peu avec la question suivante : allez-vous prendre
votre parapluie ?
D'abord, avez-vous envie d'aller vous promener ? Appelons cette envie l'événement A. Ensuite, est-ce qu'il pleut ? Appelons ça événement B.
Allez-vous alors prendre votre parapluie ? Appelons ça la conclusion S (S pour sortie, ça tombe bien). Et affichons directement la table de
vérité :
A
|
B
|
S
|
0
|
0
|
0
|
0
|
1
|
0
|
1
|
0
|
0
|
1
|
1
|
1
|
C'est évident, non ? Vous ne prendrez votre parapluie que si vous sortez ET qu'il pleut, ce qui est le cas pour la quatrième ligne. Dans tous
les autres cas, soit vous ne sortez pas (lignes 1 et 2) soit vous sortez et il ne pleut pas (ligne 3) et dans ces trois cas, vous ne prenez
pas votre parapluie.
Pour Boole, il s'agit de la fonction
ET qui n'est vraie que si les deux événements A ET B sont vrais. George Boole va noter cette fonction
A . B = S. On utilise également la notation
A ∨ B = S.
Ah oui, et ce restaurant au fait ? Avez-vous assez d'argent pour finir le mois (A), est-ce que votre ami(e) vous a invité (B)? Quelle valeur va
avoir l'action "aller au restaurant" (S). Une table de vérité s'impose :
A
|
B
|
S
|
0
|
0
|
0
|
0
|
1
|
1
|
1
|
0
|
1
|
1
|
1
|
1
|
En résumé, si vous avez assez d'argent OU si votre ami(e) vous invite, vous allez au restaurant. Pour George Boole, il s'agit de la fonction
OU
qu'il va noter
A + B = S. On utilise également la notation
A ∧ B = S.
Vous noterez au passage que ce OU n'est pas exclusif, autrement dit, si vous avez assez d'argent et que votre ami(e) vous invite, vous allez quand
même aller au restaurant. Quant à savoir qui va payer l'addition, c'est une autre histoire.
Ce n'est pas le même OU que celui que vous allez trouver sur le menu : Fromage OU Dessert. Là, le OU s'entend comme "ou bien", c'est l'un ou
l'autre, mais pas les deux. En algèbre de Boole, on appelle ça
OU EXCLUSIF, et ça donne cette table :
A
|
B
|
S
|
0
|
0
|
0
|
0
|
1
|
1
|
1
|
0
|
1
|
1
|
1
|
0
|
Selon votre commande, fromage (A) ou dessert (B) le serveur vous portera ce que vous avez choisi (S) sauf si vous ne commandez rien (première
ligne) ou si vous commandez les deux (quatrième ligne).
Bon, sans doute qu'avec un petit supplément ça pourra s'arranger. En attendant, sachez que la formule du
OU EXCLUSIF s'écrit
A ⊕ B = S.
Maintenant, vous allez rentrer chez vous, mais, évidemment, vous n'avez pas pris votre parapluie et s'il pleut, vous allez vous mouiller !
Si l'événement "il pleut" est noté A, l'événement "il ne pleut pas" sera alors noté NON A ou un A surmonté d'une barre comme
ceci :
A, ce qui est plus simple. L'action de se mouiller est notée S comme à notre
habitude, la formule s'écrit donc
A = S et la table de vérité de la fonction
NON s'écrit :
En clair, si l'événement "il ne pleut pas" est faux, c'est qu'il pleut et donc il est vrai que vous allez vous mouiller. Et si "il ne pleut pas"
est vrai, il est faux que vous allez vous mouiller.
De quoi se faire des noeuds au cerveau si les choses se compliquent un peu plus, non ? C'est pourquoi, on verra par la suite qu'utiliser la
logique booléenne dans des cas complexes peut simplifier beaucoup de choses, mais que, quand on code, on peut à peu près se contenter de ce
qu'on vient de voir ici dans la grande majorité des cas.
Ajoutons quand même à notre collection la table de vérité pour l'opérateur NON ET (l'inverse de ET), qui, comme on le verra bientôt, se
révélera très utile pour fabriquer les microprocesseurs, pièces essentielles au fonctionnement de nos ordinateurs.
A
|
B
|
S
|
0
|
0
|
1
|
0
|
1
|
1
|
1
|
0
|
1
|
1
|
1
|
0
|
Par exemple, si vous avez assez d'argent pour vous payer le restau et que votre meilleur(e) ami(e) vous invite (A) et que votre voisin(e) à la
même idée (B), si on ajoute à ça qu'ils ne peuvent pas se voir, vous allez refuser sous un prétexte quelconque pour ne vexer personne (ligne 4).
Dans tous les autres cas, vous irez chez "Joe". Et cela s'écrit
A.B = S.
***
Voilà. Il est temps maintenant de rendre hommage à Georges Boole qui a bien du mérite. Il est né le 2 novembre 1815 à Lincoln (Royaume-Uni). Ses parents
étant peu fortunés, il n'a pas pu étudier dans des écoles prestigieuses, mais il a eu la volonté d'apprendre pratiquement seul plusieurs langues
et a pu être initié aux mathématiques par son père, un cordonnier passionné par les sciences.
Il deviendra enseignant et publiera des articles et des mémoires de mathématiques, notamment en 1847 son "
Mathematical Analysis of Logic",
puis "
An Investigation Into the Laws of Thought, on Which are Founded the Mathematical Theories of Logic and Probabilities" en 1854.
C'est à cette occasion qu'il développera son algèbre.
Il est mort assez jeune dans des circonstances plutôt illogiques. Après avoir marché sous la pluie pendant deux heures pour assurer ses cours, il est
rentré chez lui malade. Son épouse, croyant le soigner, l'a copieusement aspergé d'eau glacée, suivant en cela la mode stupide de l'époque
consistant à croire que l'on peut guérir le mal par le mal (merci Samuel Hahnemann)... Il meurt d'une pneumonie le 8 décembre 1864.
C'est peut-être pour ça que, pour faire comprendre la logique booléenne, on prend souvent pour exemple des histoires de mauvais temps et de
parapluie. Une façon de lui rendre hommage sans doute.