Algèbre de Boole
Système algébrique
constitué de l'ensemble { 0, 1 }
- Variable booléenne : variable qui prend une valeur 0 ou 1
Trois
opérateurs de base
NON / NOT
- Inverse/complémente la valeur de la variable a
ET / AND ( a.b ou ab )
- Retourne 1 si a et b sont à 1, sinon retourne 0
OU / OR ( a + b )
- Retourne 1 si a ou b est à 1, sinon retourne 0
Origine
- Mathématicien anglais Georges Boole, 1815 – 1864
Propriétés de base
Involution :
Idempotence
:
Complémentarité
:
Éléments
neutres :
Absorbants :
Associativité
:
Distributivité
:
Règles
de De Morgan :
Optimisations :
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 son 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
- Par sa table de vérité
- Table qui définit la valeur de la fonction pour chaque combinaison de valeurs possibles en entrée
Tables de vérité
Table de vérité pour une fonction à p variables
- Pour chacune des combinaisons différentes de p valeurs, préciser le résultat de la fonction
Table de vérité des opérateurs de base
Fonction logique
Equivalence/passage
entre 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 de la forme
correspondant à l'expression logique
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
- Second forme : intersection (ET) de maxtermes
Exemples de formes canoniques
Fonction
à 3 variables a, b et c, exemples :
- Mintermes :
- Maxtermes :
- Première forme canonique :
- Seconde forme canonique :
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 des invariants :
Exemple de passage à la première forme canonique
Exemple de passage à la seconde forme canonique
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 :
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
- Img
- La première forme canonique de f(X) est le OU de ces mintermes
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
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 :
- On fait le OU de ces mintermes
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 :
On fait le OU de ces mintermes
- Au final :
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 les plus simples possibles
- 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
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
à
la fonction simplifiée
est parfois intéressant, mais calculs longs ...
- Essayer de déduire d'autres simplifications après chaque simplification
Exemple de simplification via algèbre de Boole
Exemple de simplification via algèbre de Boole
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 des blocs rectangulaires de taille 2n (1, 2, 4, 8...) bits adjacents à 1
- On en déduit la fonction simplifiée associée à la table de vérité
- 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
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)
- Un bit à 1 peut appartenir à plusieurs blocs
- On doit créer les blocs les plus gros possibles
A chaque bloc correspond un terme formé comme suit
- Pour le bloc, si une une variable prend les valeurs 0 et 1, 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
Exemple de tableau de Karnaugh
Table pour 2 variables
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
Table pour 3 variables
Bloc
le plus petit : a = 0, b = 0, c = 1
- Donne le terme
Mais simplification
pas suffisante
- La table se referme sur elle-même
- On doit également regrouper en bloc les plus grands possibles mêmes si des bits appartiennent à plusieurs blocs
- Le bit seul à gauche doit donc être regroupé avec la case a=1,b=0,c=1 à droite en bas de la table
- Au final pour ce bloc, on a donc :
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.
Donc on a le terme : a
Au final :
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 :
- Les variables d'un bloc prenant les valeurs de 0 et 1 sont donc systématiquement non significatives
Exemple de tableau de Karnaugh
Tableau pour 4
variables
- On doit là aussi regrouper en les plus gros blocs possibles même si on recoupe d'autres blocs
- La table se referme sur elle-même
Super bien expliquer pas de pub envahissantes au top
RépondreSupprimerVraiment top , merci bien
RépondreSupprimervraiment du bon travail
RépondreSupprimer