Recherche operationnelle etOptimisation
Master 1 — Informatique
Denis Robilliard
Lisic — Univ Littoral-Cote d’opale
2010
Denis Robilliard (Lisic — Univ Littoral-Cote d’opale) Recherche operationnelle et Optimisation 2010 1 / 100
Sommaire general
1 GeneralitesPresentation de la R.O.OptimisationComplexite d’un algorithmeMeta-heuristiques et recherchelocaleComparaison de deuxheuristiques
2 Methodes a solution uniqueHill-climberRecuit simuleRecherche TabouRandom restart
3 Methodes a base de populationGeneralitesMethodes evolutionnaires
Strategies evolutionnairesAlgorithme genetiqueMethode de Path-RelinkingAlgorithme des Fourmis
4 Problemes multi-criteresDefinitionsFront ParetoReduction a un objectifApproches parPareto-domination
5 TD / TPExercicesPresentation des TPsLa fonction de GriewankLes matrices de EricksonCompte-rendu
( ) Recherche operationnelle et Optimisation 2 / 100
Sommaire du chapitre
1 GeneralitesPresentation de la R.O.
Recherche OperationnelleOrganisation du cours
OptimisationProbleme d’optimisationProbleme continu / discretExemple continuExemple combinatoire
Complexite d’un algorithmeDefinitionCalcul de la complexiteExemple de calculConclusion
Meta-heuristiques et recherche localeDefinitionsVoisinage et optima locaux
Comparaison de deux heuristiquesPrincipes
2 Methodes a solution unique
3 Methodes a base de population
4 Problemes multi-criteres
5 TD / TP
( ) Recherche operationnelle et Optimisation 3 / 100
Definition
Origines”Recherche Operationnelle” vient de ”operations research” (Royaume-Uni, 2ndguerre mondiale).
Ou placer les stations radars ? Comment plannifier les vols desurveillance anti-sous-marins ? ...
DefinitionRecherche Operationnelle : elaboration et amelioration / optimisation demethodes de resolution de problemes complexes.
Deux grandes familles de methodes :I methodes exactes, basees sur des principes mathematiquesI methodes approchees ou heuristiques, souvent stochastiques (utilisation
du hasard) : quand les methodes exactes ne sont pas disponibles ou sonttrop couteuses⇒ souvent !
( ) Recherche operationnelle et Optimisation 4 / 100
Organisation du cours
Le cours de RO est divise en deux, selon methodes exactes/approcheesI Generalites et methodes approchees (ce cours)I methodes exactes (cours fait par Gilles Roussel)
Pre-requis :I un peu de maths (quantificateurs, ...),I algorithmique et structures de donnees de base,I connaissance du langage C pour les algos,I de Java pour les TPs.
Objectifs :I connaıtre le vocabulaire et les concepts de base,I connaıtre et avoir compris les algorithmes de base,I avoir implante et utilise quelques algorithmes sur ordinateur,I savoir adapter un algorithme a un nouveau probleme.
Organisation du cours (x 2) : 6h de cours magistral, 3h de travaux diriges,9h de travaux pratiques.
( ) Recherche operationnelle et Optimisation 5 / 100
Probleme d’optimisation
DefinitionOn dispose d’un ensemble S de solutions ”candidates” : c’est l’espace derecherche.
A chaque solution est associe un reel, sa qualite, calculable par unefonction qualite / objectif / cout / ”fitness”
On cherche la solution de meilleure qualite, appelee optimum global (oudu moins on veut s’en approcher).
Semantique qualite / coutSelon le pb, on veut maximiser ou minimiser l’objectif.
Les algos seront presentes dans un contexte de minimisation (prendrel’oppose de la qualite pour maximiser).
( ) Recherche operationnelle et Optimisation 6 / 100
Probleme d’optimisation : suite
Optimisation multi-criteresTres souvent on veut optimiser plusieurs fonctions/criteres de qualite enmeme temps : probleme multi-criteres, multi-objectifs.
Ex : on veut le moteur le plus puissant, mais aussi le plus leger, quiconsomme le moins possible et qui coute le moins cher a fabriquer...
L’optimisation multi-criteres est un sous-domaine specifique (voir plusloin).
( ) Recherche operationnelle et Optimisation 7 / 100
Probleme continu / discret
Probleme continuOptimisation continue : les solutions sont des vecteurs de reels : on parlede variables reelles, et l’espace de recherche est infini.
Probleme discretL’espace de recherche est fini, discret.
Les problemes discrets sont generalement combinatoires.
Optimisation combinatoire : une solution est une combinaison d’elementspris dans un ensemble discret : on parle de variables discretes. Ex : unsous-ensemble des arcs d’un graphe.
( ) Recherche operationnelle et Optimisation 8 / 100
Probleme continu / discret (suite)
ContraintesOn a souvent un ensemble de contraintes sur la valeurs des variables / laforme des solutions (ex : pas de valeurs negatives en optimisationcontinue).
La resolution de contraintes, notamment discretes (ex : sudoku...) est unchamp specialise : (Constraint Solving Problem — CSP).
( ) Recherche operationnelle et Optimisation 9 / 100
Exemple de probleme d’optimisation continue
En utilisant 16 fragrances de base, composer un parfum interessant :
Forme des solutions : vecteur de 16 reels (proportion de chaquefragrance)
Contraintes : proportions dans [0,1.0], et somme = 1.0.
Fonction objectif : moyenne des notes donnees par un jury
Taille de l’espace de recherche : infini !
NoteOn pourrait vouloir discretiser chaque proportion :
I On discretise en 21 valeurs de 0% a 100% par pas de 5%
I Taille de l’espace de recherche : 2116 = 1,43e+21
En pratique : plus complique ! Exemple : on veut une solutionsignificativement differente de l’existant => probleme multi-criteres (2emefonction objectif : distance a l’existant).
( ) Recherche operationnelle et Optimisation 10 / 100
Exemple de probleme d’optimisation combinatoire
Probleme du voyageur de commerce (PVC)on veut visiter chacune des N = 25 villes ou se trouvent les clients.
On ne considere que la route la + courte d’une ville a l’autre.
Trouver le circuit de longueur minimale.
Forme des solutions : vecteur de 25 entiers (numero des villes dansl’ordre de parcours)
Fonction objectif : longueur du parcours
Contrainte : chaque entier doit etre present une et une seule fois.
Taille de l’espace de recherche : N!/2N = 3,102e23
En pratique : on pourrait prendre en compte des peages sur certaines routes,le temps de parcours, etc.
( ) Recherche operationnelle et Optimisation 11 / 100
Notion de complexite d’un algorithme
DefinitionComplexite d’un algorithme : relation entre le temps de calcul ou lamemoire occupee et la taille des donnees traitees.
On se limite a la complexite en temps de calcul, toujours superieure acelle en memoire.
On exprime la relation par une fonction : temps = fn(taille).
On s’interesse au taux d’accroissement de cette fonction.
RaffinementPour une meme taille de donnees, le temps peut varier selon la valeur desdonnees. Ex : trier un tableau presque range ou completement aleatoire.
⇒ complexite dans le cas moyen, dans le pire des cas, etc.
( ) Recherche operationnelle et Optimisation 12 / 100
Classes de complexite
Classes de complexiteOn classe les fonctions en deux familles selon leur taux d’accroissement :les polynomes et les exponentielles.
une fonction est dite (a croissance) polynomiale s’il existe un polynomequi la borne superieurement : ∀n ∈ N, ∃b ∈ N, c ∈ R tels que f (n)≤ c.nb
une fonction dans N est dite (a croissance) exponentielle si sa croissancesuit une progression geometrique : f (n)≈ c.eb.n
les fonctions polynomiales croissent moins vite que les fonctionsexponentielles : il n’existe pas b ∈ N tel que ∀ n ∈ N, nb > en
Note : il existe d’autres classes plus fines de complexite.
( ) Recherche operationnelle et Optimisation 13 / 100
Calcul de la complexite
Calcul du temps d’executionOn le considere proportionnel au nombre d’instructions elementaireseffectuees (ex : affectation, operations arithmetiques, mais pas un tri ! Cf.cours IASF)
La traduction d’un langage de programmation (usuel) dans un autre se faiten temps polynomial => on peut ignorer le langage (polynomes clos parcomposition).
Calcul de la taille de la donneeToute donnee peut etre codee comme nombre (cf. IASF).Le codage doit etre raisonnable : pas en base 1. En effet 10k occupe :
I k+1 chiffres en decimal ;I (ln(10)/ ln(2))k +1 soit 3.32k+1 chiffres en binaire ;I mais... 10k batons en base 1 !
( ) Recherche operationnelle et Optimisation 14 / 100
Exemple de calcul de complexite1 la recherche exhaustive de l’element minimum d’une matrice carree de
taille N ;2 la recherche exhaustive d’une solution minimale au PVC base sur la
meme matrice de distances de taille N.
Dans les deux cas, il faut effectuer ”taille de l’espace de recherche” operationsde comparaison :
1 cas 1) : N2 operations2 cas 1) : N!/2N = O(en) operations
Avec une machine traitant 109 comparaisons/s , variation du temps de calculen fonction de la taille de la donnee :
N 10 20 30 40 50 60
algo 1 0,1 µs 0,4 µs 0,9 µs 1,6 µs 2,5 µs 3,6 µsalgo 2 181µs 6 . 109s 4 . 1021s 1037s 1053s 1071s
Rappel : age de l’Univers = 1017 secondes...( ) Recherche operationnelle et Optimisation 15 / 100
Conclusion sur la complexite
On separe les problemes en 2 classes :I ceux solvables avec algos en temps polynomial : problemes faciles
(independamment de la difficulte d’ecrire l’algo)I ceux solvables seulement (actuellement) avec algos en temps exponentiel :
problemes difficiles, algos non faisables.
Note : determiner si une solution est un optimum global peut etre nonfaisable.
Note : il y a aussi des problemes non tractables sur ordinateur (voir coursIASF)
BilanNombreux problemes difficiles => developpement d’heuristiques en tempspolynomial pour approcher les solutions optimales.
( ) Recherche operationnelle et Optimisation 16 / 100
Meta-heuristiques et recherche localeDefinitions
Methode approchees = heuristiques
Meta-heuristique = heuristique generalisee, incompletement specifiee, aadapter au probleme.
Parmi les methodes approchees, optimisation ”boıte noire” : ne requiertque la capacite d’estimer la qualite des solutions
Les meta-heuristiques sont souvent stochastiques, et ”boıte noire”.
ClassificationLes heuristiques procedent par transformation ou par construction.
Methodes par transformation partielle de solution, on parle aussi derecherche locale. On cherche a ameliorer peu a peu une solutionexistante et complete.
Methodes constructives : on construit une solution morceau par morceau,generalement en se basant sur la qualite des morceaux (donc pas ”boıtenoire”).
( ) Recherche operationnelle et Optimisation 17 / 100
VoisinageDans les methodes par transformation, une solution peut souvent etretransformee en plusieurs autres possibles :
Definitionsl’ensemble des solutions transformees possibles est le voisinage de lasolution initiale.
La methode/algorithme de transformation : operateur de voisinage.
De nombreuses meta-heuristiques(de transformation) utilisent cettenotion de voisinage. Pour les implanter, il faut inventer et coder unvoisinage adapte au probleme :
I Une solution doit avoir un nombre de voisins suffisant pour permettre d’ytrouver un voisin meilleur.
I Le voisinage ne doit pas etre trop grand pour ne pas etre trop long aexplorer (typiquement taille polynomiale en fonction de la taille duprobleme).
I Le voisinage ne peut pas etre l’espace de recherche total⇒ recherchealeatoire !
( ) Recherche operationnelle et Optimisation 18 / 100
Voisinage dans les problemes continusConvolution Gaussienne
Un voisinage ”standard” en variables continues : ajouter un ”bruit”Gaussien de moyenne 0 a chaque variable de la solution.
La variance du bruit est a adapter au probleme (faible chance de grossemodification).
vec to r GaussianConvolut ion ( vec to r v , i n t N, f l o a t sigma2 ) {/ / v : vecteur s o l u t i o n de t a i l l e N/ / sigma2 : var iance de l a d i s t r i b u t i o n Gaussienne / Normale/ / min , max : borne minimum , maximumf l o a t tmp ;for ( i n t i = 0 ; i < N; i ++) {
do {tmp = GaussianRandom (0 , sigma2 ) ;
} while ( ( v [ i ]+ tmp ) < min | | ( v [ i ]+ tmp ) > max) ;v [ i ] = v [ i ] + tmp ;
}return v ;
}
( ) Recherche operationnelle et Optimisation 19 / 100
Voisinage dans les problemes continus (suite)Echantillonage gaussien :
La methode de Box-Mueller permet d’obtenir un bruit gaussien demoyenne µ et de variance σ2 (algo ci-dessous).
En Java, le package java.util.Random fournit un generateur gaussiende moyenne 0 et de variance 1, que l’on peut adapter :Gauss(µ,σ2) = µ+σ2Gauss(0,1)
f l o a t GaussianRandom ( f l o a t mu, f l o a t sigma2 ) {/ / mu est l a moyenne voulue/ / sigma2 est l a var iance vouluef l o a t x , y , g , h ;do {
x = rand ( 0 . 0 , 1 .0 ) ; / / d i s t r i b u t i o n uni formey = rand ( 0 . 0 , 1 .0 ) ; / / d i s t r i b u t i o n uni forme ( independant de x )w = x∗x + y∗y ;
} while ( ! ( w > 0.0 && w < 1 .0 ) ) ;g = mu + sigma2 ∗ x ∗ s q r t (−2 ∗ log (w) / w) ;h = mu + sigma2 ∗ y ∗ s q r t (−2 ∗ log (w) / w) ;return g ; / / ou re tou rne r h , ou les deux
} ( ) Recherche operationnelle et Optimisation 20 / 100
Optima locaux
DefinitionsSoit V un operateur de voisinage, une solution s est un optimum local(relativement a V ) si : ∀s′ ∈ V (s), f (s′)≤ f (s)
Des optima locaux peuvent etre contigus et former un plateau de fitness :zone ou toutes les solutions ont la meme qualite.
Quand on est dans un optimum local, on ne peut plus exploiter levoisinage, sauf en acceptant de perdre de la qualite !
Un optimum global est toujours aussi optimum local.
Probleme uni/multi-modalProbleme uni-modal : il n’y a qu’un optimum local (/ au voisinage), et il estaussi global.
Probleme multi-modal : plusieurs optima locaux (/ au voisinage)⇒ a prioriplus difficile a traiter.
( ) Recherche operationnelle et Optimisation 21 / 100
Paysage de performance
DefinitionPour les problemes en 1 ou 2 dimensions, on dessine la fonction objectifselon l’axe vertical, comme une ”altitude”.
Le graphe obtenu est appele paysage de performance ou fitnesslandscape.
Illustration de paysage de probleme uni/multi-modal
( ) Recherche operationnelle et Optimisation 22 / 100
Comparaison de deux heuristiquesPrincipes
Probleme des methodes stochastiques : leur resultat varie d’uneexecution a l’autre sur le meme probleme !
Utiliser des methodes de comparaisons statistiques pour comparer deuxensembles de resultats : au moins 30 executions par methode.
Se placer dans les conditions les plus semblables pour les deuxheuristiques (graine initiale du generateur aleatoire, nombre d’evaluationsdu fitness...)
La distribution des resultats est generalement inconnue et nonGaussienne⇒ utiliser des test non parametriques :Wilcoxon-Mann-Whitney, ou encore Kolmogorov-Smirnoff (distributioncontinue)...
Calcul avec ”R”Test avec le logiciel libre ”R” : commandes wilcox.test(Wilcoxon-Mann-Whitney) et ks.test (Kolmogorov-Smirnoff) ;
( ) Recherche operationnelle et Optimisation 23 / 100
Exemple de calcul avec RAvertissement : ceci un exemple ”jouet” : les donnees exemples sonttrop peu nombreuses (il en faudrait au moins deux fois 30).
Test de similitude entre 2 heuristiquesOn Suppose que le resultats (non continu) de 2 heuristiques est :h1 = {20,21,22,23,29} et h2 = {27,32,35,39,60}> h1=c (20 , 21 , 22 , 23 , 29)> h2=c (27 , 32 , 35 , 39 , 60)> wi lcox . t e s t ( h1 , h2 )Wilcoxon rank sum t e s tdata : h1 and h2W = 1 , p−value = 0.01587a l t e r n a t i v e hypothes is : t r ue l o c a t i o n s h i f t i s not equal to 0
InterpretationLa ”p-value” est la probabilite que les heuristiques soient semblables (ici,≈ 1,6% avec une confiance de 95% par defaut). On peutraisonnablement rejeter cette hypothese.
( ) Recherche operationnelle et Optimisation 24 / 100
Exemple de calcul avec R : suite
Test h1 < h2
> h1=c (20 , 21 , 22 , 23 , 29)> h2=c (27 , 32 , 35 , 39 , 60)> wi lcox . t e s t ( h1 , h2 , a l t e r n a t i v e = ” g rea te r ” )
Wilcoxon rank sum t e s t
data : h1 and h2W = 1 , p−value = 0.996a l t e r n a t i v e hypothes is : t r ue l o c a t i o n s h i f t i s g rea te r than 0
Interpretation
Ici, avec une confiance de 95% (par defaut) on sait qu’il y a ≈ 99.6% dechance que h1 soit inferieure a h2, ce qu’on peut raisonnablementaccepter.
( ) Recherche operationnelle et Optimisation 25 / 100
Sommaire du chapitre
1 Generalites
2 Methodes a solution uniqueHill-climberRecuit simuleRecherche TabouRandom restart
3 Methodes a base de population
4 Problemes multi-criteres
5 TD / TP
( ) Recherche operationnelle et Optimisation 26 / 100
Hill-climber de base
Principe : ”on suit la pente vers le bas” (minimisation)1 soit s une solution initiale (souvent aleatoire)2 on tire un voisin, en general choisi stochastiquement, dans le voisinage de
la solution s.3 il remplace la solution courante s’il est meilleur4 on itere en 2) ou on arrete quand on a un optimum local (on est alors
coince) ou si le temps de calcul est epuise
( ) Recherche operationnelle et Optimisation 27 / 100
Hill-climber de base : algo
s o l u t i o n H i l l C l i m b e r ( s o l u t i o n s0 ) {s o l u t i o n s , t ;
s = s0 ; / / cop ie r s o l u t i o n courantedo {
t = Vo is in ( s ) ; / / o b t e n i r un v o i s i ni f ( f ( t ) < f ( s ) ) / / un m e i l l e u r v o i s i ns = t ; / / remplacement
} while ( ! s o l u t i o n s a t i s f a i s a n t e && ! temps epuise ) ;return s ; / / s es t un optimum l o c a l
}
( ) Recherche operationnelle et Optimisation 28 / 100
Hill-climber gradient
Principe : ”on suit la plus grande pente vers le bas” (le ”gradient”)
comme le hill-climber de base mais tester plusieurs (tous les) voisinsavant d’accepter.
Voisin() retourne sucessivement toutes les solutions du voisinage sicelui n’est pas trop grand (Ex : heuristique Lin-Kernighan pour le PVC).
( ) Recherche operationnelle et Optimisation 30 / 100
Hill-climber gradient : algo
s o l u t i o n H i l l C l i m b e r E l i t i s t e ( s o l u t i o n s0 , i n t n ) {s o l u t i o n s , t , r ;s = s0 ; / / cop ie r s o l u t i o n couranteI n i t V o i s i n a g e ( s ) ; / / p reparer l e 1er v o i s i ndo {
t = PremierVois in ( s ) ; / / o b t e n i r un v o i s i nfor ( i = 0 ; i < n−1; i ++) { / / n = nombre de v o i s i n s
r = Vo is inSu ivan t ( s ) ; / / o b t e n i r un v o i s i ni f ( f ( r ) < f ( t ) ) / / un m e i l l e u r v o i s i n
t = r ; / / remplacement}i f ( f ( t ) < f ( s ) ) / / l e m e i l l e u r v o i s i n es t m e i l l e u r
s = t ;} while ( ! s o l u t i o n s a t i s f a i s a n t e && ! temps epuise ) ;return s ; / / s es t un optimum l o c a l
}
( ) Recherche operationnelle et Optimisation 31 / 100
Recuit simule
Principe : accepter un voisin selon un critere probabiliste, qui permet d’accepterde perdre de la qualite, donc de sortir des optima locaux. Comme on peutperdre de la qualite, il faut stocker la meilleure solution rencontree dans lepasse. Cette technique est inspire de la cristallisation des metaux de fonderie.
1 soit s une solution initiale (souvent aleatoire)2 on tire un voisin, en general choisi stochastiquement dans le voisinage de
la solution s.3 il remplace la solution courante s’il est meilleur4 s’il est moins bon il peut tout de meme remplacer la solution courante,
selon une regle probabiliste/stochastique :I moins il est bon, moins il a de chance d’etre accepte.I plus l’algorithme avance, moins il a de chance d’etre accepte.
5 on le memorise si c’est la meilleure solution rencontree6 on itere en 2) ou on arrete si le temps de calcul est epuise
( ) Recherche operationnelle et Optimisation 33 / 100
Recuit-simule : algos o l u t i o n Recui t ( s o l u t i o n s0 , i n t n ) {
s o l u t i o n s , r , best ;f l o a t temp ;s = s0 ; / / cop ie r s o l u t i o n courantebest = s ;i n i t (&temp ) ; / / temperature i n i t i a l edo {
r = Vo is in ( s ) ; / / o b t e n i r un v o i s i ni f (
( f ( r ) < f ( s ) ) / / un m e i l l e u r v o i s i n| | ( rand (0 ,1 ) < exp ( ( f ( s )−f ( r ) ) / temp ) / / reg le de met ropo l i s)
s = r ; / / remplacement}r edu i re (&temp ) ;i f ( f ( s ) < f ( best ) ) / / l e m e i l l e u r v o i s i n es t m e i l l e u r
best = s ;} while ( ! s o l u t i o n s a t i s f a i s a n t e && ! temps epuise && temp > 0) ;return best ;
}
( ) Recherche operationnelle et Optimisation 34 / 100
Regle de metropolisFormuleAccepter r si rand(0,1)< exp((f (s)− f (r))/temp)
Si maximisation : rand(0,1)< exp((f (r)− f (s))/temp)
( ) Recherche operationnelle et Optimisation 35 / 100
Planning de recuit
QuestionA quelle temperature commencer ? Tester l’acceptation de 95% desolutions aleatoires.Quelle decroissance de temperature ?
I Creer des paliers de temperature : idealement on devrait avoir une chancenon nulle de pouvoir atteindre n’importe quelle solution de l’espace(ergodicite) pendant le palier.
I Faible baisse de temperature entre paliers : tempt+1 = c · tempt avec0 < c < 1 proche de 1.
( ) Recherche operationnelle et Optimisation 36 / 100
Recuit simule : bilan
Est que ca marche ? Selon les problemes... Tres bon ou tres mauvais(en temps) par rapport aux autres heuristiques.
Exemple d’application : deplacement du bras de Mars Explorer.
( ) Recherche operationnelle et Optimisation 37 / 100
Recherche Tabou (F. Glover, 1986)
PrincipeRecherche Tabou : extension du Hill-climber.
Arrive sur un optimum local on poursuit la recherche pour sortir du bassind’attraction de cet optimum.
Bassin d’attraction d’un optimum local : ensemble des solutions tellesque, en partant d’elles, le hill-climber mene au meme optimum local(rappel : dependant du voisinage).
On accepte de perdre de la qualite, pour s’eloigner de l’optimum local.Probleme :
I On veut pouvoir accepter une bonne nouvelle solutionI On veut eviter de succomber a l’attraction des relativement bonnes
solutions que l’on laisse derriere nous autour de l’optimum local
( ) Recherche operationnelle et Optimisation 38 / 100
Recherche Tabou (suite)
CompromisPour eviter de retourner en arriere, on garde en memoire une liste detransformations interdites : liste “tabou”.
Pour saisir une eventuelle bonne occasion, un critere “d’aspiration”permet de passer outre a la liste tabou dans certains cas precis.
La liste tabou peut contenir :I les solutions recemment explorees (faible)I l’inverse des transformations recemment explorees (mieux)
Il faut la parcourir souvent, donc sa taille est un facteur critique :I Trop grande, elle est couteuseI Trop courte, on risque de tourner en rondI ⇒ faire varier sa taille dynamiquement
Critere d’aspiration standard : ameliorer la meilleure solution trouvee (onest donc sorti de l’optima local)
( ) Recherche operationnelle et Optimisation 39 / 100
Recherche Tabou (suite)
Alors que l’arret de l’algorithme du grimpeur est garanti par construction,l’algorithme Tabou peut boucler infiniment puisqu’il s’autorise a gagnerpuis a perdre en qualite des solutions.
Critere d’arret habituel : stopper l’exploration quand on n’a pas reussi aameliorer la meilleure solution trouvee pendant un nombre d’iterationsdonne.
( ) Recherche operationnelle et Optimisation 40 / 100
Recherche Tabou : algos o l u t i o n tabou ( s0 : s o l u t i o n ) {
s o l u t i o n s , t , old , best ;i n t compteur ; l i s t e T ; / / l i s t e tabou
s = s0 ;best = s0 ;compteur = 0 ;while ( compteur < BORNE) {
compteur = compteur + 1 ;/ / o b t e n i r m e i l l e u r v o i s i n non taboue ( ou asp i re )t = m e i l l e u r v o i s i n ( s , T ) ;o ld = s ;s = t ;i f ( f ( i ) < f ( best ) ) {
best = i ;compteur = 0 ; / / i n i t temps recherche
}m e t t r e a j o u r (& old , &s , &T) ;
}return best ;
}( ) Recherche operationnelle et Optimisation 42 / 100
Random restart
IdeeChacune des heuristiques explore une (infime) partie de l’espace derecherche.
Toutes sont genees par les optima locaux de la partie de l’espaceexploree.
⇒ relancer l’algo avec une autre solution initiale, genereestochastiquement ou avec un schema systematique de diversification.
on peut aussi modifier le parametrage de l’algorithme, lors de cesnouveaux essais : changer le planning de recuit, la taille de la liste tabou,...
( ) Recherche operationnelle et Optimisation 43 / 100
Sommaire du chapitre
1 Generalites
2 Methodes a solution unique
3 Methodes a base de populationGeneralitesMethodes evolutionnaires
PrincipesVocabulaireReproduction asexuee / sexueeCaracteristiques generales
Strategies evolutionnairesAlgorithme genetiqueMethode de Path-RelinkingAlgorithme des Fourmis
Etude des insectes sociauxStigmergie artificielle
4 Problemes multi-criteres
5 TD / TP( ) Recherche operationnelle et Optimisation 44 / 100
Methodes a base de population
Principe : prendre en compte plusieurs solutions simultanement.
Methodes evolutionnairesPlusieurs methodes a base de population de solutions s’inspirent del’evolution Darwinienne.
Idee : l’evolution a su assembler des molecules pour creer des etrevivants sophistiques
⇒ modeliser l’evolution de solutions a un probleme donne.
Il existe d’autres methodes de population, d’inspiration plus intuitive.
( ) Recherche operationnelle et Optimisation 45 / 100
Methodes evolutionnaires : principes
Theorie de l’evolution DarwiniennePrincipe de ”selection naturelle” (Darwin, 1859)
Evolution = survie des meilleurs ?⇒ Evolution =
I Reproduction des individus suffisamment bienadaptes.
I Apparition de variations lors de lareproduction.
I Accumulation des caracteres favorables.
Pinsons de Darwin
( ) Recherche operationnelle et Optimisation 46 / 100
Methodes evolutionnaires : vocabulaire
Le vocabulaire est fortement emprunte a la biologie :
Table d’equivalenceindividu = solution
population = ensemble d’individus
fitness = qualite
evaluation = calcul du fitness pour tous les individus de la population
genotype / genome / chromosome = encodage d’une solution
phenotype = representation de la solution afin de calculer sa qualite (peutetre semblable ou pas a son genome)
gene = position dans le genome
allele = valeur d’un gene
( ) Recherche operationnelle et Optimisation 47 / 100
Methodes evolutionnaires : vocabulaire (suite)
Table d’equivalence (suite)selection = choix des solutions destinees a etre repliquees
parent = solution selectionnee pour etre repliquee
enfant = parent apres replication et variation / tranformation
mutation = variation / transformation
crossover = recombinaison de parties du genome des parents pourproduire les enfants
generation = iteration de l’algorithme comprenant le remplacement d’unepopulation par la population fille.
( ) Recherche operationnelle et Optimisation 48 / 100
Modeles de replication / reproduction
Modeles naturelsLa nature offre deux modeles de reproduction :
I Reproduction asexuee ou clonage, plutot organismes simples(unicellulaires, moisissures, fraisiers, pucerons, ...)⇒ variation du genomepar mutation.
I Reproduction sexuee, plutot organismes complexes⇒ variation dugenome par mutation et par recombinaison des genomes des parents.
Modelisation informatiqueStrategies evolutionnaires (Schwefel & Rechenberg, 1969) : mutationseule, generalement implantee comme une transformation dans unvoisinage.
Algorithme genetique (Holland, 1974) : mutation et recombinaison.
( ) Recherche operationnelle et Optimisation 50 / 100
Principe de la recombinaisonRecombinaison
Recombiner c’est melanger les caracteres des parents.
Attention a utiliser un melange non moyennant !
Exemple : melanger de l’eau et du vin ne permet jamais de retrouver soitde l’eau soit du vin pur⇒ c’est un melange moyennant.Objection du XIXeme siecle a la theorie de Darwin : la speciation estimpossible.
( ) Recherche operationnelle et Optimisation 51 / 100
Recombinaison (suite)
Recombinaison discreteSi les genes sont discrets (cas des genomes des etres vivants), alors larecombinaison par crossover n’est pas moyennante.
( ) Recherche operationnelle et Optimisation 52 / 100
Recombinaison (suite)
Recombinaison continueSi les genes sont continus, il faut simuler un caractere discret pour obtenirun effet non moyennant.
Exemple de 2 genes numeriques parents : tirer la valeur du generecombine selon une distribution de probabilite non moyennante
⇒ BLX-0.5 et BGX-like sont beaucoup plus generaux que BLX-0.
( ) Recherche operationnelle et Optimisation 53 / 100
Methodes evolutionnaires : caracteristiques generales
CaracteristiquesCouteuses en temps de calcul : on manipule des populations parfois del’ordre du million d’individus.
⇒ a reserver aux problemes difficiles.
Generalement stochastiques⇒ maintenir la variete des individus.
Tres parametrees : taille de la population, nombre de generation,operateurs de variations, ...
Assez robustes au parametrage.
Efficaces si on sait introduire de la connaissance sur le probleme,notamment dans les operateurs de variations, et dans l’evaluation (gainde temps).
( ) Recherche operationnelle et Optimisation 54 / 100
Strategies evolutionnaires (µ,λ)Caracteristiques
Elles correspondent au schema de reproduction asexue, sans partaged’information entre solutions.
Toutefois la selection se fait en comparant le fitness des solutions (doncdifferent d’une heuristique a solution unique iteree plusieurs fois).Deux variantes principales :
I S.E.(µ,λ) : les µ meilleurs des λ enfants remplacent les µ parents ;I S.E.(µ+λ) : les µ meilleurs des µ parents + λ enfants remplacent les µ
parents ;
Utilisees plutot sur les problemes continus.
Heuristique du 1/5eme
Une regle heuristique pour adapter la variance du bruit Gaussien sur lesproblemes continus : augmenter la variance si plus de 1/5eme des enfantssont de fitness meilleurs que les parents, la diminuer si c’est moins de1/5eme, laisser identique sinon.
( ) Recherche operationnelle et Optimisation 55 / 100
Strategies evolutionnaires (µ,λ)s o l u t i o n E v o l S t r a t ( i n t mu, i n t lambda ) {
s o l u t i o n best = NULL ;i n t c h i l d ;Popu la t ion P, Q;i n i t (P , lambda ) ; / / c reer l a pop i n i t i a l e de t a i l l e lambdai n i t (Q, mu) ; / / tempora i re pour reproducteurswhile ( 1 ) {
for ( i n t i = 0 ; i < lambda ; i ++) / / eva l popEvaluer (P [ i ] ) ;
t r i e r (P) ; / / par cout c r o i s s a n ti f ( best == NULL | | f i t n e s s (P [ 0 ] ) < f i t n e s s ( best ) )
best = P [ 0 ] ;i f ( s o l u t i o n s a t i s f a i s a n t e ( best ) | | temps epuise )
return best ;cop ie r (Q, P, mu) ; / / Q[ 0 . . mu−1] <− P [ 0 . . mu−1];c h i l d = 0 ;for ( i n t i =0; i < mu; i ++) / / l es mu m e i l l e u r s
for ( i n t j = 0 ; j < lambda /mu; j ++)P [ c h i l d ++] = Muter ( Copie (Q[ i ] ) ) ; / / nouvel enfant
}}
( ) Recherche operationnelle et Optimisation 56 / 100
Strategies evolutionnaires (µ+λ)
s o l u t i o n E v o l S t r a t ( i n t mu, i n t lambda ) {s o l u t i o n best = NULL ;i n t c h i l d ;Popu la t ion P;i n i t (P , mu+lambda ) ; / / pop i n i t , t a i l l e mu+lambdawhile ( 1 ) {
for ( i n t i = 0 ; i < mu+lambda ; i ++) / / eva l popEvaluer (P [ i ] ) ;
t r i e r (P) ; / / par cout c r o i s s a n ti f ( best == NULL | | f i t n e s s (P [ 0 ] ) < f i t n e s s ( best ) )
best = P [ 0 ] ;i f ( s o l u t i o n s a t i s f a i s a n t e ( best ) | | temps epuise )
return best ;c h i l d = mu;for ( i n t i =0; i < mu; i ++) / / l es mu m e i l l e u r s
for ( i n t j = 0 ; j < lambda /mu; j ++)P [ c h i l d ++] = Muter ( Copie (P [ i ] ) ) ; / / nouvel enfant
}}
( ) Recherche operationnelle et Optimisation 57 / 100
Algorithme genetique
CaracteristiquesImite la reproduction sexuee⇒ partage d’information entre solutions.Deux variantes principales :
I A.G. generationnel : les enfants d’une generation remplacent tous lesparents de la generation precedente.
I A.G. ”steady state” : chaque enfant remplace immediatement un parentmoins bon et devient parent potentiel.
”Elitisme” : conserver une fraction des meilleurs parents a la generationsuivante (meme si tous les enfants sont meilleurs).
Cas binaireLes solutions sont des vecteurs de bits.Les operateurs de transformations standards sont :
I La mutation ”bit-flip” qui inverse certains bits selon une probabilite donnee.I Le crossover 1-point qui coupe 2 vecteurs parents au meme endroit et
echange deux moities pour creer les enfants.
( ) Recherche operationnelle et Optimisation 58 / 100
Algorithme genetiques o l u t i o n GA( i n t popsize , i n t n ) { / / n : nombre d ’ ” e l i t e s ”
s o l u t i o n best = NULL, Pa , Pb , Ca, Cb ;Popula t ion P, Q;i n i t (P , popsize ) ;do {
for ( i n t i = 0 ; i < popsize ; i ++) / / eva l popEvaluer (P [ i ] ) ;
t r i e r (P) ; / / par cout c r o i s s a n ti f ( best == NULL | | f i t n e s s (P [ 0 ] ) < f i t n e s s ( best ) )
best = P [ 0 ] ;cop ie r (Q, P, n ) ; / / Q[ 0 . . n−1] <− P [ 0 . . n−1]for { i n t i = 0 ; i < ( popsize − n ) / 2 ; i ++) {
Pa = Se lec t ion (P) ; Pb = Se lec t ion (P) ;Crossover (&Pa , &Pb , &Ca, &Cb) ;Q[ i ∗2+n ] = Mutat ion (Ca) ; Q[ i ∗2+1+n ] = Mutat ion (Cb) ;}P=Q;
while ( ! s o l u t i o n s a t i s f a i s a n t e ( best ) && ! temps epuise ) ;return best ;
}
( ) Recherche operationnelle et Optimisation 59 / 100
A.G. : selection, mutation
Selection par tournoi
s o l u t i o n TournamentSelect ion ( Popula t ion P, i n t tournament s ize ) {s o l u t i o n best = P[ rand (0 ,N−1]; / / t i r a g e alea d ’ un i n d i v i d ufor ( i n t i =2; i <= tournament s ize ; i ++) {
s o l u t i o n next = P[ rand (0 ,N−1];i f ( f i t n e s s ( next ) < f i t n e s s ( best ) ) / / next es t m e i l l e u r
best = next ;}
return best ;}
La selection est independante a priori de la forme des solutions.
Il existe d’autres methodes de selection, eventuellement multi-criteres.
( ) Recherche operationnelle et Optimisation 60 / 100
A.G. binaire : mutation
Mutation bit-flip
s o l u t i o n B i t−F l i pMu ta t i on ( s o l u t i o n v , f l o a t p ) {/ / p : p r o b a b i l i t e d ’ i nve rse r un b i tfor ( i n t i =0; i < L ; i ++) / / L es t l a longueur de v
i f ( rand ( 0 . 0 , 1 .0 ) < p )v [ i ] = ˜ v [ i ] ; / / i n v e r s i o n du ieme b i t
return v ;}
Les operateurs de mutation sont dependants de la forme des solutions.
Pour les problemes continus, utiliser la notion de convolution Gaussienne.
( ) Recherche operationnelle et Optimisation 61 / 100
A.G. binaires : crossover
Crossover 1-point binaire
void One−PointCrossover ( s o l u t i o n ∗pa , s o l u t i o n ∗pb ,s o l u t i o n ∗ca , s o l u t i o n ∗cb ) {i n t tmp ;cop ie rSo lu t i on ( ca , pa ) ; cop ie rSo lu t i on ( cb , pb ) ;i n t c = rand (0 , L−1) ; / / L = t a i l l e des s o l u t i o n sfor ( i n t i = c ; i < L ; i ++) {
tmp = ca [ i ] ; ca [ i ] = cb [ i ] ; cb [ i ] = tmp ;}
}
Les operateurs de crossover sont aussi dependants de la forme dessolutions.
Pour les problemes continus, utiliser la notion de recombinaison nonmoyennante.
( ) Recherche operationnelle et Optimisation 62 / 100
Methode de Path-Relinking
Caracteristiquesmethode a base de population mais sans fondements evolutionnaires.Principe :
I Utiliser des redemarrages d’un algo de recherche locale pour obtenir unearchive d’optima locaux.
I Explorer l’espace en parcourant les solutions situees entre paires d’optimalocaux.
I Optimiser ces solutions intermediaires dans l’espoir d’obtenir de nouveauxoptima, qui pourront etre integres a l’archive.
Pre-requis (pour relier les solutions entre elles) :I operateur de voisinage ergodiqueI mesure de distance entre solutions et/ou calcul de la difference entre
solutions (relativement au voisinage)
( ) Recherche operationnelle et Optimisation 63 / 100
Path-Relinking : algo
s o l u t i o n PathRel ink ing ( s o l u t i o n ol1 , s o l u t i o n o l2 ) {s o l u t i o n best , courant , tmp , c i b l e ;Popu la t ion P;i f ( f ( o l1 ) < f ( o l2 ) ) {
best = c i b l e = o l1 ; courant = o l2 ;} else {
best = c i b l e = o l2 ; courant = o l1} ;while ( courant != c i b l e ) {
t r i e r (P) ; / / par cout c r o i s s a n tt r i e r D i s t (P) ; / / par d is tance c ro i ssan te a c i b l ecourant = P [ 0 ] ; / / l e m e i l l e u r des plus proches de c i b l etmp = OptimLocale ( courant ) ; / / recherche l o c a l ei f ( f ( tmp ) < f ( best ) )
best = tmp ;}return best ;
}
( ) Recherche operationnelle et Optimisation 64 / 100
Algorithme des Fourmis : etude des insectes sociaux
Presentation≈ 2% des insectes ont un comportement social :fourmis, termites, abeilles.
⇒≈ 1016 insectes sociaux !
50% sont des fourmis.
100 millions d’annees d’evolution...Quelques exemples :
I Les Atta coupent des feuilles d’arbres etorganisent des ”autoroutes” pour aller leschercher.
I Les Oecophylla construisent des ponts entrefeuilles.
I Les Eciton organisent des raids de chassecomprenant jusqu’a 200.000 individus.
fourmis Oecophylla
( ) Recherche operationnelle et Optimisation 65 / 100
Theorie de l’auto-organisation
PrincipeUn comportement ”intelligent” (en fait adapte) au niveau macrosocpiqueemerge d’interactions simples au niveau microscopique.
Cela n’exclut pas la possibilite de comportements complexesindependants au niveau microscopique.4 composantes de base :
I Amplification positive : les bons comportements sont renforces (ex :recrutement de fourmis).
I Renforcement negatif : les mauvais comportements sont evites (ex :abandon d’anciennes pistes perimees).
I Fluctuations aleatoires : de nouvelles solutions peuvent etre decouvertes(ex : marches aleatoires).
I Interactions multiples : le succes repose sur le grand nombre d’agents (ex :colonies de 30 a plusieurs millions de fourmis).
( ) Recherche operationnelle et Optimisation 66 / 100
Auto-organisation chez les fourmis
PrincipesLes agents communiquent :
I directement : contact par les antennes, visuel, sonore ...I indirectement : en modifiant l’environnement par des depots de
pheromones.
La communication indirecte s’appelle stigmergie, et est essentielle a lacoordination des activites des fourmis.
Stigmergie par pheromonesUne type de pheromone attire les autres fourmis ;
Elle s’evapore au cours du temps ;
Elle est depose par les fourmis lors de leurs deplacements ;
La quantite deposee est controllee par la fourmi ;
Les individus du meme nid partagent des pheromones de meme type.
( ) Recherche operationnelle et Optimisation 67 / 100
Exemple de stigmergie chez la fourmiSelection du plus court chemin
Chemin plus court⇒ plus haute frequence de passage
⇒ Accroissement de la concentration en pheromone
⇒ Evaporation sur les autres chemins
⇒ Le chemin le plus court devient le principal (une fraction des fourmiscontinuera d’emprunter les autres).
( ) Recherche operationnelle et Optimisation 68 / 100
Stigmergie artificiellePrincipe
Simuler par des agents informatiques le comportements des insectessociaux⇒ Ant Colony Optimisation (ACO).
Ajouter des heuristiques (hill-climber, tabou...) pour raffiner les solutions.
⇒ resolution de problemes d’optimisation combinatoire : routage,ordonnancement... (PVC, QAP, SOP, fouille de donnees, e-learning, ...)
En pratiqueOn gere une memoire de pheromones, associe aux elements duprobleme. Ex : choisir le sommet suivant dans un PVC :
⇒ Preferer les arcs avec de forts depots de pheromone.
⇒ Ajouter de la pheromone sur les arcs constituant de bons circuits.
⇒ Diminuer regulierement la pheromone (evaporation) pour ”oublier” lesarcs peu utilises (mauvais circuits).
C’est une methode constructive (ajout d’arcs).
( ) Recherche operationnelle et Optimisation 69 / 100
Fourmis artificielles pour le PVCProbabilite de choisir un arc
Un agent fourmi situe sur un noeud du graphe va choisir le prochainnoeud a visiter. La probabilite de choisir l’arc (i,j) depend :
I de la concentration relative en pheromone τ, par rapport a tous les arcsissus du sommet i ;
I d’une mesure heuristique η de la qualite de la composante (ex : inverse dela longueur de l’arc) :
⇒ P[(i, j)] =τα
i,j ηβ
i,j
∑k∈succ(i)(ταi,k η
β
i,k )ou α, β : importance relative de τ et η.
Mise a jour : renforcement et evaporation
Renforcement : ∀ solution s et ∀ arc (i, j) ∈ s : τi,j = τi,j +1/Fitness(s) oule fitness est la longueur du tour (le plus petit, le mieux).
Pour l’evaporation on applique : ∀ arc (i, j) du graphe : τi,j = (1− ε)τi,j
avec 0 < ε << 1
On borne τ : τmin ≤ τi,j ≤ τmax ⇒ ainsi tous les arcs ont une chance.
( ) Recherche operationnelle et Optimisation 70 / 100
Fourmis et PVC : algos o l u t i o n ACO PVC( i n t popSize , s o l u t i o n p i s t e [ ] ) {
/ / p i s t e : tab leau de so lu t i ons , une par fourmis o l u t i o n best = NULL ;do {
for ( i n t i = 0 ; i < popSize ; i ++) { / / l es fourmisp i s t e [ i ] [ 0 ] = 0 ; / / on demarre tou jou rs en v i l l e 0for ( i n t j = 1 ; j < N; j ++) / / completer l e tou r
p i s t e [ i ] [ j ] = ChoixFourmi ( p i s t e [ i ] [ j −1]) ; / / c h o i s i r v i l l e}for ( i n t i = 0 ; i < popSize ; i ++) { / / o p t i m i s a t i o n h e u r i s t i q u e
RechercheLocale ( p i s t e [ i ] ) ; / / ex : h e u r i s t i q u e LKfor ( i n t i = 0 ; i < popSize ; i ++) { / / eva lua t i on
Evaluer ( p i s t e [ i ] ) ;i f ( best == NULL | | f i t n e s s ( p i s t e [ i ] ) < f i t n e s s ( best ) )
best = p i s t e [ i ] ;}for ( i n t i = 0 ; i < popSize ; i ++) / / MAJ pheromone
MiseAJourPheromone ( p i s t e [ i ] ) ; / / en f o n c t i o n du f i t n e s s} while ( ! s o l u t i o n s a t i s f a i s a n t e ( best ) && ! temps epuise ) ;return best ;
}( ) Recherche operationnelle et Optimisation 71 / 100
Sommaire du chapitre
1 Generalites
2 Methodes a solution unique
3 Methodes a base de population
4 Problemes multi-criteresDefinitionsFront ParetoReduction a un objectif
Combinaison lineaireApproches evolutionnaires
Approches par Pareto-dominationRang ParetoGestion de la diversite
5 TD / TP
( ) Recherche operationnelle et Optimisation 72 / 100
Problemes multi-criteres
DefinitionsProbleme multicritere⇒ plusieurs fonctions objectifs a optimisersimultanement, avec souvent des objectifs partiellement contradictoires.Une solution x est Pareto-dominante vis a vis d’une solution y si :
I x est superieure ou egale a y et sur tous les objectifsI x est strictement meilleure que y sur au moins un objectif.
Si x Pareto-domine y , il n’y a aucune utilite a proposer y .
( ) Recherche operationnelle et Optimisation 73 / 100
Front Pareto
DefinitionLes solutions de l’espace de recherche non Pareto-dominee forment lefront Pareto.
On parle de solutions Pareto-optimales (et on etend ces concepts auxsolutions effectivement visitees par l’algorithme).
Les solutions Pareto-optimales sont incomparables entre elles⇒ ellesrealisent des compromis differents / aux objectifs
Le front Pareto n’est pas forcement continu, et il peut etre tres etendu.
On cherche a echantillonner au mieux les solutions du front Pareto⇒ onveut une collection de solutions non Pareto-dominee et pas une seulesolution-compromis.
⇒ les methodes a base de population sont a privilegier commel’algorithme genetique.
( ) Recherche operationnelle et Optimisation 74 / 100
Reduction a un objectif
Combinaison lineaireUne methode ancienne : prendre une combinaison lineaire des objectifs.
Ex : f (s) = 2∗Perf (s)+Duree(s)−3∗Cout(s)Problemes :
I Comment fixer les poids ?I Les solutions preferees ne sont pas toujours les plus proches du front
Pareto theorique. Exemple avec f (s) = fx(s)+ fy(s) :
( ) Recherche operationnelle et Optimisation 76 / 100
Reduction a un objectif (suite)
Approches evolutionnairesUtiliser une methode evolutionnaire a base de population, modifier laselection.Pour eviter de determiner des poids, utiliser la selection par tournoi :
I Tournoi ”lexicographique” : considerer un ordre sur les objectifsex : Cout(s)> Perf (s)> Duree(s))
I Tournoi avec objectif tire aleatoirement.I Tournoi avec comparaison majoritaire des fonctions objectives.
( ) Recherche operationnelle et Optimisation 77 / 100
Reduction a un objectif : tournoi lexicographique
s o l u t i o n Mul t iob jLex icographicTournament (Popula t ion P, i n t sizePop ,i n t tu rnSize , i n t ObjNumber , / / t a i l l e tou rno i , nombre d ’ o b j e c t i f sObjFun ∗ f ) { / / f : tab leau de po in teu r de f o n c t i o n s o b j e c t i f s
s o l u t i o n Best = P[ random (0 , sizePop−1) ] ;for ( i n t i = 1 ; i < tu rnSize−1; i ++) { / / t a i l l e du t o u r n o i
s o l u t i o n Next = P[ random (0 , sizePop−1) ]for ( i n t j = 0 ; j < ObjNumber ; j ++) { / / parcours les o b j e c t i f s
i f ( ( f [ j ] ) ( Next ) < f [ j ] ( Best ) ) { / / m e i l l e u rBest = Next ; break ;
} else i f ( ( f [ j ] ) ( Next ) > ( f [ j ] ) ( Best ) ) / / p i r ebreak ;
/ / e lse i t e r a t i o n suivante , comparer avec aut re o b j e c t i f}
}}return Best ;
}
( ) Recherche operationnelle et Optimisation 78 / 100
Approches par Pareto-domination
Rang ParetoAssigner le (fitness de) rang 1 aux solutions non dominees.
Assigner le rang 2 a celles dominees uniquement par celles de rang 1.
Assigner le rang 3 aux solutions dominees uniquement par celles de rang2 et 1, etc...
L’algo se code facilement en ignorant a chaque etape les solutions desrangs precedents
( ) Recherche operationnelle et Optimisation 79 / 100
Extraction du front Pareto-dominant
Popula t ion ParetoDominantFront ( Popu la t ion G) {/ / G : groupe de s o l u t i o n dont on veut un f r o n t
F = {} / / Le f r o n t , v ide au depar tfor each s o l u t i o n G[ i ] de G {
F = F + {G[ i ]} / / a j o u t e r G[ i ] / / on l e suppose dans l e f r o n tfor each s o l u t i o n F [ j ] de F aut re que G[ i ] {
i f (F [ j ] Pareto−domine G[ i ] )F = F − { G[ i ] } / / l e r e t i r e r
else i f (G[ i ] Pareto−domine F [ j ] )F = F − { F [ j ] } / / un pretendant a r e t i r e r
}}return F
}
( ) Recherche operationnelle et Optimisation 81 / 100
Gestion de la diversite
Espacement — SparsityOn souhaite que le front soit echantillonne le mieux possible
⇒ utiliser une mesure d’espacement en plus du rang Pareto.
Ex : sommer les dimensions des cotes de la boıte qui contient un point dufront et s’arrete a ses voisins.
( ) Recherche operationnelle et Optimisation 82 / 100
Calcul de l’espacement
Popula t ion Ass ignSpars i ty ( Popu la t ion R, Ob jec t i ves O) {/ / R : Popula t ion s t r u c t u r e e en rangs Pareto/ / O = {O[ 1 ] , . . . , O[ n ] } o b j e c t i f sfor each rang Pareto F de R {
for each s o l u t i o n F [ j ] de F {F [ j ] . espacement = 0 ;
for each o b j e c t i f O[ i ] de O {t r i e r O b j (F , O[ i ] ) / / F par va leur d ’ o b j e c t i f i c r o i s s a n tF [ 0 ] = INFINITY ;F [ LAST ] = INFINITY ;for ( j = 1 ; j < LAST ; j ++)
F [ j ] . espacement = F [ j ] espacement + O[ i ] ( F [ j −1]) −O[ i ] ( F [ j +1 ] ) ;
}}return F ;
}
( ) Recherche operationnelle et Optimisation 83 / 100
Utilisation de l’espacement
Algorithme NSGA-IILors de la phase de selection, lorsque 2 individus ont meme fitness (rang)Pareto, on prefere celui qui a le plus grand espacement.
L’algorithme NSGA-II (K. Deb, 2000) utilise l’espacement et integre enplus une archive des meilleures solutions trouvees, dans le cadre d’unestrategie evolutionnaire (µ+λ).
( ) Recherche operationnelle et Optimisation 84 / 100
Sommaire du chapitre
1 Generalites
2 Methodes a solution unique
3 Methodes a base de population
4 Problemes multi-criteres
5 TD / TPExercicesPresentation des TPsLa fonction de GriewankLes matrices de EricksonCompte-rendu
( ) Recherche operationnelle et Optimisation 85 / 100
TD exo 0
Codage de Gray
BoolVector GrayEncode ( BoolVector v ) {BoolVector w = v ;for ( i = 1 ; i < w. s ize ( ) ; i ++)
i f ( v [ i −1])w[ i ] = ˜w[ i ] ;
return w;}
Sur l’espace de recherche des entiers codes sur 4 bits :
Donnez la table de codage decimal habituel vers code de Gray ;Commentez.
Soit la fonction objectif : f (x) = x si x ≤ 8 ou 0 sinon.
Representez f(x) en codage habituel, puis en code de Gray. Commentez.
( ) Recherche operationnelle et Optimisation 86 / 100
TD exo 1
Coloration de grapheOn veut colorer un graphe avec le nombre minimum K de couleurs.
Est-ce un probleme d’optimisation ?
De quel type ?
Quelle est la forme des solutions ?
Que peut-on dire de l’espace de recherche ?
Proposer un operateur de voisinage et de crossover.
( ) Recherche operationnelle et Optimisation 87 / 100
TD exo 2
Sac a dosSoit un ensemble O = {O0,O1, . . . ,On} ;
Chaque objet est caracterise par sa taille t(0i) et sa valeur v(Oi) ;
On veut remplir un sac de capacite C avec un sous-ensemble S ⊂ O ;Soit i0, i1, . . . , ik les numeros des objets de S, il faut :
I maximiser la valeur des objets emmenes : ∑kj=0 v(Oij )
I respecter la capacite maximum du sac : ∑kj=0 t(Oij )≤ C
Caracteriser ce probleme d’optimisation.
Proposer un operateur de voisinage et de crossover.
( ) Recherche operationnelle et Optimisation 88 / 100
TD exo 3
Sudoku 4x4Un sudoku 4x4 se compose d’une grille de 4x4 cases ;
divisee en 4 regions de 2x2 cases ;
la grille est deja partiellement remplie ;
il faut la completer avec des nombres entre 1 et 4 ;
de telle sorte qu’un chiffre n’apparaisse jamais 2 fois dans chaque ligne,chaque colonne et chaque region.
Caracteriser ce probleme d’optimisation.
Proposer un operateur de voisinage et de crossover, sans oublier que leschiffres deja donnes dans la grille initiale sont fixes !
( ) Recherche operationnelle et Optimisation 89 / 100
TD exo 4
Bi-section de graphe
Soit un graphe G = (S,A), on veut le partitionner en deux sous-graphesde meme ordre (nombre de noeuds), tels que le nombre d’arcs allant d’unsous-graphe a l’autre soit minimal.Plus formellement, soit G = (S,A), on cherche G′ = (S′,A′) etG′′ = (S′′,A′′) tels que :
I S = S′∪S′′
I |S′|= |S′′|I Soit C un sous-ensemble de A defini par C = {x ∈ A tels que I(x) ∈ S′ et
T (x) ∈ S′′ ou bien I(x) ∈ S′′ et T (x) ∈ S′}, avec I(x) et T (x) lesapplications associant respectivement le sommet initial et le sommetterminal de l’arc x ;
I Le cardinal de C est minimum.
Caracteriser ce probleme d’optimisation.
Proposer un operateur de voisinage et de crossover.
( ) Recherche operationnelle et Optimisation 90 / 100
Presentation des TPs
Nous aborderons en TD/TP la resolution de deux problemes d’optimisation :1 la fonction de Griewank2 les matrices de Erickson
Nous attaquerons ces problemes avec 3 heuristiques stochastiques vues encours :
le Hill-Climber
la Strategie Evolutionnaire (µ, λ)
le Recuit Simule
Pour des raisons pratiques (l’horaire de TP est limite) vous testerez les 2premiers algorithmes sur la fonction de Griewank, et le dernier sur les matricesde Erickson.
( ) Recherche operationnelle et Optimisation 91 / 100
Fonction de Griewank
DefinitionLa fonction de Griewank est donnee par la formule :
f (x1,x2, . . . ,xn) =n
∑i=1
(x2i /4000)−
n
∏i=1
cos(xi/√
i)+1
On cherche x1,x2, . . . ,xn tels que f prend sa valeur minimum.
Chaque variable xi prend ses valeurs dans [−600;600]
Nous fixerons n = 10.
Note : on connait l’optimum global, qui est le point origine. On pourra doncfacilement constater en TP si l’heuristique fait converger les xi vers 0.
( ) Recherche operationnelle et Optimisation 92 / 100
Fonction de Griewank : illustration pour n = 2
( ) Recherche operationnelle et Optimisation 93 / 100
Fonction de Griewank : questions
Est-ce un probleme d’optimisation ?
De quel type ?
Quelle est la forme des solutions ?
Que peut-on dire de l’espace de recherche ?
Proposer un operateur de voisinage.
( ) Recherche operationnelle et Optimisation 94 / 100
Matrices de Erickson
Probleme (d’apres M.J. Erickson,“Introduction to Combinatorics”,1963)Trouver un entier positif n verifiant la propriete suivante : quelque soit lamatrice binaire carree de taille n×n, il existe i, j,k tels que les elements de lamatrice d’indice (i, j), (i + k , j), (i, j + k), (i + k , j + k) ont la meme valeur.
Les 4 elements forment un carre et sont tous soit de valeur 0 soit devaleur 1 : on parle de carre constant ou encore de carremonochromatique (en assimilant 0 et 1 a des couleurs).
C’est un probleme assez difficile, resolu en 2009 par enumeration del’espace de recherche sur ordinateur : on peut toujours trouver un carreconstant des que la taille de la matrice est n ≥ 15.
( ) Recherche operationnelle et Optimisation 95 / 100
Matrices de Erickson (suite)
Nous nous interesseront au probleme derive plus simple :
Definition du probleme deriveMatrice de Erickson : matrice binaire carree de taille n, sans carreconstant.
Trouver une matrice de Erickson pour un n donne.
On traitera en TP les problemes de taille n = 8 a n = 14 (on sait qu’il estinutile de chercher au dela de la taille 14).
Pour une taille donnee, on cherche a eliminer les carres constants.
Note : le probleme en taille 14 est assez difficile.
( ) Recherche operationnelle et Optimisation 96 / 100
Matrices de Erickson : illustration pour n = 14
( ) Recherche operationnelle et Optimisation 97 / 100
Matrices de Erickson : questions
Est-ce un probleme d’optimisation ?
De quel type ?
Quelle est la forme des solutions ?
Que peut-on dire de l’espace de recherche ?
Proposer un operateur de voisinage.
( ) Recherche operationnelle et Optimisation 98 / 100
Compte-rendu
Vous rendrez :
un compte-rendu (format pdf) comportant les noms de etudiants dubinome, les resultats obtenus et commentes (qualite, temps d’execution,...), avec les algos et le parametrage complet utilise pour les obtenir.
le code source compilable sous Unix.Vous enverrez le tout par e-mail [email protected] en respectant imperativementle format suivant :
I fichiers rassembles dans un repertoire a votre nomI repertoire compresse dans une archive a votre nom au format zip ou tar.gzI Note importante : ce format permet d’eviter les conflits de noms et les
ecrasements accidentels de fichiers lors de la correction.
Attention, les compte-rendus ne respectant pas ce format recevrontla note 0.
( ) Recherche operationnelle et Optimisation 99 / 100
References
Essentials of Metaheuristics, S. Luke,http://cs.gmu.edu/˜sean/book/metaheuristics/, 2009, (d’ouviennent certaines illustrations)
Local Search in Combinatorial Optimization, E. Aarts & J. K. Karel ed.,Wiley, 1997.
Optimisation Combinatoire, de M. Sakarovitch, Hermann, 1984.
Algorithmes Genetiques, D.E. Goldberg, Addison Wesley, 1994,(traduction francaise).
Statistiques, cours et problemes, M.R. Spiegel, Mc Graw Hill, 1993.
( ) Recherche operationnelle et Optimisation 100 / 100