• Aucun résultat trouvé

Algorithmes Optimaux et Sous-optimaux de Singleton Consistance d'Arc

N/A
N/A
Protected

Academic year: 2021

Partager "Algorithmes Optimaux et Sous-optimaux de Singleton Consistance d'Arc"

Copied!
10
0
0

Texte intégral

(1)

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�

(2)

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 quel

algo-rithmede onsistan ed'ar .

(3)

( 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 nide

n

variables

X

= {i, j, . . .}

, un ensemble de domaines

D

= {D(i), D(j), . . .}

, où le domaine

D(i)

est l'ensemble ni d'au plus

d

valeurs que la variable

i

peut prendre, et un ensemble de

e

ontraintes

C

= {c

1

, . . . , c

e

}

.Chaque ontrainte

c

k

est dénie par l'ensemble ordonné

var(c

k

)

des variables sur lesquelles elleporte et par l'ensemble

sol(c

k

)

des ombinaisons de valeurs qui la vérient. Une

solu-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ésigne

sol(c)

par

c

ij

.

Unevaleur

a

dansledomained'unevariable

i

(no-tée

(i, a)

)estar onsistantepourla ontrainte

c

k

ssiil existeunsupportpour

(i, a)

sur

c

k

, 'est-à-direune ins-tan iationdesautresvariablesde

var(c

k

)

àdesvaleurs deleursdomainesrespe tifstellequeprises

onjointe-ment, ette instan iation et l'ae tation de

a

à

i

sa-tisfassent

c

k

. Dans le as ontraire,

(i, a)

est dite ar in onsistante.Unréseaude ontraintes

P

= (X, D, C)

est ar onsistant ssi

D

ne ontient au un domaine vide et au une valeur de

D

n'est ar in onsistante. Ondésignepar

AC(P )

le réseauobtenu par suppres-sion dans

P

de toutes les valeurs ar in onsistantes. Si

AC(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éseau

P|

i=a

= (X, D|

i=a

, C)

,obtenuenremplaçant

D(i)

par

le singleton

{a}

, n'est pas ar in onsistant. Si

P

|

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 dans

P

|

i=a

revient à vérier si dans haque domaine

D(j)

il existe au moins une valeur

b

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 surlespaires

im-pliquant

(i, a)

). Pour haque variable

j

, nous devons trouver une valeur

b

∈ D(j)

telle que

((i, a), (j, b))

soit hemin onsistantesur

(i, a)

.Danslepiredes as, toutes lesvaleurs

b

de

D(j)

doiventêtre onsidérées. Par onséquent, il peut être né essaire de vérier la

hemin onsistan ede haquepaire

((i, a), (j, b))

en re- her hantunevaleur

(k, c)

dansledomainede haque troisième variable

k

quisoit ompatible àlafois ave

(i, a)

et

(j, b)

. Cependant, il est inutile de onsidérer lesvariables

k

quinesontpasreliéesà

j

puisquedans ette formepartielle de hemin onsistan e seulesles

paires impliquant

(i, a)

peuvent être supprimées. En utilisant un algorithme de hemin onsistan e

opti-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 valeur

ompatibleave

((i, a), (j, b))

dans

D(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 esur

uneautrevaleur

(j, b)

.Eneet,unepaire

((i, a), (j, b))

peut être hemin onsistante sur

(i, a)

mais devenir hemin in onsistante suite à la suppression de

er-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 aumoins

en

O(Σ

(i,a)∈D

ed

2

) = O(end

3

)

(4)

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 de

AC(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)

guraitdans

AC(P |

i=a

)

.Ce i onduitàune meilleure omplexité temporelle que elle de SAC1

mais 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,estunalgorithme

quiré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ème

P|

j=b

haquefoisqu'ondéte te la SAC in onsistan e d'une valeur

(i, a)

( e qui re-présente

n

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 haque

sous-problème

P|

i=a

, detelle sortequ'on puisse béné ier de l'in rémentalité de l'algorithme d'AC sur haque

sous-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 nombre

devaleursdans

P

.

Dans equisuit,

P

ia

estlesous-problèmedanslequel SAC-Opt mémoriseledomaine ourant(noté

D

ia

)et lastru turededonnées orrespondantàlaréalisation

de l'AC dans

P|

i=a

.

propagAC(P, Q)

désignela fon -tion qui propage in rémentalement la suppression de

l'ensemble

Q

devaleursdansleproblème

P

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ès

avoir rendu le problème ar onsistant (ligne 1), la

bou ledelaligne2 réeleproblème

P

ia

pour haque

singleton ar onsistan e

fun tionSAC-Opt(inout

P

:Problem):Boolean; /*initphase*/;

1 if AC

(P )

thenPendingList

← ∅

elsereturnfalse ; 2 forea h

(i, a) ∈ D

do

3

P

ia

← P

/* opyonlydomainsanddata stru tures*/;

4

D

ia

(i) ← {a}

;

Q

ia

← D(i) \ {a}

; 5 if

¬propagAC(P

ia

, Q

ia

)

then 6

D ← D \ {(i, a)}

;

7 if

propagAC(P, {(i, a)})

then

8 forea h

P

jb

su hthat

(i, a) ∈ D

jb

do 9

Q

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

)

then

Q

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 19

D

jb

(i) ← D

jb

(i) \ {a}

;

Q

jb

← Q

jb

∪ {(i, a)}

;

20 PendingList

PendingList

∪ {(j, b)}

; 21 returntrue;

valeur

a

de haque domaine

D(i)

omme étant une opie de l'état ourant de

P

. Puis, à la ligne 5, la suppression de haque valeur diérente de

a

pour

i

est propagéedans

P

|

i=a

.Si unsous-problème

P

ia

est ar in onsistant,

(i, a)

estéliminéeduproblème prin- ipal

P

et ette suppression est propagée dans

P

(ligne7).L'avantagedepropagerimmédiatementdans

leproblè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 ationde

P

(ligne3).Pour haque sous-problème

P

jb

déjà rééave

a

∈ D

jb

(i)

,

(i, a)

est pla éedans

Q

jb

et

P

jb

estpla édansPendingListpour unefuture propagation(lignes910).

Unefoislaphased'initialisationterminée,nous

sa-vonsquePendingList ontienttouteslesvaleurs

(i, a)

pour lesquelles des suppressions de valeurs SAC

in- onsistantes (mémorisées dans

Q

ia

) n'ont pas en ore été propagéesdans

P

ia

. Labou le delaligne12 pro-page essuppressions(ligne14).Quandlapropagation

é houe, ela signie que

(i, a)

est elle-même SAC in- onsistante.Elleestalorsretiréedudomaine

D

du pro-blèmeprin ipal àlaligne16et haquesous-problème

(5)

P

jb

ontenant

(i, a)

estmisàjourainsiquesa listede propagation

Q

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éede

D(i)

.

(i, a)

aétéretiréesoit en ligne 6soit en ligne 16 par e que l'ar in onsistan e

de

P

ia

aététrouvée. Si

P

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 valeurs

pré é-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 que

P

ia

ne peut pas être rendu ar onsistant sans la présen e de ertaines valeurs

SACin 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,tousles

sous-problèmes

P

ia

sont ar onsistants. Par onséquent, pourtoutevaleur

(i, a)

restantdans

P

à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-à-dire

O(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

et

nd

· ed

2

.Danslabou le

while

(ligne 12), lapropagation de la onsistan e d'ar peut être

appelée

nd

foispour ha undes

nd

sous-problème. Ce-pendant,AC-6 etAC2001 étanttousdeux

in rémen-taux, la omplexité des

nd

restri tions sur le même

problè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 en

nd

· ed

2

. Nousdevons

ajouterà elala mise à jour des listesen lignes 8et

18.Danslepiredes as,lesvaleurssontretiréesuneà

une, etdon

nd

valeurssontpla éesdansles

nd

listes

Q

, onduisant à une mise à jour de PendingList en

n

2

d

2

. Si

n < e

,la omplexité temporelletotale esten

O(end

3

)

, equi estoptimal.

2

Remarques. Nousavons hoisideprésenterleslistes

Q

ia

omme des listes de valeursdont la suppression doitêtrepropagéepar equel'algorithmed'ar

onsis-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èmes

P|

i=a

, etpour garan-tirune omplexitétemporelleen

O(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 een

nd·ed

pourréaliserlaSAC. Nous proposons dans ette se tion d'abandonner

l'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

(6)

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 al

D

ia

du sous-problème

P

|

i=a

ainsiquesalistedepropagation

Q

ia

. Notons que ette présentation faisant l'hypothèse de

l'emploi de l'algorithmeAC2001 ,

Q

ia

est une listede variables

j

dontledomaineaétémodié (dans SAC-Opt il s'agit d'une liste de valeurs

(j, b)

supprimées de

D

ia

). Commedans SAC-Opt, grâ e auxdomaines lo aux

D

ia

nous savons quellesvaleurs

(i, a)

peuvent ne plus être SAC onsistantes suite à la suppression

d'une valeur

(j, b)

: il s'agit des valeurs

(i, a)

telles que

(j, b)

était dans

D

ia

. Ces domaines lo aux sont égalementutiliséspouréviter dere ommen eràzéro

haquenouvellephase de propagation d'AC dans les

sous-problèmes. En eet,

D

ia

est exa tement le do-maineàpartirduquelil onvientdepoursuivrela

ré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é édentes

propa-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. La

stru ture de données n'existe qu'au niveau du

pro-blèmeprin ipal

P

.Dansle asd'AC2001 ,lastru ture

Last

quimémorisedans

Last(i, a, j)

lapluspetite va-leurde

D(j)

ompatibleave

(i, a)

sur

c

ij

est rééeet mise à jour uniquement dans

P

. Cependant, elle est utiliséepartouslessous-problèmes

P

ia

pouréviterde refaire destestsde onsistan edéjàréalisésdans

P

.

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 dans

P

ia

(lignes 69).Notons que 

D

ia

=

nil

 signie qu'ils'agitdelapremièreréalisationdel'ACdans

P

ia

, et

D

ia

doitdon êtreinitialisé(ligne8). Si

P

ia

estar in onsistant,

(i, a)

estSACin onsistante.Elle estpar onséquentretiréede

D

(ligne11)et ettesuppression est propagéedans le problèmeprin ipal

P

au moyen de la fon tion

propagMainAC

(ligne 12). Chaque va-leur

(i, a)

suppriméede

P

est pla ée dans l'ensemble Deleted (lignes11et 24).Cet ensembleest utilisépar

updateSubProblems

(ligne13)pourquelesvaleurs re-tirées de

P

soient supprimées des sous-problèmes, et pourmettre àjour leslistes

Q

jb

et PendingList pour

fun tionSAC-SDS-2001(inout

P

:problem): Boolean;

1 if AC2001

(P )

thenPendingList

← ∅

elsereturn false ;

2 forea h

(i, a) ∈ D

do 3

D

ia

← nil

;

Q

ia

← {i}

;

4 PendingList

PendingList

∪ {(i, a)}

; 5 whilePendingList

6= ∅

do

6 pop

(i, a)

fromPendingList; 7 if

a ∈ D(i)

then

8 if

D

ia

= nil

then

D

ia

← (D \ D(i)) ∪ {(i, a)}

;

9 if

propagSubAC(D

ia

, Q

ia

)

then

Q

ia

← ∅

;

10 else

11

D(i) ← D(i) \ {a}

;Deleted

← {(i, a)}

; 12 if

propagMainAC(D, {i},

Deleted

)

then 13

updateSubProblems(

Deleted

)

14 elsereturnfalse ;

15 returntrue;

fun tion

Propag Main/Sub AC

(inout

D

:domain;in

Q

:set;

inoutDeleted :set):Boolean;

16 while

Q 6= ∅

do 17 pop

j

from

Q

;

18 forea h

i ∈ X

su hthat

∃c

ij

∈ C

do 19 forea h

a ∈ D(i)

su h that

Last(i, a, j) 6∈ D(j)

do

20 if

∃b ∈ D(j), b > Last(i, a, j) ∧ c

ij

(a, b)

then

21

Last(i, a, j) ← b

22 else

23

D(i) ← D(i) \ {a}

;

Q ← Q ∪ {i}

; 24 Deleted

Deleted

∪ {(i, a)}

; 25 if

D(i) = ∅

thenreturnfalse ;

26 returntrue;

/*

· · ·

in

propagMainAC

butnotin

propagSubAC

*/; pro edure

updateSubProblems

(inDeleted :set);

27 forea h

(j, b) ∈ D | D

jb

Deleted

6= ∅

do 28

Q

jb

← Q

jb

∪ {i ∈ X | D

jb

(i) ∩

Deleted

6= ∅}

; 29

D

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 ipal

P

, et

propagSubAC

, qui propagelessuppressionsdanslessous-problèmes

P

ia

. Lesparties pla éesdansdes boites apparaissentdans

propagMainAC

mais pasdans

propagSubAC

. La fon -tion

propagSubAC

, utilisée pour propager la onsis-tan ed'ar danslessous-problèmes,suitlemême

(7)

del'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 est

utilepourréaliserl'ACplusrapidementdansles

sous-problèmes(lignes1920)puisquenoussavonsqu'iln'y

a pas de support pour

(i, a)

sur

c

ij

plus petit que

Last(i, a, j)

dans

P

, et dans les sous-problèmes éga-lementpar onséquent.Cependant, ettestru tureest

partagé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 que

Last(i, a, j)

soiten orelepluspetitsupport danslesautres

sous-problèmesetdans

P

.Lastru ture

Last

estpar ontre mise à jour lors de la réalisation de l'AC dans

P

par

propagMainAC

. La ligne 24, qui permet de mé-moriser les valeurs retirées de

D

dans Deleted, est laseulediéren e ave AC2001 . Ces suppressions

ef-fe tuées dans

P

peuvent dire tement être réper u-tées dans les sous-problèmes au moyen de la

fon -tion

updateSubProblems

sans qu'il ne soit utile de déterminerànouveauleurin onsistan edansles

sous-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'ACdans

P

de telle sorte quetout support de

(i, a)

dans

D(j)

soit plus grandouégal à

Last(i, a, j)

. Les domainesdessous-problèmesétantdessous-domaines

de

D

, tout support d'une valeur

(i, a)

sur

c

ij

dans unsous-problème est égalementplus grandouégalà

Last(i, a, j)

.Ce ijustieque

propagSubAC

puisse uti-liser la stru ture

Last

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 haque

sous-problème

P

|

i=a

aumoinsunefois.Chaquefoisqu'une valeur

(i, a)

est trouvée SAC in onsistante dans

P

à ause de l'ar in onsistan e de

P

|

i=a

(ligne 9) ou par e que la suppression de valeurs SAC

in onsis-tantes rend

(i, a)

ar in onsistante dans

P

(ligne 23 de

propagMainAC

appelée en ligne 12),

(i, a)

est re-tirée des sous-problèmes (line 29), et PendingList et

leslistesdepropagationlo 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)

SAC2

O(en

2

d

4

)

O(n

2

d

2

)

SAC-Opt

O(end

3

)

O(end

2

)

SAC-SDS

O(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-tantnonvidede

P

|

i=a

.

Complexité. La stru ture

Last

demande un espa e en

O(ed)

.Cha undes

nd

domaines

D

ia

peut ontenir

nd

valeurs et il y a au plus

n

variables dans les

nd

liste de propagation lo ales

Q

ia

. Puisque

e < n

2

, la

omplexité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

eten

nd

· ed

2

.Chaquesuppression

devaleurestpropagéeàl'ensembledessous-problèmes

P

|

i=a

aumoyend'unemiseàjourdePendingList,

Q

ia

et

D

ia

(lignes2730).Ce iré lame

nd

· nd

opérations. Lapropagationdela onsistan ed'ar peutêtre

appe-léeauplus

nd

foisdans ha undes

nd

sous-problèmes. Les domainesde haque sous-problème sont

mé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 en

O(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)

de

D

, SAC-SDS ne teste la onsistan e d'ar que dessous-problèmes

P|

j=b

ayant

(i, a)

dans leursdomaines(etnontouslessous-problèmes omme

lefaitSAC1).Cetteaméliorationn'est ependantpas

(8)

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àobtenir

une 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 (potentiellement

nd

· nd

fois)alorsqu'une telle dupli ation n'est réalisée qu'une seule fois pour

haque 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

(9)

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 de

omplexité,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 dansmoins

desous-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

(10)

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

Figure

Tab. 1  Les omplexités dans le pire as des algo-
Fig. 1  T emps pu sur des problèmes ave n = 100 , d = 20 , et densité = .05 .
Fig. 2  T emps pu sur des problèmes ave n = 100 , d = 20 , et densité = 1 .

Références

Documents relatifs

par M. — On propose pour le problème de partitionnement un algorithme d'énumé- ration implicite basé sur la réduction de la fonction économique, Vutilisation d'implications et

Aussi, dans cette phase, on peut procéder comme dans l'algo- rithme 1 et chercher la plus courte CAS (ou CAT) dans G sans imposer son sommet initial (recherche des chaînes

Ayant 4 choix possibles pour chacun de ces blocs, j’ai donc 4 p+1 candidats possibles, qui conviennent tous (voir le produit par blocs t AA).. A est donc comme ci-dessus diagonale

Nous rappelons dans ce paragraphe le théorème de Borel-Weil-Bott qui permet de réaliser toute représentation unitaire irréductible d’un groupe de Lie compact

(Nous n’entamons ici ni la question des formules optimales par la degré d’approximation, ni des formules assymptotiquement optimales).. Récemment les différents auteurs

en résulte un vecteur perpendiculaire à ce plan, vecteur qui est ensui- te normalisé. Le résultat VIn[3,.] ne dépend de VId[3,.] que par un si- gne : quant à la direction, en

Dans une enceinte principale, peuvent se mouvoir d!une part un piston de travail et d!autre part un déplaceur, dont le rôle est de transvaser le fluide de travail depuis le volume

åîí#ïµðéñòóèïò(ôõíÌè÷öªô ø«íiù1æªïµð ú