Cours 2 Boole PDF
Cours 2 Boole PDF
Cours 2 Boole PDF
Eric Cariou
1
Algèbre de Boole
Système algébrique constitué de l'ensemble { 0, 1 }
Variable booléenne : prend une valeur 0 (faux) ou 1 (vrai)
Origine
Mathématicien anglais Georges Boole, 1815 – 1864
Trois opérateurs de base
NON / NOT, noté a
Inverse/complémente la valeur de la variable a
Vrai devient faux et faux devient vrai
ET / AND, noté a.b ou ab
Retourne 1 si a et b sont à 1, sinon retourne 0
Les deux variables doivent être vraies ensemble, sinon le ET est faux
OU / OR, noté a + b
Retourne 1 si a ou b est à 1, sinon retourne 0
2
Au moins une des deux variables est vraie, sinon le OU est faux
Propriétés de base
Involution : a =a
Idempotence : a +a =a a . a =a
Complémentarité : a . a =0 a +a =1
Éléments neutres : a =a . 1 =1 . a =a
a +0 =0 +a =a
Absorbants : a+1=1 a.0=0
3
Propriétés de base
Associativité : (a . b ). c =a . (b . c )
(a +b )+c =a +(b +c )
Distributivité : a . (b +c )=a . b +a . c
a +(b . c )=(a +b ). (a +c )
Règles de De Morgan : a +b =a . b
a . b =a +b
Optimisations : a +a b =a +b
a +b c =(a +b )(a +c )
4
Fonction logique
Fonction logique
Prend en entrée une ou plusieurs variables booléennes
Retourne une valeur booléenne fonction des variables
d'entrée
Définition d'une fonction logique : deux méthodes
Par une expression logique
Combinaison des variables de la fonction via les opérateurs de
base de l’algèbre de Boole
Exemple : fonction f de trois variables a, b et c
f (a , b , c )=a b +b c +a c
Peut avoir plusieurs expressions logiques pour une même fonction
Par sa table de vérité
Table unique qui définit la valeur de la fonction pour chaque
combinaison de valeurs possibles en entrée 5
Tables de vérité
Table de vérité pour une fonction à p variables
Pour chacune des combinaisons différentes de p
valeurs, on précise la valeur retournée par la fonction
Table de vérité des opérateurs de base
a | a a b | a + b a b | a.b
---+--- ------+------ ------+------
0 | 1 0 0 | 0 0 0 | 0
1 | 0 0 1 | 1 0 1 | 0
1 0 | 1 1 0 | 0
1 1 | 1 1 1 | 1
6
Fonction logique
Équivalence/passage entre une expression
logique et la table de vérité de la fonction
On peut toujours déterminer l'une à partir de l'autre
Deux fonctions logiques sont identiques si
On peut montrer via les propriétés de l'algèbre de
Boole que leurs expressions logiques sont identiques
Leurs tables de vérité sont identiques
Note
Quand on parle de fonction logique, on parle souvent
par abus de langage de la forme correspondant à une
expression logique
7
Formes canoniques d'une fonction
Pour une fonction logique à x variables
Un minterme : groupe des x variables (pouvant être
complémentées) liées par des ET
Un maxterme : groupe des x variables (pouvant être
complémentées) liées par des OU
Forme canonique d'une fonction logique
Première forme : union (OU) de mintermes
Seconde forme : intersection (ET) de maxtermes
Il n'y a qu'une seule expression d'une forme
canonique de chaque type pour une fonction
donnée
8
Exemples de formes canoniques
Fonction à 3 variables a, b et c, exemples :
Mintermes : a b c , a b c , a b c , a b c , . . .
Maxtermes :
a +b +c , a +b +c , a +b +c , a +b +c , . . .
Première forme canonique :
f (a , b , c )=a b c +a b c +a b c +a b c
Seconde forme canonique :
g (a , b , c )=(a +b +c ). (a +b +c ). (a +b +c ). (a +b +c )
9
Passage aux formes canoniques
Partir de la fonction et la transformer pour faire
apparaître des mintermes/maxtermes complets
Pour la transformation
On s'appuie sur les propriétés de l'algèbre de Boole,
et notamment l'invariant :
x + x = 1
Il permettra de rajouter des variables manquantes dans des
termes
10
Exemple de passage à la première
forme canonique
Soit f (a , b , c )=a b +b c +a c
Premier minterme ab
Il manque la variable c
Transforme ab en ab.(c+c) car c+c=1
Même chose pour les 2 autres mintermes
D'où :
f (a , b , c )=a b (c +c )+b c (a +a )+a c (b +b )
= a b c +a b c +a b c +a b c +a b c
11
Exemple de passage à la seconde
forme canonique
Soit f (a , b , c )=a b +b c +a c
On passe par l'involution x = x
Après développement :
f ( a , b , c ) =a b +a b c +a c +a b c
Reste à transformer les mintermes à 2
variables : a b +a c =a b (c +c )+a c (b +b )
Au final f ( a , b , c ) =a b c +a b c +a b c
Et donc f (a , b , c )=(a +b +c )(a +b +c )(a +b +c )
12
Passage de la fonction logique à la
table de vérité
Pour chaque combinaison de valeurs possibles pour les
variables, on détermine la valeur booléenne de f(X)
(X = ensemble des variables)
Exemple : f (a , b , c )=a b +b c +a c
a b c | b | c | ab | bc | ac | f(a,b,c)
-------+---+---+----+----+----+---------
0 0 0 | 1 | 1 | 0 | 0 | 0 | 0
0 0 1 | 1 | 0 | 0 | 1 | 0 | 1
0 1 0 | 0 | 1 | 0 | 0 | 0 | 0
0 1 1 | 0 | 0 | 0 | 0 | 0 | 0
1 0 0 | 1 | 1 | 0 | 0 | 1 | 1
1 0 1 | 1 | 0 | 0 | 1 | 0 | 1
1 1 0 | 0 | 1 | 1 | 0 | 1 | 1
1 1 1 | 0 | 0 | 1 | 0 | 0 | 1
13
Passage de la table de vérité à la
fonction logique
A partir de la table de vérité : fonction sous
première forme canonique
Pour chaque valeur de f(X) égale à 1
On définit un minterme de toutes les variables tel que
Si une variable Xi = 1 on note Xi, sinon on note Xi
La première forme canonique de f(X) est le OU
de ces mintermes
14
Passage de la table de vérité à la
fonction logique
A partir de la table de vérité : fonction sous
seconde forme canonique
Pour chaque valeur de f(X) égale à 0
On définit un minterme de toutes les variables tel que
Si une variable Xi = 1 on note Xi, sinon on note Xi
Le OU de ces mintermes = f(Xi)
Après calcul de f(Xi), on obtient la seconde forme
canonique
15
Exemple de calcul de la fonction
logique sous première forme
A partir de la table de vérité de l'exemple
précédent
f(a,b,c) = 1 quand :
a = 0, b = 0 et c = 1 d'où le minterme abc
a = 1, b = 0 et c = 0 d'où le minterme abc
a = 1, b = 0 et c = 1 d'où le minterme abc
a = 1, b = 1 et c = 0 d'où le minterme abc
a = 1, b = 1 et c = 1 d'où le minterme abc
On fait le OU de ces mintermes
f (a , b , c )= a b c +a b c +a b c +a b c +a b c
16
Exemple de calcul de la fonction
logique sous seconde forme
A partir de la table de vérité de l'exemple
précédent
f(a,b,c) = 0 quand :
a = 0, b = 0 et c = 0 d'où le minterme abc
a = 0, b = 1 et c = 0 d'où le minterme abc
a = 0, b = 1 et c = 1 d'où le minterme abc
On fait le OU de ces mintermes
f ( a , b , c ) =a b c +a b c +a b c
Au final :
f (a , b , c )=(a +b +c )(a +b +c )(a +b +c )
17
Minimisation des fonctions logiques
Les formes canoniques d'une fonction logique
sont une définition correcte de la fonction, mais
elles peuvent être simplifiées
Pour écrire la même fonction avec le moins de termes
et le moins d'occurences des variables
Pour réaliser la fonction avec moins d'éléments
électroniques (portes logiques)
Deux méthodes pour simplifier l'écriture d'une
fonction logique
Utiliser les propriétés de l'algèbre de Boole
Utiliser la méthode des tableaux de Karnaugh
18
Simplification via algèbre de Boole
A partir des propriétés de l'algèbre de Boole,
transformer la fonction pour la simplifier
Principes généraux
Simplifier la fonction initiale à l'aide des propriétés de
l'algèbre de Boole
Appliquer la propriété d'involution ( x = x ) à la fonction
simplifiée est parfois intéressant, mais calculs longs...
Essayer de déduire d'autres simplifications après
chaque simplification
Il est compliqué d'être sur dans certains cas qu'on a
bien obtenu une forme la plus simplifiée possible
19
Exemple de simplification via algèbre
de Boole
Soit f (a , b , c )= a b c +a b c +a b c +a b c +a b c
En factorisant, on obtient :
f (a , b , c )= a (b (c +c )+b (c +c ))+a b c
= a +a b c
= a +b c (car x+xy=x+y)
On ne peut pas simplifier plus
20
Exemple de simplification via algèbre
de Boole
Autre exemple : f (a , b , c )=( a + b ) c +b c
On distribue et calcule le non :
f (a , b , c )=a b +c +b c
En utilisant l'involution :
f ( a , b , c ) =b c
D'où : f (a , b , c )=b +c
On aurait pu aussi simplifier en remarquant que
c +b c =c +b (car x+xy=x+y et donc x+xy=x+y)
21
Simplification par la méthode des
tableaux de Karnaugh
Principes généraux
Représentation sous une forme particulière de la
table de vérité d'une fonction logique
Détermination de blocs rectangulaires de taille 2 n
(avec n=1, 2, 4, ...) de bits adjacents à 1
On déduit de ces blocs la fonction simplifiée
associée à la table de vérité
22
Simplification par la méthode des
tableaux de Karnaugh
On représente un tableau à 2 dimensions
Chaque dimension concerne une ou 2 variables
Le passage d'une colonne à une colonne adjacente ou d'une
ligne à une ligne adjacente modifie la valeur d'une seule
variable
Le tableau se referme sur lui-même : la colonne la plus à
gauche est voisine de la colonne la plus à droite, idem pour
les lignes du haut et du bas
Pour les 2 colonnes (2 lignes) extrêmes, là aussi, une seule
variable doit changer de valeur entre ces 2 colonnes (lignes)
Une case du tableau contient une valeur booléenne,
déterminée à partir de la table de vérité et des valeurs des
variables
23
Simplification par la méthode des
tableaux de Karnaugh
Regroupement en blocs rectangulaires des bits à 1 adjacents
Tous les bits à 1 du tableau doivent être englobés dans au moins
un bloc (un bloc à une taille de 1, 2, 4, 8 ... bits)
On doit créer les blocs les plus gros possibles
Un bit à 1 peut appartenir à plusieurs blocs si cela permet de créer
des blocs plus gros
A chaque bloc correspond un terme formé comme suit
Si une une variable dans le bloc change de valeur (valeurs 0 et 1
pour des cases différentes), on ne la prend pas en compte
On ne conserve que les variables qui ne varient pas. Si une
variable a reste à 1 : on note a, si reste à 0 : on note a
Le terme logique du bloc correspond au ET de ces variables qui ne
changent pas
La fonction logique simplifiée est le OU de tous les termes des
blocs trouvés 24
Exemple de tableau de Karnaugh
Table pour 2 variables
\ a
a b | f(a,b) b \ 0 | 1 |
------+------- +---+---+
0 0 | 0 0 | 0 | 1 |
0 1 | 1 ---+---+---+
1 0 | 1 1 | 1 | 1 |
1 1 | 1 ---+---+---+
2 groupes de 2 bits adjacents :
Pour le vertical : on a toujours a = 1 donc cela
donne le terme a
Pour l'horizontal : idem mais avec b
f(a,b) = a + b
25
Exemple de tableau de Karnaugh
Table pour 3 variables
a b c | g
-------+---
0 0 0 | 0 \ ab
0 0 1 | 1 c \ 00 | 01 | 11 | 10 |
0 1 0 | 0 +----+----+----+----+
0 1 1 | 0 0 | 0 | 0 | 1 | 1 |
1 0 0 | 1 ---+----+----+----+----+
1 0 1 | 1 1 | 1 | 0 | 1 | 1 |
1 1 0 | 1 ---+----+----+----+----+
1 1 1 | 1
Bloc le plus petit
a passe de 0 à 1, on ne la prendra pas en compte
b reste à 0 et c reste à 1
Donne le terme b c 26
Exemple de tableau de Karnaugh
Bloc le plus gros : a reste à 1, b passe de 0 à 1
et c passe de 0 à 1
On ne conserve que les variables qui ne changent pas,
on a donc le terme a
Au final : g (a , b , c )=a +b c
Pourquoi pour le bloc de 4 on obtient juste a ?
Si on fait le OU de tous les mintermes pour lequel la valeur est 1,
cela donne pour ce bloc de 4 :
b l o c = a b c +a b c +a b c +a b c
= a (b (c +c )+b (c +c ))=a
Les variables d'un bloc prenant les valeurs de 0 et 1 sont donc
systématiquement non significatives car la simplification par
factorisation les fait disparaître
27
Exemple de tableau de Karnaugh
Tableau pour 4 variables
\ ab
cd \ 00 | 01 | 11 | 10 |
+----+----+----+----+ 3 blocs :
00 | 1 | 0 | 0 | 1 | 8 cases : d
---+----+----+----+----+ 4 cases : b c
01 | 1 | 1 | 1 | 1 | 2 cases : abc
---+----+----+----+----+
11 | 1 | 1 | 1 | 1 | Au final :
---+----+----+----+----+ f(a,b,c,d)=d+b c+abc
10 | 0 | 1 | 0 | 0 |
---+----+----+----+----+
On doit là aussi regrouper en les plus gros blocs
possibles même si on recoupe d'autres blocs
28