Recherche operationnelle et´ Optimisationrobillia/RO/poly.pdf · I connaˆıtre le vocabulaire et...

100
Recherche op ´ erationnelle et Optimisation Master 1 — Informatique Denis Robilliard Lisic — Univ Littoral-C ˆ ote d’opale 2010 Denis Robilliard (Lisic — Univ Littoral-C ˆ ote d’opale) Recherche op ´ erationnelle et Optimisation 2010 1 / 100

Transcript of Recherche operationnelle et´ Optimisationrobillia/RO/poly.pdf · I connaˆıtre le vocabulaire et...

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 de base : illustration

( ) Recherche operationnelle et Optimisation 29 / 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

Hill-climber (base) : illustration

( ) Recherche operationnelle et Optimisation 32 / 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 : illustration

( ) Recherche operationnelle et Optimisation 41 / 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

Methodes evolutionnaires : schema general

( ) Recherche operationnelle et Optimisation 49 / 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

Front Pareto : illustration

( ) Recherche operationnelle et Optimisation 75 / 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

Rang Pareto : illustration

( ) Recherche operationnelle et Optimisation 80 / 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