Les booléens

Numérique et sciences informatiques

donnees

Repères historiques

Georges BOOLE (1815-1864) était un mathématicien britannique qui a, entre autres, défini une représentation des opérations logiques à l’aide d’opérations mathématiques. On appelle cette modélisation l’algèbre de Boole et elle est à la base du fonctionnement des ordinateurs et plus généralement de tous les systèmes électroniques.

boole
Georges BOOLE

L'algèbre de Boole : Vrai ou Faux

L’algèbre de Boole est basée sur un ensemble de 2 valeurs, B = {0;1}, sur lequel on définit 3 opérations : ET, OU et NON. Leurs équivalents en anglais, les opérateurs and et or, sont couramment employés.

On appelle booléens les éléments de B.

Ces variables peuvent servir à constituer une information binaire (oui/non, vrai/faux, égal/différent, marche/arrêt, allumé/éteint , …)  ou à décrire l'état physique d'un composant d'un système (alimentation d'un composant, action sur un bouton, ...)

  • La valeur 0 représente l’état physique d’un composant non alimenté, ou ne recevant pas d'action physique.

  • La valeur 1 représente l’état physique d’un composant alimenté.

A la base de tous les circuits actuels (sauf pour l’ordinateur quantique ...) se trouvent des composants nés de la physique quantique : les transistors. Vous pouvez-vous les représenter comme de minuscules interrupteurs. De nos jours, le transistor est tellement miniaturisé que votre ordinateur ou votre téléphone en contient plusieurs milliards sur une simple puce de silicium de la taille de votre ongle!

Les portes logiques

Les opérateurs booléens ont aussi en électronique des portes logiques qui se comportent de la même manière.

booléens booléens
Symbole de la porte logique de a et b et de la porte logique a ou b

On définit ces opérations à l’aide des tableaux ci-dessous, qu’on appelle tables de vérité :

booléens booléens
La table de vérité de a et b et a ou b

Ainsi, l’opérateur booléen and peut être considéré comme étant « les deux propositions sont vraie ».

L’opérateur booléen or quant à lui peut être interprété comme « au moins une des deux propositions est vraie ».

On remarque que a or b est vraie même si les deux sont vraie : on dit que le or est inclusif.

On définit également un opérateur not qui inverse la valeur de l’élément :

booléens booléens
La table de vérité et la porte logique de NON a

Il existe de nombreuses notations pour les opérateurs booléens ; dans la mesure où vous serez très certainement amenés à en rencontrer au hasard de la littérature sur le sujet, en voici quelques-unes des plus courantes :

booléens
Écriture des booléens

Entraînement 1 :

Ouvrir le simulateur de circuits et créer pour chaque opération AND, OR, NOT un circuit électrique illustrant ses propriétés.

Propriétés fondamentales de l’algèbre de Boole

Éléments neutres :

  • 0 est l'élément neutre de la fonction OU : \( a + 0 = a \)
  • 0 est l'élément absorbant de la fonction ET : \( a \cdot 0 = 0 \)
  • 1 est l'élément neutre de la fonction ET : \( a \cdot 1 = a \)
  • 1 est l'élément absorbant de la fonction OU : \( a + 1 = 1 \)

Complémentarité :

  • \( a + \overline{a} = 1 \)
  • \( a \cdot \overline{a} = 0 \)

Commutativité :

  • Produit logique : \( a \cdot b = b \cdot a \)
  • Somme logique : \( a + b = b + a \)

Distributivité :

  • Fonction ET par rapport à la fonction OU : \( a \cdot (b + c) = a \cdot b + a \cdot c \)
  • Fonction OU par rapport à la fonction ET : \( a + (b \cdot c) = (a + b) \cdot (a + c) \)

Absorption :

  • \( a + a \cdot b = a \cdot (1 + b) = a \)

Idempotence :

  • \( a + a = a \)
  • \( a \cdot a = a \)

Associativité :

  • Produit logique : \( a \cdot (b \cdot c) = (a \cdot b) \cdot c = a \cdot b \cdot c \)
  • Somme logique : \( a + (b + c) = (a + b) + c = a + b + c \)

Théorèmes de De Morgan :

  • Premier théorème : \( \overline{a} + \overline{b} = \overline{a \cdot b} \)
  • Deuxième théorème : \( \overline{a} \cdot \overline{b} = \overline{a + b} \)

Entraînement 2 :

Réaliser la table de vérité de A = a + b̅

booléens
A remplir

Entraînement 3 :

Réaliser la table de vérité de B = (ā + b)*c


Entraînement 4 :

Additionner deux bits a et b avec la solution S en gardant la retenue C (care en anglais)

booléens booléens
A remplir

Entraînement 5 :

Démontrer l’égalité de la distributivité de la fonction ET par rapport à la fonction OU : a*(b + c) = a*b + a*c à l’aide des tables de vérité.

booléens
A remplir

Entraînement 5 : Vérification de la distributivité

L’objectif est de démontrer l’égalité de la distributivité de la fonction ET par rapport à la fonction OU : a AND (b OR c) = (a AND b) OR (a AND c), en remplissant une table de vérité.
Utilisez les valeurs possibles pour a, b et c et vérifiez que les deux expressions donnent les mêmes résultats.

Rappel des opérations logiques :

  • ET (AND) : Donne True uniquement si les deux valeurs sont True.
  • OU (OR) : Donne True si au moins une des valeurs est True.

Table de vérité à compléter :

a b c b OR c a AND (b OR c) a AND b a AND c (a AND b) OR (a AND c)
000
001
010
011
100
101
110
111

Entraînement 6 :

Donner le tableau de vérité et l’expression booléenne de ce circuit.

booléens
Circuit

Entraînement 7 : Opérations logiques binaires

Effectuez les opérations logiques suivantes en binaire.
Rappel :
    & : ET logique (1 si les deux bits sont 1, sinon 0)
    | : OU logique (1 si au moins un des bits est 1, sinon 0)

Exemple résolu :

            1100 1101
        &  1010 1010
            ----------
            1000 1000
        

À vous de jouer :

1)

                101 1011
            &   101 0101
                ----------
            

2)

                101 1011
            |   101 0101
                ----------
            

3)

                100 0011
            |   101 0101
                ----------
            

Entraînement 8 : Trouver la Valeur de l'Expression

En utilisant l'ordre de priorité des opérations, calculez la valeur des expressions suivantes.
Consignes : Notez chaque étape intermédiaire pour simplifier les expressions et obtenez la valeur finale.

Rappel de l'ordre de priorité :
  1. ( ) : Parenthèses (prioritaire)
  2. not : Négation logique
  3. and : ET logique
  4. or : OU logique
  5. xor : OU exclusif (priorité la plus basse)

Exemple :

Expression : True or not False and False
Étapes :
  • Évaluez not False : True
  • True and False : False
  • Évaluez True or False : True
  • Résultat final : True

À vous de résoudre les expressions suivantes :

  1. A = True and (not False or True) xor (True and not False)
    Résultat : _______
  2. B = (not False or False) and False xor (True and not False)
    Résultat : _______
  3. C = (not False or True) and False or (False and not False)
    Résultat : _______

Entraînement 9 :

Écrire dans le langage Python une fonction qui représente la table de vérité de la fonction logique ET. Plusieurs solutions sont possible.

Voir une solution


Entraînement 10 :

Écrire dans le langage Python, la fonction non.

Voir une solution


Entraînement 11 :

Écrire dans le langage Python une fonction qui donne la table de vérité de OU.

Voir une solution


Entraînement 12 :

Écrire dans le langage Python une fonction qui donne la table de vérité de XOR le ou exclusif : (a and not b) or (not a and b), à l’aide des opérations usuelles sur les entiers..

booléens booléens
Porte logique OU exclusif et sa table de vérité
Remarques :

Python et C++ évaluent les expressions logiques de manière paresseuses (on parle de lazy évaluation). Les opérateurs sont de type court-circuit :

    OR n’évalue le deuxième argument que si le premier est faux.
    AND n’évalue le deuxième argument si le premier est vrai.


Savoir faire

  • Dresser la table d'une expression booléenne avec les opérateurs booléens : and, or, not et xor.
  • Comprendre le caractère séquentiel de certains opérateurs booléens.

Fiche de cours