12.07.2015 Views

Calcul des etats atteignables de programmes Esterel partitionne ...

Calcul des etats atteignables de programmes Esterel partitionne ...

Calcul des etats atteignables de programmes Esterel partitionne ...

SHOW MORE
SHOW LESS
  • No tags were found...

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

28 CHAPITRE 2. CONTEXTE DE L’ETUDE2.5.3 <strong>Calcul</strong>s symboliques et BDDsAfin <strong>de</strong> construire les BDDs dans leur forme réduite, il est nécessaire <strong>de</strong> s’assurer que chaquenoeud U = (v ? t, e) est unique. Pour cela, nous supposons l’existence d’une table T qui à chaquetriplet (v ? t, e) associe un unique noeud U :T : (v ? t, e) → UNous supposons également que l’opération consistant à associer un triplet à un noeud est effectuéeen temps constant. En pratique cette complexité peut être obtenue en représentant Tpar une table <strong>de</strong> hachage.2.5.3.1 Formules propositionnellesLa décomposition <strong>de</strong> Shannon nous permet <strong>de</strong> transformer une expression booléenne f enune représentation sous forme <strong>de</strong> BDD notée bdd(f). Si un ordre sur les variables v 1 , . . . v n estfixé alors la construction <strong>de</strong> bdd(f) s’effectue récursivement <strong>de</strong> la manière suivante :bdd(f) = (v 1 ? bdd(f[v 1 →1]), bdd(f[v 1 →0]))La complexité en temps <strong>de</strong> cette construction est mauvaise car le nombre d’appels récursifs estexponentiel par rapport au nombre n <strong>de</strong> variables dans f et comme nous l’avons déjà dit, leBDD généré peut être <strong>de</strong> taille exponentielle.Il est malheureusement difficile <strong>de</strong> faire mieux car la construction d’un BDD à partir d’uneexpression booléenne est un problème NP-complet. Rappelons que tester si une expressionbooléenne est satisfiable est un problème NP-complet. Dans un BDD, ce test est réalisé en tempsconstant. Il est donc aussi difficile <strong>de</strong> trouver un algorithme polynomial capable <strong>de</strong> transformerune expression booléenne en BDD que <strong>de</strong> démontrer que P est égal à NP.2.5.3.2 Opérations basiquesLa négation d’un BDD peut se calculer en temps constant (voir section 2.5.2). Si ⋆ désigneun opérateur booléen binaire quelconque, et si U = (v ? t 1 , e 1 ) et V = (v ? t 2 , e 2 ) désignent <strong>de</strong>uxnoeuds <strong>de</strong> BDD portant sur la même variable v alors l’application <strong>de</strong> ⋆ à U et V s’effectue <strong>de</strong>la manière suivante :U ⋆ V = (v ? t 1 ⋆ t 2 , e 1 ⋆ e 2 )On pourra facilement se convaincre <strong>de</strong> la véracité <strong>de</strong> cette formule en utilisant la décomposition<strong>de</strong> Shannon sur U et V. Pour éviter l’explosion exponentielle du nombre d’appels récursifs, ilest possible d’utiliser une table permettant <strong>de</strong> mémoriser chaque résultat intermédiaire U i ⋆ V j .Nous supposons que l’accès à cette table en fonction <strong>de</strong> U i et V j peut être réalisé en tempsconstant. Si nous appelons m le nombre <strong>de</strong> noeuds <strong>de</strong> BDD <strong>de</strong> U et n le nombre <strong>de</strong> noeuds <strong>de</strong>BDD <strong>de</strong> V alors la complexité en temps et en espace du calcul <strong>de</strong> U ⋆ V dans le pire <strong><strong>de</strong>s</strong> cas est<strong>de</strong> l’ordre <strong>de</strong> m × n.2.5.3.3 QuantificationRestriction. Les calculs <strong>de</strong> quantification d’un BDD utilisent un opérateur <strong>de</strong> restriction. Larestriction d’un BDD consiste à remplacer une variable par une constante (0 ou bien 1) dans le

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

Saved successfully!

Ooh no, something went wrong!