NFP136- Cours 6 ALGORITHMES GLOUTONS

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

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

Algorithmes de recherche

ALGORITHMIQUE II NOTION DE COMPLEXITE. SMI AlgoII

Programmation linéaire

Chapitre 5 : Flot maximal dans un graphe

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

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

Plus courts chemins, programmation dynamique

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

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

Travaux pratiques. Compression en codage de Huffman Organisation d un projet de programmation

Calcul de développements de Puiseux et application au calcul du groupe de monodromie d'une courbe algébrique plane

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

Projet d informatique M1BI : Compression et décompression de texte. 1 Généralités sur la compression/décompression de texte

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

Méthodes de quadrature. Polytech Paris-UPMC. - p. 1/48

Cours de Master Recherche

Transmission d informations sur le réseau électrique

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

OPTIMISATION À UNE VARIABLE

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

Compression Compression par dictionnaires

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

Programmation Par Contraintes

Algorithmes d'apprentissage

Codage d information. Codage d information : -Définition-

chapitre 4 Nombres de Catalan

3. SPÉCIFICATIONS DU LOGICIEL. de l'expression des besoins à la conception. Spécifications fonctionnelles Analyse fonctionnelle et méthodes

Rapport de stage de première année de Master Optimisation de cache d instructions

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

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

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

PROBLEMES D'ORDONNANCEMENT AVEC RESSOURCES

Quelques Algorithmes simples

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

1 Recherche en table par balayage

Structures algébriques

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

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

Les arbres binaires de recherche

Théorie et codage de l information

1 Définition et premières propriétés des congruences

Quantification Scalaire et Prédictive

Jeux de caracte res et encodage (par Michel Michaud 2014)

Chapitre 7. Récurrences

PRECISION - REJET DE PERTURBATIONS T.D. G.E.I.I.

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

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

Programmation linéaire

I- Définitions des signaux.

1.1 Codage de source et test d hypothèse

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

Probabilités. I Petits rappels sur le vocabulaire des ensembles 2 I.1 Définitions... 2 I.2 Propriétés... 2

Cours d Analyse. Fonctions de plusieurs variables

ARBRES BINAIRES DE RECHERCHE

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

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

Théorèmes de Point Fixe et Applications 1

MIS 102 Initiation à l Informatique

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

CH.6 Propriétés des langages non contextuels

Université de La Rochelle. Réseaux TD n 6

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

Baccalauréat ES Antilles Guyane 12 septembre 2014 Corrigé

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

Probabilités. C. Charignon. I Cours 3

Annexe 6. Notions d ordonnancement.

Une introduction aux codes correcteurs quantiques

Travaux dirigés d introduction aux Probabilités

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

Calculateur quantique: factorisation des entiers

Algorithmique et Programmation

Cours de Probabilités et de Statistique

Problèmes de Mathématiques Filtres et ultrafiltres

Rappels sur les suites - Algorithme

Corrigé Exercice 1 : BRIDE HYDRAULIQUE AVEC HYPOTHÈSE PROBLÈME PLAN.

Rappel sur les bases de données

t 100. = 8 ; le pourcentage de réduction est : 8 % 1 t Le pourcentage d'évolution (appelé aussi taux d'évolution) est le nombre :

BACCALAUREAT GENERAL MATHÉMATIQUES

Cours Optimisation Partie Optimisation Combinatoire. Année scolaire Gérard Verfaillie ONERA/DCSD/CD, Toulouse

Continuité et dérivabilité d une fonction

1 Introduction au codage

Gestion des Clés Publiques (PKI)

Algèbre binaire et Circuits logiques ( )

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

Recherche dans un tableau

Pourquoi l apprentissage?

Cours de mathématiques

Grandes lignes ASTRÉE. Logiciels critiques. Outils de certification classiques. Inspection manuelle. Definition. Test

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

Documentation Technique du programme HYDRONDE_LN

Parallélisme et Répartition

Image d un intervalle par une fonction continue

SDLS08 - Modes propres d'une plaque carrée calculés sur base réduite

I. Introduction. 1. Objectifs. 2. Les options. a. Présentation du problème.

3 Approximation de solutions d équations

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

CHAPITRE IV. L axiome du choix

Transcription:

NFP36- Cours 6 ALGORITHMES GLOUTONS PLAN Problèmes d'optimisation Algorithmes gloutons Arbre couvrant minimal Choix d'activités Codage de Huffman Matroïdes

6. PROBLEMES D OPTIMISATION 2

un problème plusieurs solutions une solution une valeur problème d'optimisation: recherche d'une solution de valeur optimale (min ou max) algorithme de résolution: reconnaissance d'une solution évaluation d'une solution sélection d'une des meilleures solutions 3

problèmes d'optimisation faciles difficiles --------------------------------------------------------------- EXEMPLES E) chemin min A 3 B 5 3 C E 2 G problème facile (v=9;abecg) 2 D 6 F

E2) sac-à-dos (en nombres entiers) problème "assez" difficile aliments A B C poids unitaire 6 3 hg valeur nutritive unitaire 0 6 poids max des aliments: 7 2 solutions optimales:.a + 2.B +.C v = 0 (p=7).b v = 0 (p=6) 5

E3) voyageur de commerce problème difficile ici, 2 solutions optimales A 2 2 B E 2 3 D 5 3 C ACBDEA et ACEBDA v = 2 nombre de solutions: 2 (n-!) --------------------------------------------------------------- 6

problème de petite taille énumération possible problème de grande taille énumération impossible optimisation discrète optimisation continue 7

problèmes faciles algorithme de complexité polynomiale (cf cours 2) problèmes "difficiles" - tous les algorithmes connus sont de complexité exponentielle - problèmes dits NP-complets ou NPdifficiles cours VARI:problèmes "faciles" 8

6.2 ALGORITHMES GLOUTONS 9

choix glouton = choix localement optimal optimum local optimum global fonction concave (ou convexe) optimum local = x x 2 x 3 optimum global (et local) continu entier x et x 3 : optima locaux x 2 optimum global 0

algorithme glouton: pas toujours optimal EXEMPLE un algo glouton pour le PVC: - trier les arêtes (coûts croissants) - sélectionner dans l'ordre les arêtes non "parasites" A 2 B 2 D 2 3 E 5 3 C ([A,E],[B,D],[A,B], [A,D],[B,E],[A,C], [E,D],[C,E],[C,D]) (opt=2 [A,B,D,C,E,A] valeur 3 [ACEBDA])

algorithme glouton: à chaque étape choix le plus intéressant à cet instant facile à concevoir difficile de vérifier l'optimalité efficace (faible complexité) 2

6. 3 ARBRE COUVRANT MINIMAL 3

6.3. LE PROBLÈME relier des objets avec une longueur totale minimale des liens graphe valué associé: - sommets = objets - arête = lien possible - poids d'une arête = longueur du lien

-------------------------------------------------------------- EXEMPLE A 5 --------------------------------------------------------------- solution optimale: sans cycle et connexe ARBRE par tous les sommets COUVRANT de longueur totale min MINIMAL B D E 5 5 F 5 G 5

6.3.2 ALGORITHME DE KRUSKAL rappel: arbre m = n- arêtes entrée: G = (X,U,P) n sommets, m arêtes sortie: A arbre couvrant min de G 6

procedure kruskal (in G: graphe; out A: arbre): entier k=0; {arêtes} V= ; début trier les arêtes de G par ordre de poids croissant ; tant que k < n- faire fait ; parcourir la liste triée ; sélectionner la première arête, w, qui ne forme pas de cycle avec les précédentes ; k = k+ ; V = V U {w} ; A = graphe (X,V) ; fin 7

-------------------------------------------------------------- EXEMPLE liste triée: - a 2 b g 3 c 2 3 2 h 3 2 i f d 3 e STOP n = 9 stop après 8 sélections P(A) = (+++++2+2+3) = 2 -------------------------------------------------------------- 8

implémentation peu facile (sera faite en exercices dirigés) complexité O(m logm) (TRI) 9

6.3.3 PREUVE DE L OPTIMALITE G=(X,U) le graphe A=(X,V) l'arbre couvrant obtenu par Kruskal p(u) : poids de l'arête u 20

propriété soit w U -V, w=[x,y] et c w : chaîne de x à y dans A; alors, p(w) max u cw p(u) x w cw y Car s il existait une arête a de c w de poids plus fort que p(w), w aurait été sélectionnée avant a 2

A': arbre optimal de poids p(a') montrons que p(a) = p(a') soit u A'-A x x x a x b u x x x x x C C 2 x x x a x b x x v x x x u V'-V v c u A'=(X,V') A=(X,V) relie C et C 2 dans A' relie C et C 2 dans A 22

propriété p(u) p(v) et A' minimal p(v) p(u) p(u) = p(v) soit A"=A'+{v}-{u}: p(a")=p(a') A"optimal et v A" soit u' A"-A,... (idem... A''')... fin: A'' '' = A et p(a'' '') = p(a') = p(a) Fin preuve 23

6. CHOIX D ACTIVITES 2

6.. LE PROBLÈME A = {a,a 2,..,a n } activités a i [d i,f i [ d i début, f i fin de a i a i et a j compatibles si d i f j ou d j f i problème: choisir le plus grand nombre d'activités compatibles 25

6..2 ALGORITHME CHOIX_ACTIVITÉ choix glouton : maximiser le temps restant après l'activité choisie Algorithme choix_activité (in A: liste initiale d'activités; out A*: liste d'activités choisies): début trier et numéroter les a i dans l'ordre croissant des f i ; f f 2 f n A* = {a } ; j = ; pour i = à n faire j représente la dernière activité sélectionnée si d i f j alors A* = A*U{a i } ; j = i ; finsi; fait ; fin 26

complexité: O(nlogn)+O(n) tri boucle O(nlogn) -------------------------------------------------------------- EXEMPLE d i date de début de l'activité a i f i date de fin de l'activité a i activités triées selon les f i i 2 3 5 6 7 8 9 0 di 3 0 5 3 5 6 8 8 2 2 fi 5 6 7 8 9 0 2 3 27

28 2 3 5 6 7 8 8 8 8 8 9 0 0 2 3 5 6 7 8 9 0 2 3 temps 8 8

Soit B solution optimale B A* card B card A* B ordonné selon les f i : a k,a k2,..,a kn avec f k f k2... f kn si a k a, soit B'= B-{a k }+{a } - f f k f k2... f kn B' admissible - card B' = card B B' optimal sinon B'= B 6..3 OPTIMALITE Conclusion : il existe une solution optimale commençant par un choix glouton 29

problème restant = problème initial avec A' = {a i A t.q. d i f } choix glouton suivant de B': a 2... fin: B'' '' = A* et card B'' '' = card B = card A* Fin preuve 30

6. 5 CODAGE DE HUFFMAN 3

compression de données gain de place de 20 à 90% C = {caractères} c i C chaîne binaire unique -------------------------------------------------------------- EXEMPLE C = alphabet d-0 f-0 m-00... dfd = 000 MAIS mf = 000 (= dfd!) -------------------------------------------------------------- 32

codage préfixe : aucun mot de code n'est préfixe d'un autre mot décodage facile -------------------------------------------------------------- EXEMPLE caractère a b c d e f code 000 00 00 0 00 0 -------------------------------------------------------------- face 00000000 face concevoir le codage et décoder efficacement 33

arbre associé A (binaire et complet) 0 0 0 0 0 0 a 000 b c d e f 00 00 0 00 0 décodage: 00000000 f c e a 3

arbre associé A (binaire et complet) 0 0 0 0 0 0 a 000 b c d e f 00 00 0 00 0 décodage: 00000000 f ace autre possibilité 0 A 0 a 0 0 c b d e 0 face = 0000000 f 35

choix d'un arbre tableau des fréquences d'apparition des caractères dans le fichier (c f(c)) h A (c): hauteur de la branche c = nombre de bits pour c nombre de bits requis pour encoder un fichier selon l'arbre A B(A) =! c"c f(c) h A (c) 36

---------------------------------------------------------------- EXEMPLE a b c d e f fréq. 5 3 2 6 9 5 code A' 000 00 00 0 00 0 code A'' 0000 000 00 0 0 code H 0 0 00 0 00 B(A') = 300 (5+3+2+6+9+5)*3 B(A")= 328 (5*+3*+2*3+6*2+9*2+5*2) B(H) = 22 (5*+3*3+2*3+6*3+9*+5*) ---------------------------------------------------------------- 37

code de Huffman caractères fréquents mots courts nombre de feuilles = card(c) feuille c C "val"= f(c) "val" d'un = somme des nœud interne "val" des 2 fils 38

Algorithme HUFFMAN (in C: liste triée de caractères; in f: fréquence des caractères; out A: arbre de Huffman): Utilise la procédure construire(a,z,x,y) quiajoute à A un nœud z ayant pour fils gauche x et pour fils droit y liste_ordonnée L ; entier n; début n = card(c) ; L = C; tri de L selon les f(c) croissants; pour i = à n- faire x := L.min(); L.supprimer_min(); y := L.min(); L.supprimer_min(); f(z) = f(x) + f(y); construire (z,x,y); L.insérer (z); fin fait ; complexité: O(nlogn) 39

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Un arbre d'exemple avec la phrase "this is an example of a huffman tree" wikipédia 0

6. 5 MATROIDES complément facultatif du cours

6.5. DÉFINITION E = {e,e 2,..,e n } I P(E) matroïde: couple M = (E,I) t.q. F I et F' F F' I S E, [F I et F' I et F, F' sous-ensembles maximaux de S] card F = card F I famille de sous-ensembles «indépendants» I et i, {e i } I 2

Contre-exemple: E= ensemble des sommets d un graphe I = ensemble des ensembles stables a b S=Ensemble Stable=sous-ensemble de sommets du graphe tel que deux sommets de S ne sont pas voisins. Tout ensemble inclus dans S est donc stable. S est maximal si l ajout d un sommet quelconque le rend non stable. c d e {a,c,e}, {a,d} et {b} Sont des stables maximaux qui n ont pas le même cardinal. 3

---------------------------------------------------------------- EXEMPLE graphe G=(X G,E G ) M G matroïde graphique M G = (E G,I G ) I G = {F E G t.q. G'=(X G,F) sans cycle} sous-ensembles maximaux = arbres couvrants même cardinal: n- arêtes ----------------------------------------------------------------

6.5.2 MATROIDES PONDERES M = (E,I,w) e E w e = poids de e F E w(f) =! w e e"f = poids de F problème: trouver F I t.q. w(f) minimal (ou maximal) 5

algorithme glouton_min (in M = (E,I,w): matroïde; out F: élément de I): début F = ; trier et numéroter les éléments de E par ordre de poids croissant; pour i = à n faire si FU{e i } I alors F = FU{e i } ; fin fait ; finsi 6

théorème M matroïde pondéré : l'algorithme glouton donne toujours l'optimum complexité si test en O(f(n)) O(nlogn) + O(nf(n)) tri boucle pour (dépend de f(n)) 7