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

Documents pareils
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

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

Algorithmes de recherche

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

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

Plus courts chemins, programmation dynamique

ALGORITHMIQUE II NOTION DE COMPLEXITE. SMI AlgoII

Chapitre 5 : Flot maximal dans un graphe

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

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

Programmation linéaire

Cours de Master Recherche

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

Cours d Analyse. Fonctions de plusieurs variables

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

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

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

1 Recherche en table par balayage

OPTIMISATION À UNE VARIABLE

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

Structures algébriques

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

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

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

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

chapitre 4 Nombres de Catalan

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

Les arbres binaires de recherche

Corrigé du baccalauréat S Asie 21 juin 2010

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

Programmation Par Contraintes

Quelques Algorithmes simples

Coefficients binomiaux

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

Transmission d informations sur le réseau électrique

Les droites (d 1 ) et (d 2 ) sont sécantes en A Le point A est le point d intersection des 2 droites

CORRECTION EXERCICES ALGORITHME 1

Algèbre binaire et Circuits logiques ( )

Compression Compression par dictionnaires

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

Indépendance Probabilité conditionnelle. Chapitre 3 Événements indépendants et Probabilités conditionnelles

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

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

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

Probabilités. C. Charignon. I Cours 3

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

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

ARBRES BINAIRES DE RECHERCHE

Algorithmes récursifs

Calculateur quantique: factorisation des entiers

I- Définitions des signaux.

PROBLEMES D'ORDONNANCEMENT AVEC RESSOURCES

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

Analyse Combinatoire

Continuité et dérivabilité d une fonction

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

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

Théorie et codage de l information

GEA II Introduction aux probabilités Poly. de révision. Lionel Darondeau

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

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

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

Optimisation for Cloud Computing and Big Data

Une introduction aux codes correcteurs quantiques

Algorithmique I. Algorithmique I p.1/??

Algorithmes d'apprentissage

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

Chapitre 7. Récurrences

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.

MIS 102 Initiation à l Informatique

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

Représentation d un entier en base b

Jean-Philippe Préaux

Quantification Scalaire et Prédictive

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

Cours Premier semestre

Programmation Linéaire - Cours 1

Problèmes de Mathématiques Filtres et ultrafiltres

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

BACCALAUREAT GENERAL MATHÉMATIQUES

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

Développements limités. Notion de développement limité

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

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

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

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

Programmation linéaire

DE L ALGORITHME AU PROGRAMME INTRO AU LANGAGE C 51

Informatique Générale

Enoncé et corrigé du brevet des collèges dans les académies d Aix- Marseille, Montpellier, Nice Corse et Toulouse en Énoncé.

Licence Sciences et Technologies Examen janvier 2010

Recherche dans un tableau

Corrigé du baccalauréat S Pondichéry 12 avril 2007

Théorèmes de Point Fixe et Applications 1

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

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

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

Baccalauréat ES Antilles Guyane 12 septembre 2014 Corrigé

Transcription:

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 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 2

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

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)

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-!) --------------------------------------------------------------- 5

problème de petite taille énumération possible problème de grande taille énumération impossible INTERDIT D'ÉNUMÉRER DANS LE COMBINATOIRE optimisation discrète optimisation continue 6

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" 7

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

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]) [A,B,D,C,E,A] valeur 3 (opt=2 [ACEBDA]) 9

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

6. 3 ARBRE COUVRANT MINIMAL 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 2

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 3

void 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 qui ne forme pas de cycle avec les précédentes, w ; k = k+ ; V = V U {w} ; A = graphe (X,V) ; fin

-------------------------------------------------------------- EXEMPLE liste triée: - ah de a di 2 ei b g 3 2 3 2 hi fg h 3 ab 2 bh 2 x x x - x x x - x - - - x - - - STOP ci 2 c cd 2 bc 3 2 i ch 3 f d ef 3 3 gh 3 e ag ge n = 9 stop après 8 sélections P(A) = (+++++2+2+3) = 2 -------------------------------------------------------------- 5

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

CArbre kruskal ( ) 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 qui ne forme pas de cycle avec les précédentes, w ; k = k+ ; V = V U {w} ; Retourner A = graphe (X,V) ; fin 7

6.3.3 PREUVE DE L OPTIMALITE G=(X,U) le graphe A=(X,V) l'arbre couvrant obtenu p(u) : poids de l'arête u 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 8

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 9

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) 20

6. CHOIX D ACTIVITES 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 2

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

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 23

2 2 3 5 6 7 8 8 8 8 8 9 0 0 2 3 5 6 7 8 9 0 2 3 tem p s 8 8

6..3 OPTIMALITE 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 - cardb' = cardb B' optimal sinon B':= B il existe une solution optimale commençant par un choix glouton 25

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* 26

6. 5 CODAGE DE HUFFMAN 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!) -------------------------------------------------------------- 27

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 28

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 a c e 29

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 30

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 f(c) h A (c) c 3

---------------------------------------------------------------- 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*) ---------------------------------------------------------------- 32

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 33

Algorithme HUFFMAN (in C: liste de caractères; in f: C N; out A: arbre de Huffman): avec void construire(z,x,y) qui crée 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; fin pour i = à n- faire fait ; x = L.min; L.supprimer_min; y := L.min; L.supprimer_min; construire (z,x,y); f(z) = f(x) + f(y); L.insérer (z); complexité: O(nlogn) 3

6. 5 MATROIDES 6.5. DÉFINITION complément facultatif du cours 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 35

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. 36

---------------------------------------------------------------- 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 ---------------------------------------------------------------- 37

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) 38

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 39

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)) 0