07.11.2013 Views

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

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Chapitre 4<br />

Calcul <strong>de</strong> l’image d’une fonction<br />

Nous présentons ici <strong>de</strong>s algorithmes <strong>de</strong> calcul <strong>de</strong> l’image d’une fonction vectorielle<br />

booléenne. EtantdonnélesDAGsd’unefonctionvectorielle ⃗ f <strong>de</strong>{0,1} m dans{0,1} n , etle<br />

DAG d’une fonction χ <strong>de</strong> {0,1} m dans {0,1}, nous établissons tout d’abord <strong>la</strong> complexité<br />

d’évaluation <strong>de</strong> <strong>la</strong> fonction Img( ⃗ f,χ), définie <strong>de</strong> {0,1} n dans {0,1}. Puis nous introduisons<br />

<strong>la</strong> notion <strong>de</strong> restricteur d’image, qui permet <strong>de</strong> décomposer le calcul <strong>de</strong> l’image.<br />

Enfin nous donnons le schéma d’un algorithme permettant <strong>de</strong> calculer Img, et nous proposons<br />

<strong>de</strong>ux instances <strong>de</strong> ce schéma. Les résultats présentés seront va<strong>la</strong>bles pour les <strong>de</strong>ux<br />

représentations graphiques BDD et TDG, sauf lorsque ce<strong>la</strong> sera explicitement spécifié.<br />

Nous adoptons les notations suivantes. La fonction booléenne ε est l’i<strong>de</strong>ntité ou <strong>la</strong><br />

négation. <strong>Une</strong> variable du domaine {0,1} m (respectivement du codomaine {0,1} n ) est<br />

notée ⃗x (respectivement ⃗y). <strong>Une</strong> fonction booléenne est confondue avec son DAG. Les<br />

vecteurs <strong>de</strong> fonctions booléennes sont notés ⃗ f ou [f 1 ...f n ]. Nous étendons les opérateurs<br />

booléens aux vecteurs, <strong>de</strong> façon à obtenir une structure d’espace vectoriel. Par exemple,<br />

[f 1 ...f n ] ∨ [f ′ 1...f ′ n] = [(f 1 ∨ f ′ 1)...(f n ∨ f ′ n)], et le vecteur χ ∧ [f 1 ...f n ] est égal à<br />

[(χ∧f 1 )...(χ∧f n )].<br />

4.1 Difficulté du calcul <strong>de</strong> Img( ⃗ f,χ)<br />

La difficulté intrinsèque du problème est indiquée par le théorème suivant. Calculer<br />

Img( ⃗ f,1) est NP–difficile 1 . Il est même certain que le calcul <strong>de</strong> Img( ⃗ f,1) n’appartient pas<br />

à NP. En utilisant l’hypothèse que l’ordre <strong>de</strong>s variables est fixé, on obtient le théorème 4.2<br />

qui précise <strong>la</strong> complexité du problème.<br />

Théorème 4.1 Etant donné <strong>la</strong> forme canonique d’une fonction vectorielle ⃗ f, <strong>la</strong> canonisation<br />

<strong>de</strong> Img( ⃗ f,1) est NP–difficile.<br />

<strong>Preuve</strong>. Nous ne donnons que <strong>la</strong> preuve sur les DAGs. Soit C = ( ∧ n<br />

k=1 c k ) une<br />

3–forme normale conjonctive composée <strong>de</strong> n c<strong>la</strong>uses c k . Chaque c<strong>la</strong>use c k est une disjonction<br />

<strong>de</strong> trois littéraux, donc le calcul <strong>de</strong>s DAGs <strong>de</strong> toutes les c<strong>la</strong>uses se fait en O(n).<br />

1 On a Img( ⃗ f,χ) = λ⃗y.Img( ⃗ f@[χ],1)(y 1 ,...,y n ,1). Donc Img( ⃗ f,χ) = Img( ⃗ f@[χ],1)[y n+1 ← 1], le<br />

terme <strong>de</strong> droite étant calculé en O(|Img( ⃗ f@[χ],1)|). Le calcul <strong>de</strong> Img( ⃗ f,1) est donc aussi difficile que<br />

celui <strong>de</strong> Img( ⃗ f,χ).<br />

85

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!