• Aucun résultat trouvé

Algorithmes de recherche locale Recherche Op´erationnelle et Optimisation Master 1

N/A
N/A
Protected

Academic year: 2022

Partager "Algorithmes de recherche locale Recherche Op´erationnelle et Optimisation Master 1"

Copied!
46
0
0

Texte intégral

(1)

Algorithmes de recherche locale

Recherche Op´erationnelle et Optimisation Master 1

S´ebastien Verel verel@lisic.univ-littoral.fr

http://www-lisic.univ-littoral.fr/~verel

Universit´e du Littoral Cˆote d’Opale Laboratoire LISIC Equipe OSMOSE

(2)

Plan

1 Introduction

2 Recherche locales bas´ees sur le gradient

(3)

Introduction Recherche locales bas´ees sur le gradient

Probl`eme d’optimisation

Probl`eme d’optimisation

Unprobl`eme d’optimisationest un couple (X,f) avec : Espace de recherche : ensemble des solutions possibles,

X

fonction objectif : crit`ere de qualit´e (ou de non-qualit´e) f :X !IR

R´esoudre un probl`eme d’optimisation

Trouver la (ou les) meilleure solution selon le crit`ere de qualit´e x?=argmaxX f

Mais, des fois, l’ensemble de toutes les meilleures solution, ou une bonne approximation, ou une solution ”robuste”, etc.

(4)

Probl`eme d’optimisation

Probl`eme d’optimisation

Unprobl`eme d’optimisationest un couple (X,f) avec : Espace de recherche : ensemble des solutions possibles,

X

fonction objectif : crit`ere de qualit´e (ou de non-qualit´e) f :X !IR

R´esoudre un probl`eme d’optimisation

Trouver la (ou les) meilleure solution selon le crit`ere de qualit´e x?=argmaxX f

Mais, des fois, l’ensemble de toutes les meilleures solution, ou une bonne approximation, ou une solution ”robuste”, etc.

(5)

Introduction Recherche locales bas´ees sur le gradient

Contexte

Optimisation boite noire (Black box)

Nous ne pouvons connaitre que{(x0,f(x0)),(x1,f(x1)), ...}donn´es par un ”oracle”

Aucune information sur la d´efinition de la fonction objectiff n’est soit disponible ou soit n´ecessaire

x ! !f(x)

Fonction objectif donn´ee par un calcul ou une simulation Fonction objectif peut ˆetre irr´eguli`ere, non di↵´erentielle, non continue, etc.

(6)

Typologie des probl`emes d’optimisation

Classification

Optimisation combinatoire : Espace de recherche dont les variables sont discr`etes (cas NP-difficile)

Optimisation num´erique (continue): Espace de recherche dont les variables sont continues

N’entrant pas dans les deux autres cat´egories : combinaison discret/continue, programme, morphologie, topologie, etc.

(7)

Introduction Recherche locales bas´ees sur le gradient

Search algorithms

Principle

Enumeration of the search space

A lot of ways to enumerate the search space Using random sampling : Monte Carlo technics Local search technics :

If objective function f has no propertie : random search If not...

(8)

Search algorithms

Principle

Enumeration of the search space

A lot of ways to enumerate the search space Using random sampling : Monte Carlo technics Local search technics :

If objective function f has no propertie : random search If not...

(9)

Introduction Recherche locales bas´ees sur le gradient

Retour `a MAX-SAT

Comment r´esoudre ce genre de probl`emes ? (x1_x2)^( ¯x2_x3)^(x1_x¯3)

(x4_x2_x3)^(x2_x4_x5)^( ¯x2_x1_x5)^( ¯x2_x5_x4)^(x1_x¯3_x¯4)

(10)

Retour `a MAX-SAT

math´ematiquement ou ...

Exhaustivementn = 20,n = 100, ...

Al´eatoirement

Construction de solution (plus tard) M´ethodes exactes (plus tard)

ou ...

(11)

Introduction Recherche locales bas´ees sur le gradient

Heuristiques

Heuristique

Algorithme de r´esolution dont la conception repose sur l”’exp´erience” du concepteur.

Souvent :

Pas de garantie d’obtenir une solution optimale On d´esire toutefois :

Le plus souvent possible une solution proche de l’optimalit´e Le moins souvent possible un mauvaise solution (di↵´erent !) Une complexit´e “raisonnable”

De la simplicit´e d’impl´ementation (code light en version de base...)

(12)

Heuristiques

Heuristique

Algorithme de r´esolution dont la conception repose sur l”’exp´erience” du concepteur.

Souvent :

Pas de garantie d’obtenir une solution optimale On d´esire toutefois :

Le plus souvent possible une solution proche de l’optimalit´e Le moins souvent possible un mauvaise solution (di↵´erent !) Une complexit´e “raisonnable”

De la simplicit´e d’impl´ementation (code light en version de base...)

(13)

Introduction Recherche locales bas´ees sur le gradient

Metaheuristiques

Peu probable qu’un algorithme puisse r´esoudre tout probl`eme M´etaheuristique

Ensemble d’heuristiques :

regroupe des heuristiques d´ependant de param`etres d´ecrit une m´ethode de conception d’heuristique

de

un aveu d’impuissance

`a

des techniques performantes d’optimisation difficile

(14)

Metaheuristisques de recherche locale

Algorithmes `apopulation de solutions

Algorithmes Evolutionnaires (EA) : Holland 1975 et mˆeme avant

Algorithmes d’essaims particulaires (PSO) : R. Ebenhart et J.

Kennedy 1995.

Algorithmes de fourmis (ACO) : Bonabeau 1999

(15)

Introduction Recherche locales bas´ees sur le gradient

Metaheuristisques de recherche locale

Algorithmes `asolution unique (Recherches al´eatoire),

Algorithmes de descente : Hill-Climber (HC), premi`ere-descente

Recuit Simul´e (SA) : Kirkpatrick et al 1983, Recherche Tabou (TS) : Glover 1986 - 89 -90, Iterated Local Search

(16)

Stochastic algorithms with unique solution (Local Search)

S set of solutions (search space) f :S!IRobjective function V(s) set of neighbor’s solutions of s

(17)

Introduction Recherche locales bas´ees sur le gradient

Recherche Locale (LS)

S ensemble des solutions (espace de recherche),

f :S !IRfonction objectif `a maximiser (ou coˆut `a minimiser) V(s) ensemble des solutions voisines des

Algorithme d’une Recherche Locale Choisir solution initiales 2S

repeat

choisirs0 2V(s) if accept(s,s0) then

s s0 end if

until crit`ere d’arrˆet verifi´e

(18)

Un exemple : Sac `a dos avec contrainte

Probl`eme du sac `a dos :

Pourn objets, profits (pi)i2{1...n}, poids (wi)i2{1...n}

Codage binaire : objeti dans le sacxi = 1, object hors sacxi = 0.

Maximiser

z(x) = Xn

i=1

pixi

tel que :

w(x) = Xn i=1

wixi 6C 8i 2{1. . .n},xi 2{0,1}n

(19)

Introduction Recherche locales bas´ees sur le gradient

Sac `a dos avec contrainte : fonction de p´enalit´e

Fonction objectif avec p´enalit´e Soit le coefficient

=max {wpii : i 2{1. . .n} et wi 6= 0}= max

i2{1...n}etwi6=0 pi

wi

Pour toute chaˆıne binaire de longueurn,x2{0,1}n f(x) =

⇢ z(x) si w(x)6C z(x) ⇥(w(x) C) si w(x)>C Espace de recherche S=

{0,1}n, Taille]S= 2N Exercice

Coder, dans le langage que vous voulez, la fonction d’´evaluation. L’instance d’un probl`eme devra ˆetre d´efinie `a partir d’un fichier (nombre d’objects, profits, poids). Tester en affichant une solution et la valeur de la fonction

(20)

Introduction Recherche locales bas´ees sur le gradient

Sac `a dos avec contrainte : fonction de p´enalit´e

Fonction objectif avec p´enalit´e Soit le coefficient

=max {wpii : i 2{1. . .n} et wi 6= 0}= max

i2{1...n}etwi6=0 pi

wi

Pour toute chaˆıne binaire de longueurn,x2{0,1}n f(x) =

⇢ z(x) si w(x)6C z(x) ⇥(w(x) C) si w(x)>C Espace de recherche S= {0,1}n, Taille]S=

Exercice

Coder, dans le langage que vous voulez, la fonction d’´evaluation. L’instance d’un probl`eme devra ˆetre d´efinie `a partir d’un fichier (nombre d’objects, profits, poids). Tester en affichant une solution et la valeur de la fonction

(21)

Introduction Recherche locales bas´ees sur le gradient

Sac `a dos avec contrainte : fonction de p´enalit´e

Fonction objectif avec p´enalit´e Soit le coefficient

=max {wpii : i 2{1. . .n} et wi 6= 0}= max

i2{1...n}etwi6=0 pi

wi

Pour toute chaˆıne binaire de longueurn,x2{0,1}n f(x) =

⇢ z(x) si w(x)6C z(x) ⇥(w(x) C) si w(x)>C Espace de recherche S= {0,1}n, Taille]S= 2N

Exercice

Coder, dans le langage que vous voulez, la fonction d’´evaluation. L’instance d’un probl`eme devra ˆetre d´efinie `a partir d’un fichier (nombre d’objects, profits, poids). Tester en affichant une solution et la valeur de la fonction

(22)

Sac `a dos avec contrainte : fonction de p´enalit´e

Fonction objectif avec p´enalit´e Soit le coefficient

=max {wpii : i 2{1. . .n} et wi 6= 0}= max

i2{1...n}etwi6=0 pi

wi

Pour toute chaˆıne binaire de longueurn,x2{0,1}n f(x) =

⇢ z(x) si w(x)6C z(x) ⇥(w(x) C) si w(x)>C Espace de recherche S= {0,1}n, Taille]S= 2N Exercice

Coder, dans le langage que vous voulez, la fonction d’´evaluation. L’instance d’un probl`eme devra ˆetre d´efinie `a partir d’un fichier (nombre d’objects, profits, poids).

Tester en affichant une solution et la valeur de la fonction

(23)

Introduction Recherche locales bas´ees sur le gradient

R´esolution d’un probl`eme d’optimisation combinatoire

Inputs

Espace de recherche :

X ={0,1}n Function objectif :

f =knapsack Goal

Find the best solution according to the criterium x?=argmax f

(24)

Recherche Locale (LS)

S ensemble des solutions (espace de recherche),

f :S !IRfonction objectif `a maximiser (ou coˆut `a minimiser) V(s) ensemble des solutions voisines des

Algorithme d’une Recherche Locale Choisir solution initiales 2S

repeat

choisirs0 2V(s) if accept(s,s0) then

s s0 end if

until crit`ere d’arrˆet verifi´e

(25)

Introduction Recherche locales bas´ees sur le gradient

Recherche al´eatoire sur l’espace de recherche

Algorithme de Recherche Al´eatoire

Choisir solution initiales 2S al´eatoirement uniform´ement surS. repeat

choisir al´eatoirement s0 2S s s0

until crit`ere d’arrˆet non verifi´e

Voisinage est tout l’espace de recherche : V =S

Le choix de la solution voisine est al´eatoire (loi uniforme) Les solutions sont toujours accept´ees :

accept(s,s0) =true 1 ou plusieurs it´erations :

1 it´eration = 1 ´evaluation

(26)

Recherche al´eatoire sur l’espace de recherche

Algorithme de Recherche Al´eatoire (sur l’espace de recherche)

Choisir solution initiales2S al´eatoirement uniform´ement surS. Evaluers avec f

sbest s0 repeat

Choisir al´eatoirements0 2S Evaluers0 avecf

if s0 est meilleure que sbest then sbest s0

end if s s0

until crit`ere d’arrˆet v´erifi´e return sbest

Remarque : Evidement `a cause du caract`ere al´eatoire de la m´ethode, d’une ex´ecution `a l’autre, la qualit´e de la solution finale n’est pas la mˆeme.

(27)

Introduction Recherche locales bas´ees sur le gradient

Recherche al´eatoire sur l’espace de recherche

Exercice Questions :

Coder la recherche al´eatoire

Evaluer les performances (qualit´e de la solution finale) de la recherche al´eatoire en fonction du nombre d’´evaluation.

M´ethode : Pour un nombre d’´evaluation fix´e, ex´ecuter plusieurs fois la recherche al´eatoire (au moins 30 fois), puis calculer les statistiques de la qualit´e des solutions finales obtenues.

Observer et d´ecrire la distribution des valeur de performances.

Conseil : enregistrer dans un fichier de type ”csv”, puis utiliser un logiciel d´edi´e au calcul statistique comme R :

https://www.r-project.org/pour calculer vos statistiques et dessiner les graphiques (voir notes de cours sur R).

(28)

Recherche Locale Al´eatoire (marche al´eatoire)

Heuristique d’explorationmaximale

Recherche locale al´eatoire Marche al´eatoire Choisir solution initiale s 2S Evaluer s avec f

repeat

choisirs0 2V(s) al´eatoirement Evaluer s0 avec f

s s0

until Nbr d’´eval.> maxNbEval

Algorithme inutilisable en pratique

Algorithme de comparaison Op´erateur local de base de nombreuses

m´etaheuristiques Permet d’explorer la

”forme” du paysage induit par le probl`eme.

(29)

Introduction Recherche locales bas´ees sur le gradient

Voisinage des chaines binaires

Distance de Hamming

Nombre de di↵´erence entre 2 chaˆınes.

Voisinage dex2{0,1}N

V(x) : ensemble des chaˆınes binaires `a une distance 1 de x.

”On modifie 1 seul bit”

Pourx = 01101,V(x) ={

01100, 01111, 01001, 00101, 11101

}

Taille du voisinage d’une chaˆıne binaire de longueur : N

(30)

Introduction Recherche locales bas´ees sur le gradient

Voisinage des chaines binaires

Distance de Hamming

Nombre de di↵´erence entre 2 chaˆınes.

Voisinage dex2{0,1}N

V(x) : ensemble des chaˆınes binaires `a une distance 1 de x.

”On modifie 1 seul bit”

Pourx = 01101,V(x) ={

01111, 01001, 00101, 11101

}

Taille du voisinage d’une chaˆıne binaire de longueur : N

(31)

Introduction Recherche locales bas´ees sur le gradient

Voisinage des chaines binaires

Distance de Hamming

Nombre de di↵´erence entre 2 chaˆınes.

Voisinage dex2{0,1}N

V(x) : ensemble des chaˆınes binaires `a une distance 1 de x.

”On modifie 1 seul bit”

Pourx = 01101,V(x) ={

01100, 01111, 01001, 00101, 11101

}

Taille du voisinage d’une chaˆıne binaire de longueur : N

(32)

Introduction Recherche locales bas´ees sur le gradient

Voisinage des chaines binaires

Distance de Hamming

Nombre de di↵´erence entre 2 chaˆınes.

Voisinage dex2{0,1}N

V(x) : ensemble des chaˆınes binaires `a une distance 1 de x.

”On modifie 1 seul bit”

Pourx = 01101,V(x) ={

01100, 01111, 01001, 00101, 11101

}

(33)

Introduction Recherche locales bas´ees sur le gradient

Voisinage des chaines binaires

Distance de Hamming

Nombre de di↵´erence entre 2 chaˆınes.

Voisinage dex2{0,1}N

V(x) : ensemble des chaˆınes binaires `a une distance 1 de x.

”On modifie 1 seul bit”

Pourx = 01101,V(x) ={

01100, 01111, 01001, 00101, 11101

}

Taille du voisinage d’une chaˆıne binaire de longueur :

N

(34)

Voisinage des chaines binaires

Distance de Hamming

Nombre de di↵´erence entre 2 chaˆınes.

Voisinage dex2{0,1}N

V(x) : ensemble des chaˆınes binaires `a une distance 1 de x.

”On modifie 1 seul bit”

Pourx = 01101,V(x) ={

01100, 01111, 01001, 00101, 11101

}

Taille du voisinage d’une chaˆıne binaire de longueur : N

(35)

Introduction Recherche locales bas´ees sur le gradient

Marche al´eatoire

Exercice

Coder la recherche locale al´eatoire (marche al´eatoire)

La marche al´eatoire est-elle plus performante que la recherche al´eatoire ?

Observer la forme du paysage en affichant le graphique de la dynamique de recherche :

qualit´e de la solution vs.nombre d’´evaluations

Le paysage vous semble-t-il rugueux ou r´egulier ? Est-ce que cela d´epend de l’instance du probl`eme ? Est-ce que cela d´epend de la fonction de p´enalit´e choisie ?

(36)

Hill-Climber Best Improvement (ou steepest-descent)

Heuristique d’exploitation maximale.

Hill Climber (best-improvement) Choisir solution initiales 2S

Evaluer s avecf repeat

Choisirs0 2V(s) telle quef(s0) est maximale if s0 strictement meilleur que s then

s s0 end if

until s optimum local

Algorithme de comparaison

Op´erateur local de base de m´etaheuristique

(37)

Introduction Recherche locales bas´ees sur le gradient

Hill-Climber First Improvement

Hill-climber First-improvement (maximisation)

Choisir solution initiales2S Evaluers avecf

repeat

Choisirs0 2V(s) al´eatoirement tel quef(s0)>f(s) (si possible) Evaluers0 avecf

iff(s)<f(s0)then s s0

end if

untils optimum localounbEval>maxNbEval

(38)

Hill-Climber First Improvement

Hill-climber First-improvement (maximisation)

Choisir solution initiales2S Evaluers avecf

nbEval 1 repeat

Choisirs0 2V(s) al´eatoirement Evaluers0 avecf et incr´ementer nbEval

whilef(s)>f(s0)etdes voisins sont non visit´esetnbEvalmaxNbEval do

Choisirs02V(s) al´eatoirement (avec ou sans remise) Evaluers0 avecf et incr´ementer nbEval

end while

iff(s)<f(s0)then s s0

end if

untils optimum localounbEval>maxNbEval

Quelle est l’avantage de cet algorithme par rapport au Hill-Climber Best-improvement ?

(39)

Introduction Recherche locales bas´ees sur le gradient

Hill-Climber First Improvement

Hill-climber First-improvement (maximisation)

Choisir solution initiales2S Evaluers avecf

nbEval 1 repeat

Choisirs0 2V(s) al´eatoirement Evaluers0 avecf et incr´ementer nbEval

whilef(s)>f(s0)etdes voisins sont non visit´esetnbEvalmaxNbEval do

Choisirs02V(s) al´eatoirement (avec ou sans remise) Evaluers0 avecf et incr´ementer nbEval

end while

iff(s)<f(s0)then s s0

end if

untils optimum localounbEval>maxNbEval

Le crit`ere d’arrˆet sur le nombre d’´evaluation peut ˆetre changer (temps, qualit´e de la solution, etc.)

(40)

Hill-Climber First Improvement

Hill-climber First-improvement (maximisation)

Choisir solution initiales2S Evaluers avecf

nbEval 1 repeat

Choisirs0 2V(s) al´eatoirement Evaluers0 avecf et incr´ementer nbEval

whilef(s)>f(s0)etdes voisins sont non visit´esetnbEvalmaxNbEval do

Choisirs02V(s) al´eatoirement (avec ou sans remise) Evaluers0 avecf et incr´ementer nbEval

end while

iff(s)<f(s0)then s s0

end if

untils optimum localounbEval>maxNbEval

Les comparaisons strictes ou non entref(s0) et f(s) peuvent avoir de grandes cons´equences sur les performances de l’algorithme.

(41)

Introduction Recherche locales bas´ees sur le gradient

Travaux pratiques !

Exercice

Coder les recherches Hill-Climber best-improvement et Hill-Climber first-improvement

Evaluer et comparer les performances de ces recherches : voir la suite pour la m´ethodologie

(42)

Comparaison d’algorithmes stochastiques

Une r`egle d’or

Ne jamais rien d´eduire d’une seule ex´ecution de l’algorithme

On ne d´etermine pas si un d´e est truqu´e en le lan¸cant qu’une seule fois...

R´ealiser un nombre suffisant d’ex´ecutions ind´ependantes typiquement au moins 30 runs (grand nombre)

mais un nombre plus r´eduit peut ˆetre utilis´e sous condition Utiliser un test statistiquepour comparer les moyennes (ou les m´edianes) :

Param´etriquelorsque les distributions sont gaussiennes (`a v´erifier) :

Test t de student, ANOVA `a 1 facteur

Non param´etrique lorsque aucune hypoth`ese sous jacente : Test de la somme des rangs de Wilcoxon, Test de

Mann-Whitney, Test de Kolmogorov-Smirnov Interpr´eter correctement les p-value obtenues

(43)

Introduction Recherche locales bas´ees sur le gradient

Comparaison de metaheuristiques

Technique

2 points de vue sont possibles : Pour un nombre d’´evaluation fix´e,

on compare la qualit´e des solutions obtenues Pour une qualit´e fix´ee,

on compare le nombre d’´evaluation n´ecessaire pour l’obtenir

Probl`emes

Lorsque l’algorithme s’arrˆete avant le nombre d’´evaluation fix´e Lorsque le niveau de qualit´e n’est pas atteint

Comment fixer le nombre d’´evaluation, la qualit´e `a atteindre ?

(44)

Comparaison de metaheuristiques

Technique

2 points de vue sont possibles : Pour un nombre d’´evaluation fix´e,

on compare la qualit´e des solutions obtenues Pour une qualit´e fix´ee,

on compare le nombre d’´evaluation n´ecessaire pour l’obtenir

Probl`emes

Lorsque l’algorithme s’arrˆete avant le nombre d’´evaluation fix´e Lorsque le niveau de qualit´e n’est pas atteint

Comment fixer le nombre d’´evaluation, la qualit´e `a atteindre ?

(45)

Introduction Recherche locales bas´ees sur le gradient

Comparaison de metaheuristiques

Probl`emes

Lorsque l’algorithme s’arrˆete avant le nombre d’´evaluation fix´e :

Consid´erer les ´evaluations ”manquantes” comme perdues Modifier les algorithmes en version ”restart”

Lorsque le niveau de qualit´e n’est pas atteint : Mesurer et comparer seulement le taux de succ`es ˆps

Mesurer l’Expected Running Time (ERT) : Es[T] +1 ˆpˆps

s Tlimit

Comment fixer le nombre d’´evaluation, la qualit´e `a atteindre ? Etudier en fonction du nombre d’´evaluation / de la qualit´e

(46)

Bibliographie

Sur les fonctions de p´enalit´e pour le probl`eme knapsack :

Michalewicz, Zbigniew and Arabas, Jaroslaw, Genetic algorithms for the 0/1 knapsack problem, Methodologies for Intelligent Systems, pp. 134-143, 1994.

He, Jun, and A Zhou, Yuren, A Comparison of GAs Using

Penalizing Infeasible Solutions and Repairing Infeasible Solutions on Average Capacity Knapsack, Advances in Computation and

Intelligence, pp. 100-109, 2007.

Pour aller plus loin sur les Hill-climbers :

M. Basseur, A. Go¨e↵on, Climbing Combinatorial Fitness Landscapes, Applied Soft Computing 30 :688-704, 2015.

A. Go¨e↵on, Mod`eles d’abstraction pour la r´esolution de probl`emes combinatoires, Th`ese d’Habilitation `a Diriger des Recherches, 2014.

Gabriela Ochoa, S´ebastien Verel, Marco Tomassini,

First-improvement vs. Best-improvement Local Optima Networks of NK Landscapes, In 11th International Conference on Parallel Problem Solving From Nature, pp. 104 - 113, 2010.

Références

Documents relatifs

(2) D´ emontrer cette propri´ et´ e (on pourra raisonner par l’absurde et supposer que la pro- pri´ et´ e ` a prouver n’est pas vraie pour un graphe n

– pour chacun de ces points de vente, le surcoˆut maximal engendr´e par la fermeture du d´epˆot j est la diff´erence entre le minimum des coˆuts d’approvisionnement du point

Une ´equipe possible est donc un ensemble (non vide) de sommets (personnes) tel que pour tout couple de sommets dans cet ensemble, il y ait un arc entre ces deux sommets..

Quelques probl` emes importants de l’´ etude d’un graphe Arbre partiel de poids minimum. Rappel

etre plus int´ eressant d’avoir des allumettes et un r´ echaud que l’un des deux s´ epar´ ement. Exprimer l’objectif de ce nouveau

Solutions de base d´ eg´ en´ er´ es : lorsque certaines variables de base sont nulles. Pratique : lorsque A est inversible, solution de

Algorithme de Recherche Al´ eatoire (sur l’espace de recherche) Choisir solution initiale s ∈ S al´ eatoirement uniform´ ement sur

Cours introductif de l’´ ecole d’´ et´ e en ´ evolution artificielle Anne Auger, juin 2012 :