1 / 28

Maîtrise IUP-NTIC Algorithmique des Graphes Année 4 – Semestre 1

Maîtrise IUP-NTIC Algorithmique des Graphes Année 4 – Semestre 1. Christophe PAOLI 2005 - 2006 Université de Corse christophe.paoli@univ-corse.fr. Résumé. Intérêt et Utilisation des graphes Définition et Terminologie Représentation des graphes Parcours des graphes Parcours en largeur

tucker
Télécharger la présentation

Maîtrise IUP-NTIC Algorithmique des Graphes Année 4 – Semestre 1

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Maîtrise IUP-NTIC Algorithmique des GraphesAnnée 4 – Semestre 1 Christophe PAOLI 2005 - 2006 Université de Corse christophe.paoli@univ-corse.fr

  2. Maitrise IUP NTIC | Algo. des Graphes | christophe.paoli@univ-corse.fr Résumé • Intérêt et Utilisation des graphes • Définition et Terminologie • Représentation des graphes • Parcours des graphes • Parcours en largeur • Parcours en profondeur • Description des algorithmes • Analyse des algorithmes • Tri topologique • Présentation et analyse de l’algorithme

  3. Maitrise IUP NTIC | Algo. des Graphes | christophe.paoli@univ-corse.fr Objectifs • Objectifs de ce cours • Arbres couvrant de poids minimum • Cas d’utilisation • Deux algorithmes gloutons • Algorithme de Krushal • Algorithme de Prim • Exécution des algorithmes sur un exemple

  4. Maitrise IUP NTIC | Algo. des Graphes | christophe.paoli@univ-corse.fr Plan de cours • Intérêt et Utilisation des graphes • Définition et Terminologie • Représentation des graphes • Représentation matricielle • Liste d’adjacence • Parcours des graphes • Parcours en largeur • Parcours en profondeur • Tri topologique • Arbres couvrant de poids minimum • Problème du plus court chemin • NP-Complétude

  5. Les graphes Arbres couvrants de poids minimum

  6. Maitrise IUP NTIC | Algo. des Graphes | christophe.paoli@univ-corse.fr Arbres couvrants de poids minimum • Utilisation • Conception de circuits électroniques • Relier des broches de composants équivalents • Interconnexion d’un ensemble de n broches • Pour n broches, n-1 branchements • Problème • Trouver l’arrangement qui utilise le branchement minimale • Modélisation du problème à l’aide d’un graphe non orienté connexe • G(S,A), S : ensemble des broches, A: ensemble des interconnexions possibles • Pour chaque arête (u,v)  A, on a un poids w (u,v) : coût pour connecter u et v • Trouver un sous-ensemble acyclique T  A qui connecte tous les sommets et dont le poids total soit minimum

  7. Maitrise IUP NTIC | Algo. des Graphes | christophe.paoli@univ-corse.fr Arbres couvrants de poids minimum • T est acyclique et connecte tous les sommets •  il forme un arbre, que l’on appelle arbre couvrant : il couvre le graphe G • Problème de la détermination de l’arbre T • Problème de l’arbre couvrant minimal • Examen de 2 algorithmes gloutons : une option doit être choisie à chaque étape • algorithme de Krushal, O(A log S) • algorithme de Prim, O(A log S)

  8. Maitrise IUP NTIC | Algo. des Graphes | christophe.paoli@univ-corse.fr Arbres couvrants de poids minimum • Exemple d’arbre couvrant minimum pour un graphe connexe • poids sur les arêtes • poids total de l’arbre (en gris) = 37 • arbre non unique : on peut remplacer (b,c) par (a,h)

  9. Maitrise IUP NTIC | Algo. des Graphes | christophe.paoli@univ-corse.fr Arbres couvrants de poids minimum • Algorithmes de Krushal et de Prim suivent une stratégie gloutonne • l’arbre pousse arête par arête • détermination à chaque étape d’une arête (u,v) sûre • E  {(u,v)} est =ment un ACM • Clé de voûte de l’algorithme : ligne 3

  10. Maitrise IUP NTIC | Algo. des Graphes | christophe.paoli@univ-corse.fr Arbres couvrants de poids minimum • Définitions • la coupe (P,S-P) d’un graphe non orienté G=(S,A) est une partition de S • l’arrête (u,v)  A traverse la coupe (P,S-P) si une des extrémités est un sommet de P et l’autre un sommet de S-P • une coupe respecte un ensemble E d’arêtes si aucune arête de E ne traverse la coupe • une arête est minimale pour la traversée de la coupe si son poids est minimale parmi toutes les arêtes traversant la coupe

  11. Maitrise IUP NTIC | Algo. des Graphes | christophe.paoli@univ-corse.fr Arbres couvrants de poids minimum • Sommet de P en noir, de S-P en blanc • arête de traverse relie sommets blanc à noir • 1 seule arête minimale : (d,c) • sous ensemble E en gris • la coupe (S,V-S) respecte E

  12. Maitrise IUP NTIC | Algo. des Graphes | christophe.paoli@univ-corse.fr Arbres couvrants de poids minimum • Théorème • Soit G(S,A) un graphe non orienté connexe, avec une fonction de pondération w à valeurs réelles définie sur A. • Soit E un sous-ensemble de A inclus dans un arbre couvrant minimum de G, • soit (P,S-P) une coupe de G qui respecte E, et soit (u,v) une arête minimale traversant (P,S-P). • Alors (u,v) est une arête sûre pour E.

  13. Maitrise IUP NTIC | Algo. des Graphes | christophe.paoli@univ-corse.fr Arbres couvrants de poids minimum • Corollaire • Soit G = (S,A) un graphe non orienté connexe, avec une fonction de pondération w à valeurs réelles définie sur A. • Soit E un sous-ensemble de A inclus dans un arbre couvrant minimum de G, • soit C, une composante connexe (arbre) de la forêt GE = (S,E). • Si (u,v) est une arête minimale reliant C à une autre composante connexe, • alors (u,v) est une arête sûre pour E.

  14. Maitrise IUP NTIC | Algo. des Graphes | christophe.paoli@univ-corse.fr Arbres couvrants de poids minimum • Algorithmes Krushal et Prim • Élaborés à partir de l’algorithme générique • Utilisant chacun une règle spécifique pour déterminer l’arête sûre • Krushal : l’ensemble E est une forêt, et l’arête sûre ajoutée à E est toujours une arête de moindre poids du graphe qui relie 2 composantes distinctes • Prim : l’ensemble E est un arbre, et l’arête sûre ajoutée à E est toujours une arête de moindre poids qui relie l’arbre à un sommet extérieur

  15. Maitrise IUP NTIC | Algo. des Graphes | christophe.paoli@univ-corse.fr Arbres couvrants de poids minimum • Algorithme de Kruskal • inspiré de l’algorithme générique • trouve une arête sûre à ajouter à la forêt, en cherchant une arête (u,v) de poids minimal parmi toutes les arêtes reliant 2 arbres qcq de la forêt • soient C1 et C2, les 2 arbres reliés par (u,v) • comme (u,v) est une arête minimal reliant les 2 arbres, le corollaire implique que (u,v) est sûre pour C1 • Algorithme de Kruskal = Algorithme glouton • il ajoute à la forêt une arête de poids minimal

  16. Maitrise IUP NTIC | Algo. des Graphes | christophe.paoli@univ-corse.fr Arbres couvrants de poids minimum • Algorithme de Kruskal • utilisation d’une structure de données d’ensembles disjoints • chaque ensemble contient les sommets d’un arbre de la forêt courante • Trouver-Ensemble (u) retourne un élément représentatif • Union(u) combine les arbres

  17. Maitrise IUP NTIC | Algo. des Graphes | christophe.paoli@univ-corse.fr Arbres couvrants de poids minimum • Lignes 1-3 • initialisation de l’ensemble E • création de |S| arbres • Ligne 4 • tri des arêtes selon leur poids • Lignes 5-8 • test pour chaque arête (u,v) si les extrémités  arbre • si Oui (u,v) ne peut être ajoutée à l’arbre  cycle • sinon l’arête est ajoutée à E et les sommets sont fusionnés

  18. Maitrise IUP NTIC | Algo. des Graphes | christophe.paoli@univ-corse.fr Arbres couvrants de poids minimum

  19. Maitrise IUP NTIC | Algo. des Graphes | christophe.paoli@univ-corse.fr Arbres couvrants de poids minimum

  20. Maitrise IUP NTIC | Algo. des Graphes | christophe.paoli@univ-corse.fr Arbres couvrants de poids minimum • Algorithme de Kruskal • Analyse de l’algorithme • le temps d’exécution dépend de l’implémentation de la structure d’ensembles disjoints • forêts d’ensembles disjoints • O(A log S)

  21. Maitrise IUP NTIC | Algo. des Graphes | christophe.paoli@univ-corse.fr Arbres couvrants de poids minimum • Algorithme de Prim • inspiré de l’algorithme générique • ressemble à l’algorithme de Disjkstra • Recherche du plus court chemin • les arêtes de E constituent un arbre • l’arbre démarre d’un sommet racine r puis croît jusqu’à couvrir tous les sommets S • une arête minimale est ajoutée à l’arbre E • Algorithme de Prim = Algorithme glouton • l’arbre est augmenté d’une arête qui accroît le moins possible le poids total de l’arbre

  22. Maitrise IUP NTIC | Algo. des Graphes | christophe.paoli@univ-corse.fr Arbres couvrants de poids minimum • Implémentation de l’algorithme de Prim • Faciliter la sélection de la nouvelle arête à ajouter à l’arbre constitué des arêtes de E • Tous les sommets qui  à l’arbre sont dans une file de priorités min F basé sur le champ clé • pour chaque sommet v, clé[v] est le poids minimal d’une arête reliant v à un sommet de l’arbre • convention • clé[v] =  si un telle arête n’existe pas • [v] désigne le parent de v dans l’arbre

  23. Maitrise IUP NTIC | Algo. des Graphes | christophe.paoli@univ-corse.fr Arbres couvrants de poids minimum • Algorithme de Prim • l’ensemble E est conservé implicitement dans à travers [v] • quand l’algorithme se termine minFest vide

  24. Maitrise IUP NTIC | Algo. des Graphes | christophe.paoli@univ-corse.fr Arbres couvrants de poids minimum • Lignes 1-5 • initialisation des clés • initialisation des parents • initialisation de la clé du sommet à 0  1ère traitée • initialisation de F  contient tous les sommets • ligne 7 • identification du futur sommet • Lignes 8-11 • mise à jour des champs clé et 

  25. Maitrise IUP NTIC | Algo. des Graphes | christophe.paoli@univ-corse.fr Arbres couvrants de poids minimum

  26. Maitrise IUP NTIC | Algo. des Graphes | christophe.paoli@univ-corse.fr Arbres couvrants de poids minimum

  27. Maitrise IUP NTIC | Algo. des Graphes | christophe.paoli@univ-corse.fr Arbres couvrants de poids minimum • Algorithme de Prim • Analyse de l’algorithme • le temps d’exécution dépend de l’implémentation de la file min F • tas binaire • O(A log S)

  28. Maitrise IUP NTIC | Algo. des Graphes | christophe.paoli@univ-corse.fr Pour terminer … • Objectifs de ce cours • Arbres couvrant de poids minimum • Cas d’utilisation • Deux algorithmes gloutons • Algorithme de Krushal • Algorithme de Prim • Exécution des algorithmes sur un exemple • La prochaine fois • Problème du plus court chemin • NP-Complétude

More Related