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.

72 CHAPITRE 5. CALCUL DES ETATS ATTEIGNABLES PARTITIONNÉ∀x ∈ R part ∆(x) ∈ R part . Des <strong>de</strong>ux propriétés précé<strong>de</strong>ntes, nous déduisons que l’image<strong>de</strong> tout élément <strong>de</strong> R part est aussi contenue dans R part .R part ⊇ Θ n . Nous montrons que les applications successives <strong>de</strong> la fonction <strong>de</strong> transition sontcontenues dans l’ensemble R part :∀n ≥ 0∆ n (ι) ⊆ R partNous savons que R part ⊇ ι et par la propriété précé<strong>de</strong>nte, nous savons également que si∆ n−1 (ι) ⊆ R part alors ∆ n (ι) ⊆ R part pour tout n > 0.La décomposition <strong>de</strong> Θ n donnée à la section 5.2.1 nous permet donc <strong>de</strong> dire que :R part ⊇ Θ n (5.22)5.2.3.4 R n ⊆ Θ nOn démontrerait facilement que R n ⊆ Θ n et ainsi que R part ⊆ µ(Θ) : l’algorithme partitionnéne génère spontanément aucun nouvel état et à chaque étape <strong>de</strong> l’algorithme, les nouveaux étatssont calculés à partir d’anciens états eux-mêmes inclus dans µ(Θ).Pour conclure cette section, nous pouvons affirmer que notre algorithme partitionné estcorrect et calcule bien le point fixe µ(Θ).5.3 Analyse <strong><strong>de</strong>s</strong> caractéristiquesNous terminons ce chapitre par une brève analyse <strong><strong>de</strong>s</strong> caractéristiques <strong>de</strong> notre algorithmece qui amène une réflexion sur la forme <strong><strong>de</strong>s</strong> <strong>programmes</strong> pour lesquels cet algorithme est particulièrementadapté, compte tenu <strong>de</strong> sa complexité empirique. Nous terminons par <strong><strong>de</strong>s</strong> commentairessur la possibilité d’adapter notre technique à un autre type <strong>de</strong> codage <strong><strong>de</strong>s</strong> <strong>programmes</strong>que celui que nous utilisons (voir 2.1.4).5.3.1 ComplexitéThéoriquement, il est impossible <strong>de</strong> démontrer que notre algorithme est globalement meilleurque l’algorithme Breadth First Search : dans le pire <strong><strong>de</strong>s</strong> cas, ces <strong>de</strong>ux algorithmes sont exponentielsen espace par rapport au nombre <strong>de</strong> registres, et la complexité en temps <strong>de</strong> notrealgorithme est possiblement beaucoup moins bonne puisqu’elle divise les étapes. Les qualités <strong>de</strong>notre algorithme ne peuvent être mises en évi<strong>de</strong>nce qu’empiriquement (voir chapitre 7).Soit p la “profon<strong>de</strong>ur” du programme exploré, c’est à dire le nombre d’itérations nécessairespour calculer l’espace <strong><strong>de</strong>s</strong> états <strong>atteignables</strong> par l’algorithme Breadth First Search. Soit r lenombre <strong>de</strong> registres <strong>de</strong> ce programme. Dans le pire <strong><strong>de</strong>s</strong> cas, l’algorithme partitionné effectue <strong>de</strong>l’ordre <strong>de</strong> p × r itérations (la libération <strong>de</strong> chacun <strong><strong>de</strong>s</strong> r registres peut déclencher à chaque foisp itérations).Chaque ouverture <strong>de</strong> frontière nécessite l’appel à <strong><strong>de</strong>s</strong> fonctions <strong>de</strong> manipulation <strong>de</strong> graphe(Closure, Surface). Dans le pire <strong><strong>de</strong>s</strong> cas, chacune <strong>de</strong> ces fonctions est polynomiale par rapportau nombre <strong>de</strong> noeuds du graphe et en pratique très rapi<strong>de</strong> et particulièrement par rapport auxfonctions <strong>de</strong> manipulation <strong><strong>de</strong>s</strong> BDDs.

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

Saved successfully!

Ooh no, something went wrong!