Arbres et graphes.

Slides:



Advertisements
Présentations similaires
7. Probème de flot à coût minimum.
Advertisements

Calcul du flot maximum Algorithme de Ford Fulkerson Maxime Chambreuil | Nicolas Fournel | Vianney Gremmel | Leïla Traoré | Marouane Zehni UV RO.
Introduction à la Théorie des graphes
Comparaison de deux algorithmes d’approximation
Théorie des graphes.
Dans cette partie Graphes Eulériens.
Algorithmes et structures de données avancés
Graphes et Applications Thème de léquipe « Combinatoire et Algorithmique » LaBRI – janvier 2008.
Introduction à la Théorie des graphes
Modélisation par le concept de graphe
Mise à Niveau en Recherche Opérationnelle
Visualisation d’information interactive 5 : Graphes
A.Faÿ 1 Recherche opérationnelle Résumé de cours.
Chap. 1 INTRODUCTION Beaucoup de problèmes de la vie courante, tels la gestion de réseaux de communication ou l'ordonnancement de tâches, correspondent.
Recherche Opérationnelle
Chapitre VIII. Introduction aux graphes
UNIVERSITE DES SCIENCES ET DE LA TECHNOLOGIE D’ORAN
Plus courts chemins On présente dans ce chapitre un problème typique de cheminement dans les graphes : la recherche d'un plus court chemin entre deux sommets.
Algorithmes Branch & Bound
MODULE 6 Optimisation de GRAPHES
Optimisation linéaire
Optimisation et Complexité
Théorie des graphes Un peu de vocabulaire.
Pr ZEGOUR Djamel Eddine
LES ARBRES IUP 2 Génie Informatique
Algorithme de Bellman-Ford
Structures de données IFT-2000
Structures de données IFT-2000
Structures de données IFT-2000
Quatrième étape : cheminer dans les graphes. Une chaîne… Quand elle nutilise pas plusieurs fois la même arête, la chaîne est dite simple. Au sens du programme,
7. Problème de flot à coût minimum.

Algorithmes d ’approximation
PROBLEMES DE DEGRE-DIAMETRE DE GRAPHES DANS LE CAS GENERAL
Optimisation dans les réseaux
Programmation linéaire et Recherche opérationnelle
Recherche Opérationnelle
Recherche Opérationnelle
21 février 2006Cours de graphes 2 - Intranet1 Cours de graphes Les plus courts chemins, les chemins les plus légers : à laide de la vague, à laide de la.
et conception de circuits VLSI
DONG Xiaoguang HONG Liang OULDBABA Fadel WANG Min
Atelier de formation : MAT optimisation II (les graphes).
8INF8061 Conception et analyse des algorithmes Comment comparer deux problèmes?
Pour le chemin le plus court pour tous les couples
Structures de données IFT-2000 Abder Alikacem Arbres de recouvrement minimum Département dinformatique et de génie logiciel Édition Septembre 2009 JFK.

Faire face aux limitations algorithmiques
Présentation Générale du SANDRE (Oieau)
Coupes efficaces pour la relaxation lagrangienne
Graphes 1. Introduction 2. Définition 3. Représentation mémoire
GRAPHES EN INFORMATIQUE. INTRODUCTION Les objets mathématiques appelés graphes apparaissent dans de nombreux domaines comme les mathématiques, la biologie,
les méthodes de recherche locale
On cherche le plus court chemin de E à S sur le graphe suivant :
Tutorat 7 - Introduction au Routage et OSPF
Mathématiques Discrètes
Algorithmes Branch & Bound
Licence Informatique Algorithmique des graphes
LE FLOT MAXIMAL et LA COUPE MINIMALE
Licence d’informatique Algorithmique des graphes
IN302 – Chapitre 2 Arbres et arborescences. Isthmes Composantes connexes : 2.
Recherches locales et méta-heuristiques
6. Problème de flot à coût minimum.

Ajouts et retraits dans un arbre de connexion Nicolas Thibault et Christian Laforest, Équipe OPAL Laboratoire IBISC (regroupement LaMI et LSC), Évry 8.
Algorithme de DIJKSTRA
Sixième étape : pondérer les graphes. Longueur d’une chaîne d’un graphe quelconque = nombre des arêtes qui la constituent. Distance entre deux sommets.
Introduction à la Théorie des graphes
Cycle, Cocycle, Arbre et Arborescence
1 UE Intro. Optimisation L3 INFO UPSud II. Programmation linéaire en variables entières (ou mixtes)
Arbres et arborescences
Transcription de la présentation:

Arbres et graphes

Arbres Ce sont des structures fondamentales utilisées dans de nombreux domaines : Informatique Sciences sociales Classification et analyse de données Théorie des questionnaires Recherche opérationnelle Intelligence artificielle Optimisation combinatoire Théorie des réseaux électriques

Définitions et propriétés La structure arbre fait appel au concept non orienté Un arbre est un graphe connexe sans cycle Un graphe sans cycle qui n’est pas connexe est une forêt Un arbre est toujours un graphe simple (au plus une arête entre 2 sommets)

Animaux de compagnie chiens rongeurs chats souris rats lapins Ex.1 : Arbre généalogique d’une famille ; sommets – membres de la famille arêtes – liens de parenté Ex.2 : Arbre de classification Animaux de compagnie chiens rongeurs chats souris rats lapins De chasse De sauvetage De garde

q1 oui non q2 q3 non oui non oui q4 q5 q7 q6 Ex.3 : Arbres et questionnaires q1 oui non q2 q3 non oui non oui q4 q5 q7 q6

Le problème de l’arbre de poids minimum Soit G = [S, A] un graphe. A chaque arc u  A correspond un poids w(u). Soit G’ = [S, A’] un graphe partiel de G. On appelle poids de G’ : w(G’) =  w(u), u A’ G’ est un arbre s’il est connexe sans cycle. Le problème de l’arbre de poids minimum – rechercher un arbre * de G tel que : w(* ) = min {w( )} Le minimum est pris sur l’ensemble de tous les arbres de G possibles.

Algorithme de Kruskal (1956) – 1ère version Principe Soit G = <S, A, C> un graphe non orienté valué et connexe, de n sommets et p arêtes. On part d’un graphe T vide On ajoute à T des arêtes de G, une par une, en choisissant à chaque étape, parmi les arêtes qui ne sont pas dans T, une arête de coût minimum, qui ne forme pas de cycle avec les arêtes qui sont déjà dans T. Lorsqu’on a ajouté n-1 arêtes, sans créer de cycle, on a obtenu un arbre de poids minimum (arbre de recouvrement minimum)

s1 7 2 s2 s6 4 6 5 s3 1 2 s5 1 s4 3 s3 1 s4 Initialisation U = {{s1, s2, 7}, {s1, s5, 6}, {s1, s6, 2}, {s2, s3, 4}, {s2, s5, 5}, {s3, s4, 1}, {s3, s5, 2}, {s4, s5, 3}, {s5, s6, 1}} 1) min(U) = {s3, s4, 1} ; U = U - {s3, s4, 1} ; i = 1   T : s1 7 2 s2 s6 4 6 5 s3 1 2 s5 1 s4 3 s3 1 s4

min(U) = {s1, s6, 2} ; U = U - {s1, s6, 2}; i=3 s3 2) min(U) = {s5, s6, 1} ; U = U - {s5, s6, 1} ; i=2 T: 3) s3 min(U) = {s1, s6, 2} ; U = U - {s1, s6, 2}; i=3 s3 s4 s5 s6 s3 s4 s1 s5 s6

4) min(U) = {s3, s5, 2} ; U = U - {s3, s5, 2}; i=4 T: 5) min(U) = {s4, s5, 3} ; U = U - {s4, s5, 3} ;i=4   L’arête {s4, s5} forme un cycle dans T : elle est rejetée. 6) min(U) = {s2, s3, 4} ; U = U - {s2, s3, 4} ;i=5 s2   T : 4) min(U) = {s3, s5, 2} ; U = U - {s3, s5, 2}; i=4 T: 5) min(U) = {s4, s5, 3} ; U = U - {s4, s5, 3} ;i=4   L’arête {s4, s5} forme un cycle dans T : elle est rejetée. 6) min(U) = {s2, s3, 4} ; U = U - {s2, s3, 4} ;i=5 s2   T : Lorsque i = n – 1 = 5, on obtient un arbre de recouvrement minimum. s3 s4 s1 s5 s6 s2 s3 s4 s1 s5 s6

Algorithme de Kruskal (1956) – 2ère version Principe Soit G = <S, A, C> un graphe non orienté valué et connexe, de n sommets et p arêtes. On part d’un graphe T = G On retire de T des arêtes de G, une par une, en choisissant à chaque étape, parmi les arêtes qui ne sont pas dans T, une arête de coût maximum, de façon que T reste connexe. Lorsque T possède n-1 arêtes, sans créer de cycle, on a obtenu un arbre de poids minimum (arbre de recouvrement minimum)

Algorithme de Prim (1957) Principe Le principe de cet algorithme est voisin de celui de l’algorithme de Dikjstra : un minimum local est choisi à chaque étape selon des critères qui assurent qu’il fait partie de la solution globale. Soit G = <S, A, C> un graphe non orienté, valué et connexe. On va construire progressivement un graphe partiel T de G. Au départ, T est le graphe vide. On se donne un sommet s de S. On appelle CC l’ensemble des sommets reliés à s dans T, et M son complémentaire. (Au départ CC est réduit au sommet s). On modifie le graphe T, par l’adjonction, à chaque étape, d’une arête. L’arête ajoutée est choisie de sorte qu’elle soit de coût minimum parmi toutes les arêtes ayant une extrémité x dans M et l’autre y dans CC. On ne crée donc pas de cycle dans T : T est bien un arbre. On ajoute alors le sommet x à CC et on recommence. On s’arrête lorsque CC est l’ensemble S : T est un arbre de recouvrement de G.

Algorithme On utilise une procédure de marquage. A chaque sommet iS on associe : un nombre réel (i) /*marque ou potentiel*/ un index (i) indiquant le numéro de l’arête ayant permis de connecter s, sommet de départ, à i. a) Initialisation : (s) = 0 ; (i) = + pour i  s (i) = 0 pour i CC = {} ; T= {} ; M = S – CC b) A l’étape courante, on a déjà construit : un sous-ensemble de sommets CC  S, ensemble des sommets connectés à s. un arbre T minimum connectant tous les sommets de CC On sélectionne i  M de marque (i) minimale. soit u = (i). CC est augmenté du sommet i, M est décrémenté de sommet i et T est augmenté de l’arête u. On remet à jour les marques (j) et les index (j) des sommets de M : Pour tout u = (i, j) de coût (u) tel que jM faire (j)  (u) Si (u) < (j) alors (j)  u d) Si M alors retourner en b)

1. (s1)=0 CC={1} s1 7 2 s2 s6 4 6 5 s3 1 2 s5 1 s4 3 s1 (s6) = 2, (s5)=6, (s2)=7 (s6) = s1s6, (s2) = s1s2 (s5) = s1s5, CC = {1, 6} 2. (s5)=1, (s5) = s6s5 CC= {1, 6, 5} 2 s6 s1 2 s6 1 s5

3. (s2)=5, (s3)=2, (s4)=3, (s2) = s5s2, (s3) = s5s3, (s4) = s5s4, CC= {1, 6, 5, 3}

4. (s2)=4, (s2) = s3s2, CC = = {1, 6, 5, 3, 4, 2} s1 2 s2 s6 4 s3 1 s5 2 s4 1