Télécharger la présentation
La présentation est en train de télécharger. S'il vous plaît, attendez
Publié parAnastasie Granger Modifié depuis plus de 10 années
1
Optimisation en nombres entiers Recherche Opérationnelle GC-SIE
2
Approximation Heuristiques
3
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*
4
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
5
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
6
HeuristiquesMichel Bierlaire6 Approximation
7
HeuristiquesMichel Bierlaire7 Approximation
8
HeuristiquesMichel Bierlaire8 Approximation
9
HeuristiquesMichel Bierlaire9 Approximation
10
HeuristiquesMichel Bierlaire10 Approximation
11
HeuristiquesMichel Bierlaire11 Approximation
12
HeuristiquesMichel Bierlaire12 Approximation
13
HeuristiquesMichel Bierlaire13 Approximation
14
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
15
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
16
HeuristiquesMichel Bierlaire16 Approximation Pire des cas : Solution de lalgorithme : 8 nœuds (C=V) Solution optimale : 4 nœuds Solution optimale
17
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é.
18
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
19
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é.
20
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.
21
HeuristiquesMichel Bierlaire21 Heuristiques Notes : Facile à implémenter Potentiellement lent Trouve un minimum local
22
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,380 662 10 -23 joules/degré absolu
23
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)
24
HeuristiquesMichel Bierlaire24 Heuristiques Notes : Algorithme aléatoire Chaque exécution peut produire une solution différente Exemple : f(x)= 4 - 19.0167x + 36.39167x 2 - 25.2917x 3 + 8.041667x 4 - 1.19167x 5 + 0.066667x 6
25
(0.4052,0.7909) (5.5541,-1.1628) (3.1045,1.9741)
26
HeuristiquesMichel Bierlaire26 Heuristiques Paramètres utilisés : x c = 3 T 0 = 10000 (T) = T / tred k = 100 Définition du voisinage de x : {x-0.1,x+0.1} Résultats obtenus sur 100 exécutions
27
0.4 3.15.6
28
0.4 3.15.6
29
0.4 3.15.6
30
0.4 3.15.6
31
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.
32
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 = 10011 Pour chaque chromosome x, on peut calculer son « aptitude », son « niveau de qualité » f(x)
33
HeuristiquesMichel Bierlaire33 Heuristiques Algorithme génétique : Initialisation : définir une population initiale P(0) A chaque itération k : – Sélection – Evolution – Mutation
34
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é.
35
HeuristiquesMichel Bierlaire35 Heuristiques Sélection (exemple) maximiser f(x)=x 3 -60x 2 +900x+100 iChrom.IndividuAptitudepipi Cumulatif 1100111923990.206 200101532250.2770.484 311010265160.0440.528 4101012118010.1550.683 5011101436840.3171.000 11625
36
HeuristiquesMichel Bierlaire36 Heuristiques Sélection (exemple) r(0,1) Individus reproducteurs Chromosomes 0.627410101 0.140110011 0.141110011 0.934501110 0.444200101
37
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 »
38
HeuristiquesMichel Bierlaire38 Heuristiques Evolution (exemple) Parents : 4 et 1 (21)1010110111 (23) (19)1001110001 (17)
39
HeuristiquesMichel Bierlaire39 Heuristiques Mutation On change les symboles de chaque chromosome avec une probabilité p m (souvent très petite)
40
HeuristiquesMichel Bierlaire40 Heuristiques Mutation (exemple) p m =0.1
41
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
Présentations similaires
© 2024 SlidePlayer.fr Inc.
All rights reserved.