1. Trang chủ
  2. » Luận Văn - Báo Cáo

Au dela de la consistance de domaine

50 20 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 50
Dung lượng 766,63 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

consis-Pour la partie pratique, les algorithmes de propagation pour les diff´erentes consistancesassoci´ees avec les contraintes non-binaires ont ´et´e ´etudi´es et impl´ement´e dans le

Trang 1

M´ emoire de stage de Master 2

Auteur :

KHONG Minh Thanh

Superviseurs :Yves DevilleJean Baptiste Mairy

M´emoire pour l’obtention du Master 2

Janvier 2015

Trang 2

Je tiens `a remercier en tout premier lieu mes deux superviseurs Yves Deville et JeanBaptiste Mairy qui ont dirig´e ce travail de recherche de Master Je les remercie pour tout

ce qu’ils m’ont apport´e, pour leurs conseils, leur pr´esence, leur patience, pour m’avoirfait confiance et m’avoir laiss´e la libert´e n´ecessaire `a l’accomplissement de mes travaux,tout en y gardant un oeil critique et avis´e

Je remercie ´egalement Christophe Lecoutre, Centre de Recherche en Informatique, versit´e d’Artois, l’auteur du solveur Abscon pour m’avoir aid´e `a ´etudier l’architecture

Uni-de ce solveur et m’avoir donn´e des conseils Je suis ´egalement reconnaissance envers lesbeCools Ils m’ont aid´e et partag´e les exp´eriences de travails

Finalement, un grand merci au mes parents pour leur gentillesse et leur soutien ditionnel et constant, pour m’avoir donn´e du courage et de l’espoir

incon-i

Trang 3

Solving a problem in constraint programming is based on propagation and search gation aims at removing impossible values in the domain of the variables, by examiningtheir consistency with constraints In recent years, several notions of consistency stron-ger than domain consistency have been proposed The objective of this master thesis is

Propa-to study existing stronger consistency levels for both binary constraints and non-binaryconstraints

Algorithms of propagation for different consistencies associated with non-binary constrainthave been studied and implemented in the AbsCon solver More particularly, we imple-mented algorithms for MaxRPWC, rPIC and RPWC Experimental results show that

in some classes of problems these consistencies are efficient since they can prune morethan domain consistency

ii

Trang 4

La r´esolution d’un probl`eme en programmation par contrainte est bas´ee sur la gation et la recherche La propagation vise `a enlever les valeurs impossibles dans ledomaines des variables, par l’examen de leur coh´erence avec la contrainte Ces derni`eresann´ees, plusieurs notions de consistance plus forte que la consistance de domaine ont

iii

Trang 5

Remerciements i

2.1 Pr´eliminaires 3

2.2 R´esolution d’un CSP : Propagation et Recherche 4

2.2.1 Propagation 5

2.2.2 Recherche 5

2.3 Consistance de domaine (DC) 7

2.4 Les consistance plus faibles que DC 8

2.4.1 Forward Checking (FC) 8

2.4.2 Bound Consistency (BC) 9

3 Consistances plus fortes que DC 10 3.1 Consistances plus fortes que DC pour contraintes binaires 10

3.1.1 Consistances `a base de triangle 10

3.1.2 Consistance selon le voisinage 12

3.1.3 Consistance de singleton 13

3.1.4 R´esum´e 13

3.2 Consistances plus fortes que DC pour contraintes non binaires 14

3.2.1 Restricted Pairwise Consistency (RPWC) 14

3.2.2 relational Path Inverse Consistency (rPIC) 14

3.2.3 Max Restrited Pairwise Consistency (Max-RPWC) 15

3.2.4 Max Restricted 3-wise Consistency (Max-R3WC) 16

3.2.5 Max Restricted k-wise Consistency (Max-RkWC) 16

3.2.6 PWC+GAC 17

3.2.7 kWC+GAC 17

3.2.8 relational Neighborhood Inverse Consistent (rNIC) 18

iv

Trang 6

3.2.9 Singleton Generalized Arc Consistency (SGAC) 18

3.2.10 R´esum´e 19

4 Algorithmes de filtrage pour contraintes non binaires 20 4.1 Algorithme g´en´erique 20

4.2 Max-RPWC-1 22

4.3 rPIC-1 23

4.4 RPWC-1 23

4.5 Max-RPWC-2 25

4.6 Max-RPWC-3 27

4.7 R´esum´e 28

5 Achitecture d’AbsCon 30 5.1 Les paquets dans AbsCon 30

5.2 Repr´esentation d’un CSP 30

5.3 R´esolution d’un CSP 31

5.4 La propagation dans AbsCon 32

5.5 DC 33

5.6 SAC 33

5.7 PWC+GAC 34

6 Impl´ementation et exp´erimentation 35 6.1 Impl´ementation 35

6.2 Exp´erimentation 36

Trang 7

2.1 La r´esolution d’un CSP : propagation + recherche 5

3.1 Un exemple de CSP sur lequel RPC enl`eve plus de valeurs que DC : (xi, 1) n’est pas RPC tandis que ce CSP est DC 11

3.2 Un exemple de CSP sur lequel PIC enl`eve plus de valeurs que RPC : (xi, 1) n’est pas PIC tandis que ce CSP est RPC 11

3.3 Un exemple de CSP sur lequel Max-RPC enl`eve plus de valeurs que PIC : (xi, 1) n’est pas Max-RPC tandis que ce CSP est PIC 12

3.4 Un exemple de CSP sur lequel NIC enl`eve plus de valeurs que Max-RPC : (xi, 1) n’est pas NIC tandis que ce CSP est Max-RPC 12

3.5 Un exemple de CSP sur lequel SAC enl`eve plus de valeur que Max-RPC : (xi, 2) n’est pas SAC tandis que ce CSP est Max-RPC 13

3.6 R´esum´e de la comparaison entre les consistances 13

3.7 MaxRPWC vs rPIC 16

3.8 PWC+GAC vs Max-RPWC 17

3.9 R´esum´e de la comparaison entre les consistances bas´ees sur le domaine pour les contraintes non binaires 19

4.1 Applique Max-RPWC-1 et Max-RPWC-2 sur un CSP non-binaire 27

5.1 AbsCon : Repr´esentation d’un CSP [1] 31

5.2 AbsCon : R´esolution d’un CSP [1] 31

vi

Trang 8

4.1 R´esum´e des algorithmes avec leur complexit´e de temps et d’espace 28

6.1 R´esultat exp´erimental sur les instances du probl`eme modified renault 37

6.2 R´esultat exp´erimental sur les instances du probl`eme random-fcd 38

vii

Trang 9

La programmation par contraintes est un paradigme puissant pour r´esoudre des probl`emescombinatoires qui s’appuient sur un large ´eventail de techniques de l’intelligence artifi-cielle et de la recherche op´erationnelle La programmation par contraintes est actuelle-ment appliqu´ee avec succ`es `a de nombreux domaines, tels que la planification, le routage

de v´ehicule, la configuration, les r´eseaux, et la bio-informatique [2]

L’id´ee de base en programmation par contraintes est que l’utilisateur indique les contraintes,

le probl`eme et un solveur de contrainte qui est utilis´e pour les r´esoudre La contrainteest une relations entre les variables, un probl`eme de satisfaction de contraintes (un CSP)sp´ecifie quelles relations doivent tenir entre les variable de d´ecision donn´ees Par exemple,dans la planification des activit´es d’une entreprise, les variables de d´ecision peuvent ˆetreles heures de d´ebut et les contraintes peuvent ˆetre sur la disponibilit´e des ressources etsur leur utilisation pour un nombre limit´e d’activit´es `a un moment

Un solveur de contrainte prend un probl`eme, ce probl`eme est repr´esent´e en terme devariables de d´ecision et de contraintes et s’emploie `a trouver une assignation `a toutesles variables tout en satisfaisant les contraintes Le solveur de contraintes cherche lasolution dans l’espace de recherche soit syst´ematiquement, comme avec retour en arri`ere(backtracking) L’espace de recherche est un arbre car les valeurs diff´erentes peuventˆ

etre choisies pour les diff´erentes variables La taille de l’arbre de recherche est tielle Il est donc n´ecessaire de r´eduire la taille de l’arbre de recherche et de d´etecter lesinconsistances (ou l’´echec) des solutions partielles d`es que possible Cette m´ethode estappel´ee propagation

exponen-Le framework de programmation par contraintes combine la propagation et la recherche.L’objectif de la propagation est de r´eduire la taille de l’espace de recherche sans enlever

la solution du probl`eme La propagation d´etecte ´egalement les ´echecs, et termine les

1

Trang 10

branches de l’arbre de recherche, ´economise l’exploration inutile de l’espace de recherche.Diff´erents niveaux d’´elagage peuvent ˆetre atteints Ceux-ci sont g´en´eralement d´efiniespar une propri´et´e de consistance satisfaite par le CSP apr`es la propagation.

La consistance de domaine est la consistance standard atteinte par un algorithme de pagation Les contraintes sont consid´er´ees individuellement, une contrainte est domaineconsistant si toutes les valeurs de chacune de ses variables participent `a une solution decette contrainte Les valeur qui ne satisfont pas cette propri´et´e sont enlev´ees Quand unalgorithme de propagation pour la consistance de domaine est appliqu´e, le CSP r´esultantest plus facile `a r´esoudre Cependant, atteindre la consistance de domaine a un coˆut Lesconsistances plus faibles ont ´et´e d´efinies tels que forward checking ou bound consistency.Elles enl`event moins de valeur mais l’´etape de propagation est plus rapide Les consis-tances plus fortes ont ´egalement ´et´e d´efinies Bien qu’elles soit plus coˆuteuses `a atteindre,leur puissance d’´elagage est particuli`erement adapt´ee pour des probl`emes combinatoirescomplexes tels que ceux figurant dans la vie r´eelle

pro-Dans ce m´emoire, pour la partie th´eorique, nous ´etudions les diff´erents niveaux de tance plus forte qui r´eduisent le domaine des variables pour les contraintes binaire etles contraintes non-binaires Pour les contraintes binaires, nous abordons les diff´erentesconsistances tels que : Restricted Path Consistency (RPC), Path Inverse Consistency(PIC), Max Restricted Path consistency (MaxRPC), Neighborhood Inverse Consistency(NIC), Singleton Arc Consistency (SAC) Ces consistances seront ´etendues pour lescontraintes non-binaires PIC a ´et´e ´etendu `a rPIC, RPC `a RPWC, et MaxRPC `aMaxRPWC Dans [3], NIC est ´etendu `a rNIC

consis-Pour la partie pratique, les algorithmes de propagation pour les diff´erentes consistancesassoci´ees avec les contraintes non-binaires ont ´et´e ´etudi´es et impl´ement´e dans le solveurAbsCon Plus particuli`erement, nous avons impl´ement´e les algorithmes pour MaxRPWC,rPIC, et RPWC Les r´esultats exp´erimentaux montrent que ces consistances sont effi-caces dans certaines classes de probl`emes car elles peuvent ´elaguer plus que la consistance

de domaine

Le reste de la th`ese est structur´e comme suit Le chapitre 2 pr´esente le contexte et lesd´efinitions n´ecessaires Dans le chapitre 3, nous ´etudions les diff´erentes consistances pourles contraintes binaires et non-binaires Dans le chapitre 4, les algorithmes pour atteindreles consistances plus fortes pour les contraintes non-binaires seront pr´esent´es Dans lechapitre 5, nous pr´esentons la structure du solveur AbsCon et l’impl´ementation de cesalgorithmes Le chapitre 6 donne des r´esultats exp´erimentaux Enfin, nous donnons laconclusion et le travail futur

Trang 11

Notions de base

Dans ce chapitre, nous pr´esentons les connaissances de base de la programmation parcontrainte : la formulation d’un CSP, comment r´esoudre un CSP Quelque notions deconsistance de base sont aussi pr´esent´ees : la consistance de domaine (DC) et les consis-tances plus faibles que DC tel que forward checking (FC) and bound consistency (BC)

2.1 Pr´ eliminaires

Un probl`eme de satisfaction de contraintes vise `a trouver la solution pour un r´eseau decontraintes, concr`etement, l’assignation des valeurs aux variables doit satisfaire toutesles contraintes Une contrainte d´efinit une relation entre les variables, elle signifie lescombinaisons autoris´ees des valeurs d’un sous ensemble des variables

D´efinition 2.1 (CSP) Un probl`eme de satisfaction de contrainte (CSP) (X, D(X), C)est compos´e par :

– un ensemble X = {x1, , xn} de n variables,

– un domaine D(X) = D(x1) ∗ · · · ∗ D(xn) qui est le produit Cart´esien des domainesdes variables de X,

– un ensemble de contraintes C = {c1, , ce} et vars(ci) ∈ X(1 ≤ i ≤ e)

Un CSP est binaire ssi ses contraintes sont binaires Pour un CSP, on d´enote : n =

#X, e = #C, d = max1≤i≤n(#(D(x))) et k comme l’arit´e maximum des contraintes

D´efinition 2.2 (Contrainte) Une contrainte c(x1, , xk) est une relation d´efinie surles variables x1, , xk La contrainte c est d´enot´e par (vars(c), rel(c)) o`u vars(c) ={x1, , xk} et rel(c) contient des combinaisons autoris´ees de valeur pour les variablesdans vars(c) k est l’arit´e de cette contrainte Une contrainte avec k = 2 est unecontrainte binaire

3

Trang 12

Une contrainte peut ˆetre d´efinie extensionnellement en donnant une table pour rel(c) ouintentionnellement par une formule ou une expression d´ecrivant rel(c) Deux contraintes

ci, cj sont intersect´ees ssi vars(ci) ∩ vars(cj) 6= ∅

Exemple 2.1 La contrainte c(x1, x2, x3) = {(2, 2, 3), (2, 3, 2), (2, 3, 3), (3, 2, 2), (3, 2, 3),(3, 3, 2)} est d´efinie extensionnellement, elle autorise des tuples qui n’ont que les valeurs

2 et 3 Dans ce cas, vars(c) = (x1, x2, x3) et (2, 2, 3) ∈ rel(c)

La contrainte allDifferent(x1, x2, x3) ≡ (x1 6= x2) ∧ (x2 6= x3) ∧ (x3 6= x1) est d´efinieintentionnellement, elle autorise des tuples qui ont des valeurs diff´erentes pour chaquevariable

D´efinition 2.3 (Tuple) Pour une contrainte c(x1, , xk) ∈ C

– Un tuple τ ∈ rel(c) est une liste des valeurs en ordre (a1, , ak) τ est consid´er´ecomme une assignation des variables {(x1, a1), , (xk, ak)}

– τ ∈ rel(c) est valide ssi toutes les valeurs dans le tuple sont pr´esent´ees dans le domainedes variables correspondantes

– Pour un sous ensemble vars0of vars(τ ), τ [vars0] est un sous tuple de τ qui ne contientque l’assgination aux variables dans vars0

– Pour deux tuples τ et τ0 sur vars(c) = (x1, , xk), on peut faire une comparaisonlexicographique entre eux : τ <l τ0 ssi il existe une sous s´equence (x1, , xj) devars(c) tel que τ [x1, , xj] = τ0[x1, , xj] et τ [xj+1] <lτ0[xj+1]

D´efinition 2.4 (Assignation et solution) Etant donn´e un CSP (X, D(X), C),

– Une assignation s sur vars(s) = {x1, , xk} ⊆ X est pr´esent´ee par {(x1, a1), , (xk, ak)}o`u xi = ai et ai ∈ D(xi)(1 ≤ i ≤ k)

– Une solution partielle est une assignation s telle que ∀c ∈ C, vars(c) = {x1, , xk} ⊆vars(s), c(a1, , ak) est satisfaite Une solution partielle est aussi appel´ee une assi-gnation localement consistante

– Une solution est une solution partielle s avec vars(s) = X L’ensemble de solutionsest d´enot´e sol(X, D(X), C)

2.2 R´ esolution d’un CSP : Propagation et Recherche

Pour la r´esolution d’un CSP, on combine deux techniques : propagation et recherche

La propagation enl`eve les valeurs impossibles dans la solution, et la recherche trouve

la solution A chaque it´eration, l’algorithme de recherche choisit une variable et assigneune valeur appropri´ee `a cette variable (branch) Ensuite, la propagation est utilis´ee pourr´eduire l’espace de recherche Cette proc´edure continue jusqu’`a une solution ou un ´echec

Si cette assignation ne rend pas une solution, on doit revenir en arri`ere (backtracking)

et continuer cette proc´edure en assignant une autre valeur `a cette variable La r´esolution

Trang 13

finit quand l’espace de recherche est totalement exploit´ee ou on trouve une solution (outoutes les solutions).

Figure 2.1: La r´esolution d’un CSP : propagation + recherche

2.2.1 Propagation

Pour r´esoudre efficacement un CSP, nous utilisons la propagation La propagation enl`eveles valeurs impossibles du domaine de variables pour la solution Elle permet donc der´eduire l’espace de recherche sans enlever la solution La propagation d´etecte ´egalementles ´echecs, et termine les branches de l’arbre de recherche, ´economise l’exploration inutile

de l’espace de recherche

Exemple 2.2 Etant donn´e : D(x) = D(y) = {1, 2, 3, 4, 5} et c(x, y) = x ≥ y + 3

Un propagateur pour la contraint c(x, y) = x ≥ y + 2 peut enlever les valeurs 1, 2, 3 de

x parce que x ≥ y + 2 ≥ 4 Les valeurs 3, 4, 5 de y sont ´egalement enlev´ees parce que

x ≥ y + 3 ⇒ y ≤ x − 3 ≤ 2 On obtient un CSP ´equivalent : D(x) = {4, 5}, D(y) = {1, 2}

et c(x, y) = x ≥ y + 3

Diff´erents niveaux d’´elagage peuvent ˆetre atteints Ceux-ci sont g´en´eralement d´efiniespar une propri´et´e de consistance satisfaite par le CSP apr`es la propagation Un algo-rithme pour atteindre cette propri´et´e de consistance est utilis´e pendant la r´esolution.Les valeurs qui ne satisfont pas cette propri´et´e sont enlev´ees par cette algorithme Siune propri´et´e permet d’enlever plus de valeur, les algorithmes pour elle ont normalementune complexit´e temporelle plus grande Il faut trouver un compromis entre les deux

2.2.2 Recherche

Les probl`emes CSP `a r´esoudre sont souvent NP-difficile, la propagation n’est donc pasassez pour ces probl`emes Quand la propagation atteint le but pour chaque nœud (il

Trang 14

n’enl`eve plus de valeur dans le domaine de variables), la recherche trouve une variable

et assigne une valeur `a cette variable pour continuer

La recherche est d´efinie par un arbre de recherche et un algorithme pour exploiter cetarbre Le nœud racine repr´esente le CSP original Les descendants d’un noeud donn´esont obtenus en divisant le CSP, par exemple, la branche binaire : un noeud repr´esente

un CSP avec x = a et un autre repr´esente un CSP avec x 6= a Un noeud en ´echec est unnoeud de l’arbre o`u le CSP a un domaine vide Un noeud de solution est un noeud del’arbre o`u tous les domaine de variables du CSP ont une unique valeur et les contraintessont satisfaites

L’algorithme pour exploiter l’arbre de recherche utilise souvent depth first search strat´egieparce que la complexit´e de cette strat´egie est lin´eaire avec le nombre de variable Le CPframmework donc fournit un support pour backtracking Quand la propagation d´etecte

un noeud en ´echec (en supprimant des valeurs du domaine de variable), on doit retourner

en arri`ere au noeud pr´ec´edant et continue exploiter l’arbre de recherche L’exploitationest arrˆet´ee quand on trouve la solution

Code 2.1: Resolution d’un CSP : propagation + recherche

Le code au dessus montre un algorithme pour r´esoudre un CSP (X, D(X), C) Cetalgorithme est r´ecursif et il combine deux ´etapes : propagation et recherche Son entr´eest un CSP, cet algorithme nous permet de savoir si ce CSP a une solution D’abord, sitous les domaines de variables contienne une seul valeur, on trouve une solution (ligne2-3) Si non, la propagation est appliqu´ee pour enlever les valeurs impossibles Quand lapropagation d´etecte un domaine vide, la branche est termin´ee (ligne 5-6) Puis, on fait

Trang 15

la recherche (ligne 8-10) Une variable est choisie et une valeur pour cette variable est

´

egalement choisie (ligne 8-9) Le choix de variable et de valeur peut ˆetre r´ealis´e par uneheuristique L’algorithme d’exploitation est une branche binaire : x = a ou x 6= a (ligne10)

– V alid(c, x) = {(x, a)|a ∈ D(x) ∧ ∀v ∈ D(vars(c))x=a: c(v)}

Nous d´efinissons ensuite :

– Inc(c) =S

x∈vars(c)Inc(c, x)

et de mˆeme pour l’autre ensemble

D´efinition 2.6 Domain consistency (DC) ou la consistance de domaine

– Une contrainte c est domain consistency (DC) par rapport `a D(X) ssi Inc(c) = ∅ et

la contrainte ci Autrement dire que ∃τ ∈ rel(ci) telle que τ [x] = a et τ est valide Dans

ce cas, τ est GAC-support de a pour la contrainte ci

Exemple 2.3 Etant donn´e D(x) = D(y) = {1, 2, 3, 4, 5} et c(x, y) = x ≤ y − 2.Alors, on obtient : Inc(c, x) = {(x, 4), (x, 5)}, Inc(c, y) = {(y, 1), (y, 2)}, V alid(c) = ∅

Si D(x) = {1, 2, 3} et D(y) = {3, 4, 5}, la contrainte c est DC V alid(c) = {(x, 1), (y, 5)}

Pour obtenir DC, plusieurs algorithmes sont propos´es Pour les contraintes binaires, undes algorithmes le plus efficace est AC2001 avec une complexit´e temporelle de O(ed2) etune complexit´e d’espace en O(ed) Pour les contraintes non binaires, un des algorithmes

le plus efficace est GAC2001/3.1 avec une complexit´e temporelle de O(ek2dk) et unecomplexit´e d’espace en O(ekd) [4]

Trang 16

D´efinition 2.7 (Consistance de domaine global) Un CSP (X, D(X), C) est consistent

de domaine global ssi : ∀xk∈ X, ∀ak ∈ D(xk), ∃ une solution {(x1, a1), , (xn, an)} ∈Sol(X, D(X), C) o`u xk = ak

L’id´ee de consistance de domaine global est que chaque valeur de variable appartient `a

au moins une solution Imposer la consistance de domaine global est un probl`eme difficile Au lieu de consid´erer tous les contraintes, on consid`ere quelques contraintes lo-calement et accomplit la consistance dans ce sous groupe de contraintes Naturellement,

NP-on prend chaque cNP-ontrainte s´epar´ement, et on r´evise la consistance sur cette contrainte.Dans ce cas, la meilleure propri´et´e de consistance est la consistance de domaine (DC)

2.4 Les consistance plus faibles que DC

Pour certains probl`emes, obtenir la consistance de domaine (DC) est coˆuteux, on peutconsid´erer la consistance plus faible que DC La puissance d’´elagage de cette consistanceest moins forte que celle de DC, par contre, on peut atteindre efficacement cette consis-tance Dans cette section, nous pr´esentons deux consistances : forward checking et boundconsistency

Une consistance C est plus forte que l’autre consistance C0 (ou C0 est plus faible queC) ssi un CSP est C ⇒ il est aussi C0 Par cons´equence, si C est plus forte que C0,

un algorithme quelconque pour C enl`eve au moins les valeurs qu’un algorithme pour C0enl`eve Une consistance C est strictement plus forte que l’autre consistance C0 (ou C0est strictement plus faible que C), s’il existe un CSP qui est C0 mais il n’est pas C [5]

2.4.1 Forward Checking (FC)

D´efinition 2.8 (Forward Checking) Une contrainte c(x1, , xk) est Forward Checking(FC) par rapport `a D(X) ssi ∃y ∈ vars(c), ∀x ∈ vars(c) \ {y} : #D(x) = 1 ⇒ c estdomaine consistant (DC) Un CSP (X, D(X), C) est Forward Checking (FC) ssi toutesses contraintes sont FC par rapport `a D(X)

Un CSP est FC si les valeurs assign´ees sont une solution partielle, et toutes les contraintesque ses variables sont assign´ees sauf une sont DC Pour obtenir FC, un algorithme estpropos´e dans [6] avec une complexit´e temporelle de O(ed) et complexit´e d’espace enO(e) Un algorithme pour FC est normalement plus rapide que celui pour DC Dans lecas o`u atteindre DC est coˆuteux, on peut consid´erer FC

Trang 17

Exemple 2.4 Etant donn´e la contraint c = 3x−2y −z 6= 4 Si D(x) = {1, 2, 3}, D(y) ={1, 2}, D(z) = {3}, alors c est FC Si D(x) = {1, 2, 3}, D(y) = {1}, D(z) = {3}, alors cn’est pas FC L’application de FC : D(x) = {1, 2}, D(y) = {1}, D(z) = {3}.

Consis-BC consiste `a d´etecter les valeurs inconsistances dans la borne (min et max) du domaine

de variables BC assure que les valeurs minimum et maximum d’un domaine d’unevariable peuvent satisfaire des contraintes portant sur cette variable Pour obtenir BC,dans [6], l’auteur a d´ecrit un algorithme avec une complexit´e temporelle de O((d∗)2), d∗est la taille la plus grande du domaine D∗

Exemple 2.5 Etant donn´e les domaines : D(x) = {2, 3, 4}, D(y) = D(z) = {2, 4} Lacontrainte c = x + y + z = 10 est BC mais n’est pas DC car (x, 3) n’a pas de support

Trang 18

Consistances plus fortes que DC

La conception de consistance locale est au cœur de la programmation par contraintes

La consistance locale est utilis´ee pendant la recherche pour r´eduire l’espace de recherche

en d´ecouvrant les inconsistances Dans ce chapitre, nous abordons les consistances plusfortes que DC pour les contraintes binaires et non binaires D’abord, nous pr´esentons lesconsistances pour les contraintes binaires, la comparaison entre elles Puis, nous passonsaux consistances pour les contraintes non-binaires En fait, ces consistances sont inspir´eespar les consistances pour les contraintes binaires La comparaison entre ces consistancesest aussi examin´ee

3.1 Consistances plus fortes que DC pour contraintes

bi-naires

Dans cette section, les consistances les plus importantes dans la litt´erature pour lescontraintes binaires sont abord´ees D’abord les consistances se basant sur les triplets devariables (RPC, PIC, Max-RPC) sont pr´esent´ees Puis nous pr´esentons les consistances

se basant sur les variables voisines d’une variable (elles sont li´ees par une contrainte)(NIC) ou se basant sur l’assignation hypoth´etique d’une valeur `a une variable (SAC)

3.1.1 Consistances `a base de triangle

D´efinition 3.1 (Restricted Path Consistency (RPC)) Un CSP binaire (X, D(X), C)est restricted path consistent (RPC) ssi il est DC et ∀xi ∈ X, ∀a ∈ D(xi), ∀cij(xi, xj) ∈ Ctelle que (xi, a) a un seul support (xj, b) sur cij(xi, xj), alors ∀xk∈ X li´e `a la fois xi, xj

par contrainte, il existe c ∈ D(xk) telle que cik(a, c) ∧ cjk(b, c)

10

Trang 19

RPC est strictement plus fort que DC [5] Un CSP que RPC enl`eve plus de valeur que

DC est montr´e dans la figure 3.1 L’algorithme optimal pour RPC est l’algorithmeRPC2, il est propos´e dans [7] avec une complexit´e temporelle de O(en + ed2+ cd2), unecomplexit´e d’espace en O(ed + cd) o`u c est le nombre de triples de variables (xi, xj, xk)avec cij, cjk, cki ∈ C

Figure 3.1: Un exemple de CSP sur lequel RPC enl`eve plus de valeurs que DC : (xi , 1)

n’est pas RPC tandis que ce CSP est DC

D´efinition 3.2 (Path Inverse Consistency (PIC)) Un CSP binaire (X, D(X), C) estpath inverse consistent (PIC) ssi ∀xi ∈ X, ∀a ∈ D(xi), ∀xj, xk ∈ X, il existe b ∈D(xj), c ∈ D(xk) telle que cij(a, b) ∧ cik(a, c) ∧ cjk(b, c)

Un algorithme optimal pour PIC est propos´e dans [8] avec complexit´e temporelle deO(en + ed2+ cd3), une complexit´e d’espace en O(ed + cd) o`u c est le nombre de triples

de variables (xi, xj, xk) avec cij, cjk, cki ∈ C PIC est strictement plus fort que RPC [5]

Un CSP que PIC enl`eve plus de valeur que RPC est montr´e dans la figure 3.2

Figure 3.2: Un exemple de CSP sur lequel PIC enl` eve plus de valeurs que RPC :

(x i , 1) n’est pas PIC tandis que ce CSP est RPC

D´efinition 3.3 (Max-restricted Path Consistency) Un CSP binaire (X, D(X), C) estmax-restricted-path consistent (Max-RPC) ssi ∀xi ∈ X, ∀a ∈ D(xi), ∀cij(xi, xj) ∈ C, ilexiste b ∈ D(xj) telle que cij(a, b) et ∀xk ∈ X, il existe c ∈ D(xk) telle que cij(a, b) ∧

cik(a, c) ∧ cjk(b, c)

Trang 20

Pour Max-RPC, l’algorithme Max-RPC1 est propos´e dans [7] Il est optimal avec unecomplexit´e temporelle de O(en + ed2+ cd3), une complexit´e d’espace en O(ed + cd) o`u

c est le nombre de triples de variables (xi, xj, xk) avec cij, cjk, cki ∈ C Max-RPC estprouv´e plus fort que PIC [5] La figure 3.3montre un CSP sur lequel MaxRPC enl`eveplus de valeur que PIC

Figure 3.3: Un exemple de CSP sur lequel Max-RPC enl`eve plus de valeurs que PIC :

(x i , 1) n’est pas Max-RPC tandis que ce CSP est PIC

3.1.2 Consistance selon le voisinage

D´efinition 3.4 (Neighborhood Inverse Consistency (NIC)) Un CSP binaire (X, D(X), C)est neighborhood inverse consistent (NIC) ssi ∀xi ∈ X, ∀a ∈ D(xi), (xi, a) peut ˆetre

Figure 3.4: Un exemple de CSP sur lequel NIC enl`eve plus de valeurs que Max-RPC :

(x i , 1) n’est pas NIC tandis que ce CSP est Max-RPC

Trang 21

3.1.3 Consistance de singleton

D´efinition 3.5 Un CSP binaire (X, D(X), C) est singleton arc consistent (SAC) ssi

∀xi ∈ X, ∀a ∈ D(xi), le sous probl`eme (X, D(X)xi=a, C) peut ˆetre rendu DC

Pour SAC, l’algorithme le plus rapide est SAC-Opt [4] dont la complexit´e temporelle estO(end3) Cependant, sa complexit´e d’espace est grande O(end2) SAC est strictementplus fort que MaxRPC Un exemple d’un CSP sur lequel SAC enl`eve plus de valeur queMaxRPC est montr´e dans 3.5 SAC et NIC sont incomparable [5]

Figure 3.5: Un exemple de CSP sur lequel SAC enl`eve plus de valeur que Max-RPC :

(x i , 2) n’est pas SAC tandis que ce CSP est Max-RPC

3.1.4 R´esum´e

Nous avons pr´esent´e les consistances plus fortes que DC pour la contrainte binaire Lafigure ci-dessous 3.6montre la comparaison entre ces consistances La fl`eche montre quetelle consistance est plus forte que l’autre Le tiret montre qu’elles sont incomparable.Dans l’article [5], l’auteur a montr´e une d´emonstration compl`ete pour cette comparaison

Figure 3.6: R´esum´e de la comparaison entre les consistances

Trang 22

3.2 Consistances plus fortes que DC pour contraintes non

binaires

Dans cette section, nous allons pr´esenter les consistances fortes pour les contraintes nonbinaires qui sont inspir´ees par les consistances pr´ec´edentes (RPC, PIC, Max-RPC, .).RPC, PIC et Max-RPC sp´ecifient que chaque valeur dans un domaine d’une variabledoit ˆetre extensible `a une deuxi`eme variable, et cette valeur peux s’´etendre aux troisi`emevariable selon des conditions Pour les contraintes non binaires, chaque valeur dans undomaine d’une variable doit avoir un GAC-support pour chaque contrainte, et ce GAC-support peut s’´etendre `a une autre contrainte selon les conditions pr´ecis´ees dans lesconsistances

3.2.1 Restricted Pairwise Consistency (RPWC)

D´efinition 3.6 (Restricted Pairwise Consistency) Un CSP non-binaire (X, D(X), C)est restricted pairwise consistent (RPWC) ssi ∀xi ∈ X, toutes les valeurs dans D(xi)est GAC et, ∀a ∈ D(xi), ∀cj ∈ C, xi ∈ vars(cj), telle que il existe un seul tuple valide

τ ∈ rel(cj) avec τ [xi] = a alors ∀ck ∈ C, vars(cj) ∩ vars(ck) 6= ∅, ∃τ0 ∈ rel(ck), telleque τ [vars(cj) ∩ vars(ck)] = τ0[vars(cj) ∩ vars(ck)] et τ0 et valide

La d´efinition de RPWC est inspir´ee par la d´efinition de RPC D’abord GAC est pliqu´e, ensuite, RPWC enl`eve des valeurs de la variable xi qui ont un seul tuple τ(GAC-support) dans la contrainte cj et que ce support ne peut pas s’´etendre `a un tuplevalide τ0 dans chacune des contraintes intersect´ees avec cj Par d´efinition, RPWC eststrictement plus fort que GAC Un exemple ci-dessous montre cette propri´et´e Pour ob-tenir RPWC, l’algorithme RPWC1 est propos´e dans [10] avec une complexit´e temporelle

ap-de O(ne2k2dk) et une complexit´e d’espace en O(ekd)

Exemple 3.1 D(x1) = D(x2) = D(x3) = {1, 2, 3}, c1= allDif f erent(x1, x2, x3), c2 =

x1 = x2 Ce CSP est GAC mais il n’est pas RPWC parce que (x1, 1), (x1, 2), (x1, 3), (x2, 1),(x2, 2), (x2, 3) ne sont pas RPWC

3.2.2 relational Path Inverse Consistency (rPIC)

D´efinition 3.7 (relational Path Inverse Consistency) Un CSP non-binaire (X, D(X), C)est relational path inverse consistent (rPIC) ssi ∀xi ∈ X, ∀cj ∈ C, xi ∈ vars(cj), et

∀ck ∈ C, vars(cj) ∩ vars(ck) 6= ∅, alors ∃τ ∈ rel(cj) telle que τ [xi] = a, τ est valide, et

∃τ0 ∈ rel(ck) telle que τ [vars(cj) ∩ vars(ck)] = τ0[vars(cj) ∩ vars(ck)] et τ0 est valide

Trang 23

rPIC est inspir´e par PIC Quand on applique rPIC pour un CSP, on consid`ere un paire

de contrainte cj, ck et voit si une valeur a ∈ D(xi), xi ∈ vars(cj) a un GAC-support

τ dans cj telle que ce support peut ˆetre extensible au tuple τ0 dans ck Dans le caso`u on ne trouve aucun τ , alors la valeur a est enlev´ee rPIC est montr´e strictementplus fort que RPWC dans [10] L’id´ee est que dans le cas o`u une valeur a plus qu’unGAC-support (≥ 2 supports), rPIC est plus fort que RPWC et dans le cas o`u une valeurn’a qu’un GAC-support, rPIC est ´egale RPWC Dans l’exemple ci-dessous, le CSP estRPWC mais il n’est pas rPIC L’algorithme pour rPIC est propos´e dans [10] dont lacomplexit´e temporelle est O(e2k2dp) et la complexit´e d’espace est O(e2kd) o`u p est lenombre maximum de variables impliqu´ees dans deux contraintes

Exemple 3.2 Etant donn´e un CSP : D(x1) = D(x2) = D(x3) = {0, 1, 2}, D(x4) ={0, 1} c1 = allDifferent(x1, x2, x3), c2= allDifferent(x2, x3, x4) Ce CSP est RWPC carles valeurs dans le domaine de variables ont au moins deux GAC-supports Cependant,

ce CSP n’est pas rPIC car les GAC-supports de (x1, 2) dans c1 : (2, 1, 0), (2, 0, 1) nepeuvent pas s’´etendre `a c2

3.2.3 Max Restrited Pairwise Consistency (Max-RPWC)

D´efinition 3.8 (Max Restrited Pairwise Consistency) Un CSP non-binaire (X, D(X), C)est max restricted pairwise consistent (Max-RPWC) ssi ∀xi ∈ X, ∀a ∈ D(xi), ∀cj ∈ C, o`u

xi ∈ vars(cj), alors ∃τ ∈ rel(cj) telle que τ [xi] = a, τ est valide, et ∀ck∈ C, vars(cj) ∩vars(ck) 6= ∅, alors ∃τ0 ∈ rel(ck), τ [vars(cj) ∩ vars(ck)] = τ0[vars(cj) ∩ vars(ck)] et τ0est valide Dans ce cas, τ0 est PW-support de τ

La d´efinition de RPWC est inspir´ee par la d´efinition de RPC Dans Max-RPWC, on court chaque valeur a ∈ D(xi), xi ∈ vars(cj) pour examiner si elle a un GAC-supportqui est extensible aux toutes les contraintes intersect´ees avec cj Si on ne le trouve pas,alors cette valeur est enlev´ee Max-RPWC est prouv´e strictement plus fort que rPIC [10].L’exemple ci-dessous montre un CSP qui est rPIC mais n’est pas Max-RPWC Pour appli-quer Max-RPWC, des algorithmes sont propos´es tels que Max-RPWC1, Max-RPWC2,Max-RPWC3 [10] Max-RPWC2 a une meilleure complexit´e temporelle O(e2k2dk) mais

par-la complexit´e d’espace est grande (O(e2kdf)) La complexit´e temporelle de Max-RPWC1

et Max-RPWC3 est O(e2k2dp) Mais en pratique, Max-RPWC3 est souvent plus efficaceque Max-RPWC1

Exemple 3.3 Etant donn´e un CSP : D(x1) = D(x2) = D(x3) = {0, 1}, D(x4) =D(x5) = {0} Les contraintes c1, c2, c3 sont pr´esent´ees dans la figure 3.7 Ce CSPest rPIC mais il n’est pas MaxRPWC Par exemple, la valeur 0 de x1 est rPIC carpour deux contraintes c1, c2, le GAC-support (0, 0, 0) de (x1, 0) dans c1 peut s’´etendre `a

Trang 24

Figure 3.7: MaxRPWC vs rPIC

(0, 0, 0) dans c2, pour deux contraintes c1, c3, le GAC-support (0, 1, 1) de (x1, 0) dans c1

peut s’´etendre `a (1, 1, 0) dans c3 Mais cette valeur n’est pas Max-RPWC car aucun deses GAC-supports ne peut s’´etendre `a la fois c2, c3

3.2.4 Max Restricted 3-wise Consistency (Max-R3WC)

D´efinition 3.9 (Max Restricted 3-wise Consistency) Un CSP non binaire (X, D(X), C)est max restricted 3-wise consistent (Max-R3WC) ssi ∀xi ∈ X, ∀a ∈ D(xi), ∀cj ∈ C, o`u

xi ∈ vars(cj), ∃τ ∈ rel(cj) telle que τ [xi] = a, τ est valide, et ∀ck, cl ∈ C, il existe destuples valides τ0 ∈ rel(ck), τ00 ∈ rel(cl) telle que τ [vars(cj) ∩ vars(ck)] = τ0[vars(cj) ∩vars(ck)], τ [vars(cj) ∩ vars(cl)] = τ00[vars(cj) ∩ vars(cl)], τ0[vars(ck) ∩ vars(cl)] =

3.2.5 Max Restricted k-wise Consistency (Max-RkWC)

D´efinition 3.10 (Max Restricted k-wise Consistency) Un CSP non binaire (X, D(X), C)est max restricted k-wise consistent (Max-RkWC) ssi ∀xi ∈ X, ∀a ∈ D(xi), ∀cj ∈ C,o`u xi ∈ vars(cj), ∃τ ∈ rel(cj) telle que τ [xi] = a, τ est valide, et pour un ensemblequelconque de k − 1 contraintes additionnelles c1, , ck−1, τ peut s’´etendre `a une va-lide instanciation sur les variables Sk−1

m=1vars(cm) qui satisfait chaque contrainte cm,

m = 1, , k − 1

Trang 25

Max-RkWC est une g´en´eralisation de Max-R3WC Si Max-RkWC est appliqu´e sur lavariable xi, il enl`eve la valeur a ∈ D(xi) telle que pour les contraintes cj que xiparticipe,aucun GAC-support de (xi, a) ne peut s’´etendre aux tous les ensembles de k − 1 autrescontraintes.

D´efinition 3.11 (Pairwise Consistency) Un CSP (X, D(X), C) est Pairwise Consistent(PWC) ssi ∀τ ∈ rel(ci), τ est valide, alors τ peut s’´etendre `a chacune de contraintesintersect´ees avec ci

D´efinition 3.12 (PWC+GAC) Un CSP (X, D(X), C) est PWC+GAC ssi il est PWC

et GAC

Pour la consistance PWC+GAC, PWC enl`eve les tuples `a partir de la relation decontrainte GAC est appliqu´e pour le filtrage de domaine : la valeur qui n’a pas desupport dans une contrainte est enlev´ee Dans [10], on montre que PWC+GAC est plusfort que Max-RPWC Ci-dessous un CSP qui est RPWC mais n’est pas PWC+GAC

Figure 3.8: PWC+GAC vs Max-RPWC

Exemple 3.4 Etant donn´e un CSP : D(x1) = D(x2) = D(x3) = D(x4) = D(x5) ={0, 1}, D(x6) = {0} Les trois contraintes c1, c2, c3 sont pr´esent´ees dans la figure ci-dessus La valeur 0 de x1 a un GAC-support (0, 0, 0) dans c1 Ce tuple peut s’´etendre

au tuple (0, 0, 0, 0) dans c2 (x1, 0) est donc MaxRPWC (aussi pour les autres valeurs).Cependant, le tuple (0, 0, 0, 0) dans c2 ne peut pas s’´etendre `a c3, ce tuple est enlev´epar PWC+GAC Par cons´equence, on doit enlever (0, 0, 0) dans c1, alors (x1, 0) estsupprim´ee car elle n’a plus de GAC-support

Ngày đăng: 17/03/2021, 19:11

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN