• Aucun résultat trouvé

Explication systématique des contraintes indexicales

N/A
N/A
Protected

Academic year: 2021

Partager "Explication systématique des contraintes indexicales"

Copied!
11
0
0

Texte intégral

(1)

HAL Id: inria-00000089

https://hal.inria.fr/inria-00000089

Submitted on 26 May 2005

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.

Explication systématique des contraintes indexicales

Ludovic Langevine

To cite this version:

Ludovic Langevine. Explication systématique des contraintes indexicales. Premières Journées Fran- cophones de Programmation par Contraintes, CRIL - CNRS FRE 2499, Jun 2005, Lens, pp.413-422.

�inria-00000089�

(2)

Expliation systématique des ontraintes

indexiales

Ludovi Langevine

Sis , Uppsala Siene Park,SE-75183 Uppsala, Suède

langevinsis.se

Résumé

Plusieurssolveursdeontraintessurdomainesnis,

telsGNU-PrologouSICStusProlog,utilisentlesindexi-

auxpourdénirleursontraintesprimitives.Unindexi-

al exprime un ensemble de valeurs onsistantes pour

une variabledonnée et peut être ompilé en un algo-

rithmedeltrageeae.

L'expliation d'un retrait de valeurs est un sous-

ensemble du store qui sut à justier e retrait. Les

expliations permettent de traiter des problèmes sur-

ontraints ou dynamiques, et de mettre en ÷uvre di-

versesméthodesdereherhe.

Traditionnellement,ilfaut onevoirun algorithme

dealuldesexpliationspourhaquealgorithmedel-

trage.Cetartilemontreque,pourlesontraintesspé-

iéespardesindexiaux,ilestpossiblededériverauto-

matiquementlesalgorithmesd'expliation.Dansleas

de SICStusProlog, ilestmême possiblede tirerpartie

del'implémentationexistantepouroptimiserealul.

Abstrat

Severalonstraintsolvers overnitedomains, suh

asGNU-PrologorSICStusProlog,useindexialstode-

netheirprimitiveonstraints. Anindexialspeiesa

set ofonsistentvaluesforagivenvariableandanbe

ompiledintoaneientlteringalgorithm.

The explanation of a value withdrawal is a set of

onstraints thatis suient tojustify this withdrawal.

Explanationsenablethehandlingofover-onstrainedor

dynami problems, and allow the development of new

searhmethods.

Traditionally,anexplanationalgorithmhastobede-

signed for eah ltering algorithm. This paper shows

thatexplanationalgorithmsanbeautomatiallyderived

fromindexialonstraints. Inthe aseofSICStusPro-

log,explanationomputationanalsobenetfromthe

existingimplementation.

1 Introdution

Lesexpliations sont unevariété detehniquesqui

gardenttraedes déisionsdusolveurde ontraintes,

prinipalement pour améliorer la puissane et l'in-

telligene de la proédure de reherhe. Les explia-

tions ont montré leur eaité pour aélérer la ré-

solution de ertaines lasses de problèmes diiles,

omme la planiation hautement disjontive [13℄.

Elles permettent également de traiter les problèmes

dynamiques et surontraints au sein d'un même ou-

til. De plus, Ferrandet oll. [11℄ ont montré que les

expliations peuvent être utilisées pour déboguer un

programmequinefournit pasunesolutionattendue.

Malgré leurs diverses appliations, les expliations

restentpeuutilisées.Peudesolveursfournissentette

fontionalité, omme le remarquent Douene et Jus-

sien [8℄. Le méanisme de alul des expliations est

intrusif: leodesouredu résolveurdoit êtreinstru-

menté. Le prinipal obstale semble être le out de

edéveloppementdansle÷urdusolveur,maisaussi

danslesalgorithmesdeltragedesontraintesprimi-

tives.Douene et Jussien proposent d'utiliser la pro-

grammation orientéeaspetspouréviter lamodia-

tiondireteduodesouredurésolveur.Quoiqu'ilen

soit, l'algorithme d'expliationd'une ontrainte don-

néedoitêtreonuetdéveloppé.C'estunetâheaisée

mais fastidieuse pourles ontraintes simples,et bien

plusarduepourlesontraintesglobales.Deplus,l'uti-

lisateurdoitexpliquerlesontraintesqu'ildénit.

Certainssolveursutilisentunlangagedédiépourdé-

nirleurs ontraintes primitives.Ces dénitions sont

ensuiteompiléesouinterprétéesdynamiquement.Les

indexiauxsontunmoyenpourdérireesontraintes.

Introduits par Van Hentenryk et oll. [19℄ dans le

adre de (fd), il en existe deux mise en ÷uvres

(3)

sont à la fois délaratif et opérationnels : ils spéi-

entleniveaudeonsistaneàappliqueretorentun

moyensimplederéaliserleltrageorrespondant.

À notre onnaissane, auune implémentation des

indexiauxne fournitd'expliations.Dans etartile,

nous présentonsd'abordun shéma triviald'explia-

tiondesontraintes indexiales.Puis nousproposons

d'utiliserlastruturedulangageindexialpouralu-

lerdes expliations pluspréises. Ce shéma est sys-

tématique : il évite la oneption manuelles d'algo-

rithmesd'expliation.Nousmontronségalementom-

mentbénéier del'implémentation existante desin-

dexiauxpourlimiterlesaluls.Lesexpliationsal-

ulées ne sont pas minimales pour l'inlusion, mais

sontpréises pourunlargesous-ensembledulangage

indexial.

La setion 2 motive notre travail en rappelant les

prinipesdesexpliationsetleursprinipalesapplia-

tions.Lasetion3présentelesontraintesindexiales

quenousvoulonsexpliqueretleursimplantationlas-

siques.Nousexposonsunshémad'expliationtriviale

ensetion4.Un shémapluspréisest ensuiteintro-

duit ensetion 5.Lestravauxonnexes sontdisutés

ensetion6,avantdeonlureen7.

2 Expliations en PPC(DF)

Une expliation est un sous-ensemble des

ontraintes du problème à résoudre sut à justi-

erune ation du solveur. Deux types d'expliations

sont largement utilisés : l'expliation de retrait de

valeursetl'expliationsd'éhe.Lapremièreexplique

pourquoi une valeur donnée, ou un ensemble de

valeurs, doit être retiré du domaine d'une variable.

La seonde est un ensemble onituel qui rend le

problème insoluble. Cette setion dénit d'abord

les expliations en 2.1, puis la setion 2.2 détaille

quelquesunesdeleurspropriétés.Enn,nousprésen-

tonsquelquesappliationsmotivantesdesexpliations

en2.3.

2.1 Dénitions formelles

Considérons la dénition traditionnelle d'un CSP

(onstraint satisfation problem) : unensemble

V

de

variables, une fontion de domaine

D

qui assoie à

haque variable

x

un ensemble ni de valeurs pos-

sibles

D(v)

, et un ensemble

C

de ontraintes.

D

est

le domaine de alul, ensemble des valeurs possibles

pour toutes les variables. Les domaines initiaux des

variables, quand diérents de

D

, sont inlus dans

C

sousformedeontraintesunaires.

dutions de domainesqu'elle opère. Dans et artile,

nous utilisons leformalisme de Ferrand et oll.[10℄ :

lapropagationestmodéliséeparlealuldelalture

desendante de l'ensemble des opérateurs de onsis-

tane loaleassoiés à

C

. Ce formalismeapture l'in-

omplétudedessolveursbaséssurlapropagation.Par

soui de simpliation, nous noterons

CL ↓ (V, C)

la

fontiondedomainesur

V

résultantdelapropagation desontraintes de

C

.

Déf. 2.1 (Expliationde retrait) Une expliation

du retraitde la valeur

d

pour lavariable

v

est unen-

semblede ontraintes

E ⊆ C

telque:

d / ∈ CL↓(V, E)(v)

End'autrestermes, la propagation desontraintesde

E

est sut àjustier l'élimination de la valeur

d

de

D(v)

.

Quand les expliations sont alulées pendant la

propagation, à la volée, l'expliation du retrait de

d

de

D(v)

ontient la ontrainte qui a proédé au l-

trage.Elle ontientégalementlesontraintes respon-

sables des retraitsde haquesupport de lavaleur et

lesexpliations duretraitde haquesupport. Ce rai-

sonnementonduitàunedénitionréursiveélégante

de l'expliation, omme un arbre de preuve de re-

traits de valeurs [10℄ (expliations-arbres). Ii, nous

adoptonsuneformalisationplussimpleoùlesexplia-

tionssontdesensemblesde ontraintes (expliations-

ensembles)[15℄).

Déf. 2.2 (Expliationd'éhe) Une expliation

d'éhe de

(V , C)

est un ensemble de ontraintes

E ⊆ C

telque:

∃v ∈ V · CL↓(V, E)(v) = ∅.

End'autrestermes,lesous-ensemblede ontraintes

E

estunonit :il n'admetauunesolution.

Dans lasuite,parlantindiéremmentd'expliation

deretraitoud'éhe,nousnoteronsexpliationd'une

déision.

2.2 Caratérisationdes expliations

Nousnotons

E

l'ensembledesexpliationsdéjàal- ulées.

E

estunefontionpartiellede

V×D

dans

P (C)

,

P (C)

estl'ensembledespartiesde

C

.Nousutilisons

lanotationensembliste:

E ∈ V ×D×P (C)

Propriété 2.1 (Expliationde tout retrait)

E

est une fontion partielle dont le domaine est

l'ensemble desretraitsopérés :

∀v ∈ V · ({d ∈ D | ∃(v, d, E) ∈ E} = (D −D(v)))

(4)

ationspeuventêtretrouvées.Premièrement,si

E

ex-

plique une déision,alors tout sur-ensemble

E

de

E

dans

C

estégalementuneexpliationdeettedéision,

parsuitedelamonotoniitédesopérateursderédu-

tion.Ainsi,

C

est uneexpliationtrivialede toutedé-

isiondurésolveur.Deuxièmement,plusieursexplia-

tions dièrentes de lamême déisionpeuventoexis-

ter du momentqu'ilexiste deux expliations

E 1 ⊆ C

et

E 2 ⊆ C

tellesque

E 1 ∩ E 2

n'estpasuneexpliation

deettedéision.

Ågren [1℄ dénit laplus ne expliation d'une de-

ision ommel'expliation qui implique unminimum

de variables. Un ritère plus ourant est la minima-

litépourl'inlusiond'uneexpliation[14℄.Ii,omme

formalisé par Ferrand et oll. [10℄, nous onstruisons

lesexpliationsàpartird'expliationsexistantes,ajou-

tantlaontraintedélenhantladéision:

Propriété 2.2 (Expliationonstrutive)

Chaque expliation de

E ∈ E

est onstituée de la

ontrainte

c

et d'un ensemble (éventuellement vide) d'expliations. Formellement, haque

(v, d, E)

de

E

est telque:

E = {c} ∪

n

[

i=1

E i

Deplus,haque

E i

onernedesvariables de

var(c)

ausede loalitédualul) :

∀i ∈ J1, nK, ∃v i ∈ var(c), ∃d i ∈ D · (v i , d i , E i ) ∈ E

ave

var(c)

l'ensembledesvariables impliquéesdans

c

.

Parsuite,nous onsidéronsla minimalitéloalepour

l'inlusion [14℄. Une expliation est loalement mini-

malepourl'inlusionsielleutilise unminimumd'ex-

pliations antérieures

E i

.

2.3 Appliationsmotivant lesexpliations

Nous sommes intéressés par quatre appliations

prinipales desexpliations,àsavoir: ledébogage,le

traitementdesproblèmesdynamiques,larésolutionde

problèmessurontraintset l'enrihissementdelapro-

édure de reherhe. Nous allons résumer es quatre

pointsande motivernotre ontribution. Nepréten-

dantnullementprouverl'intérêtdesexpliations,nous

renvoyonsleleteurauxtravauxitéspourdesdétails

tehniquesouquantitatifs.

Premièrement, les expliations aident à déboguer

un programme inorret. Elles sont un moyen de

trouver la raison d'une réponse manquante. Quand

une solution attendue d'un problème n'est pas trou-

vée par la reherhe, ela signie qu'un ensemble de

lantdesexpliationspeutexhiberunensembleoni-

tuelpréis,'est-à-direunensembledeontraintesjus-

tiant le rejet de la solution. Le programmeur peut

ainsiseonentrersur e onitande trouverl'ori-

ginedubogue.Ferrandet oll.[11℄ ontadapté ledé-

bogagealgorithmiqueenesens.

Deuxièmement, le même prinipe permet de gérer

lesproblèmes surontraints.Quand unproblèmeor-

retement formulé et programmé est insoluble, des

ontraintes doivent être relâhées. Ouis et oll. [17℄

montrentommentlesexpliationsaidentl'utilisateur

à hoisir les ontraintes à relâher. L'utilisation de

leur outilparun utilisateurnal nenéessite auune

onnaissanedelaprogrammationparontraintes.

Troisièmement,lesexpliationsaméliorentletraite-

mentdes problèmesdynamiques,oùlesontraintes à

prendreenomptepeuventhangerauoursdel'exé-

ution. Certaines ontraintes peuvent être relâhées,

d'autres ajoutées. De tels problèmes se renontrent

dans des systèmes onfrontés à une demande ou un

environnementhangeant.Lesexpliationspermettent

ausolveurderelâhern'importequelleontraintetout

enannulantseseetspassés,eteiaveunminimum

dealuls.Deplus,l'étataprèslerelâhementestsou-

ventprohedel'anienétat.C'estainsiqu'Elkhyariet

oll.[9℄ gèrent diérentsproblèmes dynamiquesd'or-

donnanement où les ativités et ressoures peuvent

être ajoutées ousupprimées, et où les ontraintes de

préédenespeuventêtremodiées.Leursrésultatssur

delargesinstanesmontrentl'eaitédelaméthode

etlastabilitédesordonnanementsproposésparl'ou-

til.Delamêmemanière,l'outild'emploidutempsde

Cambazardetoll.[2℄prendenomptel'aspetdyna-

miqueinhérentauxressoureshumaines.

Enn, les expliations libèrent le solveur du ar-

an du retour-arrière hronologique. Le solveur pou-

vant relâher n'importe quelle ontrainte, la proé-

dure de reherhe n'est plus néessairement un par-

oursd'arbre.Àhaqueéhe,unonitpeutêtreex-

trait. Lesonits extraitsdurantl'exéution peuvent

êtreanalysésand'adapterl'heuristique.Ii,lesexpli-

ations ontun double intérêt.Elles permettent d'ap-

prendre la ause des éhes et d'eetuer un bak-

traking dynamique.Cetteintégrationdelapropaga-

tiondeontraintesdanslebaktraking intelligent

évite de répéter les mêmes impasses. Laplus onnue

destehiquesdee typeest MAC-DBT(Maintaining

Ar-Consisteny withDynami Baktraking),propo-

(5)

X in min(Z) - max(Y) .. max(Z) - min(Y),

Y in min(Z) - max(X) .. max(Z) - min(X),

Z in min(X) + min(Y) .. max(X) + max(Y).

Fig.1Spéiationdelaonsistanedebornespour

laontrainte

X + Y = Z

(syntaxeSICStusProlog)

plus(X,Y,Z) +:

X in dom(Z) - dom(Y),

Y in dom(Z) - dom(X),

Z in dom(X) + dom(Y).

Fig. 2 Spéiation de la onsistane d'hyper-ar

pour

X + Y = Z

3 Contraintes indexiales

Nousrappelonsiilesbasesdesindexiaux:leurex-

pressivité(se.3.1),syntaxe(se.3.2),ainsiqueleurs

shémas de ompilationet de propagation (se. 3.3).

La setion 3.4 présente quelques aspets tehniques

deleursimplémentations.Deplusamplesdétailssont

donnéspar Carlsson et oll. [4℄ pourSICStus Prolog

etCodognetetDiaz[5℄pourGNUProlog.initialpaper

byVan

3.1 Expressivitédes indexiaux

Unindexialestuneontraintedelaforme

V in R

,

V

est une variable de domaine et

R

une expres-

siondehamp,représentantunensembledevaleurs 1

.

L'expression

R

peut inlure des informations sur les domaines d'autres variables, telles leurs bornes, leur

ensembledevaleurs,leurvaleurnaleouleurardina-

lité(notérespetivement

min

,

max

,

dom

,

val

,et

card

).

Ainsi, le domaine de

V

doit être un sous-ensemble de

R(D)

, évaluation de

R

dans l'état des domaines

D

. L'indexial spéie don un ensemble de valeurs

valides pour

V

. Comme expliqué en 3.3, un indexi-

al peut être ompilé en un algorithme de ltrage.

Denombreusesontraintesstandards(arithmetiques,

booléennes ou symboliques) peuvent être exprimées

par la onjontion de plusieurs indexiaux, à raison

d'unindexialparvariable.EnSICStus,lesindexiaux

sontégalementutiliséspourspéierlestestsd'impli-

ationetdesatisabilité.

Lesindexiaux peuvent oder plusieursniveaux de

onsistane.Parexemple,lagure1présenteomment

spéier la onsistane de bornes pour la ontrainte

1

Noustraduironsletermeanglaisrangeparhampdans

eontexte,ommehampdevaleurspossibles.

arithmetique X+Y=Z,grâe àdes intervalles délimités

parlesbornesdesvariables(A..Bestl'intervalleentre

Aet B).Laonsistaned'hyper-arpeutêtrespéiée

enutilisantl'additionetlasoustrationpoint-à-point,

ommelemontrelaFigure 2.

L'intérêtdesindexiauxest triple:leurlangageest

simple à maîtriser, ils sont simples à onevoir et à

omprendre,etils sontdesspéiationsexéutables.

Deplus,ilestpossibledelesimplémentertrèseae-

ment.Même s'ilsmanquentd'expressivité,inapables

d'exprimer les algorithmesomplexes des ontraintes

globales,ilsonstituentunoutilpuissantpourdérire

unlargeéventaildeontraintessimples.Pourpreuve,

la totalitéde labibliothèque domaines nis deGNU

Prologestimplémentéeenutilisantlesindexiaux.Les

indexiauxpermettentaussidedévelopperrapidement

desrésolveursspéialisés.

3.2 Une syntaxeuniéedes indexiaux

L'expressivité et la syntaxeexates des indexiaux

varient légèrement suivant les implémentations. Par

exemple,GNUPrologproposelamultipliationpoint-

à-point entre deux hamps de valeurs [6, Se. 7.3.1℄

tandisqueSICStuspermet desévaluationsondition-

nelles. Ii,nous onsidéronsl'union desonstrutions

de es deux implémentations, adoptant si possible la

syntaxede SICStus,et elle deGNU Prologpourles

onstrutionsquiluisontspéiques.

Dans un indexial

V in R

, l'expressionde hamp

R

est une onstrutiondu langage dérit en table 1.

Ce langage a deux niveaux d'expression : les termes

(valeursindividuelles dans

D

),qui peuventêtre om-

binés en hamps (sous-ensembles de

D

). Les valeurs

de hamps élémentaires sont soit le domaine d'une

variable, une énumération de termes ou un interval

entre deux termes. Les hamps peuvent être ombi-

nés en utilisant des opérations ensemblistes (union,

intersetion, omplément) ou l'arithmétique point-à-

point(

P (D) 2 → P (D)

). Les opérations arithmétiques peuvent également ombiner un hamp et un terme

(

P (D)× D→ P(D)

).Lestermesélémentairessont:une borneinférieureousupérieure,laardinalitéoulava-

leur instaniée d'un domaine, ou bien une onstante

de

D

.Lestermespeuventêtreombinésarithmétique- ment.Lasémantiquedénotationnelledees onstru-

tions est dérite dans [5℄. La table 1rappellequatre

fontionnalités avanées.Tout d'abord, l'appel d'une

fontion C (aspet non doumenté de GNU Prolog),

avedestermesouhampspourparamètres.Lafon-

tion

f

doit renvoyerunhampdevaleurs.C'estainsi

qu'est implémentée la ontrainte element en GNU

Prolog. Ensuite, SICStus propose deux onstrutions

d'évaluationonditionnelleoùlehampévaluédépend

delavaleurd'uneautreexpression(

?

et

switch

).En-

(6)

Constrution

type

Syntaxe Desription

Valeursde

hamps

dom(V )

étatourantde

D(V ) {T 1 , . . . , T k }

ensemble de termes

(S)

T 1 .. T 2

intervalle

JT 1 , T 2 K ⊆ D

Composition

de hamps

R = R 1 op R 2

R 1 /\ R 2

intersetion

R 1 \/ R 2

union

R 1 + R 2

additionpàp.

R 1 − R 2

soustrationpàp.

R 1 ∗ R 2

multipliation pàp.

(G)

R 1 / R 2

divisionpàp. (G)

R 1 mod R 2

modulopàp. (S)

Op.sur un

hamp

\ R 1

omplément

− R 1

négationpàp. (S)

Composer

unhamp

etun terme

R = R 1 op T 1

R 1 + T 1

additionpàp.

R 1 − T 1

soustrationpàp.

R 1 ∗ T 1

multipliationpàp.

R 1 /< T 1

division entière pàp.

(défaut) (G)

R 1 /> T 1

division entière pàp.

(exès) (G)

Valeursde

termes

min(V )

borneinf.de

D(V ) max(V )

bornesup.de

D(V ) card(V )

ardinalité de

D(V )

(S)

val(V )

valeurnalede

D(V )

n

entier,

n ∈ D

inf

borneinf.de

D sup

bornesup.de

D

Composition

de termes

T = T 1 op T 2

− T 1

négation (S)

T 1 + T 2

additionentière

T 1 − T 2

soustrationentière

T 1 ∗ T 2

multipliationentière

T 1 /< T 2

division entière (dé-

faut)

T 1 /> T 2

division entière (ex-

ès)

T 1 mod T 2

moduloentier

Fontions

avanées

R = f(. . .)

f(a 1 , . . . , a k )

appel de fontion, les

a i

sont destermes ou

hamps (G)

R 1 ? R 2

égalà

R 2

si

R 1 6= ∅

,

sinon (S)

switch(T, L)

égalà

L(T )

(S)

unionof(x, R 1 , R 2 ) = ∪ d∈R 1 (R 2 [x ← d])

(S)

Key:

R

,

R 1

et

R 2

sontdeshamps.

T

,

T 1

et

T 2

sontdestermes.

V

estunevariablede

var(V in R)

.

x

estunevariableloale

R[x ← d]

estlasubstitutionde

x

par

d

dans

R L

listede

(i, R i )

ave

i =j ⇒ R i = R j

,et

L(i) = R i

(G)signaleunespéiitéGNUProlog.

(S)signaleunespéiitéSICStusProlog

pàp.signiepoint-à-point

Tab.1Syntaxeuniée desontraintesindexiales

n,

union

alule,enSICStus,l'uniondesévalua- tionsde

R 2

pendantqu'unevariableloale

x

parourt

lesvaleursde

R 1

[3,Se.34.10.2℄.

3.3 CompilationetPropagationdesindexiaux

Les indexiauxontunshéma de ompilation et de

propagationsimple.Chaqueindexial

V in R

estom-

pilé en un moyen d'évaluer

R(D)

(f. 3.4). Le réveil

d'un indexialprovoque ette évaluation, puisle al-

uldel'intersetionentrel'ensemblerésultantetledo-

maineourantde

V

. Cetteintersetion

R(D) ∩ D(V )

devientlenouveaudomainede

V

.Unéheestdéteté

lorsqueette intersetionestvide.

Leréveild'unindexialestprovoquépartoutemise

àjourd'undeséléments-domainesimpliquésdansson

hamp

R

. Par exemple, un indexial dont le hamp

seréfère à

min (X )

,

max (Y )

, et

dom (Z)

seraréveillé à

haqueaugmentationdelaborne inférieurede

D(X)

,

diminution de

max(Y )

et tout retraitdans

D(Z )

. La

orretion de e shéma de propagation néessite la

monotoniité deshampsdesindexiaux.

Propriété 3.1 (Monotoniité) Un hamp

R

est

monotonessi

R(D) ⊆ R(D )

,pourtoutepairedefon-

tions domaine

(D, D )

sur

V

telle que

∀v ∈ var(R) · D(v) ⊆ D (v)

.Lorsque

R

estnon-monotone, l'évalua-

tionde

R(D)

estretardéejusqu'àeque

D

assureette

monotoniité.

Lastratégieexatedépend del'implémentation[4,5℄.

Ii, nous supposerons qu'un indexial ne peut ee-

tuerde retraitde valeursque quandsa monotoniité

estertaine.Cettepropriétéestappeléemonotoniité

pourla propagation.

3.4 Évaluationdes indexiaux

EnSICStus,lehampd'unindexialestompiléen

notation post-ordrepuis en un ode pour mahine à

pile. Quand unindexial

V in R

est reveillé, lama-

hineàpileévalue

R(D)

,suivantl'étatourantdesdo-

maines. Le résolveur alulealors laposition relative

de

R(D)

parrapportà

D(V )

,l'intersetionn'étantpas diretementalulée.Silesdeuxensemblesserévèlent

disjoints,unéheestdélenhé.Sinon,lesvaleursin-

onsistantessontretiréesde

D(V )

.En 5,nouspropo-

sonsdetirerpartideetteimplémentation:évaluation

de

R(D)

parune mahine àpile et omparaisonave

D(V )

ensuite.

EnGNUProlog,haqueindexialestompiléenune

fontionCalulant

R(D)

. Lorsduréveildel'indexi-

al,ettefontionestappelée.Silehamprésultatest

non vide,l'intersetion

R(D) ∩ D(V )

estalulée par

unetbit-à-bit,etaetéeà

D(V )

.Iln'yadonpasde

(7)

omparaisondirete entre

R(D)

et

D(V )

.Cetteom-

pilationnativeest undes pointslés de GNUProlog

etpermetuneévaluationplusrapide(f.laomparai-

sonde[4℄).Lesontraintesprimitivesbénéientainsi

desoptimisationsduompilateurC,auprixd'unode

plusvolumineux (parrapport au byteode orrespon-

dant).Unautreinonvénientestlareompilationobli-

gatoiredusolveurFDlorsquel'utilisateurveutdénir

unenouvelleontrainteprimitive.

4 Expliations triviales des indexiaux

Commenousl'avonsdétailléen3,lelangageindexi-

alse réfèreaux domainesdeinq manières,notées :

min (V )

,

max (V )

,

dom (V )

,

val (V )

and

card (V )

.Appe-

lonséléments-domaines esréférenesaux(partiesde)

domaines. L'évaluation d'une expression-hamp dé-

penddeséléments-domainesqu'elleontient.Pluspré-

isément,

R

estunefontiondeseséléments-domaines.

L'absened'unevaleurdans

R(D)

peuts'expliquerpar l'étatourantdeséléments-domainesprésentsdans

R

.

Nous dénissons quelques raouris pour expliquer

l'état ourant des éléments-domaines :

E min (V )

est

l'expliation de lavaleurde

min(D(V ))

,

E max (V )

est

l'expliation de la valeur de

max(D(V ))

, et

E dom (V )

est l'expliation de l'ensemble de

D(V )

. Leur déni-

tionest simple:

E min (V ) = [

d∈ D ∧ d<min(D(V ))

E(V, d)

E max (V ) = [

d∈ D ∧ d>max(D(V ))

E(V, d)

E dom (V ) = [

d ∈ D ∧ d / ∈D (V )

E(V, d)

Laardinalitéde

D(V )

,àl'instar desavaleur ins-

taniée, dépend de tous les retraits eetués dans

D(V )

:

E val (V ) = E card (V ) = E dom (V )

.

Enévaluant

c ≡ V in R

,nousexpliquonsleretrait

de

D(V ) − R(D)

de

D(V )

par:

T (V, R, D) = {c} ∪

 [

v ∈ var(R)

∪ e∈elements(R,v) E e (v)

elements(R, v)

est l'ensemble des éléments-

domainesserapportantàlavariable

v

dans

R

.

Théorème4.1 (Corretion du shéma trivial)

Si unindexial

V in R

est monotone pour la propa-

gation (f. 3.3), alors

T (V, R, D)

est une expliation

orreteduretrait de valeursdû àetindexial.

Cerésultatpeutêtreprouvéparindutionfortesurla

taillede

T (V, R, D)

.Leasdebaseestuneexpliation

singleton,signiantque

V in R

estunaire,ouquetout

les éléments-domainesde

R

ontleur valeur nominale

(i.e.

min(D) ∈ D(X )

pour

min (X)

,

max(D) ∈ D(X )

pour

max (X)

,

D(X) = D

sinon). L'étape d'indution

estévidentepourlesélémentsdutype

dom

,

val

et

card

(d'aprèslapropriété2.2).Enn,notonsquelamonoto-

niitéde

R

impliquelamonotoniitépourl'augmenta- tiondehaundeséléments

min

,etpourladiminution desélémentsdetype

max

.

R(D) = ∅

provoquant un éhe, les expliations triviales peuvent être utilisées omme expliations

d'éhe(évidentd'aprèsdéf.2.2):

Théorème 4.2 (Expliationd'éhe) Si un in-

dexial

V in R

est évalué et que

R(D) ∩ D(V ) = ∅

,

alors

E dom (V ) ∪ T (V, R, D)

estuneexpliation d'éhe

pour

(V , C)

.

Ces expliations ne sont pas minimales, mais elles

sont failes à intégrer dans le proessus d'évalua-

tion.L'ensemble

v ∈ var(R) elements(R, v)

étantonnu

au moment de la ompilation, le alul de l'explia-

tion peutêtre intégré statiquementdans l'évaluation

de l'indexial. Le seul alul supplémentaire est dû

à l'opération

sur

P (C) 2

. La setion 5 propose un

shémadonnantd'autresexpliationsnon minimales,

maispluspréisesnéanmoins.

5 Expliations préises aux bornes

Nous proposons maintenant un shéma systéma-

tiquedealuld'expliations,pluspréisquelesexpli-

ations triviales.Ce shéma tire partidelastruture

de l'indexial exéutéet repose sur une partition des

valeursà retirer.Cette partition privilégieles bornes

du domaine. Après avoir motivé e hoix (se. 5.1),

nousdénissonslesexpliationsalulées(se.5.2)et

présentonsle shémaen regard dela syntaxedes in-

dexiaux (se.5.3).

5.1 Bornes desdomaines etPropagation

Lesbornesdesdomainesontsouventunrleparti-

ulierdanslesalgorithmesdeltrage.Nombred'entre

eux sont basés sur la onsistane de bornes, qui ap-

proximehaquedomaine

D(v)

parsonpluspetitinter-

valle englobant, 'est-à-dire

Jmin(D(v)), max(D(v))K

.

Cettetehnique faitpeude as destrous des do-

maines et ore un niveau de onsistane plus faible

quel'hyper-aronsistane.Maissarapiditédealul

enfaitsouventunbonompromisélagage/vitesse.

Comme nous le détaillerons, pour beauoup des

onstrutionsdulangageindexial,lamise àjour des

bornesd'undomaineestlaonséquenedemisesàjour

debornesd'unouplusieursautresdomaines.Celaest

égalementvalablepourertainesonstrutionsaom-

plissantl'hyper-aronsistane.

(8)

min int

X X

max X de R(D)

Borne inf.

R(D)

Intérieur de Borne sup.

de R(D)

Nouveau domaine de X Domaine de X Évaluation de R

Valeurs retirées

Fig. 3 Partition des valeurs retirées basée sur les

bornesde

R(D)

5.2 Expliations partiulièrement préises aux

bornes

Soit

∆ V

l'ensemble des valeurs à retirer de

D(V )

dû à l'indexial

V in R

,

∆ V = D(V )− R(D)

. Nous

partitionnons

∆ V

entrois ensembles (éventuellement vides):

1.

min V = {δ ∈ ∆ V | δ < min(R(D))}

;

2.

max V = {δ ∈ ∆ V | δ > max(R(D))}

;

3.

int V = ∆ V − ∆ max V ∪ ∆ min V

.

Lagure3illustreesdénitions.Lesdomainessont

unensemble dearrésblans,lesparties noiresétant

les valeurs manquantes.

min V

(resp.

max V

) est l'en-

semble des valeurs dont le retrait est dû à la borne

inférieure (resp. supérieure) de

R(D)

.

int V

est l'en-

semble desvaleursretiréesentrees bornes.Triviale-

ment,

min V

,

max V

,et

int V

estunepartition de

∆ V

.

Nous proposons d'expliquer haque partie

i V

sé-

parément. Dans la suite, nous herhons à expliquer

les bornes du hamp de valeurs onsidéré, adoptant

l'extension terminologiquesuivante :

Déf. 5.1 (Expliquerune expression indexiale)

E ⊆ C

est une expliation de la propriété

P

d'une

expression (hamp ou terme)

e

du langage indexial

ssi

e(CL↓(V , E))

satisfait

P

.

Pouruneexpressiondehamp

R 1

,

E min (R 1 )

estl'expli-

ationdelavaleurde

min(R 1 (D))

,

E max (R 1 )

explique

max(R 1 (D))

.

E int (R 1 )

expliquelestrousde

R 1 (D)

.

Pouruneexpressionterme

T 1

,

E val (T 1 )

expliquelava-

leurde

T 1 (D)

.

Propriété 5.1 (Expliquerla partition

∆ V

)

{c}∪

E min (R)

(resp.

{c} ∪ E max (R)

) est une expliation du

retraitde

min V

(resp.

max V

)de

D(V )

,ave

c ≡X in R

.

{c} ∪ E int (R)

estune expliation duretraitde

int V

de

D(V )

.

Expression

e E val (e)

min(V ) E min (V )

max(V ) E max (V )

card(V ) E dom (V )

val(V ) E dom (V )

n, inf, sup ∅

−T 1 E val (T 1 ) T 1 [+,−,/<,/>] T 2 E val (T 1 ) ∪ E val (T 2 )

E val (T 1 ∗ T 2 ) = 8

<

:

E val (T 1 )

si

T 1 = 0

E val (T 2 )

si

T 2 = 0 ∧ T 1 6= 0 E val (T 1 ) ∪ E val (T 2 )

sinon

E val (T 1 mod T 2 ) =

8

<

:

E val (T 1 )

si

T 1 = 0

E val (T 2 )

si

T 2 = 1 ∧ T 1 6= 0 E val (T 1 ) ∪ E val (T 2 )

sinon

Tab. 2 Expliations préises aux bornes pour les

termes

5.3 Shémade alul

Pour un indexial donné

V in R

, le alul de

E min (R)

,

E max (R)

et

E int (R)

est ompositionnel, sui-

vant la struture de l'expression

R

: les expliations sontdesattributssynthétisésdel'arbresyntaxiqueas-

soiéà

R

.Pourhaqueonstrutiondelatable1,nous

spéionsommentsynthétiserlesexpliationsàpar-

tirde elles dessous-expressions.La table 2présente

leshémadealulpourleniveaudesvaleurstermes,

reprenantlesnotationsde4.Lerésultatd'uneopéra-

tion binaire est expliqué par l'union des expliations

des deux opérandes. Quand il existe un élément ab-

sorbant (tel 0pour

×

et omme opérande gauhede

mod

, 1 ommeopérande droit de

mod

), le terme pre-

nantpourvaleurl'élémentabsorbantsutàexpliquer

lerésultat (lemême raisonnements'applique àl'opé-

randegauhede

/<

et

/<

).

La table 3 présente le shéma de alul pour les

valeurs de hamps. Par manque de plae, nous n'en

détaillons qu'un éhantillon représentatif. Le même

prinipe général s'applique aux onstrutions man-

quantes : nous tentons d'utiliser les expliations des

bornesdesopérandespourexpliquerlesbornesduré-

sultat.

Certaines onstrutions perdent la préision aux

bornes de nos expliations. Ainsi, pour

{T 1 , . . . , T k }

les bornes durésultat peuventêtre dues à n'importe

quel

T i

.Ranerlealul néessiteraitplusd'informa- tionssurles

T i

.D'autresonstrutionsonserventtou- jours lapréisionauxbornes,telles

R 1 +R 2

.Pour

/\

,

lesbornes de

R 1 ∩ R 2

peuventparfoisêtreexpliquées

parlesbornesd'undesdeuxopérandes.Andegarder

uneomplexitéraisonnable,

E int (e)

estl'uniondesex-

pliationsdesdeuxhamps,equimanquesouventde

préision.Celaévitequelaomplexiténedépendede

(9)

Expression

e E min (e) E max (e) E int (e)

dom(V ) E min (V ) E max (V ) E int (V )

T 1 .. T 2 E val (T 1 ) E val (T 2 ) ∅

{T 1 , . . . ,T k } S

i∈J 1 ,kK E val (T i )

− R 1 E max (R 1 ) E min (R 1 ) E int (R 1 ) R 1 + R 2 E min (R 1 ) ∪ E min (R 2 ) E max (R 1 ) ∪ E max (R 2 ) E dom (R 1 ) ∪ E dom (R 2 ) R 1 − R 2 E min (R 1 ) ∪ E max (R 2 ) E max (R 1 ) ∪ E min (R 2 ) E dom (R 1 ) ∪ E dom (R 2 )

R 1 /\ R 2

E min (e) = 8

<

:

E min (R 1 )

si

min(R 1 ) ∈ R 2 E min (R 2 )

si

min(R 2 ) ∈ R 1 E dom (R 1 ) ∪ E dom (R 2 )

sinon

E max (e) = 8

<

:

E max (R 1 )

si

max(R 1 ) ∈ R 2 E max (R 2 )

si

max(R 2 ) ∈ R 1

E dom (R 1 ) ∪ E dom (R 2 )

sinon

E int (e) = E int (R 1 )

R 1 ? R 2

E min (e) =

 E dom (R 1 )

si

R 1 = ∅ E min (R 2 )

sinon

E max (e) =

 E dom (R 1 )

si

R 1 = ∅ E max (R 2 )

sinon

E int (e) =

 ∅

si

R 1 = ∅ E int (R 2 )

sinon

Tab.3Expliationspartiulièrementpréisesauxbornes d'expressionsdehamps(éhantillonreprésentatif)

laardinalité deshamps,pourl'arithmétique point-

à-pointnotamment.

Laorretiondeeshémaseprouveparindution

fortesurlatailledesexpliations,ommeen4.Ii,le

asdebaseetl'étaped'indutiondoiventêtreprouvés

parindutionsurlastruturede

R

,néessitantunas

pourhaqueonstrutiondulangage.

Quandlesindexiauxsontévaluésparunemahine

àpile,ommepourSICStusProlog,lamiseen÷uvre

de e shéma est direte : une pile d'expliations est

ajoutéeàlamahine.Àhaqueempilementd'uneva-

leur terme ou hamp

e(D)

, un triplet d'expliations

(E min (e)(D), E max (e)(D), E int (e)(D))

est empilé sur la

pile d'expliations. Quand la mahine applique une

opération,lesexpliationsdesopérandessontdépilées,

elles du résultats sont alulées suivant l'opération

appliquéeet empilées.

5.4 Variante paresseuse

Au moins la moitié des évaluations d'indexiaux

sont inutiles, le résultat

R(D)

étant un surensemble de

D(V )

[5℄.

L'implantation proposée i-dessus alule trois ex-

pliations pourhaqueonstrution. Si, au nal, au-

unerédutiondedomainen'esteetuée,es aluls

serévèlentinutiles.Etsiunerédutiondedomaineest

néessaire,ertainesdesexpliationsaluléespeuvent

demeurerinutiles.Nousproposonsd'adapterleshéma

pour aluler paresseusement les expliations utiles,

aprèss'êtreassuréque

min V

,

max V

ou

int V

soientnon

vides.Premièrement,uneinstrumentationlégèredela

fontion d'évaluation garde trae des résultats inter-

médiaires.Ensuite,sinéessaire,lesexpliationsutiles

sontaluléesgrâeàette trae.

Instrumentationde l'évaluation. Tandisquelama-

hine àpile évalue

R(D)

, les résultats intermédiaires (termes ou hamps) sont stokés dans un arbre.

Chaque opération de la mahine rée un n÷ud de

et arbre, ontenant le byteode de l'opérationet ses

résultats intermédiaires. Cet arbre a don la même

struture que l'indexial. Reylant des résultats in-

termédiaires, le seul surout est dû àla onstrution

de l'abre. La gure 4 présente ette proédure ins-

trumentée.

I

est leot d'instrutions de la mahine,

S

la pile d'évaluation,

E

un ensemble ordonné de n÷ud représentant la trae des opérations déjà exé-

utées.

new

_

leaf

insèreune nouvellefeuilledans

E

.

new

_

node

extrait les

arity(i)

derniers n÷uds de

E

et insèreunnouveaun÷ud,pèredes n÷uds extraits.

La fontion est prinipalement une boule exéutant

les instrutions de la mahine à pile. À la n de la

fontion,

E

ontientlaraine del'arbreet

R

ontient

R(D)

.

Calul àrebours Aussittl'évaluation de

R(D)

ter-

minée, lerésolveuralule

min V

,

max V

et

int V

.Si né-

essaire,nousalulonsréursivementlesexpliations

néessaires.Pour ela, nous utilisons lesrésultats in-

termédiaires stokés dans l'arbre. Ainsi, nous alu-

lons seulement les expliations néessaires et évitons

(10)

funtion evaluation(

I

,

D

), returns

R

,

E S ← ∅

E ← ∅

while

hIi 6= ∅

do

i ← dequeue(I)

swith

i load

_

min

:

X ← deref

_

var(dequeue(I)) push(S, min(X ))

new

_

leaf ( E , E min (X), int(min(X ))) load

_

max

:

X ← deref

_

var(dequeue(I)) push(S, max(X))

new

_

leaf ( E , E max (X), int(max(X))) load

_

val

:

X ← deref

_

var(dequeue(I)) push(S, val(X))

new

_

leaf ( E , E dom (X ), int(v

_

x)) load

_

dom

:

X ← deref

_

var(dequeue(I)) push(S, D(X))

new

_

leaf ( E , E dom (X ), set(D(X ))) load

_

int

:

t ← deref

_

int(dequeue(I)) push(S, t)

new

_

leaf ( E , ∅, int(t)) load

_

set

:

r ← deref

_

set(dequeue(I)) push(S, r)

new

_

leaf ( E , ∅, set(r))

default:

R ←

ompute(

S

,

i

)

push(

S

,

R

)

new

_

node ( E , i, arity(i), R)

end swith

end while

R ← pop(S)

end funtion

Fig.4Proédure d'évaluationinstrumentée

lespartiesnonpertinentesdel'expression

R

.

6 Travaux onnexes

Ågren [1℄ a onçu et mis en ÷uvre un méanisme

d'expliationpourSICStusProlog.Cetravailestl'une

des premières grandes tentatives d'expliation des

ontraintesglobalesd'un véritable résolveur.Ågrena

égalementmisaupointdesalgorithmespouraluler

les expliations les plusnes de quelques ontraintes

globales lassiques, telles queall_distint(réalisa-

tiondel'hyperar-onsistanepourladiérenedeux

à deux d'uneliste de variables),iruit (ontrainte

qu'un ensemble de sommets d'un graphe forme un

iruithamiltonien).Malheureusement,eméanisme

faitpartied'unebranhereherhedeSICStusPro-

log, non distribuée à e jour. À notre onnaissane,

les raisons qui expliquent et abandon sont les outs

d'élaboration de e méanisme ainsi que la néessité

Ferrand et oll. [12℄ ont proposé un proédé géné-

riquepouralulerlesexpliationsàpartird'unetrae

préisedel'exéutiondusolveur.Ceproédén'estpas

intrusif,tantquelesolveurfournitunteltraeur.On

peutiterquatredeestraeurs,àsavoirpourGNU-

Prolog [16℄, Choo, PaLM (qui trae déjà des expli-

ations) et CHIP. Si l'on onsidère le as de GNU-

Prolog, les expliations issues de et algorithme se-

raient moins préises queles ntres. Commela trae

ne dit pas quelles informations de domaine l'indexi-

al évalué utilise, leurs expliations doivent prendre

enonsidérationtouteslesrédutionsdedomainedes

variables impliquéesdans la ontrainte,depuis ledé-

butdel'exéution.Cealulneprenddonenompte

quelesexpliations

E dom (X)

déjà dénies dansnotre

shéma trivial(Se.4). À e jour, auuneimplémen-

tationdeetalgorithmen'estdisponible.

7 Conlusion

Cetartileaprésentéunshémadeprodutionau-

tomatique d'expliations pour les solveurs basés sur

les indexiaux.Ce shéma utilisela struture des in-

dexiaux pourexpliquerleurs ltrages.Il propose un

ompromisentrepréisionetoutdel'expliation,in-

sistantsurl'expliationsdesbornesdesdomaines.

Notre shéma permet l'expliation automatiquede

plusieursrésolveursexistants.Il peutégalementtrai-

ter lesontraintes quel'utilisateur dénit parindexi-

aux.Lesontraintesquenousgéronssontlimitéespar

l'expressivité desindexiaux, exluantles ontraintes

globales. Cependant, l'utilisation d'un langage spéi-

quepourdérirelesontraintesglobales,tellespro-

priétés de graphes de ontraintes,permet d'imaginer

un shéma aussisystématique. De premiersrésultats

ene sensontétéobtenusréemmentparRohartet

Jussien[18℄.

Remeriements L'auteur tient à remerier

l'équipedeSICStusPrologpoursonaide,notamment

Mats Carlsson et Per Mildner. Certaines idées ont

émergées suite à d'agréablesdisussions ave Naren-

dra Jussien, Pierre Deransart, Guillaume Rohart et

Alexandre Tessier. Un remeriement tout partiulier

pour Mireille Duassé, dont l'enre a reouvert un

brouillon deet artile,et pour GrégoryLafay, qui a

exeré sestalents de traduteur sur une partie de la

versionnale.

Référenes

[1℄ M. Ågren Traing and explaining the exe-

(11)

ComputerSiene,Uppsala,juil. 2002.

[2℄ H. Cambazard, F. Demazeau, N. Jussien &

P. David Interatively solving shool time-

tabling problems using extensions of onstraint

programming, in Pratie and Theory of Au-

tomatedTimetabling(PATAT2004) (Pittsburgh,

PA USA) (M. Trik &E. K. Burke, éds.), aout

2004,p. 107124.

[3℄ M. Carlsson et al. SICStus Prolog 3.12.0

user'smanual,SICSResearhReport,nov.2004.

[4℄ M. Carlsson, G. Ottosson & B. Carlson

An open-ended nite domain onstraintsol-

ver,inPro.of the9th Int.Symp. onProgram-

ming Languages : Implementations, Logis and

Programs (H. Glaser, P. Hartel & H. Kuhen,

éds.), LNCS, no. 1292, Springer Verlag, 1997,

p. 191206.

[5℄ P. Codognet & D. Diaz Compiling

onstraintsinCLP(FD), Journalof Logi Pro-

gramming 27(1996),no.3,p. 185226.

[6℄ D.DiazÉtudedelaompilationdeslangages

logiquesdeprogrammationparontraintessurles

domainesnis:lesystèmelp(fd), Thèse,Uni-

versitéd'Orléans,1995.

[7℄ D. Diaz et al. GNU-Prolog, a lp(fd) sys-

tem based on Standard Prolog (ISO), 2003,

http ://gprolog.soureforge.net/Distributed un-

dertheGNUliense.

[8℄ R. Douene & N. Jussien Non-intrusive

onstraintsolverenhanements, in Colloquium

onImplementationofConstraintandLOgiPro-

grammingSystems(CICLOPS'02), CWReports,

vol.344,juil.2002,p. 2636.

[9℄ A. Elkhyari, C. Guéret & N. Jussien

Constraint programming for dynami shedu-

ling problems, in ISS'04 International Shedu-

lingSymposium (Awaji,Hyogo,Japan)(H.Kise,

éd.),JapanSoietyofMehanialEngineers,mai

2004,p. 8489.

[10℄ G. Ferrand, W. Lesaint & A. Tessier

Theoretial foundations of value withdrawal

explanations for domain redution, Eletroni

Notesin ComputerSiene 76(2002).

[11℄ ,Towardsdelarativediagnosisofonstraint

programs over nite domains, in Proeedings

of the Fifth International Workshop on Auto-

mated Debugging, AADEBUG2003 (Ghent, Bel-

gium)(M.Ronsse,éd.),sept.2003,p. 159170.

[12℄ , Explanations to understand the trae

of a nite domain onstraint solver, in 14th

Gomez-Perez & P. Hofstedt, éds.), sept. 2004,

p.1933.

[13℄ C.Guéret, N.Jussien &C. PrinsUsing

intelligent baktraking to improve branh and

bounds methods : an appliation to open-shop

problems,EuropeanJournalofOperationalRe-

searh 127(2000),no.2,p.344354.

[14℄ U.JunkerQuikxplain:Conitdetetion

forarbitraryonstraintpropagationalgorithms,

in IJCAI'01Workshopon Modelling andSolving

Problems withConstraints,2001.

[15℄ N. Jussien, R. Debruyne & P. Boizumault

Maintainingar-onsisteny within dynami

baktraking, in Priniples and Pratie of

ConstraintProgramming(CP2000)(Singapore),

Leture Notes in Computer Siene, no. 1894,

Springer-Verlag,sept.2000,p. 249261.

[16℄ L. Langevine, M. Duassé & P. Deran-

sart A propagation traer for gnu-prolog :

from formal denition to eient implementa-

tion, in Proeedings of ICLP'03, (Mumbai, In-

dia)(C.Palamidessi,éd.),LetureNotesinCom-

puterSiene,Springer-Verlag,dé.2003.

[17℄ S. Ouis, N. Jussien & P. Boizumault

COINS : aonstraint-basedinterativesolving

system,inProeedingsofthe12thWorkshopon

Logi Programming Environments, (Wlpe'02)

(Copenhagen, Denmark) (A. Tessier, éd.), 2002,

ComputerResearhRepositorys.SE/0207046.

[18℄ G.Rohart&N.JussienImplémenterdes

ontraintesglobalesexpliquées,inAtesdespre-

mières Journées franophonesde programmation

par ontraintes (JFPC 2005) (C. Solnon, éd.),

2005.

[19℄ P.Van Hentenryk,V.Saraswat&Y.De-

ville Design, implementation and evalua-

tion of the onstraint language (FD), in

Constraints : Basis and Trends (A. Podelski,

éd.),LNCS,no.910,SpringerVerlag,1995.

Références

Documents relatifs

Selon lui le philosophe cherche à atteindre un idéal inatteignable de vérité, qu’il croie ou non en la potentialité d’une vérité absolue et cela la pousse à inlassablement

Réaliser des tâches qui font appel à des habiletés motrices déterminées ou spécifiques (p. faire un amorti, sauter en hauteur ou donner un coup de pied) dans une variété de jeux

On ne peut pas mettre au programme, dans le contexte scolaire, des situations réelles se rapportant à des catastrophes naturelles, des incendies ou à la violence pour que

— Les laves chaotiques du Rumoka au Nord de la route; les parois des blocs de lave sont recouvertes d'un tapis grisâtre de lichens (Stereocaulon)-, les herbes, buissons et arbustes

 mots-Clés - Ravageurs sou- terrains, ravageurs émergents, plathelminthes terrestres invasifs, France, plathelminthe terrestre es- pèce « rayée jaune », Parakonti-

En réponse aux engagements internationaux (Convention sur la diversité biologique, règlement de l’Union européenne) et dans le cadre de la mise en place de la stratégie

Et Pascal de conclure  : il n’est pas indigne de se faire estimer pour quelque rôle socialement établi, quelque honneur public que l’on aurait pu opposer aux

Les considérations sur l’éternité, distincte de l’immortalité, ne seront abordées que dans la cinquième partie. Dans ce scolie, c’est à l’inverse l’échec de