Calcul des etats atteignables de programmes Esterel partitionne ...
Calcul des etats atteignables de programmes Esterel partitionne ...
Calcul des etats atteignables de programmes Esterel partitionne ...
- 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é