• Aucun résultat trouvé

Planification par satisfaction de contraintes pondérées

1.7 Résumé du chapitre

2.1.2 Planification par satisfaction de contraintes pondérées

Les techniques de planification basées sur la satisfaction de contraintes (Constraint Satisfaction Problem CSPMontanari (1974)) permettent d’appréhender certaines classes de problèmes généraux. Ces techniques offrent des algorithmes efficaces permettant de rechercher les solutions d’un problème. Nous décrivons dans cette section les CSP et une extension des CSP qui permet de modéliser non seulement des contraintes dures mais également des critères d’optimisation exprimés sous la forme d’une agrégation de fonctions de coût (Schiex et al.,1995).

2.1.2.a Problème de satisfaction de contraintes

Définition 2.1 (Problème de satisfaction de contraintes) Un problème de satisfaction de contraintes est défini par un tuple hX , D, Ci avec

. X ={x1, · · · , xn} : un ensemble fini de variables,

. D={D1, · · · , Dn} : un ensemble fini de domaines de variables tel que chaque

variable xi ∈ X soit associée à un domaine fini de valeur Di ∈ D

. C ={Cs1, · · · , Cse} : un ensemble contraintes dures (à satisfaire absolument).

Chaque contrainte dure Csj ∈ C porte sur un sous-ensemble de variables sj ⊆ X , appelé portée de la contrainte. La taille |sj| de la portée c’est-à-dire,

le nombre de variables qu’elle comporte est généralement appelé l’arité de la contrainte.

Les contraintes dures imposent des restrictions sur les affectations de valeurs aux variables de sa portée. Soit l[sj]l’ensemble des combinaisons de valeurs sur la

portée sj. Chaque contrainte dure Csj n’autorise qu’un sous ensemble des combi-

naisons de valeurs de l[sj].

Définition 2.2 (Affectation d’une variable) Affecter une variable xi consiste à lui at-

tribuer une valeur v appartenant à son domaine Di. L’affectation est généralement notée (xi =v).

On parlera d’une affectation complète A pour signifier une affectation de toutes les variables à une valeur. Autrement dit, A ∈ l[X]est un élément de l’ensemble des combinaisons de valeurs sur l’ensemble des domaines D des variables X . Si l’affec- tation ne porte que sur un sous ensemble de variables sj, on parlera d’affectation

partielle notée A[sj].

Définition 2.3 (Projection d’une affectation) La projection d’une affectation (par- tielle ou totale) A= {x1 = v1, . . . , xk = vk} sur l’ensemble Y = {xi1, . . . , xip} ⊂

{x1, . . . , xk} est l’affectation partielle {xi1 = vi1, . . . , xip = vip}. Elle est notée

A[Y].

Un problème de satisfaction de contraintes peut être représenté par un graphe de contraintes.

2.1. Planification de tâches et contrôle d’exécution 47

Définition 2.4 (Graphe de contraintes) Un graphe de contraintes est un graphe dans lequel les nœuds représentent les variables (un nœud par variable) et les arcs représentent des contraintes entre les deux variables.

Pour représenter les domaines des variables appartenant à la portée d’une con- trainte, on utilise la notion de réseau de valeurs.

Définition 2.5 (Réseau de valeurs) Le réseau de valeurs permet de représenter graphiquement les domaines des variables appartenant à la portée d’une contrainte.

Pour une contrainte Ci,s, le réseau de valeurs des représenté par un graphe bipartite G= (X , Y , E). Les nœuds de X représentent les variables de xi ∈ s tandis que les nœuds de Y représentent les valeurs appartenant à l’union des domaines des variables xi. Les arcs (xi, vk) sont définis tel que si(xi, vk)∈ E alors vk∈ Di.

La Figure2.3représente le réseau de variables de la contrainte d’arité 4(x0+x1+

x2)< x3. 0 1 2 x0 x1 x2 x3

Figure 2.3 – Réseau de valeurs de la contrainte(x0+x1+x2)< x3

La solution d’un problème de satisfaction de contraintes est une affectation complète A qui satisfait toutes les contraintes dures Csj.

2.1.2.b Les réseaux de contraintes pondérées

Les CSP ne modélisent que l’autorisation ou l’interdiction de combinaisons de valeurs. Or certains problèmes issus du monde réel sont par nature sur-contraints, c’est-à-dire qu’ils ne possèdent aucune solution. Lorsqu’on cherche à modéliser ces types de problème, il est primordial de définir des contraintes dures (à satisfaire absolument) et des contraintes souples encore appelées préférences. Ces préférences définissent des contraintes que l’on souhaitent voir vérifier dans des solutions de bonnes qualités. Ainsi, l’objectif n’est plus de voir toutes les contraintes satisfaites mais plutôt de les satisfaire du mieux possible. En d’autres termes, il s’agit de satisfaire toutes les contraintes dures et de minimiser une agrégation des coûts des préférences insatisfaites.

Pour modéliser des préférences sur certaines combinaisons de valeurs, les réseaux de contraintes valuées (VCSP, Valued Constraint Satisfaction Problem) ont été proposés (Schiex et al.,1995). Cette extension de CSP permet d’appréhender plusieurs différentes classes de problèmes dont les réseaux de contraintes pondérées (WCSP, Weighted Constraint Satisfaction Problem Meseguer et al.(2006)).

Les réseaux de contraintes pondérées (WCSP) sont de ce fait, une extension des réseaux de contraintes (CSP) qui permet d’ajouter aux CSP une structure de valuation permettant de définir une structure algébrique caractérisant les coûts associés à certaines combinaisons de valeurs.

Définition 2.6 (Réseau de contraintes pondérées) Un réseau de contraintes pondérées, WCSP est défini par un tuple hX , D, Wi avec

. X ={x1, · · · , xn} : un ensemble fini de variables,

. D={D1, · · · , Dn} : un ensemble fini de domaines de variables tel que chaque

variable xi ∈ X soit associée à un domaine fini de valeurs Di ∈ D

. W ={Ws1, · · · , Wse} : un ensemble de fonctions de coûts. Soit l[si] l’ensemble

des combinaisons de valeurs sur la portée si. Chaque fonction de coûts Wsi

W est définie par Wsi : l(si)→[0, m] avec m ∈[1, · · · ,+∞].

Le coût cost d’une affectation complète A ∈ l[X]est : cost(A) = X

Wsi∈W

Wsi(A[si])

où A[si] est la projection d’une affectation de valeurs sur le sous ensemble de

variables si.

La solution d’un WCSP est une affection complète A ∈ l[X] de coût cost(A) telle que cost(A) = min A∈l[X]   X Wsi∈W Wsi(A[si])  

2.1.2.c Technique de résolution pour les WCSP

Pour trouver une affectation des variables du WCSP qui minimise les coûts, on utilise généralement l’algorithme exact, de séparation évaluation nommé DFBB (Depth First Branch and Bound cf. l’algorithme 1). Cet algorithme consiste à énumérer récursivement les valeurs possibles des variables. Un nœud de l’arbre de recherche correspond à une affectation d’une variable à une valeur. À chacun de ces nœuds, on calcule un minorant lb(A)et un majorant ub qui dépend du coût des solutions contenues dans le sous-arbre courant. Ce sous-arbre correspond à toutes les extensions possibles de l’affectation courante A. Le majorant est donné par la valeur minimum des coûts des solutions déjà trouvées. Si le minorant est plus grand que le majorant alors toutes les extensions de l’affectation, dans le sous-arbre ne peuvent pas être des solutions optimales. Il n’est donc pas nécessaire de continuer la recherche à partir de cette affectation. Dans ces conditions, l’algorithme retourne à la variable déjà affectée.

Algorithme 1 : DFBB (X, A, ub) : coût début c ← lb(A) si c < ub alors si | A |=n alors retourner c Choisir Y dans X X ← Xr{Y } forall v ∈ DY do ub ← min(ub, DF BB(X, A ∪ {Y ← v}, ub) retourner ub

retourner le majorant initial fin

La complexité de DFBB est en O(mdn) où m est le nombre de fonctions de coûts, d est la taille maximale du domaine des variables et n le nombre de variables.

2.1. Planification de tâches et contrôle d’exécution 49

Cependant, l’efficacité de l’algorithme dépend de la qualité du minorant lb(A)util- isé. Un minorant trivial consiste à cumuler les coût des fonctions dont les variables sont déjà affectées. Généralement ce type de minorant est de mauvaise qualité. Pour trouver de meilleurs minorants des fonctions de coût d’un WCSP, on utilise des mécanismes de filtrage. Le but de ces mécanismes de filtrages est de retirer du domaine de variables, certaines valeurs qui n’appartiennent à aucune solution et augmenter par la même occasion le coût de la fonction qui servira de minorant. Par exemple, les algorithmes dit de cohérence d’arcSchiex(2000) permettent de filtrer localement les domaines des variables. Le réseau de contraintes qui résulte de ce filtrage est dit arc-consistant si toutes ses valeurs sont viables et que le domaine. De nombreuses techniques de filtrage existent. Quelques une sont détaillées dans

de Givry(2011).

2.1.2.d Le solver Toulbar2

Toulbar2 est un solveur de WCSP libre et disponible sur à l’adresse http:

//mulcyber.toulouse.inra.fr/projects/toulbar2/. Il intègre un ensemble de

techniques de cohérences locales et globales. Le solveur dispose également de méth- ode de recherche utilisant des décompositions arborescentes. Les expérimentations présentées dans le chapitre4 sont réalisées en utilisant Toulbar2.

2.1.3 Planification hiérarchique