• Aucun résultat trouvé

7.6 Raffinements

7.6.2 Minimisation

Nous avons montr´e que nous pouvons nous limiter `a l’emploi des automates faibles pour manipuler effectivement les formules de la structure logiquehR, Z,+, ≤i et nous avons pr´ecis´e les algorithmes permettant d’y arriver.

7.6. Manipulation pratique de RVA — Raffinements 84 0 1 111 110 101 100 011 010 001 000 110 101 100 011 010 001 000 111 2 * 3 111 4 110 5 101 6 100 7 011 8 010 9 001 10 000 111 110 101 100 011 010 001 000 (a) 17 0 16 1 0 0 1 9 * 15 0 1 7 0 8 1 1 14 0 10 1 2 11 0 13 0 3 0 4 1 0 5 1 0 6 0 18 1 1 0 1 1 12 0 1 0 1 1 0 1 (b)

7.6. Manipulation pratique de RVA — Raffinements 85 Il reste toutefois un probl`eme potentiel. Effectivement, `a chaque op´eration, le nombre d’´etats est susceptible d’augmenter. Ainsi, `a chaque intersection ou union, il est possible que l’automate r´esultant ait O(n1 · n2) ´etats. Au bout de quelques

op´erations, le risque existe que l’automate soit trop grand pour tenir en m´emoire ou pour ˆetre trait´e en un temps raisonnable. Or, mˆeme si un ensemble final est simple, il est souvent obtenu par de longues s´equences d’op´erations.

Toutefois, rien ne dit que tous les ´etats de l’automate soient n´ecessaires. Il devient en effet probable que certaines parties de l’automate soient redondantes apr`es un certain nombre de manipulations. On voudrait donc pouvoir minimiser le nombre d’´etats de l’automate sans modifier le langage qu’il accepte afin d’obtenir une repr´esentation concise du langage accept´e.

Un autre int´erˆet de la minimisation des automates est qu’elle induit une canoni- cit´e pour la repr´esentation d’un langage. Les tests d’´egalit´e et d’inclusion entre deux langages peuvent alors ˆetre acc´el´er´es si l’on se contente de r´ealiser un test superficiel sur la structure des automates.

Les algorithmes permettant de minimiser le nombre d’´etats d’automates sur mots finis sont bien connus [Hop71, HU79]. Ils proc`edent sur des automates d´eterministes et sont relativement efficaces, car de complexit´e O(n · log n). Malheureusement, `

a notre connaissance, peu d’algorithmes applicables aux ω−automates sont venus ´

etoffer les techniques de minimisation. La raison en est principalement qu’en g´en´eral, l’unicit´e de l’automate minimal n’est pas garantie.

R´ecemment toutefois, il a ´et´e prouv´e que les langages de Gδ ∩ Fσ sont suffi-

samment bien form´es pour admettre une forme normale [MS97]. Plus r´ecemment encore, un algorithme permettant de minimiser un automate faible d´eterministe a ´

et´e d´evelopp´e [L¨od01]. L’id´ee est de r´eduire l’automate `a une forme normale capable de supporter une application directe de l’algorithme de minimisation classique pour les automates sur mots finis. Cette normalisation est r´ealis´ee en un temps lin´eaire en fonction de la taille des automates. En fait, seul l’ensemble F des ´etats accep- teurs est modifi´e par cette proc´edure. L’algorithme propos´e est donc remarquable, puisque sa complexit´e globale est identique `a celle de la minimisation des automates sur mots finis et qu’il utilise des algorithmes bien connus.

Les id´ees principales ainsi que l’algorithme de minimisation proprement dit sont expos´es `a l’annexe B. Malheureusement, les r´esultats d’exactitude de cet algorithme sont relativement complexes et sortent du cadre de ce m´emoire. Le lecteur int´eress´e pourra se r´ef´erer `a [L¨od01]. Nous n’en dirons pas plus dans ce chapitre.

Chapitre 8

Impl´ementation et r´esultats

Au cours des chapitres pr´ec´edent, nous avons d´evelopp´e une th´eorie nous per- mettant de manipuler efficacement les RVA, moyennant une l´eg`ere restriction sur leur expressivit´e.

Nous avons tout d’abord vu comment encoder des vecteurs de r´eels sous la forme de mots infinis au chapitre 2, mots infinis qui peuvent ˆetre repr´esent´es sous la forme d’ω−automates, comme nous l’a indiqu´e le chapitre 3. Ces r´esultats, une fois mis en commun, nous ont permis de repr´esenter des sous-ensembles de Rnsous la forme

de RVA au chapitre 4. Malheureusement, les RVA sont tr`es difficiles `a manier en pratique : c’est pourquoi nous avons cherch´e au chapitre 5 `a mieux comprendre la structure des ensembles qu’ils repr´esentent. Cette caract´erisation s’est faite en termes topologiques, car la topologie des ω−langages accept´es par des automates est un domaine tr`es bien compris, comme nous avons pu le constater au chapitre 6. Finalement, le chapitre 7 nous a montr´e que les automates faibles d´eterministes, forme tr`es particuli`ere d’automates de B¨uchi, nous suffisent pour manipuler les RVA restreints `a la structurehR, Z, + , ≤i. Or, les algorithmes applicables aux automates faibles sont d’une complexit´e comparable `a ceux qui s’appliquent aux automates sur mots finis. C’est pourquoi il est probable que les RVA soient utilisables en pratique. Dans le but d’´evaluer le comportement r´eel des RVA restreints, nous avons r´ealis´e une impl´ementation des algorithmes permettant leur manipulation. Cette impl´e- mentation s’est int´egr´ee au sein d’un outil exp´erimental d´ej`a existant dont le noyau permettait la manipulation d’automates sur mots finis. Pour ce faire, nous avons ajout´e `a cet outil toutes les primitives n´ecessaires `a la manipulation d’automates de B¨uchi, co-B¨uchi et faibles. L’outil ainsi modifi´e permet donc non seulement la gestion des RVA, mais est ´egalement prˆet pour int´egrer d’autres m´ethodes bas´ees sur les automates sur mots infinis.

Dans ce dernier chapitre, nous pr´esentons cet outil ainsi que quelques r´esultats exp´erimentaux.

8.1. Impl´ementation et r´esultats — L’outil LASH 87

8.1

L’outil LASH