Cours de recherche opérationnelle I

Documents pareils
Resolution limit in community detection

Nouvelles propositions pour la résolution exacte du sac à dos multi-objectif unidimensionnel en variables binaires

Exemples de problèmes et d applications. INF6953 Exemples de problèmes 1

Plus courts chemins, programmation dynamique

Programmation Linéaire - Cours 1

La programmation linéaire : une introduction. Qu est-ce qu un programme linéaire? Terminologie. Écriture mathématique

Souad EL Bernoussi. Groupe d Analyse Numérique et Optimisation Rabat http ://

Cours de Master Recherche

Annexe 6. Notions d ordonnancement.

Optimisation Discrète

Pourquoi l apprentissage?

Quelques algorithmes simples dont l analyse n est pas si simple

MABioVis. Bio-informatique et la

Cours des Méthodes de Résolution Exactes Heuristiques et Métaheuristiques

Communications collectives et ordonnancement en régime permanent pour plates-formes hétérogènes

Grammaires d unification

Exercices du Cours de la programmation linéaire donné par le Dr. Ali DERBALA

Algorithmes de recherche

Circuits RL et RC. Chapitre Inductance

Info0804. Cours 6. Optimisation combinatoire : Applications et compléments

Programmation linéaire

Intelligence Artificielle Planification

UEO11 COURS/TD 1. nombres entiers et réels codés en mémoire centrale. Caractères alphabétiques et caractères spéciaux.

Architecture des ordinateurs TD1 - Portes logiques et premiers circuits

Capacité d un canal Second Théorème de Shannon. Théorie de l information 1/34

Cours de recherche opérationnelle I

TD 1 - Structures de Traits et Unification

Chapitre 6. Fonction réelle d une variable réelle

Quantification Scalaire et Prédictive

Algorithmes d'apprentissage

PROJET ALGORITHMIQUE ET PROGRAMMATION II

Jean-Philippe Préaux

Fonctions de deux variables. Mai 2011

ELEC2753 Electrotechnique examen du 11/06/2012

Concurrence imparfaite

Chp. 4. Minimisation d une fonction d une variable

Comparer l intérêt simple et l intérêt composé

Optimisation non linéaire Irène Charon, Olivier Hudry École nationale supérieure des télécommunications

La conversion de données : Convertisseur Analogique Numérique (CAN) Convertisseur Numérique Analogique (CNA)

Qu est-ce qu une probabilité?

Continuité d une fonction de plusieurs variables

de calibration Master 2: Calibration de modèles: présentation et simulation d

MIS 102 Initiation à l Informatique

INF 232: Langages et Automates. Travaux Dirigés. Université Joseph Fourier, Université Grenoble 1 Licence Sciences et Technologies

Cours de Recherche Opérationnelle IUT d Orsay. Nicolas M. THIÉRY. address: Nicolas.Thiery@u-psud.fr URL:

Optimisation Combinatoire (Méthodes approchées) II. Recherche Locale simple (Les bases)

PROBLEMES D'ORDONNANCEMENT AVEC RESSOURCES

Conception de réseaux de télécommunications : optimisation et expérimentations

Théorie et Codage de l Information (IF01) exercices Paul Honeine Université de technologie de Troyes France

Problèmes de dénombrement.

Programmation linéaire

TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile

Big Data et Graphes : Quelques pistes de recherche

Travaux dirigés n 1. Programmation linéaire

Algorithmique et programmation : les bases (VBA) Corrigé

Reconstruction de bâtiments en 3D à partir de nuages de points LIDAR

Mathématique et Automatique : de la boucle ouverte à la boucle fermée. Maïtine bergounioux Laboratoire MAPMO - UMR 6628 Université d'orléans

Chapitre 7. Récurrences

I Stabilité, Commandabilité et Observabilité Introduction Un exemple emprunté à la robotique Le plan Problème...

Introduction à MATLAB R

Licence Sciences et Technologies Examen janvier 2010

Parallélisme et Répartition

CONCEPTION Support de cours n 3 DE BASES DE DONNEES

Débuter avec EXPRESS. Alain Plantec. 1 Schema 2

Expression des contraintes. OCL : Object C o n t r a i n t L a n g u a g e

Nouvelles propositions pour la résolution exacte du problème de sac à dos bi-objectif unidimensionnel en variables binaires

I- Définitions des signaux.

Compter à Babylone. L écriture des nombres

Analyse des trajectoires acceptables en approche de virage assistance aux conducteurs

Big Data et Graphes : Quelques pistes de recherche

Analyse empirique et modélisation de la dynamique de la topologie de l Internet

LE PROBLEME DU PLUS COURT CHEMIN

Présentation du Master Ingénierie Informatique et du Master Science Informatique , Année 2 Université Paris-Est Marne-la-Vallée

Optimisation for Cloud Computing and Big Data

Gestion réactive des opérations de maintien et d actualisation réglementaire et technologique des systèmes complexes.

Une introduction aux codes correcteurs quantiques

Chapitre 2. Eléments pour comprendre un énoncé

UML et les Bases de Données

Condition inf-sup pour l Elément Fini de Taylor-Hood È ¾ -iso-è ½

ALGORITHME GENETIQUE ET MODELE DE SIMULATION POUR L'ORDONNANCEMENT D'UN ATELIER DISCONTINU DE CHIMIE

Fonctions de plusieurs variables, intégrales multiples, et intégrales dépendant d un paramètre

Texte Agrégation limitée par diffusion interne

L utilisation d un réseau de neurones pour optimiser la gestion d un firewall

Cours 1 : Qu est-ce que la programmation?

Feuille TD n 1 Exercices d algorithmique éléments de correction

ITIL Gestion de la capacité

IBM Tivoli Monitoring, version 6.1

Cours de Génie Logiciel

Organigramme / Algorigramme Dossier élève 1 SI

TP N 57. Déploiement et renouvellement d une constellation de satellites

Groupe symétrique. Chapitre II. 1 Définitions et généralités

Université de Bangui. Modélisons en UML

chapitre 4 Nombres de Catalan

Sujet 4: Programmation stochastique propriétés de fonction de recours

Modélisation multi-agents - Agents réactifs

Chapitre 5 : Flot maximal dans un graphe

Cycle de vie du logiciel. Unified Modeling Language UML. UML: définition. Développement Logiciel. Salima Hassas. Unified Modeling Language

basée sur le cours de Bertrand Legal, maître de conférences à l ENSEIRB Olivier Augereau Formation UML

INFO-F-425 Modèles mathématiques et algorithmes pour l ordonnancement. Bernard Fortz

Modèles à Événements Discrets. Réseaux de Petri Stochastiques

Transcription:

Cours de recherche opérationnelle I Nadia Brauner Nadia.Brauner@imag.fr Programmation dynamique

Programmation dynamique

Plan 1 Jeux introductifs 2 Principe de sous-optimalité 3 Programmation dynamique 4 Le sac-à-dos en détails 5 Problèmes typiques 3

Plan 1 Jeux introductifs 2 Principe de sous-optimalité 3 Programmation dynamique 4 Le sac-à-dos en détails 5 Problèmes typiques 4

Jeux introductifs Pyramide de nombres Trouver un chemin de haut en bas qui maximise la somme des nombres traversés 3 7 4 2 4 6 8 5 9 3 6 7 4 2 8 3 7 4 2 4 6 8 5 9 3 6 7 4 2 8 3 7 4 2 4 6 8 5 9 3 6 7 4 2 8 5

Jeux introductifs Pyramide de nombres 3 3 7 10 4 7 2 12 4 14 6 13 8 20 5 19 9 23 3 16 6 26 7 27 4 27 2 25 8 26 6

Jeux introductifs Partager un sac de pièces Partager les n pièces suivantes en deux ensembles égaux {5 9 3 8 2 5} 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 1 V V 2 V V V V 3 V V V V V V V 4 V V V V V V V V V Construire le tableau : m(i, j) = V si je peux avoir j avec les i premières pièces m(i, 0) = V pour i = 0 à n m(i, j) = m(i 1, j) ou m(i 1, j pièce(i)) i = 1 à n et j = pièce(i) à 16. 7

Jeux introductifs Programmation dynamique ou l art de la récursion Terme introduit par Bellman en 1950 Programmation, à la mode Dynamique, positif, modéliser des processus qui évoluent Méthode générale (pas dédiée à un problème) Problèmes ayant des propriétés structurelles 8

Plan 1 Jeux introductifs 2 Principe de sous-optimalité 3 Programmation dynamique 4 Le sac-à-dos en détails 5 Problèmes typiques 9

Principe de sous-optimalité On veut résoudre un problème P sur une instance I Structure spécifique de P Les morceaux d une solution optimale sont optimaux P P1 P2 P 3 Le problème P se décompose en sous-problèmes P 1,..., P k L optimum sur P s obtient à partir des optimaux des sous-problèmes 10

Principe de sous-optimalité Principe de sous-optimalité L optimum sur une instance I peut se construire à partir de solutions optimales sur des instances plus simples I 1,..., I k OPT (I ) = f (OPT (I 1 ),..., OPT (I k )) On a une formulation récursive de OPT (I ) Il suffit de calculer l optimum pour OPT (I 1 ),..., OPT (I k ) puis d appliquer f Chaque OPT (I j ) s exprime à son tour en fonction d instances plus simples Jusqu à obtenir une instance de base I directement calculable 11

Principe de sous-optimalité Calcul récursif de l optimum I 1 I 2 I I 3 I 12

Plan 1 Jeux introductifs 2 Principe de sous-optimalité 3 Programmation dynamique 4 Le sac-à-dos en détails 5 Problèmes typiques 13

Programmation dynamique Trouver le plus court chemin dans un DAG est facile DAG En DP DAG : Directed Acyclic Graph les noeuds peuvent être mis sur une ligne tous les arcs vont de gauche à droite le DAG est implicite noeuds : sous-problèmes edges : dépendances entre les sous problèmes si on voit les sommets de gauche à droite, on est sur que les prédécesseurs ont été vus : l information nécessaire est disponible Tout DP a une structure de DAG sous-jacente 14

Programmation dynamique On regarde des problèmes de plus en plus grands augmente valeur des nombres ou nombre d information nécessaires pour le calculer Paradigme : identifier une collection de sous problème et les résoudre un par un (les plus petits d abord) utiliser les infos sur les plus petits pour résoudre les plus grands. 15

Programmation dynamique Problème classiques en informatique (Algorithms par Dasgupta, Papadimitriou and Vazirani, Chapitre 6) plus longue sous-sequence croissante alignement de sequences et génétique multiplication de matrices plus courts chemins Stables dans les arbres 16

Programmation dynamique Les étapes Trouver les sous problèmes Trouver la relation (écrire la formule de récurrence) Trouver un ordre qui respecte la récurrence Définir les cas de base 17

Programmation dynamique Quelques principes En général ne pas utiliser la récursion risque de calculer trop de fois le même sous-problème on dérécursive si pas trop de sous problèmes distincts Sinon, memoïsation lorsque la récursivité est intéressante, si on ne doit résoudre qu une partie des sous problèmes Dans un état, stocker l information dont on a besoin pour aller jusqu à l optimum Propriétés de dominances pour diminuer le nombre d états 18

Programmation dynamique Complexité Complexité temps : souvent basée sur le nombre total d états (noeuds du DAG) Complexité mémoire : à réfléchir. Ne pas toujours garder tous les états... Voir page 178 du livre Algorithms de Dasgupta et al. 19

Plan 1 Jeux introductifs 2 Principe de sous-optimalité 3 Programmation dynamique 4 Le sac-à-dos en détails 5 Problèmes typiques 20

Problèmes combinatoires Un problème d optimisation combinatoire typique INSTANCE : Un ensemble d objets 1,..., n, avec des poids c i SOLUTIONS REALISABLES : Un ensemble F de parties de {1,..., n} CRITERE maximiser c(s) = i S c i L ensemble F est en général défini par des contraintes. Son cardinal peut être très grand (ici potentiellement 2 n ) 21

Sac-à-dos Un randonneur veut remplir son sac de capacité 4kg avec les objets les plus utiles objets utilité poids (g) carte 10 200 gourde 7 1500 2ème gourde 3 1500 pull 6 1200 Kway 2 500 tomme 4 800 fruits secs 5 700 22

Sac-à-dos Modélisation INSTANCE : SOLUTIONS REALISABLES : CRITERE : Problème d optimisation classique Utiliser au mieux une capacité Choix d un portefeuille d investissement Apparaît dans des problèmes plus complexes 23

Sac-à-dos Décomposition en sous-problèmes F Instance I à résoudre Partition des solutions selon l objet n F = {S F n / S} ne contenant pas n F = {S F n S} contenant n On a OPT (I ) = max{c(s ), c(s )} 24

Sac-à-dos Décomposition en sous-problèmes F F F Deux sous-problèmes à résoudre Sur F : problème P restreint aux n 1 premiers objets Sur F : également restreint aux n 1 premiers objets mais structure des solutions réalisables? 25

Sac-à-dos Décomposition en sous-problèmes F F F Décrire F comme {S F n S} est inefficace énumération explicite de toutes les solutions F doit pouvoir être décrit comme un sous-problème de P 26

Sac-à-dos Sac à dos Instance: n objets de poids w i et d utilité u i, un sac de taille W. Solution: sous-ensemble S d objets tel que w(s) W. Critere: l utilité totale u(s) des objets Quelle est la valeur de OPT (I ) par rapport à l objet n? Comment écrire le principe de sous-optimalité? 27

Sac-à-dos Paramétrisation Principe de sous-optimalité : les problèmes qui apparaissent dans la décomposition correspondent au problème initial sur des instances plus simples Instance I pour un sous-problème I diffère de I par certains paramètres (entiers) p 1,..., p l Pour le Sac à dos : les objets considérés et la taille du sac On décrit I par la valeur de ses paramètres (x 1,..., x l ) Définition On appelle état le vecteur de paramètres (x 1,..., x l ) décrivant une sous-instance 28

Sac-à-dos Graphe d Etat Vecteur de paramètres (x 1,..., x l ) : état Dépendance entre les instances (calcul de f ) parametre 2 3 I 2 1 0 0 1 2 3 4 5 6 parametre 1 29

Sac-à-dos Sac à dos Instance: n objets de poids w i et d utilité u i, un sac de taille W. Solution: sous-ensemble S d objets tel que w(s) W. Critere: l utilité totale u(s) des objets Dessinez le graphe d état pour 4 objets de poids 1 et un sac de capacité 3. Que remarque-t-on? 30

Sac-à-dos Un état peut être calculé un très grand nombre de fois Idée : on dérécursive On mémorise les états au lieu de les recalculer Il suffit de parcourir les états dans un ordre topologique inverse du graphe d état Evaluer les états de base OPT [0,..., 0]. Parcourir les états jusqu à X Pour chaque état X, dépendant de X 1,..., X k déjà évalués, mémoriser OPT [X ] = f (OPT [X 1 ],..., OPT [X k )) Retourner OPT [ X ] 31

Sac à dos Sac à dos de taille 7, avec 4 objets valeurs des objets 2 4 5 6 poids des objets 2 3 4 5 Calculer le tableau OPT 32

Sac-à-dos Efficacité Quel est le temps de résolution? Dépend du nombre d états du temps t pour évaluer la fonction f en chaque état. Le temps de résolution est alors t(x 1,..., x l ) (x 1,...,x l ) Etats Souvent on a une borne uniforme sur t(x 1,..., x l ) T Le temps de résolution est majoré par T #Etats 33

Sac à dos Temps de résolution du sac à dos Quel est le temps pour évaluer un état (i, w)? Quel est le nombre d états? 34

Sac-à-dos Calcul d une solution optimale La programmation dynamique fournit OPT (I ) Comment obtenir une solution S? Conserver des pointeurs dans le tableau : chemin dans le graphe d état Méthode de Backtracking Les 2 méthodes consistent à remonter le calcul de OPT (I ) Donner une solution optimale pour le sac à dos à partir du tableau OPT de la programmation dynamique 35

Plan 1 Jeux introductifs 2 Principe de sous-optimalité 3 Programmation dynamique 4 Le sac-à-dos en détails 5 Problèmes typiques 36

Problèmes typiques Plus courts chemins Plus courts chemins Chemin le plus fiable Chemin entre toutes les paires (Floyd Warshall) Voyageur de commerce Attention, Il y a des conditions sur les longueurs (positives) ou sur le graphe (pas de circuit absorbant) pour que ça marche... 37

Problèmes typiques Problème de stockage temps découpé en périodes demande de chaque période capacité de production limitée coût de production fixes et unitaires capacité de stockage limité coût unitaire de stockage Déterminer pour chaque période la production afin de minimiser les coûts 38

Problèmes typiques Répartition de ressources w unités de ressources disponibles T activités auxquelles la ressource peut être allouée Si l activité t est réalisée au niveau x t 0 alors g t (x t ) unités de la ressource sont utilisées, un bénéfice r t (x t ) est obtenu. Objectif : determiner la répartition des ressources qui maximise le benefice total Si g t et r t linéaires PL Si valeurs possibles de x t discrètes DP 39

Problèmes typiques Equipment replacement problems Combien de temps garder une machine avant de la remplacer par une nouvelle 40

Bilan de la programmation dynamique Paradigme pouvant être très efficace Pas de condition sur la forme de la fonction objectif......mais la propriété de sous-optimalité doit être vérifiée Gourmand en mémoire Devient inopérant si l espace des états est grand Nécessité de trouver des dominances pour le réduire 41