Optimisation en nombres entiers Recherche Opérationnelle GC-SIE
Approximation Heuristiques
HeuristiquesMichel Bierlaire3 Approximation Idée : trouver une solution sous-optimale rapidement et mesurer sa qualité Définition : Un algorithme H est une -approximation pour le problème de minimisation P avec coût optimal Z* si, pour toute instance de P, lalgorithme fonctionne en temps polynomial et identifie une solution admissible de coût Z H telle que Z H (1+ )Z*
HeuristiquesMichel Bierlaire4 Approximation Exemple : couverture minimale Soit un graphe G=(V,E) V est lensemble des nœuds E est lensemble des arêtes Trouver le plus petit ensemble de nœuds C V tel que chaque arête du graphe ait au moins une extrémité dans C. On dit que C couvre les arêtes. Problème très difficile (NP-complet) Application : installation de caméras de surveillance
HeuristiquesMichel Bierlaire5 Approximation Algorithme simple C = Tant que E – Choisir une arête (u,v) de E – Ajouter u et v à C – Supprimer u et v ainsi que les arêtes incidentes
HeuristiquesMichel Bierlaire6 Approximation
HeuristiquesMichel Bierlaire7 Approximation
HeuristiquesMichel Bierlaire8 Approximation
HeuristiquesMichel Bierlaire9 Approximation
HeuristiquesMichel Bierlaire10 Approximation
HeuristiquesMichel Bierlaire11 Approximation
HeuristiquesMichel Bierlaire12 Approximation
HeuristiquesMichel Bierlaire13 Approximation
HeuristiquesMichel Bierlaire14 Approximation Analyse de lalgorithme Z H = #nœuds(solution) = 2 #Arêtes sélectionnées Dans la solution optimale, chaque arêtes sélectionnées doit être couverte Donc, Z*=#nœuds(optimum) #Arêtes sélectionnées On a donc Z H 2 Z* = (1+1)Z* Il sagit dune 1-approximation
HeuristiquesMichel Bierlaire15 Approximation Cet algorithme va trouver un ensemble de nœuds couvrant toutes les arêtes Chaque arête choisie par lalgorithme sera couverte par un nœud différent de C Ces arêtes nont aucun nœud en commun Si on prend une couverture quelconque, elle devra contenir au moins un nœud de chaque arête choisie. La couverture optimale ne peut donc pas être plus petite que la moitié de C. Il sagit dune 1-approximation
HeuristiquesMichel Bierlaire16 Approximation Pire des cas : Solution de lalgorithme : 8 nœuds (C=V) Solution optimale : 4 nœuds Solution optimale
HeuristiquesMichel Bierlaire17 Heuristiques Définition Une heuristique est une technique qui cherche une bonne solution (i.e. presque optimale) en un temps de calcul raisonnable sans être capable de garantir ni loptimalité ni ladmissibilité.
HeuristiquesMichel Bierlaire18 La plupart des heuristiques sont basées sur la notion de voisinage. Un voisinage est lensemble des solutions obtenues à partir dune solution donnée en effectuant un petit nombre de transformations simples. La définition de voisinage dépend du problème. Heuristiques
Michel Bierlaire19 Heuristiques Exemple Pour un programme linéaire en variables 0/1, le voisinage dune solution (x 1,…,x n ) est lensemble des (y 1,…,y n ) telles que – y i = x i si i k – y k = 1-x k pour un k donné.
HeuristiquesMichel Bierlaire20 Heuristiques Optimisation locale Soit une solution x c Répéter – Choisir x voisin de x c tel que f(x) < f(x c ) – Remplacer x c par x Jusquà ce que f(x) > f(x c ) pour tout x voisin de x c.
HeuristiquesMichel Bierlaire21 Heuristiques Notes : Facile à implémenter Potentiellement lent Trouve un minimum local
HeuristiquesMichel Bierlaire22 Heuristiques Recuit simulé Motivation thermodynamique La structure dun solide refroidi dépend de la vitesse de refroidissement A température T, la probabilité dune augmentation dénergie damplitude E est donnée par Prob(E) = exp(-E/kT) où k est la constante de Boltzmann k=1, joules/degré absolu
HeuristiquesMichel Bierlaire23 Heuristiques Algorithme de recuit simulé Soit une solution initiale x c Soit une température initiale T 0 Soit une fonction de réduction de température Répéter – Répéter k fois Choisir au hasard un voisin x de x c = f(x) – f(x c ) Si < 0 alors x c = x Sinon – choisir r aléatoirement entre 0 et 1 – Si r < exp(- /T) alors x c = x – T = (T)
HeuristiquesMichel Bierlaire24 Heuristiques Notes : Algorithme aléatoire Chaque exécution peut produire une solution différente Exemple : f(x)= x x x x x x 6
(0.4052,0.7909) (5.5541, ) (3.1045,1.9741)
HeuristiquesMichel Bierlaire26 Heuristiques Paramètres utilisés : x c = 3 T 0 = (T) = T / tred k = 100 Définition du voisinage de x : {x-0.1,x+0.1} Résultats obtenus sur 100 exécutions
HeuristiquesMichel Bierlaire31 Heuristiques Notes : Plus la température est diminuée lentement, plus la probabilité de trouver le minimum global augmente. Les paramètres présentés ici sont loin dêtre optimaux. La méthode peut requérir énormément de temps calcul.
HeuristiquesMichel Bierlaire32 Heuristiques Algorithme génétique Utilise, à chaque itération, un ensemble de solutions, appelé population. Chaque individu de cette population est codé en un ensemble de symboles, appelé chromosome. Exemple : notation binaire Individu = 19 Chromosome = Pour chaque chromosome x, on peut calculer son « aptitude », son « niveau de qualité » f(x)
HeuristiquesMichel Bierlaire33 Heuristiques Algorithme génétique : Initialisation : définir une population initiale P(0) A chaque itération k : – Sélection – Evolution – Mutation
HeuristiquesMichel Bierlaire34 Heuristiques Sélection Pour chaque chromosome x i P(k), on définit p i = f(x i )/ y P(k) f(y) Cela définit une loi de probabilité sur la population. Choisir les individus reproducteurs aléatoirement selon cette loi de probabilité.
HeuristiquesMichel Bierlaire35 Heuristiques Sélection (exemple) maximiser f(x)=x 3 -60x x+100 iChrom.IndividuAptitudepipi Cumulatif
HeuristiquesMichel Bierlaire36 Heuristiques Sélection (exemple) r(0,1) Individus reproducteurs Chromosomes
HeuristiquesMichel Bierlaire37 Heuristiques Evolution Deux parents sont choisis aléatoirement On effectue un croisement : – On sélectionne aléatoirement un emplacement i entre 1 et – On échanges les « gênes » des deux parents situés après lemplacement i On remplace les parents par les « enfants »
HeuristiquesMichel Bierlaire38 Heuristiques Evolution (exemple) Parents : 4 et 1 (21) (23) (19) (17)
HeuristiquesMichel Bierlaire39 Heuristiques Mutation On change les symboles de chaque chromosome avec une probabilité p m (souvent très petite)
HeuristiquesMichel Bierlaire40 Heuristiques Mutation (exemple) p m =0.1
HeuristiquesMichel Bierlaire41 Heuristiques Notes : Énormément de variantes possibles Il faut adapter les processus de sélection, dévolution et de mutation à chaque problème spécifique