Analyse des récurrences diviser pour régner. Cours 2: Récursivité et programmation dynamique. Min Distance: diviser pour régner



Documents pareils
Plus courts chemins, programmation dynamique

Chapitre 5 : Flot maximal dans un graphe

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

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

ALGORITHMIQUE II NOTION DE COMPLEXITE. SMI AlgoII

introduction Chapitre 5 Récursivité Exemples mathématiques Fonction factorielle ø est un arbre (vide) Images récursives

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

Optimisation for Cloud Computing and Big Data

Cours de Master Recherche

Chapitre 7. Récurrences

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

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

Cours Fonctions de deux variables

Algorithmique et Programmation, IMA

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

Algorithmes de recherche

I. Polynômes de Tchebychev

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

Suites numériques 4. 1 Autres recettes pour calculer les limites

Mathématiques appliquées à l'économie et à la Gestion

4. Les structures de données statiques

Cours de Probabilités et de Statistique

Apprentissage par renforcement (1a/3)

Rappels sur les suites - Algorithme

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

Algorithmique I. Algorithmique I p.1/??

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.

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

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

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

Quelques algorithmes simples dont l analyse n est pas si simple

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

Objectifs du cours d aujourd hui. Informatique II : Cours d introduction à l informatique et à la programmation objet. Complexité d un problème (2)

Quelques Algorithmes simples

LE PROBLEME DU PLUS COURT CHEMIN

Jean-Philippe Préaux

MIS 102 Initiation à l Informatique

PROBLEMES D'ORDONNANCEMENT AVEC RESSOURCES

Fonctions de plusieurs variables

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

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

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

Limites finies en un point

Travaux dirigés d introduction aux Probabilités

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

Université Paris-Dauphine DUMI2E 1ère année, Applications

Architecture des Systèmes d Information Architecture des Systèmes d Information

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

Annexe 6. Notions d ordonnancement.

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

1. Aménagements technologiques 2. Installation de Microsoft SQL Server 2012

Resolution limit in community detection

Programmation linéaire

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

RÉALISATION DE GRAPHIQUES AVEC OPENOFFICE.ORG 2.3

Exercices - Fonctions de plusieurs variables : corrigé. Pour commencer

Distribution Uniforme Probabilité de Laplace Dénombrements Les Paris. Chapitre 2 Le calcul des probabilités

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

Notes du cours MTH1101 Calcul I Partie II: fonctions de plusieurs variables

Algorithmique et Programmation

Les arbres binaires de recherche

De même, le périmètre P d un cercle de rayon 1 vaut P = 2π (par définition de π). Mais, on peut démontrer (difficilement!) que

(51) Int Cl.: H04L 29/06 ( ) G06F 21/55 ( )

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

Fonctions de deux variables. Mai 2011

Équations non linéaires

L E Ç O N. Marches aléatoires. Niveau : Terminale S Prérequis : aucun

Bureau N301 (Nautile)

Découverte et analyse de dépendances dans des réseaux d entreprise

Commun à tous les candidats

1.1 Codage de source et test d hypothèse

C f tracée ci- contre est la représentation graphique d une

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

Analyse stochastique de la CRM à ordre partiel dans le cadre des essais cliniques de phase I

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

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

Cours d Analyse. Fonctions de plusieurs variables

Continuité d une fonction de plusieurs variables

Programmation Linéaire - Cours 1

Cryptographie et fonctions à sens unique

Probabilités. C. Charignon. I Cours 3

Parallélisme et Répartition

Plan. 5 Actualisation. 7 Investissement. 2 Calcul du taux d intérêt 3 Taux équivalent 4 Placement à versements fixes.

Chapitre 3. Quelques fonctions usuelles. 1 Fonctions logarithme et exponentielle. 1.1 La fonction logarithme

Image d un intervalle par une fonction continue

Correction TD algorithmique

Compression Compression par dictionnaires

3. Conditionnement P (B)

TEPZZ 5 5 _9A_T EP A1 (19) (11) EP A1 (12) DEMANDE DE BREVET EUROPEEN

OPTIMISATION À UNE VARIABLE

Séminaire TEST. 1 Présentation du sujet. October 18th, 2013

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

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

* très facile ** facile *** difficulté moyenne **** difficile ***** très difficile I : Incontournable T : pour travailler et mémoriser le cours

Taux d intérêts simples

PROBABILITÉS: COURS DE LICENCE DE MATHÉMATIQUES APPLIQUÉES LM 390

Exercices - Polynômes : corrigé. Opérations sur les polynômes

Texte Agrégation limitée par diffusion interne

Modélisation multi-agents - Agents réactifs

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

Transcription:

Analyse des récurrences diviser pour régner Théorème. Soit a > 0, b > 1, et d 0, et supposons que T(n = at( n/b + f(n avec f(n = O(n d log c n alors O(n d log c n si d > log b a T(n = O(n log c+1 n O(n log b a log c n si d = log b a si d < log b a. 1 n d log c n a ( n b d log c n b a 2 ( n b 2 d log c n b 2 1 f(n a f( n b a 2 f( n b 2 a k ( n b k d log c n b k profondeur k tq n b k 1, ie k log b n. a k f( n b k 3-1 1-1 3-2 Analyse des récurrences diviser pour régner Théorème. Soit a > 0, b > 1, et d 0, et supposons que T(n = at( n/b + f(n avec f(n = O(n d log c n alors O(n d log c n si d > log b a T(n = O(n log c+1 n O(n log b a log c n si d = log b a si d < log b a. 1 n d log c n si d > log b a, la suite ( a b d k ց a ( n b d log c n la série converge: coût cte f(n a 2 ( n b 2 d log c n si d = log b a, alors ( a b d k = 1 coût/niveau constant: log(n f(n a k ( n b k d log c n profondeur k tq n b 1, ie k log k b n. si d < log b a, la suite ( a b d k ր coût dominant en bas: a log b n f(cte 2-1 Min Distance: diviser pour régner E un ensemble de points Problème: Déterminer min d(x, y. x,y E Algo exhaustif: calculer O(n 2 distances. Diviser pour régner: C(n C(n = 2C(n/2 + O(n log n Diviser l espace de recherche en 2 parties.tri initial en O(nlog n Résoudre le sous-problème dans chaque partie. 2C(n/2 Recoller les solutions partielles. Tri vertical des pts de la bande, puis comparaison de chaque sommet aux k suivants (montrer que k = 3 suffit: O(n log n. n/2 pts = O(n log 2 n n/2 pts largeur 2m m = min(m 1, m 2

6-1 Plus longue sous-suite croissante: mémoisation une liste d entiers e 1,..., e n. Problème: trouver une sous-suite croissante de longueur maximale 5 2 6 3 6 9 7 Soit E l ensemble des couples (j, i tels que j < i et e j < e i. On cherche un plus long chemin dans le graphe orienté ([n], E Diviser pour régner? Retenir les calculs déjà fait (mémo! Les meilleures solutions pour e 1,..., e k et e k+1,..., e n ne se recollent pas forcément: 5 2 6 avec 3 6 9 7. Il faudrait connaitre dans les 2 sous-parties, les plus longues sousséquences terminant par k pour tout k: récursivement on traite un nombre exponentiel de problèmes différents Organiser les mémos... polynomial 4-1 Recherche de la médiane une liste d entiers L = e 1,..., e n. Problème: trouver k tel que {i e i > e k } = {i e i < e k }. Algorithme de base: trier en O(n log n Diviser pour régner: on étend le problème: select(i,l Soit e k un pivot, et 3 ensembles obtenus en n comparaisons : L = {i e i < e k }, L = = {i e i = e k } et L + = {i e i > e k } < select(j, L si j < L, select(j, L = e : k si L < j < L L =, select(j L L =, L + sinon Comment choisir le pivot? On voudrait L L /2, mais cela revient à choisir la médiane... Choisir le pivot au hasard! En moyenne C(n C(3n/4 + O(n = O(n. Une généralisation: chemins dans un DAG u v(e = 1 un DAG, une valuation des arêtes Problème. Déterminer un chemin de poids p(u, v = max 1+...+p(e k Exemple: plus longs ou plus courts chemins dans un DAG plus longue sous-séquence maximale 7-1 5-1

Une généralisation: chemins dans un DAG u v(e = 1 7 un DAG, une valuation des arêtes 2 3 6 9 Problème. Déterminer un chemin de poids 1 5 4 p(u, v = max p(e 1+...+p(e k Récurrence: un chemin arrivant en x finit par une arête (y, x donc si u x, alors p(u, x = max (p(u, y + p(y, x (y,x E Algorithme: Ordonner u, x 1, x 2,... les sommets accessibles de sorte que les arêtes soient croissantes (tri topologique, INF431. Calculer les p(u, x i dans l ordre des i ր, et pour chaque i marquer l arête qui donne le max. Remonter les arêtes marquées depuis v. Une généralisation: chemins dans un DAG u v(e = 1 7 un DAG, une valuation des arêtes 2 3 6 9 Problème. Déterminer un chemin de poids 1 5 4 p(u, v = max p(e 1+...+p(e k Récurrence: un chemin arrivant en x finit par une arête (y, x donc si u x, alors p(u, x = max (p(u, y + p(y, x (y,x E Algorithme: Ordonner u, x 1, x 2,... les sommets accessibles de sorte que les arêtes soient croissantes (tri topologique, INF431. 7-4 7-2 Une généralisation: chemins dans un DAG u v(e = 1 7 un DAG, une valuation des arêtes 2 3 6 9 Problème. Déterminer un chemin de poids 1 5 4 p(u, v = max p(e 1+...+p(e k Récurrence: un chemin arrivant en x finit par une arête (y, x donc si u x, alors p(u, x = max (p(u, y + p(y, x (y,x E Algorithme: Ordonner u, x 1, x 2,... les sommets accessibles de sorte que les arêtes soient croissantes (tri topologique, INF431. Calculer les p(u, x i dans l ordre des i ր, et pour chaque i marquer l arête qui donne le max. -1 7-3

Le problème du sac à dos S(P les poids p 1,..., p n de n objets et leurs valeurs v 1,..., v n Problème: trouverle sous-ensembledepoids P devaleurmaximale Hypothèse: on suppose les poids entiers et P pas trop grand On utilise la programmation dynamique: on peut considérer les sous-problèmes S(p pour p < P S(p = max i,p i p (v i + S(p p i Exemple: objets p i 2 4 7 v i 3 1 5 ok si on peut prendre le même objet plusieurs fois 5 1 3 DAG associé 0 p 7 p 4 p 2 p P La programmation dynamique (programmation=planification, dynamique=pas fixée d avance La programmation dynamique s applique quand : la solution optimale du problème de taille k contient en un certain sens des solutions optimales de sous-problèmes de taille inférieure. on peut calculer l optimum du problème de taille k à partir d une petite quantité d information sur les solutions des sous-problèmes. Elle consiste à résoudre toutes les instances duproblème par ordre croissant de taille retenirtoutesles instances pouvantencore servir à uneétape ultérieure. Les chemins dans un DAG: un exemple générique les sommets représentent les sous-problèmes les arêtes les dépendances entre problèmes et sous-problèmes 11-1 9-1 Le problème du sac à dos S(p les poids p 1,..., p n de n objets et leur valeur v 1,..., v n Chaque objet ne peut être pris qu une fois On considère S(k, p, le meilleur sac de poids p utilisant uniquement des objets parmi 1,..., k j S(k 1, p S(k, p = max Exemple: objets p i 2 4 7 v i 3 1 5 dans tous les cas v k + S(k 1, p p k si p k p p 0 1 2 3 4 5 6 7 S(0, p 0 0 0 0 0 0 0 0 S(1, p 0 0 3 3 3 3 3 3 S(2, p 0 0 3 3 3 3 4 4 S(3, p 0 0 3 3 3 3 4 5 +3 +1 +5 12-1 10-1

m i 6 4 1 2 1 0 2 0 3 0 On calculer des produits de matrices dont les tailles sont fixées. 4 1 2 A (B (C D = 240 1.2. 6 4 1 2 4.1. 6.4. C D (A (B C D= 152 4.1.2 6.4.2 6.2. B (A B (C D = A 6.4.1 1.2. 6.1. L ordre des produits joue sur la complexité: M((k, l, (l, m klm, On veut un algorithme qui trouve le meilleur parenthésage. Algorithme glouton: faire d abord le produit le moins coûteux. sur l exemple on obtient (A (B C D, non optimal... On essaye la programmation dynamique. 15-1 13-1 m i 6 4 1 2 1 0 24 2 0 c(1, 3 = min k ( 1: 0 + + 6.4.2 = 56 2: 24+0+6.1.2 = 36 les tailles m i m i+1 des matrices M i pour i = 1..., n Problème: trouver le meilleur parenthésage du produit M 1 M n. Remarque: Dans un parenthésage optimal, toute paire de parenthèses entoure un parenthésage optimal du facteur qu elle délimite. On considèreles sous-problèmes parenthésageoptimal desfacteurs c(i, j =coût min du calcul M i M j. Récurrence: c(i, j est donné par le meilleur découpage de la forme M i M j = (M i M k (M k+1 M j avec les 2 facteurs optimaux c(i, j = min avec c(i, i = 0, et c(i, i + 1 = m i m i+1 m i+2. 15-2 14-1

m i 6 4 1 2 Complexité: espace n 2, temps n 3. On trouve le parenthésage optimal à l aide d une table des meilleurs k. 1 0 24 36 2 0 4 1 1 2 2 2 2 2 3 3 4 c(1, 4 = min k ( 1: 0+4+6.4. = 240 2: 24+16+6.1. = 3: 36+0+6.2. = 132 (M 1 M 2 (M 3 M 4 Complexité: temps linéaire m i 6 4 1 2 1 0 24 36 2 0 c(2, 4 = min k ( 2: 0+16+4.1. = 4 3: +0+4.2. = 72 15-5 15-3 16-1 Distance d édition et alignement de séquences Deux mots u, v sur l alphabet A = {A, C, G, T } et une fonction de similarité des lettres σ : (A { } 2 R. Problème: trouver l alignement (U, V qui maximise P i σ(u i, V i. u = GATGCAT v = ATCGAT σ(x, x = 2 σ(x, = 1 σ(x, y = U G A T G C A T V A T C G A T σ(u, V = 1 + 2 + 2 1 + 2 1 + 2 + 2 Hypothèses: σ(x, y d autant plus grand que x et y se ressemblent. pour tout x, σ(x, x > 0 > σ(, x. Récurrence: pours i,j = meilleur alignement de u 1... u i avec v 1... v j. < S i 1,j 1 + σ(u i, v j si i > 0 et j > 0 S i,j = max S i 1,j + σ(u i, si i > 0 : S i,j 1 + σ(, v j si j > 0 15-4 m i 6 4 1 2 1 0 24 36 2 0 4 c(1, 4 = min k ( 1: 0+4+6.4. = 240 2: 24+16+6.1. = 3: 36+0+6.2. = 132

Distance d édition et alignement de séquences On veut calculer S n,n à partir de S 0,0 = 0 et de la récurrence < S i 1,j 1 + σ(u i, v i si i > 0 et j > 0 S i,j = max S i 1,j + σ(u i, si i > 0 : S i,j 1 + σ(, v i si j > 0 Pour calculer les S i,j avec i + j = k on a besoin que des S i,j avec i + j = k 1 ou k 2 on peut se contenter d un espace linéaire. Mais dans ce cas on ne veut pas garder la table des meilleurs choix. On peut trouver le meilleur alignement en espace linéaire par une approche diviser pour régner. Soit i 0 = u /2, on calcule le score a j = S i0,j pour tout j ainsi que b j = Si 0,j score du meilleur alignement de la 2ème moitié de u avec v j+1... v m pour tout j: espace linéaire. On choisit le k = argmax j (a j + b j on recommence dans les 2 moitiés séparément. 17-1 3 idées pour des problèmes avec une structure récursive: diviser pour régner, mémoïsation, programmation dynamique 1-1