• Aucun résultat trouvé

Le principe de rognage deVarShavingest similaire `a celui de la proc´edureBoxNarrow. Dans les solveurs, VarShaving d´ecoupe d’ailleurs g´en´eralement les tranches de mani`ere dichotomique, comme le fait BoxNarrow. La diff´erence majeure est que, dans BoxNarrow, une tranche ne peut ˆetre r´efut´ee qu’en raisonnant sur la contrainte (unique) consid´er´ee. Une tranche dans 3B est ´elimin´ee par VarShaving en consid´erant le syst`eme entier. C’est ce point essentiel qui ex-plique que des versions avanc´ees de l’algorithme3Bsemble offrir des performances g´en´eralement meilleures que Box. Une des contributions pr´esent´ees `a la section 3.2 est d’offrir des versions am´elior´ees de l’algorithme 3B qui justifient de r´ehabiliter cet algorithme aussi simple que puis-sant et bien trop sous-estim´e actuellement.

L’algorithme 3B a ´et´e propos´e pour la premi`ere fois par Olivier Lhomme en 1993 [186]. L’id´ee de rognage a ´et´e propos´ee aussi pour les probl`emes discrets. Elle est `a la base de l’algorithme de propagation SAC [64] pour les CSP. Elle est un des ingr´edients essentiels de SATZ [209] qui reste un algorithme de r´ef´erence pour r´esoudre les instances al´eatoires (non structur´ees) du probl`eme SAT (satisfiabilit´e de formules logiques bool´eennes). On la met en œuvre aussi depuis des ann´ees pour r´esoudre des probl`emes d’ordonnancement. A titre r´ecr´eatif, on peut r´esoudre pratiquement toutes les instances de Sudoku (en tout cas de taille 3, c’est-`a-dire les grilles 9×9) sans d´evelopper le moindre arbre de recherche avec un algorithmeSAC(GAC)6. Cela signifie que cet algorithme simple subsume la plupart des “r`egles” propos´ees pour r´esoudre une grille de Sudoku.

Autres repr´esentations des contraintes

Il existe aussi des algorithmes qui mettent les contraintes sous une forme diff´erente, quand celles-ci sont polynomiales. Mentionnons notamment les travaux r´e´ecrivant les polynˆomes dans la base de Berntein pour produire de nouveaux contracteurs puissants [90, 217, 215].

2.5 Probl` emes plus difficiles

Le sch´ema de r´esolution ci-dessus se place dans l’hypoth`ese favorable o`u le syst`eme de contraintes poss`ede un ensemble fini de solutions ponctuelles pouvant ˆetre approxim´ees par un ensemble de boˆıtes atomiques. Cela se produit quand le syst`eme bien contraint est carr´e, c’est-`a-dire poss`ede n´equations ind´ependantes portant surn variables.

Ce probl`eme doit ˆetre trait´e par des techniques combinatoires (cf. le paragraphe sur la complexit´e th´eorique `a la section 3.5), c’est-`a-dire exponentielles en temps dans le pire des cas. C’est le cas des techniques alg´ebriques utilisant les bases de Gr¨obner [45], des m´ethodes de continuation [5]

ou bien des m´ethodes `a intervalles. Il existe n´eanmoins des probl`emes encore plus difficiles : – L’optimisation d’une fonctionF multivari´ee non-lin´eaire (sans contrainte) peut s’aborder avec

un sch´ema proche de l’algorithmetrouverSolutions(cf. section 2.3) en g´en´erant un syst`eme

6Il s’agit d’un algorithme proche de 3B(HC4)... Des contraintes de diff´erence (AllDiff de R´egin [241]) sont efinies pour chaque ligne, chaque colonne et chaque bloc carr´e 3×3 ; elles sontevis´ees par un algorithme de flot et propag´ees par un algorithme d’arc-coh´erence g´en´eralis´e (GAC).

n×n o`u chaque ´equation est de la forme ∂f∂xj

i(x) = 0 [293] (les d´eriv´ees partielles de fj s’annulent toutes en chaque minimum et chaque maximum local).

– L’optimisation d’une fonction sous contraintes, dont le sch´ema de r´esolution a ´et´e esquiss´e `a la section 2.3.

– Le traitement de syst`emes d’´equations diff´erentielles (ordinaires) [218, 143] ou d’int´egrales.

– Le traitement de syst`emes o`u les variables sont quantifi´ees universellement ou existentielle-ment [51, 100, 102, 103].

– Le traitement de syst`emes hybrides contenant `a la fois des contraintes non-lin´eaires sur des variables `a valeurs r´eelles et des contraintes sur des variables discr`etes (enti`eres par exemple).

Nous introduisons ci-dessous comment aborder les syst`emes d’in´egalit´es et les syst`emes quan-tifi´es.

2.5.1 Traitement des in´egalit´es et boˆıtes int´erieures

Des approches bas´ees sur les intervalles ont ´et´e propos´ees pour traiter les syst`emes qui com-portent un ensemble infini de solutions, notamment un syst`eme d’in´egalit´es avec uncontinuum de solutions. L’approche standard consiste `a extraire de ce continuum une des solutions qui minimise un crit`ere donn´e. Selon les applications, l’optimisation sous contraintes ne satisfait pas toujours l’utilisateur, notamment quand plusieurs crit`eres doivent ˆetre optimis´es en mˆeme temps (optimisation multi-crit`eres).

Pour repr´esenter un continuum de solutions de mani`ere relativement compacte, une alternative est de le paver avec des boˆıtes ext´erieures et des boˆıtes int´erieures. Les boˆıtes ext´erieures sont celles que nous connaissons et qui sont susceptibles de contenir des solutions : les contracteurs garantissent qu’il n’y a pas de solution en dehors de ces boˆıtes. Une boˆıte int´erieure est une boˆıte dont tous les points sont solutions : ∀f ∈ F,∀X ∈ [X], f(X) = 0. Autrement dit, une boˆıte int´erieure est contenue dans un continuum de solutions. L’int´erˆet principal est de ne pas devoir d´ecouper ces boˆıtes int´erieures jusqu’`a la pr´ecision , ce qui am´eliore sensiblement le nombre total de boˆıtes dans le pavage et donc les performances.

Seules les m´ethodes `a intervalles, dans les petites dimensions, peuvent aujourd’hui approximer finement un continuum de solutions. Plusieurs techniques ont vu le jour.

Un test int´erieur simple raisonne sur chaque contrainte individuellement et peut se voir comme le dual d’un algorithme de propagation de contraintes pour les boˆıtes ext´erieures. Le raisonnement logique est un peu tordu (quelques lignes d’´equivalence avec des double-n´egations), mais conduit au principe suivant. Soit un syst`eme comportant les contraintes (in´egalit´es)c1∧...∧cn. Si une boˆıte [B] est ´elimin´ee `a la fois par¬c1,¬c2,... et¬cn(en g´en´erant la n´egation de chaque in´egalit´e), cela signifie que [B] est une boˆıte int´erieure. Cette id´ee a ´et´e utilis´ee dans diverses applications par des chercheurs comme Luc Jaulin [147] et Jean-Pierre Merlet [203]. Elle a ´et´e formalis´ee notamment par Rueher et al. [59] et Benhamou, Goualard [27]. Elle est int´egr´ee dans certains outils de r´esolution, dontIbex [52, 50].

2.5. Probl`emes plus difficiles 37 2.5.2 AE-syst`emes

Il existe aussi une g´en´eralisation des syst`emes classiques qui comportent des continuums de solutions. Il s’agit des AE-syst`emes (All-Exist systems) qui contiennent des fonctions param´etr´ees par des param`etresU quantifi´es universellement et des param`etresV quantifi´es existentiellement.

Une fonction param´etr´ee est de la forme suivante :∀U ∈[U], ∃V ∈[V], f(X, U, V) = 0.

Sans d´etailler, deux ingr´edients essentiels permettent d’aborder ces probl`emes. Premi`erement, en plus des variables (X), il faut aussi bissecter les param`etres U et V en d´eployant un arbre de recherche et/ou. Deuxi`emement, il existe des tests int´erieurs applicables aux AE-syst`emes qui sont plus puissants que celui d´ecrit ci-dessus, mais utilisables seulement quand le syst`eme respecte certaines propri´et´es, parfois v´erifiables en pratique :

– Quand un syst`eme d’in´egalit´es est seulement quantifi´e universellement (∀U ∈[U], f(X, U) ≤ 0), Goldsztejn, Michel et Rueher proposent d’ajouter, au test int´erieur simple d´ecrit ci-dessus, une heuristique de bissection sp´ecifique des param`etresU [106].

– Dans le cas (rare en pratique) o`u chaque param`etre existentielv∈V n’apparaˆıt que dans une seule ´equation et peut ˆetre isol´e (f(X, v) ≡g(X) = v), alors la condition G([X]) ⊆ [V] est suffisante pour montrer que [X] est une boˆıte int´erieure [110].

– Quand le nombre de param`etres existentiels est ´egal au nombre de variables, une permutation variable-param`etre permet `a un algorithme de Newton intervalles multivari´e (´epais) d’iden-tifier une boˆıte int´erieure, dans le cas o`u il garantit une solution “unique” dans le syst`eme ayant subi la permutation [101].

– Un test simple utilise les intervalles g´en´eralis´es [163, 100] dans le cas (rare) o`u chaque com-posante de V n’apparaˆıt au plus qu’une fois dans l’ensembleF des fonctions7.

– Quand le syst`eme est lin´eaire en les param`etres existentiels, un test int´erieur r´esout (enV) ce syst`eme lin´eaire.

Un probl`eme de positionnement de la plateforme mobile d’un robot parall`ele ´etudi´e dans mon

´

equipe (cf. [109], [205] et la future th`ese de Julien Hubert) tombe pr´ecis´ement dans ce dernier cas. Le but est de d´eterminer l’espace des positions (6 dimensions/variables) de la plateforme d´efini par {X ∈ Rn t.q. ∀F ∈ [F],∃τ ∈ [τ] A(X)τ = F}. Physiquement, cela signifie que quelles que soient les forces dans [F] que peut subir la plateforme, il existe une force dans [τ] que les jambes peuvent supporter sans casser. A(X) est une matrice qui d´epend des positions X seulement.

Un test de boˆıte int´erieure sp´ecifique utilise le fait que le probl`eme est lin´eaire en τ. Pour une boˆıte [X] donn´ee, on calcule une extension aux intervalles [A] de la matrice A(X) sur [X]. On r´esout ensuite le syst`eme lin´eaire [A].Y = [F] et on obtient [Y]. Si [Y]⊆[τ], alors [X] est une boˆıte int´erieure.

7Pour les initi´es : Si 0F(dual[X], dual[U], V), alors [X] est une boˆıte int´erieure [100].

2.5.3 Probl`eme trait´e dans ce m´emoire

Nous nous limitons dans ce m´emoire au probl`eme de r´esolution de syst`emes de contraintes non-lin´eaires (non convexes) le moins difficile, `a savoir celui consistant `a trouver (ou approximer) l’ensemble des solutions r´eelles.

Si des strat´egies de r´esolution ont ´et´e con¸cues pour les probl`emes plus difficiles mentionn´es ci-dessus, les performances actuelles ne permettent pas de traiter de tr`es gros syst`emes. Mon int´erˆet pour ce domaine est relativement r´ecent, et j’ai pr´ef´er´e concentrer mes efforts sur le probl`eme de satisfaction (trouver les solutions du syst`eme) pour trois raisons principales. D’abord, le chapitre 3 soulignera que les briques algorithmiques traitant ce probl`eme sont d´ej`a en soi tr`es perfectibles. De plus, attaquer les probl`emes plus difficiles peut sembler pr´ematur´e si l’on ne dis-pose pas de briques algorithmiques plus efficaces. A l’appui de cette remarque, on note pendant trente ans des progr`es tr`es lents, voire la stagnation de l’analyse par intervalles d’un point de vue applicatif, alors que les probl`emes d’optimisation globale ou d’´equations diff´erentielles ´etaient abord´es depuis le d´ebut. Un peu comme ce qui s’est produit pour les domaines de programma-tion par contraintes sur domaines finis (CSP) ou la satisfiabilit´e de formules logiques (SAT) : le probl`eme d’optimisation correspondant, NP-difficile (Max-SAT ou Max-CSP), a connu un int´erˆet d´ecal´e de 10 `a 20 ans par rapport au probl`eme de satisfaction moins difficile (NP-complet).

Enfin, nos contributions propos´ees au chapitre 3 n’ont pas ´et´e exp´eriment´ees sur les probl`emes ci-dessus, mais peuvent en th´eorie s’y appliquer. En effet, les algorithmes de contraction issues de la programmation par contraintes sont tr`es g´en´eraux et ne connaissent pas de restriction particuli`ere si l’on se limite aux fonctions ´el´ementaires ´enonc´ees `a la section 2.2.1.