• Aucun résultat trouvé

Les m´ethodes de recherche compl`etes (bas´ees sur des parcours arborescents) sont souvent utilis´ees pour obtenir des solutions optimales et effectuer des preuves d’optimalit´e. Mais, du fait de leur com- portement (souvent) exponentiel, ces m´ethodes peuvent s’av´erer trop gourmandes en temps de calcul.

Les m´ethodes approch´ees constituent une alternative tr`es int´eressante pour traiter les probl`emes d’optimisation de grande taille si l’optimalit´e n’est pas primordiale. Les m´ethodes approch´ees sont fond´ees principalement sur diverses heuristiques, souvent sp´ecifiques `a un type de probl`eme. Dans cette section, nous passons en revue les principales heuristiques utilis´ees dans les prochains chapitres de ce document.

2.3. M ´ETHODES HEURISTIQUES 47

2.3.1 La Recherche locale

La recherche locale, appel´ee aussi l’am´elioration it´erative, repr´esente une classe de m´ethodes heu- ristiques tr`es anciennes. La recherche locale est une technique d’approximation tr`es utilis´ee en pratique pour r´esoudre les probl`emes d’optimisation combinatoire difficiles.

Une m´ethode de recherche locale est un processus it´eratif fond´e sur deux ´el´ements essentiels : un voisinageN et une proc´edure exploitant le voisinage. L’id´ee est d’am´eliorer it´erativement la solution

courantexi en explorant un voisinageN (xi) de celle-ci pour y trouver une solution de moindre coˆut.

Les solutions dites voisines sont g´en´eralement obtenues en appliquant une transformation ´el´ementaire `a la solution courante.

Cette proc´edure fait intervenir `a chaque it´eration le choix d’un voisin qui am´eliore la configura- tion courante. Plusieurs possibilit´es peuvent ˆetre envisag´ees pour effectuer ce choix. Il est possible d’´enum´erer les voisins jusqu’`a ce qu’on en d´ecouvre un qui am´eliore strictement (premi`ere am´elioration). Cette technique est connue dans la litt´erature sous le nom de “first descent”. On peut ´egalement recher- cher le meilleur voisin. C’est la m´ethode de plus grande descente connue sous le nom de “steepest descent”. Cette derni`ere solution peut sembler plus coˆuteuse, mais le voisin d´ecouvert sera en g´en´eral de meilleure qualit´e. La version de recherche locale d´ecrite par l’Algorithme 1 est celle de “steepest descent”.

algorithm 1 Algorithme de Recherche Locale 1: proc´edure Local Search

2: choose initial point (x)

3: repeat 4: z ← x 5: fory ∈ N (x) do 6: ifF (y) < F (z) then 7: z ← y 8: end if 9: end for 10: until z = x

L’algorithme s’arrˆete si la derni`ere configuration trouv´ee ne poss`ede pas de voisin strictement meilleur qu’elle-mˆeme. La recherche locale est alors dans un minimum local.

L’avantage principal de cette m´ethode r´eside dans sa grande simplicit´e et sa rapidit´e. Mais les solu- tions produites peuvent ˆetre de qualit´e m´ediocre et de coˆut tr`es sup´erieur au coˆut optimal. Pour rem´edier `a ce probl`eme, la solution la plus simple est la m´ethode de relance al´eatoire (ou “restart”, ou “multi- start”) qui consiste `a g´en´erer une nouvelle configuration de d´epart de fac¸on al´eatoire et `a recommencer une descente. On remarque cependant que cette solution ne tire aucun profit des optima locaux d´ej`a d´ecouverts. Une autre solution consiste `a accepter des voisins de mˆeme performance que la configu- ration courante. Cette approche permet `a la recherche de se d´eplacer sur les plateaux, mais n’est pas suffisante pour sortir de tous les optima locaux. D’autres techniques plus ´elabor´ees sont ´egalement

possibles, par exemple, : l’introduction de voisinages variables [11, 13] et les techniques de r´eduction [9, 13] ou d’´elargissement [10].

2.3.2 Algorithmes gloutons

Les algorithmes gloutons (en anglais “greedy”) appartiennent `a la famille des approches de r´esolution par construction. Le principe d’une m´ethode gloutonne est tr`es simple : on construit une solution de mani`ere incr´ementale en rajoutant `a chaque pas un ´el´ement selon un crit`ere glouton, i.e. celui qui nous paraˆıt “localement” le meilleur. Ce choix local ne remet pas en cause les choix effectu´es pr´ec´edemment. Si cette vison `a court terme nous donne toujours une solution optimale, on parlera d’algorithme glouton exact sinon d’heuristique gloutonne.

Pour assurer que l’algorithme glouton donne une solution optimale pour un probl`eme, il faut mon- trer que ce probl`eme a les propri´et´es suivantes :

1. Propri´et´e du choix glouton : Une solution globalement optimale peut ˆetre trouv´ee en faisant des choix localement optimaux (choix gloutons).

2. Propri´et´e de sous-structure optimale : Apr`es avoir effectu´e une premi`ere ´etape gloutonne, le probl`eme qui reste `a r´esoudre est une forme r´eduite du probl`eme initial. En d’autres termes, si on retire la premi`ere ´etape d’une solution optimale pour le probl`eme initial, on obtient une solution optimale pour le probl`eme r´eduit.

L’algorithme de Kruskal de recherche d’un arbre couvrant de poids minimum (ACM) [3] est un exemple d’algorithme glouton exact.

2.3.3 Recherche `a ´ecarts limit´es LDS

LDS (Limited Discrepancy Search) est une m´ethode de recherche partielle introduite par Harvey et Ginsberg [34]. Cette m´ethode est une m´ethode arborescente.

L’id´ee est de se baser sur une solution initiale, obtenue avec une m´ethode heuristiqueh, et d’auto-

riser des divergences par rapport `a cette solution.

En consid´erant que h peut se tromper un petit nombre η de fois, on s’autorise donc η ´ecarts (dis-

crepancies) `a l’heuristique h. Pour un nombre maximal η d’´ecarts autoris´e, LDS explore l’arbre de

recherche de mani`ere it´erative selon un nombre croissant d’´ecarts allant dei = 0 `a i = η. A chaque

it´eration, i est incr´ement´e de 1. Ceci revient `a remettre en cause progressivement les choix de l’heu- ristiqueh, et ce, afin d’am´eliorer `a chaque it´eration la qualit´e de la solution. Si la valeur de η est tr`es