Programmation dynamique

Documents pareils
Chapitre 5 : Flot maximal dans un graphe

Plus courts chemins, programmation dynamique

Limitations of the Playstation 3 for High Performance Cluster Computing

Cours de Master Recherche

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

Les Angles. I) Angles complémentaires, angles supplémentaires. 1) Angles complémentaires. 2 Angles supplémentaires. a) Définition.

Ordonnancement. N: nains de jardin. X: peinture extérieure. E: électricité T: toit. M: murs. F: fondations CHAPTER 1

Programmation par contraintes. Laurent Beaudou

Chapitre 7. Récurrences

Définitions. Numéro à préciser. (Durée : )

Transmission d informations sur le réseau électrique

Algorithmique et Programmation, IMA

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

Baccalauréat ES/L Métropole La Réunion 13 septembre 2013 Corrigé

Algorithmique et Programmation Fonctionnelle

Équations non linéaires

Baccalauréat ES/L Amérique du Sud 21 novembre 2013

Recherche dans un tableau

Alarme domestique- Présentation

STAGE IREM 0- Premiers pas en Python

TD 1 - Structures de Traits et Unification

Algorithmes de recherche

Objectifs. Clustering. Principe. Applications. Applications. Cartes de crédits. Remarques. Biologie, Génomique

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

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

Charte de partenariat Risque Routier Professionnel

Analyse dialectométrique des parlers berbères de Kabylie

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

CHAPITRE VI ALEAS. 6.1.Généralités.

Cours d introduction à l informatique. Partie 2 : Comment écrire un algorithme? Qu est-ce qu une variable? Expressions et instructions

Complexité. Licence Informatique - Semestre 2 - Algorithmique et Programmation

LES OUTILS D ALIMENTATION DU REFERENTIEL DE DB-MAIN

Optimisation multi-critère pour l allocation de ressources sur Clouds distribués avec prise en compte de l énergie

Représentation des Nombres

La gestion de données dans le cadre d une application de recherche d alignement de séquence : BLAST.

Gestion des Clés Publiques (PKI)

Introduction. Mathématiques Quantiques Discrètes

Baccalauréat L spécialité, Métropole et Réunion, 19 juin 2009 Corrigé.

Programmation linéaire et Optimisation. Didier Smets

Création intuitive des éléments d un paysage

Algorithmique - Cours et Travaux Dirigés Ecole Normale Supérieure de Lyon

Manuel d utilisation 26 juin Tâche à effectuer : écrire un algorithme 2

Programmation linéaire

Fonctionnalités d Acronis :

Théorie et codage de l information

Sauvegarde & Restauration

BACCALAURÉAT GÉNÉRAL SESSION 2012 OBLIGATOIRE MATHÉMATIQUES. Série S. Durée de l épreuve : 4 heures Coefficient : 7 ENSEIGNEMENT OBLIGATOIRE

Dimensionnement d une roue autonome pour une implantation sur un fauteuil roulant

ALGORITHMIQUE II NOTION DE COMPLEXITE. SMI AlgoII

Apprentissage par renforcement (1a/3)

Master d'informatique 1ère année. Réseaux et protocoles. Architecture : les bases

1 Complément sur la projection du nuage des individus

Opérations de base sur ImageJ

Le logiciel : un outil de gestion des données, une aide pour le choix des techniques et un outil de communication pour le personnel de terrain

DETERMINATION DE L INCERTITUDE DE MESURE POUR LES ANALYSES CHIMIQUES QUANTITATIVES

choisir H 1 quand H 0 est vraie - fausse alarme

Programmation linéaire

LE PROBLEME DU PLUS COURT CHEMIN

La fonction exponentielle

Compléments de documentation Scilab : affichage de texte et formatage de nombres

4.2 Unités d enseignement du M1

Modélisation et simulation des performances de nœuds de routage optique dans les réseaux dorsaux hybrides

Chapitre 3. Mesures stationnaires. et théorèmes de convergence

Le théorème de Perron-Frobenius, les chaines de Markov et un célèbre moteur de recherche

1 de 46. Algorithmique. Trouver et Trier. Florent Hivert. Mél : Florent.Hivert@lri.fr Page personnelle : hivert

TP 2 Réseaux. Adresses IP, routage et sous-réseaux

Monitoring d un Datacenter du concept à la réalisation

Baccalauréat S Antilles-Guyane 11 septembre 2014 Corrigé

FOCUS Evolution. Lisez-Moi. Version FE 7.0.t

Probabilités. Rappel : trois exemples. Exemple 2 : On dispose d un dé truqué. On sait que : p(1) = p(2) =1/6 ; p(3) = 1/3 p(4) = p(5) =1/12

Gestion de données incertaines et de leur provenance

Chap 4: Analyse syntaxique. Prof. M.D. RAHMANI Compilation SMI- S5 2013/14 1

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

Agrégation des portefeuilles de contrats d assurance vie

Jimmy Clairbois. Projets réalisés dans le cadre professionnel

6 - Le système de gestion de fichiers F. Boyer, UJF-Laboratoire Lig, Fabienne.Boyer@imag.fr

Dualité dans les espaces de Lebesgue et mesures de Radon finies

Le système de gestion de version Git et GitHub

Exercices types Algorithmique et simulation numérique Oral Mathématiques et algorithmique Banque PT

Big Data et Graphes : Quelques pistes de recherche

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

C L R C. Cahier des charges AMC. Harmonisation des attestations AMC. Comité de Liaison des Régimes Complémentaires

RECOPLUS LOGICIEL DE GESTION DES RECOMMANDES NOTICE D UTILISATION DE RECOPLUS RESEAU. N de série

Mesurer les performances (CPU) sous Linux

Lagrange, où λ 1 est pour la contrainte sur µ p ).

Thomson ST 2030 guide de configuration et d utilisation

Principes de mathématiques 12 SÉRIE DE PROBLÈMES. Septembre Student Assessment and Program Evaluation Branch

Intégration de la dimension sémantique dans les réseaux sociaux

Note Technique : Sauvegarder un NAS ND16000 ou ND26000 sur un disque dur externe USB ou esata

IFT3245. Simulation et modèles

PROBLEMES D'ORDONNANCEMENT AVEC RESSOURCES

Mini_guide_Isis_v6.doc le 10/02/2005 Page 1/15

Le Data Mining au service du Scoring ou notation statistique des emprunteurs!

EXPLOITATIONS PEDAGOGIQUES DU TABLEUR EN STG

Deuxième Licence en Informatique Data Warehousing et Data Mining La Classification - 1

Vision industrielle et télédétection - Détection d ellipses. Guillaume Martinez 17 décembre 2007

RapidMiner. Data Mining. 1 Introduction. 2 Prise en main. Master Maths Finances 2010/ Présentation. 1.2 Ressources

Correction du baccalauréat ES/L Métropole 20 juin 2014

Transcription:

Technique algorithmiques «brute-force» récursion retour en arrière (backtracking) diviser pour régner algorithmes gloutons (Dijkstra, ) programmation dynamique séparation et évaluation (branch and bound) algorithmes randomisés 901 902 Problème du rendu de monnaie Première solution Problème : étant donné un système de monnaie (dénomination de pièces), décomposer le montant de x de façon optimale (nombre minimum de pièces) Pour les systèmes de monnaie canoniques l algorithme glouton produit la solution optimale 29c=20+5+2+2 si l on avait la pièce de 14c, ca ne marcherait pas : 29c=14+14+1 trouver la décomposition optimale pour un système de monnaie arbitraire On suppose toujours qu il existe la pièce de 1c Pour décomposer K centimes : s il existe la pièce de K, utiliser-la sinon pour tout i<k calculer une décomposition optimale pour i calculer une décomposition optimale pour K-i choisir i qui minimise la somme Cet algorithme peut être vu comme diviser-pour-régner ou brute-force la solution est récursive l algorithme est exponentiel il prend beaucoup de temps et il est souvent infaisable pour illustrer la suite : rendre 63 avec les pièces (1,5,10,21,25) 903 904

Autre solution Réduire le calcul en choisissant la première pièce et résolvant le reste Pour 63c : pièce de 1c plus une solution pour 62c pièce de 5c plus une solution pour 58c pièce de 10c plus une solution pour 53c pièce de 21c plus une solution pour 42c pièce de 25c plus une solution pour 38c Choisir la meilleur solution parmi les cinq Au lieu de résoudre récursivement 62 problèmes on en résout 5 Mais ça reste coûteux (exponentiel en terme de nombre de sous-problèmes à résoudre) Idée : Résoudre le problème pour 1c, 2c, 3c, jusqu au montant désiré. Sauvegarder le résultat (nb de pièces) dans un tableau. Pour un nouveau montant N utiliser les réponses précédentes. Par ex. pour calculer une solution pour 13c : résoudre le problème pour 1c,2c,3c,,12c choisir la meilleure solution parmi les suivantes : pièce de 1c + solution optimale pour 12c pièce de 5c + solution optimale pour 8c pièce de 10c + solution optimale pour 3c 905 906 Comparaison avec diviser-pour-régner Le premier et le deuxième algorithmes sont récursifs arbre d appels récursifs nombre exponentiels de sous-problèmes à résoudre L algorithme de programmation dynamique prend un temps O(N K) où N est le montant et K le nombre de dénominations de pièces 907 Diviser-pour-régner divise le problème en sous-problèmes indépendants, résout-les et combine les solution en une solution du probème de départ Diviser-pour-régner est une approche top-down calcule des solutions de petits sous-problèmes pour les combiner en une solution d un problème plus grand. C est donc une approche bottom-up. Contrairement à Diviser-pour-régner, les sous-problèmes sont dépendants Principe d optimalité : solution optimale d un problème contient des solutions optimales de toutes les sous-problèmes Il reste de trouver une décomposition en sous-problèmes Les solutions des sous-problèmes sont mémorisées dans un tableau 908

Sous-séquence La plus longue sous-séquence commune à deux séquences mot (séquence) Y est une sous-séquence de X si Y peut être obtenu de X en effaçant certaines lettres m é d i t e r r a n é e m e r sous-séquence (subsequence) = sous-mot, sous-suite Problème : étant donné deux mots, trouver une sousséquence commune dont la longueur est maximale s o u s - s u i t e X s u b s e q u e n c e Y PLSC(X,Y) = 5 909 910 Distance Solution naive d(x,y)= X + Y -2 PLCS(X,Y) distance entre X et Y : nombre d insertions/suppressions de lettres nécessaire pour transformer X en Y d autres distances : distance d édition (Levenshtein) : substitutions/insertions/ suppressions distance de Hamming : substitutions pour chaque sous-séquence de X vérifier si elle est sousséquence de Y il y a 2 n sous-séquences de X (n longueur de X) algorithme exponentiel Applications : comparaison (alignement) de séquences biologiques (AND,protéines) comparaison de fichiers texte (commande diff sous Linux) 911 912

Principe d optimalité Solution récursive Notation : étant donné X=x 1 x 2 x m, X k =x 1 x 2 x k (préfixe de longueur k) Théorème : Soit X=x 1 x 2 x m (= X m ) et Y=y 1 y 2 y n (= Y n ). Soit Z=z 1 z 2 z k (= Z k ) une sous-séquence la plus longue de X et Y. si x m = y n, alors z k = x m = y n, et Z k-1 est une PLSC de X m-1 et Y n-1 si x m # y n,alors z k # x m implique que Z est une PLSC de X m-1 et Y n si x m # y n, alors z k # y n implique que Z est une PLSC de X m et Y n-1. 913 Le théorème implique une décomposition du problème en sous-problèmes : si x m = y n, calculer PLSC de X m-1 et Y n-1, puis ajouter x m. si x m # y n, calculer PLSC de X m-1 et Y n ainsi que PLSC de X m et Y n-1, puis choisir la plus longue des deux A noter la structure chevauchante des sous-problèmes : Les PLSC de X m-1 et Y n et de X m et Y n-1 démandent une solution de PLSC de X m-1 et Y n-1 Soit c[i,j] la longueur de la PLSC de X i et Y j. 0 si i=0, ou j=0 c[i,j]= c[i-1,j-1]+1 si i,j>0 et x i = y j, max{c[i-1,j], c[i,j-1]} si i,j>0 et x i # y j, 914 Algorithme de calcul de c Exemple de matrice c 0 si i=0, ou j=0 c[i,j]= c[i-1,j-1]+1 si i,j>0 et x i = y j, max{c[i-1,j], c[i,j-1]} si i,j>0 et x i # y j, Calculer le tableau c[0..m,0..n], où c[i,j] est défini ci-dessus. c[m,n] est alors la réponse (longueur de la PLSC). Pour chaque entrée c[i,j], garder la trace du calcul (une des trois flêches rouges) : c[ i -1, j -1 ] c[ i -1, j ] c[ i, j -1 ] c[ i, j ] 915 916

Exemple de matrice c Exemple de matrice c 917 918 Conclusions Algorithme prend un temps O(nm) où n et m sont les longueurs des séquences Il demande un espace O(nm) également. Il existe un algorithme qui utilise un espace O(n) (Hirschberg 1975) Le temps peut être amélioré à O(nm/log n) (Masek, Paterson 1983) (Crochemore&Landau&Ziv-Ukelson 2003) 919