Académique Documents
Professionnel Documents
Culture Documents
avec D
x
= [3, 4], D
y
= [4.5, 8], D
z
= [7, 9]
et D
k
= [0, 12],
C =
x
2
= y
x + y = z
z = k + y
t = k 5
.
Les contraintes de ce CSP continu sont les sommets de son graphe reprsentatif, et un arc tiquet
par un ensemble de variables relie deux contraintes partageant ces variables. En outre, ce CSP nadmet
aucune solution. Sans entrer ds maintenant dans les dtails propos du ltrage des domaines, qui sera
abord en profondeur dans la suite de ce chapitre, on peut dores-et-dj constater que le domaine D
x
=
[3, 4] de x ne contient aucun rel tel quil existe un y compatible au sens de la contrainte x
2
= y :
intuitivement, on comprend bien que les valeurs compatibles de y se trouvent dans le domaine [9, 16],
dont lintersection avec D
y
= [4.5, 8] est vide.
t
e
l
-
0
0
5
6
0
9
6
3
,
v
e
r
s
i
o
n
1
-
3
1
J
a
n
2
0
1
1
2.1. Modlisation des problmes 13
Pour nir, voici un problme avec une signication plus concrte, qui de plus savre tre un CSP
mixte i.e. faisant intervenir la fois des variables discrtes et des variables continues :
Exemple 2.5. [HSG01] Soit un circuit lectrique compos dune rsistance R
1
de 0.1 M connecte en
parallle une rsistance variable R
2
de valeur comprise entre 0.1 M et 0.4 M. Un condensateur
K est connect en srie ces deux rsistances. On dispose dun kit de composants lectroniques ne
contenant que les condensateurs de valeurs 1 F, 2.5 F, 5 F, 10 F, 20 F et 50 F. On cherche ce
que le temps de charge du condensateur soit compris entre 0.5 s et 1 s, i.e. que la tension aux bornes du
condensateur atteigne 99% de sa valeur entre 0.5 s et 1 s. Le CSP correspondant est :
X = t, R
2
, K,
1 = D
t
, D
R
2
, D
K
avec D
t
= [0.5, 1], D
R
2
= [0.1 10
6
, 0.4 10
6
],
et D
K
= 110
6
, 2.510
6
, 510
6
, 1010
6
, 2010
6
, 5010
6
,
C = C
ohm
, C
charge
avec C
ohm
:
1
R
=
1
R
1
+
1
R
2
la loi dOhm pour des rsistances en
parallle,
et C
charge
: 1exp(
t
RK
) = 0.99 la loi de charge dun condensateur
en srie.
La seule possibilit pour le condensateur cherch ici est de K = 10 F. Il existe cependant une
innit de couples de valeurs relles pour (t, R
2
) qui satisfont toutes les contraintes du problme pour
cette valeur de K. Dans ces conditions, on peut imaginer pertinent de formuler diremment le problme,
par exemple en ajoutant lobjectif de minimiser R. Nous allons maintenant voir, dans la suite de cette
section, que cette notion dobjectif est prpondrante en programmation mathmatique.
2.1.2 En programmation mathmatique
Le terme de programmation fait ici rfrence la description de la planication et de lordonnance-
ment dactivits au sein de grandes organisations, dans les annes 1940 initialement. Lide tait, dune
part, dexhiber des liens mathmatiques entre des grandeurs variables reprsentant des quantits pro-
duire ou des niveaux dactivit ; dautre part, de trouver un moyen dexprimer un objectif maximiser
ou minimiser en fonction des valeurs de ces grandeurs. La programmation mathmatique permet de d-
crire la minimisation ou la maximisation dune fonction-objectif dnie sur des variables soumises des
contraintes [FGK02].
Dnition 2.3 (Problme doptimisation sous contraintes). Un problme doptimisation sous contraintes
a la forme gnrique suivante :
min f (x
k
1
, . . . , x
k
n
f
), k
1
, . . . , k
n
f
N,
s.c. g
i
(x
i
1
, . . . , x
i
n
i
) = 0, i, i
1
, . . . , i
n
i
N,
h
j
(x
j
1
, . . . , x
j
n
j
) 0, j, j
1
, . . . , j
n
j
N,
x
m
x
m
x
m
, m N,
x
p
R, p P N,
x
q
Z, q Q N, P Q = .
Un problme doptimisation consiste trouver les valeurs des variables qui minimisent la valeur
correspondante de la fonction objectif. En outre, cette minimisation peut faire intervenir ou non des
contraintes satisfaire. Certaines variables peuvent tre entires, dautres relles, et linstar dun CSP,
t
e
l
-
0
0
5
6
0
9
6
3
,
v
e
r
s
i
o
n
1
-
3
1
J
a
n
2
0
1
1
14 rxr or ixar
un problme doptimisation peut tre discret, continu ou mixte selon le type des variables qui le consti-
tuent.
Le langage de modlisation en usage pour exprimer des problmes doptimisation se veut le plus
simple possible et utilise une syntaxe base essentiellement sur celle des mathmatiques. Notons quand
mme lutilisation de primitives de modlisation plus complexes issues de la programmation par contraintes,
i.e. les contraintes globales, comme une tendance apparue rcemment [Hoo07].
Considrons prsent quelques exemples de problmes doptimisation sous contraintes :
Exemple 2.6. [FGK02] Une petite acierie doit dcider de lallocation pour la semaine prochaine (40
heures au total) de son laminoir. Celui-ci traite des plaques dacier non nies et peut produire deux
types de produits semi-nis, des bandes et des rouleaux. Le laminoir peut produire 200 bandes ou 140
rouleaux par heure, sachant quune bande rapporte $ 25 et un rouleau $ 30. Enn, il ne faut pas pro-
duire davantage que le total des commandes programmes, savoir 6000 bandes et 4000 rouleaux. Le
problme doptimisation correspondant la question de dterminer les quantits respectives produire
pour maximiser le prot est le suivant :
max 25x + 30y
s.c.
1
200
x +
1
140
y 40,
0 x 6000,
0 y 4000,
x, y N.
Ce problme est purement discret, toutes les variables tant des variables entires. Lapplication de la
mthode de rsolution nous permet de trouver la solution optimale ce problme comme correspondant
x = 6000 et y = 1400, pour une valeur de lobjectif de 192000.
Le problme suivant est quant lui un problme doptimisation mixte, impliquant donc la fois des
variables relles et des variables entires :
Exemple 2.7. [DGDG95] Un ressort hlicodal de compression doit tre mis au point en minimisant
son volume. Les grandeurs dont dpend ce volume sont x
1
le nombre de spires, variable entire ; x
2
le
diamtre du l, variable relle avec seulement 42 valeurs possibles
4
; enn, x
3
le diamtre moyen des
spires, variable relle. Le problme doptimisation correspondant est le suivant :
min 0.25
2
x
2
2
x
3
(x
1
+ 2)
s.c. S
8KP
max
x
3
x
3
2
0,
l
max
P
max
K
1.05(x
1
+ 2)x
2
0,
x
2
d
min
0,
D
max
(x
2
+ x
3
) 0,
D
d
3 0,
pm
p
0,
P
max
P
k
w
0,
x
1
N,
x
2
0.0095, . . . , 0.5000,
x
3
R.
4
Les valeurs possibles pour ce diamtre sont les suivantes (en pouces) : 0.0095, 0.0104, 0.0118, 0.0128, 0.0132, 0.0140,
0.0150, 0.0162, 0.0173, 0.0180, 0.0200, 0.0230, 0.0250, 0.0280, 0.0320, 0.0350, 0.0410, 0.0470, 0.0540, 0.0630, 0.0720,
0.0800, 0.0920, 0.1050, 0.1200, 0.1350, 0.1480, 0.1620, 0.1770, 0.1920, 0.2070, 0.2250, 0.2440, 0.2630, 0.2830, 0.3070,
0.3310, 0.3620, 0.3940, 0.4375, 0.5000.
t
e
l
-
0
0
5
6
0
9
6
3
,
v
e
r
s
i
o
n
1
-
3
1
J
a
n
2
0
1
1
2.2. Techniques de rsolution 15
Les lecteurs intresss par une description plus approfondie de ce modle et en particulier la signi-
cation physique des direntes contraintes utilises pourront se reporter [KK94]. Quant la solution
optimale pour ce problme, on obtient x
1
= 10, x
2
= 0.283 et x
3
= 1.180, correspondant une valeur de
lobjectif de 2.798.
2.1.3 Gnralisation
Nous pouvons prsent gnraliser la notion de problme de satisfaction de contraintes et celles
de problme doptimisation sous contraintes en une notion plus gnrale dont lun et lautre sont des
instances particulires :
Dnition 2.4 (CSOP). Un problme de satisfaction de contraintes et doptimisation (CSOP) est un
quadruplet (X,1,C, f ) avec :
X un ensemble X
1
, X
2
, . . . , X
n
de variables,
1un ensemble D
1
, D
2
, . . . , D
n
de domaines tels que X
i
D
i
, i = 1 . . . n,
C un ensemble C
1
, C
2
, . . . , C
t
de contraintes o chaque C
i
est une relation portant sur un sous-
ensemble de X, i = 1 . . . t,
f une fonction-objectif, dnie sur un sous-ensemble de X, ventuellement constante.
Cest ltude et au dveloppement de mthodes de rsolution ddies ce type spcique de pro-
blmes que se consacre cette thse, dans le cas particulier des CSOP qui impliquent la fois des variables
discrtes et des variables continues.
2.2 Techniques de rsolution
Cette section introduit en dtails le cadre gnrique de rsolution mis en oeuvre par la programmation
par contraintes. Les deux thmes majeurs en sont :
le ltrage des domaines ;
lexploration de lespace de recherche.
2.2.1 Filtrage des domaines
Comme on a pu le constater brivement dans la section prcdente et notamment propos de
lexemple 2.4, les contraintes permettent de ltrer les domaines des variables sur lesquelles elles portent.
En eet, il est fait mention ds 1977, dans [Mac77], dune faon dont le processus de rsolution des
CSP peut tre acclr en tenant compte des contraintes de manire plus prcise. Mxckwoarn y explique
comment gagner du temps en faisant prcder la rsolution proprement dite par une phase de rduction
des domaines. En dnissant certaines proprits que respectent les solutions dun problme donn, il
est possible de vider les domaines des valeurs qui ne les respectent pas et ainsi dacclrer
5
le processus
de rsolution.
Notion de consistance
Les pionniers de cette technique sont Wxirz, Moxrxxxar, Mxckwoarn, et Fartora dans [Wal72],
[Mon74], [Mac77], et [Fre78]. Si cest Mxckwoarn quon doit la notion de consistance pour dsigner
5
Cela sera dtaill au dbut de la sous-section suivante propos de lexploration de lespace de recherche.
t
e
l
-
0
0
5
6
0
9
6
3
,
v
e
r
s
i
o
n
1
-
3
1
J
a
n
2
0
1
1
16 rxr or ixar
la proprit qui sert distinguer les valeurs quon garde et celles quon limine, il ne fait que poser un
mot sur une notion quont dj dnie prcdemment Wxirz et Moxrxxxar. Ce sont les mmes Fartora
et Mxckwoarn qui reviennent en 1985 dans [MF85] sur la complexit de leurs propres algorithmes et
de leurs volutions. Dans [MH86], on trouvera ensuite une nouvelle version de leur algorithme, puis
notamment dans [HDmT92] et dans [Bes94].
En eet, depuis son apparition cette notion de consistance a t utilise sous de nombreuses dcli-
naisons. En fonction de leur ecacit rduire les domaines et de leur rapidit le faire, ces direntes
volutions du constat initial de Mxckwoarn se sont transformes, ont t amliores, revues et corriges
les unes aprs les autres et sont plus que jamais en usage aujourdhui.
Les techniques de ltrage varient selon quil sagit dun CSP discret, continu ou mixte. Dans cette
sous-section, nous passons en revue les direntes mthodes mises en application pour chaque type de
CSP.
2.2.1.1 Domaines discrets
La consistance darc
6
[Mac77] permet de vrier que toutes les valeurs dun domaine disposent
dau moins une valeur dans les domaines des autres variables pour lesquelles une contrainte donne est
satisfaite :
Dnition 2.5 (Consistance darc). Etant donn un CSP P = (X, 1, C), le domaine D dune variable
V est arc-consistant par rapport une contrainte C ssi pour toute valeur v de D, il existe au moins une
combinaison de valeurs pour les autres variables de C telle que C est satisfaite une telle combinaison
de valeurs est appele support. Un CSP est arc-consistant ssi tous ses domaines le sont par rapport
toutes ses contraintes.
On peut retirer dun domaine non arc-consistant ses valeurs sans support puisquelles ne participeront
aucune solution. En eet, pour ces valeurs inconsistantes il existe au moins une variable qui ne possde
aucune valeur compatible au sens dune contrainte donne. Cest dailleurs lide de base du ltrage
par consistance darc : retirer de tous les domaines toutes les valeurs qui ne sont pas arc-consistantes.
Cependant, cest un mcanisme algorithmiquement coteux, mme si de nombreuses amliorations de
lalgorithme initial ont vu le jour les unes aprs les autres, notamment dans [Mac77], [MF85], [MH86],
[HDmT92], [Bes94], et rassembles rcemment dans [Bes06].
Exemple 2.8. [Mac77] Le CSP reprsent lexemple 2.2, aprs ltrage par consistance darc :
(i) CSP initial (ii) CSP aprs ltrage par AC
6
Ce terme de consistance darc a pour origine le raisonnement sur la reprsentation du CSP sous forme de graphe, telle quin-
troduite dans la prcdente section. En ralit, il sagit bel-et-bien dun anglicisme, consacr par la communaut francophone
de la programmation par contraintes, alors quune traduction dle du terme original arc consistency serait plutt cohrence
darc [Heu06].
t
e
l
-
0
0
5
6
0
9
6
3
,
v
e
r
s
i
o
n
1
-
3
1
J
a
n
2
0
1
1
2.2. Techniques de rsolution 17
Les valeurs a des variables X
1
, X
2
et X
4
ne sont compatibles avec aucune valeur de X
3
ni de X
5
, et ont
donc t supprimes.
Lalgorithme de ltrage par consistance darc dans sa version optimale AC7 a dans le pire des cas
une complexit temporelle en O(ed
2
) et spatiale en O(ed), avec e le nombre de contraintes et d la taille
du plus grand domaine [BFR99].
Paralllement, Moxrxxxar a dni dans [Mon74] une proprit trs forte des solutions des rseaux
de relations. Cest cette proprit, que Mxckwoarn a rebaptis ensuite consistance de chemin. Elle est
bien plus forte que la consistance darc car elle permet cette fois de retirer des domaines des n-uplets de
valeurs incompatibles, qui napparaissent dans aucune solution. Mais elle est en revanche plus dicile
implmenter et coteuse calculer.
Dnition 2.6 (Consistance de chemin). Etant donn un CSP P = (X, 1, C), la paire de domaines
(D
, D
) des variables V
et V
+
1
, V
+
m
et
+
i
+
i+1
i < m ssi pour toute paire de valeurs de (D
, D
et V
= (X, 1, C C
3
: X
1
= X
3
) est chemin-consistant.
De nombreuses volutions de ces deux consistances ont ensuite vu le jour. On trouve aujourdhui
un grand nombre de consistances discrtes direntes, chacune tant dote dune puissance de ltrage
relativement plus forte ou plus faible que les autres, et permettant de trouver le bonne quilibre selon les
cas entre puissance de ltrage et rapidit dexcution
7
.
2.2.1.2 Domaines continus
En prsence de contraintes sur les rels, les techniques de ltrage
8
de domaines discrets que nous
venons de prsenter ne sont pas applicables en ltat. Elles doivent tre retravailles pour sadapter ce
type de domaine, et notamment limpossibilit dnumrer en pratique un domaine continu.
7
LAnnexe A contient un complment dinformation ce propos qui nest pas en rapport direct avec lobjet de cette thse.
8
Pour un domaine continu, on utilisera galement le terme de rduction ou de contraction.
t
e
l
-
0
0
5
6
0
9
6
3
,
v
e
r
s
i
o
n
1
-
3
1
J
a
n
2
0
1
1
18 rxr or ixar
Reprsentation des nombres rels
Un problme fondamental de linformatique est la reprsentation en machine des nombres rels,
reprsentation par essence approche puisquune quantit nie de bits ne permet de reprsenter quune
quantit nie de nombres. Un nombre ottant f est dni de manire normalise comme suit [IEE85] :
f = (1)
s
m 2
E
o s est le bit de signe, m la mantisse et E lexposant. On dnit ainsi lensemble F des nombres ottants.
Remarquons linclusion F R. Dans ces conditions, il ny a pas dautre choix que darrondir chaque rel
au ottant le plus proche, malgr les erreurs dapproximation que cela peut engendrer. Lexemple 2.10
montre les divergences quon peut observer en pratique entre le calcul sur les rels dune part et le calcul
sur les ottants dautre part, en fonction du nombre de bits utiliss pour reprsenter les nombres en
machine.
Exemple 2.10. [Rum88], [Che07] La fonction de Rtmr a pour expression :
f (x, y) = 333.75y
6
+ x
2
(11x
2
y
2
y
6
121y
4
2) + 5.5y
8
+
x
2y
La valeur exacte de lvaluation de f (77617, 33096) est 54767/66192, soit environ -0.8273960599. La
table ci-aprs contient les rsultats obtenus pour f (77617, 33096) en fonction du nombre de bits utiliss
pour reprsenter les nombres, au moyen de loutil MuPad 2.5.3 sur un processeur Intel Pentium M :
Prcision Valeur
7 2.47588 10
27
16 5.764075226 10
17
24 134217728.0
32 0.84375
64 0.8273960599 . . .
Comme on vient de le voir, un nombre rel nest pas forcment reprsentable en machine, ce qui
introduit des erreurs dvaluation dans les calculs. Cependant, il est possible de borner la valeur dun
rel par deux ottants et deectuer les calculs sur de tels intervalles pour pallier le problme des erreurs
darrondis, grce larithmtique des intervalles.
Arithmtique des intervalles
Cest lide qui sous-tend les travaux fondateurs de Cirxa., utilisant le moteur de Prolog pour rali-
ser des encadrements prcis de variables contraintes par des prdicats arithmtiques comme mul(X,Y,Z)
ou add(X,Y,Z). En intgrant ainsi les travaux raliss auparavant par Mooar sur larithmtique des inter-
valles [Moo66], Cirxa. tend aux domaines continus la notion de ltrage par consistance des domaines
discrets, en tant quopration de rduction de la largeur de lintervalle qui dnit le domaine de la va-
riable
9
. A lorigine, larithmtique des intervalles a t introduite par Mooar dans les annes 1960. Lide
principale en est de remplacer les calculs peu ables sur les nombres ottants par des calculs ables sur
des intervalles, i.e. des paires de nombres ottants. La plupart du travail ralis cet poque dans ce
9
[CTN04] puis [CTN05] amnent conclure que si ce nest pas contre-productif de chercher exploiter la notion de trou
dans les intervalles, le gain nest pas intressant devant la complexication des algorithmes que cela entrane ; [BG06] rappelle
quant lui le manque decacit en pratique du raisonnement sur les unions dintervalles.
t
e
l
-
0
0
5
6
0
9
6
3
,
v
e
r
s
i
o
n
1
-
3
1
J
a
n
2
0
1
1
2.2. Techniques de rsolution 19
domaine a t consacre ltude des proprits mathmatiques de structures algbriques bases sur
la notion dintervalles, llaboration dalgorithmes de calcul dapproximations ables et prcises des
solutions faisables ou optimales de systmes de contraintes linaires et non-linaires et ltude de la
convergence de ces algorithmes [BVH97]. Ainsi, depuis [Cle87], [OV90] et lintgration ecace dans
les langages de programmation logique comme Prolog du calcul sur les intervalles mis au point quelques
dcennies plus tt, il est possible de raisonner sur des CSP dont les domaines des variables ne sont
pas discrets et numrs, mais continus et seulement exprims comme un encadrement par une borne
infrieure et une borne suprieure dnies comme des nombres ottants.
Dnition 2.7 (Intervalle bornes ottantes). tant donn lensemble F , + des ottants au-
quel on a ajout et +, et la relation sur cet ensemble, lintervalle bornes ottantes [a, b] est
lensemble des nombres rels compris entre a et b :
[a, b] = x R : a x b a, b F , +
On trouve dans [Lho93] les bases pour ladaptation eective aux domaines continus des techniques
discrtes de ltrage par consistance, avec par exemple la dnition dune consistance darc aux bornes
des domaines. Puis, dans [BMVH94], larithmtique des intervalles telle que dnie par Moore dans
[Moo66]est mise en lumire pour exhiber les principales caractristiques utiles des intervalles bornes
ottantes et de lensemble I de ces intervalles.
Dnition 2.8 (Enveloppe). Soit r un sous-ensemble de R. Lenveloppe de r, note (r), est le plus petit
intervalle bornes ottantes contenant r :
a R, (a) =
,
|a|
F
, |a|
F
a b, a, b R, ([a, b]) =
,
|a|
F
, |b|
F
a
1
, . . . , a
n
R, (a
1
, . . . , a
n
) = ([min(a
1
, . . . , a
n
), max(a
1
, . . . , a
n
)])
o |a|
F
(resp. |a|
F
) est le plus petit (resp. grand) lment de F , + plus grand (resp. petit) ou
gal a.
tant donne une opration arithmtique lmentaire +, , , / et deux intervalles I
1
, I
2
, lop-
ration correspondante sur les intervalles est dnie de la manire suivante :
I
1
I
2
= x y : x I
1
, y I
2
Ce qui nous donne en pratique les rgles de calcul suivantes, pour deux intervalles [a, b] et [c, d] :
[a, b] + [c, d] = ([a + b, c + d])
[a, b] [c, d] = ([a d, b c])
[a, b] [c, d] = ([min(ac, ad, bc, bd), max(ac, ad, bc, bd)])
[a, b] / [c, d] = ([min(a/c, a/d, b/c, b/d), max(a/c, a/d, b/c, b/d)]), 0 [c, d]
En outre, larithmtique des intervalles nous permet de la mme faon de dnir une extension aux
intervalles des fonctions relles :
Dnition 2.9 (Extension aux intervalles). tant donne une fonction relle f : R
n
R, la fonction sur
les intervalles F : I
n
I est une extension aux intervalles de f ssi I I
n
, f (x) : x I F(I).
Notons quil existe de nombreuses extensions aux intervalles, bases sur des transformations symbo-
liques ou des relaxations numriques : les formes de Braxsrrrx, les formes de Hoaxra et lextension de
Tx.ioa par exemple [Gou00], [BG06]. La Figure 2.1 donne un aperu de la dirence observable selon
lextension utilise pour lvaluation dune fonction.
t
e
l
-
0
0
5
6
0
9
6
3
,
v
e
r
s
i
o
n
1
-
3
1
J
a
n
2
0
1
1
20 rxr or ixar
Figure 2.1 [Gou00] valuation de f (x) = (x
6
/4 1, 9x
5
+ 0, 25x
4
+ 20x
3
17x
2
55, 6x + 48)/50 en
forme naturelle (gauche), en forme de Braxsrrrx (droite), pour une largeur dintervalle unitaire de 0,02.
Adaptation de la notion de consistance
Du point de vue de la rsolution de contraintes, il est ds lors possible de raisonner sur les domaines
continus la place de raisonner sur les domaines discrets, et dutiliser larithmtique des intervalles
et notamment lextension aux intervalles des fonctions relles pour dnir de nouvelles techniques de
ltrage par consistance, ddies aux domaines continus cette fois.
Dnition 2.10 (Consistance denveloppe). Etant donn un CSP P = (X, 1, C), un domaine D
i
1 est
enveloppe-consistant par rapport une contrainte C C ssi D
i
= (D
i
a
i
R : a
1
D
1
. . . a
i1
D
i1
a
i+1
D
i+1
. . . a
n
D
n
: C(a
1
, a
2
, . . . , a
n
)).
La consistance denveloppe, aussi appele consistance 2B [Lho93], est une relaxation de la consis-
tance darc. Il sagit dune proprit locale, lie aux bornes du domaine dune variable au niveau dune
seule contrainte : une contrainte c est 2B consistante si pour nimporte quelle variable x de c, il y a
des valeurs dans les domaines de toutes les autres variables de c pour lesquelles c est satisfaite quand x
vaut la borne infrieure (resp. suprieure) de son domaine [CDR99]. Mais cause des erreurs darrondis
inhrentes au calcul avec des nombres ottants, obtenir lenveloppe dun ensemble de rels est une tche
dicile en elle-mme, dicult que lalgorithme de ltrage ddi HC3 parvient en partie contourner
en rendant 2B consistant le systme quon aura obtenu en dcomposant les contraintes du problme en
contraintes aussi simples que possible
10
: par exemple, la contrainte x +y z = t pourra tre dcompose
en deux contraintes y z = et x+ = t, introduisant une nouvelle variable , et le ltrage sera ralis sur
le systme obtenu ainsi par dcomposition [BGGP99]. Enn, lalgorithme HC4, trs proche de HC3, est
capable daboutir au mme rsultat mais sans avoir pour cela recours lintroduction de telles variables
auxiliaires lexemple 2.11 ci-aprs montre comment cet algorithme HC4 utilise une contrainte pour
rduire les domaines des variables de cette dernire [Gou00]. Considrant une expression arithmtique
de la contrainte sous forme darbre o les feuilles sont des variables ou des constantes, les noeuds tant
des oprateurs arithmtiques et la racine un symbole de relation, le ltrage dun pav par HC4 est ralis
en deux phases, lvaluation ascendante et la propagation descendante :
Exemple 2.11. [Gou00] Filtrage par lalgorithme HC4 pour la contrainte 2x = z y
2
avec les domaines
D
x
= [0, 20], D
y
= [10, 10] et D
z
= [0, 16] :
10
On utilisera le terme de contraintes primitives.
t
e
l
-
0
0
5
6
0
9
6
3
,
v
e
r
s
i
o
n
1
-
3
1
J
a
n
2
0
1
1
2.2. Techniques de rsolution 21
(i) Evaluation ascendante (ii) Propagation descendante
La premire phase se rsume faire remonter les valeurs des feuilles jusqu la racine en utilisant
simplement les rgles du calcul arithmtique de Mooar sur les intervalles ; la seconde phase consiste
faire redescendre vers les feuilles la valeur infre pour la racine partir de la relation reprsente et
de la valeur avre de ses oprandes, grce linversion des oprations arithmtiques.
Cependant, lvaluation dexpressions arithmtiques sur des intervalles perd en prcision mesure
quaugmente le nombre doccurrences dune mme variable dans une contrainte, et si lalgorithme HC4
est capable de rduire ecacement les domaines dans des contraintes o chaque variable napparat
quune seule fois, ce nest plus le cas quand certaines variables ont plusieurs occurrences dans une mme
contrainte [BG06]. En eet, si on considre par exemple la contrainte x + x = 0 avec x [1, 1], la rgle
de rduction que nous donne larithmtique des intervalles est D
x
:= D
x
(D
x
), qui reste compltement
sans eet ici. Une deuxime consistance ddie aux domaines continus a donc t mise au point pour
combler ce problme de linecacit du ltrage par consistance denveloppe pour les contraintes o des
variables ont plusieurs occurrences, la consistance de pav [BMVH94]. Sa dnition
11
est la suivante :
Dnition 2.11 (Consistance de pav). Etant donn un CSP P = (X, 1, C), un domaine D
i
1 est
pav-consistant par rapport une contrainte C
j
C de la forme f
j
(x
j
1
, . . . , x
j
n
) = 0 ssi i, D
i
= (a
i
D
i
: 0 F
j
(D
1
, D
2
, . . . , D
i1
, (a
i
), D
i+1
, . . . , D
m
)), o F
j
est une extension aux intervalles de f .
Notons que dans le cas o la variable considre napparat quune seule fois dans la contrainte, la
consistance denveloppe est quivalente et moins coteuse calculer que la consistance de pav [CDR99].
En outre, la consistance de pav est plus faible que la consistance darc, comme le montre lexemple
suivant :
Exemple 2.12. [HMK97] Soit la contrainte x
1
+ x
2
x
1
= 0 et les domaines D
1
= D
2
= [1, 1]. D
2
nest pas arc-consistant puisquil nexiste aucune valeur n
1
D
1
telle que n
1
+ 1 n
1
= 0. Pourtant D
2
est pav-consistant puisque ([1, 1] + [1, 1
+
] [1, 1]) [0, 0] et ([1, 1] + [1
: xx + y
2
= 1. La table suivante montre le rsultat du ltrage en utilisant soit lal-
gorithme HC4, soit lalgorithme BC3, soit lalgorithme BC4. Dans chaque cas, on donne les domaines
obtenus aprs rduction et le nombre de calculs sur les intervalles qui ont t eectus.
HC4 BC3 BC4
c [1, 1]
2
15 [1, 1]
2
1178 [1, 1]
2
15
c
[10, 10]
2
16 [1, 1] [
2,
2] 1238 [1, 1] [
2,
2] 625
2.2.1.3 Utilisation des contraintes mixtes
Quand il sagit de ltrer les domaines, une faon gnrique de traiter les contraintes mixtes est de
plonger les variables entires dans le domaine des intervalles et de traiter les variables discrtes comme
des variables continues. Aprs chaque ltrage, on sassure alors que les domaines de ces variables conti-
nues particulires soient tronques de faon obtenir lintervalle bornes entires le plus large possible.
Les seuls travaux quon peut trouver dans la littrature concernant des techniques de ltrage ddies
lutilisation des contraintes mixtes sont ceux de Griir et Fxirrxos [Gel98], [GF03]. On y distingue trois
types de contraintes mixtes, associant chacune une faon dirente de ltrer :
les contraintes de type catalogue qui associent une variable discrte et une variable continue, e.g.
(x, y) (1, [0, 100]), (2, [0, 1000]) (C
M1
) ;
les contraintes numriques qui utilisent un oprateur de discrtisation, par exemple n = |x/y|
(C
M2
) ;
les autres contraintes numriques faisant intervenir la fois variables discrtes et continues, comme
v =
4
3
R
3
(C
M3
).
Pour les contraintes mixtes du premier type, lide est de les transformer en contraintes discrtes, grce
un oprateur qui associe chaque grandeur intervalle une grandeur discrte qui la reprsente, dans le but
de pouvoir appliquer les techniques ddies aux domaines discrets. En ce qui concerne les contraintes
12
Cette notion ditration du ltrage ou propagation sera du reste aborde en dtails plus loin dans cette section.
t
e
l
-
0
0
5
6
0
9
6
3
,
v
e
r
s
i
o
n
1
-
3
1
J
a
n
2
0
1
1
2.2. Techniques de rsolution 23
mixtes du deuxime type, qui utilisent des fonctions de transtypage rel vers entier, elles sont approxi-
mes par des contraintes numriques, e.g. on remplace i = |r| par r i et i r + 1, avant dappliquer
les mthodes ddies aux contraintes continues. Enn, concernant les contraintes du troisime type, elles
sont traites comme des contraintes continues dans lesquels les variables discrtes ont t au pralable
temporairement instancies au point-mdian de leur domaine courant. On reviendra sur ce principe en
n de chapitre pour davantage dexplications cf p.29.
2.2.1.4 Propagation
Quand un domaine a t rduit, la question se pose des rpercussions sur les autres domaines avec
lesquels sont partages des contraintes. Ceci est brivement illustr par lexemple introductif suivant :
Exemple 2.15. [Gra05] Soient les domaines D
x
= [0, 5] et D
y
= [0, 4], et soient deux contraintes y = x+1
(c
1
) et y = x 1 (c
2
). Lutilisation de c
1
pour un ltrage par consistance denveloppe provoque les
rductions :
D
y
= [0, 4] [0, 5] + 1 = [1, 4]
D
x
= [0, 5] [0, 4] 1 = [0, 3]
Puis lutilisation de c
2
provoque les rductions :
D
y
= [1, 4] [0, 3] 1 = [1, 2]
D
x
= [0, 3] [1, 4] + 1 = [2, 3]
Enn, lutilisation nouveau de c
1
entrane la rduction :
D
y
= [1, 2] [2, 3] + 1 =
Le problme na aucune solution.
Ainsi, certaines rductions peuvent tre trs avantageusement enchanes car si leur eet seul nest
pas trs important, leet conjugu de toutes peut avoir une capacit ltrante bien plus grande. Ce m-
canisme ditration du ltrage pose cependant un certain nombre de questions. Par exemple, litration
va-t-elle se terminer ? Les ltrages de domaines nissent-ils obligatoirement par ne plus rien ter ? Com-
ment optimiser lenchanement des dirents ltrages ? etc. Le cadre gnral des itrations chaotiques
va permettre de rpondre nombre de ces questions.
Cadre formel
A limage de [GH88], [MR91] et [Fal94] notamment, nombre dtudes thoriques ont dj t ra-
lises pour fournir la propagation un cadre formel, avec thormes et proprits prouvs, de faon
pouvoir se doter dun mcanisme rellement contrlable et ecace. [Apt00] et [Bes06] sont eux aussi
le reet dune dmarche de formalisation dont le but est de mieux connatre et matriser les tenants et
aboutissants de la propagation
13
.
Dnition 2.12 (Itration). Soit un ordre partiel (D, ) avec un plus petit lment et un ensemble ni
de fonction / = f
1
, . . . , f
k
sur D. Une itration de / est une squence innie de valeurs d
0
, d
1
, . . .
dnie inductivement par
d
0
=
d
j
= f
i
j
(d
j1
), j 0
o i
j
est un lment de [1..k]. Une squence croissante d
0
d
1
d
2
. . . nit par se stabiliser d si
d
i+1
= d
i
pour un certain j 0 avec i j.
13
La suite de cette section est tire essentiellement de [Apt00].
t
e
l
-
0
0
5
6
0
9
6
3
,
v
e
r
s
i
o
n
1
-
3
1
J
a
n
2
0
1
1
24 rxr or ixar
Ce formalisme sillustre ici de la faon suivante : lordre partiel sapplique aux CSP au regard dune
consistance donne, le plus petit lment tant le CSP initial et les d
i
tant obtenus par ltrages suc-
cessifs, et les fonctions sont les algorithmes de ltrage de domaine. Par la suite ne seront tudies que
les itrations de fonctions ayant certaines proprits :
Dnition 2.13 (Monotonie). Soit un ordre partiel (D, ) avec un plus petit lment et une fonction f
sur D. f est monotone si x y implique f (x) f (y) x y.
Le rle de la monotonie est clair par la simple observation suivante :
Lemme 2.1 (Stabilisation). Soit un ordre partiel (D, ) avec un plus petit lment et / un ensemble
ni de fonctions monotones sur D, et supposons quune itration de / nit par se stabiliser en un point
xe d commun aux fonctions de /. Alors d est le plus petit point xe commun aux fonctions de /.
Preuve. Considrons e un point xe commun aux fonctions de / et prouvons que d e. Soit d
0
, d
1
, . . .
litration en question. Pour un certain j 0, on a d
i
= d pour i j. Il sut de prouver par induction sur
i que d
i
d. Il est vident que cest vrai pour i = 0 puisque d
0
= . Supposons prsent que cest vrai
pour un certain i 0. On a d
i+1
= f
j
(d
i
) pour un certain j [1..k]. Du fait de lhypothse dinduction et
de la monotonicit, il sensuit que f
j
(d
i
) f
j
(e), et donc que d
i+1
e puisque e est un point xe de f
j
.
Fixons prsent un ordre partiel (D, ) avec un plus petit lment , et un ensemble ni de fonction
/ = f
1
, . . . , f
k
sur D. On sintresse calculer le plus petit point xe commun aux fonctions de /.
Cest dans ce but quon tudie lAlgorithme 2.1, inspir par un algorithme similaire tir de [MR99].
Aio. 2.1 : Propager(/,x)
G := / ; 1
d := domaine(x) ; 2
tant que G faire 3
choisir g G ; 4
e := g(d) ; 5
G := G update(G, /, g, x, d, e) ; 6
d := e ; 7
n 8
Dans cet algorithme, lensemble de fonctions update est tel que :
(i) d = e update(G, /, g, x, d, e) = G g,
(ii) f / : f (e) e f update(G, /, g, x, d, e).
Intuitivement, (i) signie quil devra tre impossible la fonction de choix de retourner indniment
une fonction qui ne rduit pas le domaine, et (ii) que linvariant de boucle de lalgorithme est que toute
fonction h / G est telle que h(d) = d. On garantit de cette faon une rduction optimale.
Thorme 2.1 (Propagation). Lalgorithme de propagation est tel que :
(i) Toute excution qui termine calcule dans d le plus petit point xe commun des fonctions de /.
(ii) Toute excution termine.
Preuve. (i) Montrons que le point xe calcul est eectivement le plus petit des points xes. Soit un
point xe commun. Prouvons par induction que d chaque pas de lalgorithme. Cest vrai pour le
t
e
l
-
0
0
5
6
0
9
6
3
,
v
e
r
s
i
o
n
1
-
3
1
J
a
n
2
0
1
1
2.2. Techniques de rsolution 25
premier pas. Pour le k-ime pas, on a d
k
par hypothse et g() g(d
k
) car g est monotone. Comme
g() et d
k+1
= g(d
k
), il vient d
k+1
.
(ii) Soit lordre produit de (D, ) et (A, <) dni sur les lments de D A par
(d
1
, n
1
) < (d
2
, n
2
) d
1
d
2
(d
1
= d
2
n
1
< n
2
)
o on utilise lordre inverse dni par d
1
d
2
ssi d
2
d
1
d
2
d
1
. Les couples (x, Card(G)) calculs
par litration sont strictement dcroissants au sens de cet ordre produit, puisqu chaque fois soit le
domaine est rduit, soit le nombre dlments dans la liste G diminue. Or par hypothse (D, ) est ni
donc (D, ) est bien fond, ce qui implique la terminaison.
Ainsi, une forme possible de lalgorithme update, respectant les spcications ci-dessus, peut tre
celle de lAlgorithme 2.2 :
Aio. 2.2 : Update(G, /, g, x, d, e)
si d=e alors 1
retourner G g 2
sinon 3
retourner G f / : x variables( f ) 4
n 5
Ajoutons que la fonction update dcrite ci-dessus peut tre amliore en tenant en compte de lidem-
potence des fonctions de ltrage :
Dnition 2.14 (Idempotence). Soit une fonction f sur un domaine D. f est idempotente si f ( f (x)) =
f (x) x D.
Il ne sera donc pas judicieux dajouter lensemble G des fonctions de ltrage idempotentes puisque,
quelle que soit la rduction quelles viennent de raliser, les rappeler sur le domaine quelles ont elles-
mmes rduit ne peut avoir aucun eet supplmentaire.
2.2.2 Exploration de lespace de recherche
Envisageons prsent ltape suivante du processus de rsolution. Une fois les domaines rduits par
ltrage, il est loin dtre garanti que chaque variable na plus quune seule valeur dans son domaine,
sil sagit dune variable discrte, ou que lintervalle a t rduit jusqu avoir la largeur demande,
sil sagit dune variable continue ni mme que son domaine a t rendu vide par le ltrage dans le
cas dun CSP sans solution. Non seulement les consistances vues plus haut ne sont pas ecaces de la
mme faon pour tous les problmes, mais surtout elles sont loin de garantir de ltrer susamment pour
obtenir des domaines ne contenant que des solutions. Aussi doit-on se doter dun autre mcanisme que le
ltrage pour tester toutes les combinaisons possibles de valeurs consistantes de faon pouvoir garantir
de navoir perdu aucune solution.
t
e
l
-
0
0
5
6
0
9
6
3
,
v
e
r
s
i
o
n
1
-
3
1
J
a
n
2
0
1
1
26 rxr or ixar
2.2.2.1 CSP discrets
Historiquement, lexploration exhaustive de lespace de recherche prcde lexistence des techniques
de ltrage par consistance. Aujourdhui, les deux ne vont pas lun sans lautre, lobjectif tant de trouver
un bon compromis entre puissance du ltrage et complexit de lexploration. Lide de base en matire
de stratgie de recherche des solutions est de gnrer une aectation des variables du problme, la tester,
gnrer une autre aectation, la tester, etc. : cest la technique dite de generate-and-test.
Exemple 2.16. [Mac77] Trace du generate-and-test pour le CSP de lexemple 2.2 :
Toutes les combinaisons de valeurs sont gnres et testes, intgralement, une par une.
Cette technique trs nave est facilement amliorable en ce que chaque combinaison teste est vi-
demment trs similaire la prcdente. Cest de ce constat quest n le mcanisme de backtracking
retour-arrire en franais dans le texte qui reprend la combinaison prcdemment teste pour ltendre
de manire incrmentale, tout en vriant chaque tape la satisfaction des contraintes :
Exemple 2.17. [Mac77] Trace du backtracking pour le CSP de lexemple 2.2 :
A chaque tage de larbre, on aecte une nouvelle valeur une variable, on teste la satisfaction des
contraintes, puis on continue en profondeur avec la variable suivante, jusqu ce quil ny ait plus de
variable aecter et tant que les contraintes peuvent tre satisfaites.
Le produit du droulement de cet algorithme de recherche est appel arbre de recherche. On peut en
outre se rendre compte du gain obtenu par ltrage des domaines en observant larbre de recherche cor-
respondant au mme CSP que ci-dessus, mais lorsquun ltrage par consistance darc a t au pralable
appliqu aux domaines initiaux :
Exemple 2.18. Arbre de recherche pour le mme CSP mais aprs ltrage par consistance darc :
t
e
l
-
0
0
5
6
0
9
6
3
,
v
e
r
s
i
o
n
1
-
3
1
J
a
n
2
0
1
1
2.2. Techniques de rsolution 27
En eet, il ny a plus que 2 valeurs tester dans les domaines de X
1
et X
2
, une seule dans le domaine de
X
4
.
Les deux paramtres qui rgissent principalement le droulement du backtracking concernent la m-
thode de choix de variable et celle de choix de lordre dinstanciation de ces valeurs. Des stratgies de
choix de variables communment employes en matire de CSP discrets sont celle dite du fail-rst, o
lon choisit en priorit la variable de plus petit domaine, ou bien celle du most-constrained, o lon pr-
fre choisir dabord la variable la plus contrainte. Lide qui gouverne ces choix est de chercher viter
dexplorer une longue branche de larbre se soldant par un chec. Pour cela, on privilgie les variables qui
sont les plus sujettes provoquer des inconsistances pendant le ltrage. En ce qui concerne laectation
dune valeur la variable choisie, la rgle gnrale consiste simplement crer une branche pour chaque
valeur du domaine. Dans certains cas cependant, on peut dnir un ordre sur les valeurs aecter, selon
leur smantique dans le problme considr [Heu06]. On peut galement limiter le nombre de branches
cres en un noeud, en nnumrant quun nombre rduit de valeurs du domaines et en conservant les
autres dans une dernire branche.
On peut citer [DP88] comme exemple dalternative au backtracking : une utilisation judicieuse dune
consistance darc directionnelle allie avec un bon choix de variable permet de rsoudre certains CSP
sans retour-arrire. Dautres se sont galement employs circonscrire le besoin de backtrack aux plus
petites portions possibles du CSP, on peut citer notamment les mthodes de consistance adaptative utili-
sant des coupe-cycles [Dec92]. Enn, de nombreuses amliorations de lalgorithme initial ont vu le jour
depuis son apparition dans les annes 1970 et sont prsentes dans lAnnexe A.
2.2.2.2 CSP continus
Dans le cas o les domaines sont continus, il parat juste titre trs coteux dnumrer chacun
des intervalles de largeur minimale quil contient, si bien que lalgorithme gnrique de recherche par
backtracking doit tre modi pour sadapter aux domaines continus.
Branch-and-prune
Lide de lalgorithme dexploration ddi aux domaines continus est de procder une bissection
plutt qu une numration pour parcourir lespace de recherche : chaque noeud, on dclenche la
phase de propagation des rductions, puis lorsque les domaines ne peuvent plus tre signicativement
rduits, alors on choisira une variable dont le domaine va tre coup en deux parties. Chaque moiti
sera ensuite explore dans une branche de larbre, de la mme faon quavec un domaine discret chaque
branche correspond une valeur du domaine initial les autres domaines tant simplement recopis
lidentique. Cet algorithme dit de branch-and-prune que nous donnons ici cf Algorithme 2.3 est
celui donn par Vxx Hrxrrxa.ck dans [HMK97], volution des travaux fondateurs de Cirxa. vis--vis
de la rsolution de problmes variables relles [Cle87] mais aussi trs nettement dans la continuit des
premires ides de Mooar sur le sujet [Moo79].
t
e
l
-
0
0
5
6
0
9
6
3
,
v
e
r
s
i
o
n
1
-
3
1
J
a
n
2
0
1
1
28 rxr or ixar
linverse du cas dun CSP discret, une heuristique de choix de variables en usage en ce qui concerne
la rsolution dun CSP continu va donner la prfrence la variable dont le domaine est le plus large. Ceci
peut sexpliquer par le fait quun domaine large signie quon a du mal le rduire grce aux contraintes,
et que le couper ainsi en deux permet de le rduire malgr linecacit potentielle des contraintes. Notons
par ailleurs quune autre heuristique largement en usage consiste simplement choisir les variables les
unes aprs les autres, en tourniquet round-robin en anglais.
Exemple 2.19. [Cle87] Arbre de rsolution pour le CSP de contrainte
14
X X = 2 avec X [1, 2] :
Lintervalle de dpart est successivement rduit et coup en deux jusqu ce quon obtienne un intervalle
de largeur minimale.
Aio. 2.3 : BranchAndPrune(Constraint[] C, Box B
0
)
B f iltrer(C, B
0
) 1
si non estVide(B) alors 2
si estAssezFin(B) alors 3
retourner B 4
sinon 5
(B
1
, B
2
) split(B) 6
retourner BranchAndPrune(C, B
1
) BranchAndPrune(C, B
2
) 7
n 8
sinon 9
retourner 10
n 11
Ajoutons que la rsolution dun problme de satisfaction de contraintes dot dune fonction-objectif
requiert de maintenir jour des bornes ables pour cette dernire [Han92]. De cette manire, on peut
14
Cet exemple est tir des travaux fondateurs de Cirxa. [Cle87], o le langage de modlisation nenglobe pas encore la
notion de puissance dune variable.
t
e
l
-
0
0
5
6
0
9
6
3
,
v
e
r
s
i
o
n
1
-
3
1
J
a
n
2
0
1
1
2.2. Techniques de rsolution 29
utiliser la fonction-objectif de la mme manire que les autres contraintes pour ltrer les domaines. En
outre, de nouvelles bornes peuvent tre obtenues de manire rigoureuse dans les rgions satisfaisant les
contraintes et on utilise cet eet des algorithmes de preuve dexistence [Kea96], lide tant de mettre
jour lencadrement de la valeur optimale connue chaque fois quon dcouvre un point qui satisfait
toutes les contraintes du problme et dont la valeur de la fonction-objectif est meilleure que celle quon
avait pu obtenir jusque l. Enn, lordre de traitement des pavs ainsi que la stratgie de branchement
sont deux paramtres importants pour lecacit du processus de rsolution, puisquen eet le but est de
trouver le plus rapidement possible les pavs qui amliorent le plus lencadrement de la fonction-objectif
et ainsi ltrer le plus ecacement possible lespace de recherche [CR97]. Ce point sera abord plus en
profondeur au chapitre suivant.
2.2.2.3 CSP mixtes
Aprs avoir tudi en dtails la notion de stratgie dexploration, ddie dabord aux domaines dis-
crets puis aux domaines continus, intressons-nous prsent la question dune stratgie dexploration
ddie la rsolution de CSP mixtes.
Une faon gnrique de rsoudre un CSP mixte est dexploiter les similarits dans lexploration de
lespace de recherche entre CSP discrets et continus :
les CSP continus sont rsolus en utilisant des mthodes bases sur les intervalles, crant par bis-
section un arbre de domaines continus qui sont rduits par ltrage grce larithmtique des
intervalles ;
les CSP discrets sont rsolus par numration de combinaisons de valeurs, dclares consistantes,
de chacune des variables du problme.
Dans le cas gnral, explorer lespace de recherche dun CSP mixte va donc consister simplement
numrer les variables discrtes et bissecter les variables continues, de faon produire un arbre de
recherche mixte.
Approches ddies en programmation par contraintes
Dans la littrature, seuls Griir et Fxirrxos ont propos par ailleurs une nouvelle combinaison des
deux mthodes discrte et continue, destine rsoudre en particulier les problmes mixtes sous contraints
dots de larges ensembles de solutions contigus [Gel98], [GF03]. Par bissection est gnr un arbre din-
tervalles duquel un arbre des points-mdians est obtenu, arbre des point-mdians qui va permettre une
numration systmatique de tous les domaines. Concrtement, la faon dont sont obtenus ces points-
mdians va dpendre du type de domaine considr :
un domaine discret comme a, b, d, issu par ltrage dun domaine a, b, c, d, sera reprsent,
en utilisant lordre lexicographique par exemple, par la liste dintervalles [1, 2], [4, 4] le point
mdian dun intervalle dentiers [u, v] pouvant par la suite tre obtenu par le calcul |(u + v)/2| ;
un domaine continu, rprsent par un intervalle [c, d], c, d R, sera identi par un point-mdian
calcul grce la formule (c + d)/2.
Lalgorithme explore lespace de recherche de la faon suivante. Dabord, on vrie la consistance
darc dune aectation des variables aux points-mdians correspondants aux domaines courants. Si ce
test choue, on obtiendra de nouveaux points-mdians tester en utilisant successivement lintervalle
gauche du point-mdian puis lintervalle sa droite, puis le suivant dans la liste ventuelle, jusqu
obtenir des intervalles dune largeur susamment ne. Le choix de la prochaine variable backtracker
est eectu en privilgiant dabord les variables discrtes intervenant dans des contraintes mixtes, puis
t
e
l
-
0
0
5
6
0
9
6
3
,
v
e
r
s
i
o
n
1
-
3
1
J
a
n
2
0
1
1
30 rxr or ixar
les autres variables discrtes et enn les variables continues. En outre, lutilisation dun ltrage de type
forward checking permet damliorer les performances obtenues, spcialement quand il sagit dun pro-
blme dont les solutions sont rparties en un faible nombre de rgions contigus.
Mthodes issues de la programmation mathmatique
Pour conclure cet tat de lart, il nous faut prsent faire mention de techniques de rsolution mises
au point en programmation mathmatique et ddies la rsolution de problmes mixtes sous contraintes,
avec objectif optimiser (MINLP).
Un aspect important de loptimisation globale en programmation mathmatique est lutilisation de
relaxations linaires, qui permettent de trouver une borne infrieure la valeur de la fonction-objectif
minimiser et ainsi rendre possible dcarter des pavs pour lesquels cette borne infrieure est suprieure
lvaluation f
best
de la meilleure solution trouve jusquici [Neu04]. Cette phase de linarisation est
ralise en deux tapes, comme par exemple dans un outil rcent comme Couenne [BLL
09] :
une phase de reformulation a lieu en dbut de rsolution et consiste reformuler le problme
en un problme quivalent mais symboliquement plus simple grce ladjonction de variables
auxiliaires ;
la phase de linarisation proprement dite est quant elle ralise chaque noeud de la rsolution
et va permettre dobtenir, partir du problme reformul, un systme dinquations linaires qui
encadre lensemble admissible.
En outre, les plans de coupe, aussi appels coupes, ou ingalits valides, sont des ingalits linaires
qui peuvent tre infres partir dun ensemble de contraintes entires ou mixtes, ingalits qui sont
ensuite ajoutes lensemble de contraintes du problme [Hoo06]. Dune part, ces coupes vont permettre
de couper lexploration de solutions non entires dune relaxation linaire, et ainsi faire gagner cette
dernire en prcision. Dautre part, elles vont galement permettre de rduire le backtracking, en excluant
des valeurs qui ne sont pas admissibles pour les variables. Lexemple suivant illustre cette dualit :
Exemple 2.20. [Hoo06] Ensemble admissible (zone grise) de la relaxation linaire du systme x
1
+x
2
2, x
1
x
2
0, avec les domaines x
i
0, 1, 2, et un plan de coupe x
1
1 (droite en pointills) :
Comme le montre la gure ci-dessus, x
1
1 est une ingalit valide parce quelle nte aucun point
entier de lensemble admissible. Cependant, il sagit galement dune coupe pour la relaxation linaire
du problme, quelle renforce.
t
e
l
-
0
0
5
6
0
9
6
3
,
v
e
r
s
i
o
n
1
-
3
1
J
a
n
2
0
1
1
III
MODLISATION ET RSOLUTION
DUN PROBLME DE CONCEPTION
EN ROBOTIQUE
Celui qui en toutes choses suit la Voie et rgle ses principes sur la Voie,
Parce quil aspire lunion suprme,
La Voie laccueille avec joie.
Aussi sa conduite, ses projets, ses oeuvres ou ses abstentions,
Ont-ils dheureux rsultats.
Lxo-Tsrt, De la Voie et de sa vertu, XXIII.
3.1 Contexte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
3.2 Modlisation du problme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
3.2.1 Organe terminal sans jeu dans les articulations . . . . . . . . . . . . . . . . . 32
3.2.2 Modlisation des erreurs dues au jeu dans les articulations . . . . . . . . . . . 34
3.2.3 Erreur de pose maximum de lorgane terminal . . . . . . . . . . . . . . . . . . 35
3.3 Modication du cadre de rsolution classique . . . . . . . . . . . . . . . . . . . . . . 35
3.4 Expriences . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
3.5 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
Dans ce chapitre, nous modlisons et rsolvons le problme de la prdiction des erreurs de position
et de rotation de lorgane terminal dun systme robotique mcanique, aussi appeles erreurs de pose, en
fonction du jeu dans ses articulations ou, plus prcisment, du jeu introduit dans les articulations par des
imperfections de fabrication.
Aprs avoir montr comment le problme peut tre exprim sous la forme de deux problmes conti-
nus doptimisation sous contraintes, nous montrons comment le classique cadre continu de rsolution
en programmation par contraintes peut tre modi pour nous permettre de grer rigoureusement et
globalement ces problmes doptimisation diciles. En particulier, nous prsentons des expriences pr-
liminaires dans lesquelles notre optimiseur est trs comptitif compar aux mthodes les plus ecaces
prsentes dans la littrature, tout en fournissant des rsultats plus robustes.
31
t
e
l
-
0
0
5
6
0
9
6
3
,
v
e
r
s
i
o
n
1
-
3
1
J
a
n
2
0
1
1
32 Moo rirsxrrox rr a rsoitrrox otx raoai` rmr or coxcrrrrox rx aoaorrotr
3.1 Contexte
La prcision dun systme robotique mcanique est un aspect crucial pour lexcution doprations
qui demandent de lexactitude. Cependant, cette prcision peut tre aecte ngativement par des erreurs
de positionnement et/ou dorientation, aussi appeles erreurs de pose, de lorgane terminal du manipu-
lateur. Une principale source derreurs de pose rside dans le jeu quil y a dans les articulations, qui
introduit des degrs de libert supplmentaires de dplacement entre les lments pairs par les join-
tures du manipulateur. Il apparat en outre que rduire ces dplacements augmente la fois les cots de
production et la dicult dassemblage du mcanisme. Actuellement, cette problmatique est dailleurs
une tendance majeure de recherche en robotique [FS98, Inn02, MZL09]. Une faon de traiter le jeu
dans les articulations est de prvoir son impact sur les erreurs de pose. Dans ce but, les dplacements
impliqus ainsi quun ensemble de paramtres du systme peuvent tre modliss par deux problmes
doptimisation sous contraintes, dont le maximum global va caractriser lerreur de pose maximum. Il est
donc obligatoire dobtenir un encadrement rigoureux de ce maximum global, ce qui limine la possibi-
lit dutiliser des optimiseurs locaux. Cette modlisation peut tre vue comme un ensemble de variables
prenant leurs valeurs dans des domaines continus, accompagn dun ensemble de contraintes et dune
fonction-objectif. Il savre quun tel modle est dicile rsoudre exprimentalement : les temps de
rsolution peuvent augmenter de manire exponentielle avec la taille du problme, qui dans ce cas varie
avec le nombre darticulations du manipulateur.
Sil existe des travaux de recherche traitant de la modlisation du jeu dans les articulations et la pr-
vision des erreurs dues ce phnomne [FS98, Inn02], peu dentre eux ont pour objet les techniques de
rsolution [MZL09], et aucun ne fait appel la programmation par contraintes. Dans ce chapitre, nous
investiguons donc lusage de la programmation par contraintes pour rsoudre de tels problmes. En par-
ticulier, nous combinons lalgorithme classique de branch-and-bound avec larithmtique des intervalles
et les techniques de ltrage associes. Lalgorithme de branch-and-bound nous permet de grer la partie
optimisation du problme tandis que les temps de rsolution peuvent tre diminus grce ces tech-
niques de ltrage. En outre, la abilit du processus est garantie par lutilisation de larithmtique des
intervalles, ce qui est intrinsquement requis par lapplication qui nous intresse ici.
3.2 Modlisation du problme
Dans le cadre des travaux que nous prsentons dans ce chapitre, on considre des manipulateurs s-
riels composs de n pivots, n liaisons et un organe terminal. La Figure 3.1 reprsente un tel manipulateur
dot de deux articulations, nomm manipulateur RR, tandis que la Figure 3.2 montre un pivot aect
par du jeu. Nous considrerons ici que ce jeu dans les articulations apparat lors derreurs de produc-
tion. En consquence, le problme doptimisation rsoudre aura pour but de trouver lerreur maximum
en position et en rotation de lorgane terminal dun manipulateur tant donne une conguration de ce
dernier.
3.2.1 Organe terminal sans jeu dans les articulations
An de dcrire de manire unique larchitecture du manipulateur, i.e. le placement et lorientation
relatives des axes des articulations, nous utilisons la nomenclature Denavit-Hartenberg [DH55]. Dans
ce but, les liaisons sont numrotes de 0 n , la j
me
articulation tant dnie comme celle reliant la
( j 1)
me
liaison avec la j
me
. Le manipulateur est ainsi considr comme tant compos de n+1 liaisons
t
e
l
-
0
0
5
6
0
9
6
3
,
v
e
r
s
i
o
n
1
-
3
1
J
a
n
2
0
1
1
3.2. Modlisation du problme 33
et n articulations, o la liaison 0 est la base xe et la liaison n lorgane terminal. Ensuite, on dnit des
repres /
j
dorigine O
j
et daxes X
j
, Y
j
, Z
j
, le repre /
j
tant associ la ( j 1)
me
liaison pour j variant
de 1 n + 1. Le torseur suivant transforme /
j
en /
j+1
:
S
j
=
,
R
j
t
j
0
T
3
1
, (3.1)
o R
j
est une matrice de rotation 3 3, t
j
R
3
pointe de lorigine de /
j
vers /
j+1
, et 0
3
est le vecteur
zro trois dimensions. De plus, S
j
peut sexprimer de la faon suivante :
S
j
=
,
cos
j
sin
j
cos
j
sin
j
sin
j
a
j
cos
j
sin
j
cos
j
cos
j
cos
j
sin
j
a
j
sin
j
0 sin
j
cos
j
b
j
0 0 0 1
(3.2)
o
j
, a
j
, b
j
et
j
reprsentent respectivement la torsion de la liaison, sa longueur, son dcalage et langle
avec le pivot. Remarquons que a
1
, b
1
, a
2
et b
2
sont dpeints par la Figure 3.1 pour le manipulateur
correspondant o
1
et
2
sont par contre nuls puisque les axes des pivots sont parallles.
condition que les articulations soient parfaitement rigides dans toutes les directions sauf une, quil
ny ait pas de jeu dans les articulations, que les liaisons soient parfaitement rigides et que la gomtrie du
manipulateur robotique soit connue avec exactitude, la pose de lorgane terminal en fonction du repre
xe /
0
sexprime ainsi :
P =
n
j=1
S
j
, (3.3)
Cependant, nous devons inclure de petites erreurs dans lquation (3.3) si nous voulons prendre en
compte le jeu dans les articulations.
a
1
X
1
1
link 1
end-effector
joint 2
joint 1
Y
1
X
2
Z
1
X
2
Y
2
Z
2
X
3
Y
3
Z
3
a
2
link 2
b
1
b
2
F
1
F
2
F
3
Figure 3.1 [BSG
j
. condition que lerreur soit petite, cette erreur sur la pose de larticulation j par rapport
larticulation j 1 peut tre reprsente par le torseur de faible dplacement dcrit dans lquation (3.4) :
s
j
,
r
j
t
j
R
6
, (3.4) S
j
=
,
R
j
t
j
0
T
3
0
, (3.5)
o r
j
R
3
reprsente la faible rotation changeant /
j
en /
j
, tandis que t
j
R
3
pointe de lorigine de /
j
vers celle de /
j
. Il sera utile de reprsenter s
j
comme la matrice 4 4 donne par lquation (3.5) dans
laquelle R
j
(r
j
x)/x est la matrice produit vectoriel de r
j
. Intuitivement, la meilleure faon de
modliser le jeu dans les articulations dans une jointure est de borner infrieurement et suprieurement
les erreurs associes. Si on considre ces deux bornes comme identiques, cela fait en gnral apparatre
6 paramtres pour borner le torseur derreur s
j
. En consquence, les bornes de lerreur scrivent de la
manire suivante :
r
2
j,X
+ r
2
j,Y
2
j,XY
, (3.6)
r
2
j,Z
2
j,Z
, (3.7)
t
2
j,X
+ t
2
j,Y
b
2
j,XY
, (3.8)
t
2
j,Z
b
2
j,Z
, (3.9)
o r
j
,
r
j,X
r
j,Y
r
j,Z
T
et t
j
,
t
j,X
t
j,Y
t
j,Z
T
.
Du fait du jeu dans les articulations, le repre /
n+1
associ lorgane terminal est transform en /
n+1
.
Daprs [MLS94], le dplacement amenant le repre /
j
en /
j
est donn par la matrice exponentielle de
S
j
, e
S
j
. Il en rsulte que le torseur reprsentant la pose de lorgane terminal dcal peut tre calcul
tout au long de la chane cinmatique par :
P
=
n
j=1
e
S
j
S
j
, (3.10)
o le torseur P
change le repre /
1
en /
n+1
avec prise en compte des erreurs.
Fp
F
y yp
x
xp
z zp
Figure 3.2 [BSG
n+1
tout au long de la chane cinmatique :
P = P
1
P
=
1
j=n
S
1
j
n
j=1
e
S
j
S
j
. (3.11)
Daprs [CC09], il savre que P peut aussi bien tre reprsent de manire vectorielle comme un
torseur de faible dplacement p, de la faon suivante :
p =
n
j=1
k=n
adj(S
k
)
1
s
j
, avec adj(S
j
)
,
R
j
O
33
T
j
R
j
R
j
T
avec p
r
,
p
r,X
p
r,Y
p
r,Z
T
et p
t
,
p
t,X
p
t,Y
p
t,Z
T
carac-
trisant respectivement les erreurs de rotation et de translation de lorgane terminal du manipulateur.
An de trouver les erreurs maximum de pose de lorgane terminal pour une conguration donne du
manipulateur, nous devons rsoudre deux problmes doptimisation sous contraintes :
max |p
r
|
2
, (3.12)
s.c. r
2
j,X
+ r
2
j,Y
2
j,XY
0,
r
2
j,Z
2
j,Z
0,
j = 1, . . . , n
max |p
t
|
2
, (3.13)
s.c. r
2
j,X
+ r
2
j,Y
2
j,XY
0,
r
2
j,Z
2
j,Z
0,
t
2
j,X
+ t
2
j,Y
b
2
j,XY
0,
t
2
j,Z
b
2
j,Z
0,
j = 1, . . . , n
o |.|
2
est la norme de rang 2. Lerreur maximum en rotation due au jeu dans les articulations est obte-
nue en rsolvant le problme (3.12). De la mme faon, le dplacement maximum d au jeu est obtenu
en rsolvant le problme (3.13). Notons que les contraintes de ces problmes sont dnies par les qua-
tions (3.6)(3.9). En outre, il apparat que ces problmes sont des problmes quadratiques non convexes
quadratiquement contraints (QCQP).
3.3 Modication du cadre de rsolution classique
Les problmes de satisfaction de contraintes sont habituellement rsolus en utilisant un algorithme
de branch-and-prune. Lalgorithme 3.3 est un exemple basique de branch-and-prune. Ses entres sont un
ensemble de contraintes et un pav de domaines initiaux. Il alterne pruning (l.4) et branching (l.5) pour
produire un ensemble de pavs qui couvre prcisment lensemble des solutions : grce la proprit
satisfaite par la fonction contract
C
de ne perdre aucune solution potentielle grce aux arrondis corrects
de larithmtique des intervalles, cet algorithme maintient la proprit x B (c C, c(x)) x !
cest--dire quil est impossible de passer ct dune solution. Le critre darrt est gnralement la
t
e
l
-
0
0
5
6
0
9
6
3
,
v
e
r
s
i
o
n
1
-
3
1
J
a
n
2
0
1
1
36 Moo rirsxrrox rr a rsoitrrox otx raoai` rmr or coxcrrrrox rx aoaorrotr
Aio. 3.3 : BranchAndPrune( ensemble de contraintes C = c
1
, . . . , c
m
, pav B
0
)
! B
0
1
tant que ! et non critre_arrt faire 2
(B, !) extract(!) 3
B contract
C
(B) 4
si splitable(B) alors 5
B
, B
split(B) 6
! ! B
, B
7
n 8
n 9
retourner ! 10
taille des pavs dans !, lalgorithme sarrtant quand ils ont atteint une largeur infrieure une prcision
donne. RealPaver [GB06] implmente un algorithme de ce type et nous nous en sommes servi de point
de dpart.
Un algorithme de branch-and-prune peut tre transform en branch-and-bound capable de traiter des
problmes de minimisation les problmes de maximisation tant traits dune manire similaire. Lal-
gorithme 3.4 donne un exemple dun tel algorithme de branch-and-bound. La fonction de cot est une
entre supplmentaire, grce laquelle peut tre maintenue une borne suprieure du minimum global
dans la variable m, initialise + en dbut de la recherche (l.2). Cette borne suprieure est utilise
priodiquement pour rejeter les parties de lespace de recherche dont le cot lui est suprieur, et ce sim-
plement en ajoutant la contrainte f (x) m lensemble des contraintes du problme (l.5). Finalement, la
borne suprieure est mise jour la ligne 6 (cf Algorithme 3.5), en cherchant des points faisables lint-
Aio. 3.4 : BranchAndBound(ensemble de contraintes C = c
1
, . . . , c
m
, pav B
0
, fonction f )
! B
0
1
m + 2
tant que ! et non critre_arrt faire 3
(B, !) extract(!) 4
B contract
C f (X)m
(B) 5
(B, m) update(C, B, f , m) 6
si splitable(B) alors 7
B
, B
split(B) 8
! ! B
, B
9
n 10
n 11
retourner (m, !) 12
t
e
l
-
0
0
5
6
0
9
6
3
,
v
e
r
s
i
o
n
1
-
3
1
J
a
n
2
0
1
1
3.4. Expriences 37
Aio. 3.5 : Update(ensemble de contraintes C, pav B, fonction f , rel m)
pour i 1, . . . , N faire 1
b random(B) 2
si solution(b, C) alors 3
n f (b) 4
si n < m alors 5
m n 6
n 7
n 8
n 9
retourner(B, m) 10
rieur du pav courant puis en valuant la fonction de cot sur de tels points une fois trouvs. Dans notre
implmentation actuelle, des points sont gnrs alatoirement dans le pav courant et les contraintes
sont rigoureusement vries en utilisant larithmtique des intervalles avant de mettre jour la borne
suprieure. Remarquons que si des algorithmes de branch-and-bound plus labors font gnralement
appel de la recherche locale pour trouver de bons points faisables, les expriences que nous prsentons
la section suivante, et que nous avons ralises en utilisant cette simple mthode de gnration ala-
toire de points, montrent dj de bonnes performances. Lalgorithme de branch-and-bound maintient un
encadrement du minimum global qui converge vers celui-ci condition que des points faisables soient
trouvs pendant la recherche, ce qui est garanti dans le cas de contraintes dingalit qui ne sont pas
singulires.
Une implmentation ecace de lalgorithme de branch-and-bound requiert que la liste des pavs !
soit gre avec attention : il faut la maintenir trie par rapport la borne infrieure de lobjectif valu
sur chaque pav. Ainsi, chaque fois quun pav B est insr dans !, lvaluation aux intervalles f (B)
est calcule et la borne infrieure de cette valuation est utilise pour maintenir la liste trie. Ensuite, la
ligne 4 on extrait le premier pav de ! de telle sorte que les rgions les plus prometteuses de lespace de
recherche soient explores les premires, ayant pour eet des amliorations drastiques. Un autre avantage
de maintenir ! trie est que le premier pav de la liste contient la valeur la plus basse de borne infrieure
de lobjectif parmi tous les pavs. En consquence, on peut utiliser cette valeur et mesurer sa distance
la borne suprieure courante m pour arrter lalgorithme quand lencadrement du minimum global a
atteint la prcision souhaite.
Lalgorithme de branch-and-bound que nous venons de dcrire a t implement dans RealPaver.
Cest cette implmentation que nous avons utilise pour raliser les expriences que nous prsentons
dans la section suivante.
3.4 Expriences
Nous avons eectu un ensemble dexpriences pour analyser les performances de notre approche
pour rsoudre le problme derreur de pose. Nous lavons compare avec GAMS/BARON [GAM] et
ECL
i
PS
e
[WNS97]. GAMS/BARON est un systme de programmation mathmatique largement utilis
t
e
l
-
0
0
5
6
0
9
6
3
,
v
e
r
s
i
o
n
1
-
3
1
J
a
n
2
0
1
1
38 Moo rirsxrrox rr a rsoitrrox otx raoai` rmr or coxcrrrrox rx aoaorrotr
de rsolution de problmes doptimisation
1
. Quant ECL
i
PS
e
, cest un des rares systmes de program-
mation par contraintes capables de rsoudre des problmes continus doptimisation.
Nous avons test 8 modles, 4 sur lerreur maximum en translation (T) et 4 sur lerreur maximum en
rotation (R). Pour chaque type de modle, nous considrons chaque fois des manipulateurs ayant de 2
5 joints. La Table 3.1 prsente les rsultats obtenus. Les colonnes 1 et 2 montrent le nombre de joints et le
type de problme. Les colonnes 3 5 donnent des informations pertinentes quant linstance considre
(nombre de variables, de contraintes, doprations arithmtiques dans la fonction-objectif). Les colonnes
5 10 contiennent les temps de rsolution observs en utilisant GAMS/BARON, RealPaver, et ECL
i
PS
e
.
Nos expriences ont t ralises sur un Pentium D 3 Ghz avec 2 Go de RAM. Le temps de rsolution
prsent ici est chaque fois le meilleur temps obtenu sur 5 lancements.
#joints Type
Problem Size
GAMS RP ECL
i
PS
e
#var #ctr #op
2 T 12 8 28 0.08 0.004 >60
2 R 6 4 18 0.124 0.004 >60
3 T 18 12 135 0.124 0.008 t.o.
3 R 9 6 90 0.952 0.004 t.o.
4 T 24 16 374 0.144 0.152 t.o.
4 R 12 8 205 2.584 0.02 t.o.
5 T 30 20 1073 0.708 >60 t.o.
5 R 15 10 480 9.241 0.26 t.o.
Table 3.1 Temps de rsolution (secondes)
Les rsultats montrent que notre approche est plus rapide dans presque tous les cas. Pour les ins-
tances de taille plus rduites comme 2R, 2T, 3R et 3T, RealPaver ore des performances remarquables
et peut tre jusqu 100 fois plus rapide que GAMS/BARON. Un telle rapidit de convergence peut tre
explique en partie par lecacit des techniques de ltrage, bases ici sur la consistance denveloppe
et bien optimises ; mais surtout, par le fait quil ny a pas besoin de calculs vraiment trs prcis pour
ce problme particulier. En fait, il nest pas utile datteindre une prcision de lordre de 10
8
, du fait
principalement de la limitation physique des outils de conception qui ne sont pas capable datteindre une
prcision aussi grande.
Pour des instances plus grandes comme 4R et 5R, RealPaver reste nettement plus rapide. Cependant,
mesure que la taille du problme augmente, et en particulier ds que le nombre de variables excde 20,
la convergence cesse dtre instantane. Ceci est un phnomne commun quon peut expliquer la fois
par le caractre exponentiel par rapport au nombre de variables de la complexit de ce type dalgorithme
de rsolution, et aussi au fait que la fonction-objectif elle-mme crot exponentiellement avec le nombre
de variables sur lesquelles elle porte. Nanmoins, nous estimons que les temps de rsolution restent
raisonnables au vu de la complexit et de la taille des problmes ainsi que des techniques utilises
2
.
Cependant, les temps de rsolution ne sont pas le seul point examiner dans cette situation. Au
contraire, il est galement important de discuter la abilit des solutions calcules par BARON. En eet,
il a dj t mentionn dans [LMR07] que celles calcules par BARON ntaient pas ables en gnral.
1
Dans notre version du logiciel, la rsolution des problmes linaires (resp. non linaires) est eectue par CPLEX (resp.
MINOS).
2
Des expriences ultrieures ont en outre montr que notre approche permettait en ltat de rsoudre linstance 5T en un
temps de lordre de la seconde, condition que les points tirs au sort par lalgorithme soit tels quils permettent de mettre
jour lobjectif de faon signicative
t
e
l
-
0
0
5
6
0
9
6
3
,
v
e
r
s
i
o
n
1
-
3
1
J
a
n
2
0
1
1
3.5. Conclusion 39
Figure 3.3 Isocontours de lerreur maximum de position dans lespace de travail.
Nous avons pu vrier ici, en utilisant RealPaver, soit que lencadrement optimal calcul par BARON
ntait pas faisable, soit qu linverse cet encadrement faisable ntait pas optimal.
Pour nir, remarquons le fait que bien que RealPaver et ECL
i
PS
e
utilisent des techniques de program-
mation par contraintes, le second est compltement dpass mme pour les plus petites de nos instances.
Ce nest pas surprenant cependant, tant donn que le premier a t conu pour rsoudre des problmes
continus non linaires alors quECL
i
PS
e
est un outil plus gnrique et extensible.
3.5 Conclusion
Dans ce premier chapitre, nous avons montr comment utiliser la programmation par contraintes pour
rsoudre le problme du calcul de lerreur de pose maximum dun systme robotique mcanique due au
jeu dans les articulations. Nous avons commenc par modliser le problme comme un CSP continu dot
dune fonction-objectif, avant de montrer comment transformer le schma branch-and-prune de rsolu-
tion quemploie classiquement la programmation par contraintes, en un algorithme branch-and-bound
ddi la rsolution rigoureuse de problmes doptimisation sous contraintes. Enn, nous avons prsent
des rsultats exprimentaux, obtenus partir de plusieurs instances du problme initial, et montr que
notre approche tait trs comptitive par rapport des outils la pointe des techniques daujourdhui.
Il est important de noter que cette approche nest pas spcique la robotique mais est applicable
nimporte quel problme o sont requis des calculs rigoureux, gage de abilit des rsultats numriques
obtenus. De plus, des travaux futurs devraient permettre de mettre en oeuvre dautres critres de ltrage
utilisant la fonction-objectif et dainsi acclrer encore la convergence de lalgorithme doptimisation,
permettant de traiter ecacement des problmes de plus grande taille. Par ailleurs, nous avons dj
commenc explorer des pistes pour lamlioration des performances de notre optimiseur global sous
contraintes dingalits, et notamment lutilisation de la contrainte additionnelle f
X =
S, E, N, D, M, O, R, Y
1 =
D
S
= D
E
= D
N
= D
D
= D
M
= D
O
= D
R
= D
Y
= 0, . . . , 9
C =
S 0,
M 0,
1000S + 100E + 10N + D + 1000M + 100O + 10R + E
= 10000M + 1000O + 100N + 10E + Y
Le deuxime modle que nous avons cherch rsoudre est le CSP continu qui correspond la re-
cherche de la conguration 3D dune molcule de cyclohexane, dcrite par un systme de trois quations
non linaires :
Exemple 4.2. Le problme cyclohexane est modlis laide du CSP continu suivant :
t
e
l
-
0
0
5
6
0
9
6
3
,
v
e
r
s
i
o
n
1
-
3
1
J
a
n
2
0
1
1
4.1. Prsentation des outils existants 43
X =
x, y, z
1 =
D
x
= D
y
= D
z
= [1 10
8
, 1 10
8
]
C =
y
2
(1 + z
2
) + z(z 24y) = 13,
x
2
(1 + y
2
) + y(y 24x) = 13,
z
2
(1 + x
2
) + x(x 24z) = 13
Quant au troisime, il sagira dun CSP mixte, dont lobjet est le dplacement dans son espace de
travail dun bras de robot en fonction de ses caractristiques :
Exemple 4.3. Le problme robot est modlis laide du CSP mixte suivant :
X =
i, j, a, b, , , x, y, d
1 =
D
i
= D
j
= 2, . . . , 5, D
a
= D
b
= [2, 8], D
x
= [0, 10], D
y
= [0, 6], D
= D
= [0, ],
D
d
= [1.99, 2.01]
C =
a sin() = b sin( ) + y,
a cos() = x (b cos( )),
a cos() 10,
a sin() 6,
(x 8)
2
+ (y 4)
2
4,
a = (i 1)d,
b = ( j 1)d
75.6
117.5
169.2
antennes_41 2/6 ? ? ? ?
antennes_43 6/2
260.9 381.3 1862.4 839.41
274.4
102.8
275.1
108.3
174.6
66.1
146.0
186.7
fractions_10 9/0
2.0 0.91 2.5 1.42
6.7
1.3
2.0
0.86
fractions_13 12/0
3351.6 220.9 1707.0 848.2
667.2
484.7
1033.7
485.0
Table 4.2 Temps de rsolution en secondes (premire ligne) et nombre de branchement sur entier/rel
en milliers (deuxime ligne).
t
e
l
-
0
0
5
6
0
9
6
3
,
v
e
r
s
i
o
n
1
-
3
1
J
a
n
2
0
1
1
62 Coiixaoaxrrox or ortx soivrtas orscarr rr coxrrxt
a t conu dans ce but, autour dun cur optimis en C et ddi au calcul sur les intervalles bornes
ottantes, alors que Choco, cod en Java, a simplement t tendu aprs sa conception. Lexception
cette tendance gnrale, quon observe pour ex1263, tient au nombre lev de variables utilises et
montre une faiblesse de notre modle de collaboration : le temps pass recopier les domaines dun
solveur lautre solveur. Pour cet exemple, on a en eet relev un temps de transfert slevant plus de
50 secondes. De plus, on voit bien dans cet exemple notamment que Choco, moins ecace pour rduire
les domaines, doit eectuer plus de branchements.
loppos, RealPaver est plus rapide que la collaboration dans la majorit des cas toutes les
instances des problmes qui ne font pas intervenir de contraintes globales. Le gain procur par la stratgie
dexploration de Choco, numrant intgralement les domaines discrets, nest pas compens par les
temps de transfert des domaines. Mais ces temps de transfert, sil est indniable quils participent la
dirence observe, nexpliquent pas toute la dirence et on doit aussi considrer le fait que le point
xe est calcul dans la coopration sur toutes les contraintes chaque fois, chaque modication dune
variable, alors que dans RealPaver ce rappel des contraintes est plus souple et seules les contraintes
impliquant les variables modies sont propages. Ainsi la dirence est explique la fois par les
temps de transfert des domaines mais aussi par le caractre plus lourd, moins n, du calcul du point xe
par Choco laide de la contrainte utilisant RealPaver.
Notons pour nir que ECL
i
PS
e
apparat ici bien plus performant sur les problmes avec un rapport
lev du nombre de variables discrtes sur le nombre de variables continues, comme le montre ex1263
par opposition st_miqp5 par exemple : dans une situation du genre du premier cas, le solveur est trs
comptitif pour rsoudre un problme o les trois quarts des variables sont discrtes binaires qui plus
est alors que dans le second cas, il est largement dpass par au moins lun des autres outils, sinon une
majorit dentre eux.
4.4 Conclusion
Dans ce chapitre nous avons prsent nos travaux concernant la ralisation dune collaboration entre
deux solveurs, lun ddi aux domaines discrets, lautre ddi aux domaines continus. Aprs avoir tudi
en dtails les capacits de modlisation en termes de problmes mixtes des principaux outils non com-
merciaux disponibles actuellement, nous avons entrepris dutiliser les capacits de propagation sur les
contraintes arithmtiques dun solveur continu pour amliorer les capacits dans ce domaine dun solveur
discret. Nous avons alors pu mesurer lecacit de la collaboration que nous avons mise en oeuvre en
la comparant dirents outils vis--vis de la rsolution dune slection de problmes mixtes. travers
ces travaux, nos principales contributions sont les suivantes :
Nous avons mis au point une plateforme logicielle dot dun langage de modlisation facilitant
lexpression des problmes mixtes en fusionnant les hautes capacits dexpression de contraintes
arithmtiques du langage de modlisation ddi dun solveur continu, avec les nombreuses primi-
tives de modlisation de contraintes globales dun solveur discret, amliorant en cela les capacits
de chacun des deux outils pris individuellement.
Nous avons galement mis en vidence la nette supriorit en termes decacit de rsolution
dune collaboration doutils pour rsoudre les problmes mixtes qui font intervenir la fois des
contraintes arithmtiques, ncessitant une valuation par larithmtique des intervalles, et des con-
traintes globales, requrant des algorithmes de ltrage ddis et optimiss.
t
e
l
-
0
0
5
6
0
9
6
3
,
v
e
r
s
i
o
n
1
-
3
1
J
a
n
2
0
1
1
4.4. Conclusion 63
En outre, des travaux futurs pourraient permettre de proter encore davantage des forces dune telle
collaboration en tentant, sinon de sen aranchir, au moins den amliorer les points faibles majeurs que
sont actuellement les temps de recopie de domaines dun solveur lautre et le manque de souplesse
du propagateur utilis pour calculer un point-xe des domaines partir des contraintes arithmtiques du
modle. En ce qui concerne le premier point, on peut en eet concevoir une symbiose plus profonde
entre les deux outils, qui pourrait amener par exemple proposer une gestion plus intelligente de la
recopie des domaines, au moins dans le cas particulier o il ny a pu se produire aucune rduction et o
la recopie en retour est inutile. Quant au deuxime point, on peut galement envisager une collaboration
plus en profondeur qui permettrait une slection plus ne des oprateurs de rduction rappeler en cas
de modication de domaines, par exemple en orant la possibilit de neectuer le calcul de point-xe
que sur un sous-ensemble des contraintes arithmtiques dlgues au solveur continu.
t
e
l
-
0
0
5
6
0
9
6
3
,
v
e
r
s
i
o
n
1
-
3
1
J
a
n
2
0
1
1
t
e
l
-
0
0
5
6
0
9
6
3
,
v
e
r
s
i
o
n
1
-
3
1
J
a
n
2
0
1
1
V
UTILISATION DE LA CONTRAINTE
DISCRTE ALLDIFFERENT DANS
UN SOLVEUR CONTINU
Lorsque loeuvre utile est accomplie et que point la renomme,
Que la personne seace : voici la Voie.
Lxo-Tsrt, De la Voie et de sa vertu, IX.
5.1 Motivations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
5.2 Modliser des MINLP avec la contrainte AllDierent . . . . . . . . . . . . . . . . . . 66
5.2.1 Exemples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
5.2.2 Synthse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
5.3 Traiter le AllDierent dans un solveur continu . . . . . . . . . . . . . . . . . . . . . . 71
5.3.1 Reformulations de la contrainte . . . . . . . . . . . . . . . . . . . . . . . . . 71
5.3.2 Implmentation de ltrages ddis . . . . . . . . . . . . . . . . . . . . . . . . 72
5.4 Expriences . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
5.4.1 Description des problmes . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
5.4.2 Rsultats . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
5.5 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
Ce chapitre prsente une tude exprimentale investigant le champ des techniques de programmation
par contraintes ddies la rsolution de problmes mixtes, un champ o peu de travaux ont dj t
raliss [Gel98], [GF03]. Dans ce chapitre, nous nous intressons la recherche dune manire simple
de permettre aux solveurs continus de grer ecacement les contraintes globales et de tirer avantage de
cette force pour rsoudre des problmes mixtes. En particulier, nous tudions la possibilit dutiliser la
contrainte alldifferent pour modliser des problmes mixtes du monde rel et les rsoudre dans un
solveur continu. Cette contrainte est en eet lune des plus utilises et des mieux tudies.
Le chapitre est organis comme suit. Dabord, nous prsentons ce qui nous motive aller dans cette
direction. Ensuite, nous montrons comment utiliser la contrainte alldifferent pour la modlisation
de quelques problmes mixtes du monde rel. Nous montrons alors les solutions possibles pour la for-
mulation de la contrainte et son ltrage dans un solveur continu. Enn, nous prsentons les rsultats des
expriences que nous avons ralises pour comparer leur comportement, avant de conclure le chapitre.
65
t
e
l
-
0
0
5
6
0
9
6
3
,
v
e
r
s
i
o
n
1
-
3
1
J
a
n
2
0
1
1
66 Urrirsxrrox or ix coxraxrxrr AiiDrrrrarxr oxxs tx soivrta coxrrxt
5.1 Motivations
Les problmes doptimisation non linaire mixtes-entiers (MINLP) sont des problmes doptimisa-
tion sous contraintes qui font intervenir la fois des variables discrtes et des variables continues, dots
dune fonction-objectif ventuellement non convexe et de contraintes qui peuvent tre non linaires. Des
problmes de ce genre apparaissent dans de nombreux domaines dapplication comme par exemple la
bioinformatique, loptimisation de portefeuilles dactions et le design en ingnierie. La plupart de ces
mthodes de rsolution sont bases sur le cadre classique du branch-and-bound et ont recours des
techniques de direntes sortes, comme les relaxations linaires, les mthodes de coupes ou encore la
reformulation symbolique.
Rcemment, une tendance majeure a merg dans le champ de la recherche oprationnelle, la conver-
gence avec la programmation par contraintes. Elle est ddie la recherche de moyens pour la premire
de tirer avantage de mthodes issues de la seconde [Hoo07]. En fait, il se trouve quintgrer la program-
mation par contraintes et la recherche oprationnelle est une tendance trs naturelle puisquelles ont des
buts trs similaires. Lutilisation de larithmtique des intervalles en programmation par contraintes est
par exemple un moyen puissant de rsoudre les MINLP de faon rigoureuse et complte, i.e. de les r-
soudre avec les deux intressantes caractristiques de calculer des solutions garanties et de ne perdre
aucune solution. Cela devient trs intressant quand on considre le fait quun outil de dernire gnra-
tion bien connu comme BARON nest pas digne de conance en gnral [BSG
10], [LMR07].
Mais ce qui nous intresse particulirement ici est lutilisation de contraintes globales en recherche
oprationnelle. Les contraintes globales sont de puissantes primitives de modlisation qui sont trs lar-
gement utilises dans le domaine de la programmation par contraintes. Les utilisateurs disposent dun
catalogue de plusieurs centaines de contraintes prconstruites parmi laquelle ils nont qu choisir celle
qui convient le mieux au problme quils veulent modliser [BCDP07]. En outre, chaque contrainte glo-
bale a son propre algorithme de ltrage ddi de faon ce que le processus de rsolution sadapte le
mieux au problme modlis et rejette facilement de larges parties de lespace de recherche. Lutilisation
de contraintes globales en recherche oprationnelle a ainsi deux grands avantages [Hoo07] :
rendre les modles plus faciles construire et mettre jour ;
rvler la structure du problme au solveur pour permettre de le rsoudre plus ecacement.
5.2 Modliser des MINLP avec la contrainte AllDierent
Dans cette section, nous donnons trois exemples de MINLP qui peuvent tre utilement modliss en
utilisant la contrainte discrte alldifferent. Ce sont des problmes du monde rel quon peut trouver
dans la littrature. Notre but ici est seulement de montrer comment utiliser la contrainte alldifferent
pour une modlisation la fois plus facile et plus concise. Les lecteurs intresss qui auraient besoin de
plus dinformations propos de la modlisation complte des problmes pourront se rfrer aux articles
correspondants.
5.2.1 Exemples
Ordonnancement robuste une machine
Pour commencer, nous prsentons la formulation en programmation mixte-entire de Moxrrmxxxr
pour le problme dordonnancement robuste une machine avec des donnes intervalles quon peut
t
e
l
-
0
0
5
6
0
9
6
3
,
v
e
r
s
i
o
n
1
-
3
1
J
a
n
2
0
1
1
5.2. Modliser des MINLP avec la contrainte AllDierent 67
trouver dans [Mon07], o lon considre pour chaque tche un intervalle de temps de traitements pos-
sibles. Loptimisation est ralise selon un critre de robustesse, i.e. on cherche lordonnancement qui se
comporte le mieux dans le pire des cas.
Chacune de N tches donnes doit se voir aecter un ordre de traitement distinct, ce qui en pro-
grammation non linaire mixte-entire est normalement modlis en utilisant des variables binaires, e.g.
x
ik
est vraie quand la tche i est traite en k
` eme
position, et sous la contrainte qu chaque tche (resp.
position) soit aecte exactement une position (resp. tche) :
i=1
x
ik
= 1,
N
k=1
x
ik
= 1.
Ce schma correspond parfaitement la signication de la contrainte globale alldifferent. tant
donn un ensemble de N variables entires t
i
prenant chacune sa valeur dans 1, . . . , N, les deux contraintes
ci-dessus peuvent tre reformules de la manire suivante :
alldierent([t
1
, . . . , t
N
]).
Le modle que nous fournissons ici pour le problme dordonnancement robuste rsulte dune tech-
nique de reformulation bien connue qui exploite la proprit dunimodularit du sous-problme de maxi-
misation [Law76] :
min
N
i=1
i
+
N
k=1
k
s.c.
(1) alldierent(t
1
, . . . , t
N
),
(2) t
i
=
N
k=1
x
ik
k,
(3)
N
k=1
x
ik
= 1,
(4)
i
+
k
p
i
k
j=1
(k j)x
i j
+ p
i
N
j=k
(k j)x
i j
,
x
ik
0, 1,
t
i
1, . . . , N,
i
R,
k
R.
La contrainte (1) exprime que chaque tche doit avoir un ordre de traitement dirent ; (2) transmet
cette valeur aux variables binaires, ce que requiert la contrainte (4). La contrainte (3) empche cette
transmission dimpliquer deux variables binaires x
ik
simultanment vraies pour un mme i. Enn, (4)
fait simplement le lien entre les variables dont on maximise la somme et lexpression arithmtique du
cot de regret pour le pire des scnarios associ cet ordonnancement. De plus amples dtails sont
disponibles dans [Mon07].
t
e
l
-
0
0
5
6
0
9
6
3
,
v
e
r
s
i
o
n
1
-
3
1
J
a
n
2
0
1
1
68 Urrirsxrrox or ix coxraxrxrr AiiDrrrrarxr oxxs tx soivrta coxrrxt
Ordonnancement de lot conomique avec dcroissance de la performance
Nous introduisons prsent un modle en programmation mathmatique pour le problme de lor-
donnancement de lot conomique (ELSP) avec dcroissance de la performance, dont lobjectif est de
minimiser le cot total de production compos des cots dinitialisation et de stockage par un or-
donnancement cyclique dun ensemble donn de produits pour lesquels il y a une demande continue et
xe [CLPP05].
Comme dans lexemple prcdent, le alldifferent est une faon naturelle dexprimer cette ide
dordonnancement qui dhabitude est exprime dans ce type de modles par des contraintes boolennes :
i=1
Z
i j
= 1,
N
j=1
Z
i j
= 1.
Ici aussi, tant donn un ensemble de N variables entires n
i
prenant leur valeur dans 1, . . . , N, les
deux contraintes ci-dessus peuvent tre reformules en utilisant la contrainte globale alldifferent :
alldierent([n
1
, . . . , n
N
]).
Nous donnons prsent un aperu du modle complet :
min
1
Tc
,
i
Cinv f
i
1
2
(G
i
i
d
i
)TP
2
i
+
G
i
i
TP
i
+
G
i
2
i
(e
i
TP
i
1) +
1
2
d
i
(Tc TP
i
)
2
Cf
i
G
i
TP
i
+
j
Ctr
i j
Z
i j
s.c.
(1) alldierent(n
1
, . . . , n
N
),
(2) n
i
=
j
Z
i j
j,
(3)
j
Z
i j
= 1,
(4) d
i
Tc G
i
i
TP
i
+ G
i
i
i
(1 e
i
TP
i
),
(5) Tc =
i
TP
i
+
i j
Z
i j
+
j
sl
i j
,
(6) (1 Z
i j
)Tc TS
j
(TS
i
+ TP
i
+
i j
+ sl
i j
),
(7) (1 Z
i j
)Tc TS
j
(TS
i
+ TP
i
+
i j
+ sl
i j
),
Tc
i
, TP
i
, TS
i
, d
i
,
i j
, sl
i j
R.
n
i
1, . . . , N,
Z
i j
0, 1,
La fonction objectif optimiser est compose de la somme des cots par cycle du stockage, des
matires premires et de lentretien. Comme dans lexemple prcdent, la contrainte (1) exprime que
chaque tche doit avoir un ordre de traitement distinct, (2) transmet cette valeur aux variables binaires
comme le ncessite la contrainte (5). La contrainte (3) empche cette transmission de faire intervenir
t
e
l
-
0
0
5
6
0
9
6
3
,
v
e
r
s
i
o
n
1
-
3
1
J
a
n
2
0
1
1
5.2. Modliser des MINLP avec la contrainte AllDierent 69
deux variables Z
i j
simultanment vraies pour un i donn. La contrainte (4) exprime que pour chaque
produit, on impose que la quantit produite soit suprieure la demande pendant le cycle, tandis que
la contrainte (5) impose que la dure du cycle soit suprieure la somme des temps de traitement et
de transition entre produits. Pour nir, les contraintes (6) et (7) dclarent que chaque produit ne peut
commencer tre produit quaprs le prcdent traitement suivi dune rinitialisation de la chane de
production pour le bon produit. De plus amples dtails sont disponibles dans [CLPP05].
Motif optimal de rechargement dun racteur nuclaire
Le modle que nous prsentons prsent est une version simplie mais raliste du problme du
motif optimal de rechargement dun racteur nuclaire [QGH
i=1
x
i,l,m
= 1,
L
l=1
M
m=1
x
i,l,m
= 1.
Il savre que le problme daectation des noeuds du racteur aux cellules de la matrice de trajec-
toire peut sexprimer au moyen dune contrainte alldifferent. En eet, considrons la numrotation
suivante des cellules :
t
e
l
-
0
0
5
6
0
9
6
3
,
v
e
r
s
i
o
n
1
-
3
1
J
a
n
2
0
1
1
70 Urrirsxrrox or ix coxraxrxrr AiiDrrrrarxr oxxs tx soivrta coxrrxt
1 2 3 4
5 6 7 8
9 10 11 12
Ainsi, chaque noeud i doit tre aect un numro distinct n
i
, compris dans 1, . . . , 12, ce qui une
fois encore correspond parfaitement avec la signication de la contrainte alldifferent. La contrainte
daectation de la matrice de trajectoire est donc simplement modlise comme suit :
alldierent([n
1
, . . . , n
N
]).
Nous donnons prsent un aperu du modle complet du problme de motif optimal de rechargement
du racteur nuclaire o chaque cycle est divis en un nombre discret dtapes :
max
x,k
,R,k
e f f
k
e f f
T
s.c.
(1) alldierent(n
1
, . . . , n
N
),
(2) n
i
=
l,m
x
i,l,m
(l + (m 1) L),
(3)
m
x
i,l,m
= 1,
(4) k
i,t
R
i,t
f
lim
N
(5) k
i,1
=
l>1
m
x
i,l,m
j
x
j,l1,m
k
j,T
+(
m
x
i,1,m
)k
f resh
,
(6) k
i,t+1
= k
i,t
(P
c
t
)k
i,t
R
i,t
,
(7)
i
k
i,t
R
i,t
= 1
(8) k
e f f
T
R
i, j
=
j
G
i, j
k
j,T
R
j,t
,
k
e f f
t
0,
k
i,t
0,
R
i,t
0,
n
i
1, . . . , N,
x
i,l,m
0, 1,
Les contraintes (1) (3) modlisent le problme daectation de la matrice de trajectoire : (1) ex-
prime que chaque noeud doit y avoir une position distincte tandis que (2) transfre cette position aux
variables binaires pour que la contrainte (5) puisse accder cette information et sache quels noeuds se
sont vus aecter une barre frache ; (3) empche ce transfert dimpliquer deux variables x
i,l,m
mises vrai
pour un mme i donn. Les contraintes (4) (7) dcrivent le comportement des barres de combustible
en termes de lois physiques : (4) requiert que la puissance maximum par noeud ne soit pas trop grande,
pour des raisons videntes de scurit ; (5) dnit la valeur initiale du coecient de multiplication de
puissance de chaque noeud selon quil contient ou non une barre frache ; (6) dcrit la dcroissance de
la ractivit locale ; (7) sert normaliser la puissance en chaque noeud. Enn, la contrainte (8) exprime
la ractivit moyenne du cur en fonction de la ractivit locale chaque noeud et de la probabilit G
i j
quun neutron mis au noeud i soit absorb au noeud j.
t
e
l
-
0
0
5
6
0
9
6
3
,
v
e
r
s
i
o
n
1
-
3
1
J
a
n
2
0
1
1
5.3. Traiter le AllDierent dans un solveur continu 71
5.2.2 Synthse
Ces trois exemples nous ont permis de bien comprendre la faon dont on peut utiliser la contrainte
discrte alldifferent pour modliser des problmes MINLP issus du monde rel. Lide est dtre ca-
pable de rprer si une partie du modle ne correspond pas un problme daectation et/ou didentier,
dans les modles de problmes de type ordonnancement/aectation sous contraintes, sil est possible de
trouver une partie avec la forme gnrique suivante :
N
i
1
i
1
=1
. . .
N
ip
i
p
=1
x
i
1
,...,i
p
, j
1
,..., j
q
= 1,
N
j
1
j
1
=1
. . .
N
jq
j
q
=1
x
i
1
,...,i
p
, j
1
,..., j
q
= 1,
o N
i
1
. . . N
i
p
= N
j
1
. . . N
j
q
= M. En prsence dun motif de contraintes du type ci-dessus, on peut
le remplacer par une contrainte alldifferent portant sur un ensemble de variables n
k
prenant chacune
sa valeur dans 1, . . . , M :
alldierent([n
1
, . . . , n
M
])
5.3 Traiter le AllDierent dans un solveur continu
Dans cette section, nous passons en revue les direntes faons dont on peut traiter la contrainte
alldifferent, soit en la transformant en un ensemble de contraintes connues du solveur, soit en impl-
mentant des algorithmes de ltrages ddis.
5.3.1 Reformulations de la contrainte
5.3.1.1 Clique de contraintes binaires
La premire et la plus simple des faons de modliser une disgalit entre un certain nombre de
variables est dutiliser une clique de contraintes binaires, reliant chaque variable avec les autres par
autant de relations binaires de faon ce que toutes les paires de variables ne puissent recevoir la mme
valeur. Dans le cas qui nous concerne, cette relation binaire peut tre ou bien une disgalit ou bien une
contrainte de distance.
Une formulation nave de la contrainte alldifferent sur n variables se base ainsi sur une clique
de disgalits entre paires de variables, ajoutant de cette faon au modle un nombre de nouvelles
contraintes en O(n
2
). Notons que quand le solveur ne dispose pas de contrainte de disgalit, on peut
utiliser la place une contrainte de distance suprieure ou gale 1 entre deux variables :
i, j, 1 i < j n, |x
i
x
j
| 1
o la valeur absolue peut galement tre remplace par le carr (x
i
x
j
)
2
. De cette manire, il reste
possible dexprimer un modle faisant appel la contrainte alldifferent dans un solveur qui nimpl-
mente pas de contrainte de disgalit. Si de nombreuses opportunits de ltrage sont perdues dans une
telle reformulation, cela ne requiert du solveur que de fournir une contrainte de disgalit ou un oprateur
de valeur absolue.
t
e
l
-
0
0
5
6
0
9
6
3
,
v
e
r
s
i
o
n
1
-
3
1
J
a
n
2
0
1
1
72 Urrirsxrrox or ix coxraxrxrr AiiDrrrrarxr oxxs tx soivrta coxrrxt
5.3.1.2 Formulation MILP
Du point de vue de la programmation mathmatique, o dordinaire il ny pas de mot-cl alldiffe-
rent dans le langage de modlisation, et comme on a pu sen apercevoir dans la section prcdente, on
exprime la contrainte alldifferent en utilisant des variables boolennes [Hoo07] :
j=1
y
i j
= 1, i = 1, . . . , n
n
i=1
y
i j
1, j = 1, . . . , m
Une variable y
i j
valant vrai signie que la i
me
variable prend pour valeur la j
me
valeur de son
domaine. De nombreux problmes daectation utilisent ce genre de modlisation. Quand il y a autant
de valeurs dans le domaine que de variables contraindre par le alldifferent, on remplace par un
gal linfrieur-ou-gal dans la seconde quation :
j=1
y
i j
= 1, i = 1, . . . , n
n
i=1
y
i j
= 1, j = 1, . . . , n
Pour nir, remarquons quil est possible au besoin de faire le lien pour un i donn entre les variables
boolennes y
i j
et la valeur entire aecte la variable x
i
. Considrant par exemple x
i
v
1
, . . . , v
n
, on
a :
x
i
=
m
j=1
v
j
y
i j
, i = 1, . . . , n
5.3.2 Implmentation de ltrages ddis
5.3.2.1 Relaxation convexe denveloppe
On peut renforcer la modlisation sous forme de clique dcrite ci-dessus en ayant recours la relaxa-
tion convexe denveloppe de la contrainte alldifferent ainsi que la dnit Hookra dans [Hoo02] pour
les domaines intervalles dentiers :
j=1
x
j
=
n(n + 1)
2
(1)
jJ
x
j
|J|(|J| + 1)
2
, J 1, . . . , n avec |J| < n (2)
condition que x
j
[1, n]. Si on a x
j
[a, b] avec a 1, il sut de considrer la translation y
j
=
x
j
a + 1 [1, b a + 1].
Cependant, lensemble complet de contraintes de la relaxation dcrite par la formule ci-dessus contient
un nombre de contraintes qui crot exponentiellement avec le nombre de variables utilises par le modle,
si bien quil devient rapidement impossible dutiliser concrtement lensemble de contraintes ainsi dcrit.
t
e
l
-
0
0
5
6
0
9
6
3
,
v
e
r
s
i
o
n
1
-
3
1
J
a
n
2
0
1
1
5.3. Traiter le AllDierent dans un solveur continu 73
Heureusement, on peut savoir quelles sont les contraintes de la relaxation qui sont le plus susceptibles
de pouvoir ltrer les domaines tant donn un ensemble de domaines rduire :
i=1
x
i
k(k + 1)
2
k < N tel que
k
i=1
x
i
<
k(k + 1)
2
N
i=k
x
i
k(k + 1)
2
k > 1 tel que
N
i=k
x
i
>
N(N + 1)
2
k(k 1)
2
condition de classer les variables en ordre croissant (resp. dcroissant) de la borne infrieure (resp.
suprieure) de leur domaine i.e. x
i
x
j
i j (resp. x
i
x
j
i j ).
La formule ci-dessus simplmente facilement en un algorithme de ltrage de bornes, en se servant
de la premire ligne pour ltrer les bornes infrieures et de la seconde pour ltrer les bornes suprieures
Aio. 5.1 : ReviseLowerBound(Box B)
B
sort(B) 1
sum 0 2
pour k 1 |B
| 1 faire 3
si |B
k
| = |B
k+1
| = 1 et B
k
= B
k+1
alors
4
retourner f alse 5
n 6
sum sum + B
k 7
si sum <
k(k+1)
2
alors 8
B
reduce
,
k
i=1
x
i
k(k + 1)
2
9
si empty(B
) alors 10
retourner f alse 11
n 12
n 13
n 14
retourner true 15
l. 1 : tri des domaines par ordre croissant de borne infrieure
l. 2 : initialisation de laccumulateur
l. 3 : dbut de la boucle de traitement des domaines
l. 4-6 : test pour savoir si deux variables sont instancies la mme valeur, chec de la
fonction le cas chant
l. 7 : mise--jour de laccumulateur
l. 8 : test pour savoir si on satisfait la condition dapplication du ltrage
l. 9 : ltrage des domaines en utilisant la contrainte ddisgalit sur les k premiers domaines
l. 10-12 : chec de la fonction si le domaine obtenu est vide
t
e
l
-
0
0
5
6
0
9
6
3
,
v
e
r
s
i
o
n
1
-
3
1
J
a
n
2
0
1
1
74 Urrirsxrrox or ix coxraxrxrr AiiDrrrrarxr oxxs tx soivrta coxrrxt
Aio. 5.2 : Reduce(Box B)
B reduce
B,
N
i=1
x
i
=
N(N + 1)
2
1
si non empty(B) alors 2
retourner ReviseLowerBound(B) et ReviseUpperBound(B) 3
n 4
l. 1 : ltrage en utilisant la contrainte de somme sur toutes les variables
l. 2-4 : tentative de mise--jour des bornes infrieures et suprieures
des domaines des variables. Nous ne donnons ici que lalgorithme pour ltrer les bornes infrieures cf
Algo. 5.1 puisque lautre est trivial obtenir par symtrie. Rduire un pav consiste alors utiliser en
mme temps lgalit (1) de la formule de la relaxation, et les ingalits de la forme ci-dessus, que nous
qualierons dad hoc, comme le montre lAlgorithme 5.2.
Pour nir, signalons que nous voulons galement tester exprimentalement une deuxime faon duti-
liser cette relaxation dont nous venons de dcrire lusage communment pratiqu. Dans la section sui-
vante, nous comparerons deux versions du ltrage :
en utilisant lgalit (1) et les ingalits ad hoc ;
en utilisant lgalit (1) seule.
5.3.2.2 Contrainte de cardinalit de domaine
Nous prsentons prsent loprateur # de cardinalit de domaine, qui sapplique sur une union
dintervalles dentiers et retourne le nombre de valeurs distinctes quelle contient. prsent supposons
quune contrainte alldifferent tienne pour un ensemble donn de variables x
1
, . . . , x
n
. On a :
#
D
x
1
D
x
n
n
o D
x
i
est le domaine de x
i
pour tout i. Ceci est en fait une condition ncessaire bien connue, base sur
la notion dintervalle de Hxii notion quon dtaillera davantage dans la sous-section suivante en
particulier lintervalle de Hxii associ tout lensemble de variables [Hal35].
Lalgorithme de ltrage ddi que nous avons implment est prsent comme lAlgorithme 5.3. En
premier lieu, si loprateur de cardinalit de domaine calcule un entier infrieur n le nombre de va-
riables, alors la contrainte ne tient pas et retourne une inconsistance. Deuximement, quand une variable
est instancie une valeur, cette valeur est retire des domaines de toutes les variables pour lesquelles il
sagit dune valeur en borne de domaine. Cette technique correspond dailleurs au traitement classique
dune contrainte de disgalit : tant donns x y et x = a alors a est retir du domaine de y.
t
e
l
-
0
0
5
6
0
9
6
3
,
v
e
r
s
i
o
n
1
-
3
1
J
a
n
2
0
1
1
5.3. Traiter le AllDierent dans un solveur continu 75
Aio. 5.3 : Reduce(Box B)
u 1
pour k 1 |B| faire 2
u = u B
k
3
si |B
k
| = 1 alors 4
pour l 1, . . . , k 1, k + 1, . . . , |B|} faire 5
B
l
= B
l
\ B
k
6
si empty(B
l
) alors 7
retourner f alse 8
n 9
n 10
n 11
si |u| < |B| alors 12
retourner f alse 13
sinon 14
retourner true 15
n 16
n 17
l. 1 : initialisation de lunion des domaines
l. 2 : dbut de la boucle de traitement des domaines
l. 3 : ajout du domaine courant lunion
l. 4-6 : dans le cas o le domaine courant est rduit une valeur, celle-ci est retire des autres
domaines ( condition quelle soit une borne pour ces derniers)
l. 7-9 : chec de la fonction si un domaine se retrouve vide
l. 12-16 : test du nombre de valeurs contenues dans lunion des domaines, ce qui dtermine
lchec ou la russite de la fonction
5.3.2.3 Consistance de bornes
Nous pouvons galement implmenter un algorithme ddi de ltrage par consistance de bornes
comme celui donn dans [LOQTvB03], ou bien encore un algorithme classique de matching comme
celui dcrit dans [Rg94]. Par ailleurs, dans le cadre dune tude exprimentale utilisant un solveur
travaillant sur des intervalles, nous nous focalisons sur le cas des domaines intervalles dentiers sans
trous. Puisque nous savons dj que lalgorithme de matching de R rorx nest pas le plus ecace sur ce
type de domaines [vH01], nous nous intresserons plutt lalgorithme de consistance de bornes donn
dans [LOQTvB03], i.e. la version la plus rcente et la plus ecace des volutions de la version initiale
de lalgorithme bien connu de Ptorr [Pug98].
Lide cl sur laquelle se base cet algorithme est la recherche dintervalles de Hxii, cest--dire
des intervalles dont la taille est gale au nombre de variables dont ils peuvent contenir le domaine. Par
exemple, tant donnes quatre variables contraintes par une contrainte alldifferent, e.g. x
1
1, 2,
x
2
2, 3, x
3
1, 2, 3 et x
4
1, . . . , 5, lintervalle dentiers I
H
= 1, 2, 3 est un intervalle de Hxii
t
e
l
-
0
0
5
6
0
9
6
3
,
v
e
r
s
i
o
n
1
-
3
1
J
a
n
2
0
1
1
76 Urrirsxrrox or ix coxraxrxrr AiiDrrrrarxr oxxs tx soivrta coxrrxt
Aio. 5.4 : UpdateLowerBounds(Box B)
pour i 1 nb + 1 faire 1
t[i] h[i] i 1 2
d[i] bounds[i] bounds[i 1] 3
n 4
pour i 0 niv 1 faire 5
x maxsorted[i].minrank 6
y maxsorted[i].maxrank 7
z pathmax(t, x + 1) 8
j t[z] 9
d[z] d[z] 1 10
si d[z] = 0 alors 11
t[z] z + 1 12
z pathmax(t, t[z]) 13
t[z] j 14
n 15
pathset(t, x + 1, z, z) 16
si d[z] < bounds[z] bounds[y] alors 17
retourner f alse 18
n 19
si h[x] > x alors 20
w pathmax(h, h[x]) 21
B
k
maxsorted[i].min bounds[w] 22
pathset(h, x, w, w) 23
n 24
si d[z] = bounds[z] bounds[y] alors 25
pathset(h, h[y], j 1, y) 26
h[y] j 1 27
n 28
n 29
retourner true 30
l. 1-4 : initialisation des structures de donnes
l. 5 : dbut de la boucle de traitement des domaines
l. 6-9 : rcupration des informations de lintervalle courant
l. 10-16 : traitement de lintervalle courant
l. 17-19 : chec dtect
l. 20-24 : mise--jour de la borne infrieure du domaine courant
l. 25-28 : dtection dun nouvel intervalle de Hxii
t
e
l
-
0
0
5
6
0
9
6
3
,
v
e
r
s
i
o
n
1
-
3
1
J
a
n
2
0
1
1
5.4. Expriences 77
par rapport lensemble de variables x
1
, x
2
, x
3
et il est impossible pour la variable x
4
de se voir aecter
une des valeurs contenue dans I
H
: il ny a en eet pas dautre choix que celui daecter ces valeurs
x
1
, x
2
et x
3
peu importe quelle variable prend quelle valeur et ces valeurs peuvent alors tre retires
du domaine initial de x
4
qui est ainsi rduit 4, 5.
Lalgorithme complet pour le ltrage des bornes infrieures est donn ici bien quil soit un peu
dicile comprendre de prime abord. Il sagit de lAlgorithme 5.4 et il se drive symtriquement en
un algorithme de ltrage des bornes suprieures que par contre nous ne donnerons pas ici. Ces deux
algorithmes font usage dun certain nombre de structures de donnes ddies, tries, qui ont dj t
optimises plusieurs fois depuis la premire parution de lalgorithme dans [Pug98]. De plus, nous nex-
pliquerons pas son fonctionnement en dtails ici car cela prendrait une place importante et l nest pas
le but de cette section. Cela nous parat par contre important de montrer cet algorithme ici, de faon
ce que chacun puisse le comparer avec les prcdents algorithmes prsents dans cette section et puisse
raliser quil a un degr beaucoup plus lev de complexit dans son principe, en particulier quand on
le compare lAlgorithme 5.3. En consquence, des lecteurs intresss qui auraient besoin de plus dex-
plications ne devront pas hsiter se rfrer labondante littrature couvrant ce sujet, commencer
par [Pug98], [LOQTvB03] et [vH01].
5.4 Expriences
Notre but est dtudier limpact sur la rsolution du choix dune modlisation et dune mthode
de ltrage pour le alldifferent. Comme on la dj mentionn plusieurs reprises, peu ou pas de
travaux ont dj t raliss dans ce domaine de la programmation par contraintes pour les problmes
mixtes, faisant intervenir la fois des contraintes globales, discrtes, et des contraintes non linaires,
continues.
5.4.1 Description des problmes
Nous avons eectu des expriences en utilisant trois sortes de problmes :
des problmes acadmiques : des puzzles bien connus, purement discrets ;
des problmes articiels : des problmes que nous avons cr des ns de test, allant du mixte
jusquau purement discret ;
des MINLP issus du monde rel : des problmes mixtes que nous avons trouv dans la littrature
1
et qui peuvent utilement tre modliss avec la contrainte alldifferent .
La Table 5.1 rsume les caractristiques principales des instances que nous avons rsolues de chacun
de ces types de problmes.
5.4.1.1 Problmes acadmiques
Nous avons ralis une partie de nos expriences sur des problmes acadmiques bien connus, pu-
rement discrets, faisant usage de la contrainte alldifferent. Bien quil ne sagisse pas proprement
parler de problmes mixtes puisque toutes les variables y sont entires, il est dj intressant dobser-
ver le comportement des mthodes que nous comparons dans ce cas particulier de problmes discrets,
1
Il sagit bien entendu des problmes que nous avons prsents au dbut de ce chapitre.
t
e
l
-
0
0
5
6
0
9
6
3
,
v
e
r
s
i
o
n
1
-
3
1
J
a
n
2
0
1
1
78 Urrirsxrrox or ix coxraxrxrr AiiDrrrrarxr oxxs tx soivrta coxrrxt
name #var #sol
sevvoth 9/0 1
fractions 12/0 68
magic-square 16/0 7040
queens-10 30/0 724
queens-11 33/0 2680
queens-12 36/0 14200
int-frac-12 12/0 24
int-frac-14 14/0 49
int-frac-16 16/0 1068
mixed-sin-5 5/5 121
mixed-sin-6 6/6 746
mixed-sin-7 7/7 5041
hard-mixed-sin-4 4/4 24
hard-mixed-sin-5 5/5 832
hard-mixed-sin-6 6/6 18228
nuclear-A 90/57 1
nuclear-B 156/50 1
sched-9 90/19 1
sched-10 110/21 1
sched-11 132/23 1
ELSP-8 64/74 1
ELSP-9 81/92 1
ELSP-10 100/112 1
Table 5.1 Pour chaque problme, #var donne le nombre variables discrtes/continues dans le modle
utilisant la contrainte alldifferent , et #sol reprsente le nombre de solutions au problme.
puisquen eet ils font intervenir la fois des contraintes globales et des contraintes arithmtiques n-
cessitant une valuation aux intervalles. Cette sous-section prsente brivement les problmes que nous
avons utiliss cet eet.
Sevvoth
Le problme Sevvoth [Kei] est un problme du type SEND+MORE=MONEY, dans lequel les mots
additionner sont ceux du pome ci-aprs, le terme rsultant tant le mot SEVVOTH
2
lui-mme. Comme
dans tous les problmes de ce genre, un chire est associ chaque lettre et tous doivent tre distincts les
uns des autres ce quon modlise bien sr au moyen dune contrainte alldifferent. On ajoute alors
la contrainte arithmtique qui reprsente la somme globale, chaque mot MOT gnrant un terme comme
M 100 + O 10 + T. Le pome utilis est le suivant :
2
Il sagit du nom dune le mythique quelque part en Mer du Nord.
t
e
l
-
0
0
5
6
0
9
6
3
,
v
e
r
s
i
o
n
1
-
3
1
J
a
n
2
0
1
1
5.4. Expriences 79
Ten herons rest near North Sea shore
As tan terns soar to enter there.
As herons nest on stones at shore,
Three stars are seen; tern snores are near !
Fractions
Le problme fractions est une extension du problme classique de Yosnroxnxax qui vise rsoudre
lquation suivante :
A
BC
+
D
EF
+
G
HI
= 1
o chaque lettre est associe un digit distinct et dirent de zro. Pour compliquer le problme, nous
avons comme au chapitre prcdent ajout trois variables J, K, L et un quatrime terme
J
KL
lquation.
Pour garder le problme consistant, nous avons galement d tendre les domaines initiaux de faon ce
que chaque digit sexprime en base 13. Nous avons galement impos les contraintes suivantes, de faon
casser les symtries et limiter le nombre de solutions :
A
BC
D
EF
G
HI
J
KL
,
4
A
BC
1,
4
J
KL
1.
Carr magique
Le problme du carr magique est un puzzle mathmatique bien connu o lon doit remplir une
grille de dimensions n n avec les n
2
premiers nombres entiers de faon ce que la somme des cases de
chaque ligne, colonne ou diagonale soit gale n
2
. Brivement, les variables du problmes sont bien sr
les n
2
cases de la grille, de domaine initial 1, . . . , n
2
, soumises une contrainte alldifferent pour
quelles prennent toutes des valeurs deux deux distinctes ; les contraintes restantes sont des contraintes
arithmtiques matrialisant mathmatiquement le fait que la somme des cases de chaque ligne, colonne
ou dialogue doit tre gale n
2
.
N reines
Pour nir, le problme des N reines est le casse-tte bien connu qui vise comme sont nom lindique
placer n reines sur un chiquier de dimensions n n de faon satisfaire la contrainte que deux reines
ne peuvent pas tre prises lune par lautre, i.e. toute paire de reines ne peut pas tre sur une seule ligne,
une seule colonne ou une seule diagonale. Une modlisation possible consiste aecter chaque reine
une variable R
i
reprsentant sa ligne, la reine R
i
se trouvant dans la i
me
colonne. On ajoute alors trois
contraintes alldifferent :
une sur R
i
, i : deux reines ne peuvent pas tre sur la mme ligne ;
une sur R
i
+ i, i : deux reines ne peuvent pas tre sur la mme diagonale NO-SE ;
une sur R
i
i, i : deux reines ne peuvent pas tre sur la mme diagonale NE-SO.
5.4.1.2 Problmes articiels
Nous avons galement conu trois autres problmes, dimensionnables et avec des caractristiques
distinctes. Avec ces problmes dont nous pouvons faire varier la taille, nous cherchons notamment jeter
un regard plus prcis sur limpact de la taille sur le comportement des mthodes compares.
t
e
l
-
0
0
5
6
0
9
6
3
,
v
e
r
s
i
o
n
1
-
3
1
J
a
n
2
0
1
1
80 Urrirsxrrox or ix coxraxrxrr AiiDrrrrarxr oxxs tx soivrta coxrrxt
Le premier de ces problmes, int-frac, est un problme purement discret dot dune structure inspire
du problme fractions :
alldierent(x
1
, . . . , x
n
),
x
1
x
2
+ . . . +
x
n1
x
n
=
1
2
+ . . . +
n 1
n
,
x
i
+ 1 x
i+2
, 1 i n, i odd,
x
i
1, . . . , n, 1 i n.
Le deuxime problme, mixed-sin, est un problme mixte qui fait appel la fois des contraintes
linaires et non linaires :
alldierent(p
1
, . . . , p
n
),
x
i
p
i
+
ji
x
j
= i, 1 i n,
sin(x
i
) = 0, 1 i n,
p
i
1, . . . , n, 1 i n,
x
i
[100, 100], 1 i n.
Quant au troisime problme, hard-mixed-sin, il sagit dun problme mixte inspir du prcdent
mais dans lequel on a durci les contraintes non linaires :
alldierent(p
1
, . . . , p
n
),
sin(x
i
p
i
) +
ji
x
j
= i, 1 i n,
sin(x
i
) = 0, 1 i n,
p
i
1, . . . , n, 1 i n,
x
i
[10, 10], 1 i n.
5.4.1.3 MINLP issus du monde rel
Enn, nous avons rsolu plusieurs instances des problmes issus du monde rel et que nous avons
dj dcrits dans la Section 5.2.1 :
trois du problme dordonnancement robuste, scheduling, avec respectivement 9, 10 et 11 tches ;
trois du problme dordonnancement de lot conomique, ELSP, avec respectivement 8, 9 et 10
produits ;
deux du problme de rechargement de racteur nuclaire, nuclear, la premire avec une matrice
de trajectoire de taille 3 3 o chaque cycle est divis en 3 tapes, la seconde avec une matrice de
trajectoire de taille 4 3 o chaque cycle est seulement divis en 2 tapes.
5.4.2 Rsultats
Les rsultats exprimentaux sont prsents dans les Tables 5.2, 5.3 et 5.4. Toutes les expriences
ont t conduites sur un Intel Xeon 3 GHz avec 16 Go de RAM, en utilisant le solveur RealPaver
1.0 [GB06] tendu pour loccasion de faon pouvoir traiter des contraintes alldifferent de chacune
des faons que nous avons dcrites en dtails la Section 5.3. Les six premires colonnes correspondent
aux direntes mthodes ou combinaisons de mthodes que nous avons voulu comparer : MILP pour la
t
e
l
-
0
0
5
6
0
9
6
3
,
v
e
r
s
i
o
n
1
-
3
1
J
a
n
2
0
1
1
5.4. Expriences 81
formulation MILP de la contrainte ; pour la formulation en utilisant seulement les contraintes de dis-
galits ; pour ces deux formulations, une colonne tiquete + (resp. +SUM) indique lusage supplmen-
taire dune relaxation convexe denveloppe utilisant les ingalits ad hoc (resp. utilisant lgalit-somme
seule). Les deux dernires colonnes CARD et ALLDIF correspondent naturellement la formulation de la
contrainte utilisant loprateur de cardinalit et la formulation utilisant lalgorithme ddi de ltrage par
consistance de borne. Les temps de rsolution en secondes sont donns sur la premire ligne, le nombre
de branchements sur la seconde et exprim en milliers. Un point dinterrogation indique une mthode qui
na pas pu rsoudre le problme donn en un temps raisonnable, cest--dire infrieur 10000 secondes.
Un nombre de branchements valant signie quil est impossible de brancher sur ce type de variables
pour le problme considr.
Pour commencer, comparant les relaxations SUM et on peut sapercevoir que la premire est plus
ecace que la seconde dans presque tous les cas et quel que soit le type de problme. chaque fois, on
constate que le nombre de branchements est peu prs le mme, montrant que la contrainte de somme
sur toutes les variables ralise quasiment la totalit du travail de ltrage. Ce constat est dailleurs assez
bien ret par le graphique prsent en Figure 5.1, qui montre bien limpact qua cette contrainte sur le
temps de rsolution quelles que soient les contraintes quon lui rajoute dans la relaxation. Ainsi, leort
additionnel fourni par les ingalits ad hoc ne gnre pas susamment de rejets de valeurs pour valoir
la peine dtre ralis dans le cas gnral, et peut mme aller jusqu faire accrotre signicativement les
temps de rsolution jusqu 200% par rapport au temps standard MILP ou . Un contre-exemple existe
cependant, quand on rsout les instances du problme purement discret int-frac en utilisant la formulation
MILP : dans ce cas, utiliser les ingalits ad hoc aide rduire le temps de rsolution dun dixime et le
nombre de branchement dun tiers. Une explication pour ce phnomne peut tre quil existe des valeurs
du domaine qui sont retires du domaine par les contraintes mais pas par les contraintes MILP, et que
MILP MILP
Pb MILP CARD ALLDIF
+ +SUM + +SUM
sevvoth
16.6 10.7 9.7 14.3 10.0 8.5 5.4 5.1
4.7
2.1
2.1
5.5
3.0
3.0
2.1
1.7
fractions
1308.9 1074.3 917.8 366.0 193.0 125.8 20.3 15.7
590.0
291.1
292.6
538.1
163.0
163.7
87.4
68.6
m-square
? ? ? 2134.4 5989.7 2227.4 71.9 49.4
1859.8
1856.0
1859.8
155.5
98.0
queens-10
? 1536.2 ? 94.3 116.1 59.1 10.1 5.8
163.0
49.8
27.7
27.9
18.2
8.0
queens-11
? ? ? 675.9 735.7 362.5 52.9 24.9
310.1
142.2
143.1
91.4
36.9
queens-12
? ? ? 5200.1 4805.6 2289.1 260.3 133.5
2039.2
782.6
785.3
377.9
187.7
Table 5.2 Temps de rsolution en secondes (premire ligne) et nombre de branchements sur variable
entire/relle en milliers (seconde ligne).
t
e
l
-
0
0
5
6
0
9
6
3
,
v
e
r
s
i
o
n
1
-
3
1
J
a
n
2
0
1
1
82 Urrirsxrrox or ix coxraxrxrr AiiDrrrrarxr oxxs tx soivrta coxrrxt
0
10
20
30
40
50
60
70
80
0 100 200 300 400 500
Figure 5.1 Temps de rsolution en fonction du nombre de contraintes dune relaxation dont les
contraintes ont t tires alatoirement, pour le problme Sevvoth. Le groupe des points correspondant
aux meilleurs temps de rsolution quelque soit la taille correspond uniquement des relaxations utilisant
la contrainte de somme sur toutes les variables.
ces valeurs peuvent aussi tre retires par les ingalits mais pas par la contrainte dgalit sur toutes
les variables. En eet, pour le problme considr on nobserve pas ce phnomne quand on utilise
la formulation pour laquelle les valeurs ltres par les ingalits semblent tre dj ltres par les
disgalits, rendant les inquations inutiles.
Concernant prsent les modlisations spcialises CARD et ALLDIF, dans le cas particulier des pro-
blmes purement discrets on saperoit sans surprise quil y a une amlioration des temps de rsolution
dun facteur allant jusqu 10 (resp. 100) provenant de lutilisation de ces formulations et des algorithmes
de ltrage ddis en comparaison avec la formulation (resp. MILP) cf Table 5.2. De plus, dans ce
cas on saperoit quil y a seulement un facteur infrieur 2 entre CARD et ALLDIF en termes de temps
de rsolution, tandis que dans le cas plus gnral des problmes mixtes cf Tables 5.3 et 5.4 et plus
particulirement en ce qui concerne les problmes issus du monde rel, il ny a aucune dirence signi-
cative entre CARD et ALLDIF. Une premire raison cela peut tre trouve dans le fait quune grosse
partie du travail de ltrage a t ralise par le processus dexploration, au moyen des branchements,
et non par les algorithmes de ltrage eux-mmes, signiant nalement que plus le ltrage est simple et
plus la rsolution est rapide : on saperoit en eet quil y a une dirence peine signicative vis--vis
de la formulation pour les problmes issus du monde rel. Mais il apparat galement dans ce dernier
cas que 90 % du travail de rsolution est pass traiter la partie continue/mixte des modles. En eet,
le rapport entre les nombres de branchements sur variables entires et sur variables relles nous prouve
quun dixime seulement du temps de rsolution est consacr linstanciation des variables entires,
dautant plus que la stratgie de branchement que nous avons utilise consiste toujours choisir dabord
les variables entires. Ceci explique galement pourquoi on nobserve pas ici une dirence plus impor-
tant avec la formulation MILP, nettement moins performante pourtant sur les problmes discrets ou les
problmes mixtes articiels, les seconds ayant une partie continue dun volume bien infrieur celle des
problmes issus du monde rel.
Ainsi, nos expriences montrent que la formulation CARD est une bonne approche pour tendre un
solveur fonctionnant sur les intervalles de faon grer plus ecacement les problmes mixtes faisant
usage de la contrainte alldifferent :
le concept de cardinalit densemble est une notion mathmatique trs utilise, e.g. il y a dj un
mot-cl card dans le langage de modlisation AMPL ;
t
e
l
-
0
0
5
6
0
9
6
3
,
v
e
r
s
i
o
n
1
-
3
1
J
a
n
2
0
1
1
5.4. Expriences 83
lalgorithme de ltrage que nous avons implment est vraiment trs simple mettre en oeuvre ;
cet algorithme peut drastiquement rduire les temps de rsolution face une modlisation classique
MILP ou mme , mme dans le cas particulier de problmes purement discrets ;
il est trs comptitif par rapport lalgorithme state-of-the-art de ltrage de la contrainte alldif-
ferent, spcialement quand il sagit de problmes mixtes issus du monde rels et dots dune
partie continue/mixte trs importante.
Dautre part, nos expriences montrent clairement une nouvelle utilisation possible pour la relaxation
convexe denveloppe, qui non seulement se comporte aussi bien que lutilisation standard dans le cas g-
nral des problmes mixtes non linaires, mais qui en plus est trs signicativement meilleure en termes
de performances dans certains cas. Trouver quelles ingalits sont les plus propos parmi toutes celles
que contient lensemble de contraintes de la relaxation, de taille exponentielle en nombre de variables,
ne semble pas valoir leort au vu du gain de performance. Utiliser la contrainte de somme sur toutes les
variables est susant pour atteindre bien plus rapidement une puissance de ltrage au moins quivalente
dans presque la totalit des cas.
MILP MILP
Pb MILP CARD ALLDIF
+ +SUM + +SUM
int-frac-12
817.8 222.2 252.6 33.2 16.8 9.4 1.7 1.0
394.6
80.9
115.0
51.3
14.7
14.7
8.7
6.0
int-frac-14
? 6989.5 7878.3 996.0 416.0 225.3 29.9 19.1
1824.4
2771.4
1160.2
263.3
263.5
149.1
102.0
int-frac-16
? ? ? ? ? 6189.1 725.7 441.8
5607.6
3024.5
2082.7
mixed-sin-5
158.7 167.8 162.0 9.3 8.9 8.1 6.1 5.8
0.1
271.2
0.1
271.2
0.1
271.2
7.9
11.3
6.9
9.3
6.9
9.3
6.3
8.4
5.3
8.4
mixed-sin-6
6209.6 6612.4 6320.8 197.0 148.1 138.9 99.5 96.0
0.7
8143.2
0.7
8143.5
0.7
8143.5
123.0
184.4
83.7
118.7
83.7
118.7
72.6
105.0
59.1
105.1
mixed-sin-7
? ? ? ? 8866.2 8085.6 5530.5 5290.3
3617.3
6638.9
3621.0
6639.3
3108.1
5806.6
2558.0
5792.3
hard- 4.5 4.5 4.3 0.9 0.8 0.9 0.8 0.8
mixed-sin-4
0.0
+
9.7
0.0
+
9.7
0.0
+
9.7
0.3
1.6
0.2
1.4
0.2
1.4
0.2
1.4
0.1
1.4
hard- 542.3 649.3 554.2 90.2 91.8 79.6 69.3 67.9
mixed-sin-5
0.1
956.5
0.1
956.5
0.1
956.5
25.1
126.3
12.1
108.8
12.1
108.8
10.3
106.8
8.3
106.7
Table 5.3 Temps de rsolution en secondes (premire ligne) et nombre de branchements sur variable
entire/relle en milliers (seconde ligne).
t
e
l
-
0
0
5
6
0
9
6
3
,
v
e
r
s
i
o
n
1
-
3
1
J
a
n
2
0
1
1
84 Urrirsxrrox or ix coxraxrxrr AiiDrrrrarxr oxxs tx soivrta coxrrxt
MILP MILP
Pb MILP CARD ALLDIF
+ +SUM + +SUM
nuclear-A
74.3 74.0 74.3 75.6 75.3 73.5 73.2 73.2
0.0
+
6.4
0.0
+
6.4
0.0
+
6.4
0.0
+
6.4
0.0
+
6.4
0.0
+
6.4
0.0
+
6.4
0.0
+
6.4
nuclear-B
624.6 628.3 633.1 626.7 631.8 631.4 626.6 624.9
0.1
12.6
0.1
12.6
0.1
12.6
0.1
12.6
0.1
12.6
0.1
12.6
0.1
12.6
0.1
12.6
schedu-9
850.9 1230.6 586.8 9.9 9.8 10.1 9.3 9.2
9.1
160.5
0.0
+
261.7
8.9
108.8
0.0
+
2.0
0.0
+
2.0
0.0
+
2.0
0.0
+
2.0
0.0
+
2.0
schedu-10
1444.9 2545.5 1136.6 43.1 42.9 42.9 40.3 40.1
63.6
165.4
0.0
+
377.7
63.0
120.7
0.0
+
6.6
0.0
+
6.6
0.0
+
6.6
0.0
+
6.6
0.0
+
6.6
schedu-11
? ? ? 231.7 227.2 229.6 215.9 213.9
0.0
+
25.5
0.0
+
25.5
0.0
+
25.5
0.0
+
25.5
0.0
+
25.5
ELSP-8
210.9 212.1 210.1 9.3 9.6 9.5 9.0 9.0
0.0
+
45.5
0.0
+
45.5
0.0
+
45.5
0.0
+
2.0
0.0
+
2.0
0.0
+
2.0
0.0
+
2.0
0.0
+
2.0
ELSP-9
164.8 163.8 160.7 75.0 75.4 75.7 70.7 71.4
0.0
+
25.5
0.0
+
25.5
0.0
+
25.5
0.1
11.3
0.1
11.3
0.1
11.3
0.1
11.3
0.1
11.3
ELSP-10
1057.6 1066.9 1048.3 1240.6 1223.4 1242.6 1171.6 1167.4
0.1
126.0
0.1
126.0
0.1
126.0
0.1
143.4
0.1
143.4
0.1
143.4
0.1
143.4
0.1
143.4
Table 5.4 Temps de rsolution en secondes (premire ligne) et nombre de branchements sur variable
entire/relle en milliers (seconde ligne).
5.5 Conclusion
Dans ce chapitre, nous avons prsent une tude exprimentale propos de la rsolution dans un sol-
veur continu de problmes mixtes utilisant la contrainte discrte alldifferent . Nous avons dabord
montr comment faire usage de cette contrainte pour modliser une certaine catgorie de problme
MINLP issus du monde rel et quon peut trouver dans la littrature. Nous avons aussi pass en re-
vue les principales faons dont on peut traiter une contrainte alldifferent dans un solveur continu,
bas sur la notion dintervalle, en reformulant la contrainte ou bien en implmentant des algorithmes de
ltrage ddis. Finalement, nous avons ralis des expriences sur dirents types de problmes de faon
tudier limpact du choix de la mthode de traitement sur la rsolution proprement dite. travers ces
travaux, nos principales contributions tiennent en deux points :
Nous avons montr quun algorithme de ltrage ddi mais trs simple implmenter, comme
celui que nous avons ralis pour la contrainte CARD, tait trs comptitif par rapport au trs opti-
mis algorithme state-of-the-art de ltrage en ce qui concerne la rsolution de problmes mixtes
trs contraints issus du monde rel, tout en restant relativement comptitif dans le cas particulier
de problmes purement discret, ce qui nest pas du tout le cas des formulations et surtout MILP,
cette dernire tant pourtant la formulation dusage ;
t
e
l
-
0
0
5
6
0
9
6
3
,
v
e
r
s
i
o
n
1
-
3
1
J
a
n
2
0
1
1
5.5. Conclusion 85
Nous avons dcouvert que la relaxation convexe denveloppe telle quen usage actuellement pou-
vait tre dpasse en termes de performances dans notre solveur intervalles par un ensemble de
contraintes beaucoup plus facile construire et utiliser, et qui pouvait permettre une rsolution
jusqu deux fois plus rapide pour rsoudre certaines instances des problmes mixtes issus du
monde rel.
De futurs travaux pourraient permettre de sinterroger quant la gnralisation de nos rsultats
dautres problmes mixtes utilisant la contrainte alldifferent. En outre, il pourrait tre intressant
dtudier plus prcisment limpact de la constriction du problme sur le comportement de chaque traite-
ment : soit en trouvant des problmes mixtes issus du monde rel et ayant un rapport plus quilibr entre
le nombre de contraintes discrtes et le nombre de contraintes relles, soit mme en crant un gnrateur
dinstances dans lequel on pourrait faire voluer ce rapport. Enn, rappelons qu lheure actuelle aucun
solveur de la platforme AMPL nest en mesure de traiter le mot-cl card qui pourtant est une primitive de
ce langage. Au vu de nos rsultats, il semble en eet prometteur dy implmenter une mthode de ltrage
associe qui pourrait permettre de modliser simplement et ecacement une contrainte alldifferent.
t
e
l
-
0
0
5
6
0
9
6
3
,
v
e
r
s
i
o
n
1
-
3
1
J
a
n
2
0
1
1
t
e
l
-
0
0
5
6
0
9
6
3
,
v
e
r
s
i
o
n
1
-
3
1
J
a
n
2
0
1
1
VI
SPCIALISATION AUX DOMAINES
DENTIERS DU FILTRAGE BAS SUR
LARITHMTIQUE DES INTERVALLES
La perfection accomplie semble incomplte,
Mais elle sert sans suser ;
La grande plnitude parat vide,
Mais elle donne sans spuiser.
Lxo-Tsrt, De la Voie et de sa vertu, XXXXV.
6.1 Travaux en rapport . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
6.2 Oprations arithmtiques sur intervalles dentiers . . . . . . . . . . . . . . . . . . . . 89
6.2.1 Nouvelles dnitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
6.2.2 Application . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
6.3 Gestion des contraintes dintgralit . . . . . . . . . . . . . . . . . . . . . . . . . . . 92
6.3.1 Troncature aux bornes entires . . . . . . . . . . . . . . . . . . . . . . . . . . 92
6.3.2 Amlioration du mcanisme . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
6.4 Implmentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
6.4.1 Nouvelles oprations arithmtiques . . . . . . . . . . . . . . . . . . . . . . . 95
6.4.2 Gestion au plus tt des contraintes dintgralit . . . . . . . . . . . . . . . . . 96
6.5 Expriences . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98
6.6 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
Ce chapitre est ddi la spcialisation aux contraintes mixtes des techniques de ltrage de domaines
bases sur larithmtique des intervalles. Aprs la prsentation des travaux de Arr et Zorrrwrrs propos
de lutilisation dune arithmtique des intervalles dentiers pour la rsolution de problmes purement
discrets, nous montrons comment le cadre classique de rsolution ddi aux problmes rels peut tre
modi pour mieux prendre en compte la notion dintgralit des variables discrtes. Nous donnons en-
suite quelques prcisions propos de limplmentation de ces modications dans un solveur intervalles,
puis nous ralisons des expriences pour en tudier le comportement en pratique.
87
t
e
l
-
0
0
5
6
0
9
6
3
,
v
e
r
s
i
o
n
1
-
3
1
J
a
n
2
0
1
1
88 Sr rcrxirsxrrox xtx oomxrxrs orxrrras ot rriraxor axs r sta ixarrnm rrrotr ors rxrravxiirs
6.1 Travaux en rapport
Nous commenons ce chapitre par prsenter les travaux de Arr et Zorrrwrrs, parus dabord dans
[AZ03], puis dans [AZ07]. Ces travaux ont pour objet la propagation de contraintes arithmtiques dis-
crtes, i.e. des contraintes arithmtiques ne faisant intervenir que des variables entires. Dans ce but,
ils introduisent une arithmtique des intervalles dentiers, ddies au ltrage de contraintes arithm-
tiques discrtes uniquement. En particulier, ils proposent une dnition forte de la division illustre par
lexemple 6.4 et la gure 6.1. Mais un algorithme mettant en oeuvre cette division savrera trop coteux
pour tre implment et test en pratique par eux.
Exemple 6.4. [AZ07] Soient x et y deux variables entires de domaines respectifs d
x
= [155, 161] et
d
y
= [9, 11].
la division dite faible de x par y est gale [|min(A)|, |max(A)|] = [15, 17] avec A = 155/9, 155/11,
161/9, 161/11 ;
en revanche, la division dite forte de x par y est gale [16, 16] : il nexiste aucune autre valeur z
entire pour laquelle on peut trouver une valeur de x et de y satisfaisant la contrainte z = x/y.
Aprs avoir introduit plusieurs schmas de dcomposition des contraintes en contraintes plus petites,
ils ralisent des expriences pour comparer ces direntes approches de propagation de contraintes arith-
mtiques discrtes quils proposent. Pour Arr et Zorrrwrrs, les conclusions principales de ces travaux
sont ainsi les suivantes :
limplmentation de llvation la puissance au moyen de multiplications donne de plus faibles
rductions de domaines, si bien quil est avantageux que la contrainte x = y
n
soit considre
comme atomique ;
lintroduction de variables auxiliaires est bnque car dune part cela renforce la propagation,
dautre part cela vite de rvaluer des sous-expressions dont les domaines des variables nont pas
chang ;
les rsultats exprimentaux obtenus montrent que les approches de dcomposition partielle et to-
tale sont plus ecaces que lapproche directe en terme de nombre doprations arithmtiques
eectues, condition de squencer correctement lordre de traitement des contraintes partielles.
Les travaux prsents dans ce chapitre prolongent ceux de Arr et Zorrrwrrs dans la direction dune
meilleure connaissance des avantages en pratique de larithmtique des intervalles dentiers par rapport
larithmtique des intervalles de rels. En particulier, les auteurs nont pas t intresss par une compa-
Figure 6.1 Comparaison entre division faible (rouge) et forte (vert)
t
e
l
-
0
0
5
6
0
9
6
3
,
v
e
r
s
i
o
n
1
-
3
1
J
a
n
2
0
1
1
6.2. Oprations arithmtiques sur intervalles dentiers 89
raison du comportement ni en thorie ni en pratique des mthodes de rsolution bases sur larithmtique
des intervalles rels et celles bases sur larithmtique des intervalles dentiers. Dautre part, nous largis-
sons le spectre des oprations tendues aux intervalles dentiers et enn, notre approche nest pas limite
aux problmes purement discrets : nous nous intressons aux problmes mixtes.
6.2 Oprations arithmtiques sur intervalles dentiers
Ainsi, larithmtique des intervalles peut tre amliore en prenant en compte certaines caractris-
tiques des nombres entiers. Il nous est alors possible de donner de nouvelles dnitions certaines op-
rations arithmtiques qui vont alors permettre deectuer des calculs plus prcis et donc dobtenir des
intervalles moins large. Ceci aura pour consquence dacclrer drastiquement le processus de rsolution
grce une diminution du nombre ncessaire de calculs sur les intervalles.
6.2.1 Nouvelles dnitions
Nous commenons par rednir les oprations de logarithme et dinverse sur les intervalles en pre-
nant en compte certaines intressantes proprits sur les entiers de ces fonctions.
6.2.1.1 Logarithme
Soit x une variable entire. Supposons que d
x
= [a, b] contient strictement 0, i.e. a < 0 < b. Comme
le montre la Figure 6.2, il nexiste aucun nombre rel infrieur 0 qui puisse tre obtenu par log(x)
quand x est un entier. En eet, les seuls nombres dont le logarithme est un nombre rel infrieur 0 sont
des nombres rels compris entre 0 et 1. Ainsi, eectuer lopration de logarithme sur des entiers nore
aucune possibilit dobtenir un nombre infrieur 0. Ce qui nous donne lencadrement suivant :
log(x) [0, log(b)] (6.1)
Comparons cette nouvelle dnition pour lopration de logarithme sur les entiers avec la dnition
originale de cette opration telle quutilise sur les rels. Quand la contrainte dintgralit du domaine
x
y
log(x)
y [0, log(b)]
Figure 6.2 y = log(x), x {a, . . . , b} avec a < 0 < b
t
e
l
-
0
0
5
6
0
9
6
3
,
v
e
r
s
i
o
n
1
-
3
1
J
a
n
2
0
1
1
90 Sr rcrxirsxrrox xtx oomxrxrs orxrrras ot rriraxor axs r sta ixarrnm rrrotr ors rxrravxiirs
est relche et que le calcul est eectu sur un intervalle de rels, cest la dnition suivante qui nous
donne le rsultat de lencadrement :
log(x) [, log(b)] (6.2)
Ainsi, puisque la fonction log(x), qui tend vers en 0, ne peut atteindre aucune valeur infrieure
0 quand x est un entier, on peut rednir lopration correspondante sur les intervalles quand on traite
une variable dont le domaine est celui des entiers. Utiliser la dnition (6.1) nous permettra dans ce cas
deectuer des valuations plus prcises des expressions arithmtiques, et cela sans perdre de solution
potentielle, puisque la contrainte y = log(x) avec x N nadmet aucune solution quand d
y
[0, +] = .
6.2.1.2 Inverse
prsent, soit x une variable entire et supposons nouveau que d
x
= [a, b] contienne strictement 0,
i.e. a < 0 < b. Dune faon similaire ce que nous avons observ pour le logarithme, on saperoit quil
nexiste aucun nombre rel infrieur -1 ou suprieur 1 qui puisse tre obtenu par 1/x quand x est un
entier. En eet, les seuls nombres dont linverse est un nombre rel infrieur -1 ou suprieur 1 sont
des nombres rels compris entre -1 et 1 (voir Figure 6.3). Aussi, eectuer lopration dinverse sur des
entiers na aucune chance de retourner un nombre infrieur -1 ou suprieur 1. En consquence, on a
lencadrement suivant :
1/x [1, 1/a] [1/b, 1] (6.3)
Comme prcdemment pour le logarithme, comparons cette nouvelle dnition de lopration din-
verse sur les entiers avec la dnition originale de cette opration quon utilise sur les rels. Lorsque
quon relche la contrainte dintgralit et quon eectue le calcul sur un intervalle de rels, le rsultat
de lencadrement nous est donn par la dnition suivante :
1/x [, 1/a] [1/b, +] (6.4)
x
y
1
x
y [
1
b
, 1]
y [1,
1
a
]
Figure 6.3 y =
1
x
, x {a, . . . , b} avec a < 0 < b.
t
e
l
-
0
0
5
6
0
9
6
3
,
v
e
r
s
i
o
n
1
-
3
1
J
a
n
2
0
1
1
6.2. Oprations arithmtiques sur intervalles dentiers 91
Il est clair que la dnition (6.3) permet, en resserrant les bornes des valeurs possibles, dobtenir
un encadrement plus prcis que la dnition (6.4). En fait, il ny a aucun nombre rel dans [, 1)
(1, +] qui puisse tre le rsultat de 1/x quand x est un entier car la fonction 1/x, qui tend vers
en 0
et vers + en 0
+
, ne peut atteindre aucune valeur infrieure -1 ou suprieure 1 quand x
est un entier. Aussi, on peut rdnir lopration correspondante sur les intervalles quand une traite
une variable dont le domaine est celui des entiers. Lutilisation de la dnition (6.3) va donc permettre
deectuer le cas chant des valuations plus nes des expressions arithmtiques. Aucune solution
potentielle ne sera perdue puisque la contrainte y = 1/x avec x N nadmet aucune solution quand
d
y
([1, 1/a] [1/b, 1]) = .
6.2.2 Application
Notre but ici nest pas de prsenter une arithmtique des intervalles compltement tendue aux pro-
blmes mixtes. Cependant, il nous faut remarquer que la division est particulirement utile dans le
contexte de la satisfaction de contraintes arithmtiques. En outre, elle est fortement mise contribu-
tion au cours de la rsolution de problmes polynomiaux. Comme nous allons pouvoir le constater dici
la n de cette section, lutilisation dune dnition plus prcise du calcul sur les intervalles va permettre
damliorer le ltrage dune manire trs signicative.
Soit x [10, 10] une variable entire et soit y [10, 10] une variable relle. Considrons le
systme suivant :
x y = 1
x + y = 2
Utilisation de la dnition originale
En utilisant le calcul donn par la dnition originale (6.4) de lopration sur les rels, la premire
quation reste inutile et ne permet pas de rduire les domaines de x et y. En eet, en ce qui nous concerne
ici, x y = 1 implique x = 1/y et y = 1/x. Do le calcul suivant, identique pour d
x
et d
y
:
d
y
:=
d
y
(1/d
x
)
d
y
:=
d
y
:= ([10, 1/10] [1/10, 10])
d
y
:= [10, 10]
En utilisant la dnition originale, il est donc impossible de rduire le domaine de la variable y au
moyen de la premire contrainte. En revanche, la deuxime contrainte permet dobtenir la rduction
suivante, identique pour d
x
et d
y
:
d
x
:=
d
x
(2 d
y
)
d
x
:= ([10, 10] [8, 12])
d
x
:= [8, 10]
Mais cette rduction du domaine de la variable x est trop faible pour avoir une incidence en retour
sur le domaine de y en utilisant la dnition (6.4). Les domaines obtenus en n de propagation restent
donc d
x
= d
y
= [8, 10].
t
e
l
-
0
0
5
6
0
9
6
3
,
v
e
r
s
i
o
n
1
-
3
1
J
a
n
2
0
1
1
92 Sr rcrxirsxrrox xtx oomxrxrs orxrrras ot rriraxor axs r sta ixarrnm rrrotr ors rxrravxiirs
Utilisation de la nouvelle dnition
Considrons prsent la nouvelle dnition. On constate que la premire contrainte permet cette fois
de rduire le domaine de y :
d
y
:=
d
y
(1/d
x
)
d
y
:=
d
y
:= ([1, 1/10] [1/10, 1])
d
y
:= [1, 1]
En consquence, lutilisation de la deuxime contrainte entrane une rduction bien plus importante
cette fois-ci que dans le cas prcdent :
d
x
:=
d
x
(2 d
y
)
d
x
:= ([10, 10] [1, 3])
d
x
:= [1, 3]
Grce lutilisation de la nouvelle dnition, la rduction est maintenant susamment pour pouvoir
tre propage en ayant des rpercussions. Rinjectant la valeur obtenue dans la premire contrainte, il
vient en eet :
d
y
:=
d
y
(1/d
x
)
:= [
1
3
, 1]
Enn, en propageant nouveau dans la deuxime contrainte
1
puis dans la premire, on obtient na-
lement les rductions suivantes :
d
x
:=
d
x
(2 d
y
)
:= 1
d
y
:=
d
y
(1/d
x
)
:= 1
De par lutilisation de la nouvelle dnition, on constate que les domaines obtenus en n de pro-
pagation sont cette fois lunique solution du systme. Ainsi, la prise en compte du caractre entier des
variables pendant lvaluation aux intervalles nous permet dobtenir un ltrage bien plus fort.
6.3 Gestion des contraintes dintgralit
Dans cette section, nous commenons par prsenter la faon communment pratique de prendre en
compte les contraintes dintgralit dans un solveur intervalles. Ensuite, nous introduisons une nouvelle
faon de prendre en compte ces contraintes, plus tt au cours du processus de propagation.
6.3.1 Troncature aux bornes entires
Certains solveurs intervalles sont capables de prendre en compte de faon correcte le fait quune
variable soit entire et sont ainsi capables dappliquer des contraintes dintgralit, i.e. des contraintes
qui stipulent que certaines variables ne peuvent prendre quune valeur entire, au cours de la propagation
des rductions de domaines grce aux contraintes du modle. Lide derrire le ltrage mis en oeuvre
pour respecter lintgralit dune variable est la suivante : tant donne une contrainte C portant sur
1
Le domaine de d
x
calcul par cette rduction est dabord [1,
5
3
] qui est alors tronqu en [1, 1] parce que x est une variable
entire. Ce mcanisme de troncature sera lobjet de la section suivante.
t
e
l
-
0
0
5
6
0
9
6
3
,
v
e
r
s
i
o
n
1
-
3
1
J
a
n
2
0
1
1
6.3. Gestion des contraintes dintgralit 93
au moins une variable entire x, de domaine [a, b] enveloppe ou pav-consistant, il nest pas possible
de trouver une valeur v [a, a] (resp. [b, b]) telle que C(. . . , v, . . .) est satisfaite. Ainsi, une faon
de faire couramment mise en oeuvre est dimplmenter une procdure de ltrage ddie la contrainte
dintgralit, qui a pour but de tronquer un domaine ses bornes entires de la manire suivante :
d
x
:= (int(d
x
))
o int est loprateur qui tronque ses bornes entires un intervalle bornes ottantes, i.e.
int([a, b]) :=
[a, b] si a b + 1
sinon
En outre, cette procdure de ltrage va tre applique rgulirement au cours de la propagation
des rductions de domaines, permettant ainsi de maintenir les domaines des variables entires des
intervalles bornes entires. De cette faon, un solveur intervalles va pouvoir en pratique satisfaire les
contraintes dintgralit des variables qui le ncessitent.
Soit x une variable entire et x = f (y) une contrainte utilise pour le ltrage. Limplmentation
classique de lopration de troncature, destine la satisfaction des contraintes dintgralit que nous
venons de dcrire, peut sexprimer formellement de la faon suivante :
d
x
:= (d
x
F(d
y
))
d
x
:= (int(d
x
))
(6.5)
o le traitement de la contrainte dintgralit est ralis aprs le ltrage du domaine. Mais nous allons voir
prsent quil est en fait possible deectuer la troncature des domaines de variables entires directement
lintrieur des oprateurs de ltrage associes aux contraintes arithmtiques elles-mmes, obtenant de
cette manire une amlioration radicale des oprations de ltrage.
6.3.2 Amlioration du mcanisme
Le traitement classique de la contrainte dintgralit quon vient de prsenter est ainsi ralis de la
faon suivante au cours de la propagation, en deux temps :
1. Les domaines de toutes les variables sont ltrs par les contraintes du modle ;
2. Les domaines des variables entires modis sont tronqus leurs bornes entires.
Mais le post-traitement qui permet de satisfaire la contrainte dintgralit peut aussi tre ralis
directement au moment du ltrage utilisant une contrainte arithmtique, runissant les deux tapes ci-
dessus en une seule, de la manire suivante :
d
x
:= (int(d
x
F(d
y
))) (6.6)
o la troncature aux bornes entires est ralise avant le calcul de lenveloppe de d
x
F(d
y
). Lexemple 6.5
va dailleurs nous donner un aperu de combien il peut tre intressant de prendre ainsi en compte la
contrainte dintgralit le plus tt possible au cours des calculs sur les intervalles.
Exemple 6.5. Soit la contrainte y = x
2
o x est une variable entire avec D
x
= [2, 2] et y une variable
relle avec D
y
= [2, 3]. Le domaine de x est calcul au moyen de lopration inverse du carr, applique
t
e
l
-
0
0
5
6
0
9
6
3
,
v
e
r
s
i
o
n
1
-
3
1
J
a
n
2
0
1
1
94 Sr rcrxirsxrrox xtx oomxrxrs orxrrras ot rriraxor axs r sta ixarrnm rrrotr ors rxrravxiirs
y et son domaine. Il sensuit que x doit appartenir lintervalle [
3,
2] [
2,
3]. Appliquant
la mthode (6.5), on obtient :
d
x
:= (int(([
3,
2] [
3]))
d
x
:= (int([1.732 . . . , 1.732 . . .])
d
x
:= ([1, 1]))
d
x
:= [1, 1]
Cependant, si la place on applique plutt la mthode (6.6), on obtient :
d
x
:= (int([
3,
2] [
2,
3])
d
x
:= ()
d
x
:=
Lexemple prcdent met en vidence le gain potentiel quon peut attendre de cette nouvelle manire
de prendre en compte les contraintes dintgralit des variables. Posons la proposition suivante :
Proposition 6.1. Soient d
1
x
et d
2
x
les domaines obtenus respectivement en utilisant les mthodes de cal-
cul (6.5) et (6.6). Alors on a d
2
x
d
1
x
.
Preuve. Il est immdiat de sapercevoir que
d
x
F(d
y
) (d
x
F(d
y
))
daprs est une proprit lmentaire de lopration denveloppe. Il vient ensuite naturellement que
int(d
x
F(d
y
)) int((d
x
F(d
y
)))
puisquon sait que A B int(A) int(B). Finalement on obtient
(int(d
x
F(d
y
))) (int((d
x
F(d
y
))))
en utilisant de nouveau les proprits de lopration denveloppe.
Ainsi, remplacer limplmentation classique du ltrage utilisant la contrainte dintgralit comme
un post-traitement, par une version optimise du ltrage qui intgre directement cette contrainte, permet
dobtenir des rductions de domaine plus fortes. En consquence, chaque opration de contraction du
domaine dune variable entire doit tre capable de calculer la troncature aux bornes entires de son
nouveau domaine avant de retourner lenveloppe de ce dernier.
6.4 Implmentation
Dans cette section, nous donnons des dtails propos de limplmentation que nous avons pu raliser
des amliorations du ltrage ddies aux contraintes arithmtiques mixtes, dcrites dans les sections
prcdentes.
t
e
l
-
0
0
5
6
0
9
6
3
,
v
e
r
s
i
o
n
1
-
3
1
J
a
n
2
0
1
1
6.4. Implmentation 95
Plate-forme utilise
Nous avons de nouveau utilis le solveur RealPaver [GB06] pour eectuer limplmentation des opti-
misations du ltrage. Ainsi quon a pu sen apercevoir prcdemment, il sagit dun solveur de contraintes
continues, linaires ou non linaires, dot dune API C++ construite autour dun cur en C. Il peut ainsi
tre utilis comme une application indpendante ou bien encapsul dans une autre application. Nous
rappelons brivement quelques unes de ses principales caractristiques :
les modles peuvent tre exprims en utilisant un langage de modlisation ddi (voir Fig. 6.1) ;
les domaines en entre peuvent tre des intervalles ou unions dintervalles ;
les variables dclares peuvent tre relles ou entires ;
les contraintes arithmtiques linaires et non linaires sont autorises ;
les autres contraintes disposition incluent les contraintes en extension, les contraintes condition-
nelles et les contraintes par morceaux.
Comme on la dj partiellement vu au Chapitre 3, la reprsentation des domaines, les structures
arborescentes utilises pour reprsenter les expressions arithmtiques et les valuer, ainsi que le parsing
des modles, sont crits en C ; les oprateurs de rduction de domaines, la propagation de contraintes,
les heuristiques de slection de variable et de dcoupage de domaine sont implments en C++.
Les oprateurs de rduction de domaine implments incluent le ltrage par consistance denveloppe,
de pav et 3B. Il y aussi de multiples heuristiques de choix de variables : priorit aux variables les plus
contraintes, priorit aux domaines entiers les plus ns (resp. rels les plus larges), priorit aux variables
de dcision, tourniquet, etc. Enn, les stratgies de dcoupage de domaine implments incluent la bis-
section et lnumration.
Le plus gros du travail que nous avons ralis ici concerne la partie bibliothque de calcul sur les
intervalles du logiciel. Cest l que nous avons modi les mthodes existantes et rajout de nouvelles
Paoo. 6.1 : Modle RealPaver pour un problme dintersection entre un cercle et une parabole.
problem circle 1
2
num p := 1.0e8, 3
D := 2.75, 4
x0 := 2, 5
y0 := 1, 6
R := 1.25; 7
8
9
var x : real / p [oo,+oo], 10
y : real / p [100,100] ; 11
12
ctr (xx0)^2 + (yy0)^2 = R^2, 13
x^2 + y^2 = D^2; 14
15
solve * ; 16
17
end 18
t
e
l
-
0
0
5
6
0
9
6
3
,
v
e
r
s
i
o
n
1
-
3
1
J
a
n
2
0
1
1
96 Sr rcrxirsxrrox xtx oomxrxrs orxrrras ot rriraxor axs r sta ixarrnm rrrotr ors rxrravxiirs
mthodes pour prendre en compte les nouvelles oprations arithmtiques et la gestion au plus tt des
contraintes dintgralit.
6.4.1 Nouvelles oprations arithmtiques
Concernant limplmentation des nouvelles oprations arithmtiques, le travail eectuer dans Real-
Paver pour les prendre correctement en compte pendant le processus de rsolution peut tre dcompos
en trois parties :
ajouter les nouvelles oprations ddies aux intervalles dentiers dans la bibliothque de calcul sur
les intervalles ;
modier la mthode dvaluation aux intervalles pour les calculs faisant intervenir des oprandes
de domaine entier ;
modier la mthode de propagation descendante, utilise par le ltrage par consistance denve-
loppe, pour les calculs faisant intervenir des oprandes de domaine entier.
Lajout des nouvelles oprations dans la bibliothque est quasi immdiat tant donnes les rgles de
calcul que nous avons donnes en Section 6.2. Nous avons ainsi implment deux nouvelles mthodes
eectuant respectivement lopration de logarithme et la division dun intervalle dentiers. En ce qui
concerne ce dernier, remarquons quil ny a aucun changement faire quand il sagit de traiter des
domaines qui ne contiennent pas 0.
tant donns une expression arithmtique et un pav correspondant aux domaines courants des va-
riables, lvaluation aux intervalles consiste appliquer les rgles de larithmtique des intervalles an
dobtenir un intervalle correspondant lencadrement du rsultat. Concernant limplmentation de nos
modications, nous devons ici dnir les bonnes mthodes appeler e.g. cest l que nous spcions
le fait que pour une variable entire dont on veut eectuer le logarithme, on fait appel la nouvelle
mthode.
Enn, rappelons que la propagation descendante consiste infrer de nouveaux domaines pour les
variables, tant donns leur expression arithmtique et un pav correspondant aux domaines courants des
autres variables. Aussi, nous avons d modier les appels aux mthodes de projection dans le cas des
noeuds ayant pour ls une variable entire et rcursivement les noeuds ayant pour ls un noeud ayant
pour ls une variable entire de faon faire appel aux bonnes oprations. Notons quil faut galement
modier les appels aux mthodes de projection concernant loprateur de multiplication, puisque x y = z
implique x = z/y et y = x/z comme nous lavons mis en vidence la section prcdente.
6.4.2 Gestion au plus tt des contraintes dintgralit
Concernant prsent la nouvelle stratgie de tronquer au plus tt leur bornes entires les domaines
calculs, ds la phase de propagation descendante, il faut implmenter un nouvel oprateur capable de
retourner lenveloppe dun domaine aprs seulement que celui-ci ait t tronqu ses bornes entires.
LAlgorithme 6.1 montre comment cela est possible dans le cas dune union trie dintervalles disjoints :
on parcourt les intervalles en les tronquant un un leurs bornes entires, en commenant par
celui de plus petite borne infrieure ;
on met jour la borne infrieure de lenveloppe entire quand on obtient un intervalle non vide ;
ds quon a trouv une telle borne infrieure, on ritre pour trouver la borne suprieure, en com-
menant par lintervalle de plus grande borne suprieure.
t
e
l
-
0
0
5
6
0
9
6
3
,
v
e
r
s
i
o
n
1
-
3
1
J
a
n
2
0
1
1
6.4. Implmentation 97
Aio. 6.1 : IntHull(union of intervals U = {i
1
, . . . , i
n
})
interval h ; 1
boolean f ound_inf f ound_sup f alse; 2
pour i {i
1
, . . . , i
n
} et tant que non found_inf faire 3
interval j trunc_to_integer_bounds(i) ; 4
si non empty( j) alors 5
si non f ound_inf alors 6
inf(h) inf( j) ; 7
f ound_inf true; 8
n 9
n 10
n 11
si found_inf alors 12
pour i {i
n
, . . . , i
1
} et tant que non found_sup faire 13
interval j trunc_to_integer_bounds(i) ; 14
si non empty( j) alors 15
si non f ound_sup alors 16
sup(h) sup( j) ; 17
f ound_sup true; 18
n 19
n 20
n 21
n 22
retourner h; 23
l. 1 : initialisation de lintervalle rsultat
l. 2 : initialisation des boolens signiant lexistence ou non dune borne infrieure
(resp. suprieure) entire
l. 3 : dbut de la boucle de parcours de chacun des intervalles de lunion
l. 4 : troncation ses bornes entires de lintervalle courant
l. 5-9 : mise--jour de la borne infrieure du rsultat le cas chant
l. 13 : boucle de parcours de chacun des intervalles de lunion
l. 14 : troncation ses bornes entires de lintervalle courant
l. 15-19 : mise--jour de la borne suprieure du rsultat le cas chant
t
e
l
-
0
0
5
6
0
9
6
3
,
v
e
r
s
i
o
n
1
-
3
1
J
a
n
2
0
1
1
98 Sr rcrxirsxrrox xtx oomxrxrs orxrrras ot rriraxor axs r sta ixarrnm rrrotr ors rxrravxiirs
Figure 6.4 Propagation descendante utilisant la mthode normale (gauche), utilisant la mthode de
troncature au plus tt (droite).
De cette faon, on peut eectivement calculer lenveloppe du rsultat de la division, par exemple, aprs
seulement avoir replong dans le domaine des entiers le rsultat obtenu sur les rels. Cest cet algorithme
que nous avons implment dans RealPaver.
Ltape suivante consiste remplacer chaque appel la mthode denveloppe standard, aprs une
opration sur des variables entires capable de gnrer des trous dans les domaines, comme la division
ou llvation une puissance paire, par un appel cette nouvelle mthode. Dans chaque oprateur de
projection vers une variable entire capable de crer un trou dans le domaine et de retourner une union
dintervalles e.g. lvation/racine avec puissance paire ou multiplication/division il faut remplacer
lappel la mthode standard par un appel la nouvelle mthode. Nous avons ainsi dni de nouvelles
fonctions de projection, qui sont appeles la place des anciennes, dans le cas dune projection vers une
variable entire (voir Figure 6.4). De cette faon, on sassure de ne plus surestimer les domaines qui ne
contiennent aucun entier mais dont lenveloppe en contient.
6.5 Expriences
Les expriences prsentes ici ont t ralises sur un Intel Xeon 3 GHz avec 16 Go de RAM. Nous
avons utilis la version 1.0 de RealPaver ayant t modie de la faon que nous avons dcrite dans la
section prcdente. Dans le but de mesurer les apports de nos optimisations du ltrage, nous avons utilis
deux problmes mixtes dimensionnables que par simplicit nous nommerons problme A et problme B.
Problme A
Soit x un vecteur de variables relles, de dimension n, et y un vecteur de variables entires, de dimen-
sion n galement. Supposons que chaque variable ait pour domaine initial [10
8
, 10
8
] et considrons le
systme dquations suivant :
x
i
y
i
= 1, i = 1, . . . , n
n
i=1
x
2
i
= 2n.
t
e
l
-
0
0
5
6
0
9
6
3
,
v
e
r
s
i
o
n
1
-
3
1
J
a
n
2
0
1
1
6.5. Expriences 99
Les rsultats exprimentaux pour ce problme sont prsents dans la Table 6.1 et les Figures 6.5
et 6.6. Nous avons mesur le temps de rsolution, en secondes, et le nombre de branchements, pour une
dimension n du problme variant de 3 20. La premire colonne correspond la dimension de linstance
teste. La deuxime colonne montre les rsultats obtenus avec limplmentation standard. La troisime
colonne prsente quant elle les rsultats obtenus avec la nouvelle implmentation.
0
20
40
60
80
100
120
140
160
180
2 4 6 8 10 12 14 16 18 20
std
new
0
200000
400000
600000
800000
1e+06
1.2e+06
2 4 6 8 10 12 14 16 18 20
std
new
Figure 6.5 Pour le Problme A, temps standard face nouveau temps (gauche), nombre de dcoupages
standard face nouveau nombre de dcoupages (droite).
Pour ce problme, la nouvelle mthode se comporte mieux que la mthode standard quelle que soit la
dimension du problme. De plus, le gain en temps et en nombre de branchements est exponentiel comme
le montre la Figure 6.6. En eet, la mthode standard ne permet de raliser que de faibles rductions
de domaines en utilisant la premire contrainte, si bien que pour prouver linconsistance du problme,
la propagation de contraintes doit tre combine avec une technique de dcoupage de domaine. Ce-
pendant, cela requiert un nombre exponentiel de dcoupages, exactement 2
n1
. Mais avec la mthode
n std new
3 0.004 0
+
(7) (0)
4 0.004 0
+
(15) (0)
5 0.004 0
+
(31) (0)
6 0.004 0
+
(63) (0)
7 0.008 0
+
(127) (0)
8 0.02 0
+
(255) (0)
n std new
9 0.044 0
+
(511) (0)
10 0.088 0
+
(1023) (0)
11 0.188 0
+
(2047) (0)
12 0.408 0
+
(4095) (0)
13 0.88 0
+
(8191) (0)
14 1.89 0
+
(16k) (0)
n std new
15 4.024 0
+
(33k) (0)
16 8.55 0
+
(65k) (0)
17 17.68 0
+
(131k) (0)
18 37.21 0
+
(262k) (0)
19 80.53 0
+
(524k) (0)
20 167.67 0
+
(1049k) (0)
Table 6.1 Temps de rsolution et nombre de dcoupages pour le Problme A.
t
e
l
-
0
0
5
6
0
9
6
3
,
v
e
r
s
i
o
n
1
-
3
1
J
a
n
2
0
1
1
100 Sr rcrxirsxrrox xtx oomxrxrs orxrrras ot rriraxor axs r sta ixarrnm rrrotr ors rxrravxiirs
1
10
100
1000
10000
100000
1e+06
1e+07
2 4 6 8 10 12 14 16 18 20
time
#split
Figure 6.6 Gains en temps et en nombre de dcoupages, en fonction du nombre de variables de lins-
tance rsolue du Problme A (chelle logarithmique).
nouvellement implmente, linconsistance peut tre dcouverte en utilisant seulement lalgorithme de
propagation de contraintes. Lexplication en tient ce que la nouvelle mthode de calcul de la division
permet aux domaines dtre contracts par rapport aux contraintes x
i
y
i
= 1.
Ainsi, au vu de ce premier problme, les techniques que nous prsentons dans ce chapitre, ddie
un ltrage plus ecace des domaines entiers impliqus par des contraintes mixtes, semblent trs promet-
teuses en pratique.
Problme B
Posons prsent le problme B. Soit x un vecteur de variables relles, de dimension n, et y un vecteur
de variables entires, de dimension n galement. Supposons que chaque variable a pour domaine inital
[10
8
, 10
8
] et considrons le systme dquations suivant :
(x
i
1)y
i
= 1, i = 1, . . . , n
log(
n
i=1
y
i
) = 1.
Les rsultats exprimentaux pour ce problme sont prsents dans la Table 6.2 et les Figures 6.7
et 6.8. nouveau, nous avons mesur le temps de rsolution, en secondes, et le nombre de dcoupages,
pour une dimension n du problme variant de 3 20. La premire colonne correspond la dimension de
linstance teste. La deuxime colonne montre les rsultats obtenus avec limplmentation standard. La
troisime colonne prsente quant elle les rsultats obtenus avec la nouvelle implmentation.
Comme dans le problme prcdent, la nouvelle mthode se comporte mieux que la mthode standard
quelle que soit la taille du problme. En outre, le gain est cette fois linaire par rapport la dimension du
problme, en temps comme en nombre de branchements cf Figure 6.8 i.e. la rsolution du problme
de dimension n avec la nouvelle mthode est n fois plus rapide et le nombre de branchements est n fois
infrieur. Ceci sexplique par le fait que de nombreuses branches de larbre de recherche sont coupes
aprs que la propagation de contraintes ait pu russir prouver linconsistance du pav courant grce aux
nouvelles mthodes de ltrage que nous avons implmentes spcialement pour les domaines entiers. En
t
e
l
-
0
0
5
6
0
9
6
3
,
v
e
r
s
i
o
n
1
-
3
1
J
a
n
2
0
1
1
6.5. Expriences 101
consquence, ces branches inconsistantes ne sont pas explores inutilement et la rsolution sen trouve
acclre dautant.
Ainsi, au vu des rsultats mesurs sur ce second problme, les techniques que nous prsentons dans
ce chapitre apparaissent de nouveau trs prometteuses. Non seulement elles taient dj intressantes
dun point de vue thorique, montrant comment larithmtique des intervalles peut tre amliore an
de grer les domaines entiers dune meilleure faon, avec plus de prcision, mais il savre galement
quelles sont trs ecaces dun point de vue pratique pour les problmes considrs, quel que soit leur
dimension.
0
200
400
600
800
1000
1200
1400
1600
1800
2000
2 4 6 8 10 12 14 16 18 20
std
new
0
1e+06
2e+06
3e+06
4e+06
5e+06
6e+06
7e+06
8e+06
9e+06
1e+07
2 4 6 8 10 12 14 16 18 20
std
new
Figure 6.7 Pour le Problme B, temps standard face nouveau temps (gauche), nombre de dcoupages
standard face nouveau nombre de dcoupages (droite).
n std new
3 0 0
(7) (3)
4 0.004 0.004
(23) (7)
5 0.004 0.004
(63) (15)
6 0.012 0.004
(159) (31)
7 0.032 0.008
(383) (63)
8 0.084 0.016
(895) (127)
n std new
9 0.19 0.028
(2047) (255)
10 0.47 0.06
(4607) (511)
11 1.12 0.12
(10k) (1023)
12 2.72 0.26
(22k) (2047)
13 6.22 0.56
(49k) (4095)
14 14.40 1.19
(106k) (8191)
n std new
15 33.1 2.58
(229k) (16k)
16 74.02 5.32
(491k) (33k)
17 163.24 11.09
(1049k) (65k)
18 377.1 23.92
(2228k) (131k)
19 827.2 48.71
(4719k) (262k)
20 1877.4 106.63
(9961k) (524k)
Table 6.2 Temps de rsolution et nombre de dcoupages pour le Problme B.
t
e
l
-
0
0
5
6
0
9
6
3
,
v
e
r
s
i
o
n
1
-
3
1
J
a
n
2
0
1
1
102 Sr rcrxirsxrrox xtx oomxrxrs orxrrras ot rriraxor axs r sta ixarrnm rrrotr ors rxrravxiirs
0
2
4
6
8
10
12
14
16
18
20
2 4 6 8 10 12 14 16 18 20
time
#split
Figure 6.8 Gains en temps et en nombre de dcoupages, en fonction du nombre de variables de lins-
tance rsolue du Problme B.
6.6 Conclusion
Dans ce chapitre, nous avons prsent des amliorations pour les techniques de ltrage de domaine
bases sur larithmtique des intervalles. Ces amliorations ddies une meilleure utilisation des con-
traintes mixtes, i.e. des contraintes qui font intervenir la fois des variables discrtes et des variables
continues. Prolongeant les travaux antrieurs de Arr et Zorrrwrrs propos dune arithmtique des inter-
valles dentiers, nous avons introduit de nouvelles rgles de calcul sur les intervalles de certaines opra-
tions arithmtiques. Celles-ci nous permettent de faire des encadrements plus ns du rsultat de lva-
luation aux intervalles dune expression arithmtique, en prenant en compte le caractre ventuellement
entier des variables sur lesquelles portent ces oprations. Nous avons galement mis en lumire une nou-
velle faon de prendre en compte les contraintes dintgralit au cours de la propagation de contraintes,
plus tt dans le processus de propagation. Nous avons ensuite montr comment nous avons pu implmen-
ter ces amliorations dans un solveur intervalles. Enn, nous avons prsent des expriences dans le
but dobserver le comportement de nos amliorations vis--vis de la rsolution de problmes mixtes de
dimension variable. travers ces travaux, nos contributions sont ainsi les suivantes :
Nous donnons de nouvelles dnitions pour des oprations typiques de larithmtique des inter-
valles, dans le cas particulier o leurs oprandes sont des variables entires, et montrons que cela
permet, travers un augmentation de la force du ltrage obtenu, dacclrer de manire trs signi-
cative la rsolution des problmes ;
Nous proposons une nouvelle faon de grer les contraintes dintgralit des variables pendant le
processus de rsolution : prendre en compte ces contraintes le plus tt possible au cours de la pro-
pagation, cest--dire non pas comme un post-traitement au ltrage des domaines mais au moment
mme de celui-ci, permet dacclrer de manire drastique la rsolution des problmes.
De futurs travaux pourraient tre consacrs mieux comprendre limpact de chacune des amlio-
rations du ltrage sur la rsolution des problmes, en ralisant des observations plus prcises comme
compter le nombre doprations arithmtiques eectues, ou activer/dsactiver chacune des optimisa-
t
e
l
-
0
0
5
6
0
9
6
3
,
v
e
r
s
i
o
n
1
-
3
1
J
a
n
2
0
1
1
6.6. Conclusion 103
tions, avant de comparer les rsultats obtenus. En outre, il pourrait tre intressant de raliser une tude
plus exhaustive de larithmtique des intervalles dentiers, dans le but de trouver ventuellement dautres
oprations arithmtiques qui pourraient bncier dune telle spcialisation aux intervalles dentiers, ou
bien le cas chant de prouver que cela nest pas possible. Pour nir, il faudrait tudier exprimentalement
limpact des amliorations que nous prsentons ici dans le cadre dapplications de la programmation par
contraintes issues du monde rel.
t
e
l
-
0
0
5
6
0
9
6
3
,
v
e
r
s
i
o
n
1
-
3
1
J
a
n
2
0
1
1
.
t
e
l
-
0
0
5
6
0
9
6
3
,
v
e
r
s
i
o
n
1
-
3
1
J
a
n
2
0
1
1
VII
CONCLUSION ET PERSPECTIVES
Le prsent chapitre conclut cette thse consacre la modlisation et la rsolution en programmation
par contraintes de problmes de satisfaction de contraintes et doptimisation mixtes. Nous commencerons
cette conclusion par une synthse de nos travaux, chapitre par chapitre. Puis nous reviendrons sur les
perspectives de recherche que nous avons pu mettre en lumire au cours des travaux que nous prsentons
dans cette thse.
7.1 Synthse de nos travaux
Cette section est consacre la rcapitulation des points importants de chacun des travaux que nous
avons prsents dans cette thse :
Modlisation et rsolution dun problme de conception en robotique ;
Collaboration de deux solveurs discret et continu ;
Utilisation de la contrainte alldifferent dans un solveur continu ;
Spcialisation du ltrage bas sur larithmtique des intervalles.
7.1.1 Modlisation et rsolutiondun problme de conception en robotique
Ce chapitre a t loccasion de montrer comment faire usage de la programmation par contraintes
pour rsoudre ecacement et rigoureusement un problme doptimisation sous contraintes tel que le
problme du calcul de lerreur de pose maximum dun systme robotique mcanique due au jeu dans ses
articulations.
Dans un premier temps, nous avons modlis le problme comme un CSP continu dot dune fonction-
objectif. Considrant comme idal le systme modliser, nous avons pour commencer dcrit la position
de lorgane eecteur en fonction des caractristiques du robot. Ensuite, nous avons modlis la notion
de jeu dans les articulations avant de lintgrer ce modle idal que nous avions commenc par formu-
ler. Nous avons nalement obtenu deux problmes doptimisation sous contraintes, lun correspondant
lerreur maximum en rotation, lautre correspondant lerreur maximum en translation.
Dans un deuxime temps, nous avons alors montr comment transformer concrtement le schma
classique branch-and-prune de rsolution tel quemploy par la programmation par contraintes, en un
algorithme de type branch-and-bound ddi la rsolution rigoureuse de problmes doptimisation sous
contraintes. Nous avons mis en lumire une manire de mettre ecacement en oeuvre la gestion rigou-
reuse du calcul dun encadrement optimal de la fonction-objectif au cours du processus de rsolution
classique ralis en programmation par contraintes.
Finalement, nous avons prsent des rsultats exprimentaux, obtenus partir de plusieurs instances
du problme initial. Cela nous a permis de mettre en vidence que notre approche tait trs comptitive
105
t
e
l
-
0
0
5
6
0
9
6
3
,
v
e
r
s
i
o
n
1
-
3
1
J
a
n
2
0
1
1
106 Coxcitsrox rr rrasrrcrrvrs
par rapport des outils la pointe des techniques daujourdhui. Dautre part, nous avons pu constater
par nous-mmes une divergence assez signicative dans les rsultats obtenus par les direntes mthodes
que nous comparions. Nous avons suggr que cette divergence pouvait tre mise sur le compte de la
non-abilit des outils doptimisation non bass sur larithmtique des intervalles, un tat de fait dj
mentionn dans la littrature [LMR07].
Ainsi, nous avons eu lopportunit de faire lapplication des techniques de programmation par con-
traintes pour la modlisation et la rsolution dun problme de conception en robotique pour lequel la
PPC navait jamais t mise contribution jusquici. Lintgration de mthodes orientes intervalle pour
loptimisation permet dacqurir une robustesse des solutions que les mthodes numriques classiques ne
permettent pas datteindre cause des erreurs darrondis. Nos expriences ont par ailleurs montr quen
ce qui concerne le problme considr, ce gain en robustesse saccompagnait dun gain en ecacit de
rsolution, en temps de calcul.
7.1.2 Collaboration de deux solveurs discret et continu
Dans ce chapitre, nous avons prsent nos travaux concernant la ralisation dune collaboration entre
deux solveurs, lun ddi aux contraintes discrtes, lautre ddi aux contraintes continues. Lide direc-
trice sur laquelle nous avons entrepris cette ralisation est trs naturelle et peut sexprimer de la faon
suivante : il semble particulirement prometteur de pouvoir proter des avantages de chacun des outils
dans leur champ de prdilection respectif. Puisque les techniques orientes continu sont relativement peu
ecaces pour traiter la partie discrte des problmes mixtes et, rciproquement, les techniques orientes
discret ne sont pas ecaces pour traiter la partie continue de ces problmes, nous avons ainsi cherch
mettre en oeuvre une coopration de deux outils, le premier tant spcialement conu pour rsoudre les
problmes discrets, le second conu en particulier pour la rsolution de problmes continus.
Dans ce but, nous sommes partis des outils existants pour voir ce qui manquait vraiment chacun
pour traiter ecacement les problmes mixtes, que ce soit sur le plan de la modlisation ou bien des tech-
niques de rsolution. Nous avons donc commenc par eectuer une prsentation dtaille des capacits,
en terme de modlisation et de rsolution de problmes mixtes, des principaux outils non commerciaux
disponibles actuellement, dans le but de choisir lesquels faire collaborer. Cette prsentation dtaille
des dirents outils permettant la modlisation et la rsolution de problmes discrets ou continus, quils
soient fournis sous la forme de programmes en langage de modlisation ddi, en langage dclaratif
type Prolog tendu ou bien directement en langage orient objet, nous a permis de choisir quels outils
interfacer dans lide que lun puisse combler les lacunes de lautre et rciproquement.
Nous avons alors entrepris dutiliser les capacits de propagation sur les contraintes arithmtiques
dun solveur continu, RealPaver pour amliorer les capacits dans ce domaine dun solveur discret,
Choco. Nous avons dcrit la manire dont nous avons pu mettre en oeuvre la collaboration entre ces
outils, savoir coner le rle principal au second, lexploration de lespace de recherche et le ltrage
des contraintes globales discrtes, tandis que le premier tait mis contribution pour ltrer ecacement
les domaines en utilisant les contraintes arithmtiques continues et mixtes grce larithmtique des
intervalles.
Finalement, nous avons prsent des rsultats exprimentaux que nous avons obtenus sur un en-
semble de problmes de test. La ralisation dexpriences sur une varit de problmes mixtes de di-
rents types nous a permis de mesurer lecacit de la collaboration que nous avons mise en oeuvre en
la comparant lutilisation des outils sparment vis--vis de la rsolution dune slection de problmes
mixtes. En pratique, cette collaboration nous permet dabord de faciliter la phase de modlisation en
t
e
l
-
0
0
5
6
0
9
6
3
,
v
e
r
s
i
o
n
1
-
3
1
J
a
n
2
0
1
1
7.1. Synthse de nos travaux 107
orant la possibilit de sabstraire dun mcanisme de modlisation rigide et dicile utiliser. En outre,
cette collaboration nous permet de rsoudre plus ecacement certains types de problmes mixtes. tra-
vers ces travaux, nos principales contributions sont ainsi les suivantes
Nous avons mis au point une plateforme logicielle dot dun langage de modlisation facilitant
lexpression des problmes mixtes en fusionnant les hautes capacits dexpression de contraintes
arithmtiques du langage de modlisation ddi dun solveur continu, avec les nombreuses primi-
tives de modlisation de contraintes globales dun solveur discret, amliorant en cela les capacits
de chacun des deux outils pris individuellement.
Nous avons galement mis en vidence la nette supriorit en termes decacit de rsolution
dune collaboration doutils pour rsoudre les problmes mixtes qui font intervenir la fois des
contraintes arithmtiques, ncessitant une valuation par larithmtique des intervalles, et des con-
traintes globales, requrant des algorithmes de ltrage ddis et optimiss.
7.1.3 Utilisation de la contrainte Alldierent dans un solveur continu
Dans ce deuxime chapitre, nous avons prsent une tude exprimentale propos de la rsolution
dans un solveur continu de problmes mixtes utilisant la contrainte discrte alldifferent. Cela nous a
permis dinvestiguer le champ des techniques de programmation par contraintes ddies la rsolution
de problmes mixtes, un champ o trs peu de travaux ont dj t raliss jusquici. Dans ce chapitre,
nous nous sommes intresss la recherche dune manire simple de permettre aux solveurs continus
de grer ecacement les contraintes globales et de tirer avantage de cette force pour rsoudre des pro-
blmes mixtes. Cette tude exprimentale nous a conduit rsoudre des problmes doptimisation issus
du monde rel et implmenter une varit dalgorithmes de ltrage dans un solveur de contraintes
continues. En particulier, nous avons tudi la possibilit dutiliser la contrainte alldifferent pour
modliser des problmes mixtes du monde rel et les rsoudre dans un solveur continu. Cette contrainte
est en eet lune des plus utilises et des mieux tudies.
Nous avons dabord prsent ce qui nous motivait aller dans cette direction. En eet, lutilisation de
larithmtique des intervalles en programmation par contraintes est par exemple un moyen puissant de r-
soudre les MINLP de faon rigoureuse et complte, i.e. de les rsoudre avec les deux intressantes carac-
tristiques de calculer des solutions garanties et de ne perdre aucune solution. Ensuite, nous avons mon-
tr comment utiliser la contrainte alldifferent pour la modlisation de quelques problmes mixtes
du monde rel. Nous avons ainsi montr comment faire usage de cette contrainte globale discrte pour
modliser une certaine catgorie de problmes MINLP, trouvs dans la littrature.
Nous avons alors mis en lumire les solutions possibles pour la formulation de la contrainte et son
ltrage dans un solveur continu. Nous avons eectu une comparaison des direntes modlisations
possibles de la contrainte globale entire alldifferent, ainsi que des techniques de ltrage qui sont
ddies chacune dentre elles. Nous avons ainsi pass en revue les principales faons dont on peut traiter
une contrainte alldifferent dans un solveur continu, bas sur la notion dintervalle, en reformulant la
contrainte ou bien en implmentant des algorithmes de ltrage ddis.
Finalement, nous avons ralis des expriences sur dirents types de problmes, de faon tudier
limpact du choix de la mthode de traitement sur la rsolution proprement dite. Nous avons prsent
les rsultats des expriences que nous avons ralises pour comparer les ecacits respectives des dif-
t
e
l
-
0
0
5
6
0
9
6
3
,
v
e
r
s
i
o
n
1
-
3
1
J
a
n
2
0
1
1
108 Coxcitsrox rr rrasrrcrrvrs
frentes modlisations et algorithmes de ltrage associs. Il ressort de nos expriences que mme sil
reste trs avantageux en gnral dopter pour une modlisation globale de la contrainte plutt que son
clatement en une clique de contraintes binaires, il nest pas intressant dopter pour un algorithme de
ltrage trop coteux, comme cest le cas de lalgorithme de ltrage de type consistance de bornes dans
sa version state-of-the-art, en ce qui concerne la rsolution des problmes diciles issus du monde rel.
travers ces travaux, nos principales contributions tiennent en deux points :
Nous avons montr quun algorithme de ltrage global, ddi mais trs simple implmenter
comme celui que nous avons ralis pour la contrainte CARD, tait trs comptitif par rapport au
trs optimis algorithme de ltrage en ce qui concerne la rsolution de problmes mixtes trs
contraints issus du monde rel, tout en restant relativement comptitif dans le cas particulier de
problmes purement discret, ce qui nest pas du tout le cas des formulations et surtout MILP,
cette dernire tant pourtant la formulation dusage ;
Nous avons dcouvert que la relaxation convexe denveloppe telle quen usage actuellement pou-
vait tre dpasse en termes de performances dans notre solveur intervalles par un ensemble de
contraintes beaucoup plus facile construire et utiliser, et qui pouvait permettre une rsolution
jusqu deux fois plus rapide pour rsoudre certaines instances des problmes mixtes issus du
monde rel.
7.1.4 Spcialisation du ltrage bas sur larithmtique des intervalles
Dans ce troisime chapitre, nous avons prsent des amliorations pour les techniques de ltrage
de domaines bases sur larithmtique des intervalles. Ces amliorations sont ddies une meilleure
utilisation des contraintes mixtes, i.e. les contraintes qui font intervenir la fois des variables discrtes et
des variables continues. Nous avons ainsi rchi une spcialisation des techniques de ltrage bases
sur larithmtique des intervalles, ddie au cas des contraintes arithmtiques faisant intervenir des va-
riables entires. Prolongeant les travaux antrieurs de Arr et Zorrrwrrs propos dune arithmtique des
intervalles dentiers, nous avons introduit de nouvelles rgles de calcul sur les intervalles de certaines
oprations arithmtiques.
Aprs avoir prsent les travaux de Arr et Zorrrwrrs propos de lutilisation dune arithmtique
des intervalles dentiers pour la rsolution de problmes purement discrets, nous avons montr comment
le cadre classique de rsolution ddi aux problmes rels pouvait tre modi pour mieux prendre en
compte la notion dintgralit des variables discrtes. Nous avons rcrit dans un premier temps de nou-
velles dnitions certaines oprations de larithmtique des intervalles, en les adaptant au contexte parti-
culier dintervalles dentiers. Celles-ci nous permettent de faire des encadrements plus ns du rsultat de
lvaluation aux intervalles dune expression arithmtique, en prenant en compte les caractristiques des
domaines entiers sur lesquelles portent ces oprations. Nous avons galement mis en lumire une nou-
velle faon de prendre en compte les contraintes dintgralit au cours de la propagation de contraintes,
plus tt dans le processus de propagation.
Nous avons ensuite montr comment nous avons implment ces ides dans un solveur de contraintes
continues. Aprs avoir donn quelques prcisions propos de limplmentation des modications eec-
tuer, nous avons ralis des expriences pour en tudier le comportement en pratique. Nous avons alors
pu prsenter les expriences eectues dans le but dobserver le comportement de nos amliorations vis-
t
e
l
-
0
0
5
6
0
9
6
3
,
v
e
r
s
i
o
n
1
-
3
1
J
a
n
2
0
1
1
7.2. Perspectives de recherche 109
-vis de la rsolution de problmes mixtes de dimension variable. La mise en vidence exprimentale des
eets sur la rsolution de problmes mixtes des nouvelles techniques mises en oeuvre nous a ainsi permis
de constater limpact drastique que peuvent avoir en pratique ces optimisations naturelles du calcul sur
les temps eectifs de rsolution des problmes, au del de lecacit thorique que nous avions dj pu
remarquer. Ainsi, nos contributions travers ces travaux sont les suivantes :
Nous donnons de nouvelles dnitions pour des oprations typiques de larithmtique des inter-
valles, dans le cas particulier o leurs oprandes sont des variables entires, et montrons que cela
permet, travers un augmentation de la force du ltrage obtenu, dacclrer de manire trs signi-
cative la rsolution des problmes ;
Nous proposons une nouvelle faon de grer les contraintes dintgralit des variables pendant le
processus de rsolution : prendre en compte ces contraintes le plus tt possible au cours de la pro-
pagation, cest--dire non pas comme un post-traitement au ltrage des domaines mais au moment
mme de celui-ci, permet dacclrer de manire drastique la rsolution des problmes.
7.2 Perspectives de recherche
Dans cette dernire section, nous faisons le bilan des direntes perspectives de recherche dont nous
pouvons faire tat dans le cadre de cette n de thse, ayant bien videmment pour objet les problmes
mixtes. Puis nous pourrons nalement largir ces perspectives au problme plus gnral de la rsolution
rigoureuse des problmes impliquant des variables continues.
7.2.1 Dans le domaine des problmes mixtes
Nous commenons par rcapituler les directions dans lesquelles les travaux que nous avons prsents
ici nous semblent avantageusement amliorables.
Limitations de la collaboration de solveurs
Des travaux futurs pourraient permettre damliorer les points faibles majeurs dune collaboration de
solveurs telle que nous lavons mise en oeuvre. En eet, on peut imaginer pouvoir proter davantage des
forces dune telle collaboration en saranchissant de ses principaux inconvnients que sont pour nous
les temps de recopie de domaines dun solveur lautre, ainsi que le manque de souplesse du propaga-
teur que nous avons utilis pour calculer le point-xe des domaines partir des contraintes arithmtiques
continues et mixtes du modle :
En ce qui concerne le premier point, on peut en eet concevoir une symbiose plus profonde entre
les deux outils, qui pourrait amener par exemple proposer une gestion plus intelligente de la
recopie des domaines, au moins dans le cas particulier o il ny a pu se produire aucune rduction
et o la recopie en retour est inutile.
t
e
l
-
0
0
5
6
0
9
6
3
,
v
e
r
s
i
o
n
1
-
3
1
J
a
n
2
0
1
1
110 Coxcitsrox rr rrasrrcrrvrs
Quant au deuxime point, on peut galement envisager une collaboration plus en profondeur qui
permettrait une slection plus ne des oprateurs de rduction rappeler en cas de modication
de domaines, par exemple en orant la possibilit de neectuer le calcul de point-xe que sur un
sous-ensemble des contraintes arithmtiques dlgues au solveur continu.
Il est galement intressant denvisager une collaboration de solveurs centre cette fois sur le sol-
veur continu. En eet, selon le type de problmes il peut y avoir ou bien une majorit de contraintes
arithmtiques, ou bien une majorit de contraintes globales discrtes. Dans le premier cas, il est
srement avantageux de coner le rle principal au solveur continu et de ne dlguer au solveur
discret que le ltrage des contraintes continues.
Intgration de contraintes globales au cadre de rsolution continu
De futurs travaux pourraient permettre de sinterroger quant limpact de la constriction du problme
sur lecacit des direntes modlisations et ltrages mis en oeuvre pour les contraintes globales. En
outre, la rutilisation des conclusions de nos travaux sur ltude du alldifferent dans des outils large-
ment en usage comme AMPL nous semble la fois simple mettre en oeuvre et prometteuse en pratique.
Enn, on peut imaginer la gnralisation de notre approche aussi bien dautres problmes mixtes utili-
sant la contrainte alldifferent qu des problmes mixtes utilisant dautres contraintes globales :
Il semble important de trouver davantage de problmes mixtes, issus du monde rel ou bien gnr
dune faon ou dune autre, mais ayant un rapport plus quilibr entre le nombre de contraintes
discrtes et le nombre de contraintes continues, de faon mieux connatre les comportements des
direntes modlisations selon les caractristiques des problmes rsolus.
lheure actuelle, aucun solveur de la platforme de rsolution AMPL nest en mesure de traiter le
mot-cl card, pourtant dj une primitive de son langage de modlisation. Au vu de nos rsultats,
il semblerait trs utile dy implmenter une mthode de ltrage associe qui pourrait permettre de
modliser simplement et ecacement la contrainte alldifferent.
Au del des travaux que nous prsentons ici sur la contrainte alldifferent, on peut tout fait
imaginer raliser un travail similaire propos dautres contraintes globales. Ainsi, on pourrait
mme terme se doter dun ensemble minimal de primitives de type card, permettant dexpri-
mer un ensemble maximal de contraintes globales et implmentable facilement dans un solveur de
contraintes continues.
Vers une arithmtique des intervalles mixtes
Nous voyons ici deux pistes principales pour de futures recherches sur le thme dune meilleure ma-
trise dune arithmtique des intervalles mixte :
De futurs travaux pourraient tre consacrs raliser une tude plus exhaustive de larithmtique des
intervalles, dans le but de trouver ventuellement dautres oprations arithmtiques qui pourraient
t
e
l
-
0
0
5
6
0
9
6
3
,
v
e
r
s
i
o
n
1
-
3
1
J
a
n
2
0
1
1
7.2. Perspectives de recherche 111
bncier dune telle spcialisation aux intervalles dentiers, ou bien le cas chant de prouver que
cela nest pas possible.
En outre, il pourrait tre intressant de mieux comprendre limpact sur la rsolution des problmes
de chacune des amliorations du ltrage que nous avons proposes ici, en ralisant des obser-
vations plus prcises comme compter le nombre doprations arithmtiques eectues, ou acti-
ver/dsactiver chacune des optimisations, avant de comparer les rsultats obtenus.
7.2.2 Dans le domaine des problmes continus
Mais au-del des problmes mixtes, il nous semble intressant, pour conclure cette thse, dvoquer
des pistes dans le cadre plus gnral de la rsolution de tout problme variables continues, quil im-
plique galement ou non des variable discrtes. En eet, nous avons eu lopportunit au cours de cette
thse de faire lapplication des techniques de programmation par contraintes pour la modlisation et
la rsolution dun problme de conception en robotique, pour lequel la programmation par contraintes
navait jamais t mise contribution jusquici. Pour ce faire, nous avons eu modier le cadre classique
de rsolution dun solveur de contraintes continues, destin la satisfaction de contraintes uniquement,
pour y intgrer la notion de recherche rigoureuse doptimum. En conclusion de ces travaux, nous sont
apparues des directions de recherche intressantes que nous partageons ici :
Nous avons non seulement pu constater que pour le problme considr, les mthodes de pro-
grammation par contraintes sont trs comptitives par rapport aux mthodes de programmation
mathmatique, mais surtout que les rsultats obtenus par lune et lautre mthode divergent sensi-
blement. Ainsi, il semble primordial dlucider avec certitude la cause de cette divergence an de
chercher corriger ce qui en est la source.
De plus, des travaux futurs devraient permettre de mettre en oeuvre dautres critres de ltrage
utilisant la fonction-objectif, par exemple en se basant sur de la recherche locale, et dainsi ac-
clrer encore la convergence de notre algorithme doptimisation de faon permettre de traiter
ecacement des problmes de taille plus importante.
Notons galement quau niveau de lexploitation des rsultats dun point de vue purement robo-
tique, nous avons encore faire lapplication de la mthode que nous avons dcrite ici an de
tracer les isocontours de lerreur maximum dans lespace de travail, partir du calcul de lerreur
de pose maximum pour un chantillon de points de lespace de travail du robot et de faon mieux
connatre limpact du jeu dans les articulations sur lerreur de pose.
En outre, dautres travaux sont dj en cours pour galement prendre en compte les imperfections
dusinage des pices du robot. Lenjeu est ici de chercher compenser le jeu dans les articulations
par ces imperfections et ainsi rduire drastiquement les cots dassemblage.
Enn, des membres de lquipe de recherche en robotique de lInstitut de Recherche en Communi-
cations et Cyberntique de Nantes, avec laquelle nous avons collabor loccasion de ces travaux,
conrment le besoin rel qui existe pour lintgration de mthodes de rsolution ecaces et rigou-
t
e
l
-
0
0
5
6
0
9
6
3
,
v
e
r
s
i
o
n
1
-
3
1
J
a
n
2
0
1
1
112 Coxcitsrox rr rrasrrcrrvrs
reuses dans des outils de modlisation mathmatique comme MatLab. Des travaux sont dj en
cours au sein de lquipe Mthodes Ensemblistes pour lOptimisation, du Laboratoire dInforma-
tique de Nantes Atlantique, au sein de laquelle a t ralise cette thse, propos de linclusion de
telles mthodes dans ces outils.
t
e
l
-
0
0
5
6
0
9
6
3
,
v
e
r
s
i
o
n
1
-
3
1
J
a
n
2
0
1
1
.
t
e
l
-
0
0
5
6
0
9
6
3
,
v
e
r
s
i
o
n
1
-
3
1
J
a
n
2
0
1
1
t
e
l
-
0
0
5
6
0
9
6
3
,
v
e
r
s
i
o
n
1
-
3
1
J
a
n
2
0
1
1
Quand les lettrs suprieurs ont entendu parler de la Voie,
Ils la pratiquent avec zle.
Quand les lettrs du second ordre ont entendu parler de la Voie,
Tantt ils la conservent, tantt ils la perdent.
Quand les lettrs infrieurs ont entendu parler de la Voie,
Ils la tournent en drision.
Sils ne la tournaient pas en drision,
Elle ne mriterait pas le nom de Voie !
Cest pourquoi les Anciens disaient :
Celui qui a lintelligence de la Voie parat envelopp de tnbres.
Celui qui est avanc dans la Voie ressemble un homme arrir.
Celui qui est la hauteur de la Voie ressemble un homme vulgaire.
Lhomme dune vertu suprieure est comme une valle.
Lhomme dune grande puret est comme couvert dopprobre.
Lhomme dun mrite immense parat frapp dincapacit.
Lhomme dune vertu solide semble dnu dactivit.
Lhomme simple et vrai semble vil et dgrad.
La Voie est un grand carr dont on ne voit pas les angles ;
Un grand vase qui semble loin dtre achev ;
Une grande voix dont le son est imperceptible ;
Une grande image dont on naperoit point la forme.
La Voie se cache et personne ne peut la nommer.
Elle sait prter secours aux tres,
Les guider vers la perfection.
Lxo-Tsrt, De la Voie et de sa vertu, XLI.
t
e
l
-
0
0
5
6
0
9
6
3
,
v
e
r
s
i
o
n
1
-
3
1
J
a
n
2
0
1
1
t
e
l
-
0
0
5
6
0
9
6
3
,
v
e
r
s
i
o
n
1
-
3
1
J
a
n
2
0
1
1
Annexes
t
e
l
-
0
0
5
6
0
9
6
3
,
v
e
r
s
i
o
n
1
-
3
1
J
a
n
2
0
1
1
t
e
l
-
0
0
5
6
0
9
6
3
,
v
e
r
s
i
o
n
1
-
3
1
J
a
n
2
0
1
1
A
COMPLMENTS LTAT DE LART
A.1 Filtrage de domaines
A.1.1 Domaines discrets
De nombreuses volutions des consistances darc et de chemin ont vu le jour depuis lapparition de
ces dernires.
Gnralisations
Dans [Fre85] a t labore une gnralisation des consistances darc et de chemin, la notion de
(i, j)-consistance. Grce ce nouveau formalisme, on peut voir la consistance darc comme tant la (1,1)-
consistance, o toute valeur doit, pour tre conserve, pouvoir tre complte par la valeur dune variable
adjacente dans le graphe. De mme, la consistance de chemin est la (2,1)-consistance, o tout couple de
valeurs doit pouvoir tre complt par la valeur dune variable adjacente.
Dnition A.1 ((i,j)-consistance). Un CSP discret P = (X, D, C) est (i,j)-consistant ssi toute instancia-
tion localement consistante de i variables peut tre tendue j variables.
Fartura a auparavant labor dans [Fre78] la notion de k-consistance, une autre gnralisation des
consistances darc et de chemin. Lide est de considrer les inconsistances par ensemble de k variables,
et de pouvoir concevoir des consistances plus fortes que la consistance de chemin. De cette faon, la
consistance darc est la 2-consistance, et la consistance de chemin la 3-consistance. Mais sil est dans
lide possible daller au del de 3, on conoit aisment que la complexit algorithmique dun tel ltrage
puisse le rende inutilisable en pratique.
Dnition A.2 (k-consistance). Un CSP discret P = (X, D, C) est k-consistant ssi toute instanciation
consistante de k 1 variables peut tre tendue k variables.
Dnition A.3 (k-consistance forte). Un CSP discret P = (X, D, C) est fortement k-consistant ssi il est
i-consistant pour tout i k.
Si on peut ds lors parler de PC forte, quand un CSP est la fois 2-consistant et 3-consistant, il reste
que la PC est algorithmiquement prohibitive assurer. Pour pallier cet inconvnient tout en cherchant
ltrer plus de valeur que lAC, diverses consistances ont progressivement t proposes, des consistances
intermdiaires entre AC et PC forte. Notons que ces nouvelles consistances sont dites de domaine, cest-
-dire quil ne sagira pas comme pour la PC de retirer simultanment dun ensemble de variables des
n-uplets inconsistants, mais uniquement de retirer du domaine dune variable les valeurs ne respectant
pas une certaine proprit.
119
t
e
l
-
0
0
5
6
0
9
6
3
,
v
e
r
s
i
o
n
1
-
3
1
J
a
n
2
0
1
1
120 ANNEXE A
Consistances restreintes
Dans [Ber95], on trouve ainsi une premire restriction de la PC, de faon acclrer le ltrage tout
en conservant un important pouvoir ltrant :
Dnition A.4 (Consistance de chemin restreinte). Etant donn un CSP P = (X, D, C), le domaine D
dune variable X est chemin-consistant restreint ssi il est arc-consistant et si, pour toute valeur u de D
nayant quun seul support v dans le domaine dune variable Y pour une contrainte C
XY
donne, chaque
variable Z telle quil existe la fois une contrainte C
XZ
portant sur X et Z et une contrainte C
YZ
portant
sur Y et Z contient dans son domaine une valeur w telle que (u, w) et (v, w) satisfont respectivement C
XZ
et C
YZ
i.e. la paire (u, v) est chemin-consistante.
Le terme anglo-saxon original est restricted path consistency (RPC). Cette consistance est destine
tre un intermdiaire entre AC et PC. En eet, la RPC est moins forte que la PC puisquelle ne sintresse
quaux valeurs nayant quun seul support pour une contrainte, et non toutes les valeurs comme cest
le cas pour la PC. Elle reste cependant plus forte que lAC puisquelle considre des triplets de variables
et non juste des couples.
On trouve aujourdhui un algorithme de ltrage par RPC, dans le pire des cas de complexit tempo-
relle en O(en+ed
2
+cd
2
) et spatiale en O(ed+cd), avec d la taille du plus grand domaine, n le nombre de
variables, e le nombre de contraintes et c le nombre de cliques
1
de trois sommets dans le graphe [DB97a].
Exemple A.6. [Ber95] Filtrage par RPC :
(i) CSP initial (ii) CSP aprs ltrage par RPC
En eet, la valeur c est lunique support dans le domaine de X
j
pour (X
i
, a) et la paire ((X
i
, a), (X
j
, c))
nest pas chemin-consistante puisquil ny a aucune valeur w dans le domaine de X
k
telle que la combi-
naison ((X
i
, a), (X
j
, c), (X
k
, w)) satisfait toutes les contraintes. Une fois (X
i
, a) retire, les valeurs (X
k
, e)
et (X
j
, d), non arc-consistantes, sont limines.
La dnition de la RPC peut en outre tre gnralise aux valeurs ayant non pas un seul support,
mais au plus k supports :
Dnition A.5 (Consistance de chemin k-restreinte). Etant donn un CSP P = (X, D, C), le domaine D
dune variable X est chemin-consistant k-restreint ssi il est arc-consistant et si, pour toute valeur u de D
ayant au plus k supports v
i
dans le domaine dune variable Y
i
pour une contrainte C
XY
i
donne, chaque
variable Z telle quil existe la fois une contrainte C
XZ
portant sur X et Z et une contrainte C
Y
i
Z
portant
sur Y
i
et Z contient dans son domaine une valeur w telle que (u, w) et (v
i
, w) satisfont respectivement C
XZ
et C
Y
i
Z
i.e. chaque paire (u, v
i
) est chemin-consistante.
Il sagit dune extension de la RPC aux valeur ayant non pas 1 mais au plus k supports. Elle est donc
logiquement plus forte que la RPC puisquelle examine plus de valeurs. Poursuivant les recherches dans
1
Une clique est un graphe dans lequel tout sommet est reli par un arc chacun des autres sommets.
t
e
l
-
0
0
5
6
0
9
6
3
,
v
e
r
s
i
o
n
1
-
3
1
J
a
n
2
0
1
1
ANNEXE A 121
la direction du meilleur compromis entre ltrage et complexit, Debruyne propose dans [DB97a] une
autre volution de la RPC :
Dnition A.6 (Consistance de chemin max-restreinte). Etant donn un CSP discret P = (X, D, C), le
domaine D dune variable X est chemin-consistant max-restreint ssi toute valeur de D possde un support
chemin-consistant dans chaque domaine de variable Y pour laquelle il existe une contrainte portant la
fois sur X et sur Y.
La max-RPC est plus forte que la RPC, car ici on sintresse toutes les valeurs non pas juste
celles ayant un unique support et plus forte galement que la k-RPC, puisquon ne se restreint pas
examiner les valeurs qui satisfont un nombre de support dau plus k, toutes les valeurs sont considres.
Pourtant, la max-RPC peut tre plus facile obtenir que nimporte quelle k-RPC : en eet, il ny a pas
chercher dans le CSP quelles valeurs satisfont la condition davoir au plus k supports, ce qui pouvait
savrer trs coteux quand k est grand.
Dans sa version optimale, lalgorithme a dans le pire des cas une complexit temporelle en O(en +
ed
2
+ cd
3
) et spatiale en O(ed + cd), avec d la taille du plus grand domaine, n le nombre de variables, e
le nombre de contraintes et c le nombre de 3-cliques dans le graphe [DB97a].
Exemple A.7. [Deb01] Filtrage par max-RPC :
(i) CSP initial (ii) CSP aprs ltrage par max-RPC
En eet, la valeur (X
i
, a) na aucun support chemin-consistant.
Consistances inverses
Toujours dans cette optique de trouver un compromis optimal entre complexit et ecacit de ltrage,
dans [FE96] est labore la notion de consistance de chemin inverse :
Dnition A.7 (Consistance de chemin inverse). Etant donn un CSP P = (X, D, C), le domaine D dune
variable X est chemin-consistant inverse ssi toutes les valeurs des domaines de toutes deux variables Y
et Z sont consistantes pour toute valeur de D par rapport toute contrainte portant sur un sous-ensemble
de {X, Y, Z}.
Selon le formalisme de Fartura, il sagit de la (1,2)-consistance, toute valeur peut tre tendue tout
couple de valeurs supplmentaire. On parle de PC inverse puisque la PC est la (2,1)-consistance, o tout
couple de valeur peut tre tendu toute troisime valeur.
Dans sa version optimale, lalgorithme a dans le pire des cas une complexit temporelle en O(en +
ed
2
+ cd
3
) et spatiale en O(ed + cd), avec d la taille du plus grand domaine, n le nombre de variables, e
le nombre de contraintes et c le nombre de 3-cliques dans le graphe [Deb00].
t
e
l
-
0
0
5
6
0
9
6
3
,
v
e
r
s
i
o
n
1
-
3
1
J
a
n
2
0
1
1
122 ANNEXE A
Exemple A.8. [FE96] Filtrage par PIC :
(i) CSP initial (ii) CSP aprs ltrage par PIC
En eet, il ny aucune combinaison satisfaisable de valeurs pour X et Y si W prend la valeur a, ni de
combinaison satisfaisable de valeurs pour Y et W si X prend la valeur c.
Cest galement dans [FE96] que Fartura dveloppe la notion de consistance inverse de voisinage :
Dnition A.8 (Consistance inverse de voisinage). Etant donn un CSP P = (X, D, C), le domaine D
dune variable X est inverse voisinage-consistant ssi pour toute valeur v de D, il existe des valeurs w
i
dans les domaines de chacune des variables Y
i
pour lesquelles existe une contrainte C
j
portant sur X et
sur une des Y
i
au moins, w
i
telles que toutes les C
j
sont satisfaites.
Le terme original est neighborhood inverse consistency. Les deux ides de bases sont la consistance
inverse, dveloppe par Fartura ds 1985 sans tre implmente, et la consistance de voisinage, qui
insiste sur le sous-problme que forme une valeur et les contraintes quelles imposent autour delle dans
le graphe [FE96].
Lalgorithme de ltrage par NIC a aujourdhui dans le pire des cas une complexit temporelle en
O(g
2
(n +ed)d
g+1
) et spatiale en O(n), avec d la taille du plus grand domaine, n le nombre de variables, e
le nombre de contraintes et g le degr maximum dun noeud du graphe [FE96].
Exemple A.9. [FE96] Filtrage par NIC :
(i) CSP initial (ii) CSP aprs ltrage par NIC
En eet, la valeur (W, a) nest compatible avec aucune combinaison de valeurs satisfaisable de son
voisinage {X, Y, Z}. De mme pour (X, a) et son voisinage {W, Y}, (Y, a) et son voisinage {X, W, Z}, etc.
Enn, pour terminer avec les consistances discrtes, citons [DB97b] et la consistance de singleton :
Dnition A.9 (Consistance de singleton). Etant donn un CSP P = (X, D, C) et une consistance discrte
CONS, le domaine D dune variable X est singleton CONS-consistant ssi D nest pas vide et pour toute
valeur v de D, le CSP dans lequel on a remplac X par v nest pas CONS-inconsistant.
t
e
l
-
0
0
5
6
0
9
6
3
,
v
e
r
s
i
o
n
1
-
3
1
J
a
n
2
0
1
1
ANNEXE A 123
Ici, on est sr quil existe dans chaque domaine au moins une valeur qui participe avec v une solu-
tion. En outre, en fonction de la consistance sur laquelle se base la consistance de singleton, on obtient
une consistance dirente : consistance darc singleton (SAC) pour la consistance darc, consistance de
chemin restreinte singleton (SRPC) pour la RPC, etc.
Lalgorithme de ltrage par SAC a dans le pire des cas une complexit temporelle en O(en
2
d
4
) et
spatiale en O(ed), tandis que lalgorithme de ltrage par SRPC a lui dans le pire des cas une complexit
temporelle en O(en + n
2
(e + c)d
4
) et spatiale en O(ed + cd) avec d la taille du plus grand domaine, n le
nombre de variables, e le nombre de contraintes et c le nombre de 3-cliques du graphe [DB97b].
Exemple A.10. [Deb05] Filtrage par SRPC :
(i) CSP initial (ii) CSP aprs ltrage par SRPC
En eet, la valeur (A, 1) a un unique support 2 dans le domaine de C. Le CSP dans lequel on a remplac le
domaine de A par {1} est inconsistant pour la RPC : lunique support de (A, 1) est (C, 2), et celui-ci nest
pas chemin-consistant car il ny a aucune valeur u de B ni v de D telle que ((A, 1), (B, u), (C, 2), (D, v))
est une solution.
Synthse
Pour conclure sur ce sujet, remarquons que ces consistances peuvent ainsi tre mises en relation les
unes par rapport aux autres en fonction de la quantit de valeurs quelles ltrent. Par exemple, RPC est
plus forte quAC mais plus faible que PIC, ou encore SAC est plus forte que max-RPC. Le rsultat de
cette comparaison exhaustive est la gure A.1 page 123, extraite de [DB97b] et [Deb01], o est reprsent
Figure A.1 Relations entre les direntes consistances discrtes
t
e
l
-
0
0
5
6
0
9
6
3
,
v
e
r
s
i
o
n
1
-
3
1
J
a
n
2
0
1
1
124 ANNEXE A
cet ordre sur les consistances discrtes. On notera que certaines sont incomparables : cet ordre nest pas
total.
A.1.2 Domaines continus
Des consistances plus fortes que la consistance denveloppe et de pav ont t mises au point pour
pallier les faiblesses de ces dernires.
Consistances fortes
Une limitation de la consistance denveloppe, que partage galement la consistance de pav, est la
localit de son application i.e. elle prend en compte les contraintes sparment. Or ds les premires
tentatives dadapter aux domaines continus les techniques de ltrage par consistance, Lnommr dnit
dans [Lho93] une consistance plus forte, capable de ltrer les domaines en utilisant toutes les contraintes
la fois :
Dnition A.10 (Consistance 3B). Etant donn un CSP P = (X, D, C), un domaine D
i
= [a, b] de Dest
3B-consistant ssi les CSP P
et P
i
, b
i
]
ne sont pas inconsistants aprs ltrage par consistance denveloppe.
Il sagit eectivement dune consistance de plus grande force puisquelle garantit quun domaine ne
puisse plus tre rduit par aucune contrainte. De plus, il sagit en fait dune famille de consistances plutt
que dune consistance, un peu limage de la consistance discrte de singleton dcrite prcdemment
dans cette section.
Exemple A.11. [BG06] Soient les contraintes x + y = 0 et x y = 0 avec D
x
= D
y
= [1, 1]. Ces
domaines sont irrductibles au sens de la consistance denveloppe. Cependant, la consistance 3B permet
de ltrer des valeurs. En eet, pour x = 1 par exemple, les contraintes impliquent la fois y = 1 et
y = 1, ce qui provoque le rejet de cette valeur de x.
Notons en outre que la dnition de la consistance 3B peut tre rcrite pour nimporte quelle consis-
tance, en loccurrence la consistance de pav, comme dans [VHMD97] :
Dnition A.11 (Bound-consistance). Etant donn un CSP P = (X, D, C), un domaine D
i
= [a, b] de D
est Bound-consistant ssi les CSP P
et P
}, B
}, C) est arc-consistant.
Cette nouvelle consistance est plus forte que lAC, mais reste plus faible quune rsolution globale
du CSP i.e. elle laisse dans les domaines certaines valeurs qui ne sont pas des solutions du CSP. Ces deux
points sont illustrs respectivement par les deux exemples A.12 et A.13 :
Exemple A.12. [CTN04] Soient les domaines D
x
= D
y
= D
z
= [2, 2] et D
w
= [1, 4]. Soient les
contraintes x
2
= w, x = y, y = z et x = z. La consistance darc est atteinte pour les domaines
t
e
l
-
0
0
5
6
0
9
6
3
,
v
e
r
s
i
o
n
1
-
3
1
J
a
n
2
0
1
1
ANNEXE A 125
D
x
= D
y
= D
z
= [2, 1] [1, 2] et D
w
= [1, 4], alors que le consistance densemble de pav limine
le pav tout entier puisque, dans le domaine de x, ni [2, 1] ni [1, 2] nappartiennent un sous-pav
arc-consistant.
Exemple A.13. [CTN04] Soient les domaines D
x
= D
y
= D
z
= [0, 2]. Soient les contraintes x = y,
x + z = 2 et y = z. Comme le pav initial est arc-consistant, il est ensemble de pavs-consistant. Or la
vraie solution est (1, 1, 1).
A.2 Exploration de lespace de recherche
A.2.1 CSP discrets
Intressons-nous prsent aux amliorations du backtracking qui ont vu le jour depuis son apparition
dans les annes 1970. Outre lapparition de la notion de consistance, destine contrer le phnomne de
trashing
2
observ dans [Mac77], et dont lecacit est facilement constatable en comparant les arbres
des exemples 2.22 et 2.23, on distingue trois catgories dalgorithmes de recherche rsultant de lvolu-
tion du backtracking : les algorithmes prospectifs, rtrospectifs et rtroprospectifs.
Algorithmes prospectifs
Les algorithmes prospectifs, tout dabord, comme leur nom lindique ont la tte tourne vers le
futur. Il sagit daugmenter le niveau de ltrage chaque noeud de faon limiter les explorations
infructueuses.
Un premier algorithme de ce type est le forward checking : aprs chaque instanciation, dune variable
x, on limine du domaine de chaque variable y non encore instancie les valeurs inconsistantes avec les
contraintes contenant x et y [HE80].
Exemple A.14. [Bar] Forward checking pour le problme des 4 reines
3
:
Ensuite est apparu dans [SF94] MAC pour maintaining arc consistency. Le CSP est initialement
rendu arc-consistant et, chaque nouvelle variable instancie, on en propage les eets jusqu ce que le
2
Ce terme dsigne un comportement perfectible du backtracking qui consiste traverser inutilement des portions de larbre
: quand une valeur aecte X
1
est incompatible avec toute valeur de X
3
, chercher entre temps quelles valeurs de X
2
sont
compatibles avec celle de X
1
est une perte de temps.
3
Le problme des n reines est un classique de la programmation par contraintes : il sagit de placer n reines sur un chiquier
de telle sorte quaucune ne soit en position dtre prise par une autre.
t
e
l
-
0
0
5
6
0
9
6
3
,
v
e
r
s
i
o
n
1
-
3
1
J
a
n
2
0
1
1
126 ANNEXE A
CSP soit de nouveau arc-consistant : aprs chaque instanciation dune variable, on vrie, pour toutes les
valeurs de chaque domaine de variable non encore instancie, quil existe un support pour les contraintes
qui la contiennent.
Exemple A.15. [Bar] MAC pour le problme des 4 reines :
Algorithmes rtrospectifs
La deuxime catgorie dalgorithmes de recherche est celle des algorithmes rtrospectifs qui, eux,
ont la tte tourne vers le pass et regardent dans les anciens checs dinstanciation.
Un algorithme de ce type est par exemple le conict-directed backjumping (CBJ) apparu dans [Pro93]
: chaque chec sur le choix dune valeur est expliqu par les prcdents choix qui entrent en conit, et en
cas dimpossibilit daecter une variable quand aucune valeur potentielle nest consistante on revient
en arrire jusqu la variable la plus rcemment instancie dont la valeur provoque une incompatibilit.
Exemple A.16. [Deb05] CBJ pour le problme des 8 reines :
On mmorise pour chaque reine la (les) ligne(s) de la (des) reine(s) qui bloque(nt) une (des) case(s).
Ainsi, quand la ligne 6 il ny a plus dalternative tester, on revient en arrire jusquau choix le plus
rcent, cest--dire 4.
Un autre exemple dalgorithme rtrospectif est le dynamic backtracking (DBT) [Gin93]. Comme pour
le CBJ, lide est de mmoriser et dutiliser les causes des checs dinstanciation de valeurs. Mais cette
fois, on ne revient que sur la valeur incompatible la plus rcente et on ne remet pas en cause les autres
variables dj instancies. Ainsi, il sagit plus dune rparation que dun retour arrire.
Exemple A.17. [Gin93] DBT pour une 3-coloration dun graphe :
t
e
l
-
0
0
5
6
0
9
6
3
,
v
e
r
s
i
o
n
1
-
3
1
J
a
n
2
0
1
1
ANNEXE A 127
Aectant 1 A, 2 B, 3 C puis 3 D, il ny a plus aucune valeur possible pour E. D tant la variable
la plus rcemment aecte, on revient sur sa valeur 3, rendue inconsistante du fait des valeurs de A
et B. A nouveau il ny a plus aucune valeur possible pour D puisque 3 vient de devenir impossible
aecter on revient donc sur B la variable explicative la plus rcemment aecte, pour laquelle la valeur
2 devient inconsistante. Au prochain pas, on devra lui aecter une autre valeur sans revenir entre temps
sur la valeur de C.
Algorithmes rtro-prospectifs
Enn, la troisime catgorie dalgorithme de recherche est celle des algorithmes rtro-prospectifs,
qui conjuguent les proprits des deux prcdentes catgories. Lalgorithme MAC-CBJ, par exemple,
intgre au CBJ le maintien de la consistance darc, mais en pratique il est rarement plus ecace que
MAC. Cela nest pas le cas de lalgorithme MAC-DBT qui adjoint le maintien de la consistance darc au
retour-arrire dynamique [JDB00] : cet algorithme se base sur la notion dexplication au sens de cause
dune inconsistance qui y semble trs prometteuse en ce qui concerne lamlioration de lecacit des
stratgies de recherche.
t
e
l
-
0
0
5
6
0
9
6
3
,
v
e
r
s
i
o
n
1
-
3
1
J
a
n
2
0
1
1
t
e
l
-
0
0
5
6
0
9
6
3
,
v
e
r
s
i
o
n
1
-
3
1
J
a
n
2
0
1
1
BIBLIOGRAPHIE
[Apt00] Arr K. R. : The role of commutativity in constraint propagation algorithms. ACM Tran-
sactions on Programming Languages and Systems 22 (2000), 10021036.
[Apt03] Arr K. : Principles of Constraint Programming. Cambridge University Press, New York,
NY, USA, 2003.
[AW07] Arr K. R., Wxiixcr M. : Constraint Logic Programming using Eclipse. Cambridge
University Press, New York, NY, USA, 2007.
[AZ03] Arr K. R., Zorrrwrrs P. : A comparative study of arithmetic constraints on integer inter-
vals. In Apt, Fages, Rossi, Szeredi, Vncza (Eds.) Recent Advances in Constraints, LNAI
3010 (2003), Springer-Verlag, pp. 124.
[AZ07] Arr K. R., Zorrrwrrs P. : An analysis of arithmetic constraints on integer intervals.
Constraints 12, 4 (2007), 429468.
[Bar] Bxarxk R. : Online guide to constraint programming (1998). http ://kti.m.cuni.cz/
bartak/constraints/. Visit le 15 Mai 2010.
[Bar99] Bxarxk R. : Constraint programming : In pursuit of the holy grail. In Proceedings of
WDS99 (invited lecture) (1999), pp. 555564.
[BCDP07] Briurcrxxt N., Cxaissox M., Drmxssr. S., Prrrr T. : Global constraint catalogue : Past,
present and future. Constraints 12, 1 (2007), 2162.
[BDM03] Btssrrck M. R., Datu A. S., Mrraxts A. : Minlplib - a collection of test models for
mixed-integer nonlinear programming. INFORMS Journal on Computing 15, 1 (2003),
114119.
[Ber95] Braixxurra P. : Improving domain ltering using restricted path consistency. In Procee-
dings of IEEE CAIA-95 (1995).
[Bes94] Brssr` rar C. : Arc-consistency and arc-consistency again. Articial Intelligence 65 (1994),
179190.
[Bes06] Brssr` rar C. : Constraint propagation. In Handbook of Constraint Programming (2006),
Elsevier.
[BFR99] Brssrrar C., Fartura E. C., Rrorx J. : Using constraint metaknowledge to reduce arc
consistency computation. Articial Intelligence 107 (1999), 125148.
[BG06] Brxnxmot F., Gaxxvriirras L. : Continuous and interval constraints. In Handbook of
Constraint Programming (2006), Elsevier, pp. 592624.
[BGGP99] Brxnxmot F., Gotxixau F., Gaxxvriirras L., Ptorr J.-F. : Revising hull and box consis-
tency. In International Conference on Logic Programming (ICLP99) (1999).
[BLL
09] Briorrr P., Lrr J., Lrararr L., Mxaoor F., Wxcnrra A. : Branching and bounds tighte-
ningtechniques for non-convex minlp. Optimization Methods Software 24, 4-5 (2009),
597634.
129
t
e
l
-
0
0
5
6
0
9
6
3
,
v
e
r
s
i
o
n
1
-
3
1
J
a
n
2
0
1
1
130 BIBLIOGRAPHIE
[BMV94] Brxnxmot F., McAiirsrra D., Vxx Hrxrrxa.ck P. : Clp(intervals) revisited. In ILPS94
(International Symposium on Logic Programming) (Ithaca, NY, USA, 1994), The MIT
Press.
[BMVH94] Brxnxmot F., McAiirsrra D., Vxx-Hrxrrxa.ck P. : Clp(intervals) revisited. In Procee-
dings of the International Symposium on Logic Programming (1994), pp. 124138.
[BSG
10] Braora N., Soro R., Goiuszrrsx A., Cxao S., Cxauot P. : Finding the maximal pose error
in robotic mechanical systems using constraint programming. In Proceedings of IEAAIE
2010 (2010).
[BVH97] Brxnxmot F., Vxx Hrxrrxa.ck P. : Introduction to the special issue on interval
constraints. Constraints 2 (1997), 107112.
[CC09] Cxauot P., Cxao S. : The Kinematic Sensitivity of Robotic Manipulators to Manufactu-
ring Errors. Tech. rep., IRCCyN, Internal Report No RI2009_4, 2009.
[CDR99] Coiixvrzzx H., Drioari F., Rtrnra M. : Comparing Partial Consistencies. Reliable Com-
puting 5, 3 (1999), 213228.
[Che07] Cnrxotxau R. : Rsolution par satisfaction de contraintes applique laide la d-
cision en conception architecturale. PhD thesis, cole Nationale Suprieure dArts et
Mtiers de Bordeaux, 2007.
[Cle87] Cirxa. J. G. : Logical arithmetic. Future Computing Systems 2, 2 (1987), 125147.
[CLPP05] Cxsxs-Lrzx J., Prxro J. M., Pxrxoroaorot L. G. : Mixed integer optimization for cyclic
scheduling of multiproduct plants under exponential performance decay. Chemical engi-
neering research & design 83, 10 (2005), 12081217.
[CR97] Csrxurs T., Rxrz D. : Subdivision direction selection in interval methods for global opti-
mization. SIAM Journal on Numerical Analysis 34 (1997), 922938.
[CTN04] Cnxarar G., Taomarrroxr G., Nrvrt B. : New light on arc consistency over continuous
domains. In International workshop on Constraint Propagation and Implementation. At
CP conference (2004).
[CTN05] Cnxarar G., Taomarrroxr G., Nrvrt B. : Box-set consistency for interval-based
constraint problems. In SAC (2005), pp. 14391443.
[DB97a] Draat.xr R., Brssr` rar C. : From restricted path consistency to max-restricted path
consistency. In Proceedings of Third International Conference on Principles and Prac-
tice of Constraint Programming (1997), pp. 312326.
[DB97b] Draat.xr R., Brssr` rar C. : Some practicable ltering techniques for the constraint satis-
faction problem. In Proceedings of IJCAI-97 (1997), pp. 412417.
[Deb00] Draat.xr R. : A property of path inverse consistency leading to an optimal pic algorithm.
In Proceedings ECAI00 (2000), pp. 8892.
[Deb01] Draat.xr R. : Domain ltering consistencies. Journal of Articial Intelligence Research
14 (2001), 205230.
[Deb05] Draat.xr R. : Cours de Master sur les rseaux de contraintes domaines discrets, Facult
des sciences et techniques, Nantes, 2005.
[Dec92] Drcnrra R. : Constraint networks. In Encyclopedia of Articial Intelligence (1992),
Wiley and Sons.
t
e
l
-
0
0
5
6
0
9
6
3
,
v
e
r
s
i
o
n
1
-
3
1
J
a
n
2
0
1
1
BIBLIOGRAPHIE 131
[Dec03] Drcnrra R. : Constraint Processing. Morgan Kaufman, 2003.
[DG86] Dtaxx M. A., Gaossmxxx I. E. : An outer-approximation algorithm for a class of mixed-
integer nonlinear programs. Mathematical Programming 36, 3 (1986), 307339.
[DGDG95] Dra K., Go.xi M., Dra K., Go.xi M. : Optimizing engineering designs using a com-
bined genetic search. In Proceedings of the Sixth International Conference on Genetic
Algorithms (1995), pp. 521528.
[DH55] Drxxvrr J., Hxarrxarao R. : A Kinematic Notation for Lower-Pair Mechanisms Based
on Matrices. ASME Journal of Applied Mechanics 23 (1955), 215221.
[DP88] Drcnrra R., Prxai J. : Network-based heuristics for constraint satisfaction problems.
Articial Intelligence 34 (1988), 138.
[Fal94] Fxirrxos B. : Arc-consistency for continuous variables. Articial Intelligence 65, 2
(1994), 363376.
[FE96] Fartura E. C., Eirr C. D. : Neighborhood inverse consistency preprocessing. In Procee-
dings of AAAI-96 (1996), pp. 202208.
[FGK02] Fotara R., Gx. D. M., Kraxronxx B. W. : AMPL : A Modeling Language for Mathema-
tical Programming. Duxbury Press, November 2002.
[FHJ
05] Farscn A. M., Hxavr. W., Jrrrrasox C., Mxarrxrz-nrax xxurz B., Mrotri I. : The es-
sence of ESSENCE : A constraint language for specifying combinatorial problems. In
Proceedings of the 20th International Joint Conference on Articial Intelligence (2005),
pp. 7388.
[FM06] Fartura E., Mxckwoarn A. : Constraint satisfaction : An emerging paradigm. In Hand-
book of Constraint Programming (2006), Elsevier, pp. 1327.
[Fre78] Fartura E. C. : Synthesizing constraint expressions. Communications of the ACM 21, 11
(1978), 958966.
[Fre85] Fartura E. C. : A sucient condition for backtrack-bounded search. Journal of the ACM
32, 4 (1985), 755761.
[Fre97] Fartura E. C. : In pursuit of the holy grail. Constraints 2, 1 (1997), 5761.
[Fr09] Fa tnwrarn T. : Constraint Handling Rules. Cambridge University Press, 2009.
[FS98] Fooxaxs. A., Smrrn M. : The Inuence of Manufacturing Tolerances on the Kinematic
Performance of Mechanisms. In Proceedings of the Institution of Mechanical Engineers
- Part C : Mechanical Engineering Science (1998), pp. 3547.
[Gal85] Gxiixrar H. : Logic programming : Further developments. In SLP (1985), pp. 8896.
[GAM] Gams. http ://www.gams.com/. Visit le 12 Septembre 2010.
[GB06] Gaxxvriirras L., Brxnxmot F. : Algorithm 852 : Realpaver : an interval solver using
constraint satisfaction techniques. ACM Transactions on Mathematical Software 32, 1
(2006), 138156.
[Gel98] Griir E. : On the generation of locally consistent solution spaces in mixed dynamic
constraint problems. PhD thesis, Ecole polytechnique fdrale de Lausanne EPFL, Lau-
sanne, 1998.
[GF03] Griir E., Fxirrxos B. : Solving mixed and conditional constraint satisfaction problems.
Constraints 8 (2003), 107141.
t
e
l
-
0
0
5
6
0
9
6
3
,
v
e
r
s
i
o
n
1
-
3
1
J
a
n
2
0
1
1
132 BIBLIOGRAPHIE
[GH88] G tsorx H.-W., Hrarzarao J. : Some fundamental properties of local constraint propaga-
tion. Articial Intelligence 36 (1988), 237247.
[Gin93] Grxsarao M. L. : Dynamic backtracking. Journal of Articial Intelligence Research 1, 1
(1993), 2546.
[GJM06] Grxr I. P., Jrrrrasox C., Mrotri I. : Minion : A fast scalable constraint solver. In Procee-
dings of ECAI 2006 (2006), pp. 98102.
[GMR07] Grxr I. P., Mrotri I., Rrxui A. : Tailoring solver-independent constraint models : A case
study with ESSENCE and Minion. In Proceedings of the 7th International Symposium
on Abstraction, Reformulation and Approximation (2007), pp. 1821.
[Gou00] Gotxixau F. : Langages et Environnements en Programmation par Contraintes dInter-
valles. PhD thesis, Ecole Doctorale : Sciences pour lIngnieur, Nantes, 2000.
[Gra05] Gaxxvriirras L. : Cours de Master sur les contraints numriques, Facult des sciences et
techniques, Nantes, 2005.
[GW99] Grxr I., Wxisn T. : CSPLib : a benchmark library for constraints. Tech. rep., Techni-
cal report APES-09-1999, 1999. Available from http ://csplib.cs.strath.ac.uk/. A shorter
version appears in the Proceedings of the 5th International Conference on Principles and
Practices of Constraint Programming (CP-99).
[Hal35] Hxii P. : On representatives of subsets. Journal of the London Mathematical Society 10
(1935), 2630.
[Han92] Hxxsrx E. : Global Optimization Using Interval Analysis. Marcel Dekker, New York,
1992.
[HDmT92] Hrxrrxa.ck P. V., Drvriir Y., mxx Trxo C. : A generic arc-consistency algorithm and its
specializations. Articial Intelligence 57 (1992), 291321.
[HE80] Hxaxirck R., Eiirorr G. : Increasing tree search eciency for constraint satisfaction
problems. Articial Intelligence, 14 (1980), 263313.
[Heu06] Hrtscn M. : Modlisation et rsolution dune application daide au dploiement dan-
tennes radio en programmation par contraintes sur le discret et le continu. PhD thesis,
UFR Sciences et Techniques, Universit de Nantes, 2006.
[HMK97] Hrxrrxa.ck P. V., McAiirsrra D., Kxrta D. : Solving polynomial systems using a
branch and prune approch. SIAM Journal on Numerical Analysis 34, 2 (1997), 797827.
[Hoo02] Hookra J. N. : Logic, optimization and constraint programming. INFORMS Journal on
Computing 14 (2002), 295321.
[Hoo06] Hookra J. : Operations research methods in constraint programming. In Handbook of
Constraint Programming (2006), Elsevier, pp. 521564.
[Hoo07] Hookra J. N. : Integrated Methods for Optimization, vol. 100 of International Series in
Operations Research & Management Science. Springer, 2007.
[HS05] Hoos H. H., Sr trzir T. : Stochastic Local Search : Foundations and Applications. Mor-
gan Kaufmann Publishers, 2005.
[HSG01] Horsrrur P., Srrrrar D., Gournxaur E. : A framework for cooperating solvers - a pro-
totypic implementation. In Proceedings of the Workshop on Cooperative Solvers in
Constraint Programming - CoSolv. At the Seventh International Conference on Principles
and Practice of Constraint Programming (2001).
t
e
l
-
0
0
5
6
0
9
6
3
,
v
e
r
s
i
o
n
1
-
3
1
J
a
n
2
0
1
1
BIBLIOGRAPHIE 133
[HT06] Hoos H. H., Tsxxo E. : Local search methods. In Handbook of Constraint Programming
(2006), Elsevier, pp. 135167.
[HWPS98] Hxastxkoskr I., Wrsrraitxu T., P oax R., Skarrvxas H. : Dierent transformations for
solving non-convex trim-loss problems by MINLP. European Journal of Operational
Research 105, 3 (1998), 594603.
[IEE85] IEEE Txsk P754 : ANSI/IEEE 754-1985, Standard for Binary Floating-Point Arithmetic.
IEEE, New York, Aug. 12 1985.
[Inn02] Ixxocrxrr C. : Kinematic Clearance Sensitivity Analysis of Spatial Structures With Re-
volute Joints. ASME Journal of Mechanical Design 124 (2002), 5257.
[JDB00] Jtssrrx N., Draat.xr R., Borztmxtir P. : Maintaining arc-consistency within dynamic
backtracking. In Principles and Practice of Constraint Programming (2000), pp. 249
261.
[JL87] Jxrrxa J., Lxssrz J.-L. : Constraint logic programming. In POPL (1987), pp. 111119.
[Kea96] Krxarorr R. : Rigorous Global Search : Continuous Problems. Kluwer Academic Publi-
shers, Dordrecht, Netherlands, 1996.
[Kei] Krrrn M. : The alphametics page. http ://www.mathematik.uni-bielefeld.de/sillke/
puzzles/alphametic/alphametic-mike-keith.html. Visit le 20 avril 2010.
[KK94] Kxxxxx B. K., Kaxmra S. N. : An augmented lagrange multiplier based method for
mixed integer discrete continuous optimization and its applications to mechanical design.
ASME Journal of Mechanical Design (1994), 116318.
[Lab00] Lxatarnr F. : Choco : Implementing a cp kernel. In CP00 Post Conference Workshop on
Techniques for Implementing Constraint programming Systems (TRICS) (2000).
[Law76] Lxwira E. : Combinatorial Optimization : Networks and Matroids. Holt, Rinehart and
Winston, New-York, 1976.
[Lho93] Lnommr O. : Consistency techniques for numeric csp. In IJCAI 1993 (1993).
[LMR07] Lraaxn Y., Mrcnri C., Rtrnra M. : An Ecient and Safe Framework for Solving Opti-
mization Problems. Journal of Computational and Applied Mathematics 199, 2 (2007),
372377. Special Issue on Scientic Computing, Computer Arithmetic, and Validated
Numerics (SCAN 2004).
[LOQTvB03] L orrz-Oarrz A., Qtrmrra C.-G., Taomr J., vxx Brrk P. : A fast and simple algorithm
for bounds consistency of the alldierent constraint. In Proceedings of the Eighteenth
International Joint Conference on Articial Intelligence (2003), pp. 245250.
[Mac77] Mxckwoarn A. K. : Consistency in networks of relation. Articial Intelligence 8 (1977),
99118.
[MF85] Mxckwoarn A. K., Fartura E. C. : The complexity of some polynomial network consis-
tency algorithms for constraint satisfaction problems. Articial Intelligence 25 (1985),
6574.
[MH86] Mona R., Hrxurasox T. C. : Arc and path consistency revisited. Articial Intelligence 28
(1986), 225233.
[MLS94] Mtaax. R., Lr Z., Sxsra. S. : A Mathematical Introduction to Robotic Manipulation.
CRC, Boca Raton, Fl., 1994.
t
e
l
-
0
0
5
6
0
9
6
3
,
v
e
r
s
i
o
n
1
-
3
1
J
a
n
2
0
1
1
134 BIBLIOGRAPHIE
[Mon74] Moxrxxxar U. : Networks of constraints : Fundamental properties and application to
picture processing. Information Sciences 7, 3 (1974), 95132.
[Mon07] Moxrrmxxxr R. : A mixed integer programming formulation for the total ow time single
machine robust scheduling problem with interval data. Journal of Mathematical Model-
ling and Algorithms 6, 2 (2007), 287296.
[Moo66] Mooar R. E. : Interval Analysis. Prentice-Hall, 1966.
[Moo79] Mooar R. E. : Methods and Applications of Interval Analysis. Society for Industrial and
Applied Mathematics, Philadelphia, PA, USA, 1979.
[MR91] Moxrxxxar U., Rossr F. : Constraint relaxation may be perfect. Articial Intelligence 48
(1991), 143170.
[MR99] Moxrao. E., Rrr. J.-H. : Chaotic iteration for distributed constraint propagation. In
Proceedings of the 1999 ACM Symposium on Applied Computing (1999), pp. 1924.
[MZL09] Mrxo J., Znxxo D., Lr Z. : Accuracy Analysis of Parallel Manipulators With Joint Clea-
rance. ASME Journal of Mechanical Design 131 (2009).
[Neu04] Nrtmxrra A. : Complete search in continuous global optimization and constraint satis-
faction. Acta Numerica 13 (2004), 271369.
[OV90] Oiura W., Vriirxo A. : Extending prolog with constraint arithmetic on real intervals. In
Canadian Conference on Computer & Electrical Engineering (1990).
[Pro93] Paossra P. : Domain ltering can degrade intelligent backtrack search. In Proceedings
IJCAI93 (1993), pp. 262267.
[Pug98] Ptorr J.-F. : A fast algorithm for the bound consistency of alldi constraints. In
AAAI/IAAI (1998), pp. 359366.
[QGH
99] Qtrsr A., Grrmrar R. V., Hooorxaoom J., Iiirsr T., Kirak E. D., Roos C., Trakxi. T. :
Finding optimal nuclear reactor core reload patterns using nonlinear optimization and
search heuristics. Engineering Optimization 32, 2 (1999), 143176.
[Rai08] Rxrsra F. : Semi-automatic generation of CHR solvers for global constraints. In CP
08 : Proceedings of the 14th international conference on Principles and Practice of
Constraint Programming (2008), pp. 588592.
[Rg94] R rorx J.-C. : A ltering algorithm for constraints of dierence in csps. In Proceedings of
the Twelfth National Conference on Articial Intelligence (1994), pp. 362367.
[RJL
08] Rocnxar G., Jtssrrx N., Loacx X., Patunommr C., Cxmaxzxau H., Rrcnxtu G., Mrxxxx
J., Mxixrrar A. : Choco : an open source java constraint programming library. In Pro-
ceedings of the 3rd International CSP Solver Competition (2008), pp. 713.
[ROM09] Rroio R., ORrrii. U.-M., McCoxxon. T. : Genetic Programming Theory and Practice
VII. Springer Publishing Company, Incorporated, 2009.
[Rum88] Rtmr S. M. : Algorithms for veried inclusionstheory and practice. In Reliability in
computing : the role of interval methods in scientic computing (San Diego, CA, USA,
1988), Academic Press Professional, Inc., pp. 109126.
[RvBW06] Rossr F., vxx Brrk P., Wxisn T. : Introduction. In Handbook of Constraint Programming
(2006), Elsevier, pp. 312.
[SCDRA] Sxxros-Cosrx V., Dxmxs L., Rrrs R., Azrvruo R. : The Yap Prolog User Manual, 2000.
http ://www.ncc.up.pt/vsc/yap. Visit le 19 septembre 2010.
t
e
l
-
0
0
5
6
0
9
6
3
,
v
e
r
s
i
o
n
1
-
3
1
J
a
n
2
0
1
1
BIBLIOGRAPHIE 135
[SF94] Sxarx D., Fartura E. C. : Contradicting conventional wisdom in constraint satisfaction.
In Proceedings of ECAI94 (1994).
[Sin96] Srxon M. : Path consistency revisited. International Journal on Articial Intelligence
Tools 5, 1-2 (1996), 127141.
[Sut63] Strnraixxu I. E. : Sketchpad, A Man-Machine Graphical Communication System. Outs-
tanding Dissertations in the Computer Sciences. Garland Publishing, New York, 1963.
[Tac09] Txck G. : Constraint Propagation Models, Techniques, Implementation. Doctoral dis-
sertation, Saarland University, Jan. 2009.
[TS02] Txwxamxixxr M., Sxnrxrurs N. V. : Convexication and Global Optimization in Conti-
nuous And. Kluwer Academic Publishers, Norwell, MA, USA, 2002.
[Tsa92] Tsxxo E. : Problem solving with genetic algorithms. Science and Engineering Magazine,
University of Essex Publication, 6 (1992), 1417.
[vH01] vxx Horvr W.-J. : The all_dierent constraint : A survey. CoRR cs.PL/0105015 (2001).
[VHMD97] Vxx-Hrxrrxa.ck P., Mrcnri L., Drvriir Y. : Numerica : A Modeling Language for Global
Optimization. The MIT Press, Cambridge, MA, USA, 1997.
[Wal72] Wxirz D. L. : Generating semantic descriptions from drawings of scenes with shadows.
In The psychology of computer vision (1972), Winston P., (Ed.), New York : McGraw-
Hill, pp. 1991.
[Wal75] Wxirz D. L. : Understanding line drawings of scenes with shadows. In Psychology of
Computer vision (1975), New York : McGraw-Hill.
[WNS97] Wxiixcr M., Novriio S., Scnrmrr. J. : ECLiPSe : A Platform for Constraint Logic Pro-
gramming. Tech. rep., IC-Parc, Imperial College, London, 1997.
t
e
l
-
0
0
5
6
0
9
6
3
,
v
e
r
s
i
o
n
1
-
3
1
J
a
n
2
0
1
1
t
e
l
-
0
0
5
6
0
9
6
3
,
v
e
r
s
i
o
n
1
-
3
1
J
a
n
2
0
1
1
LISTE DES TABLEAUX
3.1 Temps de rsolution (secondes) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
4.1 Rcapitulatif des capacits de modlisation des solveurs compars. . . . . . . . . . . . . 54
4.2 Temps de rsolution en secondes (premire ligne) et nombre de branchement sur en-
tier/rel en milliers (deuxime ligne). . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
5.1 Pour chaque problme, #var donne le nombre variables discrtes/continues dans le mo-
dle utilisant la contrainte alldifferent , et #sol reprsente le nombre de solutions
au problme. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
5.2 Temps de rsolution en secondes (premire ligne) et nombre de branchements sur va-
riable entire/relle en milliers (seconde ligne). . . . . . . . . . . . . . . . . . . . . . . 81
5.3 Temps de rsolution en secondes (premire ligne) et nombre de branchements sur va-
riable entire/relle en milliers (seconde ligne). . . . . . . . . . . . . . . . . . . . . . . 83
5.4 Temps de rsolution en secondes (premire ligne) et nombre de branchements sur va-
riable entire/relle en milliers (seconde ligne). . . . . . . . . . . . . . . . . . . . . . . 84
6.1 Temps de rsolution et nombre de dcoupages pour le Problme A. . . . . . . . . . . . . 99
6.2 Temps de rsolution et nombre de dcoupages pour le Problme B. . . . . . . . . . . . . 101
137
t
e
l
-
0
0
5
6
0
9
6
3
,
v
e
r
s
i
o
n
1
-
3
1
J
a
n
2
0
1
1
t
e
l
-
0
0
5
6
0
9
6
3
,
v
e
r
s
i
o
n
1
-
3
1
J
a
n
2
0
1
1
TABLE DES FIGURES
2.1 [Gou00] valuation de f (x) = (x
6
/41, 9x
5
+0, 25x
4
+20x
3
17x
2
55, 6x +48)/50 en
forme naturelle (gauche), en forme de Braxsrrrx (droite), pour une largeur dintervalle
unitaire de 0,02. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
3.1 [BSG