HAL Id: lirmm-00378944
https://hal-lirmm.ccsd.cnrs.fr/lirmm-00378944
Submitted on 11 Oct 2019
HAL is a multi-disciplinary open access
archive for the deposit and dissemination of
sci-entific research documents, whether they are
pub-lished or not. The documents may come from
teaching and research institutions in France or
abroad, or from public or private research centers.
L’archive ouverte pluridisciplinaire HAL, est
destinée au dépôt et à la diffusion de documents
scientifiques de niveau recherche, publiés ou non,
émanant des établissements d’enseignement et de
recherche français ou étrangers, des laboratoires
publics ou privés.
Algorithmes Optimaux et Sous-optimaux de Singleton
Consistance d’Arc
Christian Bessière, Romuald Debruyne
To cite this version:
Christian Bessière, Romuald Debruyne. Algorithmes Optimaux et Sous-optimaux de Singleton
Con-sistance d’Arc. 1ères Journées Francophones de Programmation par Contraintes (JFPC 2005), CRIL
- CNRS FRE 2499, Jun 2005, Lens, France. pp.277-286. �lirmm-00378944�
Algorithmes Optimaux et Sous-optimaux de
Singleton Consistan e d'Ar
Christian Bessiere
1
Romuald Debruyne
2
1
LIRMM (CNRS/Université de Montpellier),
161 Rue Ada, 34392 Montpellier Cedex 5,Fran e.
2
É ole des Mines de Nantes, LINA/FRECNRS 2729,
4 rue Alfred Kastler,44307 Nantes Cedex 3,Fran e
bessiere lirmm.fr romuald. debruyneemn.fr
Résumé
Lasingleton onsistan ed'ar (SAC)permetde
l-trer bien plus que la onsistan e d'ar en s'assurant
qu'au une ae tation ne puisse rendre le réseau de
ontraintes ar in onsistant. Des algorithmes ont été
proposéspourréaliserlafermetureparsingleton
onsis-tan ed'ar maisave des omplexitéstemporelles
laire-mentnonoptimales.Dans etarti le,nousdonnonsune
borneinférieuredela omplexitétemporelledanslepire
des as desalgorithmesde singleton onsistan e d'ar .
Nous proposons un algorithme possédant ette borne
pour omplexitétemporelle.Cetalgorithmeoptimalest
ependant oûteux enespa e.C'estpourquoinous
pro-posons également un algorithme troquant l'optimalité
temporellepourunemeilleure omplexitéspatiale.Bien
quenonoptimal, edernierpossèdeune omplexité
tem-porelledanslepiredes asinférieureà elledetousles
algorithmesdesingleton onsistan ed'ar déjàpubliés.
Uneétudeexpérimentalemetenvaleurlesbonnes
per-forman esdesalgorithmesproposés.
Abstra t
Singletonar onsisten y (SAC)enhan es the
pru-ning apability ofar onsisten y by ensuringthatthe
network annotbe omear in onsistentafterthe
assi-gnmentofavaluetoavariable.Algorithmshavealready
beenproposedtoenfor eSAC,buttheyarefarfrom
op-timaltime omplexity.Wegivealowerboundtothetime
omplexity of enfor ingSAC,and wepropose an
algo-rithmthata hievesthis omplexity,thusbeingoptimal.
However, it an be ostly in spa e on large problems.
We then propose another SAC algorithm that trades
time optimality for a better spa e omplexity.
Never-theless,thislastalgorithmhasabetterworst- asetime
omplexity than previously published SAC algorithms.
An experimentalstudyshowsthegoodperforman e of
thenewalgorithms.
1 Introdu tion
S'assurer qu'une ertaine onsistan e lo ale ne va
pas onduireàuné he sionlavérieaprès
l'ae ta-tiond'unevariableestuneidéediversementutiliséeen
raisonnementàbasede ontraintes.Elleaétéutilisée
(parfoissouslenomde'shaving')danslesréseauxde
ontraintesàdomaines ontinusenréduisantles
ae -tationsauxbornesdesdomaineset ens'assurantque
la onsistan edeborne nedéte tepasl'in onsistan e
du problème [13℄. Dans le adre du problème SAT
elle a été employée omme un moyen d'obtenir des
heuristiquesmieuxinforméespourl'algorithmeDPLL
[10, 14, 1℄. Enn, dans les problèmes de satisfa tion
de ontraintes à domaines dis rets (CSPs) elle a été
introduite souslenom de singleton onsistan e d'ar
(SAC)dans[8℄puisaétédavantageétudiée,àlafois
defaçonthéoriqueet expérimentale,dans[19,9℄.
Quelquesbonnespropriétés onfèrentà laSAC un
réel avantagesurles autres onsistan es lo ales
amé-liorant l'in ontournable onsistan e d'ar . Sa
déni-tionestplussimpleque ellesdesautres onsistan es
lo alesexotiques ommela onsistan ede hemin
res-treinte (RPC, [4℄) ou la max- onsistan e de hemin
restreinte (Max-RPC, [7℄). Sa sémantique
opération-nelle peut être omprise par un non-expert du
do-maine. De plus,réaliser laSAC nesupprime quedes
valeursdesdomaines,et ne hangedon pasla
stru -ture du problème, par opposition entre autres à la
onsistan e de hemin(PC, [17℄)et auxniveaux plus
élevés de
k
- onsistan e [11℄. Enn, la SAC peut être implémentée en s'appuyant sur n'importe quelalgo-rithmede onsistan ed'ar .
( SAC1 [8℄ et SAC2 [3℄) mais leur omplexité
tempo-relle est loin d'être optimale. Une étude de la
om-plexitéde la SACfait d'ailleurs défaut. Dans et
ar-ti le, nousétudions la omplexité dela SAC(se tion
3) et nous proposons un algorithme de SAC,
SAC-Opt,dontla omplexitétemporelleest optimale
(se -tion4).Cependant,l'optimalitétemporelleestatteinte
auprixd'uneimportante omplexitéspatialequipeut
empê her l'utilisation de SAC-Opt sur les problèmes
degrandetaille.C'estpourquoinousproposons
SAC-SDS ,unalgorithmedeSACmoins oûteuxenespa e,
en se tion 5. La omplexité temporelle de et
algo-rithmen'estpasoptimalemaiselledemeuremeilleure
que elledesalgorithmesde SACpré édemment
pro-posés. L'étude expérimentale présentée en se tion 6
montre lesbonnesperforman esàlafoisdeSAC-Opt
etde SAC-SDS omparéesà ellesdespré édents
al-gorithmesdeSAC.
2 Dénitions
Un réseau de ontraintes
P
= (X, D, C)
onsiste enunensemble niden
variablesX
= {i, j, . . .}
, un ensemble de domainesD
= {D(i), D(j), . . .}
, où le domaineD(i)
est l'ensemble ni d'au plusd
valeurs que la variablei
peut prendre, et un ensemble dee
ontraintesC
= {c
1
, . . . , c
e
}
.Chaque ontraintec
k
est dénie par l'ensemble ordonnévar(c
k
)
des variables sur lesquelles elleporte et par l'ensemblesol(c
k
)
des ombinaisons de valeurs qui la vérient. Unesolu-tion d'un réseau de ontraintes est une ae tation
d'une valeur de son domaine à haque variable telle
quetoutesles ontraintesduréseausoientsatisfaites.
Quand
var(c) = (i, j)
,la ontrainteestditebinaireet ondésignesol(c)
parc
ij
.Unevaleur
a
dansledomained'unevariablei
(no-tée(i, a)
)estar onsistantepourla ontraintec
k
ssiil existeunsupportpour(i, a)
surc
k
, 'est-à-direune ins-tan iationdesautresvariablesdevar(c
k
)
àdesvaleurs deleursdomainesrespe tifstellequeprisesonjointe-ment, ette instan iation et l'ae tation de
a
ài
sa-tisfassentc
k
. Dans le as ontraire,(i, a)
est dite ar in onsistante.Unréseaude ontraintesP
= (X, D, C)
est ar onsistant ssiD
ne ontient au un domaine vide et au une valeur deD
n'est ar in onsistante. OndésigneparAC(P )
le réseauobtenu par suppres-sion dansP
de toutes les valeurs ar in onsistantes. SiAC(P )
omporte un domaine vide,P
est dit ar in onsistant.Dénition1(Singleton onsistan e d'ar ) Un
réseau de ontraintes
P
= (X, D, C)
est singleton ar onsistant ssi∀i ∈ X, ∀a ∈ D(i)
, le réseauP|
i=a
= (X, D|
i=a
, C)
,obtenuenremplaçantD(i)
parle singleton
{a}
, n'est pas ar in onsistant. SiP
|
i=a
est ar in onsistant,(i, a)
est diteSACin onsistante.3 Complexité de la SAC
SAC1 [8℄etSAC2 [3℄onttousdeuxune omplexité
temporelle dans le pire des as en
O(en
2
d
4
)
sur les
réseauxde ontraintesbinaires.Mais ette omplexité
n'estpasoptimale.
Theorème 1 La meilleure omplexité temporelle
qu'on puisse espérer pour un algorithme réalisant la
SAC sur des réseaux de ontraintes binaires est en
O(end
3
)
.Preuve. D'après [16℄, nous savons que déterminer si
une valeur
(i, a)
est telle quel'ACnevidepasde do-maines dansP
|
i=a
revient à vérier si dans haque domaineD(j)
il existe au moins une valeurb
telle que((i, a), (j, b))
soit hemin onsistante sur(i, a)
(une pairedevaleurs((i, a), (j, b))
est hemin onsis-tante sur(i, a)
ssi ellen'estpas suppriméelorsde la réalisationdela hemin onsistan e surlespairesim-pliquant
(i, a)
). Pour haque variablej
, nous devons trouver une valeurb
∈ D(j)
telle que((i, a), (j, b))
soit hemin onsistantesur(i, a)
.Danslepiredes as, toutes lesvaleursb
deD(j)
doiventêtre onsidérées. Par onséquent, il peut être né essaire de vérier lahemin onsistan ede haquepaire
((i, a), (j, b))
en re- her hantunevaleur(k, c)
dansledomainede haque troisième variablek
quisoit ompatible àlafois ave(i, a)
et(j, b)
. Cependant, il est inutile de onsidérer lesvariablesk
quinesontpasreliéesàj
puisquedans ette formepartielle de hemin onsistan e seuleslespaires impliquant
(i, a)
peuvent être supprimées. En utilisant un algorithme de hemin onsistan eopti-mal (mémorisant les supports), nous sommes
assu-rés de ne onsidérer haque valeur
(k, c)
qu'au plus une fois lors des diérentes re her hes d'une valeurompatibleave
((i, a), (j, b))
dansD(k)
.Prouverque la hemin onsistan e sur(i, a)
ne onduit pas à un é he a don une omplexité dans le pire des as enΣ
b∈D(j)
Σ
c
kj
∈C
Σ
c∈D(k)
1 = ed
2
. De plus, réaliser la
hemin onsistan e sur
(i, a)
est omplètement indé-pendantdelaréalisationdela hemin onsistan esuruneautrevaleur
(j, b)
.Eneet,unepaire((i, a), (j, b))
peut être hemin onsistante sur(i, a)
mais devenir hemin in onsistante suite à la suppression deer-taines paires
((k, c), (j, b))
et don être hemin in on-sistante sur(j, b)
.Par onséquent,la omplexitédans le piredes as d'un algorithmede SAC est aumoinsen
O(Σ
(i,a)∈D
ed
2
) = O(end
3
)
4 Un Algorithme de SAC Optimal en
Temps
SAC1 n'utilise au une stru ture de données
per-mettantdemémoriserquellesvaleurspeuventdevenir
SAC in onsistantes suite à la suppression d'une
er-tainevaleur.En asdesuppressiond'unevaleur,SAC1
doitpar onséquentvérierànouveau laSAC
onsis-tan e de toutesles valeursen oreprésentes. SAC2 a
lui desstru tures de donnéesqui utilisentle fait que
si l'ACnevide au undomainede
P|
i=a
alorslaSAC onsistan e de(i, a)
est assurée tant que toutes les valeurs deAC(P |
i=a
)
demeurent présentes. Après la suppressiond'unevaleur(j, b)
,SAC2 testeànouveau la SAC onsistan e de toutes les valeurs(i, a)
telles que(j, b)
guraitdansAC(P |
i=a
)
.Ce i onduitàune meilleure omplexité temporelle que elle de SAC1mais les stru tures de donnéesde SAC2 ne sont pas
susantes pour atteindre l'optimalité puisque SAC2
peut perdre du temps à réaliser plusieurs fois l'AC
dansunsous-problème
P
|
i=a
enredémarrantdezéro. L'algorithme1,appeléSAC-Opt,estunalgorithmequiréaliselasingleton onsistan ed'ar en
O(end
3
)
,la
meilleure omplexité temporelle qu'on puisse espérer
pouruntelalgorithme( f.Théorème1).
L'idée prin ipalede et algorithmeoptimalest que
nous ne voulons pasfaire et refaire en démarrant de
zéro(potentiellement
nd
fois)la onsistan ed'ar dans haquesous-problèmeP|
j=b
haquefoisqu'ondéte te la SAC in onsistan e d'une valeur(i, a)
( e qui re-présenten
2
d
2
réalisationsdel'AC potentielles). Pour
éviter es oûteusesrépétitionslorsdesappels
su es-sifsdel'algorithmed'AC,ondupliqueleproblème
nd
fois, réantlesstru turesdedonnéespour haquesous-problème
P|
i=a
, detelle sortequ'on puisse béné ier de l'in rémentalité de l'algorithme d'AC sur haquesous-problème.Touslesalgorithmesd'AC sont
in ré-mentaux, en d'autres termes,leur omplexité sur un
problème
P
estlamêmequ'onnefassequ'unseul ap-peloujusqu'ànd
appelsoùdeuxappels onsé utifsne dièrentque par la suppression d'un ertain nombredevaleursdans
P
.Dans equisuit,
P
ia
estlesous-problèmedanslequel SAC-Opt mémoriseledomaine ourant(notéD
ia
)et lastru turededonnées orrespondantàlaréalisationde l'AC dans
P|
i=a
.propagAC(P, Q)
désignela fon -tion qui propage in rémentalement la suppression del'ensemble
Q
devaleursdansleproblèmeP
alorsqu'un appelinitialàl'algorithmed'ACadéjàeulieu,initia-lisant la stru ture de données de l'algorithme d'AC
utilisé. Elleretournefauxssi
P
est ar in onsistant. SAC-Optpro èdeendeuxétapesprin ipales.Aprèsavoir rendu le problème ar onsistant (ligne 1), la
bou ledelaligne2 réeleproblème
P
ia
pour haquesingleton ar onsistan e
fun tionSAC-Opt(inout
P
:Problem):Boolean; /*initphase*/;1 if AC
(P )
thenPendingList← ∅
elsereturnfalse ; 2 forea h(i, a) ∈ D
do3
P
ia
← P
/* opyonlydomainsanddata stru tures*/;4
D
ia
(i) ← {a}
;Q
ia
← D(i) \ {a}
; 5 if¬propagAC(P
ia
, Q
ia
)
then 6D ← D \ {(i, a)}
;7 if
propagAC(P, {(i, a)})
then8 forea h
P
jb
su hthat(i, a) ∈ D
jb
do 9Q
jb
← Q
jb
∪ {(i, a)}
;10 PendingList
←
PendingList∪ {(j, b)}
; 11 else returnfalse ;/*propagphase*/;
12 whilePendingList
6= ∅
do 13 pop(i, a)
fromPendingList;14 if
propagAC(P
ia
, Q
ia
)
thenQ
ia
← ∅
;15 else
16
D ← D \ {(i, a)}
;17 if
D(i) = ∅
thenreturnfalse ;18 forea h
(j, b) ∈ D
su hthat(i, a) ∈ D
jb
do 19D
jb
(i) ← D
jb
(i) \ {a}
;Q
jb
← Q
jb
∪ {(i, a)}
;20 PendingList
←
PendingList∪ {(j, b)}
; 21 returntrue;valeur
a
de haque domaineD(i)
omme étant une opie de l'état ourant deP
. Puis, à la ligne 5, la suppression de haque valeur diérente dea
pouri
est propagéedansP
|
i=a
.Si unsous-problèmeP
ia
est ar in onsistant,(i, a)
estéliminéeduproblème prin- ipalP
et ette suppression est propagée dansP
(ligne7).L'avantagedepropagerimmédiatementdansleproblèmeprin ipallaSACin onsistan edevaleurs
trouvée enligne 5est double.Premièrement,le
sous-problème
P
kc
d'unevaleur(k, c)
retiréeenligne7avant sa séle tionenligne2neserajamais réé.Deuxième-ment,lessous-problèmes
P
jb
réésaprèslasuppression de(k, c)
béné ieront de ette propagationpuisqu'ils sont rééspardupli ationdeP
(ligne3).Pour haque sous-problèmeP
jb
déjà rééavea
∈ D
jb
(i)
,(i, a)
est pla éedansQ
jb
etP
jb
estpla édansPendingListpour unefuture propagation(lignes910).Unefoislaphased'initialisationterminée,nous
sa-vonsquePendingList ontienttouteslesvaleurs
(i, a)
pour lesquelles des suppressions de valeurs SACin- onsistantes (mémorisées dans
Q
ia
) n'ont pas en ore été propagéesdansP
ia
. Labou le delaligne12 pro-page essuppressions(ligne14).Quandlapropagationé houe, ela signie que
(i, a)
est elle-même SAC in- onsistante.ElleestalorsretiréedudomaineD
du pro-blèmeprin ipal àlaligne16et haquesous-problèmeP
jb
ontenant(i, a)
estmisàjourainsiquesa listede propagationQ
jb
pour une future propagation(lignes 1820).Unefois PendingList vidée, touteslessuppressions
ontétépropagéesdanslessous-problèmes.Toutesles
valeursde
D
sontdèslorsSAC onsistantes.Theorème2 SAC-Opt est un algorithme de
sin-gleton ar onsistan e ayant sur les réseaux de
ontraintes binaires une omplexité temporelle
op-timale en
O(end
3
)
et une omplexité spatiale en
O(end
2
)
.Preuve.Corre tion.Supposonsqu'unevaleur
a
aitété injustementretiréedeD(i)
.(i, a)
aétéretiréesoit en ligne 6soit en ligne 16 par e que l'ar in onsistan ede
P
ia
aététrouvée. SiP
ia
aété identié ommear in onsistantpendantlaphased'initialisation(ligne5)nous pouvons on lure immédiatement à la SAC
in- onsistan e de
(i, a)
. Pro édons par indu tion pour l'autre as. Supposons que toutes les valeurspré é-demment suppriméesen ligne16 étaient SAC
in on-sistantes.Si l'ar in onsistan ede
P
ia
est déte téeen ligne 14 ela signie queP
ia
ne peut pas être rendu ar onsistant sans la présen e de ertaines valeursSACin onsistantesdanssondomaine.Par onséquent,
(i, a)
estSACin onsistanteet SAC-Opt est orre t. Complétude. Grâ e à la façon dont sont mises àjour PendingList et
Q
ia
aux lignes 810 et 1820, noussavonsqu'à landel'algorithme,touslessous-problèmes
P
ia
sont ar onsistants. Par onséquent, pourtoutevaleur(i, a)
restantdansP
àlande SAC-Opt,P|
i=a
n'estpasar in onsistantet(i, a)
estdon SAC onsistante.Complexité.L'étudede omplexitéportesurdes
ré-seauxde ontraintesbinairespuisquelapreuve
d'opti-malitéaétédonnéeuniquementpour esréseaux(mais
SAC-Opt peutêtreemployéquellequesoitl'aritédes
ontraintes). Puisque n'importe quel algorithme de
onsistan ed'ar peutêtreutilisédans
l'implémenta-tiondenotrealgorithmedeSAC,les omplexités
tem-porelles et spatiales vont bien évidemment dépendre
de e hoix.Traitonsd'abordle asoùunalgorithme
optimalentemps, ommeAC-6 [5℄ouAC2001 [6,20℄
est utilisé. Laligne 3nousindique quela omplexité
spatialesera
nd
fois elle del'algorithmed'AC, 'est-à-direO(end
2
)
.En equi on ernela omplexité
tem-porelle,lapremièrebou le opielesstru turesde
don-néesetpropagela onsistan ed'ar dans haque
sous-problème (ligne 5), deux tâ hes qui sont
respe tive-menten
nd· ed
etnd
· ed
2
.Danslabou le
while
(ligne 12), lapropagation de la onsistan e d'ar peut êtreappelée
nd
foispour ha undesnd
sous-problème. Ce-pendant,AC-6 etAC2001 étanttousdeuxin rémen-taux, la omplexité des
nd
restri tions sur le mêmeproblème est en
ed
2
et non en
nd
· ed
2
. Le oût
to-tal de la propagation de la onsistan e d'ar sur les
nd
sous-problèmes est don ennd
· ed
2
. Nousdevons
ajouterà elala mise à jour des listesen lignes 8et
18.Danslepiredes as,lesvaleurssontretiréesuneà
une, etdon
nd
valeurssontpla éesdanslesnd
listesQ
, onduisant à une mise à jour de PendingList enn
2
d
2
. Si
n < e
,la omplexité temporelletotale estenO(end
3
)
, equi estoptimal.
2
Remarques. Nousavons hoisideprésenterleslistes
Q
ia
omme des listes de valeursdont la suppression doitêtrepropagéepar equel'algorithmed'aronsis-tan eutilisén'estpasspé iéi ietpar equ'une
sup-pression de valeur est l'information la plus ne que
nous puissions avoir. Si un algorithme d'AC à grain
n est utilisé, omme AC-6 ,les listesseront utilisées
omme indiqué. Si 'est un algorithme à gros grain
quiestutilisé, ommeAC-3 [15℄ouAC2001 ,seuleest
utile la onnaissan edes variables dont ledomaine a
étémodié.L'adaptationestimmédiate.
Nous devons souligner que si AC-3 est utilisé,
la omplexité spatiale diminue à
O(n
2
d
2
)
, mais la
omplexité temporelle est quant à elle augmentée à
O(end
4
)
dufaitdelanonoptimalité d'AC-3 .
5 Optimalité Temporelle ontre
Com-plexité Spatiale
SAC-Opt nepeutpasêtreutilisésurdesréseauxde
ontraintes de grande taille du fait de sa omplexité
spatiale en
O(end
2
)
. Il semble de plus di ile
d'at-teindre l'optimalité temporelle ave une omplexité
spatialemoindre.UnalgorithmedeSACdoit
mainte-nir l'ACsur
nd
sous-problèmesP|
i=a
, etpour garan-tirune omplexitétemporelleenO(ed
2
)
sur es
sous-problèmesnousdevonsre ouriràunalgorithmed'ar
onsistan e optimal. Or, il n'existe pas d'algorithme
d'ACoptimalrequiérantmoinsde
O(ed)
enespa e, e qui onduitàunespa eennd·ed
pourréaliserlaSAC. Nous proposons dans ette se tion d'abandonnerl'optimalité temporelle an d'obtenir un ompromis
satisfaisantentrel'espa erequisetla omplexité
tem-porelle. An de ne pas dis uter en des termes trop
généraux, nous présentons ette idée sur une
implé-mentation baséesur AC2001 et destinée auxréseaux
de ontraintesbinaires.Cetteidéepeut ependantêtre
implémentée en utilisant n'importe quel algorithme
optimal d'AC, omme AC-6 , et ave des ontraintes
d'arité quel onque. L'algorithme SAC-SDS (Sharing
Data Stru tures) tente d'utiliser autant que possible
l'in rémentalitédesalgorithmesd'ACand'éviterun
travailredondant,maissansre ouriràladupli ation
donnéesrequisesparl'algorithmed'ACutilisé.Cet
al-gorithme requiert don moins d'espa e queSAC-Opt
maisn'estpasoptimalentemps.
Comme dans SAC-Opt, SAC-SDS mémorise pour
haque valeur
(i, a)
le domaine lo alD
ia
du sous-problèmeP
|
i=a
ainsiquesalistedepropagationQ
ia
. Notons que ette présentation faisant l'hypothèse del'emploi de l'algorithmeAC2001 ,
Q
ia
est une listede variablesj
dontledomaineaétémodié (dans SAC-Opt il s'agit d'une liste de valeurs(j, b)
supprimées deD
ia
). Commedans SAC-Opt, grâ e auxdomaines lo auxD
ia
nous savons quellesvaleurs(i, a)
peuvent ne plus être SAC onsistantes suite à la suppressiond'une valeur
(j, b)
: il s'agit des valeurs(i, a)
telles que(j, b)
était dansD
ia
. Ces domaines lo aux sont égalementutiliséspouréviter dere ommen eràzérohaquenouvellephase de propagation d'AC dans les
sous-problèmes. En eet,
D
ia
est exa tement le do-maineàpartirduquelil onvientdepoursuivrelaréa-lisationdel'ACsuiteàlasuppressiond'unevaleur.A
titre de omparaison, haque nouvellephase de
pro-pagationdela onsistan e d'ar dans SAC1 et SAC2
re ommen e sur le domaine de
P
(refaisant un tra-vail pro hede elui réalisélorsde pré édentespropa-gations) ar ils ne mémorisent pas les domaines des
diérentssous-problèmes.
Mais l'idée prin ipale de SAC-SDS onsiste en e
que ontrairement à SAC-Opt, il n'y a pas
dupli a-tionpour haquesous-problème
P
ia
desstru turesde données utilisées par l'algorithme optimal d'AC. Lastru ture de données n'existe qu'au niveau du
pro-blèmeprin ipal
P
.Dansle asd'AC2001 ,lastru tureLast
quimémorisedansLast(i, a, j)
lapluspetite va-leurdeD(j)
ompatibleave(i, a)
surc
ij
est rééeet mise à jour uniquement dansP
. Cependant, elle est utiliséepartouslessous-problèmesP
ia
pouréviterde refaire destestsde onsistan edéjàréalisésdansP
.SAC-SDS (Algorithme 2) opère ainsi : après
quelques initialisations (lignes 14), et tant que
PendingListn'estpasvide,SAC-SDS retireunevaleur
(i, a)
de PendingList et propage la onsistan e d'ar dansP
ia
(lignes 69).Notons queD
ia
=nil
signie qu'ils'agitdelapremièreréalisationdel'ACdansP
ia
, etD
ia
doitdon êtreinitialisé(ligne8). SiP
ia
estar in onsistant,(i, a)
estSACin onsistante.Elle estpar onséquentretiréedeD
(ligne11)et ettesuppression est propagéedans le problèmeprin ipalP
au moyen de la fon tionpropagMainAC
(ligne 12). Chaque va-leur(i, a)
suppriméedeP
est pla ée dans l'ensemble Deleted (lignes11et 24).Cet ensembleest utiliséparupdateSubProblems
(ligne13)pourquelesvaleurs re-tirées deP
soient supprimées des sous-problèmes, et pourmettre àjour leslistesQ
jb
et PendingList pourfun tionSAC-SDS-2001(inout
P
:problem): Boolean;1 if AC2001
(P )
thenPendingList← ∅
elsereturn false ;2 forea h
(i, a) ∈ D
do 3D
ia
← nil
;Q
ia
← {i}
;4 PendingList
←
PendingList∪ {(i, a)}
; 5 whilePendingList6= ∅
do6 pop
(i, a)
fromPendingList; 7 ifa ∈ D(i)
then8 if
D
ia
= nil
thenD
ia
← (D \ D(i)) ∪ {(i, a)}
;9 if
propagSubAC(D
ia
, Q
ia
)
thenQ
ia
← ∅
;10 else
11
D(i) ← D(i) \ {a}
;Deleted← {(i, a)}
; 12 ifpropagMainAC(D, {i},
Deleted)
then 13updateSubProblems(
Deleted)
14 elsereturnfalse ;15 returntrue;
fun tion
Propag Main/Sub AC
(inoutD
:domain;inQ
:set;inoutDeleted :set):Boolean;
16 while
Q 6= ∅
do 17 popj
fromQ
;18 forea h
i ∈ X
su hthat∃c
ij
∈ C
do 19 forea ha ∈ D(i)
su h thatLast(i, a, j) 6∈ D(j)
do20 if
∃b ∈ D(j), b > Last(i, a, j) ∧ c
ij
(a, b)
then21
Last(i, a, j) ← b
22 else
23
D(i) ← D(i) \ {a}
;Q ← Q ∪ {i}
; 24 Deleted←
Deleted∪ {(i, a)}
; 25 ifD(i) = ∅
thenreturnfalse ;26 returntrue;
/*
· · ·
inpropagMainAC
butnotinpropagSubAC
*/; pro edureupdateSubProblems
(inDeleted :set);27 forea h
(j, b) ∈ D | D
jb
∩
Deleted6= ∅
do 28Q
jb
← Q
jb
∪ {i ∈ X | D
jb
(i) ∩
Deleted6= ∅}
; 29D
jb
← D
jb
\
Deleted;30 PendingList
←
PendingList∪ {(j, b)}
;és.
Il nous faut à présent insister sur la diéren e
entre
propagMainAC
, qui propage les suppressions dans le problème prin ipalP
, etpropagSubAC
, qui propagelessuppressionsdanslessous-problèmesP
ia
. Lesparties pla éesdansdes boites apparaissentdanspropagMainAC
mais pasdanspropagSubAC
. La fon -tionpropagSubAC
, utilisée pour propager la onsis-tan ed'ar danslessous-problèmes,suitlemêmedel'algorithme d'ACn'est pasmodiée.Si on utilise
AC2001 , ela signie que
Last
n'est pas mise à jour en ligne 21. En eet, ette stru ture de données estutilepourréaliserl'ACplusrapidementdansles
sous-problèmes(lignes1920)puisquenoussavonsqu'iln'y
a pas de support pour
(i, a)
surc
ij
plus petit queLast(i, a, j)
dansP
, et dans les sous-problèmes éga-lementpar onséquent.Cependant, ettestru tureestpartagée par l'ensemble des sous-problèmes. Elle ne
doit don pas être mise àjour par
propagSubAC
, si-non nous n'aurions plus la garantie queLast(i, a, j)
soiten orelepluspetitsupport danslesautressous-problèmesetdans
P
.Lastru tureLast
estpar ontre mise à jour lors de la réalisation de l'AC dansP
parpropagMainAC
. La ligne 24, qui permet de mé-moriser les valeurs retirées deD
dans Deleted, est laseulediéren e ave AC2001 . Ces suppressionsef-fe tuées dans
P
peuvent dire tement être réper u-tées dans les sous-problèmes au moyen de lafon -tion
updateSubProblems
sans qu'il ne soit utile de déterminerànouveauleurin onsistan edanslessous-problèmes.
Theorème3 SAC-SDS est un algorithme de SAC
ayant une omplexité temporelle en
O(end
4
)
et une
omplexité spatiale en
O(n
2
d
2
)
sur les réseaux de
ontraintesbinaires.
Preuve.Corre tion.Notonstoutd'abordquela
stru -ture
Last
n'estmiseàjourquelorsdelaréalisationde l'ACdansP
de telle sorte quetout support de(i, a)
dansD(j)
soit plus grandouégal àLast(i, a, j)
. Les domainesdessous-problèmesétantdessous-domainesde
D
, tout support d'une valeur(i, a)
surc
ij
dans unsous-problème est égalementplus grandouégalàLast(i, a, j)
.Ce ijustiequepropagSubAC
puisse uti-liser la stru tureLast
sans rainte de rater un sup-port (lignes 1920).Une fois ette onstatationfaite,la orre tiondé ouledesmêmesraisonsquepour
l'al-gorithmeSAC-Opt.
Complétude.La omplétudetientaufaitquetoutes
lessuppressions sont propagées. Après l'initialisation
(lignes 2-4), PendingList
= D
et par onséquent la bou leprin ipaledeSAC-SDS vatraiter haquesous-problème
P
|
i=a
aumoinsunefois.Chaquefoisqu'une valeur(i, a)
est trouvée SAC in onsistante dansP
à ause de l'ar in onsistan e deP
|
i=a
(ligne 9) ou par e que la suppression de valeurs SACin onsis-tantes rend
(i, a)
ar in onsistante dansP
(ligne 23 depropagMainAC
appelée en ligne 12),(i, a)
est re-tirée des sous-problèmes (line 29), et PendingList etleslistesdepropagationlo alessontmisesàjourpour
unefuturepropagation(lignes28and30).Alande
labou le prin ipale, PendingList est vide. Toutes les
l'algorithme temporelle spatiale
SAC1
O(en
2
d
4
)
O(ed)
SAC2O(en
2
d
4
)
O(n
2
d
2
)
SAC-OptO(end
3
)
O(end
2
)
SAC-SDSO(end
4
)
O(n
2
d
2
)
Tab. 1 Les omplexités dans le pire as des
algo-rithmesdeSACsurdes ontraintesbinaires.
valeur
(i, a) ∈ D
,D
ia
estunsous-domainear onsis-tantnonvidedeP
|
i=a
.Complexité. La stru ture
Last
demande un espa e enO(ed)
.Cha undesnd
domainesD
ia
peut ontenirnd
valeurs et il y a au plusn
variables dans lesnd
liste de propagation lo alesQ
ia
. Puisquee < n
2
, laomplexitéspatialedeSAC-SDS-2001 esten
O(n
2
d
2
)
.
Par onséquent,entermesd'espa erequis,
SAC-SDS-2001 est omparableàSAC2 .
Considérons à présent la omplexité temporelle.
SAC-SDS-2001 ommen e pardupliquerlesdomaines
etparpropagerla onsistan ed'ar dans haque
sous-problème(lignes 8et 9), deuxtâ hesqui sont
respe -tivementen
nd
· nd
etennd
· ed
2
.Chaquesuppression
devaleurestpropagéeàl'ensembledessous-problèmes
P
|
i=a
aumoyend'unemiseàjourdePendingList,Q
ia
etD
ia
(lignes2730).Ce iré lamend
· nd
opérations. Lapropagationdela onsistan ed'ar peutêtreappe-léeauplus
nd
foisdans ha undesnd
sous-problèmes. Les domainesde haque sous-problème sontmémori-sésdefaçonà e quelapropagationdel'AC dansles
sous-problèmes ommen etoujoursave desdomaines
dansl'étatoùilsétaientàlandelapré édente
pro-pagation.Ainsi,bienqu'ilyaitplusieurspropagations
d'ACsur unmême sous-problème,une valeurne sera
toujourssuppriméequ'auplusunefois,etgrâ eà
l'in- rémentalité de la onsistan e d'ar , la propagation
de es
nd
suppressions est enO(ed
3
)
(La omplexité
optimaleen
ed
2
pourla onsistan ed'ar sur es
sous-problèmesnepeutpasêtreatteintepar equela
stru -turené essairepourgarantir etteoptimalitén'estpas
dupliquée).Par onséquent,le oût totaldela
propa-gationdela onsistan ed'ar esten
nd
· ed
3
etla
om-plexitétemporelle deSAC-SDS-2001 esten
O(end
4
)
.
2
Tout omme SAC2 , SAC-SDS améliore la
propa-gation de SAC1 puisque après la suppression d'une
valeur
(i, a)
deD
, SAC-SDS ne teste la onsistan e d'ar que dessous-problèmesP|
j=b
ayant(i, a)
dans leursdomaines(etnontouslessous-problèmes ommelefaitSAC1).Cetteaméliorationn'est ependantpas
tempo-.10
.15
.20
.25
.30
.35
.40
.45
.50
.55
.60
.65
.70
.75
.80
.85
.90
1E-2
1E-1
1E0
1E+1
SAC-1-4
SAC-1-6
SAC-1-2001
SAC-Opt-2001
SAC-2-4
SAC-2-6
SAC-2-2001
SAC-SDS-2001
Dureté
Temps cpu (en secondes)
n=100, d=20 et densité=5%
.77
Zoom avec
une échelle non
logarithmique
.75
.73
.71
.69
.67
2
0
4
6
8
10
12
14
16
Fig.1Temps pu surdesproblèmesave
n
= 100
,d
= 20
,et densité= .05
.temporelleen
O(en
2
d
4
)
queSAC1 .SAC-SDS améliore
ette omplexitépar equ'ilmémoriseledomaine
ou-rantde haquesous-problèmeetpeutainsi ommen er
haquepropagationave desdomainesdans lemême
étatqu'àlandelapropagationpré édente 1
.Deplus,
nous pouvons espérer une amélioration de la
om-plexité temporelle en moyenne puisque la stru ture
Last
partagéepermetderéduirelenombredetestsde ontraintesrequis,bienqu'ellenesusepasàobtenirune omplexité temporelle dans le pire as optimale.
Ce gain potentiel ne peut être évalué qu'au moyen
d'une omparaisonexpérimentale des diérents
algo-rithmes de SAC. Enn, dans SAC1 et SAC2 haque
réalisation de l'AC dans un sous-problème doit être
réalisée sur une nouvelle opie de
D
réalisée durant l'exé ution (potentiellementnd
· nd
fois)alorsqu'une telle dupli ation n'est réalisée qu'une seule fois pourhaque valeur dans SAC-SDS (en réant les
sous-domaines
D
ia
).Le tableau 1 ré apitule les omplexités des
algo-rithmesdeSACensupposantqu'ilss'appuientsurun
algorithmed'ar onsistan eoptimal.
1
Ce iestindépendantdel'algorithmed'ACutiliséetune
ver-sionbaséesurAC-3 onserverait ette omplexitéen
O
(end
4
)
.
6 Résultats Expérimentaux
Nous avons omparé les performan es de
algo-rithmesdeSACsurdesréseauxde ontraintesbinaires
générésaléatoirementàl'aidedugénérateurde[12℄,
le-quelproduit desinstan esdumodèleB[18℄.Tousles
algorithmesont étéimplémentésen C++et exé utés
surunPentiumIV-1600MHzdisposantde512Mode
mémoire et ayant Windows XP pour OS. Diérents
algorithmesde onsistan ed'ar ontétéutilisés.Dans
e quisuit, nousnotons SAC-1-X ,SAC-2-X et
SAC-Opt-XlesversionsdeSAC1 ,SAC2etSAC-Optbasées
surAC-X .L'implémentationdelalistedepropagation
de SAC2 aété réalisée en tenant ompte des
re om-mandationsfaitesdans [2℄. Pour haque ombinaison
deparamètresutilisée,50instan esontétégénéréeset
nousmentionnonsi ilamoyennedestemps pu
obte-nussur esinstan es.
6.1 Réseaux de ontraintespeu denses
La gure 1 montre les performan es sur des
ré-seauxde ontraintesayant100variables,desdomaines
omportant ha un 20 valeurs et une densité de 5%
(248 ontraintes). Ces réseaux sontrelativement peu
1E-1
1E0
1E+1
1E+2
1E+3
1E+4
Dureté
Temps cpu (en secondes)
n=100, d=20, et densité=1 (réseaux de contraintes complets)
.38
.39
.40
.41
.42
.43
.44
.45
100
200
300
400
500
600
700
800
900
1000
1100
1200
1300
1400
1500
0
SAC-1-4
SAC-1-6
SAC-1-2001
SAC-Opt-2001
SAC-2-4
SAC-2-6
SAC-2-2001
SAC-SDS-2001
.10
.15
.20
.25
.30
.35
.40
.45
.50
.55
.60
.65
.70
.75
.80
.85
.90
Zoom avec
une échelle
non logarithmique
Fig.2Temps pu surdesproblèmesave
n
= 100
,d
= 20
,et densité= 1
.moyenne.
Surlesproblèmesdontladureténedépassepas55%
touteslesvaleurssont singletonar onsistantes.Sur
esréseauxsous- ontraintslesalgorithmesdeSAC
vé-rientla onsistan ed'ar de haquesous-problèmeau
plusunefois.Mémoriserdeslistesdesupports( omme
dans SAC2) ou des sous-domaines lo aux ( omme
dansSAC-OptetSAC-SDS)estinutile.Unalgorithme
brutal ommeSAC1 estsusantet 'estSAC-1-2001
quimontrelesmeilleuresperforman es.
Surdesproblèmesayantdes ontraintesplusdures,
quelquesvaleursSACin onsistantessontsupprimées.
Onpeutobserverunpi de omplexitépourune
du-reté de 72%.Cependant, omme indiqué dans [2℄, la
propagation améliorée de SAC2 est inutile sur des
réseaux de ontraintes peu denses et SAC2-X (ave
X
∈ {4, 6, 2001}
) est toujours moins performant que SAC1-X sur lesproblèmesgénérés.Autour dupi deomplexité,SAC-SDS-2001 est lairementleplus
per-formant. SAC-Opt-2001 et SAC1-2001 sont environ
1,7 fois moins rapides, et les autres algorithmes sont
6.2 Réseauxde ontraintesdenses
Lagure2montrelesperforman essurdesréseaux
de ontraintesbinaires ompletsde100variablesdont
lesdomaines omportent ha un20valeurs.
SAC1 et SAC2 ontdes performan es trèspro hes.
Quand toutes les valeurssontSAC onsistantes
(du-retéinférieureà37%)lastru turededonnées
supplé-mentaire de SAC2 est inutile puisqu'il n'y a au une
propagation. Cependant le oût de réation de ette
stru turen'estpasimportant omparéautempsglobal
et SAC2 ré lamedon àpeuprèslemêmetempsque
SAC1 . Autour du pi de omplexité, SAC2-X (ave
X
∈ {4, 6, 2001}
) est un peu plus rapide que SAC1 . SAC2 doitre-vérierla onsistan ed'ar dansmoinsdesous-problèmesqueSAC1 mais ha unede es
vé-ri ationré lameautantdetempsqu'ave SAC1 .Sur
des ontraintes très dures, SAC1 est plusrapide que
SAC2 puisque l'in onsistan e du problème est
trou-vée ave très peu depropagationet la réationde la
stru turededonnéesdeSAC2 estinutile.
Contrairement à e qui est supposé dans [3℄, il
n'est pas préférable d'utiliser AC-4 dans SAC1 (ou
dansSAC2)pluttqueAC-6 ouAC2001 .L'intuition
don-enespérer.Onpeut ependant onstaterqueSAC1-4
et SAC2-4 sont bien plus oûteux que leurs versions
baséessurAC-6 ouAC2001 .
Les meilleurs résultats sont obtenus en utilisant
SAC-Opt-2001 et SAC-SDS-2001 qui sont entre 2,6
et 17 fois plus rapides que les autres algorithmes au
niveaudupi .Cesdeuxalgorithmesontunemeilleure
propagationqueSAC1 maisilsévitentégalement
er-taines tâ hesredondantes et réduisentainsi letravail
a ompli sur haquesous-problème.
7 Con lusion
Nous avons présenté SAC-Opt, le premier
algo-rithme de SAC optimal en temps. Cependant,
l'im-portante omplexitéspatialede etalgorithmelerend
inutilisablesurdegrandsréseauxde ontraintes.C'est
pourquoinousavonsproposéSAC-SDS ,unalgorithme
de SACdontla omplexitétemporellen'estpas
opti-male,maisqui requiertmoinsd'espa equeSAC-Opt.
Une évaluationexpérimentalemontre lesbonnes
per-forman es de es nouveaux algorithmes omparées à
elles des algorithmes pré édemment proposés. Ce i
onduit àenvisagerànouveaul'utilisation delaSAC
ommeunealternativeàla onsistan ed'ar pour
l-trerlesvaleursdesréseauxde ontraintes,oudumoins
àl'utiliser danslespartieslesplusprometteuses du
réseau.Lasingleton onsistan e d'ar peutégalement
être utiliséepourobtenirdesheuristiquese a esde
hoixdes variables à instan ier, de manière similaire
à e qui aété faitave su èspour leproblème SAT
[1,14℄.
Référen es
[1℄ Anbulagan. Extending unit propagation
look-ahead of DPLL pro edure. In Pro eedings
PRI-CAI'04 , pages173182,Au kland,NewZealand,
2004.
[2℄ R. Barták and R. Erben. Singleton ar
onsis-ten y revised. In ITI Series 2003-153, Prague,
2003.
[3℄ R. Barták and R. Erben. A new algorithm
for singleton ar onsisten y. In Pro eedings
FLAIRS'04,MiamiBea hFL,2004.AAAIPress.
[4℄ P. Berlandier. Improvingdomain lteringusing
restri tedpath onsisten y.InPro eedings
IEEE-CAIA'95 , 1995.
[5℄ C.Bessière. Ar - onsisten yandar - onsisten y
onstraintpropagationalgorithm. InPro eedings
IJCAI'01,pages309315,SeattleWA, 2001.
[7℄ R. Debruyne and C. Bessière. From restri ted
path onsisten y to max-restri ted path
onsis-ten y.InPro eedingsCP'97,pages312326,Linz,
Austria,1997.
[8℄ R. Debruyne and C. Bessière. Some pra ti able
lteringte hniquesforthe onstraintsatisfa tion
problem. In Pro eedings IJCAI'97, pages 412
417,Nagoya,Japan,1997.
[9℄ R. Debruyne and C. Bessière. Domain ltering
onsisten ies. Journal of Arti ial Intelligen e
Resear h ,14:205230,2001.
[10℄ J.W.Freeman.Improvementstopropositi ona l
sa-tisabilitysear halgorithms. PhDthesis,
Univer-sityofPennsylvania,PhiladelphiaPA,1995.
[11℄ E.C. Freuder. Synthesizing onstraint
expres-sions.Communi ationsoftheACM ,21(11):958
966,Nov1978.
[12℄ D. Frost, C. Bessière, R. De hter, and J.C.
Régin. Random uniform sp generators. URL :
http://www.i s.u i.edu/
dfrost/ sp/generator.html,
1996.
[13℄ O.Lhomme. Consisten yte hniquesfornumeri
sps. In Pro eedings IJCAI'93, pages 232238,
Chambéry,Fran e,1993.
[14℄ C.M.LiandAnbulagan.Heuristi sbasedonunit
propagationforsatisabilityproblems. In
Pro ee-dings IJCAI'97, pages 366371, Nagoya, Japan,
1997.
[15℄ A.K.Ma kworth. Consisten yinnetworksof
re-lations. Arti ialIntelligen e ,8:99118,1977.
[16℄ J.J. M Gregor. Relational onsisten y
algo-rithms andtheirappli ation in ndingsubgraph
and graph isomorphism. Information S ien e ,
19:229250,1979.
[17℄ U. Montanari. Networks of onstraints:
Funda-mentalpropertiesandappli ationstopi ture
pro- essing. Information S ien e ,7:95132,1974.
[18℄ P.Prosser.Anempiri alstudyofphasetransition
in binary onstraintsatisfa tion problems.
Arti- ialIntelligen e ,81:81109,1996.
[19℄ P.Prosser, K.Stergiou, andTWalsh. Singleton
onsisten ies. In Pro eedings CP'00 , pages353
368,Singapore,2000.
[20℄ Y.Zhangand R.H.C.Yap. MakingAC-3an
op-timalalgorithm. InPro eedings IJCAI'01,pages