Optimisation en nombres entiers Recherche Opérationnelle GC-SIE.

Slides:



Advertisements
Présentations similaires
Bratec Martin ..
Advertisements

NOTIFICATION ÉLECTRONIQUE
Fragilité : une notion fragile ?
SEMINAIRE DU 10 AVRIL 2010 programmation du futur Hôtel de Ville
Phono-sémantique différentielle des monosyllabes italiens
MAGGIO 1967 BOLOGNA - CERVIA ANOMALIES DU SOMMEIL CHEZ L'HOMME
droit + pub = ? vincent gautrais professeur agrégé – avocat
Transcription de la présentation:

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