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...

Create successful ePaper yourself

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

38 CHAPITRE 3.PRÉSENTATION INTUITIVE3.2.1.3 PartitionnementPartitionner séquentiellement la recherche <strong><strong>de</strong>s</strong> états <strong>atteignables</strong> en traitant intégralementP , puis Q peut nous permettre d’alléger la représentation <strong><strong>de</strong>s</strong> ensembles d’états provisoiresmais aussi et surtout la représentation <strong>de</strong> la fonction <strong>de</strong> transition et le calcul <strong>de</strong> l’image en sefocalisant sur une partie du programme à chaque étape du calcul comme l’illustre la figure 3.7.P; QP QR1 R2 R3 R4 R5 R1 R2 R3 R4 R5R1 R2 R3 R4 R50 1 0 10 1Fig. 3.7 – Représentation <strong>de</strong> la fonction <strong>de</strong> transition <strong>de</strong> P ; Q dans l’algorithme BreadthFirst Search (à gauche) et dans l’algorithme partitionné (à droite). P et Q étant indépendants,le partage <strong>de</strong> l’information dans les BDDs (représenté par les zone sombres) ne s’opère pas bienentre P et Q. Le <strong>partitionne</strong>ment permet <strong>de</strong> simplifier l’expression <strong>de</strong> la fonction <strong>de</strong> transition.Dans cet exemple, le <strong>partitionne</strong>ment que nous proposons consiste à découper le processusen <strong>de</strong>ux phases. La première phase consiste à saturer l’exploration <strong><strong>de</strong>s</strong> états accessibles àl’intérieur <strong>de</strong> P uniquement. Il s’agit <strong>de</strong> bloquer explicitement les transitions correspondant à laterminaison normale du bloc P et interdire ainsi l’exploration <strong><strong>de</strong>s</strong> états <strong>de</strong> Q. De cette manière,seuls les ensembles d’états intermédiaires <strong>de</strong> P sont encodés et seule la partie <strong>de</strong> la fonction<strong>de</strong> transition correspondant au bloc P est utilisée. De manière analogue, la <strong>de</strong>uxième phaseparachève le calcul par la saturation <strong><strong>de</strong>s</strong> états <strong>de</strong> Q. Dans cette <strong>de</strong>uxième phase, la fonction<strong>de</strong> transition que nous utilisons enco<strong>de</strong> les comportements <strong>de</strong> P et <strong>de</strong> Q, mais comme tous lesétats <strong>de</strong> P ont déjà été découverts dans la première phase, l’opérateur <strong>de</strong> cofacteur permet <strong>de</strong>ne conserver que les transitions issues du bloc Q.3.2.2 L’opérateur <strong>de</strong> choixNous reconsidérons à présent l’exemple <strong>de</strong> l’introduction :present S then P else Q endIci, la situation est très similaire à celle <strong>de</strong> l’opérateur <strong>de</strong> séquencement. Si nous supposonsqu’aucune <strong><strong>de</strong>s</strong> <strong>de</strong>ux branches ne termine instantanément alors les états accessibles dans P etQ peuvent être construits indépendamment alors que l’algorithme <strong>de</strong> recherche en largeur s’accompliten parallèle dans les <strong>de</strong>ux blocs. Ici encore, nous proposons <strong>de</strong> <strong>partitionne</strong>r la recherche<strong><strong>de</strong>s</strong> états, d’abord dans P puis dans Q afin <strong>de</strong> réduire la taille <strong><strong>de</strong>s</strong> BDDs nécessaires aux calculs.Plus concrètement, les calculs se déroulent comme pour la séquence. Dans un premier temps,nous supposons que la fonction <strong>de</strong> transition a été appliquée <strong>de</strong> telle sorte que les états initiaux<strong>de</strong> P et Q ont été construits. Dans un second temps il s’agit <strong>de</strong> bloquer explicitement l’exploration<strong><strong>de</strong>s</strong> états <strong>de</strong> Q. De cette manière nous saturons P . Dans un troisième temps, nousutilisons l’opérateur <strong>de</strong> cofacteur sur la fonction <strong>de</strong> transition globale (qui enco<strong>de</strong> la totalité

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

Saved successfully!

Ooh no, something went wrong!