Vous êtes sur la page 1sur 8

3.

Représentation des fonctions logiques


Tables de vérité, tables de Karnaugh, équations logiques, équivalents décimaux,
fonctions logiques complètes et incomplètes. Formes canoniques. Simplification des
fonctions logiques : (analytique) algèbre de Boole, tables de Karnaugh.

3.1. Tables de vérité, tables de Karnaugh, équations logiques, équivalents


décimaux, fonctions logiques complètes et incomplètes
 Une table de vérité est une table mathématique utilisée en logique — en particulier le calcul
propositionnel classique et l'algèbre de Boole — pour représenter de manière sémantique des
expressions logiques et calculer la valeur de leur fonction relativement à chacun de leurs arguments
fonctionnels (chaque combinaison de valeur assumée par leurs variables logiques). Les tables de vérité
peuvent être utilisées en particulier pour dire si une proposition est vraie pour toutes les valeurs
légitimement imputées, c'est-à-dire : si une proposition est «logiquement valide».
En pratique, une table de vérité est composée d'une colonne pour chaque variable imputée (A et B par
exemple, ou p et q), et d'une colonne où sont inscrits tous les résultats possibles de l'opération logique
représentée par le tableau (A XOR B par exemple). Chaque ligne de la table de vérité contient ainsi
une des configurations possibles des variables imputées (par exemple : A=vrai, B=faux), ainsi que le
résultat de l'opération pour ces valeurs.
Ces outils sont couramment utilisés en électronique (porte logique) et en informatique (tests)
selon un code d'entrée binaire (0 / 1, faux / vrai, éteint / allumé, etc.). Une sortie, également
représentée sous forme de colonne, est la résultante des états d'entrée, elle-même exprimée sous forme
d'état binaire. En d'autres mots, lorsque les entrées remplissent les conditions du circuit, la/les
sortie/sorties est/sont activée/activées.
Pour lire une table de vérité, on recherche dans la liste des entrées l'état souhaité pour en
déterminer la sortie (qui se trouve donc sur la même ligne).

Exemple de base
Dans les exemples suivants, nous découvrons la table de vérité pour certaine porte logique. Par
exemple, pour que la sortie de la porte logique ET soit activée, nous devons avoir les deux entrées à 1.
Alors que la porte logique OU n'a besoin que d'une des entrées pour afficher un 1 à la sortie.

Table de Table de Table de vérité de Table de vérité de


vérité de ET vérité de OU XOR (OU exclusif) l'implication
a b a ET b a b a OU b a b a XOR b a b a⇒b
0 0 0 0 0 0 0 0 0 0 0 1
0 1 0 0 1 1 0 1 1 0 1 1
1 0 0 1 0 1 1 0 1 1 0 0
1 1 1 1 1 1 1 1 0 1 1 1

Exemple composé

Table de vérité de a. (b + c)
a b c a.(b + c)
0 0 0 0
0 0 1 0

1
0 1 0 0
0 1 1 0
1 0 0 0
1 0 1 1
1 1 0 1
1 1 1 1
Le '.' se dit et, le '+' se lit ou.
On lit dans ce tableau: a et (b ou c)
Pour valider cette table, il faut donc que le a soit à l'état 1, ainsi que b ou c.
Les et et ou sont les opérateurs d'un état logique. On note les entrées "E" et les sorties "S".

 tables de Karnaugh
Une table de Karnaugh sert à simplifier des équations logiques ou à trouver l'équation logique
correspondant à une table de vérité. La méthode utilisée est graphique et simple. Elle utilise le code
Gray ou binaire réfléchi, qui a comme propriété principale de ne faire varier qu'un seul bit entre deux
mots successifs (la distance de Hamming de deux mots successifs du code de Gray est égale à 1).
Cette méthode a été développée par Maurice Karnaugh en 1953, en perfectionnant un
diagramme similaire introduit en 1952 par Edward Veitch.

Principe
Un tableau de Karnaugh peut être vu comme une table de vérité particulière, à deux
dimensions, destinées à faire apparaître visuellement les simplifications possibles.
Supposons 2n ou 2n+1 variables: on assignera par exemple n ou n+1 variables au repérage des
lignes, les n autres variables au repérage des colonnes. Chaque case élémentaire correspond alors à une
seule ligne et à une seule colonne, donc à une seule combinaison des variables.
Examinons le cas d'une fonction S des quatre variables A, B, C, D, les variables A et B étant
assignées aux lignes, C et D aux colonnes de la table ci-dessous.
Table de Karnaugh
S CD 00 01 11 10
AB
00 0 1 1 0
01 0 1 1 1
11 0 1 1 1
10 0 1 1 0

Cette table est proche du diagramme de Veitch antérieur. Pour rendre plus évidentes les
simplifications cherchées, Karnaugh propose, pour la succession des valeurs données à C et D, ainsi
qu'à A et B, d'employer un code de Gray, de sorte que les valeurs de deux repères consécutifs ne
diffèrent que par la modification d'une seule variable, et fasse apparaître des symétries utiles. Ainsi :

 La colonne 1 correspond aux valeurs de S pour C=0 et D=0, ou C'D' = 1


 La colonne 2 correspond aux valeurs de S pour C=0 et D=1, ou C'D = 1
 La colonne 3 correspond aux valeurs de S pour C=1 et D=1, ou CD = 1
 La colonne 4 correspond aux valeurs de S pour C=1 et D=0, ou CD' = 1
 La ligne 1 correspond aux valeurs de S pour A=0 et B=0, ou A'B' = 1
 La ligne 2 correspond aux valeurs de S pour A=0 et B=1, ou A'B = 1
 La ligne 3 correspond aux valeurs de S pour A=1 et B=1, ou AB = 1
 La ligne 4 correspond aux valeurs de S pour A=1 et B=0, ou AB' =1.
2
Alors, on assigne à la case de la ligne 4, colonne 2 la valeur de S quand A=1, B=0, C=0 et D=1.
Cette valeur peut être trouvée dans la table de vérité ou par une équation à simplifier.
Les valeurs du tableau de Karnaugh considéré correspondent aux valeurs de la table de vérité
suivante :
Table de vérité
A B C D S
0 0 0 0 0
0 0 0 1 1
0 0 1 0 0
0 0 1 1 1
0 1 0 0 0
0 1 0 1 1
0 1 1 0 1
0 1 1 1 1
1 0 0 0 0
1 0 0 1 1
1 0 1 0 0
1 0 1 1 1
1 1 0 0 0
1 1 0 1 1
1 1 1 0 1
1 1 1 1 1

 équations logiques
Méthode de recherche de l'équation:
Pour trouver l'équation de S, c'est simple. Il y a deux méthodes :
 former une somme ;
 former un produit.
La somme
Pour trouver une somme, il faut regrouper les valeurs de S égales à 1. Le nombre de 1 dans
chaque groupe doit être égal à une puissance de 2. Les groupes formés doivent être les moins
nombreux possibles, mais ils doivent englober tous les 1. Un 1 peut être inclus dans plus d'un groupe,
par contre aucun 0 ne doit être inclus. Les groupes sont composés d'une ou plusieurs colonnes et d'une
ou plusieurs lignes. Si possible, assemblez-les par valeurs d'entrées communes. Par exemple, la
colonne 2 et la colonne 3 ont pour valeur commune D=1. La ligne 1 et la ligne 4 ont la valeur B=0 en
commun.
Pour les tables à 4 variables, de préférence procéder dans l'ordre suivant :
 Le rectangle 16 cases puis,
 les rectangles 8 cases puis,
 les rectangles 4 cases puis,
 les rectangles 2 cases et,
 enfin les cases uniques.

3
Utilisation de la table de Karnaugh

Dans l'exemple pris ci-dessus : on peut former un rectangle de 8 cases, puis un carré de 4 (le
rectangle des colonnes 2 et 3 et le carré au croisement des lignes 2-3 et des colonnes 3-4). Le rectangle
correspond à l'équation « D » car dans ces deux colonnes et dans ces deux colonnes seulement, D est
toujours égal à 1. Le carré correspond à l'équation « B·C » car dans ces cases et dans ces cases
seulement B=1 et C=1. S est représenté par l'union des 2 figures, et on obtient pour équation de S : « S
= D + B·C ».
Cette méthode, une fois assimilée, permet de trouver une équation au premier coup d'œil, et
propose une alternative simple à la simplification d'équation, qui peut rapidement devenir fastidieuse
(отегчително).
Les tables/tableaux de Karnaugh sont surtout utilisé(e)s en électronique. En effet, la
simplification de l'expression algébrique booléenne permet d'économiser des opérateurs logiques
(portes logiques) et donc des circuits. Elle engendre aussi une économie de temps de conception et de
fonds, tout en augmentant la fiabilité de l'ensemble.
En programmation, l'utilisation des tables de Karnaugh permet de réduire les séquences de
conditions de test complexes en les regroupant en des conditions non intuitives au premier abord, mais
qui réduisent la complexité effective du code (volume du source), ainsi que son temps d'exécution en
réduisant le nombre des évaluations nécessaires.

Le produit
Cette méthode ne regroupe pas les « 1 » mais les « 0 », pour trouver non pas une somme de
produits mais un produit de sommes.
En regroupant les 0, on trouve S' sous forme d'une somme, et par complémentation, on obtient
S sous forme de produit.
Ici, en regroupant les 0 de S (ou 1 de S') on obtient S' = C'D'+ B'D', le premier terme
regroupant la 1ère colonne, et le second les 4 coins. Donc, par la règle de De Morgan,
S = (C+D) · (B+D)
S est maintenant vu comme l'intersection de C+D, qui représente les colonnes 1 à 3, et de B+D,
qui représente le carré total hormis les 4 coins

 équivalents décimaux
Représentation décimale par code binaire - exemples:
 Conversion binaire - décimal
Convertissons 01001101 en décimal à l'aide du schéma ci-dessous:

27 26 25 24 23 22 21 20
0 1 0 0 1 1 0 1

Le nombre en base 10 est 26 + 23 + 22 + 20 = 64 + 8 + 4 + 1 = 77.


4
 Conversion décimal - binaire
Allons maintenant dans l'autre sens et écrivons 77 en base 2. Il s'agit de faire une suite de divisions
euclidiennes par 2. Le résultat sera la juxtaposition des restes:

77 = 64 + 13 = 64 + 12 + 1 = 64 + 8 + 4 + 1 = 26 + 23 + 22 + 20 = 1 0 0 1 1 0 1
Le schéma ci-dessous explique la méthode:

0 1 0 0 1 1 0 1
27 26 25 24 23 22 21 20

 fonctions logiques complètes et incomplètes


Définition de Fonction logique quelconque complètement définie - Une fonction de n variables
binaires est complètement définie si sa valeur est connue pour chacune des 2n combinaisons possibles
des variables. La table de vérité d’une telle fonction comportera donc 2n lignes. Un exemple de table de vérité
d’une fonction F de trois variables a, b et c est donné ci-dessous:

a b c F
0 0 0 0
0 0 1 1
0 1 0 1
0 1 1 0
1 0 0 1
1 0 1 0
1 1 0 0
1 1 1 0
Table de vérité d’une fonction complètement définie

Définition de Fonction logique quelconque incomplète (partiellement définie) - Dans ce cas la


valeur de la fonction n’est pas déterminée pour toutes les combinaisons des variables. Une valeur
indéterminée est notée X ou Ø dans la table de vérité. Pour les cas indéterminés, on peut imposer une
valeur 0 ou 1 à cette fonction, dans le but de faciliter sa synthèse. Un exemple d’une telle fonction est
donné ci-après:
a b c F
0 0 0 0
0 0 1 1
0 1 0 1
0 1 1 X
1 0 0 X
1 0 1 0
1 1 0 X
1 1 1 X
Table de vérité d’une fonction incomplète (partiellement définie)

3.2. Formes canoniques


Il existe plusieurs formes de représentation d'une fonction logique ; en voici trois :
 la table de vérité,
 la forme canonique,
5
 le chronogramme.
Forme canonique:
Pour écrire l'équation de X en fonction des 3 variables il faut dire:

Autant de termes que de fois que la fonction est égale à 1.Ce qui donne une écriture
"algébrique" en notant :

 la variable par sa lettre si elle vaut 1 (ex : si a vaut 1 nous écrirons a)


 la variable par sa lettre surlignée si elle vaut 0 (Si a vaut 0 nous écrirons a et nous lirons «a
barre»).
Pour la table de vérité ci-dessus, cela nous donne

Cette forme d'écriture est appelée forme canonique, comme première forme canonique.
La seconde forme canonique est la suivante:
_ _ _ _ _ _
Y = (a + b + c). (a + b + c). (a + b + c). (a + b + c). (a + b + c)

3.3. Simplification des fonctions logiques : (analytique) algèbre de Boole, tables de


Karnaugh
 Simplification 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

 (Analytique) 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

Exemple de simplification via algèbre de Boole


_ _ __ __
 Soit f (a, b, c) = abc + abc + abc + abc + abc
_ _ _ __ __ _
 En factorisant, on obtient: f (a, b, c) = a[b(c + c) + b(c + c)] + abc = a + abc = a + bc,

6
_
(car x + x .y = x + y)
 On ne peut pas simplifier plus.

 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 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 simplification via la méthode des tableaux de Karnaugh:

 Table pour 2 variables:


\a 0 | 1 |
a b | f(a,b) b
----+ ------- 0 0 1
0 0| 0 1 1 1
1 0| 1
0 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 : le même, mais avec b
 f(a,b) = a + b;

 Table pour 3 variables:


a b c g
0 0 0 0
0 0 1 1

7
0 1 0 0
0 1 1 0
1 0 0 1
1 0 1 1
1 1 0 1
1 1 1 1

\ ab
c
00 01 11 10
0 0 0 1 1
1 1 0 1 1

 Bloc le plus petit : a = 0, b = 0, c = 1:


 Donne le terme abc
 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:

\ ab
c
00 01 11 10
0 0 0 1 1
1 1 0 1 1

_
 Au final pour ce bloc, on a donc: bc.
 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: g(a,b,c) = a+bc.

Vous aimerez peut-être aussi