Actes JFPC 2013
Un Algorithme Optimal de Filtrage pour
Contraintes Table
Jean-Baptiste Mairy1Pascal Van Hentenryck2Yves Deville1
1ICTEAM, Universit´e catholique de Louvain, Belgique
2Optimization Research Group, NICTA, University of Melbourne, Australia
{jean-baptiste.mairy,yves.deville}@uclouvain.be [email protected]
esum´e
Les algorithmes de filtrage pour les contraintes table
sont g´en´eralement bas´es sur les contraintes, ce qui si-
gnifie que la queue de propagation ne contient que des
informations sur les contraintes qui doivent ˆetre reconsi-
d´er´ees. Cet article 1propose quatre algorithmes efficaces
pour des contraintes table bas´es sur les valeurs, ce qui
signifie que la queue de propagation contient ´egalement
des informations sur les valeurs retir´ees. L’un de ces al-
gorithmes (AC5TC-Tr) a une complexit´e en temps prou-
v´ee optimale de O(r·t+r·d)par contrainte table.
Des r´esultats exp´erimentaux montrent que, sauf sur les
instances purement al´eatoires, tous nos algorithmes sont
deux ou trois fois plus rapides que l’´etat de l’art (STR2+
et MDDC).
1 Introduction
Les algorithmes de domaine consistance peuvent g´en´e-
ralement ˆetre class´ees comme bas´e sur les contraintes
(la queue de propagation ne contient que des infor-
mations sur les contraintes qui doivent ˆetre reconsi-
d´er´ees) ou bas´ee sur les valeurs (les valeurs retir´ees
des domaines sont ´egalement stock´ees dans la queue
de propagation). Pour les contraintes tables, qui ont
fait l’objet de nombreuses recherches au cours de ces
derni`eres ann´ees, tous les algorithmes existants avec
une impl´ementation (sauf dans [14]) sont bas´es sur
les contraintes. Ce papier propose quatre algorithmes
originaux bas´es sur les valeurs pour contraintes table,
qui sont touts des instances de l’algorithme g´en´erique
AC5. Les propagateurs propos´ees dans ce papier main-
tiennent, pour chaque valeur des variables, l’index de
1. Ce papier a ´et´e publi´e `a CP2012, octobre 2012 `a Qu´ebec
City
son premier support valide dans la table. Ils utilisent
´egalement, pour chaque variable et chaque tuple, l’in-
dice du tuple suivant ayant la mˆeme valeur pour cette
variable. Les algorithmes diff`erent dans leur utilisa-
tion de l’information sur la validit´e des tuples. Trois
des algorithmes propos´es ont une complexit´e en temps
de O(r2·t+r·d) par contrainte table et l’un d’eux
(AC5TC-Tr) a une complexit´e temporelle optimale de
O(r·t+r·d), o`u rest l’arit´e de la table, dla taille
du plus grand domaine et tle nombre de tuples de la
table. Un des algorithmes propos´es, AC5TC-Recomp,
est le propagateur table (non publi´e) du syst`eme Co-
met.
Les r´esultats exp´erimentaux montrent que, sur les ins-
tances non-al´eatoires, nos algorithmes am´eliorent les
propagateurs ´etat de l’art STR2+ [11] et MDDC [3].
Notre algorithme (th´eoriquement) optimal n’est pas
toujours le plus rapide en pratique. Fait ineressant,
sur les tables purement al´eatoires, nos algorithmes ne
sont pas comp´etitifs par rapport `a STR2+ et MDDC.
Comme la plupart des probl`emes r´eels ne sont pas pu-
rement al´eatoires, nous pensons que nos algorithmes
repr´esentent une contribution int´eressante. Le reste de
cet article est organis´e comme suit. La section 2 pr´e-
sente le contexte et travaux apparenes. La section 3
d´ecrit les deux premiers propagateurs pour contraintes
table. La section 4 pr´esente notre propagateur optimal,
tandis que la section 5 propose une variante efficace de
nos premiers algorithmes. La Section 6 d´ecrit les r´esul-
tats exp´erimentaux.
2 Contexte
Un CSP (X,D(X), C) se compose d’un ensemble de
nvariables X={x1,. . . ,xn}, d’un ensemble de do-
maines D(X) = {D(x1), . . . ,D(xn)}o`u D(x) est
l’ensemble des valeurs possibles pour la variable x,
et d’un ensemble de contraintes C={c1,. . . ,ce},
o`u Vars(ci)X(1 ie). Nous avons pour
convention que d=max1in(#D(xi)) et D(X)xi=a
est l’ensemble des tuples vdans D(X) o`u vi=a.
Etant donn´e Y={x1,. . . ,xk} ⊆ X, l’ensemble des
tuples dans D(x1)× · · · × D(xk) est not´e D(X)[Y]
ou simplement D(Y). Un support dans une contrainte
cpour une paire variable-valeur (x,a) est un tuple
vD(Vars(c)) tel que c(v) et v[x] = a. Les en-
sembles suivants (inconsistants et consistants) sont
utiles pour sp´ecifier la domaine consistance et les al-
gorithmes de propagation. Soit cune contrainte d’un
CSP (X,D(X), C) avec yVars(c) et B(X) un do-
maine quelconque.
Inc(c,B(X)) = {(x,a)|xVars(c)aD(x)
vB(Vars(c))x=a:¬c(v)}
Cons(c,y,b) = {(x,a)|xVars(c)aD(x)
v:v[x] = av[y] = bc(v)}
Inc(c) = Inc(c,D(X))
Une contrainte cdans un CSP (X,D(X), C) est
domaine consistante ssi Inc(c) = . Un CSP
(X,D(X), C) est domaine consistant ssi toutes ses
contraintes sont domaine consistantes.
Contraintes Table. ´
Etant donn´e un ensemble de
tuples Td’arit´e r, une contrainte table csur T
est respect´ee si (x1,. . . ,xr)T. La taille td’une
contrainte table cest le nombre de lignes de sa table,
not´e c.length. Nous supposons un ordre implicite des
tuples : σc,id´esigne le ieme ´el´ement de la table de c
et σc,i[x] est la valeur de σc,ipour la variable x. Nous
introduisons une valeur maximale >(resp. valeur mi-
nimale ) sup´erieure (resp. inf´erieure) `a toute autre
valeur. Nous introduisons ´egalement un tuple univer-
sel σc,>, avec σc,>[x] = pour tout xXet pos-
tulons par abus de notation que aD(x), =a.
Cela implique que, pour toute table T,σc,>T. Pour
une contrainte table, nous disons qu’un tuple σest
autoris´ee si il appartient `a la table. Un tuple σest
valide si toutes ses valeurs appartiennent au domaine
des variables correspondantes. Pour atteindre la do-
maine consistance, il faut au moins v´erifier la validit´e
de chaque tuple de la table et, dans le pire des cas,
supprimer toutes les valeurs des domaines. Un algo-
rithme de domaine consistance a donc une complexit´e
temporelle en Ω(r·t+r·d) par contrainte table dans
le pire des cas. Un algorithme de type AC5 avec une
complexit´e en O(r·t+r·d) par contrainte table est
donc optimal. Comme toujours pour ces algorithmes,
si un algorithme de domaine consistance a une com-
plexit´e temporelle en O(f), alors la complexit´e tempo-
relle globale des ex´ecutions de cet algorithme le long
de tout chemin dans l’arbre de recherche est ´egalement
en O(f).
Travaux Apparent´es. Beaucoup d’efforts de re-
cherche ont ´et´e consacr´es aux contraintes table. Les
propagateurs existants peuvent ˆetre class´es en 3 cat´e-
gories : bas´es sur les indexes, bas´es sur la compression,
et bas´es sur une table dynamique. Les approches ba-
s´ees sur les indices utilisent une indexation de la table
pour acc´el´erer son parcours. Des exemples de tels pro-
pagateurs sont GAC3-allowed, et autres variantes ba-
s´ees sur les contraintes (GAC3rm-allowed, GAC2001-
allowed) [10, 1, 12, 6]. Pour chaque litt´eral (x,a), la
structure de donn´ees d’index a un tableau des indices
de tuples o`u xprend la valeur a. La complexit´e spatiale
de la structure de donn´ees est O(r·t). La complexit´e
temporelle de GAC3-allowed est en O(r3·d·t+r·d2) par
contrainte table. GAC2001-allowed a une complexit´e
temporelle de O(r3·d·t+r2·t) par contrainte table.
L’indexation peut ´egalement ˆetre utilis´ee dans les pro-
pagateurs bas´es sur les valeurs. Dans [14], les auteurs
proposent un propagateur bas´e sur les valeurs pour
contraintes table impementant GAC6. Il utilise une
structure indexant, pour chaque paire variable-valeur
(x,a), et chaque tuple, le tuple suivant dans la table
avec acomme valeur pour x. La complexit´e spatiale de
cette structure de donn´ees est en O(r·d·t). Cette com-
plexit´e spatiale peut ˆetre r´eduite en utilisant une struc-
ture de donn´ees appel´ee hologramme [13]. Un autre
type d’index, propos´e dans [7], indexe, pour chaque
tuple et variable, le prochain tuple de la table ayant
une valeur diff´erente pour la variable. Les propaga-
teurs bas´es sur la compression comprimment la table
sous une forme qui permet de la traverser rapidement.
L’une de ces formes comprim´ees utilise un trie pour
chaque variable [7]. Un autre exemple de propagateurs
utilisant la compression [3, 2] utilise un Diagrame de
D´ecision Multi-Valu´e (MDD) pour repr´esenter la table
de mani`ere plus efficace. Au cours de la propagation,
les tries ou les MDD sont parcourus en utilisant les
domaines courants pour effectuer le pruning. Ces algo-
rithmes sont bas´es sur les contraintes et ont une com-
plexit´e tmporelle de O(r2·d·t) par contrainte table.
Compression et parcours rapide peuvent aussi ˆetre ob-
tenus en utilisant des tuples compress´es, repr´esentant
chacun un ensemble de tuples [8, 17]. Les propagateurs
bas´es sur des tables dynamiques maintiennent la table
de la contrainte en en supprimant les tuples invalides.
L’algorithme STR [18] et sa version am´elior´ee, STR2
[11], sont bas´es sur les contraintes et parcourent uni-
quement les tuples pr´ec´edemment valides pour extraire
de la table les valeurs domaine consistantes. La com-
plexit´e temporelle de STR2 est en O(r2·d2+r2·d·t) par
contrainte table. Le propagateur pour contrainte table
de or-tool [16] maintient ´egalement un tableau dyna-
mique. Il utilise un bitset sur les tuples de la table
afin de maintenir leur validit´e. Un bitset par litt´eral
(x,a) est ´egalement utilis´e pour faciliter l’acc`es aux
tuples avec acomme valeur pour x. Ce propagateur a
une complexit´e temporelle en O(r·d·t) par contrainte
table.
L’Algorithme AC5. AC5 [20, 4] est un algorithme
g´en´erique de domaine consistance bas´e sur les valeurs.
Dans une approche bas´ee sur les valeurs, de l’informa-
tion sur les valeurs supprim´ees sont ´egalement stocees
dans la queue de propagation. La Sp´ecification 1 d´e-
crit les m´ethodes principales d’AC5, qui utilisent une
queue Qde propagation contenant des triplets (c,x,a),
indiquant que la domaine consistance de la contrainte
cdoit ˆetre reconsid´er´ee car la valeur aa ´et´e retir´ee
de D(x). Lorsqu’une valeur est supprim´ee dans un do-
maine, la m´ethode enqueue met dans la queue de pro-
pagation les informations n´ecessaires. Dans la post-
condition, Qorepr´esente la valeur de Qau moment
de l’appel. La m´ethode post(c,4) est appel´ee une fois
lors du post de la contrainte. Elle calcule les valeurs
inconsistantes de la contrainte cet initialise les struc-
tures de donn´ees sp´ecifiques n´ecessaires pour la propa-
gation. Tant que (c,x,a) est pr´esent dans la queue de
propagation, il est algorithmiquement souhaitable de
consid´erer que la valeur aest toujours dans D(x) du
point de vue de la contrainte c. Ce concept est captur´e
par la d´efinition suivante.
efinition 1 La vue locale d’un domaine D(x)par
rapport `a une queue de propagation Qpour une
contrainte cest d´efinie comme D(x,Q,c) = D(x)
{a|(c,x,a)Q}.
Pour des contraintes table, un triplet σest Q-valide
si toutes ses valeurs appartiennent `a D(X,Q,C). La
m´ethode centrale de AC5 est la m´ethode valRemove,
o`u l’ensemble 4est l’ensemble des valeurs devenant
inconsistentes parce que best supprim´e de D(y). Dans
la sp´ecification, best une valeur qui n’est plus dans
D(y) et valRemove calcule les valeurs (x,a) qui ne
sont plus support´ees dans la contrainte c `a cause de
la suppression de bde D(y). Les valeurs dans la queue
sont toujours consid´er´ees comme supports potentiels
tant que leur suppression n’a pas ´et´e act´ee dans cette
contrainte. Le pruning minimal 41ne traite que les
variables et valeurs pr´ec´edemment suport´ees par (y,b).
Cependant, valRemove a la possibilit´e de r´ealiser un
pruning plus important (42), ce qui est utile pour les
contraintes table.
1enqueue(in x: Variable;in a: Value; inout Q: Queue)
2// Pre: xX,a/D(x)
3// Post: Q = Q0∪ {(c,x,a)|cC,xVars (c)}
4post(in c: Constraint;out 4: Set of Values)
5// Pre: cC
6// Post: 4=I nc(c) + initialization of
7// specific data structures
8valRemove(in c: Constraint; in y: Variable;
9in b: Value; out 4: Set of Values)
10 // Pre: cC,b/D(y,Q,c)
11 // Post: 41⊆ 4 ⊆ 42
12 // with 41=I nc(c,D(X,Q,c)) C ons(c,y,b)
13 // and 42=I nc(c)
Specification 1 – Les m´ethodes enqueue, post, et val-
Remove de AC5
3 Algorithmes Bas´es sur les Valeurs Effi-
caces pour Contraintes Table
Nos approches efficaces bas´ees sur les valeurs utilisent
une structure de donn´ees F S m´emorisant les premiers
supports des lit´eraux. Intuitivement F S[x,a] est l’in-
dice du premier support Q-valide de la paire valeur-
variable (x,a). Pour acc´el´erer le parcours du tableau,
nos algorithmes utilisent une seconde structure de don-
n´ees appel´ee next qui relie tous les tuples de la table
partagent la mˆeme valeur pour une variable donn´ee. La
structure de donn´ees next est s´emantiquement ´equiva-
lente `a l’index utilis´e dans [12]. La structure de don-
n´ees next, illustr´ee Figure 1, est statique, car elle ne
d´epend pas du domaine des variables. Cependant, F S
doit ˆetre trail´e durant la recherche.
La m´ethode post de cet algorithme (postTC) initia-
lise les structures de donn´ees F S et next et renvoie
l’ensemble des valeurs inconsistantes. Ces valeurs sont
celles n’ayant, d’entr´ee de jeu, pas de support valide
dans la contrainte. La m´ethode valRemove(c,y,b) de
T
x y z
1a b a
2b c b
3aaa
4a b b
5b b a
next
x y z
1 3 4 3
2 5 >4
3 4 >5
4>5>
5> > >
Figure 1 – Example pour la structure next d’une
table T(fl`eches dessin´ees uniquement pour la variable
z).
cet algorithme (valRemoveTC(c,y,b)) ne doit consid´e-
rer que les tuples dans la chaˆıne de next `a partir de
F S[y,b]. Quand un de ces tuples σc,iest le premier
support d’un ´el´ement a=σc,i[x], un nouveau support
F S[x,a] doit ˆetre trouv´ee. Si un tel support n’existe
pas, (x,a) est domaine inconsistant. Sinon, F S est mis
`a jours. L’ensemble des algorithmes ainsi que des in-
variants sur les structures de donn´ees sont pr´esenes
dans [15].
L’algorithme AC5 avec les m´ethodes postTC et valRe-
moveTC pour les contraintes table est appel´e AC5TC.
AC5TC est g´en´erique par rapport aux structures uti-
lis´ees pour maintenir la Q-validit´e des tuples de la
table. En effet, `a la place de tester chaque tuple
qui est candidat support, il maintient leur Q-validit´e.
Nous avons d´efini deux versions diff´erentes de AC5TC.
Elles diff`erent dans les structures utilis´ees. AC5TC-
Bool, la premi`ere impl´ementation de AC5TC, utilise
un tableau de bool´eens, isQV alid[i] enregistrant la Q-
validit´e du tuple σc,i. Ce tableau est trail´e car il d´epend
des domaines. La seconde impl´ementation, AC5TC-
Cutoff, ne trail qu’un nombre entier, en s’appuyant
sur une id´ee de STR et STR2 [18, 11] . Cette impl´e-
mentation conserve simplement les tuples Q-invalides
`a la fin de la table, avec un seul entier repr´esentant la
fronti`ere entre ´el´ements Q-valides et Q-invalides. Lors-
qu’un ´el´ement devient Q-invalide, il est ´echang´e avec
l’´el´ement au niveau de la fronti`ere et cette fronti`ere
est d´ecr´emenee d’une unit´e. La variable de taille doit
ˆetre trail´ee mais le tableau n’a pas besoin de l’ˆetre :
les ´el´ements valides sont automatiquement r´etablis en
cas de backtrack, mais `a une position diff´erente dans
la table. Cela est parfois appel´e backtrack s´emantique
[19]. Au lieu d’´echanger tuples, notre impl´ementation
utilise deux tableaux Map et Dyn qui donnent la po-
sition virtuelle des tuples et les positions des tuples
virtuels dans la table. Ces tableaux ne doivent pas ˆetre
trail´es.
Proposition 1 AC5TC-Bool et AC5TC-Cutoff sont
corrects et ont une complexit´e temporelle en O(r2·t+
r·d)par contrainte table.
Tous les algorithmes et preuves de complexit´es
peuvent ˆetre trouv´es dans [15].
4 Un Propagateur Optimal
Dans les propagateurs de la section 3, la recherche
d’un nouveau support pour un litt´eral peut revisiter
certains tuples Q-invalides plusieurs fois, parce que la
structure de donn´ees next est statique. L’id´ee, pour
´eviter ces visites inutiles, est de rendre la structure
next dynamique et de toujours veiller `a ce que l’´el´e-
ment suivant un ´el´ement Q-valide dans une chaˆıne
next soit aussi Q-valide. Cela permet d’´eviter de consi-
d´erer `a tort des tuples Q-invalides comme supports
potentiels. Cette structure est impl´emenee avec une
liste doublement chain´ee et appel´ee nextT r. Le pro-
pagateur utilisant cette structure de donn´ee (avec la
structure F S de la section 3) est appel´e AC5TC-Tr
(pour AC5TC avec structure Trail´ee).
La m´ethode post de AC5TC-Tr (postTC-Tr) initia-
lise la nouvelle structure nextT r en parall`ele de l’ini-
tialisation de F S. Comme pr´ec´edemment, les valeurs
n’ayant pas de support valide dans la contrainte sont
retir´ees des domaines. La m´ethode valRemove(c,y,b)
de AC5TC-Tr (valRemoveTC-Tr(c,y,b)), comme val-
RemoveTC, ne doit consid´erer que les tuples dans la
chaˆıne de nextT r `a partir de F S[y,b]. `
A la diff´erence
que valRemoveTC-Tr ne doit jamais chercher un sup-
port (en parcourant une chaˆıne) vu que les ´el´ements
suivants dans les chaˆınes nextT r sont n´ecessairement
Q-valides. Toutefois, nextT r doit ˆetre mis `a jour par
valRemoveTC-Tr afin de s’assurer que les tuples nou-
vellement Q-invalides ne soient plus dans les chaˆınes.
Les ´el´ements retir´es des chaˆınes ne seront donc jamais
revisit´es.
Proposition 2 AC5TC-Tr est correct et a une com-
plexit´e temporelle optimale en O(r·t+r·d)par
contrainte table.
5 Une Variation bas´ee sur du Recalcul
Nous proposons, dans cette Section, une variante de
l’algorithme AC5TC, appel´ee AC5TC-Recomp, qui ne
n´ecessite pas de structure de donn´ees pour maintenir
la Q-validit´e des tuples. AC5TC-Recomp est le pro-
pagateur de contraintes table (non publi´e) du solver
Comet. Il remplace les tests de Q-validit´e par un test
de validit´e. Tester la validit´e d’un tuple correspond
simplement `a v´erifier, pour toutes les valeurs du scope
de la contrainte, que leur valeur est dans leur domaine.
La m´ethode valRemove de AC5TC-Recomp exploite
la flexibilit´e de ses sp´ecifications en calculant un en-
semble 4entre 41et 42. Cela est du a son utilisation
de la validit´e des tuples `a la place de la Q-validit´e.
Proposition 3 AC5TC-Recomp est correct et a une
complexit´e temporelle en O(r2·t+r·d)par contrainte
table.
Malgr´e sa sous-optimalit´e, AC5TC-Recomp am´eliore
les algorithmes de l’´etat de l’art sur certaines classes
de probl`emes.
6 R´esultats Exmp´erimentaux
Tous les algorithmes propos´es dans ce papier ont
´et´e impl´emenes en user-space en Comet, et AC5TC-
Recomp y a ´et´e ´egalement r´eimpl´emene. Pour compa-
raison, les algorithmes bas´es sur les contraintes clas-
siques ont ´egalement ´et´e impl´ement´es dans le user-
space Comet. L’algorithme GAC3-allowed a ´et´e choisi
parce qu’il est l’algorithme standard GAC3 pour les
contraintes table [10]. Les deux m´ethodes `a l’´etat de
l’art ont ´egalement ´et´e r´e-impl´emenees : l’algorithme
STR2+ de [11] et l’algorithme de mddc [3]. Ils sont ap-
pel´es respectivement STR et MDD dans les r´esultats
exp´erimentaux. Toutes les exp´eriences ont ´et´e men´ees
sur un processeur Intel Xeon 2,53 GHz, utilisant Co-
met 2.1.1.
Les algorithmes sont compar´es au sein d’une recherche
o`u la domaine consistance est maintenue (MAC).
Cette section pr´esente les r´esultats exp´erimentaux sur
des instances enti`erement al´eatoires et sur le probl`eme
du voyageur de commerce. Des r´esultats exp´erimen-
taux ´etendus sont pr´esenes dans [15].
Pour chaque ensemble d’instances, nous reportons les
temps moyens d’ex´ecution en secondes (totTime), le
temps moyen pour poster les contraintes (postT ), le
nombre moyen d’appels au propagateur (nProp), le
pourcentage par rapport au meilleur propagateur pour
le temps d’ex´ecution (% best), la moyenne du pour-
centage en temps par rapport au meilleur propagateur
(µ% best), le nombre moyen de tests de validit´e (val-
Chk), de tests de Q-validit´e (QvalChk), et le nombre de
pointeurs suivis (pFollow). La diff´erence entre le % best
et µ% best la suivante : pour % best, les moyennes de
temps d’ex´ecution sont calcul´ees avant de calculer %
best. Il y a donc un propagateur qui est le meilleur sur
chaque ensemble d’instances. Pour µ% best, les pour-
centages sont calcul´es instance par instance et agr´eg´es
avec une moyenne g´eom´etrique `a la fin. Cette mesure
tient compte du fait que diff´erentes instances peuvent
donner lieu `a diff´erents meilleurs propagateurs. La me-
sure µ% best utilise une moyenne g´eom´etrique comme
sugg´er´e dans [5]. La derni`ere quantit´e, pFollow, a diff´e-
rentes significations pour diff´erents algorithmes. Pour
GAC3-allowed, elle correspond au nombre de fois o`u
l’algorithme acc`ede aux tuples. Pour les algorithmes
AC5TC, elle est d´efinie comme le nombre de fois o`u
les structures next ou nextT r servent `a traverser la
table. Pour MDD, elle correspond au nombre d’arˆetes
suivies dans la structure MDD. Bien que se r´ef´erant `a
des quantit´es diff´erentes, pFollow est utile pour com-
parer le comportement des propagateurs, car cette me-
sure refl`ete l’utilisation de leurs structures sp´ecifiques.
Instances Al´eatoires Cet ensemble de test contient
des contraintes table al´eatoires. Les instances sont g´e-
n´er´ees par le mod`ele RD [21]. Les param`etres sont
choisis de mani`ere `a g´en´erer des instances dans la tran-
sition de phase, en utilisant les th´eor`emes 1 et 2 de
[21]. Les instances ont 10 variables, une taille de do-
maine uniforme de 10 et 15 contraintes d’arit´e 5. Le
nombre attendu de tuples dans chaque table est donc
de 20000. Cet ensemble test contient 10 instances g´e-
n´er´ees avec ces param`etres. La strat´egie de recherche
utilis´ee est minDom avec ordonnancement de valeurs
lexicographique.
La Table 1 r´esume les r´esultats. Des r´esultats simi-
laires sont observ´es pour d’autres valeurs de para-
m`etres dans la transition de phase. Les propagateurs
standard STR2 et MDD surpassent nos propagateurs
bas´es sur les valeurs. Observons le grand nombre de
tests de validit´e r´ealis´es par AC5TC-Recomp, de tests
de Q-validit´e de AC5TC-Bool et AC5TC-Cutoff, ainsi
que le nombre de fois o`u ils suivent un de leurs poin-
teurs. AC5TC-Tr, le meilleur de nos propagateurs, suit
beaucoup moins de pointeurs que nos autres propaga-
teurs, car il ne suit aucun pointeur vers un tuple qui a
d´ej`a ´et´e inspect´e. En raison de l’absence de structure
dans l’ensemble de contraintes, les trois premiers pro-
pagateurs AC5TC semblent v´erifier beaucoup de fois
les mˆemes tuples. En outre, ces instances al´eatoires ont
de grandes tables, ce qui rend le coˆut de la structure
nextT r de AC5TC-Tr, qui doit ˆetre trail´ee, trop ´elev´e.
Probl`eme du Voyageur de Commerce Nous
concluons les exp´eriences avec les r´esultats des pro-
pagateurs sur une version satisfaction du probl`eme
du voyageur de commerce (TSP). Nous avons uti-
lis´e les ensembles d’ instances tsp-20 et tsp-25 [9].
Ces instances sont compos´ees de contraintes table
tr`es diff´erentes. Leur arit´e varie entre 2 et 3 et elles
peuvent compter jusqu’`a 20 000 tuples mais ´egale-
ment seulement 20. Les variables ont ´egalement des
domaines assez diff´erents : certaines ont des petits do-
maines, tandis que d’autres ont des domaines conte-
nant jusqu’`a 1000 valeurs. Il y a 61 variables et 230
contraintes table dans les instances tsp-20. Les ins-
tances tsp-25 comptent 76 variables et 350 contraintes.
Les contraintes table n´egatives trouv´ees dans ces ins-
tances ont ´et´e transform´ees en contraintes positives.
La strat´egie de recherche utilis´ee est dom/deg avec or-
donnancement de valeur lexicographique.
Les Tables 2 et 3 pr´esentent les r´esultats exp´erimen-
taux sur les instances TSP. Nous observons d’abord
que STR2 et MDD obtiennent de moins bonnes per-
formances que nos propagateurs. AC5TC-Recomp est
la strat´egie gagnante sur les instances tsp-20 alors que
1 / 8 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !