• Aucun résultat trouvé

Contributions en programmation par contraintes sur intervalles

3.4 Autres contributions

3.4.1 PolyBox : un algorithme de Box utilisant les fonctions extrˆemes

(Travail en collaboration avec Yves Papegay, Gilles Chabert et Odile Pourtallier ; r´esum´e accept´e et pr´esent´e `a SCAN 2008 [286] ; article court soumis et accept´e `a CP 2010 [287].)

Motivation

Rappelons d’abord que la proc´edureBoxNarrowdu contracteurBoxtravaille sur une paire (f, x), c’est-`a-dire avec une contrainte univari´eec[Y]:f[Y](x) =f(x,[y1], ...,[ya]) = 0, o`u chaque occur-rence des variablesY def autre quexest remplac´ee par son intervalle courant (cf. section 2.4.3).

BoxNarrowcontracte [x] en un nouvel intervalle [l, r] o`ulest le z´ero le plus `a gauche def[Y](x) = 0 etr est le z´ero le plus `a droite. Un d´efaut de cette proc´edure est de parfois converger lentement pour trouverl etr du fait que f[Y] est une fonction intervalle, “´epaisse”.

L’id´ee derri`ere PolyBox consiste `a transformerf[Y] en une nouvelle forme analytique g[Y] telle que les fonctions extrˆemes g[Y] etg[Y] de g[Y] peuvent ˆetre extraites rapidement. On d´efinit les fonctions extrˆemes comme suit :

– Fonction minimale :g[Y]= minYs∈[Y]f(Ys, x) – Fonction maximale :g[Y]= maxYs∈[Y]f(Ys, x)

Les fonctions extrˆemes sont tout simplement les courbes qui encadrent la fonction intervalle de la figure 2.2, page 32. Les travaux de Odile Pourtallier sur les polynˆomes dans l’´equipe COPRIN ont eu comme effets de bord positifs d’identifier une forme “d´evelopp´ee” favorable `a l’extraction des fonctions extrˆemes :

g[Y](x) =

i=k

X

i=0

fi([Y])×hi(x) o`u :

– hi(x) d´epend seulement de x, et non pas de Y.

– hi(x) a un signe qui ne change pas “trop souvent” comme :xi (i entier),log(x),ex.

Dans ce cas en effet, g[Y](x) and g[Y](x) sont des fonctions par morceaux avec des coefficients ponctuels pris aux bornes desfi([Y]), c’est-`a-dire dans{fi([Y]), fi([Y])}.

Notre premi`ere impl´ementation dansIbex se limite aux polynˆomes. f[Y](x) est un polynˆome et g[Y](x) =Pi=d

i=0fi([Y])×xi,d´etant le degr´e du polynˆome. Notons que si iest pair alors xi est positif. Si iest impair alors le signe de xi peut changer une seule fois en x= 0.

Consid´erons par exemple f(x,{y, z}) = (y +z) ×x2 + (2yz) ×x+sin(z) et g{[y],[z]}(x) = [−2,3]x2+ [−4,−2]x+ [−1,1]. Les fonctions extrˆemes sont alors :

– x≥0 :g{[y],[z]}(x) = 3x2−2x+ 1

– x≤0 :g{[y],[z]}(x) = 3x2−4x+ 1

– x≥0 :g{[y],[z]}(x) =−2x2−4x−1

3.4. Autres contributions 61

– x≤0 :g{[y],[z]}(x) =−2x2−2x−1

L’id´ee principale est de produire une variante deBoxNarrow, appel´eepolyBoxRevisequi travaille avec ces fonctions ponctuelles.

L’algorithme PolyBox

Le cœur de la proc´edurePolyBoxRevised´etermine un intervalle [l, r] obtenu par contraction de [x]. Sans perte de g´en´eralit´e, d´etaillons le principe de d´etermination de la borne gauche l.

Une premi`ere ´etape triviale d´etermine avec quelle fonction extrˆeme travailler. Trois cas peuvent se pr´esenter :

1. Sig[Y](x)≤0 et 0≤g[Y](x) : l=x (pas de contraction).

2. Sig[Y](x)>0 : on travaille avecg[Y]. 3. Sig[Y](x)<0 : on travaille avecg[Y].

Le cas 2 (ou 3) est int´eressant et requiert un dernier test du degr´e du polynˆome.

Si le degr´e dde g[Y] est sup´erieur `a 4 (dans notre impl´ementation : d≥4), alors la plus petite racine l de g[Y](x) = 0 dans [x] est calcul´ee avec la proc´edure BoxNarrow (ou LeftNarrow) classique, la diff´erence ´etant que la convergence est plus rapide puisque la fonction est ponctuelle.

Si au contraire d≤ 4 (dans notre impl´ementation : d < 4), alors on calcule toutes les racines r´eelles de mani`ere analytique/formelle et on retourne la plus petite solution dans [x]. Le cas d= 2 est trivial et fait appel aux souvenirs de coll`ege ou lyc´ee. Il faut simplement veiller `a rendre les ´evaluations successives conservatives, `a cause des probl`emes d’arrondis sur les flottants, en prenant initialement un intervalle d´eg´en´er´e autour de chaque coefficient.5 Le casd= 3 est plus compliqu´e et il fallu quelques heures et la polyvalence de mon coll`egue Yves Papegay pour choisir la c´el`ebre m´ethode de Cardano et la transformer en une proc´edure informatique.

Au final, nous proposons une proc´edurePolyBoxRevisebˆatie sur le mod`ele de l’algorithmeBox nantais, appel´e BC4 [28]. Si f[Y](x) ne contient pas d’occurrence multiple de x, la proc´edure fait un simple appel `aHC4-Revise (comme BC4). Dans le cas contraire,Mathematicaessaie de transformer f[Y](x) eng[Y](x) =Pi=d

i=0fi([Y])×xi. Quatre cas peuvent se pr´esenter : 1. Mathematica´echoue, ce qui signifie quef[Y] n’est pas polynomiale :

la proc´edure fait un simple appel `aBoxNarrow(ouHC4-Revisedans une version hybride).

2. g[Y](x) contient une seule occurrence de x : HC4-Reviseest appliqu´ee `a g[Y](x).

3. g[Y](x) a des occurrences multiples et d <4 :

d´etermination analytique de la plus petite racine de g[a](x) = 0.

4. g[Y](x) a des occurrences multiples et d≥4 :

d´etermination num´erique (avec BoxNarrow) de la plus petite racine deg[Y](x) = 0.

5La version intervalles de la d´etermination des solutions r´eelles souligne le raisonnement ensembliste permis par les intervalles. Il suffit en effet de tester que la racine carr´ee du discriminant est “vide” (au sens inter-valle/ensembliste) pour d´etecter l’absence de solutions r´eelles.

Remarques

Le deuxi`eme cas ci-dessus s’illustre par exemple sur l’une des ´equations de l’instanceCaprasse :

−2x+ 2txy−z+y2z= 0 queMathematicar´e´ecrit sous la forme :x(−2 + 2ty) + (−1 +y2)z= 0 (pour la contraction de [x] ou [z]). On voit bien que la forme r´e´ecrite a fait disparaˆıtre les occurrences multiples dex etz.

L’utilisation d’un outil de calcul formel a plusieurs vertus. D’abord, la nouvelle forme produite n’est pas `a proprement parl´ee une forme enti`erement d´evelopp´ee. Il s’agit bien d’une forme d´evelopp´ee par rapport `ax, mais la proc´edure de calcul formel cherche au contraire une forme des coefficients fi([Y]) qui limite les occurrences multiples des variables de Y et donc g´en´eralement la surestimation de [fi]N([Y]). L’exemple de l’´equation dans l’instance Caprasse montre une transformation r´eussie qui se traduit au final par un gain en temps. Une ´equation de l’instance 6body montre au contraire une transformation contreproductive de 5(B −D) + 3(b−d)(B + D−2F) = 0 en B(5 + 3(b−d)) + (−5 + 3b−3d)D+ 6(−b+d)F = 0 (pour la contraction de [B] ou [D]) qui augmente la surestimation `a cause des occurrences multiples additionnelles des variables a, b et d. Cet exemple souligne que la contraction obtenue au final d´epend de la forme utilis´ee. Si PolyBoxRevise obtient cette contraction rapidement grˆace aux fonctions extrˆemes (ponctuelles), la contraction obtenue est en revanche incomparable `a celle obtenue par BoxNarrow sur la forme initiale. (C’est pourquoi notre implantation ajoute syst´ematiquement au d´ebut dePolyBoxReviseun appel `aHC4-Revise sur la forme initiale.)

Notons aussi qu’un outil de calcul formel permet de produire une forme sp´ecifique pour chaque paire (f, x) consid´er´ee dansPolyBoxRevise.

Comparaison avec la Box de Numerica

Van Hentenryck, Michel et Deville ont ´egalement utilis´e l’id´ee des polynˆomes extrˆemes (sans utiliser ce vocabulaire) dans leur outil de r´esolution `a intervalles Numerica. L’id´ee n’est pas d´ecrite dans leur c´el`ebre livre [293] mais introduite en deux pages dans un article technique [291].

L’int´egration de cette id´ee dans leur outil est sensiblement diff´erente de la nˆotre.Numericautilise diff´erentes formes des ´equations : une forme “naturelle”, une forme de Taylor (pour y appliquer un Newton intervalles sans pr´econditionnement) et une forme d´evelopp´ee qui permet d’utiliser les fonctions extrˆemes. Une propagation s´epar´ee est lanc´ee sur le syst`eme sous forme d´evelopp´ee.

PolyBox suit au contraire un sch´ema proche de BC4 en g´erant un unique syst`eme avec des proc´edures de r´evision adapt´ees `a chaque paire (f, x). Notons queBC4a en quelque sorte oubli´e les polynˆomes extrˆemes deNumericaet quePolyBox peut donc se voir comme un moyen de les r´ehabiliter dans un sch´ema moderne.PolyBoxapporte quelques am´eliorations par rapport `a son pr´ed´ecesseur dansNumerica :

– Il peut utiliser une forme adapt´ee `a la contraction de chaque variable, alors qu’une forme enti`erement d´evelopp´ee, par rapport `a toutes les variables, entraˆıne souvent une forte sures-timation, ce qui souligne l’int´erˆet d’utiliser un outil de calcul formel (voir les remarques plus haut).

– CommeBC4,PolyBox utilise aussiHC4-Revise quandx apparaˆıt une seule fois dansf.

3.4. Autres contributions 63 – La r´esolution analytique des polynˆomes de bas degr´e est ajout´ee.

R´esultats obtenus

On trouve `a l’annexe F des r´esultats exp´erimentaux qui montrent des gains int´eressants d’une strat´egie de recherche bas´ee sur PolyBox+Newton par rapport aux strat´egies Box + Newton etHC4+Newton. Malheureusement, `a quelques exceptions pr`es,PolyBoxn’est pas concurrentiel avec 3BCID(HC4) et surtout avec 3BCID(Mohc)(voir les commentaires `a la section 3.3.7 sur la comparaison entreBoxNarrowetMohcRevise). A cause du coˆut tr`es peu ´elev´e dePolyBoxRevise quand la contraction est obtenue de mani`ere analytique (polynˆomes de degr´es 2 et 3 dans notre implantation), une id´ee `a retenir peut-ˆetre serait de garder uniquement ces proc´edures comme des contracteurs sp´ecifiques, similaires `a des contraintes globales[241, 1, 183], et de les ajouter automatiquement dans une strat´egie de recherche.

3.4.2 Domaines repr´esent´es par des unions d’intervalles

(Travail en collaboration avec Gilles Chabert et Bertrand Neveu ; Cf. la th`ese de Gilles Chabert, ainsi que les articles `a SAC 2005 [53] et JFPC 2005 [54])

La motivation de ce travail est d’essayer de r´eduire les domaines des variables non pas seulement sur les bornes, mais aussi `a l’int´erieur, dans les “trous”, en g´erant non pas de simples intervalles mais des domaines repr´esent´es par des unions d’intervalles. Un algorithme de propagation de contraintes qui travaillerait avec des unions d’intervalles et essaierait de calculer l’arc-coh´erence du syst`eme pourrait malheureusement parfois g´en´erer une infinit´e d’intervalles dans les domaines dans un mod`ele th´eorique sur les r´eels. En utilisant les nombres flottants, cela signifie qu’un algorithme de propagation pourrait g´en´erer tr`es rapidement un nombre d’intervalles dans les domaines ´egal au nombre de flottants. Un exemple dˆu `a Chabert et soulignant cette explosion est illustr´e `a la figure 3.6. Il est form´e des deux contraintes c1 :x = y et c2 : (34(x−5)2) = y dans la boˆıte [1,9]×[1,9].

La premi`ere projection sur x de la contrainte c2 (avec TAC-Revise, la variante combinatoire de HC4-Revise qui ne calcule pas d’enveloppe) produit un premier “trou” dans [x]. La pro-jection sur y de c1 produit un trou dans [y], etc. On obtient ainsi, au bout de k it´erations, des unions d’intervalles contenant 2k intervalles. C’est pr´ecis´ement ce que calcule l’algorithme de Hyv¨onen [140] en effectuant un point de choix `a chaque d´ecoupage naturel, c’est-`a-dire au niveau d’un trou d´ecouvert dans une projection. Nous avons propos´e deux algorithmes de propa-gation de contraintes permettant d’´eviter cette explosion combinatoire en pratique et permettant de calculer une consistance partielle plus forte que l’arc-coh´erence.

Algorithme I-coh´erence globale (IGC)

L’id´ee derri`ere IGC consiste `a enrichir la structure d’union d’intervalles en ´etiquetant chaque intervalle avec une information indiquant sur quelles boˆıtes arc-coh´erentes il prend support. Cette vue macroscopique est mise en œuvre par un ensemble d’´etiquettesattach´ees `a chaque intervalle

0

Fig. 3.6 – Filtrage sur des unions d’intervalles

et propag´ees au fil des projections. Illustrons ce principe sur notre exemple. Lors de la premi`ere projection sur x (quadrant en haut `a droite), IGC attache l’´etiquette x (correspondant `a la projection−√

) `a l’intervalle le plus petit et l’´etiquettex+(correspondant `a la projection +√ ) au plus grand. Lors de la premi`ere projection sur y (quadrant en bas `a gauche), l’intervalle le plus petit dey “h´erite” de l’´etiquettex, alors que l’intervalle le plus grand h´erite dex+. Ainsi, la situation d´ecrite dans le quadrant en bas `a droite ne peut pas se produire. L’intervalle de x le plus petit est ´elimin´e car il est ´etiquet´ex mais provient d’une projection d’un intervalle de y´etiquet´e x+, ce qui est contradictoire. Le troisi`eme intervalle de xest ´egalement ´elimin´e car il est ´etiquet´e x+ alors qu’il provient d’une projection de y´etiquet´eex.

Les ´etiquettes permettent ainsi de maintenir au fil des projections l’ensemble des intervalles qui sont compatibles entre eux. Cette vue macroscopique permet d’´eliminer simplement les faux supports, c’est-`a-dire les intervalles qui ne forment pas une clique dans cette structure suppl´ementaire (d’o`u le terme de coh´erence globale - au niveau macroscopique - dans le nom de l’algorithme). L’implantation de l’algorithme correspondant fait appel `a une structure so-phistiqu´ee, apparent´ee au BDD de Bryant [44], qui permet de stocker de mani`ere concise pour chaque variable un ensemble d’´etiquettes compatibles entre elles. Chaque projection consulte alors cette structure pour ´eliminer parfois un intervalle donn´e du domaine de la variable consi-der´ee. Cet algorithme est limit´e aux syst`emes polynomiaux (pour lesquels il suffit de g´erer deux parties monotones), mais est th´eoriquement extensible aux syst`emes quelconques en g´erant un nombre arbitraire de parties monotones, lors d’une projection d’une fonctionsinus par exemple.

IGC calcule une consistance partielle plus forte que l’arc-coh´erence du syst`eme ternaris´e, ce qui est une contribution acad´emique appr´eciable. L’explosion combinatoire li´ee `a ces faux supports

3.4. Autres contributions 65 est effectivement maˆıtris´ee en pratique. En th´eorie, en utilisant les slogans `a la mode, on peut consid´erer cet algorithme comme un algorithme `a param`etres fixes (fixed-parameter algorithm), c’est-`a-dire qu’il troque un facteur exponentiel en le nombre de flottants (qui produit parfois une explosion en pratique) contre un facteur exponentiel en le nombre de fonctions ´el´ementaires pouvant cr´eer un trou. Mˆeme si nous n’avons pas observ´e d’explosion li´ee `a ce dernier facteur, le surcoˆut du maintien de la structure de donn´ees sophistiqu´ee ne rend pas l’approche concur-rentielle avec l’algorithme suivant.

Algorithme Lazy BoxSet

Pour le d´ecrire simplement, Lazy BoxSet peut se voir comme l’assemblage d’une variante de l’algorithme de 2B-coh´erence (commeHC4) et d’une strat´egie de d´ecoupagenaturelqui s’applique sur un domaine form´e d’une union d’intervalles dans un trou entre deux intervalles cons´ecutifs.

Trois ´etapes principales constituent cet algorithme :

1. L’algorithme HC4est d’abord appel´e. L’algorithmeHC4 est en fait modifi´e, sans pratique-ment aucun surcoˆut, de mani`ere `a m´emoriser une contrainte susceptible de produire un trou.

2. Une fois le point-fixe de HC4 atteint, cette contrainte est alors trait´ee par l’algorithme TAC-Revise, la variante combinatoire deHC4-Revise (cf. section 2.4.3).

3. Le branchement suivant dans l’arbre de recherche effectue alors un d´ecoupage naturel sur l’une de ces variables.

Ce processus est it´er´e jusqu’`a l’obtention en chaque feuille de cet arbre d’une boˆıte arc-coh´erente.

Vue comme une consistance partielle, la propri´et´e obtenue est plus forte que l’IGC-coh´erence.

Autrement dit, l’ensemble des feuilles arc-coh´erentes (obtenu par Lazy BoxSet) est plus restreint que l’ensemble des boˆıtes obtenues par produit cart´esien des domaines (union d’intervalles) IGC-coh´erents.

Un algorithme similaire `aLazy Box-seta ´et´e obtenu (par des voies diff´erentes) par Heikel Batnini dans sa th`ese [22, 23].

Les premiers r´esultats exp´erimentaux de Chabert comme de Batnini sont d´ecevants. Si Lazy Box-set ne produit pratiquement aucun surcoˆut, les exemples de gain produits par le d´ecoupage naturel restent `a identifier. Les gains sont g´en´eralement marginaux voire n´egatifs puisque le d´ecoupage naturel empˆeche en quelque sorte l’utilisation d’une autre heuristique de choix de variable. Dans les rares cas d’am´elioration sensible, il semble que cela soit dˆu `a un choix pr´ecoce d’une seule variable qui permette de r´esoudre rapidement le probl`eme ind´ependamment des trous dans son domaine, bref `a un heureux effet de bord. Pourtant une ´etude plus exhaustive m´eriterait d’ˆetre men´ee, simplement `a cause d’une perspective possible li´ee `a l’algorithmeMohc (introduit `a la section 3.3).

Perspective : une variante de Lazy BoxSet en amont de l’algorithme Mohc ?

Une variante de Lazy BoxSet permettrait d’augmenter les cas de monotonie que Mohc pourrait exploiter. Lors de la projection d’une fonction ´el´ementaire, il suffirait de mettre dans le domaine du nœud correspondant l’union dechaqueintervalle correspondant `a une partie monotone de la fonction. (La version actuelle peut rassembler en un seul intervalle non monotone deux parties monotones qui sont simplement continues sur l’intervalle englobant.) Un d´ecoupage naturel augmenterait alors les cas de monotonie que l’algorithme de contractionMohcpourrait exploiter.

Cette id´ee s´eduisante m´erite approfondissement mais ne me paraˆıt pas prometteuse `a premi`ere vue. Un d´ecoupage naturel sur les variables comme sur les nœuds interm´ediaires est en effet coˆuteux et calcule une propri´et´e bien trop forte. Pour obtenir une fonction monotone, il n’est en effet pas n´ecessaire d’obtenir la monotonie sur tous ses op´erateurs ´el´ementaires (les nœuds interm´ediaires)...

3.4.3 Ibex

Interval-Based EXplorer est un outil de r´esolution de syst`emes de contraintes utilisant des m´ethodes `a intervalles [52, 50]. Ibex est essentiellement l’œuvre de Gilles Chabert qu’il a com-menc´ee pendant sa th`ese (appel´ee alorsIcosAlias). Apr`es sa th`ese, Chabert a fait de Ibexune biblioth`eque libre et invite depuis les contributeurs `a se joindre `a cette micro-communaut´e. Lors de son post-doctorat avec Luc Jaulin `a Brest, il a ´egalement produit avec celui-ci une couche au dessus deIbex, nomm´eeQuimper, qui masque la hi´erarchie de classes et offre un petit interpr`ete et une interface graphique facilitant l’acc`es de l’outil aux utilisateurs non informaticiens issus de l’ing´eni´erie (physique, automatique, robotique, traitement du signal, etc). Bertrand Neveu et moi-mˆeme sommes responsables des algorithmes de programmation par contraintes inclus dans Ibex et, avec Ignacio Araya, utilisons Ibex pour d´evelopper l’ensemble de nos m´ethodes `a in-tervalles. Nous participons ´egalement aux discussions sur l’architecture g´en´erale et la hi´erarchie de classes.

Cette biblioth`eque en C++ permet de trouver l’ensemble des solutions d’un syst`eme mais ne permet pas (encore) d’optimiser une fonction objectif. En plus d’un syst`eme classique, Ibex permet de d´efinir facilement un syst`eme quantifi´e contenant des param`etres existentiels ou uni-versels ou de g´en´erer des boˆıtes int´erieures (ne contenant que des solutions). L’arithm´etique des intervalles est mise en œuvre par la biblioth`eque BIAS/PROFIL (corrig´ee). Ibex a comme priorit´es la flexibilit´e, afin de facilement piloter les diff´erentes briques algorithmiques incluses, et l’extensibilit´e. En particulier, une liste de contracteurs (de boˆıtes int´erieures ou ext´erieures) est appliqu´ee entre chaque branchement. Cela permet, entre autres, de mettre en œuvre des sous-syst`emes filtrants qui me semblent importants en pratique. Similaires `a des contraintes globales [241, 1, 183], ces contracteurs filtrent un sous-syst`eme (d´etermin´e manuellement ou automatiquement) `a l’aide d’un algorithme d´edi´e et propagent les r´eductions obtenues dans le reste du syst`eme. Un exemple d’application est l’algorithme Box-kd´ecrit au chapitre J.

Un autre atout de Ibex est sa robustesse, c’est-`a-dire une absence de perte de solution en utilisant les contracteurs pr´esents dans la distribution actuelle (`a ma connaissance).Ibexposs`ede

3.5. Perspectives 67

´

egalement des limites, notamment la non-utilisation de briques de programmation lin´eaire fiable, comme dans l’algorithmeQuad deIcos[183]. Soulignons aussi, contrairement `a ALIAS [201], la non-utilisation des d´eriv´ees secondes des fonctions qui permettraient une ´evaluation plus fine des d´eriv´ees premi`eres et l’appel `a d’autres algorithmes d’analyse num´erique, comme Kantorovitch.

Pour conclure,Ibexa ´et´e et demeure toujours un outil indispensable pour d´evelopper la plupart des m´ethodes `a intervalles d´ecrites dans ce m´emoire. Certains choix d’architecture et la hi´erarchie de classes maintenant plus stable m´eritent dor´enavant d’ˆetre pr´esent´es `a la communaut´e. L’ar-chitecture d’Ibexest aujourd’hui suffisamment mˆure pour que des sp´ecialistes enrichissent cette biblioth`eque. Ibex a le potentiel pour f´ed´erer une partie des contributions sur les m´ethodes `a intervalles, notamment celles issues de PPCI et des applicatifs (cf. sections 2.7 et 2.9). La section suivante placeIbexdans un cadre plus large et souhaitable d’´evolution des logiciels de r´esolution de syst`emes de contraintes.

3.5 Perspectives

En plus des perspectives `a court terme mentionn´ees dans les sections correspondantes, les para-graphes suivants donnent quelques perspectives de recherche `a plus long terme.

Apports de la PPCI

Dans les ann´ees 1960 et 1970, la communaut´e d’analyse par intervalles proposait sch´ematiquement un mod`ele de r´esolution comprenant entre chaque point de choix un appel `a un test d’existence bas´e sur la monotonie et un appel `a un Newton intervalles. La communaut´e de programmation par contraintes a propos´e notamment d’ajouter `a ce sch´ema le contracteur HC4ou Box(parfois 3B).

Notre premi`ere contribution en PPCI est de proposer un sch´ema sensiblement diff´erent, `a savoir :

Notre premi`ere contribution en PPCI est de proposer un sch´ema sensiblement diff´erent, `a savoir :