• Aucun résultat trouvé

Nous étudions à présent l’efficacité du langageIA pour les requêtes nécessaires à la planification [§ 3.3.2]. Cela nous conduira à proposer un sous-langage deIA ayant de meilleures performances.

4.2.1

Satisfaction d’importantes requêtes sur les automates à

intervalles

La première opération que nous étudions est le conditionnement, qui consiste à assigner une valeur à certaines variables. Il est possible de faire ceci grâce à une simple procédure syntaxique ; grossièrement parlant, il s’agit de vérifier, pour chaque arc, si son étiquette contient la valeur à assigner ; les arcs satisfaisant cette condition sont gardés, les autres retirés.

Proposition 4.2.1.IA satisfaitCD.

Le conditionnement se fait donc de manière assez directe sur les automates à in- tervalles. L’opération suivante dont nous avons besoin est la requête d’extraction de

modèle. Malheureusement, cette dernière n’est pas supportée parIA — tout simple- ment parce qu’elle n’est pas supportée parBDDSBB , et queBDDSBB est un sous-langage d’IA [corollaire 4.1.8].

Proposition 4.2.2.IA ne satisfait pasMX, sauf si P = NP.

Ceci est lié au fait que décider de la cohérence d’un automate à intervalles n’est pas polynomial. Une des raisons à cela est que les ensembles qui restreignent une variable le long d’un chemin peuvent se contredire : il est possible d’avoir un arc « x ∈ [1, 4] » suivi d’un arc « x ∈ [8, 10] », ce qui rend le chemin incohérent. Conséquemment, dans le pire des cas, il est nécessaire d’explorer tous les chemins avant d’un découvrir un qui soit cohérent. À noter que la réduction ne résout pas le problème ; la figure 4.7 montre ainsi un exemple d’IA réduit n’ayant aucun chemin cohérent. x z y t t z ∨ y x [11, 13] [5, 6] [6, 8] [0.3, 1.6] [187, 212] [276, 283] [249, 254] [3.2, 4.1] [3, 4] [9, 10] [10, 12]

Fig. 4.7 : Exemple d’IA réduit dans lequel tous les chemins sont incohérents ; pour prouver son incohérence, il est nécessaire de vérifier chacun des chemins.

Étant donné que la requête MXest fondamentale dans nos applications, nous

ne pouvons travailler avec les automates à intervalles de base ; nous devons im- poser des restrictions structurelles rendant polynomiales la requête d’extraction de modèles et, par conséquent, la requête de cohérence.

4.2.2

Convergence

L’un des aspects rendant difficile la vérification de la cohérence d’un automate à intervalles est la potentielle incohérence des chemins, due au fait que les étiquettes portant sur une même variable peuvent être disjointes le long d’un chemin. Pour

définir un sous-langage d’IA interdisant ce comportement, la solution que nous proposons est de forcer les intervalles relatifs à un même variable à ne pouvoir que

rétrécir de la racine au puits.

Définition 4.2.3 (Convergence). Un arc E d’un IA φ est convergent si et seulement

si tous les arcs E′le long de tout chemin de la racine de φ à Src(E) tels que Var(E) = Var(E′) vérifient Lbl(E)⊆ Lbl(E′).

Un automate à intervalles est convergent (FIA, focusing IA) si et seulement si tous ses arcs E tels que Var(E) ̸= ⊻ sont convergents. FIA est la restriction de IA aux automates convergents.

Un exemple de FIA peut être trouvé en figure 4.8. Remarquons que la convergence n’est définie que sur les variables de Scope(φ) : les nœuds⊻ ne sont pas concernés par cette restriction. Cela permet de simplifier certaines preuves.

x x y x y [1.3, 1.78] [−10, 134] [1, 2] [7, 13] [0, 15] [5, 20]

Fig. 4.8 : Un exemple d’automate à intervalles convergent. Les domaines des va- riables sont comme suit : Dom(x) = [0, 100], Dom(y) = [0, 100] et Dom(z) =

{0, 3, 7, 10}.

Imposer la convergence empêche les étiquettes de se contredire ; un chemin ne peut contenir « x∈ [1, 8] » puis « x ∈ [5, 15] ». Cependant, la convergence seule ne rend pas tous les chemins cohérents : rien n’empêche les étiquettes des arcs d’être vides ou disjointes avec le domaine de leur variable. Ces cas sont en fait traités par la réduction ; c’est une des raisons pour lesquelles la polynomialité de la réduction sur les FIAs est un résultat important, qui fait l’objet de la proposition suivante.

Proposition 4.2.4 (Réduction d’un FIA). Il existe un algorithme polynomial trans-

formant un FIA φ quelconque en un FIA équivalent φ′réduit vérifiant∥φ′∥ ⩽ ∥φ∥. On peut montrer un résultat intéressant à propos de la relation entre FIAs et diagrammes de décision read-once.

Proposition 4.2.5. On peut démontrer que FBDDIRT ⊆ FIA, et en particulier FBDDSBB ⊆ FIA.

Montrons à présent que les opérations qui nous intéressent sont polynomiales sur les FIAs, en commençant par le conditionnement. Pour prouver la proposition suivante, on utilise la procédure décrite sur les IAs — qui maintient la convergence.

Proposition 4.2.6 (Conditionnement d’un FIA).FIA satisfaitCD.

Avant de nous pencher sur l’extraction de modèle, remarquons que la réduction rend la vérification de cohérence polynomiale sur les FIAs. On peut en fait prouver qu’un FIA réduit est incohérent si et seulement s’il est vide : en effet, la seule chose

qui peut compromettre la cohérence d’un FIA est le fait qu’une étiquette « sorte » du domaine de sa variable, or cela est impossible sur un FIA réduit.

Proposition 4.2.7 (Cohérence d’un FIA).FIA satisfaitCO.

On peut voir cela d’une autre manière : chaque chemin d’un FIA réduit est cohérent, par conséquent, s’il existe un chemin, alors le FIA est cohérent. C’est cette propriété qu’on utilise pour extraire un modèle d’un FIA.

Proposition 4.2.8 (Extraction d’un modèle d’un FIA).FIA satisfaitMX.

La procédure est basée sur l’idée suivante : on réduit le FIA, on choisit un chemin arbitraire dans l’automate (le choix n’importe pas, puisque tous les chemins sont cohérents), puis on choisit une instanciation arbitraire comaptible avec ce chemin. Ainsi, contrairement aux IAs de base, les FIAs supportent les principales opéra- tions dont nous avons besoin pour des applications de planification. De plus, comme nous le montrons dans le chapitre 5, les automates à intervalles obtenus en suivant la

trace d’un solveur de contraintes basé sur les intervalles sont naturellement conver-

gents. Les FIAs sont donc de bons candidats pour être utilisés dans nos applications ; c’est pourquoi nos expérimentations ont porté sur ces structures (chapitre 6).

Avant de nous pencher sur la construction des FIAs, et d’expérimenter leur uti- lisation en pratique, nous présentons la carte de compilation deIA et FIA, contenant toutes les requêtes et transformations mentionnées dans les chapitres 1 et 3.