Vous êtes sur la page 1sur 53

Chapitre 3

Une méthode de décomposition par la


substituabilité directionnelle pour les
CSPs Valuées

Résumé
La notion de substituabilité directionnelle est une forme faible de la substituabilité de voisi-
nage [10] qui a été proposée dans [24] pour améliorer la résolution des problèmes de satisfaction de
contraintes (CSPs) binaires. On part du fait que même si deux valeurs ne sont pas voisinage sub-
stituables, elles peuvent l’être si on restreint le voisinage en se référant à un ordre sur les variables.
La substituabilité directionnelle permet de décomposer les domaines de valeurs des variables en
de sous-ensembles de valeurs qui peuvent être essayées simultanément lors de la résolution du
problème par un algorithme du type “Backtracking ”.

Dans le présent chapitre, nous proposons les extensions suivantes au travail présenté dans [24] :

– Tout d’abord, nous généralisons davantage la notion de substituabilité directionnelle en


considérant, comme référence, une orientation du graphe d’inconsistance au lieu d’un ordre
sur les variables.

Pour garantir l’optimalité de la solution lors de la résolution des Problèmes de Satisfaction


de Contraintes Valuées à contraintes binaires fixes (VCSPs à contraintes binaires fixes),
nous introduisons des conditions supplémentaires de substituabilité.

– Ensuite, nous généralisons davantage la notion d’interchangeabilité directionnelle en consi-


dérant, comme référence, une orientation du graphe d’inconsistance au lieu d’un ordre sur
les variables.

Pour garantir l’optimalité de la solution lors de la résolution des Problèmes de Satisfaction


de Contraintes Valuées (VCSPs), nous introduisons des conditions supplémentaires d’in-

40
Chapitre III : Une méthode de décomposition par la substituabilité directionnelle pour les
VCSPs

terchangeabilité.

– En fin, nous exploitons la notion de substituabilité directionnelle proposée pour les VCSPs
à contraintes binaires fixes pour résoudre les VCSPs

Comme le dual d’un VCSP est un VCSP à contraintes binaires fixes. Il suffit de transfor-
mer le VCSP en VCSP à contraintes binaires fixes en passant par son dual et appliquer la
méthode de décomposition par la substituabilité directionnelle.

Des résultats de simulation, sur plusieurs VCSPs et VCSPs à contraintes binaires fixes modéli-
sant des problèmes d’ordonnancement, montrent que des variantes de l’algorithme du Branch-and-
Bound qui exploitent la substituabilité directionnelle sont souvent plus efficace que l’algorithme
original.

**********************************************************************
Méthodes de décomposition de domaines pour les CSPs Valués 41
**********************************************************************
Chapitre III : Une méthode de décomposition par la substituabilité directionnelle pour les
VCSPs

3.1 Introduction
Dans ce chapitre nous nous intéressons aux méthodes de résolution de VCSPs
et de VCSPs à contraintes binaires fixes (VCSP-FbC) dites complètes : celles
qui permettent de trouver une solution optimale si cette dernière existe. Si
non, trouver la solution qui viole le minimum des contraintes.

L’algorithme du Branch-and-bound [20] est sans doute l’algorithme com-


plet le plus utilisé pour résoudre les VCSPs à contraintes binaires fixes. C’est
une procédure d’exploration en profondeur d’abord munie d’une fonction heu-
ristique servant à évaluer le coût de la solution complète que l’on peut espérer
atteindre par l’extension de la solution partielle courante. Le rôle de la fonc-
tion heuristique est d’éviter l’exploration de branches de l’arbre de recherche
qui ne mènent pas à des solutions meilleures que celles déjà trouvées.

Par ailleurs, la notion de substituabilité de voisinage [10] a été proposée et


utilisée comme un moyen de filtrage des domaines de valeurs des variables des
CSPs binaires. Plusieurs variantes de cette notion ont été proposées, parmi
lesquelles la notion substituabilité directionnelle [24].

Cette dernière est une forme faible de la substituabilité de voisinage qui, au


départ, visait à améliorer la résolution des CSPs binaires.

On part de l’idée que même si deux valeurs ne sont pas voisinage substi-
tuables, elles peuvent l’être si on restreint le voisinage en se référant à un
ordre sur les variables. La substituabilité directionnelle ne peut pas être uti-
lisée comme un moyen de filtrage des domaines des variables comme c’est le
cas pour la substituabilité de voisinage.

Toutefois, on peut l’utiliser comme un moyen de décomposition des domaines


des variables en de chaines de valeurs directionnellement substituables qui
peuvent être considérées simultanément lors de la résolution de problèmes.

Dans le présent chapitre, nous proposons une méthode de résolution ba-


sée sur la substituabilité directionnelle pour les VCSPs à contraintes binaires
fixes. Les divers étapes de cette méthode sont présentées dans la figure 3.1.

**********************************************************************
Méthodes de décomposition de domaines pour les CSPs Valués 42
**********************************************************************
Chapitre III : Une méthode de décomposition par la substituabilité directionnelle pour les
VCSPs

FbC

FbC

FbC
FbC FbC 1
FbC 2
FbC nc

FbC i

Figure 3.1 – Les étapes de la Méthode de décomposition de domaine pour les VCSPs–FbC

Nous proposons, ensuite, une méthode de résolution basée sur l’interchan-


geabilité directionnelle pour le cadre générale : les VCSPs binaires. Les divers
étapes de cette méthode sont présentées dans la figure 3.2.

En effet, dans ce chapitre, nous proposons les extensions suivantes du travail


présenté dans [24] :
– Tout d’abord, nous généralisons davantage la notion de substituabi-
lité directionnelle en considérant, comme référence, une orientation du
graphe d’inconsistance au lieu d’un ordre sur les variables.

Pour garantir l’optimalité de la solution lors de la résolution des Pro-


blèmes de Satisfaction de Contraintes Valuées à contraintes binaires fixes
(VCSPs à contraintes binaires fixes), nous introduisons des conditions
supplémentaires de substituabilité.

**********************************************************************
Méthodes de décomposition de domaines pour les CSPs Valués 43
**********************************************************************
Chapitre III : Une méthode de décomposition par la substituabilité directionnelle pour les
VCSPs

1
2
nc

Figure 3.2 – Les étapes de la Méthode de décomposition de domaine pour les VCSPs–FbC

– Ensuite, nous généralisons davantage la notion d’interchangeabilité di-


rectionnelle en considérant, comme référence, une orientation du graphe
d’inconsistance au lieu d’un ordre sur les variables.

Pour garantir l’optimalité de la solution lors de la résolution des Pro-


blèmes de Satisfaction de Contraintes Valuées (VCSPs), nous introdui-
sons des conditions supplémentaires d’interchangeabilité.

– En fin, nous exploitons la notion de substituabilité directionnelle propo-


sée pour les VCSPs à contraintes binaires fixes pour résoudre les VCSPs

Comme le dual d’un VCSP est un VCSP à contraintes binaires fixes. Il


suffit de transformer le VCSP en VCSP à contraintes binaires fixes en
passant par son dual et appliquer la méthode de décomposition par la

**********************************************************************
Méthodes de décomposition de domaines pour les CSPs Valués 44
**********************************************************************
Chapitre III : Une méthode de décomposition par la substituabilité directionnelle pour les
VCSPs

substituabilité directionnelle.

Ce chapitre est organisé comme suit : dans la section 3.2, nous donnons
les définitions et les notations utilisées.

Nous définissons par la suite (section 3.3), la notion de substituabilité direc-


tionnelle. On présente, dans la même section, une version de l’algorithme du
Branch-and-Bound qui exploite la substituabilité directionnelle ainsi qu’un
algorithme qui décompose les domaines de valeurs en de chaı̂nes de valeurs
directionnellement substituables.

Ensuite Nous définissons (section 3.4), la notion d’interchangeabilité direc-


tionnelle étendue. On présente, dans la même section, une version de l’algo-
rithme du Branch-and-Bound qui exploite l’interchangeabilité directionnelle
étendue ainsi qu’un algorithme qui décompose les domaines de valeurs en des
classes de valeurs équivalentes.

La section 3.5 présente un algorithme d’orientation du graphe d’inconsistance


utilisée dans la détermination de la substituabilité directionnelle.

Dans la section 3.7, nous reportons les résultats d’une expérimentation mon-
trant l’apport de l’exploitation de la notion de substituabilité directionnelle
pour la résolution de VCSPs binaires.

3.2 Définitions et notations


Définition 13 Une fonction objective est définie comme suit :

φP (t) = c∈C φc (t[σ(c)])
L’arité d’une contrainte est la taille de sa portée. L’arité d’un problème
est l’arité maximale de ses contraintes. Deux variables xi et xj reliées par une
contrainte binaire, notée Ci,j , sont dites voisines. La valeur a ∈ Di , dénotée
aussi (xi , a), est compatible avec b ∈ Dj si (a, b) ∈ Rel(Ci,j ). Dans ce cas, on
dit que b est un support de a. Si chaque valeur du problème a, au moins, un
support dans le domaine de chaque variable voisine alors le problème est dit
arc-consistant.

**********************************************************************
Méthodes de décomposition de domaines pour les CSPs Valués 45
**********************************************************************
Chapitre III : Une méthode de décomposition par la substituabilité directionnelle pour les
VCSPs

Le graphe d’inconsistance d’un VCSP binaire est un graphe simple dans


lequel les sommets correspondant aux valeurs des variables et les arêtes relient
les couples de sommets qui représentent des valeurs incompatibles. L’ensemble
des valeurs incompatibles avec une valeur a d’une variable xi , est défini par

N (xi , a) = {(xj , b) | Ci,j ∈ C et φi,j (a, b) = ((a, b) ∈


/ Rel(Ci,j ))}

En se référant à [10], une valeur a d’une variable xi est voisinage substituable


(VS) à une valeur b de xi si et seulement si

N (xi , a) ⊆ N (xi , b) ⇔ (∀ a ∈ Xj ) φi,j (a, a ) ≤ φi,j (b, a )

(Xj est l’ensemble de variables voisines à xi ).

Cette définition peut être étendue pour tenir compte de la fonction coût.
Toutefois, cette dernière doit vérifier certaines propriétés pour que ceci soit
possible.

En effet, la fonction coût est une fonction globale (n-aire) puisqu’elle s’ap-
plique à toutes les variables du problème (voir définition 9) alors que la notion
de substituabilité de voisinage est une notion locale. On propose donc que φ
soit une fonction telle qu’il est possible de trouver une fonction coût unaire

φi : ni=1 Di −→ E qui vérifie

∀ T ∈ D 1 × . . . × Dn , φ(T ) = ⊕ni=1 φi (Ti ) (3.1)


où ⊕ désigne un opérateur monotone sur E et Ti la valeur affectée à la
variable xi dans T . La substituabilité de voisinage pour les VCSPs binaires à
contraintes binaires fixes peut alors être définie de la manière suivante :





φi,j (a, a ) ≤ φi,j (b, a ) (∀ a ∈ Xj )
a P b ⇔ ⎪
et


⎩ φi (a) ≤ φi (b)
Il en découle qu’à partir de toute solution dans laquelle xi a pour valeur b, on
peut déduire une solution de qualité, au moins, égale si l’on substitue a à b.
Par conséquent, b peut être supprimée du domaine de xi sans que l’on perde
toutes les solutions optimales du problème.

**********************************************************************
Méthodes de décomposition de domaines pour les CSPs Valués 46
**********************************************************************
Chapitre III : Une méthode de décomposition par la substituabilité directionnelle pour les
VCSPs

3.3 Substituabilité directionnelle (DS) pour les VCSPs


à contraintes binaires fixes
3.3.1 Définitions et propriétés
La substituabilité directionnelle [24] est une forme faible de substituabilité
de voisinage. Au départ, cette notion a été définie en se référant à un ordre
total sur les variables du problème.

Dans le présent chapitre, on généralise la notion de substituabilité direction-


nelle en utilisant, comme référence, une orientation du graphe d’inconsistance
du VCSP à contraintes binaires fixes. Formellement, une orientation Λ du
graphe d’inconsistance d’un VCSP à contraintes binaires fixes est une affec-
tation d’une direction à chaque arête {a, b} du graphe donnant lieu, ou bien
à l’arc (a, b) ou bien à l’arc (b, a).

Etant donnée une orientation Λ du graphe d’inconsistance d’un VCSP à


contraintes binaires fixes, on définit l’ensemble des conflits directionnels d’une
valeur a d’une variable xi par rapport à Λ de la manière suivante :

 (xi , a) = {(xj , b) | Ci,j ∈ C et φ


N  i,j (a, b) = 
((a, b) ∈/ Rel(Ci,j ) et(a, b) ∈ Λ)} (3.2)

La substituabilité directionnelle est alors définie comme suit :

Définition 14 Soit P = (X, D, C, S) est un VCSP binaire à contraintes bi-


naires fixes.
soit a et b sont 2 valeurs de xi et a est une valeur de Xj ∈ Ni dans P.





 i,j (a, a ) ≤ φ
φ  i,j (b, a ) (∀ a ∈ Xj )

a PΛ b ⇔ ⎪ et


⎩ φi (a) ≤ φi (b)

Exemple 13 Seulement dans la Figure 3.3(a) les deux conditions de la dé-


finition 14 sont vérifiées, d’ou a PΛ b. Alors que dans la Figure 3.3(b)
 i,j (a, a )  φ
φ  i,j (b, a ) et dans la Figure 3.3(c) φi (a)  φi (b)

**********************************************************************
Méthodes de décomposition de domaines pour les CSPs Valués 47
**********************************************************************
Chapitre III : Une méthode de décomposition par la substituabilité directionnelle pour les
VCSPs

Figure 3.3 – Quand est ce que a PΛ b ?

Dans ce qui suit, on utilisera la notation Λ au lieu de PΛ si ceci n’entraine


pas d’ambiguı̈té. La relation Λ définit un préordre sur le domaine de chaque
variable. Ainsi, chaque domaine Di peut être subdivisé en de sous-ensembles
Di = Di,1 ∪ . . . ∪ Di,s tel que les éléments de chaque Di,k , k = 1, ..., s sont
tous deux à deux comparables. C’est-à-dire, que pour tout a, b ∈ Di,k , on a
a Λ b ou b Λ a. Chaque Di,k est donc une chaine de valeurs totalement
ordonnée par Λ .

Dans chaque chaine Di,k , on peut distinguer le sous-ensemble des éléments


minimaux.

min(Di,k ) = {a ∈ Di,k | ∀ b ∈ Di,k , a Λ b} (3.3)

La proposition suivante identifie une classe polynomiale de VCSPs à contraintes


binaires fixes.

**********************************************************************
Méthodes de décomposition de domaines pour les CSPs Valués 48
**********************************************************************
Chapitre III : Une méthode de décomposition par la substituabilité directionnelle pour les
VCSPs

Propriété 1 Soit P = (X, D, C, S) un VCSP binaire à contraintes binaires


fixes arc-consistant et soit Λ est une orientation du graphe d’inconsistance
de P. Si chacun des domaines de valeurs de P est une chaine non vide de
valeurs directionnellement substituables par rapport à Λ alors une solution
optimale de P peut être trouvée en un temps polynomial.
Preuve 1 On montre qu’en sélectionnant un élément minimum de chaque
domaine de valeur, on obtient une solution optimale. Ce qui veut dire que
tout n-uplet T ∈ min(D1 ) × . . . × min(Dn ) est une solution optimale. En se
référant à (??) et au fait que la fonction φi est calculable en temps polyno-
mial, cette sélection peut être effectuée en temps polynomial.

Supposons que T ∈ min(D1 ) × . . . × min(Dn ) n’est pas une solution optimale.


Ceci implique que T est inconsistant ou que φ(T ) n’est pas minimum.

Commençons par supposer que T est inconsistant. Donc T doit contenir, au


moins, une paire de valeurs incompatibles. Soit a ∈ min(Di ) et b ∈ min(Dj )
une telle paire. Puisque a et b sont incompatibles, on doit avoir (a, b) ∈ Λ ou
(b, a) ∈ Λ.

Supposons, sans perte de généralité, que (a, b) ∈ Λ, (sinon on pourra rai-


sonner sur b au lieu de a et obtenir le même résultat). Il s’en suit que
b∈N  (xi , a), et puisque a ∈ min(Di ) alors pour tout a ∈ Di , on doit avoir
b∈N  (xi , a ). Ce qui veut dire que b n’a pas de support dans Di et donc que
P n’est pas arc-consistant, d’où une contradiction.

Supposons, à présent que φ(T ) n’est pas minimum, donc, qu’il existe T  ∈
D1 × . . . × Dn tel que φ(T  ) < φ(T ). Puisque les valeurs de la fonction φ(T )
sont obtenues à partir de celles de φi (Ti ) en utilisant un opérateur monotone
(voir équation (3.1)), il doit exister xi ∈ X tel que Ti = (xi , a), Ti = (xi , a )
et φi (xi , a ) < φi (xi , a). Il en résulte que a ∈
/ min(Di ), d’où une contradiction.

Nous nous intéressons aux méthodes de résolution de VCSPs à contraintes


binaires fixes dites complètes : celles qui permettent de trouver une solution
optimale si cette dernière existe. Sinon trouver la solution qui viole le mini-
mum de contraintes.

**********************************************************************
Méthodes de décomposition de domaines pour les CSPs Valués 49
**********************************************************************
Chapitre III : Une méthode de décomposition par la substituabilité directionnelle pour les
VCSPs

L’algorithme du Branch-and-bound est l’algorithme complet le plus commu-


nément utilisé pour résoudre les VCSPs à contraintes binaires fixes. Cet al-
gorithme explore l’espace de recherche du problème à résoudre en effectuant
une recherche arborescente en profondeur d’abord.

Les problèmes considérés tout lelong d’un chemin de l’arbre de recherche


sont des réductions du problème initial que l’on peut définir de la manière
suivante :

Définition 15 Un problème P = (X, D, C, S) est une réduction d’un pro-


blème P  = (X  , D , C  , S  ) (notation P P  ) si et seulement si
– X = X ,
– Di ⊆ Di , pour tout xi ∈ X,

– C = {Ci,j | Ci,j ∈ C  et Rel(Ci,j ) = Rel(Ci,j 
) ∩ Di × Dj },

– S est la restriction de S à D1 × . . . × Dn .

Une propriété essentielle de la substituabilité directionnelle est qu’elle soit


préservée quand on passe d’un problème à l’une de ses réductions. Formelle-
ment, on a

Propriété 2 Soient P = (X, D, C, S) et P  = (X, D , C  , S  ) deux VCSPs


binaires à contraintes binaires fixes tel que P P  et soit Λ, (resp. Λ ) une
orientation du graphe d’inconsistance de P (resp. de P  ) telle que Λ ⊆ Λ .
Alors, on a

∀ xi ∈ X, ∀ a, b ∈ Di ∩ Di , a PΛ b ⇒ a PΛ b

Preuve 2 Désignons par N  P (xi , a) l’ensemble des conflits directionnels de


(xi , a) dans P et par ΔD l’ensemble des valeurs de P  qui ne figurent pas

dans P. On a donc ΔD = xi ∈X Di − Di . Soient (xi , a) et (xi , b) deux valeurs
quelconques disponibles dans P et P  . Puisque P P  , on a

N  P  (xi , a) − ΔD
 P (xi , a) = N (3.4)
De même

N  P  (xi , b) − ΔD
 P (xi , b) = N (3.5)

**********************************************************************
Méthodes de décomposition de domaines pour les CSPs Valués 50
**********************************************************************
Chapitre III : Une méthode de décomposition par la substituabilité directionnelle pour les
VCSPs

D’autre part, en partant de a PΛ b, on déduit que N  P  (xi , a) − ΔD ⊆
 P
N (xi , b) − ΔD et que φi (xi , a) ≤ φi (xi , b). D’après (3.4) et (3.5), on ob-
 P (xi , a) ⊆ N
tient N  P (xi , b). D’où, a PΛ b.

Une conséquence directe de la proposition 2 est que pour toute paire de


VCSPs à contraintes binaires fixes P et P  telles que P P  , si Di est une
chaine de valeurs DS dans P  alors Di est une chaine de valeurs DS dans P.

3.3.2 Exemple
Exemple 14 Considérons le problème Job-Shop classique décrit dans la fi-
gure 3.4. Il s’agit de planifier l’exécution de deux jobs J1 et J2 sur trois
machines M1 , M2 et M3 . Chaque job Ji se compose de trois tâches Ti,1 , Ti,2 et
Ti,3 . Une tâche Ti,j est dédiée à être exécutée sur la machine Mj .

Pour cet exemple, on suppose que la durée de toutes les tâches est fixée à une
unité de temps, sauf T2,2 qui consomme deux unités. Les job-shops font inter-
venir deux types de contraintes : des contraintes de précédence qui imposent
que les tâches d’un même job soient exécutées les une après les autres ainsi
que des contraintes de ressource qui empêchent qu’une machine exécute plus
d’une tâche à la fois.

Résoudre un tel problème revient à affecter un temps de début d’exécution à


chacune des tâches de façon à satisfaire les contraintes de précédence et de
ressource toute en minimisant le temps total d’exécution de toutes les tâches
(makespan).

Une modélisation possible des problèmes job-shops en termes de VCSP bi-


naire à contraintes binaires fixes consiste à associer une variable du VCSP
à contraintes binaires fixes à chacune des tâches. Ainsi, pour notre exemple,
on obtient un problème impliquant six variables x1 , . . . , x6 .

Les domaines de valeurs des variables représentent une discrétisation du


temps maximum impartie à l’exécution de toutes les tâches. Pour le pré-
sent exemple, on suppose que les différentes tâches peuvent commencer à des

**********************************************************************
Méthodes de décomposition de domaines pour les CSPs Valués 51
**********************************************************************
Chapitre III : Une méthode de décomposition par la substituabilité directionnelle pour les
VCSPs

instants représentés par les entiers de 0 à 4.

Les contraintes impliquées sont des contraintes binaires de précédence et de


ressource. On en trouve en tout sept contraintes (voir figure 3.4). La fonction
coût à minimiser est celle définie par

φ(T ) = max {a + durée(xi ) | Ti = (xi , a)}


1≤i≤6

où T désigne une instanciation de toutes les variables du VCSP à contraintes


binaires fixes. En tenant compte des contraintes de précédence, la fonction φ
peut être calculée en prenant le maximum uniquement sur la paire {x3 , x6 }
au lieu de X.

On en déduit une définition possible de la fonction φi



⎨ a + durée(xi ) si i ∈ {3, 6}
φi (xi , a) = ⎩ (3.6)
0 sinon
On obtient donc φ(T ) = max6i=1 (φi (Ti )), où max est bien un opérateur mo-
notone.
Après application d’un algorithme d’arc-consistance, on obtient le pro-
blème dont le graphe d’inconsistance est représenté dans la figure 3.5. Dans
cette même figure on peut également voir une orientation du graphe d’incon-
sistance.

En se référant à cette orientation, on obtient les ensembles des conflits direc-


tionnels donnés dans le tableau 3.1.

En examinant ce tableau, on constate que tous les domaines de valeurs sont


des chaines de valeurs DS sauf D2 qui est composé de deux chaines : {(x2 , 1), (x2 , 2)}
et {(x2 , 3)}. En réduisant le domaine de x2 à {(x2 , 1), (x2 , 2)} puis à {(x2 , 3)},
on obtient deux sous-problèmes qui, d’après la proposition 2, ne contiennent
que des chaines de valeurs DS comme domaine. D’après la Propriété 1, c’est
deux sous-problèmes peuvent être résolus en un temps polynomial.

**********************************************************************
Méthodes de décomposition de domaines pour les CSPs Valués 52
**********************************************************************
Chapitre III : Une méthode de décomposition par la substituabilité directionnelle pour les
VCSPs

J1 T1,1 T1,2 T1,3

J2 T2,1 T2,2 T2,3

contrainte de resource

contrainte de précédence

Figure 3.4 – Un problème du type job-shop comportant deux jobs et six tâches. Toutes
les tâches sont supposées avoir une durée d’une unité de temps, sauf T2,2 qui en consomme
deux.

3.3.3 Exploitation de la Substituabilité Directionnelle


La notion de substituabilité directionnelle peut être utilisée pour améliorer la
résolution de VCSPs binaires à contraintes binaires fixes et ceci en l’intégrant
à l’algorithme du Branch-and-Bound pour obtenir l’algorithme BAB–DS (voir
fonction 2). Pour avoir une méthode de résolution plus efficace, BAB–DS in-
tègre également une procédure qui permet de maintenir l’arc-consistance du-
rant la recherche comme dans l’algorithme de résolution de CSP MAC [29].

BAB–DS prend comme paramètres le VCSP à contraintes binaires fixes à ré-


soudre (X, D, C, S), (qui est supposé être arc-consistant), une orientation du
graphe d’inconsistance du problème Λ, l’ensemble des variables non encore
instanciées Y et la meilleure solution courante I ∗ et procède comme suit :
il sélectionne une variable non encore instanciée, calcule la partition de son
domaine de valeurs en des chaines de valeurs DS et décompose le problème
courant en deux sous-problèmes.

Le premier sous-problème est obtenu en réduisant le domaine de valeurs de


la variable courante à une chaine de valeurs DS (notée Di,k dans le pseudo-
code). L’arc-consistance du problème résultant est alors restauré en utilisant

**********************************************************************
Méthodes de décomposition de domaines pour les CSPs Valués 53
**********************************************************************
Chapitre III : Une méthode de décomposition par la substituabilité directionnelle pour les
VCSPs

x1 x2 x3
2 2

1 1 4

0 3 3

0 2 3

1 1 4
x4 x5 x6
Figure 3.5 – Graphe d’inconsistance du job-shop décrit dans la figure 3.4 après applica-
tion d’un algorithme d’arc-consistance. On peut également voir une orientation du graphe
d’inconsistance.

un algorithme d’arc-consistance. Puis, un appel récursif est effectué pour


considérer les variables restantes. Cet appel permet d’obtenir la meilleure so-
lution du sous-problème qui limite les valeurs possibles de la variable courante
aux éléments de Di,k .

Ensuite, un processus de restauration des domaines de valeurs est effectué


et Di,k est éliminée du domaine de la variable courante. Après restauration
de l’arc-consistance du problème résultant, l’algorithme effectue un deuxième
appel récursif pour considérer les autres chaines de valeurs DS.

Les deux appels récursifs ne sont effectués que si une fonction heuristique
(h) indique qu’il est possible d’obtenir des solutions de qualité meilleures que
celles déjà trouvées. Si l’algorithme réussit à instancier toutes les variables
alors il exécute un processus polynomial (ligne 1) pour extraire la meilleure
solution à partir des chaines sélectionnées.

**********************************************************************
Méthodes de décomposition de domaines pour les CSPs Valués 54
**********************************************************************
Chapitre III : Une méthode de décomposition par la substituabilité directionnelle pour les
VCSPs

AlgorithmBAB–DS((X, D, C, S), Λ, Y, I ∗ )
if Y = ∅ then
1 retourner (min(D))
else
xi ← Sélect(Y )
Di ← DS-Partition(Di , Λ, (X, D, C, S))
Di,k ← Select (Di )
Di ← Di,k
AC (X, D, C, S)
if ∅ ∈
/ D et h(D) < φ(I) then
I ←BAB–DS (Y − {xi }, (X, D, C, S), Λ, I ∗ )
if φ(I) < φ(I ∗ ) then
I∗ ← I
Restaurer (D)
Di ← Di - Di,k
AC (X, D, C, S)
/ D et h(D) < φ(I ∗ ) then
if ∅ ∈
I ←BAB–DS (Y − {xi }, (X, D, C, S), Λ, I ∗ )
if φ(I) < φ(I ∗ ) then
I∗ ← I
Restaurer (D)
retourner (I ∗ )

**********************************************************************
Méthodes de décomposition de domaines pour les CSPs Valués 55
**********************************************************************
Chapitre III : Une méthode de décomposition par la substituabilité directionnelle pour les
VCSPs
0 1 2 3 4
x1 (x4 , 0) ∅ ∅
x2 (x1 , 1) (x1 , 2) (x3 , 3)
(x1 , 2) (x6 , 3)
x3 ∅ ∅
x4 ∅ (x1 , 1)
(x5 , 1)
x5 ∅ (x3 , 3)
(x6 , 3)
x6 ∅ ∅

Table 3.1 – Conflits directionnels des valeurs arc-consistantes du VCSP-FbC décrit dans la
figure 3.5.

3.3.4 Algorithme de DS partition


La relation Λ définit un préordre sur le domaine de chaque variable du
problème. Ce préordre peut être utilisé pour partitionner les domaines de
valeurs des variables en de chaines de valeurs DS. En effet, à partir de Λ ,
on définit, tout d’abord, la relation ∼Λ telle que a ∼Λ b si et seulement si
a Λ b et b Λ a. On peut facilement vérifier que ∼Λ est une relation d’équi-
valence. Λ induit un ordre partiel ≤Λ sur l’ensemble Di \ ∼Λ des classes
d’équivalence de ∼Λ tel que [a] ≤Λ [b] si et seulement si a Λ b, où [a]
désigne la classe d’équivalence de la valeur a.

En général, étant donné un ensemble partiellement ordonné E, on peut avoir


plusieurs partitions de E en chaines d’éléments totalement ordonnés. En théo-
rie des ensembles, la partition optimale en chaines d’un ensemble partielle-
ment ordonné est connue sous le nom de partition en chaines de Dilworth
(DCP) [9].

C’est une partition qui contient le nombre minimum de chaines parmi toutes
les partitions possibles. La taille d’une telle partition (i.e., le nombre de
chaines de la partition), définit la largeur de l’ordre partiel. Le problème
qui consiste à trouver la DCP d’un ensemble partiellement ordonné peut être
résolu en temps polynomial en l’exprimant comme un problème de recherche
d’un couplage maximum dans un graphe bipartite [13].

Motivé par le fait qu’à chaque noeud de l’arbre de recherche, l’algorithme de

**********************************************************************
Méthodes de décomposition de domaines pour les CSPs Valués 56
**********************************************************************
Chapitre III : Une méthode de décomposition par la substituabilité directionnelle pour les
VCSPs

BAB_DS

_1

C
DS

SO
e_

P_
n
ai

C
ha
C h

in
P_ CSOP_Chaine_DS_i

e_
O
CS

D
S_
l
[a1] [b1] [k1] [D¶1] [E¶1] [N¶1] [D¶¶1] [E¶¶1] [N¶¶1]

[a2] [b2] [k2] [D¶2] [E¶2] [N¶2] [D¶¶2] [E¶¶2] [N¶¶2]

[ai] [bi] [ki] [D¶L] [E¶L] [N¶L] [D¶¶L] [E¶¶L] [N¶¶L]

[an] [bn] [kn] [D¶Q] [E¶Q] [N¶Q] [D¶¶Q] [E¶¶Q] [N¶¶Q]

Figure 3.6 – Décomposition d’un VCSP–FbC en de chaines de valeurs directionnellement


substituables

résolution aura autant de choix que de chaines dans une DCP du domaine de
la variable courante, nous proposons de calculer une DCP à chaque noeud de
l’arbre de recherche. Par cette stratégie, on cherche à minimiser la taille de
l’arbre de recherche que l’algorithme aura à explorer.

La première étape du calcul de la DCP (voir la fonction 3) consiste à détermi-


ner la relation ∼Λ . Ceci peut être accompli en O(nd2 ) étapes en utilisant l’al-
gorithme décrit dans [10] ou celui proposé dans [24]. On en déduit les classes
d’équivalences Di / ∼Λ en O(d) étapes. L’étape la plus couteuse est celle du
calcul de la relation ≤Λ . Au pire des cas, d(d − 1)/2 tests d’inclusion entre
des paires d’ensembles de conflits directionnels sont nécessaires. Chaque test
d’inclusion peut être accompli en O(nd) puisque chaque ensemble de conflit
directionnel contient au maximum d(n − 1) éléments. D’où une complexité
de O(nd3 ) pour cette étape.

**********************************************************************
Méthodes de décomposition de domaines pour les CSPs Valués 57
**********************************************************************
Chapitre III : Une méthode de décomposition par la substituabilité directionnelle pour les
VCSPs

Figure 3.7 – La partition en chaine de Dilworth (DCP)

Ensuite, l’algorithme construit un graphe bipartite G = (V, U, E) tel que


V = U = Di / ∼Λ et l’ensemble des arêtes E contient une arête ([a], [b]) si et
seulement si [a] ≤Λ [b]. La construction de G nécessite O(d2 ) étapes. Un algo-
rithme de couplage maximum est alors appliqué à G. On utilise l’algorithme
décrit dans [13] qui s’exécute en O(d2.5 ) étapes.

Les chaines de la DCP sont extraites du couplage maximum en incluant les


éléments de [a] et ceux de [b] dans une même chaine chaque fois que l’arête
([a], [b]) fait partie du couplage maximum. Ceci demande O(d2 ) étapes. D’où
une complexité totale de O(nd3 ).

**********************************************************************
Méthodes de décomposition de domaines pour les CSPs Valués 58
**********************************************************************
Chapitre III : Une méthode de décomposition par la substituabilité directionnelle pour les
VCSPs

1 11 12 1k1

2 21 22 2k2

i i1 i2 iki

n n1 n2 nkn

Figure 3.8 – Complexité de la partition en chaine de Dilworth

3.3.5 Exemple (suite)


Exemple 15 Reprenons l’exemple du paragraphe 3.3.2. Comme on l’a déjà
constaté, après application d’un algorithme d’arc-consistance, tous les do-
maines de valeurs se trouvent réduits à des chaines de valeurs DS sauf D2
qui est composé de deux chaines : {(x2 , 1), (x2 , 2)} et {(x2 , 3)}.

L’application de l’algorithme BAB–DS à cet exemple se résume à instancier


les variables x1 , x3 , x4 , x5 et x6 par les seules chaines qui constituent leurs
domaines respectifs. Pour x2 , il y a deux instanciations possibles qui corres-
pondent aux deux chaines données ci-dessus.

Commençons par réduire D2 à la chaine {(x2 , 1), (x2 , 2)}. A ce stade, tous les
domaines sont des chaines de valeurs DS. La restauration de l’arc-consistance
(ligne 8) ne change rien à ce fait d’après la proposition 2. Le graphe d’incon-

**********************************************************************
Méthodes de décomposition de domaines pour les CSPs Valués 59
**********************************************************************
Chapitre III : Une méthode de décomposition par la substituabilité directionnelle pour les
VCSPs

Algorithm DS–Partition(Di , Λ, (X, D, C, S));


∼Λ ←− DirInterchangeable(Di , Λ, (X, D, C, S));
Di / ∼Λ ←− ExtractEqClass(∼Λ , Di , (X, D, C, S));
≤Λ ←− DirSubstituable(Di / ∼Λ , (X, D, C, Z));
G ←− BipartiteGraph(Di / ∼Λ , ≤Λ );
M ←− CouplageMaximum(G);
Di ←− ExtractChaines(Di , ∼Λ , M );
return(Di );

x1 x2 x3 x1 x2 x3
2 2

1 1 4 1 4

0 3 0 3

0 2 3 0 2

1 1 4 1 1 4

x4 x5 x6 x4 x5 x6

(a) (b)

Figure 3.9 – (a) Graphe d’inconsistance du VCSP-FbC associé au job-shop décrit dans la
figure 3.4 après réduction de D2 à la chaine {(x2 , 1), (x2 , 2)} et application d’un algorithme
d’arc-consistance. (b) Graphe d’inconsistance du même VCSP-FbC après réduction de D2 à
la chaine {(x2 , 3)} et application d’un algorithme d’arc-consistance.

sistance du problème obtenu est illustré dans la figure 3.9-(a). Par la suite,
l’algorithme choisit un élément minimum de chacun des domaines (ligne 2).

D’après le tableau 3.1 et la figure 3.9-(a), le choix est unique pour chacune
des variables et l’on obtient l’instanciation complète (1, 2, 3, 0, 1, 3) qui est
bien une solution qui satisfait toutes les contraintes et qui a un coût égal à 4
unités de temps.

Enfin, BAB–DS réduit D2 à {(x2 , 3)}. En appliquant l’algorithme d’arc-


consistance, puis la fonction heuristique h sur les domaines ainsi réduits,
on déduit qu’il n’est pas possible de trouver une solution meilleure que celle
déjà trouvée. En effet, les domaines de x3 et de x6 sont tous les deux réduits
à la seule valeur 4 (voir figure 3.9-(b)). Ce qui veut dire que la meilleure
solution qu’on peut espérer trouver a un coût de 5 unités de temps.

**********************************************************************
Méthodes de décomposition de domaines pour les CSPs Valués 60
**********************************************************************
Chapitre III : Une méthode de décomposition par la substituabilité directionnelle pour les
VCSPs

3.4 Interchangeabilité Directionnelle étendue pour les


VCSPs (EDI)
3.4.1 Définitions et propriétés
L’interchangeabilité directionnelle étendue est une forme faible de l’inter-
changeabilité de voisinage. Elle est définie en se référant à une orientation
du graphe de contraintes. Formellement, une orientation Λρ du graphe de
contraintes est un sens de direction de chaque V ar(Cxi ).

Étant donnée une orientation Λρ du graphe de contraintes, nous définissons


l’interchangeabilité directionnelle étendue (EDI) pour les VCSPs comme suit :
Définition 16 Soit P est un VCSP et soit a et a’ sont deux valeurs dans le
domaine de la variable xi . a est dit directionnellement interchangeable étendue
à a’ selon une orientation donnée Λρ du graphe de contraintes, (notation
a∼ =PΛρ a ), ssi
ˆ  | ∀j ≺ i ∀b ∈ Dj ,
∃ δa,a

a∼
=Pj≺i a ⇔ ϕ(a, b) = ϕ(a , b) + δa,a
ˆ (3.7)
Pour simplifier, ∼ =Λρ va être utiliser à la place de ∼
=PΛρ si ceci ne cause pas d’am-
bigüités. La relation ∼
=Λρ définie les domaines des valeurs interchangeables
étendues de chaque variable.

Un cas, intéressant, est celui dans lequel chaque domaine de valeurs du pro-
blème est réduit à une chaı̂ne de valeurs EDI. Les problèmes dans cette classe
peuvent être résolus dans un temps polynômial.

Propriété 3 Soit P est un VCSP arc-consistant et Λρ est une orientation de


son graphe de contraintes. Si chaque domaine de valeurs de P est une chaine
de valeurs EDI selon ρ alors P peut être résolu en un temps polynomial.
Preuve 3 Premièrement, ∀a a tel que a ∼ =P a ,nous projetons la différence
j≺i
ˆ  comme un coût unaire de la valeur a, comme suit :
δa,a
Deuxièment, nous appliquons l’algorithme d’arc-consistance à P. Dans ce
stade, nous pouvons distinguer deux cas :

**********************************************************************
Méthodes de décomposition de domaines pour les CSPs Valués 61
**********************************************************************
Chapitre III : Une méthode de décomposition par la substituabilité directionnelle pour les
VCSPs

AlgorithmProject Cost
for tout b ∈ Dj do
for tout a a ∈ Di do
if a ∼
=Pj≺i a ⇔ ϕ(a, b) = ϕ(a , b) + δa,a
ˆ  then

ϕ(a, b) = ϕ(a , b)
ϕ(a) = δa,a
ˆ

– un des domaines de valeurs de ac(P) est vides et donc P est inconsis-


tant, par conséquent nous n’avons aucune solution dans P permettant
de satisfaire les contraintes dures.

– tous les domaines de valeurs de ac(P) ne sont pas vides et donc ac(P) est
arc-consistant. Alors nous devons choisir, entre les n-uplets de ac(D1 ) ×
. . . × ac(Dn ), un n-uplet t∗ dont les composantes sont définies comme
suit :

t∗i = arg min ϕ(ai , aj ) + ϕ(ai ) (3.8)
ai ∈ac(Di ) ci,j∈C , i≺j

Notons que aj est une valeur quelconque de ac(Dj ). Cependent, aj peut


être une valeur quelconque de ac(Dj ) car, étant donné que toutes les va-
leurs de ac(Dj ) sont EDI et que i ≺ j, toutes ϕ(ai , b)+ϕ(ai ), b ∈ ac(Dj )
sont équivalents.

Nous prouvons maintenant que t∗ satisfait les contraintes dures, i.e. :



ϕ(t∗i , t∗j ) < 
ci,j ∈C, i≺j

Pour ce faire, nous supposons que



ϕ(t∗i , t∗j ) = 
ci,j ∈C, i≺j

Comme + est strictement monotone, ce ci veut dire qu’il existe ci ,j  ∈


C, i ≺ j  tel que ϕ(t∗i , t∗j  ) = . Nous nous pouvons pas avoir i ≺ j  si-
non, ϕ(t∗i , t∗j  ) =  impliquera que ϕ(t∗i , b) =  pour toutes b ∈ ac(Dj  )
car ac(Dj  ) est un sous ensemble de valeurs EDI selon ≺. t∗i ne doit
pas avoir un support dans ac(Dj  ), ce qui contredit le fait que ac(P)
est arc-consistant. Aussi nous nous pouvons pas avoir j  ≺ i , sinon

**********************************************************************
Méthodes de décomposition de domaines pour les CSPs Valués 62
**********************************************************************
Chapitre III : Une méthode de décomposition par la substituabilité directionnelle pour les
VCSPs

ϕ(t∗i , t∗j  ) =  impliquera que ϕ(a, t∗j  ) =  pour toutes a ∈ ac(Di ) car
ac(Di ) est un sous ensemble de valeurs EDI selon ≺. t∗j  ne doit pas
avoir de support dans ac(Di ), ce qui contredit le fait que ac(P) est arc-
consistant. Et donc, nous avons une contradiction avec le fait que ≺ est
un ordre totale. Alors, t∗ satisfait les contraintes dures.

Dans cette étape nous prouvons que t∗ est optimal. Par le choix de t∗
(en se référant à l’équation 3.8), pour tout n-uplet t, nous avons,

∀i, 1 ≤ i ≤ n, (3.9)

ϕ(t∗i , t∗j ) + ϕ(t∗i ) (3.10)
ci,j ∈C, i≺j

≤ ϕ(ti , t∗j ) + ϕ(ti ) (3.11)
ci,j ∈C, i≺j

Pourtant, chaque ac(Dj ) est un sous-ensemble de valeurs de EDI selon


≺, alors ϕ(ti , t∗j ) + ϕ(ti ) = ϕ(ti , b) + ϕ(ti ) pour toutes j, i ≺ j et pour
toutes b ∈ ac(Dj ) et particulièrement pour tj ∈ ac(Dj ). Comme,

∀i, 1 ≤ i ≤ n,


ϕ(ti , t∗j ) + ϕ(ti )
ci,j ∈C, i≺j


= ϕ(ti , tj ) + ϕ(ti )
ci,j ∈C, i≺j

En se référant à (3.9), nous avons

∀i, 1 ≤ i ≤ n,

ϕ(t∗i , t∗j ) + ϕ(t∗i ) ≤
ci,j ∈C, i≺j

ϕ(ti , tj ) + ϕ(ti )
ci,j ∈C, i≺j

Combinant avec l’opérateur monotone +, toutes les n inéquations de


(3.12), nous obtenons

**********************************************************************
Méthodes de décomposition de domaines pour les CSPs Valués 63
**********************************************************************
Chapitre III : Une méthode de décomposition par la substituabilité directionnelle pour les
VCSPs


ϕ(t∗i , t∗j ) + ϕ(t∗i ) ≤ (3.12)
ci,j ∈C, i≺j

ϕ(ti , tj ) + ϕ(ti ) (3.13)
ci,j ∈C, i≺j

Et comme + est commutatif et associatif, (3.12) est vraie quelque soit


l’ordre, particulièrement l’ordre naturel.

ϕ(t∗i , t∗j ) + ϕ(t∗i ) ≤
ci,j ∈C, i<j


ϕ(ti , tj ) + ϕ(ti )
ci,j ∈C, i<j

Alors, t∗ est optimal.

Une propriété essentielle de EDI est qu’il est préservé par la réduction du
problème. Formellement, nous avons

Propriété 4 Soit P et P  sont deux VCSPs tel que P P  , Λ une orien-


tation du graphe de contraintes de P, (qui est identique à celle de P  ), et
soit a et a’ sont deux valeurs de la variable xi qui sont valables dans les deux
problèmes. Alors, nous avons

=PΛ a ⇒ a ∼
a∼

=PΛ a .

Preuve 4 Pour tout a, a ∈ Di ∩ Di si a et a sont EDI dans P  alors


pour tout b ∈ Dj avec j ≺ i, on a

∀b ∈ Dj ∀a, a ∈ Di

a∼

=Pj≺i a ⇔ ϕ (a, b) = ϕ (a , b) + δa,a
ˆ

Or la fonction ϕi,j de P est la restriction de la fonction ϕi,j de P  à


Di × Dj .
Par conséquent, ∀b ∈ Dj , ∀a, a ∈ Di

**********************************************************************
Méthodes de décomposition de domaines pour les CSPs Valués 64
**********************************************************************
Chapitre III : Une méthode de décomposition par la substituabilité directionnelle pour les
VCSPs

a∼
=Pj≺i a ⇔ ϕ(a, b) = ϕ(a , b) + δa,a
ˆ

pour l’ordre j ≺ i.
Et par suite a et a sont EDI dans P.

La conséquence de la proposition 4 est que

Propriété 5 Pour n’importe quelle paire de problèmes P = (X, D, C, S) et


P  = (X, D , C, S) tel que P P  , si Di est une chaine de valeurs EDI dans
P  alors Di est une chaine de valeurs EDI dans P.

Preuve 5 La preuve résulte immediatement de la proposition 4 en observant


que en une chaine, toutes les valeurs sont comparables.

3.4.2 Exploitation de l’Interchangeabilité Directionnelle Etendue


La notion d’interchangeabilité directionnelle étendue peut être utilisée pour
améliorer la résolution de VCSPs binaires et ceci en l’intégrant à l’algorithme
du Branch-and-Bound pour obtenir l’algorithme BAB–EDI (voir fonction 5).

Pour avoir une méthode de résolution plus efficace, BAB–EDI intègre éga-
lement une procédure qui permet de maintenir l’arc-consistance durant la
recherche comme dans l’algorithme de résolution de CSP MAC [29].

BAB–EDI prend comme paramètres le VCSP à contraintes binaires à ré-


soudre (X, D, C, S), (qui est supposé être arc-consistant), une orientation du
graphe d’inconsistance du problème Λ, l’ensemble des variables non encore
instanciées Y et la meilleure solution courante I ∗ et procède comme suit :
Il sélectionne une variable non encore instanciée, calcule la partition de son
domaine de valeurs en des chaines de valeurs EDI : Di = {Di,1 , . . . , Di,k } de
Di est basé en EDI. La partition EDI peut être accomplie en O(nd2 ) étapes
en utilisant l’algorithme présenté en [?] ou celui proposé en [?].

l’algorithme itère sur les sous ensembles de la partion de domaine Di et réduit


à chaque itération Di à Di,s ∈ Di , (voir ligne 7). Alors, la procédure Propagate

**********************************************************************
Méthodes de décomposition de domaines pour les CSPs Valués 65
**********************************************************************
Chapitre III : Une méthode de décomposition par la substituabilité directionnelle pour les
VCSPs

est appelée pour établir l’arc-consistance local.

A ce stade, xi est considérée comme une variable instanciée, elle sera alors
supprimée de l’ensemble des variables non encore instanciées même si son
domaine n’est pas réduit à un singleton. Si aucun domaine vide n’est ren-
contré, donc l’algorithme exécute un appel récursif pour traiter les variables
futures. Sinon, il considère un autre élément de Di . Si toutes les itérations
ne rendent aucune solution, l’algorithm backtracks à la variable immédiate-
ment précédente. Au contraire, si BAB-EDI succède à instancier toutes les
variables alors nous obtenons un paquet de solutions.

Algorithm BAB–EDI(Y, (X, D, C, S), Λ, I ∗ );


if Y = ∅ then
return(D);
else
xi ←− Select(Y );
Di ←− DI–Partition(Di , Λ, (X, D, C));
for ∀ Di,s ∈ Di do
Di ←− Di,s ;
Propagate(xi , Y − {xi }, (X, D, C));
if no empty domain then
I ←− FC–DI(Y − {xi }, (X, D, C), Λ);
if I = ∅ then
return(I);
Restore(D);
return(∅);

La procédure Propagate qui est décrite ci-dessous assure l’arc-consistance


de chaque arc dont le sommet cible représente une variable instanciée. Soit xi
est la variable courante. Propagate procède en deux étapes. Dans la première
étape, tous les arcs (xj , xi ) sont arc-consistant. Ensuite, Propagate traite tout
les arcs (xk , xj ) tel que xk est une variable non-instanciée et xj est une va-
riable instanciée dont le domaine a été modifié dans la première étape. Il
s’ensuit que pendant la deuxième étape, le domaine de xi n’est pas réduit dé-
sormais parceque xi est considérée dorénavant comme une variable instanciée.

Alors, tous les (xj , xi ) restent arc-consistant. Propagate appelle ReviseDomain

**********************************************************************
Méthodes de décomposition de domaines pour les CSPs Valués 66
**********************************************************************
Chapitre III : Une méthode de décomposition par la substituabilité directionnelle pour les
VCSPs

qui est une fonction standard pour restaurer l’arc-consistance. La Fonction


ReviseDomain retourne vrai ssi elle a enlevé quelques valeurs incohérentes.

Algorithm Propagate(xi , Y, (X, D, C));


Q ←− ∅;
for ∀ (xj , xi ) do
if ReviseDomain((xj , xi ), (X, D, C)) then
Q ←− Q ∪ {(xk , xj ) | xk ∈ Y and xj ∈ X − Y };
for ∀ (xk , xj ) ∈ Q do
ReviseDomain((xk , xj ), (X, D, C));

3.5 Orientation du graphe d’inconsistance


L’orientation du graphe d’inconsistance utilisée comme référence (voir équa-
tion 3.2) pour déterminer les valeurs DS a un grand impact sur l’occurrence
des valeurs DS. Les meilleures résultats ont été obtenus lorsqu’on s’ait ré-
féré à une orientation qui favorise l’occurrence des valeurs DS à des niveaux
proches de la racine de l’arbre de recherche. Une telle orientation est obtenue
dynamiquement en utilisant un algorithme glouton (voir fonction 7).

Au départ du processus de recherche, l’orientation Λ est vide. A chaque étape,


l’algorithme d’orientation ne considère que les arêtes qui relient les valeurs de
la variable courante à ceux des variables déjà instanciées. Soit a une valeur
quelconque de la variable courante qui est incompatible avec une valeur b
d’une variable déjà instanciée. L’arête {a, b} donnera lieu à l’arc (a, b), qui
sera ajouté à Λ.

Cette stratégie favorise l’occurrence des valeurs DS à des niveaux proches


de la racine. En effet, rappelons que seulement les arcs sortants d’une valeur
sont pris en considération lors du calcul des conflits directionnels de cette
valeur. En ne considérant que les arêtes qui vont vers les valeurs des variables
instanciées, on augmente les chances des valeurs des variables traitées à des
niveaux proches de la racine à être DS les une aux autres. La raison de ceci
est que, proche de la racine, il y a peu de variables instanciées.

**********************************************************************
Méthodes de décomposition de domaines pour les CSPs Valués 67
**********************************************************************
Chapitre III : Une méthode de décomposition par la substituabilité directionnelle pour les
VCSPs

Le fait de considérer de larges chaines de valeurs DS à des niveaux peu pro-


fonds de l’arbre de recherche est une stratégie souvent avantageuse car, à ce
stade, l’heuristique d’ordre des valeurs ne dispose pas d’assez d’informations
pour faire des choix corrects de valeurs. En prenant des décisions portant sur
plusieurs valeurs, on peut éviter des erreurs qui, plus elles sont commises tôt,
plus elles sont couteuses en temps d’exploration.

Algorithm Orientation(xi , Λ, Y, (X, D, C, Z));


for ∀ xj ∈ X − Y | Ci,j ∈ C do
for ∀ a ∈ Di do
for ∀ b ∈ Dj | (a, b) ∈
/ Rel(Ci,j ) do
Λ ←− Λ ∪ {(a, b)};

Retourner (Λ);

3.6 Substituabilité directionnelle (DS) pour les VCSPs


Dans cette section, pour résoudre les VCSPs, nous allons exploiter la mé-
thode de décomposition par la substituabilité directionnelle qui permet de
résoudre les VCSPs binaires à contraintes binaires fixes.

Pour résoudre un VCSP nous proposons de passer par son duale. Nous com-
mençons par la définition du duale d’un CSP.

Définition 17 Le problème dual d’un CSP est une reformulation de ce pro-


blème de satisfaction de contraintes exprimant chaque contrainte du problème
original comme une variable. Les problèmes duales contiennent seulement des
contraintes binaires et sont donc solubles par des algorithmes façonnés pour
de tels problèmes.
Par analogie, nous pouvons définir le duale d’un VCSP comme suit :

Définition 18 Le problème dual d’un VCSP est une reformulation de ce pro-


blème de satisfaction de contraintes valuées exprimant chaque contrainte du
problème original comme une variable dont la contrainte unaire de cette va-
riable correspond au coût de la contrainte dans le problème original.

**********************************************************************
Méthodes de décomposition de domaines pour les CSPs Valués 68
**********************************************************************
Chapitre III : Une méthode de décomposition par la substituabilité directionnelle pour les
VCSPs

Les problèmes duales des VCSPs contiennent seulement des contraintes bi-
naires et sont donc solubles par des algorithmes façonnés pour de tels pro-
blèmes. Parmi ces algorithmes nous proposons notre méthode de décomposi-
tion par la substituabilité directionnelle.

Propriété 6 Les VCSPs, reformulés par leurs duales, sont solubles par la
méthode de décomposition par la substituabilité directionnelle

Preuve 6 Les problèmes duales contiennent seulement des contraintes bi-


naires à coûts fixes En effet, le duale d’un VCSP est un VCSP binaire à
contraintes binaires fixes.

3.7 Résultats expérimentaux


L’algorithme d’arc-consistance employé est AC-3 [23]. L’heuristique d’ordre
de variables est min-domain/wdeg [2], celle de l’ordre des valeurs privilégie, on
a simulé deux heuristiques : D’abord, les valeurs qui ont le moins de conflits
[11] (le BAB sera noté dans ce cas par MC).

Ensuite, les valeurs les plus faibles(le BAB sera noté dans ce cas par MV). La
fonction φi , qui est indispensable pour définir la substituabilité directionnelle,
est déduite de φ de manière analogue à celle spécifiée par l’équation (3.6).

Les critères d’évaluation des performances sont la taille de l’arbre de recherche


explorée, le temps de calcul et la qualité de la meilleure solution trouvée. Les
deux algorithmes ont été implémentés en C++ et exécutés sur un PC à 2
GHZ de fréquence et une mémoire vive de 4GB.

Les problèmes test utilisés sont ceux référencés par js-taillard-15 dispo-
nibles sur [21]. Ce sont dix instances de job-shops comportant 15 jobs et 15
machines, (donc 225 tâches), générés selon le modèle décrit dans [32]. Pour
ces instances de job-shop, la discrétisation du temps maximum impartie pour
exécuter toutes les tâches donne plus de mille valeurs. Pour obtenir des solu-
tions en des temps d’exécution raisonnables pour des VCSPs-FbC impliquant
de si large domaines de valeurs, on a élargi davantage les domaines de valeurs
pour obtenir des instances plus faciles. Ainsi, on a multiplié les tailles des

**********************************************************************
Méthodes de décomposition de domaines pour les CSPs Valués 69
**********************************************************************
Chapitre III : Une méthode de décomposition par la substituabilité directionnelle pour les
VCSPs

domaines originaux par un facteur de 105%, 104% puis 103% pour obtenir
des instances qui vont des plus faciles aux plus difficiles. De plus, on a fait
recours à une recherche par divergence limitée [12], pour les deux algorithmes.

Les résultats obtenus (voir figures 3.10 et ??) montrent clairement que MC+DS
et MV+DS ont trouvé des solutions pour plus d’instances que MC ou MV.
Pour les instances auxquelles les deux algorithmes ont réussit à trouver des
solutions, on constate que dans la plupart des cas, ou bien que la solution trou-
vée par BAB–DS a un coût meilleur que celle trouvée par BAB, ou bien que
BAB–DS trouve une solution ayant le même coût mais en moins de temps.
Sur les trente instances considérées, il y a uniquement sis instances (MC-
104-4, MC-104-7, MC-103-7, MV-105-6 et MV-104-9) sur lesquelles, BAB a
été meilleur que BAB–DS. Enfin, la supériorité de BAB–DS ne semble pas
dépendre de la difficulté des instances, ni de l’heuristique employée puisque
BAB–DS est globalement meilleur sur les deux niveaux de difficulté.

**********************************************************************
Méthodes de décomposition de domaines pour les CSPs Valués 70
**********************************************************************
Chapitre III : Une méthode de décomposition par la substituabilité directionnelle pour les
VCSPs

temps coût temps coût


instances MC MC+DS MC MC+DS MV MV+DS MV MV+DS
105-0 7065 651 1308 1308 – 225 – 1290
105-1 90 3847 1326 1325 – 1573 – 1304
105-2 11521 748 1295 1295 – 1173 – 1285
105-3 – 3743 – 1239 – 6193 – 1234
105-4 – 5503 – 1297 4491 12943 1291 1285
105-5 – 2532 – 1308 – 2249 – 1309
105-6 105 6056 1297 1296 2292 9559 1284 1286
105-7 – 376 – 1282 – 523 – 1282
105-8 3406 74 1353 1353 – 2541 – 1343
105-9 3051 4681 1334 1333 739 13850 1334 1316
104-0 – 4526 – 1296 12157 3366 1292 1279
104-1 – 460 – 1313 – 12147 – 1302
104-2 – 88 – 1283 – 13812 – 1269
104-3 646 2716 1228 1227 – 11080 – 1228
104-4 1500 12942 1285 1285 – 10504 – 1281
104-5 – 643 – 1297 – – – –
104-6 – 1136 – 1284 – 766 – 1282
104-7 2606 14028 1270 1270 – – – –
104-8 61 539 1341 1340 – 4137 – 1340
104-9 99 79 1321 1321 739 – 1318 –
103-0 – 122 – 1284 – – – –
103-1 – 885 – 1301 – 3813 – 1284
103-2 – 423 – 1271 – 389 – 1262
103-3 – – – – – 9734 – 1213
103-4 – – – – – 218 – 1270
103-5 – – – – – – – –
103-6 – 1274 – 1273 – – – –
103-7 2513 – 1259 – – – – –
103-8 – – – – – 132 – 1327
103-9 – 454 – 1309 – 8926 – 1287

Figure 3.10 – Résultats obtenus par MC, MC+DS, MV et MV+DS sur les instances js-
taillard-15-(105 à 103). Le temps CPU en secondes et le coût de la meilleure solution trou-
vée sont raportés. Pour le temps CPU, on indique les temps auxquels ont été trouvées les
meilleures solutions. Le temps d’exécution a été limité à 4 heures par instance.

**********************************************************************
Méthodes de décomposition de domaines pour les CSPs Valués 71
**********************************************************************
Chapitre III : Une méthode de décomposition par la substituabilité directionnelle pour les
VCSPs

3.8 Conclusion
Dans ce chapitre, nous avons proposé deux extensions à la notion de substi-
tuabilité directionnelle présentée dans [24]. Tout d’abord, nous avons géné-
ralisé davantage la substituabilité directionnelle en considérant, comme réfé-
rence, une orientation du graphe d’inconsistance du problème au lieu d’un
ordre sur les variables du problème. Puis, nous avons introduit des conditions
supplémentaires de substituabilité garantissant l’optimalité de la solution lors
de la résolution des problèmes VCSPs.

Les résultats de simulation sur plusieurs VCSPs–FbC qui codent des pro-
blèmes d’ordonnancement du type job-shop ont montré qu’une variante de
l’algorithme du Branch-and-Bound exploitant la substituabilité directionnelle
est souvent plus efficace que l’algorithme original.

Une extension possible de ce travail consiste à proposer une formulation en-


core plus générale que la substituabilité directionnelle afin de pouvoir l’appli-
quer aux VCSPs [30] en profitant de classes polynomiales plus importantes
lors de la décomposition.

**********************************************************************
Méthodes de décomposition de domaines pour les CSPs Valués 72
**********************************************************************
Chapitre 4

Une méthode de décomposition


modulaire pour les CSPs Valuées

Résumé
De nombreux problèmes combinatoires peuvent être formulés comme des Problèmes de Sa-
tisfaction de Contraintes Valuées (VCSPs) où les contraintes sont définies à l’aide des fonctions
de valuation pour refléter les degrés de cohérence.

Pour résoudre un VCSP, il faut trouver une attribution de valeurs aux variables avec une valuation
complète optimale. Particulièrement pour plusieurs problèmes, cette tâche est difficile du point de
vue de la complexité.

Ce chapitre présente une méthode de décomposition de domaine pour résoudre les VCSPs binaires.
Elle s’appuie sur la classe des fonctions modulaires [27]. Le processus de décomposition produit
des sous problèmes dont les fonctions de valuation sont exclusivement modulaires.

Pour les VCSPs binaires avec de telles fonctions de valuation, nous proposons un algorithme
d’identification de complexité O(ed2 ) et un algorithme de résolution de complexité O(ed).

73
Chapitre IV : Une méthode de décomposition modulaire pour les CSPs Valuées

4.1 Introduction
La complexité algorithmique de la recherche de la solution optimale d’un
VCSP a été étudiée dans plusieurs travaux de recherche. Et plusieurs classes
polynomiales de VCSPs ont été identifiées et résolues [7, 16, 6]. Les VCSPs
impliquant les fonctions de valuation binaires sous-modulaires est une des
classes polynomiales.

En effet, en exprimant ces VCSPs comme des problèmes cherchant à trouver


la coupe minimale d’un graphe pondéré, il est possible de les résoudre en
O(n3 d3 ) étapes où n est le nombre de variables et d est la taille du domaine
de valeur le plus large [5].

Néanmoins, les VCSPs résultant de cas réels ne sont pas limités à des fonc-
tions sous-modulaires. Dans de tels cas, pouvons nous procéder de manière
plus efficace qu’une recherche exhaustive tout en réduisant la solution opti-
male ? Y at-il moyen d’exploiter les sous-modularité dans un contexte plus
restreint ?

Ce chapitre est destiné pour contribuer à fournir des réponses positives à ces
questions. Motivé par les résultats obtenus sur les CSPs [?], nous présentons
une méthode de décomposition de domaine pour résoudre les VCSPs binaires.
Elle s’appuie sur la classe des fonctions modulaires [27]. Le processus de dé-
composition produit des sous problèmes dont les fonctions de valuation sont
exclusivement modulaires.

Pour les VCSPs binaires avec de telles fonctions de valuation, nous propo-
sons un algorithme d’identification de complexité O(ed2 ) et un algorithme de
résolution de complexité O(ed).

Dans le présent chapitre, nous proposons une méthode modulaire de décom-


position pour les VCSPs binaires. Les divers étapes de cette méthode sont
présentées dans la figure 4.1.

Le chapitre est organisé comme suit : la section suivante présente quelques


définitions et notations. La section 4.3 est consacrée aux fonctions binaires

**********************************************************************
Méthodes de décomposition de domaines pour les CSPs Valués 74
**********************************************************************
Chapitre IV : Une méthode de décomposition modulaire pour les CSPs Valuées

FbC
1
2
nc

Figure 4.1 – Les étapes de la Méthode de décomposition modulaire de domaine pour les
VCSPs

modulaires et leur décomposition. Dans la section 4.4, nous présentons la


décomposition et des solutions algorithmiques pour les VCSPs binaires. Des
résultats expérimentaux sont annoncés dans la section 4.5. Finalement, la
section 4.6 est une brève conclusion.

4.2 Définitions et Notations


Comme mentionné précédemment, nous sommes concernés par les algo-
rithmes complets qui fonctionnent par recherche en profondeur (DFS) dans
un arbre de recherche jusqu’à ce qu’une solution optimale soit trouvée ou il
est prouvé qu’aucune solution n’existe.

A chaque noeud de l’arbre de recherche,les algorithmes de résolution de base,


DFS, exécutent une réduction du problème original. Cette réduction consiste

**********************************************************************
Méthodes de décomposition de domaines pour les CSPs Valués 75
**********************************************************************
Chapitre IV : Une méthode de décomposition modulaire pour les CSPs Valuées

dans l’assignation d’une valeur à une variable et à enlèver les valeurs qui sont
dorénavant incohérentes avec la solution partielle ou ceux menant aux solu-
tions sous-optimales.

Formellement, les problèmes traités le long du même chemin de l’arbre de


recherche peuvent être connectés par la relation suivante

Définition 19 Un problème P = (X, D, C, S) est dit être une réduction de


P  = (X  , D , C  , S  ) (notation P P  ) si et seulement si
– X = X ;
– Di ⊆ Di , pour chaque xi ∈ X ;
– C 1 = {ci | ci ∈ C 1 et φi est la restriction de φi à Di } ;
– C 2 = {ci,j | ci,j ∈ C 2 et φi,j est la restriction de φi,j à Di × Dj } ;
– S  = S.

4.3 Les fonctions modulaires binaires


Dans cette section, nous définissons la fonction modulaire binaire, mettons
en évidence certaines de leur propriétés et montrons qu’elle peut être exprimée
comme la somme de deux fonctions unaires.

4.3.1 Définitions et propriétés


Définition 20 Soit S = E, +, ≤ est une structure de valuation propre.
Une fonction binaire f : D2 −→ E sur l’ensemble fini D est modulaire en
respectant S si, pour tout u, x, v, y ∈ D, nous avons

f (u, v) + f (x, y) = f (u, y) + f (x, v) (4.1)

Soit on note M le sous-ensemble de toutes les fonctions modulaires de B et


soit f et f T sont deux fonctions binaires de B tel que pour tout u, v dans
D, nous avons f (u, v) = f T (v, u). Alors, nous pouvons facilement déduire de
(5.2) que f est dans M si et seulement si f T est dans M.

De (5.2), nous pouvons aussi déduire que, pour toute f dans M et tout v, y
dans D, la déclaration suivante est vraie

**********************************************************************
Méthodes de décomposition de domaines pour les CSPs Valués 76
**********************************************************************
Chapitre IV : Une méthode de décomposition modulaire pour les CSPs Valuées

∃u ∈ D, f (u, v) < f (u, y) ⇒ ∀u ∈ D, f (u, v) ≤ f (u, y) (4.2)

Notons M l’ensemble de toutes les fonctions modulaires binaires sur l’en-


semble fini D avec l’ensemble totalement ordonné E comme le co-domaine.
Soit f T est une fonction binaire déduite d’une autre fonction binaire f comme
suit

∀u, x ∈ D, f T (u, x) = f (x, u)

Il est facile de montrer que

f ∈M ⇔ fT ∈ M (4.3)
Soit u, x sont deux éléments de D. De (5.2), nous déduisons ce qui suit

∃π ∈ D, f (π, u) ≤ f (π, x) ⇒ ∀π ∈ D, f (π, u) ≤ f (π, x) (4.4)

Cela signifie que la comparaison entre f (π, u) et f (π, x) ne dépend pas de π.


De plus, depuis ≤ est un ordre total sur E, il incite un ordre total sur les
éléments de D que nous dénotons par et définissons comme suit

u x ⇔ f (π, u) ≤ f (π, x), pour chaque π ∈ D

Pour u, x, π ∈ D tel que f (π, u) ≥ f (π, x) noté par δu,x la différence


f (π, u) − f (π, x). De (5.2), il est facile de montrer que δu,x ne dépend pas de
π:

δu,x = f (π, u) − f (π, x), ∀π ∈ D (4.5)

4.3.2 Réduction de fonctions modulaires binaires


Dans ce qui suit, nous montrons qu’une fonction modulaire binaire peut
être efficacement réduite à la somme de deux fonctions unaires.

Soitμ est un des éléments minimaux de D selon .

μ = arg min f (π, u), pour chaque π ∈ D (4.6)


u∈D

**********************************************************************
Méthodes de décomposition de domaines pour les CSPs Valués 77
**********************************************************************
Chapitre IV : Une méthode de décomposition modulaire pour les CSPs Valuées

et considérons les fonctions unaires f↑ et f↓ définis sur D avec des valuations


dans E comme :

f↑ (u) = f (u, μ) (4.7)


f↓ (u) = f (π, u) − f (π, μ) (4.8)
où π est n’importe quel élément de D. Notons que f↓ (u) existe pour tout
u ∈ D depuis par (4.6), nous avons f (π, u) ≥ f (π, μ). De plus, selon (4.5),
f↓ (u) ne dépend pas du choix de π.

La propriété suivante rapproche à la fonction modulaire binaire f des fonc-


tions unaires f↑ et f↓ .

Propriété 7 Soit f : D2 −→ E est une fonction binaire. Alors f est modu-


laire si et seulement si
f (u, v) = f↑ (u) + f↓ (v), ∀u, v ∈ D (4.9)

Preuve 7 Nous prouvons d’abord que la modularité assure (4.9). Par le fait
que f est modulaire, nous avons,
f (u, v) + f (π, μ) = f (u, μ) + f (π, v)
f (u, v) = f↑ (u) + f (π, v) − f (π, μ)
f (u, v) = f↑ (u) + f↓ (v)

Au contraire, pour tout u, v, x, y ∈ D, si (4.9) se tient alors

f (u, v) + f (x, y) = f↑ (u) + f↓ (v) + f↑ (x) + f↓ (y)


= f↑ (u) + f↓ (y) + f↑ (x) + f↓ (v)
= f (u, y) + f (x, v)
Ci-dessous est le pseudo-code d’un algorithme qui prend comme des para-
mètres de saisie une fonction modulaire binaire sur D et un élément π dans
D et calcule les fonctions unaires f↑ et f↓ selon (4.7) et (4.8).

Exemple 16 Nous avons pris un exemple de fonction binaire modulaire f


(2 + 8 = 3 + 7), cette fonction est illustrée par la Figure 4.2 (a).

**********************************************************************
Méthodes de décomposition de domaines pour les CSPs Valués 78
**********************************************************************
Chapitre IV : Une méthode de décomposition modulaire pour les CSPs Valuées

Function Reduce(f, D, x) : f↑ , f↓
m ← arg minu∈D f (x, u)
for u ∈ D do
f↑ (u) ← f (u, m)
for u ∈ D do
f↓ (u) ← f (x, u) − f (x, m)

L’algorithme Reduce calcule m1 = min{3, 8} = 3 et m2 = min{2, 7} = 2.


m1 et m2 seront stockées respectivement dans f↑ (u) et f↑ (x). (Voir Figure 4.2
(b).)
Enfin, dans f↓ (y) on stockera f (u, y) − m1 = f (x, y) − m2 = 5.

Comme la fonction f est modulaire binaire, l’application de l’algorithme Re-


duce transforme toutes les fonctions binaires en des fonctions unaires f↑ et
f↓ . (Voir Figure 4.2 (c)).

Propriété 8 Étant donné une fonction modulaire binaire f définie sur un


ensemble fini D avec l’ensemble totalement ordonné E comme co-domaine.
Alors l’algorithme Reduce calcule deux fonctions unaires vérifiant la pro-
priété 7 dans O(|D|) étapes.

Preuve 8 Cette propriété peut être facilement déduite du pseudo-code de l’al-


gorithme Reduce.

Propriété 9 Une fonction binaire f : D2 −→ E peut être identifiée comme


modulaire dans O(|D|2 ) étapes.

Preuve 9 Selon la propriété 7, il suffit d’appliquer l’algorithme Reduce qui


s’exécute dans O(|D|) étapes et vérifier ensuite des equations en |D|2 donné
par (4.9).

4.3.3 Décomposition en fonctions modulaires binaires


Dans ce paragraphe, nous montrons que, étant donné une fonction binaire
f qui n’est pas nécessairement modulaire, il est possible de diviser D en de
sous-ensembles pour qu’en limitant le premier argument de f à un de ces
sous-ensembles, nous obtenions une fonction binaire modulaire.

**********************************************************************
Méthodes de décomposition de domaines pour les CSPs Valués 79
**********************************************************************
Chapitre IV : Une méthode de décomposition modulaire pour les CSPs Valuées

(u) (x)
i (u) (x)

j (v) (y)
(v) (y)

(u) (x)
i (u) (x)

j (v) (y)
(v) (y)

(u) (x)
i (u) (x)

j (v) (y)
(v) (y)

Figure 4.2 – Illustration de l’algorithme Reduce

Définition 21 Soit f est une fonction binaire définie sur D avec E comme
le co-domaine et soit u, x sont deux éléments de D. Nous disons que {u, x}
est une paire modulaire par rapport à f (notation u ≡f x) si et seulement si
la restrection de f à {u, x} × D est modulaire. Plus précisément, nous avons

u ≡f x ⇔ ∀v, y ∈ D, f (u, v) + f (x, y) = f (u, y) + f (x, v) (4.10)

Notons que

f ∈M ⇔ u ≡f x, ∀u, x ∈ D (4.11)

Propriété 10 ≡f est une relation d’équivalence.

Preuve 10 La preuve est immédiate de l’équation (4.10).

**********************************************************************
Méthodes de décomposition de domaines pour les CSPs Valués 80
**********************************************************************
Chapitre IV : Une méthode de décomposition modulaire pour les CSPs Valuées

L’algorithme EquivClass, qui est décrit ci-dessous, prend une fonction


binaire sur un ensemble fini D et un élément π dans D comme des arguments
et calcule la classe d’équivalence de π, (dénoté par π̄ dans le pseudo-code),
conformément à la définition 21.
Function EquivClass(f, D, x) : x̄
(f↑ , f↓ ) ← Decompose(f, D, x)
x̄ ← ∅
for u ∈ D do
equiv ← true
for v ∈ D do
if f (u, v) = f↑ (u) + f↓ (v) then
equiv ← false
break
if equiv then
x̄ ← x̄ ∪ {u}

Exemple 17 Cette fois, nous avons pris un exemple de fonction binaire non
modulaire f (2 + 10 = 3 + 7), cette fonction est illustrée par la Figure 4.3
(a).

Aprés l’application de l’algorithme Reduce (Figure 4.3 (b) et (c)). A la fin,


(voir Figure 4.3 (c)) 10 = f (u, y) = f↑ (u) + f↓ (y) = 8.

D’ou u ∈/ x̄, et donc u n’appartient pas à la classe d’équivalence de x on le


note par : u ∈/ [x].

Propriété 11 Pour une fonction binaire f défini sur un domaine fini D et


un co-domaine totalement ordonné E, l’algorithme EquivClass calcule la
classe d’équivalence de son argument π selon la définition 21 dans O(|D|2 )
étapes.
Preuve 11 Nous pouvons voir du pseudo-code EquivClass qu’un élément
u est inséré dans π̄ si et seulement si f (u, v) = f↑ (u)+f↓ (v) pour tout v ∈ D.
D’abord, nous vérifions que π lui même est dans π̄. Ceci est vrai depuis, pour
tout v ∈ D, nous avons

f↑ (π) + f↓ (v) = f (π, μ) + f (π, v) − f (π, μ) = f (π, v)

**********************************************************************
Méthodes de décomposition de domaines pour les CSPs Valués 81
**********************************************************************
Chapitre IV : Une méthode de décomposition modulaire pour les CSPs Valuées

(u) (x)
i (u) (x)

j (v) (y)
(v) (y)

(u) (x)
i (u) (x)

j (v) (y)
(v) (y)

(u) (x)
i (u) (x)

j (v) (y)
(v) (y)

Figure 4.3 – Illustration de l’algorithme EquivClass

Maintenant, nous prouvons que si u ≡f π alors u ∈ π̄.


Depuis u ≡f π, alors, pour tout v ∈ D, nous avons

f (u, v) + f (π, μ) = f (u, μ) + f (π, v)


f (u, v) + f↑ (π) = f↑ (u) + f↑ (π) + f↓ (v)
f (u, v) = f↑ (u) + f↓ (v)

La dernière équation est équivalente à u ∈ π̄.


Ensuite, nous prouvons l’inverse. Depuis u, π ∈ π̄, alors, pour tout v ∈ D,
nous avons f (u, v) = f↑ (u) + f↓ (v) et f (π, v) = f↑ (π) + f↓ (v). Par (4.7) et
(4.8) et pour tout v, y ∈ D, nous obtenons ce qui suit

f (u, v) + f (π, y) = f↑ (u) + f↓ (v) + f↑ (π) + f↓ (y)


= f↑ (u) + f↓ (y) + f (π, v) − f (π, μ) + f↑ (π)
= f↑ (u) + f↓ (y) + f (π, v) − f↑ (π) + f↑ (π)

**********************************************************************
Méthodes de décomposition de domaines pour les CSPs Valués 82
**********************************************************************
Chapitre IV : Une méthode de décomposition modulaire pour les CSPs Valuées

= f (u, y) + f (π, v) (4.12)

La dernière équation est équivalente à u ≡f π.


Finalement, nous pouvons facilement voir du pseudo-code de l’algorithme
EquivClass que ce dernier s’exécute en O(|D|2 ) étapes.

Propriété 12 Soit f est une fonction modulaire et soit D1 , . . . , Dk dénote


la partition de D obtenue par ≡f . Alors la restriction de f à Ds × D est
modulaire pour s = 1, . . . , k.

Preuve 12 La propriété résulte immédiatement de (4.10) et le fait que chaque


Ds est une classe d’équivalence de ≡f .

4.4 Un schéma de décomposition pour les VCSPs


Dans ce qui suit, nous allons noter par sCSP (L) la classe de VCSPs binaire
impliquant les fonctions de valuation dans L.

Propriété 13 Dénotons par U l’ensemble de tous D −→ E des fonctions


unaires. La complexité de temps de calcul de sCSP (U) est O(nd).

Preuve 13 Un algorithme qui résout des cas dans sCSP(U) procède en met-
tant en application la consistance de noeud. Alors, s’il n’y a aucun domaine
vide, il retourne n-tuple t vérifiant :

ti = arg min φi (v), i : 1, . . . , n


v∈Di

Cela peut être accompli dans O(nd) étapes. De plus, nous avons φP (t) =

xi ∈X φi (ti ) qui est minimal puisque l’opérateur d’accumulation + est mono-
tone.

Dans ce qui suit, nous décrivons une méthode pour décomposer les ins-
tances des VCSPs binaire en ensembles d’instances dans sCSP(U ∪ M).

**********************************************************************
Méthodes de décomposition de domaines pour les CSPs Valués 83
**********************************************************************
Chapitre IV : Une méthode de décomposition modulaire pour les CSPs Valuées

4.4.1 VCSP avec fonctions modulaires binaires


Soit ci,j est une contrainte binaire soft dont la fonction de valuation φi,j
est dans M. Alors, selon la section précédente, φi,j peut être exprimé comme
la conjonction de deux contraintes unaires softs dénotées par ci↓j et ci↑j , dont
les portées sont respectivement xi et xj et dont les fonctions de valuation
vérifient :

φi,j = φi↑j + φi↓j (4.13)

Définition 22 Soit P = (X, D, C, S) est une instance de VCSP de sCSP(U ∪


M). La réduction unaire de P en respectant un ordre total → sur X est le
VCSP P  = (X  , D , C  , S  ) définie par :
– X = X
– D = D
 
– C  = {ci | φi = φi + ci,j ∈C φi↑j + cj,i ∈C φj↓i }
– S = S

Notons que, par définition, chaque réduction unaire est dans sCSP (U).

Propriété 14 Soit P = (X, D, C, S) est une instance de sCSP(U ∪ M) alors


la réduction unaire de P peut être calculé en O(|C||D|).

Preuve 14 Il suffit de substituer par deux contraintes unaires chacune des


contraintes binaires de P comme suggéré par la propriété 7. Cette tâche peut
être faite dans O(|D|). Comme il y a |C| contraintes dans P, d’ou le résultat.

Propriété 15 N’importe quel instance P de sCSP (U ∪ M) est équivalent à


sa réduction unaire.

Preuve 15 Nous prouvons que la valuation d’une attribution t à un ensemble


de variables V ⊆ X est la même par P et par sa réduction unaire P  , qui est

φP (t) = φP  (t) (4.14)


Selon la définition 22 et les équations (2.1) et (4.13), nous obtenons ce qui
suit :

**********************************************************************
Méthodes de décomposition de domaines pour les CSPs Valués 84
**********************************************************************
Chapitre IV : Une méthode de décomposition modulaire pour les CSPs Valuées

 
φP (t) = φi (t[xi ]) + φi,j (t[xi , xj ])
ci ∈C,xi ∈V  i ,xj ∈V
ci,j ∈C,x
 
= φi (t[xi ]) + φi↑j (t[xi ]) + φi↓j (t[xj ])
ci ∈C,xi ∈V  i ,xj ∈V
ci,j ∈C,x
  
= φi (t[xi ]) + φi↑j (t[xi ]) + φi↓j (t[xj ])
ci ∈C,xi ∈V  i ,xj ∈V
ci,j ∈C,x  i ,xj ∈V
ci,j ∈C,x
  
= φi (t[xi ]) + φi↑j (t[xi ]) + φj↓i (t[xi ])
ci ∈C,xi ∈V  i ,xj ∈V
ci,j ∈C,x  i ,xj ∈V
cj,i ∈C,x
⎡ ⎤
 ⎢  
= ⎣φi (t[xi ]) + φi↑j (t[xi ]) + φj↓i (t[xi ])⎥⎦
ci ∈C  ,xi ∈V  j ∈V
ci,j ∈C,x  j ∈V
cj,i ∈C,x

= φi (t[xi ])
ci ∈C  ,xi ∈V
= φP  (t)

4.4.2 Décomposition de domaine


La stratégie de décomposition est basée sur la définition suivante.

Définition 23 Soit P = (X, D, C, S) est un VCSP et → un ordre total sur


i
X. {u, x} ⊆ Di est une paire modulaire sur P selon →, (notation u ≡P x),
 nous avons u ≡φ x.
si et seulement si pour tout ci,j ∈ C, i,j

i
Pour simplifier, nous omettrons l’indice de ≡P quand cela n’affecte pas la
clarté.

Propriété 16 Soit P est un VCSP et → un ordre total sur ses variables.


Si les les valeurs de chaque domaine de P sont des paires modulaires en
respectant → alors P est dans sCSP (U ∪ M).

Preuve 16 Par (4.11), nous obtenons que tous les φi,j tel que xj → xi
sont modulaires. D’autre part, par (4.3), les φj,i tel que xj → xi sont mo-
dulaires depuis les φi,j tel que xj → xi sont modulaires. D’ou, nous pouvons
déduire que toutes les fonctions de valuation de P sont modulaires et donc
P ∈ sCSP (U ∪ M).
i
Propriété 17 ≡ est une relation d’équivalance sur Di .

**********************************************************************
Méthodes de décomposition de domaines pour les CSPs Valués 85
**********************************************************************
Chapitre IV : Une méthode de décomposition modulaire pour les CSPs Valuées

i
Preuve 17 Premiérement, notons que la relation ≡ est l’intersection de ≡φi,j
 D’autre part, il est connu que l’intersection de l’ensemble
tel que ci,j ∈ C.
des relations d’équivalance est une relation d’equivalance. D’ou le résultat
recherché.

Une propriété essentielle des paires modulaires est qu’elles sont préservées
par la réduction de problème. De là, nous avons ce qui suit :

Propriété 18 Soit P et P  sont deux VCSPs tel que P P  , → un ordre


total sur les variables et soit u, x ∈ Di alors nous avons
i i
u ≡P  x ⇒ u ≡P x

Preuve 18 Une paire modulaire dépend seulement de contraintes binaires.


Le dernier n’est pas modifié par la réduction. Ainsi, si l’équation (4.10) tient
pour une paire de valeurs dans P  alors elle tient pour cette paire dans P
aussi.

4.4.3 La solution algorithmique


L’algorithme ModMac∗ décrit ci-dessous est une variante de l’agorithme
MAC∗ de [18]. Il décompose progressivement le VCSP initial en des sous pro-
blèmes dans le vCSP(U ∪M) : classe basée sur des paires de valeur modulaires.

L’ordre des variables selon lequel les paires de valeurs sont modulaires est dé-
terminé dynamiquement, c’est à dire, il peut varier au cours de la recherche.
Cet ordre est implicitement déterminé par la liste des variables non encore
instanciées Y dont les éléments viennent après ceux de X − Y dans l’ordre.

La fonction principale dans le processus de décomposition est ModEquiv-


Class qui est appelée à chaque noeud de l’arbre de recherche.

Il retourne la classe d’équivalence (Di,v ) de la valeur sélectionnée (xi , v) (voir


ligne 2 dans le pseudo-code). Il est basé sur EquivClass (voir Section ??)
qui est appelée pour chaque fonction d’évaluation φi,j de P tel que xi est la
variable courante et xj est une variable passée, i.e., une variable dans X − Y .
Le domaine de xi est donc réduit à Di,v (ligne 3).

**********************************************************************
Méthodes de décomposition de domaines pour les CSPs Valués 86
**********************************************************************
Chapitre IV : Une méthode de décomposition modulaire pour les CSPs Valuées

Ensuite, le sous-problème résultant est de nouveau transformé en vue d’obte-


nir progressivement un sous problème dans la classe vCSP(U). Cette étape est
achevée par la fonction ModDecompose (ligne 4). Ce dernier est également
exécutée à chaque noeud de l’arbre de recherche. Il appelle Decompose pour
chaque fonction d’évaluation binaire φi,j tel que xi est la variable courante et
xj est une variable passée. Le rôle de cette procédure est de remplacer φi,j
par deux fonctions d’évaluations unaires.

Puis, l’arc-consistance star est rétabli. Pour que l’algorithme puisse procéder
à une recherche plus profonde, le VCSP arc-consistant star ne doit pas conte-
nir un domaine vide.

Un appel récursif est donc effectué pour envisager les autres variables. Cette
appelle retourne le cout (c∗ ) de la meilleure solution obtenue en réduisant le
domaine de xi à Di,v . Ensuite, l’algorithme annule l’effet de réduire Di to Di,v
et rejette des éléments de Di,v de Di . Il restaure à nouveau l’arc-cohérance
star du sous-problème résultant et vérifie s’il n’y a pas de domaine vide. Si
c’est le cas, l’algorithme effectue un deuxième appel récursif qui retourne le
coût de la meilleure solution du problème reçu en paramètre.

Chaque fois que l’algorithme parvient à instancier toutes les variables, on


obtient un VCSP dont les contraintes sont toutes unaires et softs, i.e., dans
la classe vCSP(U). Le dernier appel de AC∗ le long de cette voie de réussite
fournit, par conséquent, le coût de la solution actuelle en temps polynomial.
Le coût de cette dernière est enregistré dans c∗ au cours des futures appels
récursifs (ligne 1).

4.5 Résultats expérimentaux


Les problèmes étudiés dans notre expérimentation sont les problèmes Max-
CSPs aléatoires binaires, avec la liaison radio d’assignation de fréquences
(RLFAP) et les problèmes de planification.

Nous comparons l’algorithme ModMac∗ avec Mac∗ . L’algorithme arc-consistance


soft employé pour ces deux algorithmes est AC∗ [18]. Les limites supérieures

**********************************************************************
Méthodes de décomposition de domaines pour les CSPs Valués 87
**********************************************************************
Chapitre IV : Une méthode de décomposition modulaire pour les CSPs Valuées

Algorithm ModMac∗ (P = (X, D, C, S), Y, lb) : c∗


if Y = ∅ then
1 c∗ ← lb
else
xi ← Select(Y )
v ← Select(Di )
2 Di,v ← ModEquivClass(P, Y, Di , v)
3 Di ← Di,v
4 ModDecompose(P, xi )
lb ← AC∗ (P)
if ∅ ∈/ D then
c∗ ← ModMac∗ (P, Y − {xi }, lb)
Restore(D)
Di ← Di − Di,v
lb ← AC∗ (P)
if ∅ ∈
/ D then
c∗ ← ModMac∗ (P, Y, lb)
Restore(D)

initiales utilisées par les deux solveurs sont ceux données dans les différents
fichiers de référence “benchmark files”.

L’heuristique d’ordre de variables est min-domain/deg. Pour celle de l’ordre


de valeurs, Les deux algorithmes choisient les valeurs aux moindre coût unaire
projeté.

Le coût de cette dernière est automatiquement calculé par application de


AC∗ . Les critères d’évaluation sont le nombre de noeuds développés “expan-
ded nodes”, Le temps de calcul “CPU time” en secondes et le cout de la
meilleure solution trouvée. Tous les algorithmes ont été implementés en C++
et executés sur un PC à 1.8 GHZ de fréquence et une mémoire vive de 3 Gb.

Max-CSPs aléatoires binaires : pour les Max-CSPs aléatoires binaires,


nous avons expérimenté sur les instances décrites dans [?] et générées en fonc-
tion du modèle de quatre paramètres bien connu [?]. L’objectif est de trouver
une affectation avec un nombre minimum de contraintes non satisfaites pour
un CSP surcontraint.

**********************************************************************
Méthodes de décomposition de domaines pour les CSPs Valués 88
**********************************************************************
Chapitre IV : Une méthode de décomposition modulaire pour les CSPs Valuées

Le problème est facilement exprimé comme un VCSP en utilisant, pour les


coûts binaires, 0 pour les paires de valeurs compatibles et 1 pour les paires
incompatibles.

Nous avons expérimenté sur certains des cas disponibles dans [?]. Ces cas sont
obtenus en considérant deux niveaux de densité de graphe de contraintes :
clairsemée “sparse” (S) et dense (D) et deux niveaux de tightess contraintes :
en vrac “loose” (L) et étanche “tight” (T). La combinaison de ces classes donne
4 différentes Classes de VCSPs : SL, ST, DL, DT.

Nous considérons justement dix cas en provenance de ces quatre classes. La


plupart des cas sont plutôt difficiles à résoudre (voir la figure 4.4). Ils ont en
commun un domaine de valeur uniforme de taille dix. Le nombre de variables,
ce qui est indiqué immédiatement après les initiales de la classe dans le nom
de l’instance, varie de 25 à 50.

La Figure 4.4 fournit les résultats obtenus par ModMac∗ et Mac∗ . Deux
heures de temps d’exécution ont été consacré à chaque instance. Nous avons
rapporté le nombre de noeuds développés, le temps d’exloration de l’arbre de
recherche et le coût de la meilleure solution trouvée. Pour ces cas, non struc-
turées, aucun des deux algorithmes ne surpasse systématiquement l’autre.

Néanmoins, on remarque que ModMac∗ est plus concurrentiel sur les contraintes
“sparsely” VCSPs impliquant des relations “loose”.

Problème d’affectation de lien radiofréquence (RLFAP) :


ce sont des cas provenant d’un problème du monde réel, à savoir le pro-
blème celar RLFAP [?] qui a la particularité d’être peu contraint.

Nous avons précisément expérimenté sur dix cas de ceux disponibles dans [?],
dont cinq sont extraites du problème celar6 et notés celar6-sub0 à 4. Les cinq
autres instances sont extraites du problème celar7 et sont notées celar7-sub0
à 4 (voir Figure 4.5). Chacune de ces instances comprend 16 variables et une
taille maximale de domaine de 44 valeurs.

En examinant la Figure 4.5, nous remarquons que lorsque les deux algo-

**********************************************************************
Méthodes de décomposition de domaines pour les CSPs Valués 89
**********************************************************************
Chapitre IV : Une méthode de décomposition modulaire pour les CSPs Valuées

rithmes explorent toute l’arbre de recherche, ModMac∗ est toujours plus


rapide que Mac∗ .

En outre, sur les autres instances, qui sont plus difficiles à résoudre, Mod-
Mac∗ a systématiquement trouvé une solution qui est, au moins, aussi bonne
que celle trouvée par Mac ∗ . Globalement, on peut dire que, contrairement
aux instances aléatoires, ModMac∗ surpasse Mac∗ sur tous ces instances
structurées.

Problèmes de planification :
Nous considérons précisément le problème de transport DriverLog. Ce pro-
blème implique un ensemble de pilotes pour conduire les camions et les mo-
biles d’un emplacement de départ vers une destination objectif d’une manière
efficace.

Plus de détails sur ce problème se trouve dans [?]. Les dix cas sur lesquels
nous avons expérimenté sont moyennement modélisés comme WCSP depuis
environ la moitié des contraintes possibles sont présentes. Chacun des cas im-
plique des centaines de variables et une taille maximale de domaine de onze
valeurs.

La Figure 4.6 montre que ModMac∗ domine Mac∗ sur toutes, sauf une des
instances (driverlog04bc).

4.6 Conclusion
Dans ce chapitre, nous avons présenté un algorithme de décomposition de
domaine pour résoudre les problèmes binaires de satisfaction de contraintes
évalués (VCSP). Le processus de décomposition proposé instancie les va-
riables en réduisant leurs domaines respectifs à des sous-ensembles de valeurs
modulaires au lieu de singletons.

Il produit, à chaque feuille de l’arbre de recherche, un sous problème dont


les fonctions d’évaluation sont exclusivement modulaires. Ces sous-problèmes
sont résolus en temps polynomial.

**********************************************************************
Méthodes de décomposition de domaines pour les CSPs Valués 90
**********************************************************************
Chapitre IV : Une méthode de décomposition modulaire pour les CSPs Valuées

expanded nodes time (in sec.) cost


instance Mac∗ ModMac∗ Mac∗ ModMac∗ Mac∗ ModMac∗
SL50-10-10-60-1 6097 6369 – 7164 5 4
SL50-10-10-60-2 6099 6726 – – 8 5
SL40-10-13-60-1 1059 762 1063 721 3 3
SL40-10-13-60-2 2261 1837 2298 1675 3 3
DL30-10-25-48-1 67 215 66 200 2 2
DL30-10-25-48-2 915 181 864 155 2 2
ST25-10-21-85-1 527 1206 317 698 19 19
ST25-10-21-85-2 604 3852 356 2148 20 20
DT25-10-25-87-1 1871 12387 1222 – 28 29
DT25-10-25-87-2 4332 9833 2714 6546 30 30

Figure 4.4 – Experimental results obtained by Mac∗ and ModMac∗ on random binary
Max-CSP instances. We reported the number of nodes expanded (in thousands) within 2
hours, the CPU time and the cost of the best solution found. A dash indicates that the
program has not terminated after 2 hours of execution time.

expanded nodes time (in sec.) cost


instance Mac∗ ModMac∗ Mac∗ ModMac∗ Mac ∗
ModMac∗
celar6-sub0 1184 195 1117 191 159 159
celar6-sub1 9285 8085 – – 2669 2669
celar6-sub2 5290 400 – – 3790 2746
celar6-sub3 6394 1653 – – 4823 3229
celar6-sub4 3434 1082 – – 6247 5605
celar7-sub0 11 2 43 9 10310 10310
celar7-sub1 1700 718 3210 974 142640 142640
celar7-sub2 4008 2691 – – 293252 192239
celar7-sub3 4070 2597 – – 292839 242842
celar7-sub4 2580 1622 – – 383254 312444

Figure 4.5 – Experimental results obtained by Mac∗ and ModMac∗ on instances extracted
from the celar6 and celar7 real-world problems. We reported the number of nodes expanded
(in thousands) within 2 hours, the CPU time and the cost of the best solution found. A dash
indicates that the program has not terminated after 2 hours of execution time.

**********************************************************************
Méthodes de décomposition de domaines pour les CSPs Valués 91
**********************************************************************
Chapitre IV : Une méthode de décomposition modulaire pour les CSPs Valuées

expanded nodes time (in sec.) cost


instance Mac∗ ModMac∗ Mac∗ ModMac∗ Mac∗ ModMac∗
driverlog04ac 7 1 117 20 85 85
driverlog04bc 116 444 1648 3210 846 846
driverlog04cc 208 128 2868 815 2082 2082
driverlog05ac 8 2 239 45 230 230
driverlog05bc 97 40 2165 915 806 806
driverlog05cc 170 29 3645 653 2001 2001
driverlog06 669 534 – – 1095 1095
driverlog08ac 52 37 2232 1039 735 735
driverlog08bc 71 44 2908 1203 1404 1404
driverlog08cc 84 52 3262 1404 2492 2492

Figure 4.6 – Experimental results obtained by Mac∗ and ModMac∗ on instances extrac-
ted from the driverlog planning problem. We reported the number of nodes expanded (in
thousands) within 2 hours, the CPU time and the cost of the best solution found. A dash
indicates that the program has not terminated after 2 hours of execution time.

Une extension naturelle de ce travail est de dériver un schéma de décomposi-


tion similaire pour les VCSPs n-aires depuis la propriété 22 serait facilement
généralisée à la somme des cas n-aires. Un schéma de décomposition basé sur
les fonctions sous-modulaires peut aussi être considéré.

**********************************************************************
Méthodes de décomposition de domaines pour les CSPs Valués 92
**********************************************************************

Vous aimerez peut-être aussi