La traduction des raisonnements logiques par des opérations algébriques proposée par le mathématicien George Boole est un des fondements de l’informatique.
I. L’algèbre de Boole
1) Rappels historiques
À partir de 1847, le Britannique George Boole propose un mode de calcul permettant de traduire des raisonnements logiques par des opérations algébriques.
Il crée ainsi une branche des mathématiques qui définit des opérations dans un ensemble qui ne contient que deux éléments notés 0 et 1, ou bien Faux et Vrai (lien avec la logique), ou bien Ouvert et Fermé (lien avec l’électronique) ou encore en Python False et True.
En 1938, l’Américain Claude Shannon prouve que des circuits électriques peuvent résoudre tous les problèmes que l’algèbre de Boole peut résoudre. Avec les travaux d’Alan Turing de 1936, cela constitue les fondements de ce qui deviendra l’informatique.
2) Les opérations fondamentales
Les opérations fondamentales de l’algèbre de Boole ne sont plus l’addition et la multiplication des entiers mais :
- la conjonction, notée &, ∧ ou · et lue « et » ;
- la disjonction, notée |, ∨ ou + et lue « ou » ;
- la négation, notée ~, ¬ ou – et lue « non ».
Ces opérations fondamentales sont des exemples de fonctions logiques.
Mot clé
Une table de vérité récapitule dans un tableau les valeurs de vérité de la sortie en fonction des valeurs de vérité des entrées.
Puisque l’algèbre de Boole ne contient que deux éléments, pour chacune de ces fonctions, on peut étudier tous les cas possibles et les regrouper dans un tableau appelé table de vérité.
On représente souvent les opérateurs booléens à l’aide de portes logiques qui représentent à la fois la fonction logique qui lui est associée et le circuit électronique de la machine qui laisse passer le courant (Vrai) ou non (Faux) selon que le courant y entre ou non. Le calcul booléen permet donc d’utiliser la puissance du calcul algébrique pour régler des problèmes de logique et se traduit sur machine par des composants électroniques.
Dans toute la suite, x et y dénoteront des booléens (ou valeurs de vérité d’une algèbre de Boole) quelconques, F désignera Faux et V désignera Vrai.
La conjonction (et, and) est l’opération définie par : x & F = F et x & V = x.
La disjonction est l’opération définie par : x | V = V et x | F = x.
La négation est l’opération définie par :
~V = F et
~F = V.
II. En Python
Les booléens V et F se notent True et False mais aussi 1 et 0.
Les opérateurs sont or (disjonction), and (conjonction) et not (négation) :
L’opérateur == permet de tester si deux références contiennent les mêmes valeurs en renvoyant un booléen.