Bloc1 : Théorie des graphes et problèmes d’ordonnancement Aide à la décision Bloc1 : Théorie des graphes et problèmes d’ordonnancement Mohamed Ali Aloulou aloulou@lamsade.dauphine.fr Une partie de ces transparents a été élaborée en se basant sur le document de Pierre Lopez, LAAS, Toulouse http://www.laas.fr/~lopez/cours/GRAPHES/graphes.html
Plan du bloc 1 Qu’est ce qu’on peut faire avec la théorie des graphes ? Concepts généraux en théorie des graphes Le problème du plus court chemin Problème central de l’ordonnancement http://www.lamsade.dauphine.fr/~aloulou/cours/L3STCF/
Pourquoi la théorie des graphes ? Modélisation Plusieurs problèmes dans différentes disciplines (chimie, biologie, sciences sociales, applications industrielles, …) Un graphe peut représenter simplement la structure, les connexions, les cheminements possibles d’un ensemble complexe comprenant un grand nombre de situations Un graphe est une structure de données puissante pour l’informatique Exemples
Concepts généraux en théorie des graphes Définitions Représentations d’un graphe Notions de base Graphes particuliers Algorithme de détection de circuits Algorithme vérifiant qu’un sommet est racine (ou pas) d’un graphe
Concepts généraux en théorie des graphes Définitions Concepts orientés Un graphe G(X,U) est déterminé par Un ensemble X={x1,…,xn} de sommets Un ensemble U={u1, …, um} du produit cartésien X×X d’arcs. Un p-graphe : pas plus que p arcs (xi,xj) Arc u=(xi,xj) boucle 3-graphe 1-graphe = graphe
Concepts généraux en théorie des graphes Définitions Graphes et applications multivoques xj est successeur de xi si (xi,xj)U L’ensemble des successeurs de xi est noté (xi) L’ensemble des prédécesseurs de xi est noté -1(xi) est appelée une application multivoque Pour un 1-graphe, G peut être parfaitement déterminé (ou caractérisé) par (X,)
Concepts généraux en théorie des graphes Définitions Concepts non orientés On s’intéresse à l’existence d’arcs entre deux sommets sans en préciser l’ordre Arc = arête U est constitué de paires non pas de couples Multigraphe : plusieurs arêtes entre deux sommets Graphe simple = non multigraphe + pas de boucles
Concepts généraux en théorie des graphes Représentations d’un graphe Matrice d’adjacence Place mémoire : n² Pour un graphe numérisé : remplacer 1 par la valeur de l’arc
Concepts généraux en théorie des graphes Représentations d’un graphe Matrice d’incidence sommets-arcs Place mémoire : n x m
Concepts généraux en théorie des graphes Représentations d’un graphe Listes d’adjacence Place mémoire : n+1+m
Concepts généraux en théorie des graphes Représentations d’un graphe Dictionnaire des suivants / préédents
Concepts généraux en théorie des graphes Notions de base
Concepts généraux en théorie des graphes Notions de base
Concepts généraux en théorie des graphes Notions des base Chaîne – Cycle Chemin – Circuit Ascendant – descendant – racine – anti-racine
Concepts généraux en théorie des graphes Connexité dans les graphes Le terme parcours regroupe les chemins, les chaînes, les circuits et les cycles Un parcours peut être élémentaire : tous les sommets sont distincts simple : tous les arcs sont distincts hamiltonien : passe une fois et une seule par chaque sommet eulérien : passe une fois et une seule par chaque arc préhamiltonien : ou moins une fois par chaque sommet préeulérien : au moins une fois par chaque arc
Concepts généraux en théorie des graphes Connexité dans les graphes Exemple Le problème du voyageur de commerce : un voyageur de commerce doit visiter n villes données en passant par chaque ville exactement une fois et doit revenir à la ville de départ. Trouver un circuit hamiltonien de coût minimal dans un graphe valué
Concepts généraux en théorie des graphes Connexité dans les graphes
Concepts généraux en théorie des graphes Connexité dans les graphes Forte connexité
Concepts généraux en théorie des graphes Graphes particuliers Graphes sans circuit Décomposition en niveaux Graphe biparti Graphe planaire Hypergraphe Arbre Forêt Arborescence
Concepts généraux en théorie des graphes Algorithme de détection de circuits
Concepts généraux en théorie des graphes Algorithme de vérifiant qu’un sommet est racine d’un graphe
Exemples En 1736, Euler a montré que c’est impossible !! retour
retour
Références bibliographiques P. Lopez, Cours de graphes, LAAS-CNRS http://www.laas.fr/~lopez/cours/GRAPHES/graphes.html Ph. Vallin and D. Vanderpooten. Aide à la décision : une approche par les cas. Ellipses, Paris, 2000. M. Gondron, M. Minoux, Graphes et algorithmes, Eyrolles, Paris, 1984 C. Prins, Algorithmes de graphes, Eyrolles, Paris, 1994 Ph. Lacomme, C. Prins, M. Sevaux, Algorithmes de graphes, Eyrolles, 2003 B. Baynat, Ph. Chrétienne, …, Exercices et problèmes d’algorithmique, Dunod, 2003 E. Lawler, Combinatorial Optimization – Networks and matroids, Dover Publications, INC, 1976. Cormen, Leiserson, Rivest, Stein, Introduction à l’algorithmique, DUNOD, 2ième édition, série Sciences Sup,2002. Berstel, Beauquier, Chrétienne, Eléments d’algorithmique, MASSON, collection MIM, 1992. Téléchargeable gratuitement! http://www-igm.univ-mlv.fr/~berstel/Elements/Elements.html R. K. Ahuja, T. L. Magnanti, and J. B. Orlin, Network flows: Theory, Algorithms and Applications http://web.mit.edu/jorlin/www/