Théorie des graphes

February 18, 2017 | Author: Karim Youness | Category: N/A
Share Embed Donate


Short Description

Download Théorie des graphes...

Description

Théorie des graphes Dessiner pour comprendre...

____________ Introduction. CHERTI–IGI-GI ()

Théorie des graphes

May 3, 2012

0/0

––––––*Les graphes modélisent de nombreuses situations concrêtes où interviennent des objets en interaction. *Les interconnexions routière, ferrovière ou aériennes entre différentes agglomérations, *Les liens entre les composants d’un circuit électronique, *Le plan d’une ville et de ses rues en sens unique,... ___________ Utilité: La théorie des graphes a notamment pour raison d’être, de répondre à différents problèmes se formulant en termes d’objets et de liens entre ceux-ci. Ainsi, répondre à la question de savoir quel est le chemin le plus rapide pour se rendre en train d’une ville à une autre n’est possible qu’en regardant de près une carte suffisamment détaillée du réseau ferroviaire. Ce réseau est une source d’informations sur des gares (objets) et sur les lignes ferroviaires (liens) reliant ces gares. Un autre problème consisterait à rechercher le trajet le plus économique. De nombreux problèmes relatifs à l’étude des réseaux pourront donc être CHERTI–IGI-GI ()

Théorie des graphes

May 3, 2012

0/0

résolus par la théorie des graphes : -réseaux aériens (entre aéroports) -réseaux ferroviaires (entre gares) -réseaux routiers (entre villes) -réseaux téléphoniques, informatiques, ... Un des piliers de la théorie des graphes est l’étude de l’ordonnancement des tâches. Quelles sont les contraintes conditionnant l’avancement d’un projet ? Quelle tâche doit être finie avant que telle autre commence ? Comment tenir compte des tâches concurrentes ? (se modélise par graphe et se traite par recherche du plus long chemin) D’autres domaines pourront également être abordés : -analyse d’un programme, d’un algorithme -élaboration de cartes géographiques -représentation de relations entre individus (familiales, professionnelles, ...) -représentation d’automates d’états finis, de tables de décisions, ... ________ Les graphes permettent de manipuler plus facilement des objets et leurs relations avec une représentation graphique naturelle. L’ensemble des techniques et outils mathématiques mis au point en Théorie des CHERTI–IGI-GI ()

Théorie des graphes

May 3, 2012

0/0

Graphes permettent de démontrer facilement des propriétés, d’en déduire des méthodes de résolution, des algorithmes, ... Quel est le plus court chemin (en distance ou en temps) pour se rendre d’une ville à une autre? Comment minimiser la longueur totale des connexions d’un circuit? Peut-on mettre une rue en sens unique sans rendre impossible la circulation en ville? _______________ L’interet de l’utilisation des graphes réside dans: *Facilité de manipulation et modélisation des situations. *Representation facile des objets et les relations liées à ces objets. *Théorie des graphes donne des proprietés puis des méthodes de résolution et algorithmes. La théorie des graphes permet de transcrire donc concrètement des faits en les modélisant à l’aide d’objets mathématiques, afin de résoudre des problèmes tels : - Les problèmes d’ordonnancement, qui ont pour but la recherche d’un ordre optimal des tâches pour une réalisation complexe : il s’agit de CHERTI–IGI-GI ()

Théorie des graphes

May 3, 2012

0/0

trouver un ordre de réalisation des travaux, en minimisant le temps total et le coût total et peut etre le personnel intervenant; - Les emplois du temps et la répartition des salles ou de locaux en général; - Les problèmes d’affectations (organiser des équipes de travail pour qu’elles soient le plus efficaces possibles: minimiser le maximum de failles défaillances..) ; Les problèmes de maintenance (minimiser les stocks de pièces de rechange, ou les coûts dus à l’arrêt des machines) ; - Les problèmes de compétition et de concurrence ; - Les problèmes de classification de produits, ou d’individus selon certains critères prédéfinis. –––––––––––––Exemples de modélisation par des graphes : reseau routier : les sommets sont les intersections des routes, les aretes représentent les routes. cheminement dans un reseau informatique. Web modelisé par un graphe. Les sommets sont les pages Web et les aretes sont les liens hypertexte entre ces differentes pages. ––––––––––— CHERTI–IGI-GI ()

Théorie des graphes

May 3, 2012

0/0

Exemple de GRAPHE: Deux représentations identiques d’un meme graphe:

Exemple de GRAPHE: CHERTI–IGI-GI ()

Théorie des graphes

May 3, 2012

0/0

Remarque:La forme des arcs ainsi que la position des sommets sont facultatifs. Ce qui est important: Savoir comment sont liés les sommets entre eux. En effet, comparer avec celui ci: CHERTI–IGI-GI ()

Théorie des graphes

May 3, 2012

0/0

On dit que ces deux graphes sont isomorphes. On peut s’intéresser à la recherche d’un plus court chemin dans un graphe G : 1 - entre deux sommets donnés 2 - d’un sommet à tous les autres 3 - entre tous les couples de sommets Le problème 2 n’est pas plus difficile à résoudre que le problème 1 et le problème 3 peut être résolu par application du problème 2 à tous les CHERTI–IGI-GI ()

Théorie des graphes

May 3, 2012

0/0

sommets. –––––––– La recherche du plus court chemin est analogue à la recherche du plus long chemin (la valuation terminale visée est alors la plus grande au lieu de la plus petite). _______________ Certaines Précisions sur des questions pratiques: –––––––– Si on cherche le plus court chemin reel, on pense à la distance. Mais un chemin peut etre valué par autre paramètre: le temp par exemple. Ou bien on peut considérer la distance & le temps selon la qualité physique du chemin. On peut chercher à minimiser la longueur totale des connexions d’un circuit. On peut creer des contraintes comme sens unique sur un arc puis voir son influence sur le mouvement global sur un graphe. _______________ Définition: Un graphe G est un ensemble fini de noueds ou sommets reliés entre eux par des aretes ou arcs. CHERTI–IGI-GI ()

Théorie des graphes

May 3, 2012

0/0

On note: G = (S, U ) ou S = {noueds ou sommets } U = {aretes ou arcs } un arc peut etre vu mathématiquement comme un bipoint ou un couple de points (a, b )sans parler de l’orientation. Les sommets a & b sont les extrémités de l’arete.

–––––––— L’Ordre d’un graphe G = (S, U ) est le nombre des sommets de ce graphe. C’est le cardinal de S et est noté |S | . Par exemple |S | = 9 pour le graphe au dessous CHERTI–IGI-GI ()

Théorie des graphes

May 3, 2012

0/0

Dans un graphe G d’ordre n * Tout chemin élémentaire est de longueur au plus n − 1. * Le nombre de chemins élémentaires dans le graphe est fini. Degré: *Deux sommets s et r sont adjacents s’il existe l’arete (s, r ) qui les joint. Ils sont dits aussi voisins.(s est adjacent à r et inversement)(s et r sont adjacents à l’arete et inversement). *Une arete est incidente à un sommet s si s est l’une de ses extrémités. *Le Degré d’un sommet s de G est le nombre d’aretes incidentes à s. ____________ Notation: d◦ (s ) . Par exemple un sommet de Degré zéro est dit isolé. CHERTI–IGI-GI ()

Théorie des graphes

May 3, 2012

0/0

Le demi-degré extérieur d’un noeud est le nombre d’arcs adjacents qui en partent.d+ (s ) . Le demi-degré intérieur d’un noeud est le nombre d’arcs adjacents qui y arrivent.d− (s ) . C’est le cardinal de l’ensemble {u ∈ U/ u = (s, r ) ou r ∈ S } ◦ d (s ) =d+ (s ) +d− (s ) . (On peut aussi noter de (s ) et ds (s ) degré entrant et degré sortant respectivement) Un graphe est régulier si les degrés de tous ses sommets sont égaux. Un graphe est complet si tous les noeuds sont adjacents deux à deux. Exemple de graphe complet:

Exemple de graphe non complet: CHERTI–IGI-GI ()

Théorie des graphes

May 3, 2012

0/0

En effet, les sommets 2 & 3 ne sont pas adjacents, tout comme 3 & 4, 4 & 5 (pas d’arc existant de lien entre ces sommets) . Théorème. La somme des degrés des sommets d’un graphe est égal au double du nombre de ses aretes. Examinons ça sur les deux graphes précédents: En effet: Pour le premier graphe complet, on compte: -Pour le premier graphe on a 10 aretes et chaque noeud des cinq noeuds a un degré quatre. Donc la somme des degrés des sommets est 20 qui est bien le double du nombre de ses aretes. CHERTI–IGI-GI ()

Théorie des graphes

May 3, 2012

0/0

-Pour le deuxième graphe on a six aretes et differents degrés pour les sommets dont la somme est 12 donc le double du nombre de ses aretes. ____________ Exemple de graphe sans orientations:

L’ordre de ce graphe est 8. |S | = 8. ◦ ◦ ◦ d (a) = 1, d (h) = 5, d (e ) = 3. Les aretes incidentes à e sont: (e, f ) , (e, h) , (e, d ) . Remarque: ce graphe n’est pas complet. (Les noeuds g & a n’ont pas d’arc). __________ Définitions: CHERTI–IGI-GI ()

Théorie des graphes

May 3, 2012

0/0

*Un graphe est dit simple s’il est sans boucles et il n’y a pas plus d’une arete entre deux sommets quelconques.

*Un sous-graphe de G est une partie de ce graphe formée de certains sommets et les aretes qui les lient.

*Un graphe partiel de G est une partie de ce graphe définie par certaines aretes et leurs extremités. CHERTI–IGI-GI ()

Théorie des graphes

May 3, 2012

0/0

Pour un graphe symétrique d’un graphe:

CHERTI–IGI-GI ()

Théorie des graphes

May 3, 2012

0/0

on a: y ∈ Γ−1 (x )(y prédecesseur de x)⇐⇒ x ∈ Γ (y ) (x successeur de y).

Un graphe G = (S, U ) est antisymétrique si ∀x, y ∈ S, (x ∈ Γ (y ) & y ∈ Γ (x ))=⇒ y = x. CHERTI–IGI-GI ()

Théorie des graphes

May 3, 2012

0/0

On peut associer à un graphe orienté un graphe non orienté.

CHERTI–IGI-GI ()

Théorie des graphes

May 3, 2012

0/0

*Une chaine est une suite d’aretes telles que la suivante a un sommet en commun avec la précédente. Autrement dit: Une chaine est une séquence finie et altérnée de sommets et d’aretes, débutant et finissant par des sommets, telle que chaque arete est incidente avec les sommets qui l’encadrent dans la séquence. Une arete ne doit pas intervenir plusieurs fois dans la séquence contrairement à un sommet. ____________ Le premier et le dernier sommet sont appelés sommets extrémités de la chaine. La longueur de la chaine est égale au nombre d’aretes qui la composent. Si aucun des sommets composant la séquence n’apparait plus d’une fois, la chaine est dite chaine el élémentaire. ––––––— Si aucune des aretes composant la séquence n’apparait plus d’une fois, la chaine est dite chaine simple. ––––––— Un cycle est une chaine dont les extrémités coincident. CHERTI–IGI-GI ()

Théorie des graphes

May 3, 2012

0/0

Pour une arete si les deux extrimités coincident on dit que c’est une boucle. Un cycle élémentaire (tel que l’on ne rencontre pas deux fois le meme sommet en le parcourant) est un cycle minimal pour l’inclusion, c’esta-dire ne contenant strictement aucun autre cycle. ––––––*Un chemin est une liste de sommets telle qu’il existe dans le graphe une arete entre chaque paire de sommets successifs (il y a le sens qui est pris en considération sans le noter sur le graphe) c’est (f , g , h, e, d, b ).

**Un cycle est un chemin finissant à son point de départ. CHERTI–IGI-GI ()

Théorie des graphes

May 3, 2012

0/0

*La longueur simple du chemin est le nombre d’aretes parcourues. *Une autre manière de parler de longueur est possible en considérant des aretes valuées. *Un chemin est une séquence finie et alternée de sommets et d’arcs, débutant et finissant par des sommets, telle que chaque arc est sortant d’un sommet et incident au sommet suivant dans la séquence (c’est la notion de chaine orientée). Exemple de chemin simple et cycle: CHERTI–IGI-GI ()

Théorie des graphes

May 3, 2012

0/0

Les chemins (f , g , d, b ) et (f , g , d, h, e, d, b ) sont simples. Le chemin (f , g , d, h, e, d, h, e, d, b ) ne l’est pas : le cycle (d, h, e, d ) est emprunté 2 fois. Si aucun des sommets composant la séquence n’apparait plus d’une fois, le chemin est dit chemin élémentaire. Si aucune des aretes composant la séquence n’apparait plus d’une fois, le chemin est dit chemin simple. Un circuit est un chemin dont les extrémités coincident. –––––— En parcourant un circuit élémentaire, on ne rencontre pas deux fois le CHERTI–IGI-GI ()

Théorie des graphes

May 3, 2012

0/0

meme sommet. *Un chemin C (a1 , a2 , ..., an ) est élémentaire si chacun des sommets du parcours est visité une seule fois. *Un chemin élémentaire est un chemin simple et sans cycle. *Un chemin est connexe si et seulement si il existe au moins une chaine entre chaque paire de sommets. Remarque:Un graphe complet est connexe par construction. En terme d’exploration graphique, un graphe est connexe si on peut atteindre n’importe quel sommet à partir d’un sommet quelconque en parcourant différentes aretes. Un arbre est un graphe connexe sans cycles. Précision: Les termes de chemin et de circuit s’emploient en propre pour les graphes orientés. Pour les graphes non orientés, on parle de chaine et de cycle. *Un graphe orienté est dit fortement connexe s’il existe un chemin joignant deux sommets quelconques. La relation : CHERTI–IGI-GI ()

Théorie des graphes

May 3, 2012

0/0

 

soit si = sj soit il existe à la fois un chemin joignant si à sj si Rsj ⇐⇒  et un chemin joignant sj à si est une relation d’ équivalence (elle est réflexive symétrique et transitive) et les classes d’ équivalence induites sur S par cette relation forment une partition de S en S1 , S2 , ..., Sq . Les sous-graphes G 1; G 2; ....; Gq engendrés par les sous ensembles S1 , S2 , ..., Sq sont appelés les composantes fortement connexes du graphe. Par exemple: Soit le graphe orienté suivant:

CHERTI–IGI-GI ()

Théorie des graphes

May 3, 2012

0/0

Il a pour composantes fortement connexes: C1 = {1, 2, 3, 4, 5} ; C2 = {6, 7} ; C3 = {8} Donc le graphe précédent a pour graphe réduit:

La Définition: On appelle graphe réduit Gr le quotient du graphe G par la relation de forte connexité Gr = G /R; Les sommets de Gr sont donc les composantes fortement connexes et il existe un arc entre Ci et Cj si et seulement s’il existe au moins un arc entre un sommet de Ci et un sommet de Cj dans le graphe G . On vérifie que le graphe Gr est sans circuit. Exemple de graphe à trois composantes connexes: CHERTI–IGI-GI ()

Théorie des graphes

May 3, 2012

0/0

Remarques: 1) Un graphe ne possédant qu’une seule composante connexe est simplement un graphe connexe. 2) Un sommet isolé (de degré 0) constitue toujours une composante connexe à lui seul. 3) La relation sur les sommets "il existe un chemin entre ..." est une relation d’équivalence (réflexive, symétrique et transitive). Les composantes connexes d’un graphe correspondent aux classes d’équivalences de cette relation. 4) Existe-t-il une relation entre le nombre d’arêtes d’un graphe et sa CHERTI–IGI-GI ()

Théorie des graphes

May 3, 2012

0/0

connexité? On sent que pour connecter un graphe il faut qu’un minimum d’arêtes soient présentes pour qu’existent suffisamment de chemins. En fait, pour qu’un graphe G = (S, U ) soit connexe, il faut qu’il ait au moins |S | − 1 arêtes. 5) Connexité/aretes: Un graphe G d’ordre n connexe comporte au moins n − 1 arêtes. ZONE D 0APPLICATION | {z }: La recherche des composantes fortement connexes et la détermination du graphe réduit revetent une grande importance pour l’analyse structurale d’un système. ––––––Dans le graphe précédent le chemin C (g , f , h, b ) est élémentaire. Mais le chemin C (g , f , h, e, d, h, b ) n’est pas élémentaire car le sommet h est visité deux fois. Exemple de chaine et chemin:

CHERTI–IGI-GI ()

Théorie des graphes

May 3, 2012

0/0

Quand on est sur qu’il existe un chemin entre deux sommets d’un graphe, on veut connaitre ce chemin. Mieux encore, on est intéressé par la recherche du plus court chemin possible entre ces deux sommets. Si le nombre de sommets est grand, il faut avoir une méthode algorithmique rapide de recherche de ce plus court chemin entre deux sommets. Il faut d’abord noter qu’un plus court chemin est élémentaire. Définition: chemin eulérien: Un chemin dans un graphe orienté est dit eulérien s’il passe exactement une fois par chaque arete. CHERTI–IGI-GI ()

Théorie des graphes

May 3, 2012

0/0

Un graphe orienté est dit eulérien s’il admet un circuit eulérien. -Une chaine eulérienne est une chaine qui contient une fois et une seule toutes les aretes du graphe. -Si cette chaine est un cycle, on a un cycle eulérien. L’origine de cette définition: Tout le monde s’accorde à considérer que la théorie des graphes est née en 1736 avec la communication d’Euler (1707-1783) dans laquelle il proposait une solution au célèbre problème des ponts de Konigsberg (Kaliningrad, capitale de la prusse de l’est)(Euler, 1736). Le problème posé était le suivant. Deux iles A et D sur une rivière étaient reliées entre elles ainsi qu’aux rivages B et C à l’aide de sept ponts (désignés par des lettres minuscules)

CHERTI–IGI-GI ()

Théorie des graphes

May 3, 2012

0/0

Le problème posé consistait, a partir d’une terre quelconque A, B, C, ou D, a traverser chacun des ponts une fois et une seule et a revenir a son point de départ en utilisant les ponts. Comme modalisation par graphe, Euler représenta cette situation a l’aide d’un dessin ou les sommets représentent les terres et les aretes, les ponts. Le graphe a la représentation suivante:

ou encore:

CHERTI–IGI-GI ()

Théorie des graphes

May 3, 2012

0/0

Ce problème est identique a celui consistant a tracer une figure géométrique sans lever le crayon et sans repasser plusieurs fois sur un meme trait. Cela s’avere impossible. Explication: Ce phénomène est lié au fait que le nombre des arcs touchants à un sommet soit pair (entrant sortant autant de passages séparés dans ce noeud) sauf deux noeuds (départ et arrivée). Théorème d’Euler: Un graphe non orienté admet une chaine eulérienne si et seulement si il est connexe et admet zéros ou deux sommets impairs. Si tous les sommets sont pairs, il s’agit de cycle eulérien. Ce théorème est utile dans la recherche de chemin dans un graphe. Pour le problème des ponts posé au dessus,

il y ’ a quatre sommets de degrés impairs donc il n’ y aura ni chemin CHERTI–IGI-GI ()

Théorie des graphes

May 3, 2012

0/0

eulérien, ni cycle eulérien. Si on ajoute une arete entre B et C et une autre entre B et A, on a alors deux sommets de degré pair (A et C) et deux sommets de degré impair (B et D).

Ce nouveau graphe (graphe corrigé)admet donc une chaine eulérienne qui part de D et arrive à B (D-A-B-C-D-B-A-C-D-B) ou encore de B à D (B-A-B-C-A-D-B-D-C-D). Pour obtenir un cycle eulérien, il faudrait que tous les sommets soient de degré pair; il suffit donc de relier entre eux les deux sommets de degré impair du graphe corrigé: dans la réalité c’est un nouveau pont qui est construit qui correspond à une nouvelle arete entre B et D. CHERTI–IGI-GI ()

Théorie des graphes

May 3, 2012

0/0

Ou encore on peut supprimer une arete entre B et D ce qui rend tous les sommets pairs et ainsi on a encore un cycle eulérien. Généralités sur les graphes non orientés Un graphe est constitué de sommets, dont certains sont reliés par des arêtes. Deux sommets reliés par une arête sont adjacents. Le nombre de sommets présents dans un graphe est l’ordre du graphe. Le degré d’un sommet est le nombre d’arêtes dont ce sommet est une extrémité. –––––––––– Graphe biparti, biparti-complet: Un graphe est biparti si l’ensemble de ses sommets peut être partitionné en deux classes S1 et S2 de sorte que deux sommets de la CHERTI–IGI-GI ()

Théorie des graphes

May 3, 2012

0/0

même classe ne soient jamais voisins. Soit un graphe biparti, si pour tout s1 ∈ S1 et pour tout s2 ∈ S2 , on a le nombre d’arc ayant une extrimité en s1 et l’autre exrimité en s2 est supérieur ou égal à un, alors le graphe est biparti complet (ie tout est lié). Notation: Un graphe biparti peut être noté: G = ( S1 , S2 , U ) Un graphe simple biparti-complet avec |S1 | = p & |S2 | = q et est noté Gp,q . Par exemple graphe biparti complet G3,3

Graphe et PageRank: CHERTI–IGI-GI ()

Théorie des graphes

May 3, 2012

0/0

Classement des pages Web utilisé par les moteurs de recherches. Le web est modélisé à l’aide d’un graphe orienté dont les sommets j représentent les pages du Web et les arcs j −→ i les hyperliens. Chaque page du web possède un score (PageRank) indiquant son importance. Le principe est le suivant : une page i est importante (score élevé) si beaucoup de pages importantes pointent vers i. Exemple de pages Web et leurs PageRank:

CHERTI–IGI-GI ()

Théorie des graphes

May 3, 2012

0/0

Le score de la page i est défini par la valeur 1 µi = ∑ µj j −→i lj ou lj désigne le nombre de liens partant de la page j. Le problème de la détermination des PageRank se ramène à un problème aux valeurs propres de la forme µ = Aµ ou µ est le vecteur de tous les PageRank des pages web recensées (environ 20 milliards....) Théorème: Un graphe orienté connexe admet un chemin eulérien (mais pas de circuit eulérien) si, et seulement si, pour tout sommet sauf deux (s et t), le degré entrant est egal au degré sortant et de (s ) = ds (s ) − 1 et de (t ) = ds (t ) + 1 (pour avoir une sortie de départ de s et une entrée à l’arrivée t) Un graphe orienté connexe admet un circuit eulérien si, et seulement si, pour tout sommet, le degré entrant est egal au degré sortant. CHERTI–IGI-GI ()

Théorie des graphes

May 3, 2012

0/0

Propriété : La somme des degrés d’un graphe non orienté est égale à deux fois le nombre d’arêtes du graphe. (C’est donc un nombre pair). On généralise la notion du plus court chemin dans le cas du graphe valué, ou chaque arete est associée à une valeur(poids). La valuation des aretes peut representer des couts de transit, des distances en kilométres, du temps de parcours des aretes. Exemple: Sur un réseau de chemin de fer, on est tenté de chercher le plus court chemin (en prenant comme valuation d’arete le temps à passer dans le train pour la portion de chemin correspondante). Il faut ajouter la contrainte de minimiser les changements de train (c’est spécial à ce genre de problème). ––––– ––––– Des représentations utiles pour un graphe:

CHERTI–IGI-GI ()

Théorie des graphes

May 3, 2012

0/0

1)Les Dictionnaires Suivants/Précédents: Sur un graphe orienté, un sommet si est un suivant du sommet sj si la liaison orientée sj −→ si a lieu. sj est alors un précédent de si .

Remarque: on peut faire chaque tabeau à part. CHERTI–IGI-GI ()

Théorie des graphes

May 3, 2012

0/0

2) Matrice d’adjacence: pour coder un graphe. C’est la matrice associée à ce graphe On se donne un graphe G = (S, U ) à n sommets. La matrice d’adjacence de G est égale à la matrice Ad = (aij ) de dimension n × n telle que:

aij =



1 0

si l 0arete (i, j ) existe si l’arete (i, j ) n’existe pas

Attention: le sens (i, j ) est pris en considération. Ce type de matrice fait partie des matrices booléenne. Notons bien que le terme aij de la ième ligne et jème colonne est égal au nombre d’aretes reliant les sommets i et j. Un graphe orienté quelconque a une matrice d’adjacence quelconque (n’est pas symétrique)(examiner a12 & a21 ), alors qu’un graphe non orienté posséde une matrice d’adjacence symétrique. L’absence de boucle se traduit par une diagonale nulle. La matrice d’adjacence de G du graphe au dessus est CHERTI–IGI-GI ()

Théorie des graphes

May 3, 2012

0/0



   Ad = (aij ) =    

0 0 1 0 0 0

1 0 1 0 1 0

0 0 0 0 0 0

0 1 0 0 1 0

0 0 1 0 0 1

0 1 1 0 0 0

       

Exemples: 1) CHERTI–IGI-GI ()

Théorie des graphes

May 3, 2012

0/0

Le graphe G1 est d’ordre 6 ; les sommets 1 et 2 sont adjacents, puisque reliés par une arête. Ce n’est pas le cas des sommets 5 et 2. Le degré du sommet 5 est égal à 3. CHERTI–IGI-GI ()

Théorie des graphes

May 3, 2012

0/0

2) Précisons quelques propriétés de ces matrices: *La somme des éléments de la ième ligne est égale au degré sortant du sommet correspondant. *La somme des éléments de la jème colonne est égale au degré entrant du sommet correspondant. La matrice d’adjacence est symétrique si et seulement si, le graphe est symétrique. *La longueur d’une chaine est le nombre d’aretes composant cette chaine. CHERTI–IGI-GI ()

Théorie des graphes

May 3, 2012

0/0

Théorème d’application: Soit A la matrice associée (matrice d’adjacence) à un graphe d’ordre m de sommets s1 , s2 , s3 , ...., sm . Alors le terme aij de An est égal au nombre de chaines de longueur n reliant si et sj . Sur exemple: Soit le graphe suivant. Toutes les aretes sont de meme longueur a. Hypothèse: Le sommet d’entrée est s1 et le sommet de sortie est s4. On se met d’accord sur le fait que tout chemin (ici dans le sens chaine: c’est à dire on ne prends pas l’orientation des arcs en considération) commence à s1 et se termine en s4.Combien a t on de chemins différents de longueur commune 3a ?

CHERTI–IGI-GI ()

Théorie des graphes

May 3, 2012

0/0

Le nombre de longueur 3a entre s1 & s4 est égal au nombre de chemins de longueur 3 (en prenant a comme unité). On vise donc la 3 matrice associée au graphe à la puissance 3 & son coefficient a14 (première ligne quatrième colonne). La matrice associée au graphe est:   0 1 0 1  0 0 0 1   Ad =   0 1 0 1  0 1 1 0 d’ou

CHERTI–IGI-GI ()

Théorie des graphes

May 3, 2012

0/0



0  0 2 Ad =   0 0

1 1 1 1

1 1 1 0



1 0   1  2

Et par suite: 

0  0 3 Ad =   0 0

2 1 2 2

1 0 1 2



2 2   2  1

3 est le nombre de chemins du sommet S1 au sommet Le coefficient a14 S4. C’est deux: S1,S4,S2,S4 & S1,S4,S3,S4 (l’orientation est prise en considération dans les possibilités d’accès aux arcs. Fermeture transitive d’un graphe orienté: Description: Pour décrire la Fermeture transitive d’un graphe orienté, on a besoin deux graphes. CHERTI–IGI-GI ()

Théorie des graphes

May 3, 2012

0/0

Etant donné un graphe orienté G , la fermeture transitive de G est un graphe orienté G ∗ tel que: -G ∗ a les mêmes sommets que G -S’il y a un chemin dans G de s à t (s 6= t ), alors il y a une arête dans G ∗ de s à t La fermeture transitive d’un graphe contient l’information sur les sommets accessibles du graphe. Pratique: Calcul de fermeture transitive avec les matrices:sur graphe exemple le graphe pour lequel on se propose de calculer la fermeture transitive en calculant les puissances successives des matrices est le suivant:

CHERTI–IGI-GI ()

Théorie des graphes

May 3, 2012

0/0

la matrice d’adjacence associée à ce graphe

CHERTI–IGI-GI ()

Théorie des graphes

May 3, 2012

0/0

0

on calcule successivement les matrices M 2 M 3 M 4 M 5 (il y a six sommets)

Les chemins de longueur 2 que l’on ajoute comme aretes sont (1,6), (3,3), (3,4), (5,2), (5,5), (5,6). CHERTI–IGI-GI ()

Théorie des graphes

May 3, 2012

0/0

Le chemin de longueur 3 que l’on ajoute comme arete est (3,6), les aretes (3,2), (3,5), (5,3), (5,4) sont déjà dans le graphe.

On n’ajoute aucun chemin de longueur 4 comme arete, les aretes CHERTI–IGI-GI ()

Théorie des graphes

May 3, 2012

0/0

(3,3), (3,4), (5,2), (5,5), (5,6) sont déjà dans le graphe.

On n’ajoute aucun chemin de longueur 5 comme arete, les aretes (3, 2), (3, 5), (3, 6)(5, 3), (5, 4) sont déja dans le graphe. La disjonction de ces matrices, qui représente la matrice de la fermeture transitive, est : CHERTI–IGI-GI ()

Théorie des graphes

May 3, 2012

0/0

Le graphe obtenu par fermeture est alors le suivant :

CHERTI–IGI-GI ()

Théorie des graphes

May 3, 2012

0/0

3) Matrice d’incidence sommet-arete: C’est une façon de représentation matricielle d’un graphe (sans boucles: c’est à dire sans arete (i, i ) )utilisant la relation d’incidence entre aretes et sommets: Pour un graphe orienté sans boucles G = (S, U ) à n sommets s1 , ..., sn et m aretes a1 , ..., am . La matrice d’incidence (aux arcs) de G est la matrice M = (mij ) de dimension n × m telle que:  

1 si si est l’extrémité initiale de aj −1 si si est l’extrémité terminale de aj mij =  0 si si n’est pas une extrémité de aj Remarque: Si le graphe n’est pas orienté, le −1, de l’extrémité terminale est remplacé par 1 tout simplement. Reprenons le graphe au dessus orienté avec les notations suivantes: Les sommets: {s1 , s2 , s3 , s4 , s5 , s5 } . Les aretes:{a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 } . CHERTI–IGI-GI ()

Théorie des graphes

May 3, 2012

0/0

Donc la Matrice d’incidence sera à 6 lignes et 10 colonnes (car 6 sommets et 10 aretes): ( Notons bien que chaque arete correspond à une colonne de la matrice & chaque somme correspond à une ligne de la matrice). CHERTI–IGI-GI ()

Théorie des graphes

May 3, 2012

0/0



   M = (mij ) =    

1 0 −1 0 0 0 0 0 0 0 −1 1 0 −1 −1 0 0 0 1 0 0 0 1 1 0 0 1 1 0 0 0 −1 0 0 0 −1 0 0 0 0 0 0 0 0 1 1 −1 0 0 −1 0 0 0 0 0 0 0 −1 −1 1

       

Exemple de graphe orienté:

CHERTI–IGI-GI ()

Théorie des graphes

May 3, 2012

0/0

Exemple de graphe non orienté:

CHERTI–IGI-GI ()

Théorie des graphes

May 3, 2012

0/0

Des représentations pour un graphe: Diagramme cartésien, tableaux, diagramme sagittal. CHERTI–IGI-GI ()

Théorie des graphes

May 3, 2012

0/0

CHERTI–IGI-GI ()

Théorie des graphes

May 3, 2012

0/0

CHERTI–IGI-GI ()

Théorie des graphes

May 3, 2012

0/0

––––––––––– Exploration d’un graphe: L’idée est la suivante: Il s’agit de visiter les sommets d’un graphe à partir d’un sommet donné. Cela se fait par l’intermédiaire d’un algorithme. CHERTI–IGI-GI ()

Théorie des graphes

May 3, 2012

0/0

L’algorithme: -sommet de départ donné s1. -initialiser EM ensemble de sommets à marquer par s1 - tant que EM 6= ∅ faire debut retirer un élement si de EM et le marquer: (lui associer Su (si ) ensemble de ses successeurs) pour tout sj de Su (si ) faire debut si sj non marqué ajouter sj à EM . fin fin fin ––––––––Etapes d’exploration du graphe: Mise au point: • Travailler noeud par noeud. • Pour un noeud donné, traiter tous les arcs sortants. • Dès qu’un noeud est atteint, on l’ajoute à la liste. • Dès qu’un noeud est traité, on le supprime de la liste. CHERTI–IGI-GI ()

Théorie des graphes

May 3, 2012

0/0

• On arrête lorsque la liste est vide. Exploration Sur exemple (Parcours de graphes):

Sommet de départ s1 Initialiser EM (les sommets à marquer) par s1 : EM = {s1} retirer s1 de EM et le marquer (c’est à dire lui associer les successeurs de s1.) CHERTI–IGI-GI ()

Théorie des graphes

May 3, 2012

0/0

Su (s1) = {s2, s3} s2, s3 ne sont pas marqués: on les ajoute à EM = {s2, s3} retirer s2 de EM pour le marquer: Su (s2) = {s4, s6} s4 et s6 ne sont pas marqués: on les ajoute à EM = {s3, s4, s6} retirer s3 de EM pour le marquer: Su (s3) = {s2, s5, s6} . s5 n’est pas marqué: on l’ ajoute à EM = {s4, s5, s6} retirer s4 de EM pour le marquer: Su (s4) = ∅. fin (on ne peut plus explorer) L’ordre du graphe est 7 : Six sommets, parmi les sept, peuvent etre atteints à partir du sommet s1. Commentaire: Certains sommets peuvent etre atteints à partir de plusieurs sommets, on marque ceux qui sont déja visités pour ne pas les visiter de nouveau. Question: Quel sommet retirer pour le marquer ? Pourquoi l’un et pas l’autre? Ceci est du au fait que le choix, du sommet à retirer de la liste pour le marquer, repose sur une stratégie prise au préalable. En général, on a deux orientations de stratégies: CHERTI–IGI-GI ()

Théorie des graphes

May 3, 2012

0/0

Une orientation: LIFO:Last in first out: il s’agit de retirer le dernier élément arrivé dans la liste EM . C’est une exploration en profondeur. (penser à une pile de livres ou d’assiettes) Autre orientation: FIFO: First in First out: Cette fois, on retire le plus ancien des sommets dans la liste EM .C’est une exploration en largeur (penser à la file d’attente). –––––––––––––––––— Parcours de graphes (autre formulation) Un algorithme de parcours dans un graphe peut se formaliser à l’aide de deux ensembles de sommets OUVERTS (pas encore visités)et FERMES, le premier contenant les sommets à explorer et le deuxième les sommets déjà explorés. L’exploration d’un sommet consistant à examiner tous les voisins d’un sommet : visite de tous les arcs sortants du sommet. ParcoursGénérique(G , x0 ) Données: un graphe orienté G = (S, U ), un sommet s0 ∈ S Résultat: une arborescence de chemins issus de s0 CHERTI–IGI-GI ()

Théorie des graphes

May 3, 2012

0/0

OUVERTS ← {x0 } FERMES ← ∅ Parent(x0 ) ← NuL ∀y 6= x0 , Parent(x0 ) ← y tant que OUVERTS6= ∅ faire z ←− Choix(OUVERTS) Ajout(z, FERMES) Explorer(z ) Retrait(z,OUVERTS) Explorer(z ) pour Tous les voisins y de z faire si y ∈ FERMES alors Ne rien faire si y ∈ OUVERTS alors Ne rien faire sinon Ajout(y ,OUVERTS) Parent(y ) ← z –––––––––––––––––— CHERTI–IGI-GI ()

Théorie des graphes

May 3, 2012

0/0

Des fonctions d’exploration d’un graphe: fonction INITIALISE_EXPLORATION() { pour chaque sommet t faire explore[t ] = 0; } fonction EXPLORATION(sommet s) { si (explore[s ] = 0) alors { explore[s ] = 1; pour chaque successeur t de s faire EXPLORATION(t); } } fonction PROFONDEUR(sommet s) { INITIALISE_EXPLORATION(); EXPLORATION(s); –––––––– Exploration du graphe orienté valué: CHERTI–IGI-GI ()

Théorie des graphes

May 3, 2012

0/0

• Notons V la liste des noeuds à traiter pour un graphe orienté valué G = (S, U, µ). L’algorithme est alors: Initialisation: - Liste de noeuds: V = {1} . -Etiquettes: d1 = 0, di = +∞, pour tout i 6= 1. Itérations: tant que V 6= ∅ : -choisir i dans V . -V = V \ {i }. - Pour chaque arc (i, j ) ∈ U - si dj > di + aij . - dj = di + aij -V = V ∪ {j } ––––––– Exemple:

CHERTI–IGI-GI ()

Théorie des graphes

May 3, 2012

0/0

CHERTI–IGI-GI ()

Théorie des graphes

May 3, 2012

0/0

CHERTI–IGI-GI ()

Théorie des graphes

May 3, 2012

0/0

CHERTI–IGI-GI ()

Théorie des graphes

May 3, 2012

0/0

CHERTI–IGI-GI ()

Théorie des graphes

May 3, 2012

0/0

CHERTI–IGI-GI ()

Théorie des graphes

May 3, 2012

0/0

CHERTI–IGI-GI ()

Théorie des graphes

May 3, 2012

0/0

CHERTI–IGI-GI ()

Théorie des graphes

May 3, 2012

0/0

CHERTI–IGI-GI ()

Théorie des graphes

May 3, 2012

0/0

Propriétés à la fin de chaque itération: • Si di < ∞, alors di est la longueur d’un chemin reliant 1 à i. • Si i ∈ / V , alors • soit di = ∞ (le noeud n’a pas encore été atteint), • soit dj ≤ di + aij , ∀j tel que (i, j ) ∈ U (les arcs sortant ont été traités). ––––––— Propriétés si l’algorithme se termine: • Pour tout noeud j tel que dj < ∞, • d1 = 0; • dj est la longueur du plus court chemin entre 1 et j; • Equation de Bellman : dj = min di + aij (i ,j )∈U

si j 6= 1

• dj = ∞ si et seulement s’il n’y a pas de chemin reliant 1 et j. • Dans ce cas, le graphe n’est pas connexe. • L’algorithme se termine si et seulement s’il n’y a aucun chemin commençant en 1 et contenant un circuit à coût négatif. CHERTI–IGI-GI ()

Théorie des graphes

May 3, 2012

0/0

–––––––––––––––––– Algorithme de coloration d’un graphe: –––––––––––––––––– Ordonner les sommets dans l’ordre décroissant de leurs degrés. Tant qu’il reste des sommets à colorer, procéder ainsi : - choisir une nouvelle couleur appelée couleur d’usage; - chercher dans la liste des sommets le premier sommet non coloré et le colorer avec la couleur d’usage (lui associer une couleur ); - examiner tour à tour, dans l’ordre de la liste, tous les sommets non colorés et, pour chacun d’entre eux, le colorer lorsqu’il n’est adjacent à aucun sommet déjà coloré. Remarque: deux sommets adjacents n’ont pas la meme couleur.

CHERTI–IGI-GI ()

Théorie des graphes

May 3, 2012

0/0

CHERTI–IGI-GI ()

Théorie des graphes

May 3, 2012

0/0

Coloration des graphes. Définitions: Colorer un graphe consiste affecter une couleur a chacun des sommets de sorte que deux sommets adjacents ne portent pas la meme couleur. On appelle nombre chromatique d’un graphe le plus petit nombre de couleurs permettant de le colorer. Propriété: Encadrement du nombre chromatique : CHERTI–IGI-GI ()

Théorie des graphes

May 3, 2012

0/0

-Si le graphe est complet, son nombre chromatique est egal a son degré (nombre total de sommets). -Dans le cas contraire : *On cherche le sous-graphe complet dont le nombre de sommets N est le plus grand. *On détermine ∆, le plus haut degré des sommets de graphe. * On a alors : N ≤ nombre chromatique ≤ ∆ +1. * Remarque : si on est capable de colorier pratiquement le graphe avec les N couleurs, le nombre chromatique est alors egal a N. Encore des Résultats à connaitre: Définition. -Un sous-graphe d’un graphe G est un graphe composé de sommets de G et de certaines aretes qui relient ces sommets. -Un sous-graphe est dit stable lorsqu’il ne comporte aucune arete, autrement dit si deux sommets quelconques ne sont pas adjacents. Définition. CHERTI–IGI-GI ()

Théorie des graphes

May 3, 2012

0/0

Colorier les sommets d’un graphe G non orienté, c’est leur attribuer une couleur de façon à ce que deux sommets adjacents ne soient pas coloriés de la meme couleur. Biensur, le nombre minimal de couleurs nécessaires est le nombre chromatique du graphe, noté γ(G ). Théorème. (i) Le nombre chromatique d’un graphe complet est egal a l’ordre du graphe. (ii) Soit D le degré maximal des sommets d’un graphe G, alors: γ (G ) ≤ 1 + D (iii) Soit p l’ordre d’un sous-graphe complet d’ordre maximal contenu dans un graphe, alors: p ≤ γ (G ) Exemple: CHERTI–IGI-GI ()

Théorie des graphes

May 3, 2012

0/0

Pour ce graphe, (B;C;E; F) est un sous-graphe complet d’ordre p = 4 (il est maximal). De plus, voici les degrés des sommets (cités respectivement): sommets: A B C D E F G degrés: 4 3 4 2 5 6 4 Ainsi, le plus haut degré est D = 6. On sait donc que 4 ≤ γ (G ) ≤ 6 + 1 = 7 Simple exemple: CHERTI–IGI-GI ()

Théorie des graphes

May 3, 2012

0/0

L’ordre de G1 est egal a 4. Le degré du sommet 3 est egal a 4. Les sommets 1 et 2 sont adjacents, ce qui n’est pas le cas des sommets 1 et 4. Les sommets 2 et 3 sont reliés par des aretes multiples. La matrice associée (d’adjacence) a ce graphe est:

Propriété: CHERTI–IGI-GI ()

Théorie des graphes

May 3, 2012

0/0

La somme des degrés d’un graphe non orienté est egal à deux fois le nombre total d’aretes. Pour le graphe G1 : la somme des degrés est egale a 2+3+4+1=10 et le nombre d’aretes est egal a 5. On a = 4 (4 aretes issues du sommet 3) et le sous-graphe complet le est celui composé des sommets 1, 2 et 3 (voir ci-dessus). On a donc N = 3 et 3 ≤ nombre chromatique ≤ 5. Algorithme de coloration : (encore une fois) -On classe dans un tableau les sommets dans l’ordre décroissant de leurs degrés. -On attribue une nouvelle couleur (avec les lettres A,B,... par exemple) au premier sommet non encore coloré du tableau et la meme couleur a chaque sommet non adjacent a un sommet de cette couleur (dans l’ordre du tableau). -On recommence l’ étape précédente jusqu’ a ce que tous les sommets CHERTI–IGI-GI ()

Théorie des graphes

May 3, 2012

0/0

soient colorés. Exemple détaillé avec le graphe suivant :

Etape 1 : on a classe les sommets dans l’ordre décroissant de leurs degrés et on a attribué la couleur A au 1er sommet 2 et au sommet 5 qui ne lui est pas adjacent. On n’a pas pu attribué la couleur A a un autre des sommets car ils sont tous reliés a 2 ou a 5.

CHERTI–IGI-GI ()

Théorie des graphes

May 3, 2012

0/0

Etape 2 : on a attribue la couleur B au sommet 3 (1er sommet libre) et aux sommets 6, 1 et 8 qui ne lui sont pas adjacents. On n’a pas pu attribué la couleur B a un autre des sommets libres car ils sont tous reliés a 3, 6, 1 ou 8.

Etape3 : on a attribué la couleur C au sommet 4 (1er sommet libre) et au sommet 7 qui ne lui est pas adjacent.

Remarque : Cette méthode ne permet pas en général d’obtenir une coloration minimale. Ici, N = 2 et une coloration a la main aurait permis de n’utiliser que deux couleurs CHERTI–IGI-GI ()

Théorie des graphes

May 3, 2012

0/0

(le nombre chromatique est egal a 2). –––––––– Graphes valués: Définition: Un graphe (orienté ou non) G = (S, U ) est valué (à valeurs, à poids) si il est muni d’une application v :U→R (x, y ) → v (x, y ) appelée valuation. On peut étendre la valuation en une fonction S × S → R ∪ {+∞} en posant v (x, y ) = +∞ si (x, y ) ∈ / U. Exemple de graphe valué (ou pondérés c’est à dire à poids):

CHERTI–IGI-GI ()

Théorie des graphes

May 3, 2012

0/0

Recherche de plus courts chemins (rappel) De nombreux problèmes concrets peuvent se modéliser comme des recherches de plus courts chemins dans des graphes valués. Par exemple : • recherche de l’itinéraire le plus rapide en voiture entre deux villes, ou en métro entre deux stations • routage dans des réseaux de télécommunications Certains problèmes d’ordonnancement font aussi appel à des recherches de CHERTI–IGI-GI ()

Théorie des graphes

May 3, 2012

0/0

plus longs chemins. On étudiera principalement des algorithmes qui résolvent le problème suivant : étant donné un sommet x, déterminer pour chaque sommet y la distance et un plus court chemin de x à y. Remarques -Dans un graphe non orienté, on a toujours d (x, y ) = d (y , x ), et toute plus courte chaine de x à y parcourue à l’envers est une plus courte chaine de y à x. -Etant donnés deux sommets x et y, plusieurs cas se présentent : 1) il n’y a pas de chemins / chaines de x à y 2) il existe un ou plusieurs plus courts chemins / chaines de x à y 3) il existe des chemins / chanes de x à y mais pas de plus court. Exemple:

CHERTI–IGI-GI ()

Théorie des graphes

May 3, 2012

0/0

De A à B : il existe un unique plus court chemin (A, K , B ). De A à G : il existe deux plus courts chemins (A, K , G ) et (A, G ). De E à A : il n’existe pas de chemins, donc pas de plus courts chemins. Exemple: CHERTI–IGI-GI ()

Théorie des graphes

May 3, 2012

0/0

De A à E : il existe une infinité de plus courts chemins : (A,K, B,D, E), (A,K, B,D, E, C,D, E), (A,K, B,D, E, C,D, E, . . . , C,D, E),. . . De A à J : il existe des chemins mais pas de plus court : les chemins (A, G,H, F, I ,H, F, I , . . . ,H, F, I , J) sont arbitrairement courts. Circuit absorbant: Définition: Un circuit absorbant est un circuit de valuation négative. CHERTI–IGI-GI ()

Théorie des graphes

May 3, 2012

0/0

Si un graphe possède un circuit absorbant, alors il n’existe pas de plus courts chemins entre certains de ces sommets. Théorème: Soit G un graphe orienté valué n’ayant pas de circuits absorbants, et x et y deux sommets de G . Si il existe un chemin allant de x à y , alors la distance d (x, y ) est bien définie et il existe au moins un plus court chemin de x à y . Dans la suite, les graphes seront donc sans circuits absorbants. On définit de la meme manière un cycle absorbant dans un graphe non orienté. Le théor‘eme reste vrai en remplacant chemin par chaine. Représentation matricielle: Par analogie avec la matrice d’adjacence, on peut représenter un graphe valué par une matrice carrée, dont les coefficients correspondent à la valuation des arcs. Définition: Soit G = (S, U, v ) un graphe valué dont on a numéroté les sommets CHERTI–IGI-GI ()

Théorie des graphes

May 3, 2012

0/0

de 1 à n. La matrice de valuation de G est la matrice carrée M = (mij ), de taillen  × n, définie par v (i, j ) si(i, j ) ∈ U mij = +∞ sinon Exemple: Matrice de valuation du graphe du premier exemple de graphe valué au dessus:

CHERTI–IGI-GI ()

Théorie des graphes

May 3, 2012

0/0

Valuation d’un chemin: Définition: Soit G = (S, U, v ) un graphe valué. La valuation ou longueur d’un chemin (ou d’une chaine) est la somme des valuations de chacun des arcs qui le composent. Exemple: La valuation de la chaine (A, F, C, E,D), dans le graphe précédent, est 5 + 15 + 3 − 3 = 20. Distance et plus court chemin: Définition: Soit G = (S, U, v ) un graphe valué et soient x, y deux sommets de G . CHERTI–IGI-GI ()

Théorie des graphes

May 3, 2012

0/0

• On appelle distance de x à y et on note (par défaut de notation)d (x, y ) le minimum des valuations des chemins / chaines allant de x à y . • On appelle plus court chemin / plus courte chaine de x à y tout chemin / chaine dont la valuation est égale à d (x, y ). Distance et plus court chemin sur l’exemple suivant: ici on met l’accent sur les valuations des arcs tout en laissant les noueds sans valeurs.

CHERTI–IGI-GI ()

Théorie des graphes

May 3, 2012

0/0

-Distance de A à E : d (A, E ) = 5...Plus court(s) chemin(s) :(A, C , B, E ) -Distance de A à D : d (A, D ) = 4...Plus court(s) chemin(s) : (A, D ) et (A, C , D ) -Distance de E à A : non défini.....Plus court(s) chemin(s) : inexistant RECHERCHE DU PLUS COURT CHEMIN Le problème de la recherche du plus court chemin dans un graphe se rencontre dans de nombreuses applications. C’est en réponse à certaines problèmatiques concrètes après modélisation par des graphes. En effet, de nombreux problèmes concrets peuvent se modéliser comme des recherches de plus courts chemins dans des graphes valués. Par exemple : - recherche de l’itinéraire le plus rapide en voiture entre deux villes, ou en bus entre deux stations dans une meme ville. - routage dans des réseaux de télécommunications Certains problèmes d’ordonnancement font aussi appel à des recherches de plus longs chemins CHERTI–IGI-GI ()

Théorie des graphes

May 3, 2012

0/0

(pour englober les taches et leurs retard d’execution. - les problèmes de tournées (Postier, Livreur d’un produit, Distributeur de commerce,...) - certains problèmes d’investissement et de gestion de stocks, -problèmes avec prise de décision selon arboressance d’étude des cas. - les problèmes de programmation dynamique à états discrets et temps discret, On étudiera principalement des algorithmes qui résolvent le problème suivant : étant donné un sommet x, déterminer pour chaque sommet y la distance et un plus court chemin de x à y . Types de problèmes du plus court chemin(Rappel) -le problème de la détermination d’un plus court chemin entre deux sommets, -le problème de la détermination des plus courts chemins d’un sommet vers l’ensemble des autres sommets du graphe, -le calcul du plus court chemin pour l’ensemble des couples de sommets du graphe. CHERTI–IGI-GI ()

Théorie des graphes

May 3, 2012

0/0

Les contraintes ou conditions: si si si si si

les longueurs sont toutes positives ou nulles les longueurs sont toutes égales à l’unité le graphe et les longueurs sont quelconques le graphe est sans circuit le graphe est connexe ou fortement connexe (graphe orienté)

Propriétés des plus courts chemins: Propriété1: Tout sous-chemin d’un plus court chemin est un plus court chemin. Preuve. • Soit C0 = (x0 , x1 , x2 , ..., xn ) un plus court chemin entre x0 et xn . • Soit C = (xp , xp +1 , ..., xq −1 , xq ) un sous-chemin de C0 , avec 0 ≤ p ≤ q ≤ n. • Si C n’est pas un plus court chemin entre xp et xq , alors il existe un autre chemin C 0 = (xp , x10 , x20 , ..., xr0 −1 , xr0 , xq ) entre xp et xq , et dont la longueur est strictement plus petite que celle de C . • Le chemin C1 = (x0 , x1 , ..., xp −1 , xp , x10 , x20 , ..., xr0 , xq , xq +1 , ..., xn ), obtenu en remplacant C par C 0 dans C0 , est alors strictement plus CHERTI–IGI-GI ()

Théorie des graphes

May 3, 2012

0/0

court que C0 , ce qui est absurde. Propriété2: S’ il existe un plus court chemin entre deux sommets x et y , alors il existe un plus court chemin élémentaire entre x et y . Preuve: • Soit C0 = (x0 , x1 , x2 , ..., xn −1 , xn ) un plus court chemin entre x = x0 et y = xn . Si C0 n’est pas élémentaire, il existe deux indices p et q, 0 ≤ p < q ≤ n, tels quexp = xq . • Le sous-chemin C1 = (xp , xp +1 , ..., xq −1 , xq ) est alors un circuit, et c’est aussi un plus court chemin d’après la propriété précedente. Il est donc au moins aussi court que le chemin trivial (xp ), de valuation 0. • Si la valuation de C1 est strictement négative, alors C1 est un circuit absorbant, et il n’existe pas de plus court chemin entre x = x0 et y = xn , ce qui est absurde. C00 = (x0 , x1 , ..., xp −1 , xp , xq +1 , xq +2 , ..., xn −1 , xn ) • Si la valuation de C1 est nulle, le chemin C00 = (x0 , x1 , ..., xp −1 , xp , xq +1 , xq +2 , ..., xn −1 , xn ) a la meme longueur que C0 , c’est donc encore un plus court chemin. On construit CHERTI–IGI-GI ()

Théorie des graphes

May 3, 2012

0/0

ainsi un plus court chemin élémentaire entre x = x0 et y = xn . Distance en nombre d’arcs: C’est un cas particulier de calcul de distance, dans le cas ou tous les arcs sont de valuation 1. Etant donné un sommet initial x, on cherche à déterminer d (x, y ) pour tout sommet y . Principe : Un sommet y est à distance n de x si : 1- il existe un chemin de longueur n de x à y 2- il n’existe pas de chemin de longueur strictement inférieure à n de x à y. Ces deux conditions peuvent se reécrire : 1- y est le successeur d’un sommet à distance n − 1 de x. 2- la distance de x à y n’est pas plus petite que n. Distance en nombre d’arcs : algorithme: L’algorithme est similaire à l’exploration en largeur d’un graphe. On construit deux familles d’ensemble de sommets : Si : ensemble des sommets à distance i de x CHERTI–IGI-GI ()

Théorie des graphes

May 3, 2012

0/0

Ri : ensemble des sommets à distance plus grande que i de x.

–––––— Initialisation : S0 = { x } R0 = S \{x } i =0 répéter Si +1 = G (Si ) ∩ Ri Ri +1 = Ri \Si +1 i ← i +1 jusqu’‘a ce que Si +1 = ∅ ou Ri +1 = ∅ On utilise la notation G (Si ) = ∪ G (s ) = {successeurs des éléments de Si } s ∈S i

Exemple: CHERTI–IGI-GI ()

Théorie des graphes

May 3, 2012

0/0

S0 = { A } , R0 = {B, C , D, E , F , G , H } S1 = {B, G }, R1 = {C , D, E , F , H } S2 = {F , H }, R2 = {C , D, E } S3 = {C , D }, R3 = {E } S4 = { E } , R4 = ∅ d (A, B ) = 1, d (A, C ) = 3, d (A, D ) = 3, d (A, F ) = 2, d (A, G ) = 1, d (A, H ) = 2

d (A, E ) = 4,

Plus court chemin en nombre d’arcs: Une fois connues les distance de x à s pour tout sommet s, on peut CHERTI–IGI-GI ()

Théorie des graphes

May 3, 2012

0/0

déterminer les plus courts chemins. Pour trouver un plus court chemin de x à y , on part de la fin : • on cherche un prédécesseur p de y tel que d (x, y ) = d (x, p ) + 1 (ou tous les prédécesseurs vérifiant cette condition si on cherche tous les plus courts chemins) • on recommence en partant de p Remarque : Si la distance de x à y est bien définie, on a toujours d (x, y ) ≤ d (x, p ) + 1 pour tout prédécesseur p de y , et il existe au moins un prédécesseur pour lequel il y a égalité. Exemple: CHERTI–IGI-GI ()

Théorie des graphes

May 3, 2012

0/0

d (A, B ) = 1, d (A, D ) = 3, d (A, F ) = 2, d (A, H ) = 2

d (A, C ) = 3, d (A, E ) = 4, d (A, G ) = 1,

Un plus court chemin de A à E est :A → B → F → C → E . Principe des algorithmes dans le cas général: Etant donnés un graphe valué G = (S, U, v ) et un sommet x0 , on veut déterminer pour chaque sommet s la distance et un plus court chemin de x0 à s. Les algorithmes de recherche de distance et de plus court chemin dans un CHERTI–IGI-GI ()

Théorie des graphes

May 3, 2012

0/0

graphe valué fonctionnent de la façon suivante. • On calcule les distances d (x0 , s ) par approximations successives. A un stade donné de l’algorithme on dispose d’estimations d (s ) (éventuellement égales à +∞) pour ces distances, et de la donnée d’un prédécesseur P (s ) pour les plus courts chemins. • A chaque étape, on considère un sommet x et un successeur y de x. On compare la valeur d (y ) à celle que l’on obtiendrait en passant par x, c’est-à-dire d (x ) + v (x, y ).

• Si cette deuxième valeur est plus petite que d (y ), on remplace l’estimation d (y ) par d (x ) + v (x, y ) et le père P (y ) par x. –––––––––––––— CHERTI–IGI-GI ()

Théorie des graphes

May 3, 2012

0/0

Plus courts chemins à partir d’un sommet ––––––––––––––––––––– Relaxation Relaxation de l’arc x, y • Si valeursommet [y ] > valeursommet [x ] + l (x, y ) • Alors • valeursommet [y ] = valeursommet [x ] + l (x, y ) • Pr edecesseur [y ] = x Pré-algorithme de Dijistra: • Les distances sont supposées positives • Un ensemble CS (controle des sommets) initialisé à S(tous les sommets) • les valeurs de valeursommet [s ] sont initialisées à ∞ sauf :valeursommet [Origine ] = 0 . • Tant que CS non vide : • Soit r l’élément de CS ayant un valeursommet [r ] minimal • Pour tout arc a = (r , .) d’origine r Faire Relaxation(a) • Supprimer r de CS. CHERTI–IGI-GI ()

Théorie des graphes

May 3, 2012

0/0

Remarques: • lorsqu’un sommet s quitte CS on ne peut pas trouver un chemin plus court entre Origine et s par la suite. • Si le chemin le plus court entre Origine et s passe par r , alors il est composé d’un chemin le plus court entre Origine et r et d’un plus court r et s. ––––––– L’algorithme de Dijkstra trouve son utilité dans le calcul des itinéraires routiers. Le poids des arcs pouvant être la distance (pour le trajet le plus court), le temps estimé (pour le trajet le plus rapide), le plus économique (avec la consommation de carburant et le prix des péages). Une application des plus courantes de l’algorithme de Dijkstra est le protocole open shortest path first qui permet un routage internet très efficace des informations en cherchant le parcours le plus efficace. Les routeurs IS-IS utilisent également l’algorithme. CHERTI–IGI-GI ()

Théorie des graphes

May 3, 2012

0/0

–––––––Algorithme (version simple) Notations d’abord: Pour un graphe orienté G (S, U ) , trouver les plus courts chemins à partir d’un sommet de départ s ∈ S vers tous les autres sommets. ST :ensemble des sommets traités. l (r ) , r ∈ S : longeur du plus court chemin de s à r qui ne passe pas par des sommets de ST . A chaque itération -on choisit le sommet non-traité le plus proche de ST -on l’ajoute à ST -on met à jour les l de ses voisins L’algorithme: ST ←− ∅ Pour r ∈ S Faire l (r ) ←− ∞ finPour l (s ) ←− 0 CHERTI–IGI-GI ()

Théorie des graphes

May 3, 2012

0/0

Tant que (ST 6= S ) r ←− argmin{l (v ) : v ∈ / ST } ST ←− ST ∪ {r } Pour w ∈ voisins (r ) Faire l (w ) ←−min{l (w ) , l (r ) + valuationrw } finPour finTantQue — les problèmes d’optimisation de réseaux (routiers, télécommunications), — certaines méthodes de traitement numérique du signal, de codage et de décodage de l’information, — les problémes de labyrinthe. ...etc.... La formulation du problème Etant donné un graphe orienté G = (X , A), on associe à chaque arc a ∈ A (ensemble des arcs) un nombre l (a) ∈ R appelé “longueur” de l’arc. On dit alors que G est valué par les longueurs l (a). Si a = (i, j ), on utilisera également la notation lij pour la longueur de l’arc a. CHERTI–IGI-GI ()

Théorie des graphes

May 3, 2012

0/0

Le problème du plus court chemin entre deux sommets i et j sera de trouver un chemin µ(i, j ) de i et j dont la longueur totale l ( µ ) = ∑ l (a ) a ∈ µ(i, j ) l (a) soit minimum. a ∈µ(i ,j )

l (a) peut etre un cout de transport sur l’arc a, ou les dépenses de construction de l’arc a, comme le temps nécessaire pour parcourir l’arc a, etc... Résolution dans le cas où toutes les longueurs seraient positives. L’algorithme présenté est le très célèbre algorithme de Moore-Dijkstra. Algorithme de MOORE-DIJKSTRA : Les données: -un graphe dont les arcs sont valués par des nombres positifs, - un sommet s racine du graphe à partir duquel on veut déterminer les plus courts chemins aux autres sommets, - pour chaque sommet x deX , l’ensemble succ (x ) de ses successeurs. Posons X = {1, 2, ..., n}. Soit lij la longueur de l’arc (i, j ) si (i, j ) ∈ A. Définissons pi ∗ (i )comme la longueur minimum des chemins du sommet 1 au sommet i ; CHERTI–IGI-GI ()

Théorie des graphes

May 3, 2012

0/0

en particulier pi ∗ (1) = 0. L’algorithme procède en n − 1 itérations. Au début de chacune des itérations, l’ensemble des sommets est partitionné en deux sous-ensembles S et S = X \S. Le sous-ensemble S (initialisé à {1}) contient les sommets définitivement marqués, c’est-à-dire les sommets pour lesquels la marque pi (i ) représente effectivement la longueur du plus court chemin entre le sommet 1 et le sommet i. Le complémentaire S contient tous les sommets ayant une marque provisoire définie par :∀k ∈ S : pi (k ) = min (pi (i ) + lik ). k ∈S ∩Γk−1

Algorithme (Moore-Dijkstra) L’algorithme de Dijkstra-Moore utilise une stratégie gloutonne lorsqu’il choisit le sommet le moins couteux à chaque étape. On démontre que dans le cas de cet algorithme, cette stratégie conduit à un résultat global optimal. Recherche du plus court chemin entre deux sommets dans un graphe à longueurs positives. CHERTI–IGI-GI ()

Théorie des graphes

May 3, 2012

0/0

Algorithme Moore Dijistra: Recherche du plus court chemin entre deux sommets dans un graphe a longueurs positives. Etape 1: Initialisations S = {2, 3, 4, ..., n} pi (1) =  0 l1i si i ∈ Succ (1) pi (i ) = +∞ sinon Etape2: Selection du min: pi (j ) = min (pi (k )) k ∈S

faire S ←− S / {j } (retirer j ) si S = ∅ alors arret. Etape3: Entrée du court chemin: Faire pour tout i ∈ S ∩Succ (j ) pi (i ) ←− min (pi (i ); pi (j ) + lji ) Retourner à l’étape 2 Exemple: Soit le graphe orienté suivant: CHERTI–IGI-GI ()

Théorie des graphes

May 3, 2012

0/0

Les itérations de l’algorithme précédent sont les suivantes : On indique à chaque fois et au départ entre parenthèses l’étape utilisée: (Etape1)S = {2, 3, 4, 5, 6}, Traitement du sommet 1: pi (1) = 0, pi (2) = 7, pi (3) = 1,(sommet 3 suivant de 1 dans le plus court chemin) pi (4) = pi (5) = pi (6) = ∞ CHERTI–IGI-GI ()

Théorie des graphes

May 3, 2012

0/0

Traitement du sommet 3: (Etape2) j = 3, S = {2, 4, 5, 6} (Etape3)S ∩ Γ(3) = {2, 5, 6}, pi (2) = min(7, 1 + 5) = 6, pi (5) = min(∞, 1 + 2) = 3,(sommet 5 suivant de 3 dans le plus court chemin) pi (6) = min(∞, 1 + 7) = 8 Traitement du sommet 5: (Etape2) j = 5, S = {2, 4, 6} (Etape3) S ∩ Γ(5) = {2, 4}, pi (2) = min(6, 3 + 2) = 5,(sommet 2 suivant de 5 dans le plus court chemin) pi (4) = min(∞, 3 + 5) = 8 Traitement du sommet 2: (Etape2) j = 2, S = {4, 6} (Etape3) S ∩ Γ(2) = {4, 6}, pi (4) = min(8, 5 + 4) = 8, pi (6) = min(8, 5 + 1) = 6(sommet 6 suivant de 2 dans le plus court chemin) CHERTI–IGI-GI ()

Théorie des graphes

May 3, 2012

0/0

Traitement du sommet 6: (Etape2) j = 6, S = {4} (Etape3) S ∩ Γ(6) = ∅ (Etape2) j = 4, S = ∅ Les longueurs des plus courts chemins seront donc : pi (1) = 0, pi (2) = 5, pi (3) = 1, pi (4) = 8, pi (5) = 3 et pi (6) = 6. On rappele que pi (s ) désigne le plus court chemin en valeur du sommet racine 1 au sommet s. Pour connaitre l’itinéraire du plus cours chemin, il faut mémoriser les sommets de ce parcours. Dans notre exemple, le chemin selectioné est formé des sommets: (1) , (3) , (5) , (2) , (6) . Remarque: -Le chemin le plus court depends de l’orientation des arcs et de leurs valuations. CHERTI–IGI-GI ()

Théorie des graphes

May 3, 2012

0/0

-Le noeud suivant à traiter est celui correspondant à la plus petite étiquette. Exemple2: ––––––––— Pour la détermination des plus courts chemins entre toutes les paires de sommets (on se place toujours dans la situation ou les valuations sont toutes positives). On peut,utiliser l’algorithme précédent, mais il est faible devant ce genre de problème. On utilise de préférence un algorithme lié aux méthodes matricielles: L’algorithme de Floyd. Notons L = (lij ) la matrice n × n dont le terme (i, j ) est égal à la longueur de l’arc (i, j ) si (i, j ) ∈ A et+∞ sinon (pour les termes diagonaux, on pose lii = 0). (k )

Pour 1 ≤ k ≤ n, notons L(k ) = (lij ) la matrice dont le terme (i, j ) représente la longueur minimale d’un chemin d’origine i et d’extrémité j, et astreint à la condition que tous les sommets intermédiaires appartiennent au sous-ensemble {1, 2, ..., k }. Pour k = 0, on a L(0 ) = L, puisque lij est la longueur du chemin direct (unique) entre i et j (sans sommet intermédiaire). On remarque alors que les matrices L(k ) sont liées par la relation de récurrence : (k ) (k −1 ) (k −1 ) (k −1 ) + lkj ) lij =min(lij , lik CHERTI–IGI-GI ()

Théorie des graphes

May 3, 2012

0/0

En effet, deux situations peuvent se produire suivant que le plus court chemin de i à j à sommets intermédiaires dans {1, 2, ..., k } emprunte le sommet k ou non. Dans le premier cas, ce chemin est formé d’un sous-chemin entre i et k, suivi d’un sous-chemin entre k et j, chacun ne pouvant utiliser comme sommets intermédiaires que des sommets de {1, 2, ..., k − 1} et devant etre de longueur minimale. On doit donc avoir (k ) (k −1 ) (k −1 ) + lkj lij = lik . (k )

(k −1 )

. Dans le second cas, on doit évidemment avoir lij = lij La matrice L(n ) , donnant l’ensemble des valeurs des plus courts chemins dans le graphe, pourra donc etre determinée en n étapes de récurrence à partir de la relation précédente. Algorithme:(FLOYD): Recherche de la matrice des plus courts chemins dans un graphe à longueurs positives. Pour Pour k de 1 à n Pour tout i et j de 1 à n faire lij = min(lij , lik + lkj ) Remarque: Comme pour l’algorithme précédent, si l’on souhaite, en plus de la longueur des chemins, exhiber explicitement le chemin, on CHERTI–IGI-GI ()

Théorie des graphes

May 3, 2012

0/0

mettra à jour, au fur et à mesure de l’introduction d’un nouveau sommet k, une matrice de prédécesseurs. ––––– Les programmes en matlab et C: EN TP –––––

CHERTI–IGI-GI ()

Théorie des graphes

May 3, 2012

0/0

View more...

Comments

Copyright ©2017 KUPDF Inc.
SUPPORT KUPDF