Ok

En poursuivant votre navigation sur ce site, vous acceptez l'utilisation de cookies. Ces derniers assurent le bon fonctionnement de nos services. En savoir plus.

26/03/2011

Algèbre de Boole

 

Algèbre de Boole

Source : http://www.arcanapercipio.com/lessons/algebre_de_boole/al...

LIVRES : cliquez ici

EC @ V.2008
Aucune base requise
ALGÈBRE BINAIREANDCOMPLÉMENTATIONDIAGRAMME DE KARNAUGH.FONCTION BOOLÉENNEFONCTION LOGIQUEFORME CANONIQUE CONJONCTIVEFORME CANONIQUE DISJONCTIVEIDEMPOTENCE.MAXTERMESMINTERMESNANDNORNOTORPRINCIPE DE DUALITÉ.PRODUIT LOGIQUESOMME LOGIQUETABLE DE VÉRITÉTHÉORÈMES DE MORGANVARIABLE BOOLÉENNEVARIABLE LOGIQUEXNORXOR.

 

Alors voilà...

"Une proposition peut être vraie OU fausse, mais ne peut pas être vraie ET fausse".

Non, non, et non, cette phrase n'est pas extraite des Mémoires du Seigneur de la Palice. Cette dépotante évidence est signée... Aristote [~384~322] !
Et oui ! Parfaitement, M'sieurs Dames ! De la Logique aristotélicienne ! De la Sagesse 100% grecque ! De la vraie Philosophie péripatéticienne et deux fois millénaire... Un minimum de respect, donc.

Comment ça, "vérité de comptoir" ? Douteriez-vous du très haut intérêt de ce genre de désarmante tautologie ? Et pourtant ! Avec sa jugeote pour seul diplôme, un certain George Boole a bâti sur ce truisme les axiomes d'une algèbre assez révolutionnaire dont les théories, lorsqu'elles se marieront aux technologies de l'électronique près d'un siècle plus tard, donneront naissance à une machine assez prometteuse appelée ordinateur.

Truisme, axiomes, tautologie... No panic ! L'algèbre de Boole, quand on saitla prendre, est d'une logique déconcertante. Nul besoin, donc, à l'évocation de Boole, de flipper.

Arcana Percipio vous propose aujourd'hui un circuit touristique inédit, un voyage initiatique depuis les Mathématiques les plus abstraites jusqu'aux tripes électroniques de votre puce préférée.
Allez, roule Boole !

L'algèbre booléenne

Boole, qui est-ce ?

George Boole nait en 1815 à Lincoln, Angleterre.
A ses débuts, le petit Boole verse plutôt dans le Latin, son premier amour, et c'est plus âgé qu'il se tourne vers les Mathématiques. Totalement autodidacte, son étude sur les équations différentielles lui vaut une chaire à l'université de Cork.

En 1854, sa publication "An investigation into the Laws of Thought, on Which are founded the Mathematical Theories of Logic and Probabilities" parvient à marier de manière éclatante les mathématiques à la logique, discipline qu'il arrache de fait aux philosophes de l'époque.

Honoré à Oxford, Boole devient membre de la "Royal Society" la même année, mais meurt précocement, en 1864, des suites des théories de Madame Boole sur la meilleure manière de guérir une grippe.

Les lois de la pensée

Pour un non-cartésien comme l'auteur de cette page, le meilleur moyen d'approcher Boole, c'est encore de l'attaquer par derrière, l'air de rien, en faisant mine de s'amuser avec quelques dessins. Quels dessins ? Des dessins de parties, ou pour parler doctoralement, de sous-ensembles. Nous allons donc procéder de la sorte, entremêlant de façon parfaitement naïve algèbre de Boole et théorie des ensembles.
Normalement, ça ne fait pas mal.

Les parties de Boole

A la source de l'inspiration de Boole, l'intime conviction que l'algèbre traditionnelle, celle qu'il baptise lui-même "l'algèbre d'école", n'est rien d'autre que l'application aux nombres de schémas de pensée plus fondamentaux par lesquels l'esprit humain manipule, combine et redéfinit ses concepts logiques (que Boole appelle classes) selon les lois immuables de la pensée ("the laws of thought").

De manière fort simple, nous pourrions définir une classe comme l'ensemble de tous les éléments partageant un même nom ou une même caractéristique, comme par exemple "les êtres humains", "les rivières""les cornets à piston", "les jours de grève à la SNCF", etc.

Ceci convenu, en imaginant deux classes A et B quelconques, Boole définit trois opérations fondamentales de l'esprit susceptible de s'exercer sur elles:

Bêtes deux sommes

Attention ! Bien que leur nom et leur symbole nous y poussent, ne confondons pas la somme et le produit logiques avec la somme et le produit arithmétiques, tels que nous les connaissons. Les premiers s'exercent sur des classes, les seconds sur des nombres.

    • Le PRODUIT LOGIQUE (logical product), que nous noterions A x B (ou A . B, ou encore AB), définissant la classe des éléments obéissant simultanément aux définition des classes A et B;

Produit de première urgence

En absence de toute parenthèses explicites, le produit logique est prioritaire sur la somme logique.
Ainsi, (A.B)+C peut donc également s'écrire A.B+C.

  • La SOMME LOGIQUE (logical sum), que nous noterions A + B, définissant la classe des éléments obéissant à l'une ou l'autre des définitions des classes A et B;
  • La COMPLÉMENTATION (negation), que nous noterions A (ou B), définissant la classe des éléments n'obéissant pas à la définition de la classe A (ou B).

 

Mais ne nous emballons pas et appuyons-nous pour continuer sur l'exemple des deux classes suivantes:

  • La classe A définie comme "les chasseurs",
  • La classe B définie comme "les myopes".

Partant de ces deux simples définitions, nous pouvons très facilement, par le jeu de notre seule pensée, définir quatre autres classes:

  • La classe A.B définie comme "les chasseurs myopes",
  • La classe A+B définie comme "les chasseurs et les myopes".
  • La classe A définie comme "les non-chasseurs",
  • La classe B définie comme "les non-myopes".

Il existe un moyen très visuel de traduire ces concepts un peu abstraits: il consiste à considérer les classes de Boole comme des ensembles. Dès lors, les opérations fondamentales de Boole prennent des noms plus familiers à nos souvenirs scolaires:

  • La somme logique de deux classes se traduit par l'union (∪) entre les deux ensembles correspondants,
  • Le produit logique par l'intersection (∩),
  • La complémententation par... le complément.
     
Représentation graphique des opérateurs booléens de base (diagramme dit d'Euler-Venn).

Survolez les différentes classes ou expressions afin de visualiser leur équivalent graphique.

Comme nous manipulons ici des ensembles plutôt que des classes, nous prendrons la précaution préalable de définir E comme l'ensemble référentiel, celui contenant tous les autres.

Les évidences booléennes

Avec un poil de curiosité mathématique, nous pourrions facilement constater que ces opérations fondamentales obéissent à quelques propriétés plus ou moins classiques mais si foncièrement évidentes qu'indémontrables.
Ce sont les axiomes de l'algèbre booléenne.

L'ABC de la chasseAinsi, en reprenant nos deux classes exemples A ("les chasseurs") et B ("les myopes") et en y ajoutant pour l'occasion une troisième classe C définie comme "les buveurs excessifs", on ne peut nier que:

Avec un effort de curiosité supplémentaire, nous pourrions même sans trop de problème imaginer l'existence de deux classes "remarquables", notons les "0" et "1" qui, quelle que soit la classe A, vérifieraient toujours:

  • A + 0 = A
    Dans l'esprit de Boole, cet élément 0 correspondait à une sorte de classe impossible, mais sur nos petits dessins à nous, on l'assimilera à l'élément vide {Ø}.
  • A . 1 = A
    Pour Boole, cet élément 1 symbolisait la classe universelle, un espèce de grand Tout. Moins ambitieux, nous l'assimilerons sur nos dessins à E, la totalité du référentiel.

Un bon mathématicien dirait alors de 0 et 1 qu'ils sont éléments neutres: 0 à l'égard de la somme logique (+), et 1 à l'égard du produit logique (.).
Et le lascar en profiterait sans doute pour pour nous asséner un dernier axiome bien senti, tout aussi évident que les autres, qu'il appellerait axiome de la complémentation et qui dirait, de manière bien moins poétique qu'Aristote, que:

  • A + A = 1, également appelé "loi du tiers exclu",
  • A . A = 0, également appelé "principe de contradiction".

Comme pour nous rassurer, ces cinq axiomes fondamentaux de l'algèbre de Boole sont tous confirmés par nos modestes petits dessins. Nous verrons par la suite pourquoi ceci (nos dessins) explique si bien cela (l'algèbre de Boole).

Bon ! Maintenant, quelques minutes d'intense phosphorage neuronal...
Ça risque de secouer un brin...

Les théorèmes de l'algèbre booléenne

A partir des lois booléennes fondamentales et évidentes que nous venons de détailler, il est tout à fait possible, à l'aide de raisonnements logiques appelés démonstrations, d'établir quelques autres propositions utiles que nous appellerons théorèmes de l'algèbre de Boole:

    • Théorème de l'unicité du complément: pour toute classe A, il existe une et une seule classe A telle que:
      A + A = 1 et A . A = 0
Démonstration
    • Théorème de l'IDEMPOTENCE (idempotency): pour toute classe A, on a A + A = A et A . A = A.
      Boole appelait "loi fondamentale de la pensée" cette déstabilisante égalité A² = A.
Démonstration
    • Unicité des compléments des constantes 0 et 1: 0 = 1 et 1 = 0
    • Théorèmes des éléments absorbantsA + 1 = 1 et A . 0 = 0
Démonstration
Démonstration
Démonstration

Ajoutons à cette liste deux théorèmes importants, dits THÉORÈMES DE MORGAN, fruits des travaux du mathématicien anglais Augustus de Morgan [1806-1871], qui annoncent que:

    • le complément d'une somme logique est égal au produit logique des compléments: A + B = A . B
    • le complément d'un produit logique est égal à la somme logique des compléments: A . B = A + B

Attention ! Purs littéraires s'abstenir...

Démonstration

Ces théorèmes de Morgan illustrent une particularité fascinante de l'algèbre booléenne: le PRINCIPE DE DUALITÉ (duality). Selon ce principe, pour toute égalité E vérifiée dans l'algèbre de Boole, il existe une égalité E*, appelée duale, qui se trouve également vérifiée. Celle-ci, qui plus est, se retrouve quasi immédiatement à partir de E puisqu'il suffit en effet:

  • de permuter les opérateurs (+) et (.)
  • de permuter les constantes 0 et 1

La confiance règne...

Vérification

L'algèbre de Boole à facettes

Avouons-le bien volontiers: George Boole ne nous a pas légué "clef en main" cette théorie toute en formules simples et définitives. D'autres esprits illustres ont repris, approfondi et mis en ordre ces idées novatrices dont il eût néanmoins l'intuition géniale de jeter les premiers fondements. Citons, entre autres, l'anglais Augustus De Morgan [1806-1871], et les américains Charles Peirce [1839-1914] et Edward Huntington [1874-1952].

Aujourd'hui, en termes très mathématiques, on appelle algèbre de Boole (E, +, .,  , 0, 1) la donnée d'un ensemble E non vide, muni de deux lois de composition interne (+ et .) commutatives et associatives, d'une application unaire (  ) et de deux éléments privilégiés (0 et 1), toutes ces données vérifiant les différents axiomes vus plus haut.
Soupir...

Pour 99% de la population, cette très jolie phrase provoquera nausées, maux de tête voire un petit raffermissement du quadriceps. Les initiés y verront au contraire le formidable canevas à une foule d'applications plus ou moins évidentes: théorie des ensembles, logique des prédicats, calcul des aléas technologiques et, ce qui nous intéressera ici plus particulièrement, technologie des composants électroniques.

Partis très loin dans des sphères très abstraites, tentons de revenir à très petits pas vers notre pécé préféré...

L'algèbre du tout ou rien

De manière rassurante, entrevoir l'immense intérêt de l'algèbre de Boole pour nos petites machines réclamera un petit effort préalable de... simplification. Et imaginer pour cela un univers booléen minimaliste, c'est-à-dire réduit à ses deux seuls éléments remarquables: "0" et "1".

Et là, miracle ! Ce cas très particulier et plutôt minimaliste de l'algèbre de Boole ouvre grand les portes sur d'inattendus horizons: à savoir, tous les domaines où règne la loi du tout ou rien, tous ces univers où toute variable ne peut prendre que deux états différents et complémentaires. Bref, les univers chamarrés de l'ALGÈBRE BINAIRE (binary algebra).

Si, pour vous aussi, la théorie est un tunnel, il semble bien que nous en voyons le bout...

Boole, au coeur de nos vies

Vrai / Faux

Dans cette algèbre booléenne que nous venons de décrire, avoir dénommé "0" et "1" nos deux éléments remarquables était pure convention d'écriture. D'ailleurs, appliqués à la théorie des ensemble, nous avons vu que ces derniers avaient pris des noms autrement plus explicites: ensemble vide (pour "0") et référentiel complet (pour "1").

Ramenés à un univers booléen minimaliste où ces deux valeurs, seules possibles, sont également complémentaires, pourquoi ne pas envisager de les rebaptiser "vrai" et "faux" ? Le "non-vrai" étant forcément "faux", et le "non-faux" obligatoirement "vrai", avouez que ces deux adjectifs colleraient plutôt bien à la "philosophie" booléenne.

Par ailleurs, l'algèbre binaire mettant en jeu des variable ne pouvant prendre que l'une ou l'autre de ces deux valeurs, il devient réalisable, pour chacun de nos trois opérateurs fondamentaux, de consigner en trois petits tableaux l'ensemble de tous les résultats possibles mettant en jeu deux variables:
 

Somme logique
A B A+B
faux faux faux
faux vrai vrai
vrai faux vrai
vrai vrai vrai
Produit logique
A B A.B
faux faux faux
faux vrai faux
vrai faux faux
vrai vrai vrai
Complémentation
A A
faux vrai
vrai faux
Les trois opérateurs booléens appliqués aux éléments "vrai" et "faux".

Pas vraiment normande, notre nouvelle algèbre booléenne...

Dans ce nouveau contexte très manichéen, les résultats produits par chacun de nos opérateurs de base peuvent se résumer à trois phrases désarmantes de bon sens:

  • Pour la somme logique: si A + B est "vrai", alors A est "vrai" OU B est "vrai",
  • Pour le produit logique: si A . B est "vrai", alors A est "vrai" ET B est "vrai",
  • Pour la complémentation: le NON "faux" est "vrai" et le NON "vrai" est "faux".

Avouez que nous avons trouvé là des noms beaucoup plus familiers pour nos trois opérateurs booléens fondamentaux. Nous les utiliserons donc dorénavant pour désigner ces derniers, mais plutôt dans leur version anglaise:

Quand et est ou

Méfions-nous quand même des subtilités de la langue; ainsi, par exemple, lorsque nous évoquons "les Hommes et les Femmes", nous ne faisons généralement pas référence aux hermaphrodites, mais bel et bien à toute personne, qu'elle soit hommeou femme. Bref, derrière nos "et" se cachent parfois de parfaits "ou".

  • Pour la somme logique: OR,
  • Pour le produit logique: AND,
  • Pour la complémentation: NOT.

Et maintenant, si je vous dis: "je sortirai s'il fait beau ou s'il pleut et que j'ai mon parapluie", et que j'appelle (A) la proposition "il fait beau" et (B) la proposition "j'ai mon parapluie", alors je peux très simplement exprimer mes chances de sortie par la délicieuse expression: A + A.B, digne des plus belles pages de la littérature française.
Tout cela pour vous montrer à quel point, nous, créatures pourtant si subtiles, ne cessons de jongler, sans nous en rendre compte, avec des concepts parfaitement booléens.

Sans surprise, nous appellerons VARIABLE BOOLÉENNE (boolean variables), ou encore VARIABLE LOGIQUE (logical variables), toute variable obéissant à cette algèbre binaire pour laquelle seules deux valeurs différentes et complémentaires sont possibles.
Celles-ci, comme nous l'avons vu, seront généralement notées "1" et "0", mais parfois aussi "vrai" (true) et "faux" (false).

Boole, détecteur de mensonge

L'algèbre de la Vérité.

On / Off

Bon, bon, bon... Nous en voyons que le précédent chapitre n'a pas du tout convaincus du très haut intérêt de l'algèbre de Boole. Pour ceux-là, nous allons donc sortir la très grosse artillerie, à savoir: une simple pile, quelques fils conducteurs et une ampoule en état de marche.
Tout va bientôt s'éclairer...

En un point donné de tout circuit électrique, deux situations très simples peuvent se produire: soit le courant "passe", soit il ne "passe pas": une simple ampoule nous l'apprendra brillamment.
Afin de symboliser ces deux états très différents, nous pourrions utiliser les termes très suggestifs de "lumière/obscurité", "on/off" ou, pourquoi pas, "1/0".

Etudions maintenant quelques montages électriques de niveau cours élémentaire:
 

Application des opérateurs booléens OR et AND aux montages électriques de base.

Cliquez sur les différents interrupteurs du montage afin de voir la conséquence sur l'ampoule.

Pense-bête: contacter Varta, Duracel et toute l'industrie de la pile pour leur proposer un espace d'affichage sur le générateur de cette spectaculaire animation.

Et là, divine suprise, nous remarquons ébahis que:

  • Pour le montage en parallèle: l'ampoule brille si l'interrupteur A OU l'interrupteur B est en position fermée. Ce que pourrions exprimer par: Lumière = A + B,
  • Pour le montage en série: l'ampoule brille si l'interrupteur A ET l'interrupteur B sont en position fermée, soit: Lumière = A . B.

Juste le temps de nous remettre de la vive émotion causée par cette révélation et profitons encore un instant du matériel grâcieusement prêté par le club des électriciens amateurs pour constater que nos axiomes booléens se vérifient parfaitement dans ce petit monde conducteur:

Vérification de la validité des axiomes booléens dans le domaine des montages électriques de base.

Cliquez sur les différents interrupteurs du montage afin de vérifier la lumineuse pertinence des axiomes booléens.

Vous voila rassuré(e): tout ce que nous avons appris sur l'algèbre booléenne n'est donc pas complètement vain puisqu'elle semble, en effet, trouver certaines applications très lumineuses et très concrètes.
Bon, il est vrai que le rapport est encore ténu entre ces montages pour grands débutants en génie électrique et le concentré de technologie que constitue une puce savante.
Le chemin est encore long, mais il est désormais un poil éclairé !

Heu, à ce propos... Nous allons entrer dans un nouveau tunnel de théorie... Mais promis, la lumière sera encore plus vive de l'autre côté.

Fonctions booléennes

Prenez un mathématicien normalement constitué, donnez lui pour s'amuser quelques variables usagées et attendez. Tôt ou tard, la créature toute excitée viendra vous embrumer l'esprit avec des fonctions !

Et oui. Tout comme en algèbre "classique", il est tout à fait envisageable de combiner entre elles plusieurs variables booléennes à l'aide de nos opérateurs fondamentaux (OR, AND, NOT) pour former des fonctions.
Sans surprise, une telle fonction sera baptisée FONCTION BOOLÉENNE (boolean function), ou encore, FONCTION LOGIQUE (logical function).

Fonctions logiques à deux variables:
OR, NOR, XOR et consorts...

Binaire²

L'épithète "binaire" doit être ici compris comme qualifiant une opération mettant en jeu deux variables, tout comme notre opérateur NOT est un opérateur unaire.
Tous ces opérateurs sont néanmoins des opérateurs de l'algèbre binaire (dans le sens où toute variable ne peut prendre que deux valeurs), ce qui n'arrange rien à la lisibilité de cette note...

A ce stade, nous avons déjà repéré deux opérateurs binaires fondamentaux: le "OR" et le "AND", de par le fait qu'ils correspondaient à des raisonnements logiques très familiers à notre esprit humain et, cadeau bonus, qu'ils décrivaient parfaitement les montages parallèle et série d'un circuit électrique.
Mais ce ne sont pas les seuls !

Pour nous en persuader, nous allons construire un petit tableau original - comme seule l'algèbre binaire peut nous permettre d'en concevoir - afin de lister toutes les fonctions possibles pouvant mettre en jeu deux variables booléennes.

Evidemment, ça va être pénible... mais on y a mis un peu de couleur...
 

Fonctions booléennes à deux variables
A B F(A,B)
0 0 0
0 1 0
1 0 0
1 1 0
Quelles que soient les valeurs de A et B, cette fonction renvoie toujours la valeur 0. Il s'agit donc de la fonction constante: F(A, B) = 0
Intérêt discutable...
 
A B F(A,B)
0 0 0
0 1 0
1 0 0
1 1 1
Cette fonction, qui ne renvoie 1 que si A et B sont égaux à 1, nous la connaissons fort bien: il s'agit de notre produit logique, alias AND:
F(A, B) = A . B = A AND B
A B F(A,B)
0 0 0
0 1 0
1 0 1
1 1 0
Fonction sans grande correspondance dans le langage parlé, mais que les spécialistes appellent inhibition:
F(A, B) = A . B
 
A B F(A,B)
0 0 0
0 1 0
1 0 1
1 1 1
Fonction pour laquelle la variable B ne sert pas à grand chose... Bref, la fonction unaire:
F(A, B) = A
A B F(A,B)
0 0 0
0 1 1
1 0 0
1 1 0
Fonction inhibition comparable à la fonction ci-dessus 
F(A, B) = A . B
 
A B F(A,B)
0 0 0
0 1 1
1 0 0
1 1 1
Fonction qui ressemble fort à la fonction ci-dessus, A endossant cette fois le rôle de la variable croupion.
F(A, B) = B
A B F(A,B)
0 0 0
0 1 1
1 0 1
1 1 0
Fonction très intéressante, qui ne donne 1 que si les variables A et B sont de valeur différente. Nous l'appellerons fonction d'anticoïncidence, ou XOR:

F(A, B) = A . B + A . B = A XOR B
 
A B F(A,B)
0 0 0
0 1 1
1 0 1
1 1 1
Cette fonction là aussi, nous la connaissons déjà fort bien; c'est notre fonction OR, alias somme logique:
F(A, B) = A + B = A OR B
A B F(A,B)
0 0 1
0 1 0
1 0 0
1 1 0
Autre fonction intéressante,complémentaire de notre fonction OR et que nous appellerons donc pour la peine fonction NOR (Not-OR):

F(A, B) = A + B = A . B = A NOR B
 
A B F(A,B)
0 0 1
0 1 0
1 0 0
1 1 1
Fonction ô combien remarquable, qui ne prend la valeur 1 que si A et B sont de même valeur. Bref, une fonction de coïncidence, également appelée XNOR:

F(A, B) = A . B + A . B = A XNOR B
A B F(A,B)
0 0 1
0 1 0
1 0 1
1 1 0
Fonction pour laquelle A ne sert pas à grand chose puisque ne renvoie de fait que le complément de B. Il s'agit donc de notre fonction NOT, appliquée à B:
F(A, B) = B
 
A B F(A,B)
0 0 1
0 1 0
1 0 1
1 1 1
Fonction sans grand intérêt pour nous:
F(A, B) = A + B
A B F(A,B)
0 0 1
0 1 1
1 0 0
1 1 0
Ici aussi, c'est notre fonction NOT qui se cache derrière une façade binaire, la variable B ne servant strictement à rien:
F(A, B) = A
 
A B F(A,B)
0 0 1
0 1 1
1 0 0
1 1 1
Autre fonction sans grand intérêt pour nous, mais beaucoup plus utile aux logiciens:

F(A, B) = A + B
A B F(A,B)
0 0 1
0 1 1
1 0 1
1 1 0
Fonction complémentaire de notre opérateur AND, et qu'il serait donc logique d'appeler NAND:

F(A, B) = A . B = A + B = A NAND B
 
A B F(A,B)
0 0 1
0 1 1
1 0 1
1 1 1
Fonction somme toute optimiste, donnant 1 quels que soient les valeurs de A et B. Bref, la fonction constante:
F(A, B) = 1

 

Parfait ! Nous n'allons pas revenir sur la beauté parfaite de notre "OR" et de notre "AND", mais attardons-nous quelques instants sur certains de ces autres opérateurs aux noms étranges...

XOR (eXclusive OR)

Le XOR, alias "ou exclusif", qui correspond à la fonction booléenne F(A, B) =A.B + A.B est un peu un "ou" version "fromage ou dessert", dans le sens où A XOR B sera "vrai" si A est "vrai" ou B est "vrai", mais pas les deux ! Cela lui vaut ses noms, sans doute plus parlants, d'opérateur d'anticoïncidence, voire, également, de comparateur de différence.
Son symbole est ⊕ et ses caractéristiques principales sont:

  • Commutativité: A ⊕ B = B ⊕ A,
  • Associativité: (A ⊕ B) ⊕ C = A ⊕ (B ⊕ C),
  • Comportement vis-à-vis des éléments neutres: A ⊕ 0 = A et A ⊕ 1 = A,
  • A ⊕ A = 0 (pas d'idempotence) et A ⊕ A = 1.

NOR (Not OR)

Comme son nom l'indique assez bien, l'opérateur NOR, noté ↓, est le complément de l'opérateur OR, c'est-à-dire A + B.
Même si cet opérateur n'a pas d'équivalent simple dans le langage parlé, son intérêt en électronique est un tout petit peu essentiel et nous allons donc expliciter quelques unes de ses propriétés:

  • Commutativité: A ↓ B = B ↓ A,
  • Pas d'associativité: (A ↓ B) ↓ C ≠ A ↓ (B ↓ C),
  • Inversion: A ↓ 0 = A.

XNOR (eXclusive Not OR)

Booléennement parlant, XNOR est le complément de l'opérateur XOR que nous venons de voir. Vous ne serez donc pas étonné(e) d'apprendre que son petit nom soit opérateur de coïncidence, ou encore,comparateur d'identité puisque A XNOR B ne sera "vrai" que si A et B ont même valeur.
Ses principales propriétés sont:

  • Commutativité: A XNOR B = B XNOR A,
  • Associativité: (A XNOR B) XNOR C = A XNOR (B XNOR C),
  • Comportement vis-à-vis des éléments neutres: A XNOR 0 = A et A XNOR 1 = A,
  • A XNOR A = 1 (pas d'idempotence) et A XNOR A = 0.

NAND (Not AND)

L'opérateur NAND ("ET-NON"), noté ↑, est simple à assimiler puisqu'il agit comme le complément de l'opérateur AND. En clair, A ↑ B ne donnera "faux" que si A et B sont simultanément "vrai".
A l'image du NOR, le NAND n'a pas d'équivalent direct dans le langage parlé, mais son importance est tout aussi fondamentale en électronique et voici pourquoi nous allons nous intéresser à ses passionnantes propriétés:

  • Commutativité: A ↑ B = B ↑ A,
  • Pas d'associativité: (A ↑ B) ↑ C ≠ A ↑ (B ↑ C),
  • Inversion: A ↑ 1 = A.
Nous venons de lister les 16 fonctions booléennes possibles mettant en jeu deux variables logiques. Mais combien y en aurait-il mettant en jeu trois variables ?
64
256
65.536

Fonctions booléennes à N variables

Nous venons d'étudier le cas très particulier et très simple des fonctions booléennes à deux variables. Bien évidemment, vous vous doutez qu'une fonction logique peut mettre en jeu un nombre quelconque de variables booléennes.
Ainsi, la fonction F(A, B, C) = A.B + A.C est un exemple pris tout à fait au hasard de fonction logique à trois variables.

Quelle sera la valeur de la fonction booléenne F(A, B, C) = A.B + A.C ?
Impossible à déterminer
0
1
0 ou 1
Soient A, B, C, D, E et F six variables logiques, quelle sera la valeur de F(A, B, C, D, E, F) = A.B.C.D.E.F.A ?
Impossible à déterminer
0
1

Cartes sur table

Comme nous l'avons déjà mis en pratique, la grande particularité des fonctions booléennes est qu'elles peuvent être explorées de manière exhaustive. En effet, chaque variable de ces fonctions ne pouvant prendre que deux valeurs différentes, il devient tout à fait faisable de récapituler tous les cas possibles dans un tableau que l'on appelle alors TABLE DE VÉRITÉ (truth table).

Ainsi, si nous reprenons notre fonction booléenne définie par F(A, B, C) = A.B + A.C, nous pouvons sans trop de problème mettre au point sa table de vérité:
 

A B C F(A, B, C)
0 0 0 0
0 0 1 1
0 1 0 0
0 1 1 1
1 0 0 1
1 0 1 1
1 1 0 0
1 1 1 ?
Table de vérité de la fonction F(A, B, C) = A.B + A.C.

Cette table comporte une colonne par variable mise en jeu par la fonction, plus une colonne terminale où l'on consigne, pour chaque combinaison des variables, la valeur prise alors par la fonction.

L'auteur de cette page, sans doute encore abruti par les démonstrations booléennes vues plus haut, a bêtement oublié d'indiquer la dernière valeur dans la dernière colonne de la précédente table. Quelle est cette valeur ?
0
1
2
Combien de lignes comporterait la table de vérité d'une fonction mettant en jeu six variables logiques ?
32
64

Canon Boole

Supposons un instant que nous ayons sous les yeux une table de vérité toute faite, sans aucune définition algébrique de la fonction associée:
 

A B C F(A, B, C)
0 0 0 0
0 0 1 1
0 1 0 1
0 1 1 0
1 0 0 1
1 0 1 1
1 1 0 1
1 1 1 0

Et bien cette table de vérité peut nous permettre de retrouver une définition polynômiale de la fonction F.
En effet, nous savons qu'en algèbre binaire, si nous avons une expression:
X + Y + Z + .... = 1, alors on peut dire que
X = 1 OU Y = 1 OU Z = 1...

Il est par conséquent tout à fait envisageable de définir notre fonction F comme la somme logique des différentes lignes pour lesquelles F = 1.

Conséquence toute naturelle de tout cela: deux fonctions logiques F et F' seront égales si et seulement si leur table de vérité sont identiques.

Ainsi, dans notre exemple, on peut écrire: F(A, B, C) = A.B.C + A.B.C + A.B.C + A.B.C + A.B.C

Aucune absence tolérée

Pour qu'un produit logique de N variables mérite le qualificatif de minterme, chacune de ses N variables ou son complément doit apparaître dans le produit.
Ainsi, A.C ou B.C ne sont pas des mintermes des variables A, B, C.

En groscursussien, les différents monômes de la fonction (c'est-à-dire les produits logiques A.B.C, A.B.C, A.B.C, A.B.C et A.B.C) sont appelés des MINTERMES (minterms), et la fonction F, qui se trouve alors exprimée sous la forme d'unesomme logique de mintermes est dite se trouver sous sa FORME CANONIQUE DISJONCTIVE (disjunctive canonical form), ou également première forme canonique.

Par ailleurs, dans notre univers booléen, nous pouvons également définir le complément de F comme la somme des mintermes égaux à 0. Nous avons donc aussi:

     F(A, B, C) = A.B.C + A.B.C + A.B.C

Et puisque nous savons parfaitement que A = A et aussi que, grâce à ce qu'a fait MorganA+B = A.B, nous pouvons donc également écrire F sous la forme:

F(A, B, C) = A.B.C + A.B.C + A.B.C = (A + B + C) . (A + B + C) . (A + B + C)

De la même manière que pour le minterme, pour qu'une somme logique de N variables mérite le qualificatif de maxterme, chacune de ces N variables ou son complément doit apparaître dans la somme.

Les termes A+B+C, A+B+C et A+B+C, sommes logiques de toutes les variables de F (ou de leur complément) sont appelés MAXTERMES (maxterms) de la fonction, et cette écriture de F sous la forme de produits de maxtermes est appelée FORME CANONIQUE CONJONCTIVE (conjunctive canonical form), ou aussi parfois deuxième forme canonique.

Que vous ayez ou non compris cette histoire de canon, vous aurez de toute façon noté qu'une fonction logique peut être exprimée algébriquement de différentes façons.
Et ceci n'est pas une bonne nouvelle pour nos neurones...

Vocaboolaire de base

Juste quelques petites définitions élémentaires pour faciliter nos conversations à venir autour de la table.

L'art de faire simple

La plupart du temps, une fonction logique nous sera proposée sous une forme développée plus ou moins alambiquée qu'il sera très souvent possible de fortement simplifier.
Pour ce faire, trois pistes à explorer:

Méthode algébrique

Génération spontanée

En algèbre booléenne, rien de plus simple que de faire apparaître le terme C dans le produit A.B puisque, sachant que C+C=1, on peut écrire:

     A.B = A.B.(C+C) = A.B.C + A.B.C

Ceci est une règle de l'algèbre binaire: Il faut parfois savoir complexifier une expression pour mieux la simplifier ensuite.

Nous l'avons vu ensemble, l'algèbre booléenne dispose d'un véritable arsenal d'axiomes et théorèmes bien définitifs qui peuvent nous permettre de simplifier une fonction logique.
Bien souvent, la solution passe par de judicieux développements afin de faire apparaître des termes qui, par factorisations non moins habiles, vont s'annuler sur le principe que A + 1 = A ou A . 0 = 0.

Attention toutefois: la simplification algébrique demande un minimum de rigueur et de zénitude. Si vous êtes du genre à facilement oublier un A en route ou prêt(e) à tout abandonner quand retentit le jingle annonçant l'arrivée d'un pote sur MSN, envisagez peut-être directement le plan B...

Commençons piano, histoire de ne pas vous dégoûter trop vite...
Comment simplifiez-vous la fonction logique F(A, B) = (A + B) . (A + B) ?
A
B
A.B + A.B
Même question, même casse-tête, avec F(A, B, C) = A.B + A.B.C + A.B.C + A.B.C ?
0
A.B
B.(A+C)
Même punition avec F(A, B, C) = A.B + C + C.A + C.B ?
1
A+B
A+B+C
Formes canoniques

L'annonce ne vous surprendra pas deux fois: la table de vérité d'une fonction logique à N variables comportera 2N lignes.
Dès lors, trois scénarii possibles:

Ce n'est pas parce que vous aurez exprimé votre fonction sous une forme canonique plutôt simple que celle-ci sera obligatoirement l'expression la plus simplifiée de la fonction. Très souvent, une phase de simplification algébrique permettra d'achever complètement la simplification.

  • Ou la table de vérité révèle un petit nombre de cas pour lesquels la fonction est égale à 1. Dans ce cas, il sera sensé d'exprimer la fonction dans sa forme canonique disjonctive;
  • Ou la table de vérité révèle un petit nombre de cas pour lesquels la fonction est égale à 0, et il sera alors pertinent d'exprimer la fonction dans sa forme canonique conjonctive, en complémentant la somme des mintermes égaux à 0;
  • Ou la table de vérité ne révèle aucune prépondérance nette de résultats égaux à 0 ou 1, et on devra se résoudre à faire appel à Maurice...
Diagramme de Karnaugh

Le DIAGRAMME DE KARNAUGH (Karnaugh map) est une méthode simple et ingénieuse afin de trouver à coup sûr la forme la plus simple d'une fonction logique donnée, à partir de sa table de vérité.

A vrai dire, le diagramme de Karnaugh d'une fonction n'est ni plus ni moins que la table de vérité de celle-ci, mais mise en forme de telle manière que soient géographiquement proches les mintermes logiquement proches.

Comme le fait d'expliquer textuellement le principe de ce diagramme conduirait à une somme faramineuse de lignes totalement imbitables, nous allons plutôt illustrer nos dires par un exemple bien senti.

Soit l'anodine fonction logique F telle que F(A, B, C, D) = A + A.B + A.B.C + A.B.C.D.
Amusons-nous à développer sa table de vérité.
 

A B C D F(A, B, C, D)
0 0 0 0 1
0 0 0 1 1
0 0 1 0 1
0 0 1 1 1
0 1 0 0 1
0 1 0 1 1
0 1 1 0 1
0 1 1 1 1
1 0 0 0 0
1 0 0 1 0
1 0 1 0 1
1 0 1 1 1
1 1 0 0 1
1 1 0 1 1
1 1 1 0 1
1 1 1 1 1

Voilà ! On s'est bien poilé et nous avons, conformément à nos attentes, obtenu une table de vérité à 16 lignes.

Nous allons maintenant transformer ce tableau à seize lignes en un tableau à seize cases. Pour ce faire, nous allons répartir tous les mintermes de nos variables groupées deux à deux, mais en prenant soin de scrupuleusement respecter cette règle: il faut impérativement que le passage d'une case à une case adjacente ne traduise le changement d'état que d'une seule variable.

Normalement, nous devrions obtenir quelque chose qui ressemble à ça:
 

  C.D C.D C.D C.D
A.B 1 1 1 1
A.B 1 1 1 1
A.B 1 1 1 1
A.B 1 0 0 1

 
A chaque case de notre nouveau tableau correspond un minterme de la table de vérité; il est donc normal de retrouver dans notre table de Karnaugh tous les résultats possibles pour la fonction F, et donc, le même nombre de "1" et de "0".

Nous allons dès lors pouvoir procéder aux simplifications.
Pour ce faire, nous allons localiser les cases adjacentes marquées à "1" en nombre égal à une puissance de deux, c'est-à-dire les groupes de 1, 2, 4, 8, 16.... cases "1" adjacentes, en recherchant bien sûr les regroupements les plus importants. On ne garde ensuite, parmi les mintermes concernés par le regroupement, que la ou les variable(s) logique(s) commune(s) à toutes les cases.
 

  C.D C.D C.D C.D
A.B 1 1 1 1
A.B 1 1 1 1
A.B 1 1 1 1
A.B 1 0 0 1

Premier regroupement: parmi les huit cases formées par les deux premières lignes, seule la variable B est commune aux mintermes.
Notez qu'on ne peut inclure la troisième ligne dans notre premier regroupement, car nous aurions alors douze cases, douze n'étant pas une puissance de deux.

 

  C.D C.D C.D C.D
A.B 1 1 1 1
A.B 1 1 1 1
A.B 1 1 1 1
A.B 1 0 0 1

Deuxième regroupement: parmi les huit cases formées par les deuxième et troisième lignes, seule la variable A est commune aux mintermes.
Comme vous le constatez pour notre deuxième ligne, une ou plusieurs case(s) peut(vent) tout à fait servir à plusieurs regroupements.

 

  C.D C.D C.D C.D
A.B 1 1 1 1
A.B 1 1 1 1
A.B 1 1 1 1
A.B 1 0 0 1

Troisième regroupement: parmi les huit cases formées par la première et la dernière colonne, seule la variable C est commune aux mintermes.
Remarquez que les lignes / colonnes situées aux extrémités doivent être considérées comme adjacentes. Et cela est après tout fort logique, puisqu'une seule variable change d'état de l'une à l'autre.

 

Parfait ! Aucun autre regroupement n'étant possible, on recopie les mintermes n'ayant servi à aucun regroupement - ici, aucun - et on récupère les fruits de nos regroupements successifs, pour finalement obtenir:

F = B + A + C
...ce qui constitue quand même, vous êtes maintenant connaisseur(se), une fort belle simplification !

Bien évidemment, nous aurions pu parvenir au même résultat avec beaucoup moins d'efforts et un zeste de réflexion, en remarquant que la table de vérité ne recensait que deux cas où la fonction s'annulait, cas correspondant au monôme A.B.C.
Dès lors, on pouvait se remémorer le théorème de l'involution puis avoir une pensée pour Morgan pour noter que:

F(A, B, C) = A.B.C
A + B + C

Evidemment, vous vous doutez que la méthode de Karnaugh devient franchement hostile dès lors que le nombre de variables logiques excède quatre, puisqu'il faut dès lors faire appel à une table en 3D, du moins si l'on veut continuer d'obéir à l'obligation de ne changer qu'une seule variable d'état lors du passage d'une case à une autre.
Inutile également de préciser qu'au delà de six variables logiques, la méthode de Karnaugh devient inapplicable sans très très haute faculté d'abstraction. Il faut alors se replier vers d'autres méthodes de simplification, telle la méthode de Quine-Mac Cluskey, que nous n'aborderons pas ici car nous ne voudrions pas abuser de votre gentille attention.

 

Le Boolodrôme.

Bon ! Autant le dire tout de suite, le "machin" ci-dessus en est encore à une béta pré-version 0.0 sûrement buggée jusqu'à la moëlle. Bref, un truc absolument pas fiable qui, à l'heure où sont écrites ces lignes, pourrit consciencieusement la vie de son auteur qui se mord les doigts de s'être réveillé un matin avec la lubie de créer un truc de ce style.

 

 

13:13 | Lien permanent | Commentaires (0) | |  del.icio.us | | Digg! Digg |  Facebook

Les commentaires sont fermés.