Une Boite `a Outils Pour la Preuve Formelle de Syst`emes Séquentiels
Une Boite `a Outils Pour la Preuve Formelle de Syst`emes Séquentiels
Une Boite `a Outils Pour la Preuve Formelle de Syst`emes Séquentiels
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
2.4. MANIPULATIONS DE GRAPHES DE DÉCISION 53<br />
pour 1 ≤ k ≤ n. Les BDDs <strong>de</strong>s fonctions f k sont <strong>de</strong> taille 3 (<strong>de</strong> taille 2 pour les TDGs),<br />
donc ( ∑ n<br />
k=1 |f k |) = O(n). On déduit finalement que (|g| + ∑ n<br />
k=1 |f k |) est en O(n). La<br />
composition g(f 1 ,...,f n ) est <strong>la</strong> fonction λ⃗y.( ∧ n<br />
k=1 f k (⃗y)), qui s’écrit donc<br />
( n<br />
)<br />
∧<br />
λ[y 1 ...y 2n ]. (y k ⇔ y 2n−k+1 )<br />
k=1<br />
Le graphe <strong>de</strong> <strong>la</strong> formule ((y 1 ⇔ y 2n ) ∧ (y 2 ⇔ y 2n−1 ) ∧ ... ∧ (y n ⇔ y n+1 )) est en O(2 n ),<br />
comme le montre le Lemme 2.1.<br />
✷<br />
Lemme 2.1 La formule ((y 1 ⇔ y 2n )∧(y 2 ⇔ y 2n−1 )∧...∧(y n ⇔ y n+1 )) possè<strong>de</strong> un graphe<br />
<strong>de</strong> décision en O(2 n ) pour l’ordre y 1 < y 2 < ... < y 2n .<br />
<strong>Preuve</strong>. Nous montrons que le BDD <strong>de</strong> ((y 1 ⇔ y 2n )∧(y 2 ⇔ y 2n−1 )∧...∧(y n ⇔ y n+1 ))<br />
est <strong>de</strong> taille 3(2 n −1) par récurrence. <strong>Une</strong> preuve analogue montre que le TDG <strong>de</strong> cette<br />
formule est <strong>de</strong> taille 3(2 n −1)−1.<br />
Considérons le graphe t n montré Figure 12. Il utilise 2n variables y 1 < y 2 < ... < y 2n ,<br />
et est totalement expansé sur les n+1 premières variables. Par définition, les 2 n−1 sous<br />
graphes G n j (1 ≤ j ≤ 2 n−1 ) sont tous différents. Soit s n le nombre <strong>de</strong> noeuds nécessaires<br />
pour représenter ces 2 n−1 sous graphes G n j. La taille <strong>de</strong> t n est donc (s n + ∑ n+1<br />
k=1 2k−1 ), soit<br />
|t n | = 2 n+1 +s n −1.<br />
On effectue alors le produit <strong>de</strong> t n avec (a ⇔ b), tel que y n < a < b < y n+1 . Le graphe<br />
<strong>de</strong> (a ⇔ b) doit être introduit au milieu du graphe t n . On obtient <strong>la</strong> nouvelle structure <strong>de</strong><br />
graphe donnée par <strong>la</strong> Figure 13.<br />
Cette structure est analogue à celle <strong>de</strong> t n , à savoir que l’expansion du graphe est faite<br />
sur les n + 2 premières variables (i.e. y 1 ,...,y n ,a,b), et qu’à partir d’un graphe G n j, on<br />
construit les <strong>de</strong>ux graphes G n+1<br />
2j−1 = (¬y n+1 ∧ G n j) et G n+1<br />
2j = (y n+1 ∧ G n j), c’est à dire<br />
G n+1<br />
2j−1 = △(y n+1 ,G n j,0) et G n+1<br />
2j = △(y n+1 ,0,G n j). Les 2 n nouveaux graphes G n+1<br />
j ont un<br />
nombre <strong>de</strong> noeuds s n+1 = s n +2 n . Donc le graphe t n+1 est <strong>de</strong> taille 2 n+2 +s n+1 −1.<br />
<strong>Pour</strong> n = 1, on a s 1 = 0, donc s n = ( ∑ n−1<br />
k=1 2k ), c’est à dire s n = 2 n − 2. Donc <strong>la</strong><br />
taille <strong>de</strong> t n , soit <strong>la</strong> formule ((y 1 ⇔ y 2n )∧(y 2 ⇔ y 2n−1 )∧... ∧(y n ⇔ y n+1 )), est égale à<br />
2 n+1 +2 n −2−1, c’est à dire 3(2 n −1). ✷<br />
Lacompositionestdoncaumoinsexponentiellesil’ordre<strong>de</strong>svariablesestfixé. Cependant,<br />
le lecteur pourra objecter que <strong>la</strong> formule ((y 1 ⇔ y 2n )∧(y 2 ⇔ y 2n−1 )∧...∧(y n ⇔ y n+1 ))<br />
utilisée dans <strong>la</strong> preuve du Théorème 2.12 possè<strong>de</strong> un graphe en O(n) avec l’ordre<br />
y 1 < y 2n < y 2 < y 2n−1 < ... < y n < y n+1 . On peut alors légitimement se poser <strong>la</strong><br />
question suivante : si l’on est capable <strong>de</strong> modifier dynamiquement l’ordre <strong>de</strong>s variables<br />
<strong>de</strong> façon à minimiser <strong>la</strong> taille <strong>de</strong>s graphes manipulés, y-a-t-il un moyen d’obtenir un algorithme<br />
<strong>de</strong> composition non exponentiel en mémoire? Quelques remarques suffisent pour<br />
répondre par <strong>la</strong> négative. Premièrement, le problème d’obtenir un “bon ordre”, c’est à<br />
dire un ordre qui minimise <strong>la</strong> taille du graphe d’une fonction, est lui-même NP–difficile.<br />
Deuxièmement, il existe <strong>de</strong>s fonctions (voir Théorème 2.20, Section 2.5) dont le graphe<br />
est exponentiel vis-à-vis du nombre <strong>de</strong> variables utilisées, quel que soit l’ordre choisi sur<br />
celles-ci. <strong>Pour</strong> cette <strong>de</strong>rnière raison, il est certain que <strong>la</strong> composition reste exponentielle,<br />
même si un oracle était capable <strong>de</strong> fournir dynamiquement un ordre optimal.