• Aucun résultat trouvé

1.7 Int´ erieurs meubl´ es

2.1.1 Panorama

Un probl`eme d’optimisation combinatoire est d´efini par un ensemble de variables. A chaque variable du probl`eme est associ´e un ensemble de configurations22 S, un sous-ensemble X de S repr´esentant les configurations admissibles (r´ealisables), et une fonction de coˆut ϕ (ou fonction objectif). R´esoudre un tel probl`eme consiste `a trouver une solution s* ∈X (solution optimale23) optimisant la valeur de la fonction de coˆut ϕ.

Un tr`es grand nombre de m´ethodes de r´esolution ont ´et´e d´evelopp´ees en RO et en IA pour l’optimisation combinatoire et l’affectation sous contraintes. On peut classer sommairement ces m´ethodes selon l’approche choisie pour la recherche de la solution :

1. l’approche de construction, 2. l’approche de relaxation, 3. l’approche de voisinage, 4. l’approche d’´evolution.

Les m´etaheuristiques combinant principalement les approches de construction et de voisinage, nous allons `a pr´esent les d´etailler.

2.1.1.1 Approche de construction

Probablement la plus ancienne et encore tr`es r´epandue, l’approche de construction ´elabore de fa¸con it´erative une configuration en affectant une valeur `a toutes les variables libres du probl`eme.

22

Configuration : affectation de toutes les variables (les contraintes ne sont, a priori, pas satisfaites). 23

D´ebutant avec une configuration partielle vide, elle cherche `a l’´etendre en affectant `a chaque ´

etape une nouvelle variable libre. Elle effectue des choix (guid´es par des heuristiques) pour d´eterminer la prochaine variable `a instancier ainsi que la valeur associ´ee. Les m´ethodes de cette approche diff`erent entre elles par ces heuristiques. La performance d’une de ces m´ethodes d´epend g´en´eralement de l’ad´equation des heuristiques retenues avec le probl`eme.

Les m´ethodes gloutonnes sont des m´ethodes de construction [BR64]. Une instanciation gloutonne des variables d’un probl`eme consiste `a choisir `a chaque ´etape la valeur d’une variable sans modifier les affectations des variables pr´ec´edemment choisies. Ces m´ethodes sont tr`es rapides mais fournissent des r´esultats de qualit´e m´ediocre, et notamment ne garantissent pas de retourner un optimum mˆeme local.

Les m´ethodes `a retour arri`ere (backtrack) [BR75] sont un autre exemple de m´ethode de construc- tion. On peut les caract´eriser comme le parcours d’un arbre de recherche en profondeur d’abord, compl´et´e par une d´etection des erreurs (g´en´eralement l’ensemble des valeurs possibles pour la variable courante est nul). Lorsque un ´echec est d´etect´e, le processus effectue un retour arri`ere sur la derni`ere variable instanci´ee, offrant une instanciation alternative. Ces m´ethodes sont le plus souvent compl`etes et de complexit´e exponentielle. Afin de r´eduire la complexit´e, on utilise des techniques de filtrage permettant de d´etecter les ´echecs. Ces techniques ont d´ej`a ´et´e ´etudi´ees en mod´elisation d´eclarative au sein de notre ´equipe ([LR03, Kwa98]).

2.1.1.2 Approche de voisinage, recherche locale

La recherche locale, appel´ee aussi la descente [Flo56] ou l’am´elioration it´erative, est historique- ment une des m´ethodes de voisinage. N´eanmoins, ce terme tend `a d´esigner aujourd’hui toutes les m´ethodes de voisinage. Contrairement `a l’approche de construction, la recherche locale ne manipule que des configurations au cours de la recherche.

Ces m´ethodes sont bas´ees sur la notion de voisinage. Nous allons d´efinir cette notion ainsi que quelques notions associ´ees :

Une m´ethode typique de voisinage d´ebute avec une configuration initiale (souvent un tirage al´eatoire dans l’espace des configurations), puis r´ealise un processus it´eratif qui consiste `a effec- tuer un mouvement24 choisi par le m´ecanisme d’exploration25 en tenant compte de la fonction

24

Mouvement : op´eration ´el´ementaire permettant de passer d’une configuration A `a une configuration A’ voisine de A.

25

M´ecanisme d’exploration : proc´edure qui pr´ecise comment passer d’une configuration A `a une autre configu- ration A’ appartenant au voisinage de A.

de coˆut. Ce processus s’arrˆete et retourne la meilleure configuration trouv´ee une fois que la condition d’arrˆet est satisfaite. La condition d’arrˆet peut porter sur le nombre d’essais effectu´es, sur une limite temporelle ou sur le degr´e de qualit´e de la meilleure configuration courante. Cette versatilit´e permet de contrˆoler le temps de calcul. La qualit´e de la solution optimale trouv´ee s’am´eliorant au cours du temps, l’utilisateur est libre d’arrˆeter l’ex´ecution au bout du temps choisi (dans notre cas, temps interactif voire temps r´eel, entre 0.04 et 0.2 secondes soit entre 5 et 25 images par secondes).

A* ←creerUneSolution()

pour t = 1 `a MAXESSAIS faire A ←newSol()

pour m = 1 `a MAXMVTS faire A’ ←choisirVoisin()

δ ← ϕ(A’) - ϕ(A)

si accepter(δ) alors A ← A’ fin pour

si ϕ(A*) ¿ ϕ(A) alors A* ←A fin pour

retourner A*, ϕ(A*)

Algorithme 1. Recherche locale

L’algorithme 1 pr´esente le d´eroulement classique d’une m´ethode de recherche locale. Les m´ethodes de voisinage diff`erent essentiellement entre elles par le voisinage26 utilis´e et la strat´egie de par- cours de ce voisinage. La recherche locale ´etant `a la base des m´etaheuristiques, nous pr´esentons ici les heuristiques les plus r´epandues la concernant.

Le m´ecanisme d’exploration peut consister en une ´enum´eration des voisins : le choix portera sur le premier voisin am´eliorant (au sens de la fonction de coˆut) strictement la configuration. Il est ´egalement possible d’´evaluer tous les voisins afin de s´electionner le meilleur ; cette heuristique est plus coˆuteuse mais permet une ´evolution plus rapide vers un optimum. Comme cette m´ethode ne s’appuie que sur un voisinage restreint, elle ne retourne que des minima locaux.

Comme les m´ethodes gloutonnes, cette approche est simple `a mettre en œuvre et rapide `a l’ex´ecution. La principale limitation provient du fait qu’elle retourne le premier optimum local

26

rencontr´e. On peut contourner cette limitation en relan¸cant le processus apr`es avoir g´en´er´e une nouvelle configuration al´eatoire, ou bien en ´etendant le choix du meilleur voisin aux meilleurs voisins de mˆeme valeur (lever la condition stricte d’am´elioration), afin de pouvoir se d´eplacer sur des plateaux27.

Sur ce profil,et dans le cadre d’un probl`eme de minimisation : 1 est un optimum global, 2, 3 et 4 sont des optima locaux, 3 est un plateau, enfin les quatre points caract´eris´es se trouvent au fond d’une vall´ee.

Figure 2.1. Exemples de vall´ees et plateaux

Le terme plateau fait r´ef´erence au profil d’une chaˆıne de montagne. Un autre terme provenant de la mˆeme origine est employ´e en optimisation combinatoire, c’est celui de vall´ee28. La figure 2.1 permet de visualiser le choix de ces appellations.

Dans le document Modélisation automatique de zones urbaines (Page 86-89)