Programmation dynamique



Documents pareils
Programmation linéaire

Plus courts chemins, programmation dynamique

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

Chapitre 5 : Flot maximal dans un graphe

LE PROBLEME DU PLUS COURT CHEMIN

Introduction à la théorie des graphes. Solutions des exercices


Exo7. Calculs de déterminants. Fiche corrigée par Arnaud Bodin. Exercice 1 Calculer les déterminants des matrices suivantes : Exercice 2.

Cours 02 : Problème général de la programmation linéaire

Calcul matriciel. Définition 1 Une matrice de format (m,n) est un tableau rectangulaire de mn éléments, rangés en m lignes et n colonnes.

Programmation linéaire

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

Master IAD Module PS. Reconnaissance de la parole (suite) Alignement temporel et Programmation dynamique. Gaël RICHARD Février 2008

Résolution de systèmes linéaires par des méthodes directes

Cours d analyse numérique SMI-S4

PROBLEMES D'ORDONNANCEMENT AVEC RESSOURCES

Eléments de Théorie des Graphes et Programmation Linéaire

Baccalauréat ES Polynésie (spécialité) 10 septembre 2014 Corrigé

Chapitre 2. Matrices

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

Algorithmique et Programmation

Optimisation Discrète

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

Résolution d équations non linéaires

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

1 radian. De même, la longueur d un arc de cercle de rayon R et dont l angle au centre a pour mesure α radians est α R. R AB =R.

Pour l épreuve d algèbre, les calculatrices sont interdites.

Chapitre 7. Récurrences

Nouveau Barème W.B.F. de points de victoire 4 à 48 donnes

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

Programmation linéaire et Optimisation. Didier Smets

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

Calcul Formel et Numérique, Partie I

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

Introduction. I Étude rapide du réseau - Apprentissage. II Application à la reconnaissance des notes.

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

Probabilités sur un univers fini

Modèles et Méthodes de Réservation

Chp. 4. Minimisation d une fonction d une variable

Exo7. Matrice d une application linéaire. Corrections d Arnaud Bodin.

Algorithmique, graphes et programmation dynamique Notes de Cours Rapport de Travaux Pratiques. Laurent Canet

Resolution limit in community detection

FaceBook aime les Maths!

Correction du Baccalauréat S Amérique du Nord mai 2007

Partie 1. La structure des réseaux sociaux

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

INTRODUCTION À L ANALYSE FACTORIELLE DES CORRESPONDANCES

Introduction à MATLAB R

chapitre 4 Nombres de Catalan

MATLAB : COMMANDES DE BASE. Note : lorsqu applicable, l équivalent en langage C est indiqué entre les délimiteurs /* */.

Exercice : la frontière des portefeuilles optimaux sans actif certain

Comment démontrer des formules sans effort? exposé de maîtrise

Rappels sur les suites - Algorithme

La NP-complétude. Johanne Cohen. PRISM/CNRS, Versailles, France.

Journées Télécom-UPS «Le numérique pour tous» David A. Madore. 29 mai 2015

Simulation de variables aléatoires

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

La classification automatique de données quantitatives

Les algorithmes de base du graphisme

Triangle de Pascal dans Z/pZ avec p premier

Conception d'un réseau de transport d'électricité

Équations non linéaires

6. Hachage. Accès aux données d'une table avec un temps constant Utilisation d'une fonction pour le calcul d'adresses

Cours d Informatique

L exclusion mutuelle distribuée

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

CCP PSI Mathématiques 1 : un corrigé

Les structures de données. Rajae El Ouazzani

Durée de L épreuve : 2 heures. Barème : Exercice n 4 : 1 ) 1 point 2 ) 2 points 3 ) 1 point

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

Annexe 6. Notions d ordonnancement.

Initiation à l algorithmique

Eteindre. les. lumières MATH EN JEAN Mme BACHOC. Elèves de seconde, première et terminale scientifiques :

Sujet proposé par Yves M. LEROY. Cet examen se compose d un exercice et de deux problèmes. Ces trois parties sont indépendantes.

LA PHYSIQUE DES MATERIAUX. Chapitre 1 LES RESEAUX DIRECT ET RECIPROQUE

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

Tests du χ 2. on accepte H 0 bonne décision erreur de seconde espèce on rejette H 0 erreur de première espèce bonne décision

Analyse en Composantes Principales

Théorie des Graphes Cours 3: Forêts et Arbres II / Modélisation

Algorithmes d'apprentissage

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

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

Filtrage stochastique non linéaire par la théorie de représentation des martingales

Big Data et Graphes : Quelques pistes de recherche

Calcul Formel et Numérique, Partie I

Décision Markovienne appliquée à un jeu de stop ou encore : Pickomino (Heckmeck Am Bratwurmeck)

Exercices - Nombres complexes : corrigé. Formes algébriques et trigonométriques, module et argument

1S Modèles de rédaction Enoncés

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

Analyse fonctionnelle Théorie des représentations du groupe quantique compact libre O(n) Teodor Banica Résumé - On trouve, pour chaque n 2, la classe

Catalogue des connaissances de base en mathématiques dispensées dans les gymnases, lycées et collèges romands.

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

Probabilités sur un univers fini

Algorithmes récursifs

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

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

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

Correction du baccalauréat S Liban juin 2007

Quelques algorithmes simples dont l analyse n est pas si simple

Bien lire l énoncé 2 fois avant de continuer - Méthodes et/ou Explications Réponses. Antécédents d un nombre par une fonction

Transcription:

A. Principe général B. Application Triangle de Pascal Série mondiale Multiplication chaînée de matrices Les plus courts chemins

Principe général Souvent, pour résoudre un problème de taille n, on s'aperçoit qu'il est composé de plusieurs sous problèmes identiques. Si on résout chaque sous exemplaire séparément sans tenir compte de cette duplication on obtient un algorithme très inefficace. Par contre, si on résout chaque sous exemplaire différent une seule fois(en sauvegardant les résultats) on obtient un algorithme performant. Idée de base : Éviter de calculer deux fois la même chose, normalement en utilisant une table de résultats déjà calculés, remplie au fur et à mesure qu'on résout les sous problèmes.

Principe général Remarques C'est une méthode ascendante :On commence d'habitude par les sous problèmes les plus petits et on remonte vers les sous problèmes de plus en plus difficile. La programmation dynamique est souvent employée pour résoudre des problèmes d'optimisation satisfaisant le principe d'optimalité : " Dans une séquence optimale (de décisions ou de choix), chaque sous-séquence doit aussi être optimale".

Application 1 : Calcul de C p n Formules C np =C p-1 n-1 +C p n-1 C 00 = C n0 = C nn = 1 On peut donner un algorithme récursif.

Application 1 : Calcul de C n p On peut aussi faire le calcul par programmation dynamique. (triangle de Pascal) 0 1 2 3 4 0! 1 1! 1 1 2! 1 2 1 3! 1 3 3 1 4! 1 4 6 4 1

Application 2 : Série mondiale A et B disputent une série de matchs( au maximum 2n-1). L'équipe gagnante est celle qui reporte n victoires. La probabilité que A gagne est une partie = q1 La probabilité que B gagne est une partie = q2

Application 2 : Série mondiale On définit P(i, j) comme la probabilité que A remporte la série, sachant qu'elle doit encore gagner i victoires contre B j victoires. On a ainsi : P(0, j) = 1 ( A a déjà gagné la série et j > 0) P(i, 0) = 0 ( A a déjà perdu la série et i > 0) P(0, 0) indéfini P(i, j) = q1*p(i-1, j) + q2*p(i, j-1) i, j > 0

Application 2 : Série mondiale Algorithme récursif : P(i, j) : Si i = 0 et j > 0 : P := 1 Sinon Si i > 0 et j = 0 : P := 1 Sinon Si i > 0 et j > 0 : P:=q1*P(i-1,j) + q2*p(i, j-1)

Application 2 : Série mondiale T(k) = temps d'exécution de P(i, j) avec k = i+j Équation de récurrence : T(k) = 2T(k-1) + b Solution : T(k) = C 1 2 k + C 2 ==> O(2 k ) = O(2 i+j ) P(n, n) = O(4 n )

Application 2 : Série mondiale Programmation dynamique P(i, j) Pour S = 1, i+j P[0, S] := 1 P[S, 0] := 0 Pour k=1, S-1 P[k, S-k] := q1p[k-1, S-k] + q2p[k, S-k-1] Finpour Finpour C'est O(n 2 )

Application 2 : Série mondiale Utilisation d'une table: 0 1 2 3 4 0 1 1 1 1 1 0 1/2 3/4 7/8 15/16 2 0 1/4 1/2 11/16 13/16 3 0 1/8 5/16 1/2 21/32 4 0 1/16 3/16 11/32 1/2

Application 3 : Les plus courts chemins (Algorithme de Floyd) Le problème consiste à trouver les plus courts chemins entre chaque couple de sommets d un graphe. C est un problème d optimisation et il vérifie le principe d optimalité : Si le plus court chemin entre A et B passe par un sommet C, alors les sous-chemins A-C et C-B sont aussi optimaux.

Application 3 : Les plus courts chemins (Algorithme de Floyd) Soit L la matrice associée à un graphe G, on a donc L[i,j] représentant le coût de l arc entre i et j. Si i=j on prendra L[i,j] = 0 et s il n y a pas d arc entre les sommet i et j alors L[i,j] =.

Application 3 : Les plus courts chemins (Algorithme de Floyd) Le principe de l algorithme et de construire une matrice D (initialisée à L) et qui contiendra après chaque itération k, les plus courts chemins entre chaque paire de sommets (i,j), ne passant que par les sommets appartenant à l ensemble {1,2,3,..k}. Après l itération n, D contiendra les plus courts chemins entre chaque paire de sommets. A l étape k on calcule les nouvelle valeurs de D pour chaque paire de sommet de la façon suivante : D k [i,j] = min ( D k-1 [i,j], D k-1 [i,k] + D k-1 [k,j] )

Application 3 : Les plus courts chemins (Algorithme de Floyd) Exemple :

Application 3 : Les plus courts chemins (Algorithme de Floyd) La matrice associée est L ( = D 0 ) : 0 1 3 0 1 1 3 0

Application 3 : Les plus courts chemins (Algorithme de Floyd) - Étape 1 on vérifie si le sommet 1 peu améliorer les chemins existant, on aura la matrice D 1 : 0 1 3 0 1 1 2 0

Application 3 : Les plus courts chemins (Algorithme de Floyd) - Étape 2, construction de D 2 : 0 1 2 0 1 1 2 0

Application 3 : Les plus courts chemins (Algorithme de Floyd) - Étape 3, construction de D 3 : 0 1 2 2 0 1 1 2 0

Application 3 : Les plus courts chemins(algorithme de Floyd) PROCEDURE Floyd ( L, var D ) D := L; Pour k := 1, n Pour i := 1, n Pour j := 1, n D[i,j] := min ( D[i,j], D[i,k] + D[k,j] ) Fpour Fpour Fpour Cet algorithme est en o(n 3 ).

Application 4 : Multiplication chaînée de matrices On veut calculer le produit de n matrices données : M = M 1 * M 2 *... M n Comme le produit matriciel est associatif, il y a plusieurs façon de calculer ce produit : M = (...(M 1 * M 2 )* M 3 )... M n ) M = (M 1 * M 2 )*(M 3 * M 4 ) *... M n )... M = (M 1 * (M 2 *... (M n-1 *M n )...)

Application 4 : Multiplication chaînée de matrices Un produit de deux matrice A(p,q) et B(q,r) nécessite p*q*r multiplications de scalaires et donne comme résultat une matrice C(p,r) Il en découle que le nombre d opérations élémentaires nécessaire pour calculer M, dépend de la façon dont on a inséré les parenthèses.

Application 4 : Multiplication chaînée de matrices Exemples : Soit à calculer M = A * B * C * D, A(13,5) B(5,89) C(89,3) D(3,34) Il existe 5 façons de calculer M et pour chacune d elles on donnera le nombre de multiplications nécessaire : ((A B) C) D nécessite 10 582 mult. (A B) (C D) nécessite 54 201 mult. (A (B C)) D nécessite 2 856 mult. A ((B C) D) nécessite 4 055 mult. A (B (C D)) nécessite 26 418 mult.

Application 4 : Multiplication chaînée de matrices Le problème est de trouver la meilleur façon d insérer les parenthèses pour calculer M, c-a-d celle qui minimise le nombre de multiplications élémentaires. Une méthode directe pour résoudre ce problème est de générer tous les cas possibles et choisir le meilleur d entre eux.

Application 4 : Multiplication chaînée de matrices Pour un produit de n matrices il existe T(n) manière d insérer des parenthèses, n 1 2 3 4 10 15 T(n) 1 1 2 5 4862 2 674 440 Nombres de Catalan. n 1 i = 1 T( n ) = T( i ) T( n i ) avec T(1) = 1 on a T(10) = 4 862 et T(15) = 2 674 440, en fait ce nombre croît en Ω(4 n /n 2 ) Donc trouver la meilleure façon d insérer des parenthèses dans un

Application 4 : Multiplication chaînée de matrices On remarque que ce problème vérifie le principe d optimalité : Si la meilleure façon d insérer des parenthèses consiste à couper entre la matrice M i et M i+1, c est à dire M = Prod (M 1,M 2... M i ) * Prod (M i+1,...m n ); alors les deux sous produits doivent être découpés de façon optimale. En procédant par programmation dynamique, on construit une table m(i,j) (1 i j n) où chaque élément m[i,j] donnera le plus petit nombre de multiplications nécessaire pour calculer le produit M i * M i+1 *... M j

Application 4 : Multiplication chaînée de matrices Les dimensions des matrices M j sont données dans un vecteur d(i) (0 i n) tel que M k est de dimension (d[k-1], d[k] ). La construction de la matrice se fera diag / diag. La diagonale s contient les m[i,j] tel que j-i=s. Pour s = 0 m[i,i] = 0 Pour s = 1 m[i,i+1] = d[i-1] * d[i] * d[i+1] pour 1<s<n m[i,i+s] = min (m[i,k]+m[k+1,i+s] + d[i-1]*d[k]*d[i+s]) k i+s-1 i = 1, 2, n-s

Application 4 : Multiplication chaînée de matrices Exemple d = ( 13, 5, 89, 3, 34 ) pour s = 1 m 12 = 5785 m 23 =1335 m 34 =9078 pour s = 2 m 13 =min(m 11 +m 23 +13*5*3, m 12 +m 33 +13*89*3 ) =min(1350, 9256) = 1530 m 24 =min(m 22 +m 34 +5*89*34, m 23 +m 44 +5*3*34) =min(24208, 1845) = 1845

Application 4 : Multiplication chaînée de matrices pour s = 3 m 14 = min ( m 11 + m 24 + 13 * 5 * 34, m 12 + m 34 + 13 * 89 * 34, m 13 + m 44 + 13 * 3 * 34 ) = min (4055, 54201, 2856) = 2856

Application 4 : Multiplication chaînée de matrices J = 1 2 3 4 i = 1 0 5785 1530 2856 2 0 1335 1845 3 0 9078 4 0 S=3 S=2 S=1 S=0