Académique Documents
Professionnel Documents
Culture Documents
Chap 7
Chap 7
La notion de circuit
1
2 CHAPITRE 7. LA NOTION DE CIRCUIT
x x
y ¬ z
∨
∨
Notons que plusieurs entrées peuvent être étiquetées par un même symbole
de constante ou de variable. On s’autorise graphiquement à partager les entrées.
y ¬ z
∨
∨
x1 x2 x3 x4
¬ ¬ ¬ ¬
∧ ∧ ∧ ∧
∨ ∨
¬ ¬
∧ ∧
Exemple 7.4 Le circuit de l’exemple 7.1 calcule la fonction de {0, 1}3 dans
{0, 1} définie par S(x, y, z) = ∧(∨(¬(x), y), ∨(x, z)), c’est-à-dire la fonction sé-
lecteur.
Exemple 7.5 Le circuit de l’exemple 7.3 calcule la fonction P ARIT Y de {0, 1}4
dans {0, 1} qui vaut 1 si et seulement si un nombre impair de ses arguments
valent 1.
On appelle sous-circuit d’un circuit C ce que l’on a envie d’entendre par sous-
circuit : à savoir, une partie C 0 du circuit qui a la propriété que si une porte
p en fait partie, alors toute porte qui émet un arc vers cette porte aussi. En
particulier, le sous-circuit principal associé une porte p est formé de l’ensemble
des portes de C qui sont sur un chemin qui arrive à p. Les sous-circuits immédiats
d’un circuit C sont le ou les sous-circuits principaux correspondant à la ou aux
deux portes portes émettant un arc vers la sortie.
On peut relier la notion de terme à la notion de circuit booléen.
Définition 7.3 (Terme booléen) Un terme booléen est un circuit à une sor-
tie dans lequel toute porte émet un arc et un seul.
Proposition 7.1 Si aucune entrée n’est une sortie, alors taille(C) ≤ 3(taille(C)−
e(C)).
∨
...
∨
∨
∨
Cependant, un tel circuit n’est pas de profondeur logarithmique.
Il est plus astucieux de construire un arbre complet, ou presque complet.
∨ ∨ ∨ ∨
∨ ∨
∨
Exemple 7.8 Pour la fonction = (x, y) de {0, 1}2 dans {0, 1} qui vaut 1 si
x = y : on a e1 = (1, 1), qui correspond à l’expression x ∧ y et e2 = (0, 0) qui
correspond à l’expression ¬x ∧ ¬y. L’expression (x ∧ y) ∨ (¬x ∧ ¬y) correspond
donc à la fonction =.
n
En fait, on ne peut pas espérer faire mieux. Il y a 22 fonctions de {0, 1}n
dans {0, 1}.
Combien il y a t’il de circuits de taille p(n) avec seulement n entrées ? Il
faut pour chaque paire de portes p et q décider s’il y a 0, 1 ou deux arcs de
2
p vers q, ce qui ne laisse pas plus de 2p(n) log 3 choix pour placer ces arcs. Il
faut ensuite étiqueter les portes par ¬, ∨, ∧, 0, 1 ou x1 , x2 , · · · , xn , ce qui donne
pas plus de (n + 6)p(n) choix. Le nombre de ces circuits est donc majoré par
2
2p(n) log(3)+p(n) log(n+6) . En conséquence si p(n) est un polynôme en n, ou même
une fonction négligeable devant 2n , on est certain que pour n grand il y aura des
fonctions n-aires non exprimables par un terme de taille p(n), et même qu’elles
constituent la majorité.
accepter 00 · · · 010 · · · 00. Autrement dit, l’un des deux possède la propriété ce
qui contredit la minimalité de la profondeur.
L’étiquette de sortie est donc ∨. Soit X l’ensemble des variables xi telles que
A donne la valeur 1 sur l’entrée 00 · · · 010 · · · 00, le 1 étant à la ième place, et
soit Y l’ensemble de variables ayant cette propriété pour B. On doit avoir X ∪Y
égal à toutes les entrées. Soit A0 le circuit obtenu à partir de A en remplaçant
par 0 toute variable hors de X, et B 0 celui obtenu à partir de B en remplaçant
par 0 toute variable hors de Y . Comme A et B donnent 0 à la suite nulle, et que
A0 et B 0 ont strictement moins de variables (par minimalité de C), la récurrence
s’applique et prof ondeur(A0 ) ≥ log(card(X)), prof ondeur(B 0 ) ≥ log(card(Y )).
Donc prof ondeur(C) ≥ log(max(card(X), card(Y )) + 1 ≥ log(n/2) + log 2 =
log n.
Définition 7.4 (Circuit sur une structure) Soit n un entier. Un circuit boo-
léen a n entrées et m sorties sur la structure M = (M, f1 , · · · , fu , r1 , · · · , rv ) est
un graphe orienté sans cycle ( DAG, directly oriented graph) avec
8 CHAPITRE 7. LA NOTION DE CIRCUIT
a b out 0
= mod
¬ ¬ ¬
∨ ∨ ∨ ∨ ∨ ∨
∧ ∧ ∧
a b out
1 On ordonne aussi les arcs entrants de façon à savoir quel est le premier, le second, . . .etc
a b out 0
= mod
¬ ¬ ¬
∨ ∨ ∨ ∨ ∨ ∨
∧ ∧ ∧
a b out
= mod
¬ ¬ ¬
∨ ∨ ∨ ∨ ∨ ∨
∧ ∧ ∧
a b out
= mod
¬ ¬ ¬
∨ ∨ ∨ ∨ ∨ ∨
∧ ∧ ∧
a b out
sinon.
– Soit f un symbole. UPDATEf (m, b, Ct ) retourne la configuration obtenue
en effectuant la mise à jour (f, m) ← b sur Ct : se définit récursivement
7.2. CIRCUITS ET ALGORITHMES 11
D’autre part :
(R, +, −, ∗, /, =, <)
(R, +, −, ∗, /, =, <)
inspirée de [Blum et al., 1989] et de [Blum et al., 1998]. Le lien entre les circuits
et les algorithmes est un résultat classique développé dans la plupart des ou-
vrages de complexité. L’application au problème du sac à dos réel est repris de
[Koiran, 1994].
14 CHAPITRE 7. LA NOTION DE CIRCUIT
Bibliographie
[Blum et al., 1998] Blum, L., Cucker, F., Shub, M., and Smale, S. (1998). Com-
plexity and Real Computation. Springer-Verlag.
[Blum et al., 1989] Blum, L., Shub, M., and Smale, S. (1989). On a theory of
computation and complexity over the real numbers ; NP completeness, recur-
sive functions and universal machines. Bulletin of the American Mathematical
Society, 21(1) :1–46.
[Koiran, 1994] Koiran, P. (1994). Computing over the reals with addition and
order. Theoretical Computer Science, 133(1) :35–47.
[Poizat, 1995] Poizat, B. (1995). Les petits cailloux : Une approche modèle-
théorique de l’Algorithmie. Aléas Editeur.
15