• Aucun résultat trouvé

4.5 Contraintes globales molles

4.5.2 Contrainte Alldiff molle

Comme exemple de contrainte globale prenant en compte les coˆuts de violations que l’on peut obtenir `a partir d’une contrainte globale classique, j’ai ´etudi´e avec T. Petit et C. Bessi`ere la contrainte “soft alldiff” [Petit et al., 2001].

La contrainte obtenue en combinant le coˆut de violation bas´e sur les variables et une contrainte alldiff est , en fait, une contrainte k-diff, o`u k est la valeur minimum de la variable de coˆut. lorsque k est modifi´e (il ne peut ˆetre qu’augmenter) on peut facilement modifier la contrainte k-diff et on obtient ainsi un algorithme de filtrage r´ealisant la consistance d’arc pour cette contrainte globale molle.

La contrainte combinant le coˆut de violation bas´e sur le graphe primal et une contrainte alldiff est plus complexe. J’ai ´ecrit un algorithme sp´ecifique pour cette contrainte [Petit et al., 2002]. Sa complexit´e est en O(n2nKd), o`u K =

P |D(x)|, n = |X(C)|, x ∈ X(C) et d = max(|D(x)|), x ∈ X(C). Un autre algorithme plus intelligent a r´ecemment ´et´e propos´e par [Jan van Hoeve, 2004].

4.5.3 Perspectives

Nous avons propos´e deux d´efinitions g´en´erales de coˆut de violation. Il en existe certainement d’autres. D’ailleurs, tr`es r´ecemment une tentative de g´en´eralisation de notre travail a ´et´e propos´ee [Beldiceanu and Petit, 2004]. C’est un sujet qui sera certainement ´etudi´e dans le futur. Par ailleurs, on peut imaginer la d´efinition de nombreuses autres contraintes globales molles d´erivant des contraintes globales les plus habituelles, ainsi que la description d’algorithmes de filtrage associ´es.

Chapitre 5

Applications

J’ai travaill´e sur de nombreuses applications. Pour certaines j’ai obtenu de tr`es bons r´esultats puisque j’ai ferm´e plusieurs probl`emes ouverts. Je peux citer les probl`emes de “car sequencing”, du “all interval series”, du “quasigroup completion” ou encore de “sports scheduling”.

J’ai d´ecid´e de d´etailler dans cette section deux applications que je consid`ere comme ´etant majeure : la recherche de la taille de la plus grande clique d’un graphe et le dimensionnement de r´eseau de t´el´ecommunication.

5.1 Recherche de la taille de la plus grande clique

d’un graphe

J’ai ´etud´e ce probl`eme [R´egin, 2003a, R´egin, 2003b] dans le but de promouvoir la PPC, mais aussi dans le but de contredire une id´ee re¸cue `a propos de la PPC : “la PPC n’est pas une m´ethode efficace pour r´esoudre les probl`emes purs d’optimisation combinatoire”. Par “probl`emes purs”, on entend habituellement les probl`emes qui n’impliquent qu’un seul type de contraintes.

Une clique d’un graphe G = (X, E) est un sous-ensemble V de X, tel que toute paire de nœuds de V soit reli´ee par une arˆete de E. le probl`eme de la clique maximum consiste `a trouver ω(G) la taille de la clique de plus grande cardinalit´e. trouver une clique de taille k est un probl`eme NP-difficile. Ce probl`eme est impor-tant car il apparaˆıt dans de nombreuses applications r´eelles. Aussi, presque tous les types de m´ethode ont ´et´e utilis´es pour le r´esoudre (voir l’excellent ´etat de l’art de Bomze, Budinich, Pardalos et Pelillo [Bomze et al., 1999]).

Fahle [Fahle, 2002] a ´et´e le premier `a proposer un mod`ele de PPC pour r´esoudre ce probl`eme. L’algorithme de Fahle essaie de construire une clique de plus en plus grande en s´electionnant successivement un nœud et en ´etudiant l’ensemble des candidats, not´e Candidate, c’est-`a-dire l’ensemble des nœuds qui peuvent ´etendre la clique courante en construction, appel´e ensemble des nœuds cou-rants, not´e Current. Apr`es chaque s´election de nœud, des algorithmes de filtrage sont d´eclench´es afin de supprimer des nœuds de l’ensemble des candidats. L’ al-gorithme que j’ai propos´e fonctionne selon le mˆeme principe. La difficult´e est de d´efinir des algorithmes de filtrage qui soient `a la fois efficaces en terme de quantit´e de nœuds supprim´es et aussi en temps. Il existe un algorithme de filtrage de base qui consiste `a ´eliminer les nœuds qui ne sont pas connect´es avec le nœud qui vient d’ˆetre introduit dans l’ensemble des nœuds courants. Ce filtrage est bien entendu utilis´e par l’algorithme de Fahle et le notre. Il est important de noter que cet algorithme `a la capacit´e d’effectuer plus de 6 millions de backtracks par seconde. Aussi, mˆeme si cet algorithme s’av`ere peu efficace en terme de suppressions, il est, en revanche,

par-ticuli`erement efficace en temps. L’algorithme de Fahle utilise un second filtrage qui consiste `a rechercher un majorant du nombre de couleurs n´ecessaires pour colorier les voisins d’un nœud. Ce majorant est ´egalement un majorant de notre probl`eme. Un nœud sera alors ´elimin´e si ce nombre n’est pas plus grand que la plus grande clique trouv´ee jusqu’alors.

Nous pr´esentons maintenant notre algorithme. Auparavant, nous rappelons quelques d´efinitions de la th´eorie des graphes.

Une ensemble stable d’un graphe G = (X, E) (independant set en anglais) est un sous-ensemble S de X, tel que toute paire de nœuds de V ne soit pas reli´ee par une arˆete de E. Le probl`eme de l’ensemble ind´ependant maximum consiste `a trouver α(G) la plus grande cardinalit´e d’un ensemble ind´ependant.

Un ensemble transversal d’un graphe G = (X, E) (vertex cover en anglais) est un sous-ensemble V de X, tel que toute arˆete de E ait une extr´emit´e dans V . Le probl`eme de l’ensemble transversal minimum consiste `a trouver ν(G) la plus petite cardinalit´e d’un ensemble transversal.

Une couplage d’un graphe G = (X, E) est un sous-ensemble M de E, tel qu’il n’existe pas deux arˆetes de M ayant une extr´emit´e commune. Le probl`eme du couplage maximum consiste `a trouver µ(G) la plus grande cardinalit´e d’un couplage.