360 likes | 523 Views
George BOOLE Né le 2 novembre 1815 à Lincoln, Lincolnshire, Angleterre Décédé le 8 décembre 1864 à Ballintemple, County York, Irlande. Plan. Variable Binaire Fonctions Booléennes Représentation Fonctions «vides» Systèmes combinatoires Exercice «Shannon» Arbres de décision binaires
E N D
George BOOLE Né le 2 novembre 1815 à Lincoln, Lincolnshire, AngleterreDécédé le 8 décembre 1864 à Ballintemple, County York, Irlande Plan • Variable Binaire • Fonctions Booléennes • Représentation • Fonctions «vides» • Systèmes combinatoires • Exercice «Shannon» • Arbres de décision binaires • Minimalisation BOOLE Mathématicien Anglais (1864)
x1 f[x0,x1,....,xn-1] xn-2 xn-1 Propriétés • Variable Binaire • xi prend ses valeurs ou états dans [0,1] • Fonction Booléenne • En sortie 0 ou 1 • En Entrée n Variables binaires [x0,x1,....,xn-1] x0 f prend ses valeurs dans [0,1] Combinatoitre
Propriétés • Fonctions de n variables • Dénombrement : • C’est une application de l’ensemble des variables binaires dans [0,1] • n Variables binaires : • 2n Combinaisons d’entrées possibles [x0..xn-1] • 2 états possibles en sortie [0,1] • => 2 Fonctions possibles de n variables • Exemple : n = 1 2n x F0 F1 F2 F3 0 0 1 0 1 1 0 1 1 0
Propriétés • n = 2 => 16 Fonctions possibles • n = 3 => 256 Fonctions possibles • n = 4 => 65536 Fonctions possibles Les Fonctions de deux variables x y f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12 f13 f14 f15 f16 00 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 01 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 10 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 11 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 Les Fonctions Fondamentales de l’ algèbre de Boole : ET OU NON(Complémentation) x.y x+y /x
Propriétés • POSTULATS • 1)Identité: • X+0=X X*1=X • 2)Complément: • X+/X=1 X*/X=0 • 3)Commutativité: • X+Y = Y+X X*Y=Y*X • 4)Distributivité: • X+(Y*Z)=(X+Y)*(X+Z) X*(Y+Z)=(X*Y)+(X*Z)
Propriétés • X*0 = 0 • Théorèmes • 1) //X = X (Involution) • 2) X+X = X (idempotence) X*X=X • 3) X+1 = 1 (Absorbant/neutre) X*0=0 • 4) X+(Y+Z)=(X+Y)+Z X*(Y*Z)=(X*Y)*Z • 5) /(X+Y) = /X*/Y (De Morgan) /(X*Y)= /X+/Y • 6) X+(X*Y)=X X*(X+Y)=X • 7) (X*Y) +(X*/Y)=X (X+Y)*(X+/Y)=X • 8) X+(/X*Y)=X+Y X*(/X+Y)=X*Y • 9) (X*Y)+(/X*Z)+(Y*Z)= (X*Y)+(/X*Z) • (X+Y)*(/X+Z)*(Y+Z)= (X+Y)*(/X+Z) X*0 = X* 0 + 0 (1a) X* 0 + 0 = X* 0 + X*/X (2b) X* 0 + X*/X = X* (0 + /X) (4b) X* (0 + /X) = X*/X = 0 (2b) /(X+Y) = /X*/Y (Morgan) X+(/X*Y)=X+Y (X + /X ) * ( X + Y) (distributivité) 1 * ( X + Y) = X + Y
Méthodes de démonstration • Preuve ( On fait la preuve en appliquant tout le combinatoire sur les entrées) • Déduction ( Utilisation de l’algèbre : Postulats, théorèmes ..) • Induction
Propriétés Principe de Dualité Chaque expression Logique a une expression «duale» qui est aussi vrai Elle est obtenue en remplaçant FAUX => VRAI VRAI => FAUX ET => OU OU => ET exemple : X+1 = 1 X*0 = 0
Propriétés /F(X) = D[F(/X)] Quelque soit la fonction combinatoire F(X)de n variables X={xn-1,xn-2,…,x0}, on a les relations suivantes : D{D[F(X)]} = F(X) (1) /F(X) = D[F(/X)] (2) D[/F(X)] = F(/X) (3) D[F(X)] = /F(/X) (4) NB : 0n note D[F(X)] le DUAL de F(X)
Fonction Booléennes particulières Fonctions Impaires(Auto Duales)D[F(X)] = F(X) Fonctions PairesF(X) = F(/X) Fonctions SymétriquesToute permutation des variables ne change pas F(X) (voir document « Exercices d’approfondissements »)
Propriétés • Ensemble d'Opérateurs Complets • L’ensemble [ET,OU,NON] est complet • Démontrer que l’ensemble [ET,NON] est complet • [OU,NON ] est complet • Opérateurs NAND et NOR NON ET : /( X*Y) Complémentation : /(X*X ) = /X OU : /(/X*/Y ) = X + Y ( De Morgan)
=1 Fonctions OU Exclusif x x y = /x*y +x*/y y Commutativité Associativité Neutre : x 0 = x ; pas d’absorbant Cas Particuliers x 0 = x x x = 0 x 1 = /x x /x = 1 x /y = /(x y) /x /y = x y Généralisation x0 x1.. xn = 1 si un nombre impair de variables est à l’état 1 x y /z = /(x y z) x /y /z = x y z x /y = /(x y) /x /y = x y
P-MOS 0 Z = 1 Z = 0 N-MOS 1 X=0 X=1 X 1 Réalisations Technologiques Z = /X 0 Inverseur Commutateurs basiques (Transistors)
1 =1 si (X1 ou X2 = 0) Z = X1.X2 X1 =0 si ( X1 et X2 = 1) X2 0 Porte NAND Réalisations Technologiques
1 Réalisations Technologique =1 si (X1 et X2 = 0) Z = X1+X2 X1 X2 =0 si ( X1 ou X2 = 1) 0 Porte NOR
Représentation des fonctions Booléennes Différents modes de représentation • Tabulaire • Algébrique • Graphique • Langage de description
Représentation des fonctions BooléennesGraphique • Table de vérité • Description de tous les états en entrée • Affectation de la valeur de sortie • Exemple d’une fonction de 3 variables : X2 X1 X0 F 0 0 0 0 0 1 0 1 0 0 1 1 1 0 0 1 0 1 1 1 0 1 1 1
x 0 1 y 0 f(0,0) f(1,0) f(0,1) f(1,1) 1 Représentation des fonctions BooléennesGraphique • Tableau de Karnaugh • Représentation Matricielle • Utilisation du code Binaire Réfléchi
Représentation des fonctions BooléennesAlgébrique • Littérale • Utilisation des opérateurs fondamentaux de l'algèbre de Boole • F = x0*x2 +/x1 • Utilisations avec d’autres opérateurs (XOR,NAND,..) • Formes Canoniques: • Sommes de Produits (Combinaisons des variables pour lesquelles la fonction vaut 1) • F1 = x2*x1*x0 + /x2*x1*/x0 • Produits de Sommes (Combinaisons des variables pour lesquelles la fonction vaut 0) • F0 = (x2+x1+/x0)*(x2+/x1+/x0)*(/x2+/x1+/x0)
Représentation des fonctions BooléennesAlgébrique • MINTERMES • X2*X1*X0 = m7 • ..... • /X2*/X1*/X0 = m0 • Exemple : F = m0 + m4 + m5 + m7 • MAXTERMES • X2+X1+X0 = M0 • ..... • /X2+/X1+/X0 = M7 • Exemple F = M1*M3*M6
Représentation des fonctions BooléennesAlgébrique • Conversion entre Formes Canoniques : • Soit la fonction F de 3 variables F(x2,x1,x0)= m7+m6+m0 La fonction « vaut » 0 partout où elle ne vaut pas 1 Donc on peut écrire également : F(x2,x1,x0)= M5*M4*M3*M2*M1
F= 0 SI (X2 = 0 OU X1=0 OU X0=1) ET (X2 = 0 OU X1=1 OU X0=0) ET (X2 = 1 OU X1=0 OU X0=1) ET (X2 = 1 OU X1=1 OU X0=0) ET (X2 = 1 OU X1=1 OU X0=1) ET SINON F=1 F= 1 SI (X2 = 0 ET X1=0 ET X0=0 ) OU (X2 = 0 ET X1=1 ET X0=1) OU (X2 = 1 ET X1=0 ET X0=0) SINON F=0 X2 X1 X0 F 0 0 0 0 0 1 0 1 0 0 1 1 1 0 0 1 0 1 1 1 0 1 1 1 1 0 0 1 1 0 0 0 Table de vérité et représentation algébrique
Représentation des fonctions BooléennesLangage de Description • Description par un langage(ici VHDL) : -- Inverseur ENTITY inverseur IS PORT (e : IN BIT; s : OUT BIT); END inverseur; ARCHITECTURE pleonasme OF inverseur IS BEGIN s <= NOT e ; END pléonasme
ExerciceThéorème d’Expansion de SHANNON • f(x n-1 ..., x k +1 ,x k ,x k -1 ...., x 0 ) = • /x k * f(x n-1 ..., x k +1 ,0 ,x k -1 ...., x 0 ) • + • x k * f(x n-1 ..., x k +1 ,1 ,x k -1 ...., x 0 ) • Montrer qu'une fonction booléenne d’une variable peut s’écrire : • f(x) = /x*f(0) + x*f(1) • En déduire qu’une fonction de deux variables peut s'écrire : • f(x,y) = /x*/y*f(0,0) + /x*y*f(0,1) + x*/y*f(1,0) + x*y*f(1,1) • Généraliser à n variables • en déduire que • f(x n-1 ..., x k +1 ,x k ,x k -1 ...., x 0 ) = /x k * f(x n-1 ..., x k +1 ,0 ,x k -1 ...., x 0 ) + x k * f(x n-1 ..., x k +1 ,1 ,x k -1 ...., x 0 ) • Application : • Simplifier f(x,y,z) = x*y +/x*z + y*z
a 1 0 0 0 b b 1 c c c c 0 1 0 1 1 0 1 0 F(0,0,0) f(0,0,1) ………………………………………. Diagrammes de Décisions Binaires • Arbre orienté composé d’une racine, de sommets intermédiaires et de sommets terminaux composés de « 0 » et de « 1 » • Un arbre de décision binaire est obtenu a partir de la décomposition de Shannon . • Exemple f(a,b,c) : 1
Arbre de décision binaire de la fonction f(a,b,c) = /a.b.c + a.c 0 0 0 0 0 0 1 0 1 0 1 Diagrammes de Décisions Binaires a 1 b b 1 c c c c 0 1 0 1 1 0 1 0
MINIMALISATION Plan • Méthode Algébrique • Méthode de Karnaugh • Méthode de Quine Mc Kluskey • Arbres de décisions binaires
Ecrire la fonction sous forme canonique • Appliquer les théorèmes de l'algèbre de BOOLE afin de réduire le nombre de monômes et le nombre de variables dans chaque monôme ( en fait principalement X + X = X et X + /X = 1) . • Avantages : Rapidité et simplicité de la mise en œuvre • Inconvénients : • Aucun aspect systématique • Impossible si le nombre de variable est «grand» (>4) • N’assure pas une représentation minimale de la fonction(Difficulté de repérer les mintermes qui participent a des simplifications) • EXEMPLE :F = X2*/X1*/X0 + X2*X1*X0 + X2*X1*/X0 + /X2*X1*X0 + X2*/X1*X0 Méthode Algébrique
Représenter la fonction sous forme de tableau de KARNAUGH • Fait apparaître graphiquement : • COMPLEMENTATION X + /X = 1 • IDEMPOTENCE X + X = X • Ecriture de la fonction sous forme algébrique : le nombre de monômes et le nombre de variables dans chaque monôme est minimal • AVANTAGES : • Méthode graphique , rapide a mettre en œuvre • Systématique, elle donne une représentation minimale • INCONVENIENTS : • Inutilisable au delà de 7 variables • Non programmable Méthode de Karnaugh
1 X2*/X1*X0 1 X2*X0 X1X0 Tableau de KARNAUGH 4 Variables 00 01 11 10 X3X2 /X3*X2*/X1*X0 0 1 3 2 00 01 11 10 4 5 7 6 1 12 13 15 14 1 8 9 11 10
Méthode de Quine Mc Kluskey • Fusion des monômes basée comme KARNAUGH sur • X + /X = 1 et X + X = X • Formulée de manière différente, elle est destinée a la programmation • DEFINITIONS • Poids d’un monôme P( = Nombre de «1») • Equivalence décimale d’un monôme : N • REGLES DE FUSION • Deux monômes M {P,N}et M’{P’,N’} sont «fusionnables si • P = P’+1 • N-N’ = 2k • La variable de rang K est éliminée
Méthode de Quine Mc Kluskey • TRI : • établir un tableau T0 des monômes, classés par groupe de même poids et par poids croissants • FUSION : • Comparer chaque monôme de chaque groupe deux à deux afin d'éliminer les variables fusionnables • Etablir un tableau T1 des monômes fusionnés • BOUCLE : • Agir sur T1 de la même manière jusqu'à ce qu’il n’y ait plus de fusion possible • La fonction est représentée par les monômes de chaque tableau Ti, non fusionnés
Réduction des arbres binaires • U n Arbre de décision Binaire d’une fonction de n variables comporte : • une racine, • n-1 couches de sommets intermédiaires • 2n feuilles valant 0 ou 1 • On peut réduire la taille de cet arbre en : • Arrêtant le développement d’une branche dès que l’on atteint 0 ou 1 • Supprimant les redondances ( feuilles et sous-graphes identiques) • Élimination des sommets redondants ( fils gauches et droits identiques)
Structure d’un BDD • Pour un ordre donné des variables, le graphe réduit est unique • Pour deux ordres donnés de variables, la forme d’un BDD est différente .
Exemples de minimalisation de BDD • Réduire la fonction f(a,b,c) = /a.b.c + a.c • Réduire la fonction f(a,b,c) = /a.b./c + a.c • Soit le système combinatoire de 4 entrées a,b,c,d et une sortie S tel que s = 1 si et seulement si le nombre formé des 4 bits {a,b,c,d} est strictement supérieur à 9 • Représenter le système sous forme d’un arbre de décision binaire, • Donner une représentation minimale ( RBDD)
a b 1 1 0 0 0 0 0 c 0 1 0 1 0 0 0 1 0 1 0 1 Diagrammes de Décisions Binaires Arbre de décision binaire de la fonction f(a,b,c) = /a.b.c + a.c a 1 b b 1 c c c c 0 1 0 1 1 0 1 0