[PDF] CH.1 GRAPHES ORIENTÉS 1.1 Rappels sur les





Previous PDF Next PDF



Quelques rappels sur la théorie des graphes

chaîne au lieu de chemin et de cycle au lieu de circuit. Dans le cas d'un cycle



Théorie des graphes

7 avr. 2011 4 Graphes sans circuit. 5 Probl`eme du plus court chemin. L. Sais (Algorithmique & Programmation 5). Théorie des graphes. 7 avril 2011.



CH.1 GRAPHES ORIENTÉS

1.1 Rappels sur les graphes. • 1.2 Le parcours en profondeur. • 1.3 Les graphes sans circuit. • 1.4 Le plus court chemin – valuations positives.



Théorie des graphes et optimisation dans les graphes Table des

on parlera de chaine au lieu de chemin et de cycle au lieu de circuit. Un graphe sans cycle est dit acyclique. Exercice : Montrer que s'il existe un chemin 



Graphes sans circuit et bilinéarité

se générale de graphes sans circuit utilisés en informatique ou en linguis- tique (DES.80) et le "calcul matriciel". Chaque graphe de la classe retenue.



GRAPHE

I.3 Différents modes de représentation d'un graphe . . . . . . . . . . . . . . . . 10 III.1.4 Notion de rang dans un graphe orienté sans circuit .



Présentation PowerPoint

Cheminement optimal – Les différents cas. Algorithme de Bellman. Algorithme de Ford. Algorithme de Dijkstra. Graphe sans circuit Graphe avec ou sans circuit.



RESOLUTION DE PROBLEMES DE PLUS COURT CHEMIN

Puis nous traiterons le cas d'un graphe quelconque. I Algorithme de détermination des plus courts chemins : cas des graphes sans circuit. Principe de l' 



Graphes fortement connexes c-minimaux et Graphes sans circuit co

saris circuit) dont le nombre total de circuits (resp. cocircuits) elementaires est minimal. On caracterise ces graphes par I'existence d'un arbre (ou dun 



SUR LES QUASI-NOYAUX DUN GRAPHE 1. Introduction

Tout graphe localement fini it droite et sans circuit a un noyau. L'existence d'un noyau n'est pas garantie pour les graphes sans circuit.



[PDF] Quelques rappels sur la théorie des graphes - CNRS

Le tri topologique d'un graphe orienté sans circuit G = (S A) consiste à ordonner linéairement tous ses sommets de telle sorte que si l'arc (u v) ? A alors 



[PDF] Théorie des graphes et optimisation dans les graphes - CNRS

Une arborescence est un graphe orienté sans circuit admettant une racine s0 ? S telle que pour tout autre sommet si ? S il existe un chemin unique allant de 



[PDF] Graphes sans circuit et bilinéarité - Numdam

Graphes sans circuit et bilinéarité Mathématiques et sciences humaines tome 81 (1983) p 5-45



[PDF] Theorie des graphes

Graphes sans circuits Théorie des Graphes - 2015/2016 ? Attention ce ne sont pas nécessairement des arbres ? On parle ici de circuit et non pas de 



[PDF] GRAPHE

Circuit dans un graphe orienté : un chemin simple finissant à son point de départ Cycle dans un graphe non-orienté : une chaîne simple finissant à son point de 



[PDF] GRAPHE ET LANGAGE

Un graphe orienté sans circuit n'est pas forcément un arbre orienté On appellera : — racine de l'arbre : le sommet qui n'a pas de prédécesseur — feuilles de l 



[PDF] CH1 GRAPHES ORIENTÉS - IGM

1 1 Rappels sur les graphes • 1 2 Le parcours en profondeur • 1 3 Les graphes sans circuit • 1 4 Le plus court chemin – valuations positives



[PDF] Introduction à la théorie des graphes - Apprendre-en-lignenet

Un graphe sans cycle mais non connexe est appelé une forêt Une feuille ou sommet pendant est un sommet de degré 1 2 1 3 6 4



[PDF] CHAPITRE 2 : Théorie des graphes et applications

Lorsque le graphe est sans circuit on peut appliquer l'algorithme de Bellman-Ford consistant `a affecter une marque `a chaque sommet du graphe ordonné en 



[PDF] Théorie des graphes

7 avr 2011 · Tout graphe sans circuit poss`ede au moins une source et un puits preuve : Considérons un chemin c de G qui soit maximal au sens suivant : c=[ 

  • C'est quoi un graphe sans circuit ?

    Définition 7.5 Un graphe sans circuit est un graphe orienté dans lequel il n'y a pas de circuit. C'est une définition qui paraît triviale, mais il faut savoir que c'est la première fois que nous avons une définition du concept graphe sans circuit.
  • Comment savoir si un graphe est sans circuit ?

    Une extension linéaire d'un graphe G=(V,E) est un ordre strict total P=(V,F) tel que E?F. Théorème : Un graphe orienté est sans circuit quand il poss? une source (resp. un puits) et que tous ses sous-graphes sont sans circuit.
  • Comment déterminer les niveaux d'un graphe ?

    Le degré d'un sommet est égal au nombre d'arêtes qui le relient aux autres sommets. Dans l'exemple précédent, A est de degré 2, B de degré 2, D de degré 0. Propriété : La somme des degrés de tous les sommets d'un graphe est égal au double du nombre total d'arêtes.
  • Un graphe complet est un graphe dont chaque sommet est relié directement à tous les autres sommets. Un graphe est connexe quand tout sommet peut être relié à tout autre sommet par une arête ou une suite d'arêtes.

Opti-comb ch 1 1

CH.1 GRAPHES ORIENTÉS

• 1.1 Rappels sur les graphes • 1.2 Le parcours en profondeur • 1.3 Les graphes sans circuit • 1.4 Le plus court chemin - valuations positives • 1.5 Le plus court chemin - cas sans circuit • 1.6 Le plus court chemin - cas général

Opti-comb ch 1 2

1.1 Rappels sur les graphes

Permettent de représenter des relations quelconques entre des objets. Sommetsou noeuds, reliés par des arcs(orientés). s t arc

Sommet

initial

Sommet

final

Deux sommets reliés sont adjacents.

Nombre d'arcs quittant un sommet : degré sortant. Nombre d'arcs arrivant à un sommet : degré entrant. Les sommets et les arcs peuvent porter des informations (étiquettes).

Opti-comb ch 1 3

Chemind'un sommet à un autre, dont la longueur est le nombre d'arcs. Circuit: chemin revenant à son point de départ. Chemin simple: aucun sommet n'est répété (sauf pour un circuit). Chemin élémentaire: aucun arc n'est répété.

Propriétés :

1. Si deux sommets sont reliés par un chemin, ils sont reliés par un

chemin simple ;

2. Si un graphe a nsommets, un chemin simple est de longueur au

plus n- 1 si l'origine et l'extrémité sont différentes ; un circuit simple est de longueur au plus n;

3. Conséquence : si deux sommets différents sont reliés par un

chemin, alors ils sont reliés par un chemin de longueur au plus n.

Opti-comb ch 1 4

Exemple :

12 34
Utilisation pour modéliser des réseaux de communication. Dans ce cas, les étiquettes peuvent porter un distance, un temps, un coût, ... On peut aussi modéliser un système de transition entre états (automate). 12 34
a a a abbbb

Une suite de aet de best la suite

des étiquettes d'un chemin de 1 vers 1 si et seulement si cette suite contient un nombre pair de aet un nombre pair de b.

Opti-comb ch 1 5

Représentation par matrice d'adjacence :

1234
10110
20001
30100
40010
= MOn lit dans la matrice le nombre d'arcs, les degrés entrants et sortants (attention aux boucles !)

Dans M

n , l'élément (s,t) est le nombre de chemins de sà t. Cette matrice peut aussi comporter les grandeurs (distances, coûts) s'il y a lieu à la place du 1.

Inconvénient : si le graphe a peu (<< n

2 ) d'arcs, la matrice est creuse.

Mais sa consultation est en O(n

2 ) malgré tout.

Opti-comb ch 1 6

23
2 4 1 2 3 4 3 On peut dans ce cas représenter un graphe par la liste des successeurs. (cf. arbres). Les informations supplémentaires peuvent être stockées dans les structures.

La taille requise est le nombre d'arcs. Les

degrés sortants sont visibles, mais pas les degrés entrants. Il peut être utile parfois de déduire la représentation par liste des prédé- cesseurs de celle-ci (exercice). La complexité des algorithmes sur les arbres dépend donc de la façon dont ceux-ci sont représentés.Représentation par listes des successeurs :

Opti-comb ch 1 7

1.2 Le parcours en profondeur

On veut explorer un graphe à partir d'un sommet donné (on n'atteindra évidemment que les sommets reliés à celui d'où on part.) Mais si on veut seulement parcourir tous les sommets atteignables, on peut le faire avec par un parcours en profondeur. On procède comme pour les arbres, mais du fait que les sommets peuvent être atteints à partir de plusieurs sommets (et non plus à partir du seul père), on marque les sommets déjà visités pour ne pas les visiter de nouveau. On fabrique ainsi un arbre contenant tous les sommets atteignables à partir du sommet de départ, dont les arcs sont certains des arcs du graphe.

Opti-comb ch 1 8

fonctionINITIALISE_EXPLORATION() pourchaque sommet tfaireexplore[t] = 0; fonctionEXPLORATION(sommet s) si (explore[s] = 0) alors explore[s] = 1; pourchaque successeur tde sfaireEXPLORATION(t); fonctionPROFONDEUR(sommet s)

INITIALISE_EXPLORATION();

EXPLORATION(s);

La fonction principale est essentiellement la même que pour l'explora- tion des arbres. Si on veut visiter tous les sommets, on peut modifier ainsi :

Opti-comb ch 1 9

fonctionDESCRIPTION()

INITIALISE_EXPLORATION();

pourchaque sommet sfaireEXPLORATION(s); A DB C GEF

Si on prend les sommets dans l'ordre

croissant, on obtient ici deux arbres, enracinés en A et en C.

En "déployant" ces arbres :

A B EF D C G

Arc de retour

Arc transverse

Arc direct

Arc de la

forêt

Opti-comb ch 1 10

On attribue à chaque sommet son numéro d'ordre préfixe(établi lorsqu'on appelle la procédure pour un sommet non encore exploré) : fonctionINITIALISE_EXPLORATION() pourchaque sommet tfaireexplore[t] = 0; compteur = 0; fonctionEXPLORATION(sommet s) si(explore[s] = 0) alors explore[s] = 1; ordre[s] = compteur++; pourchaque successeur tde sfaireEXPLORATION(t); fonctionDESCRIPTION()

INITIALISE_EXPLORATION();

pourchaque sommet sfaireEXPLORATION(s);

Opti-comb ch 1 11

Propriété : les arcs transverses relient un sommet à un sommet de numéro plus petit. Cette propriété est utile pour montrer la validité de certains algorithmes. Elle servira en particulier dans la section suivante.

Complexité de l'exploration en profondeur :

Pour chaque sommet, on examine ses successeurs, puis on ne revient pas à ce sommet. On examine chaque arc une fois et une seule.

La complexité est donc O(a).

Opti-comb ch 1 12

1.3 Les graphes sans circuit

La propriété de n'avoir aucun circuit est indispensable dans certains cas. Par exemple, pour les graphes de priorité. Certaines tâches doivent être exécutées avant d'autres. Pour qu'une exécution soit possible, il est indispensable qu'aucun circuit n'apparaisse. Une fois ceci vérifié, il faudra trouvé un ordre possible d'exécution.

C'est ce qu'on appelle le tri topologique.

BFD H GCE A

Ici, un ordre possible est : A C B F D E G H

Opti-comb ch 1 13

Pour tester si un graphe possède un circuit, on utilise une exploration en profondeur modifiée. Proposition: un graphe possède un circuit si et seulement si, dans une exploration en profondeur, il existe un arc de retour.

S'il existe un arc de retour, il y a bien entendu

un circuit : s t Supposons qu'il y a un circuit. Nous allons montrer qu'il existe un arc de retour. Soit un tel circuit, et soit sle sommet de ce circuit qui a le plus petit numéro et soit tson prédécesseur sur ce circuit. Tous les sommets de ce circuit ont donc un numéro plus grand que celui de s. Si tous sont descendants de s, c'est aussi le cas de t, donc tsest un arc de retour.

Opti-comb ch 1 14

Si tous les sommets du circuit ne sont pas descendants de s, soit ule premier dont le successeur vn'est pas descendant de s. Le sommet va un numéro plus grand que celui de s. Il est donc visité après s. Mais ce n'est pas un descendant de s. Ce n'est donc pas non plus un descendant de u. Si son numéro était plus petit que celui de u, il serait visité entre set u, c'est-à-dire pendant que sont visités les descendants de s, ce qui est contraire à l'hypothèse. Le numéro de vest donc plus grand que celui de u. L'arc uvest donc un arc qui n'est pas direct et qui relie un sommet à un autre de numéro plus grand.

Ceci aussi est impossible.

Donc tous les sommets du circuit sont descendants de s, et il existe un arc de retour. L'algorithme consiste donc à chercher s'il existe un arc de retour dans l'exploration en profondeur du graphe.

Opti-comb ch 1 15

On procède par marquage, mais les sommets peuvent avoir trois

états :

• avantla première visite, le sommet est blanc; • pendantqu'on explore ses descendants, le sommet est gris; • aprèsla dernière visite, le sommet est noir. Quand on examine un arc dans le parcours en profondeur, lorsqu'il s'agit d'un arc qui sera dans la forêt, son extrémité est encore blanche ; lorsqu'il s'agit d'un arc direct ou d'un arc transverse, son extrémité déjà est noire ; lorsqu'il s'agit d'un arc de retour, son extrémité est grise.

D'où l'algorithme :

Opti-comb ch 1 16

fonctionINITIALISE_TEST_CIRCUIT() pourchaque sommet tfaireexplore[t] = 0;/* sommet blanc */ trouve = 0; fonctionTESTE_ARC_RETOUR(sommet s) si(explore[s] = 0) alors/* si s est blanc */ explore[s] = 1; /* il devient gris */ pourchaque successeur tde stant quetrouve = 0 faire si(explore[t] = 1) alorstrouve = 1; sinonTESTE_ARC_RETOUR(t); explore[s] = 2; ecrire(s); /* il devient noir */ } /* ecrire : tri topologique */ fonctionTESTE_CIRCUIT()

INITIALISE_EXPLORATION();

pourchaque sommet stant quetrouve = 0 faireTESTE_ARC_RETOUR(s);

Opti-comb ch 1 17

Le même algorithme permet d'effectuer un tri topologique. Un tri topologique est un ordre dans lequel, s'il existe un arc de svers t, alors sreçoit un numéro d'ordre plus petit que t. Considérons les sommets écrits dans l'ordre postfixe d'exploration en profondeur dans un graphe sans circuit. Les sommets sont alors numérotés dans l'ordre où ils deviennent noirs. L'ordre inverseest un tri topologique des sommets. Il faut vérifier que, s'il existe un arc de svers t, alors le numéro de s est plus grandque celui de t.

Or dans un graphe sans circuit on a :

• des arcs de la forêt, connectant un père à son fils ; • des arcs directs, connectant un sommet à un descendant ; • des arcs transverses connectant un sommet encore gris à un déjà noir. Dans ces trois cas, la condition d'ordre est satisfaite.

Opti-comb ch 1 18

BFD H GCE A L'ordre postfixe est ici : H G E D B C A F, correspondant à

l'ordre topologique F A C B D E G H.Ceci est réalisé en même temps que le test par une écriture.

Opti-comb ch 1 19

1.4 Le plus court chemin - valuations positives

Graphe orienté dont chaque arc est valué.

Longueurd'un chemin = Somme des valeurs des arcs le constituant. Problème : trouver un plus court chemin d'un sommet donné à un autre. Les algorithmes donnent tous les plus courts chemins d'un sommet donné (origine) à tous les autres. Parfois problème sans solution : s'il existe un circuit dont la longueur est négative (circuit absorbant). En bouclant sur ce circuit, on trouve une longueur qui tend vers -.

Deux cas plus faciles :

- toutes les valeurs sont positives ou nulles ; - le graphe n'a aucun circuit.

Opti-comb ch 1 20

Cas où toutes les valeurs sont positives ou nulles. Le graphe considéré a ses arcs valués par une grandeur positive ou nulle qu'on imaginera comme leur longueur. La longueur d'un chemin est donc évidemment la somme des longueurs des arcs du chemin. Soit un sommet donné s. Il s'agit de trouver le plus court chemin de s

à chacun des autres sommets du graphe.

15 24
3 1 5 1 26
9 2 Le plus court chemin de 1 à 5 passe par 4 puis 3.

L'algorithme de Dijkstrapermet de trouver

tous ces chemins. On cherche à chaque

étape la meilleure solution. Par chance, cela

donne la meilleure solution globale.

On a affaire à un algorithme glouton.

Opti-comb ch 1 21

L[i, j] est la longueur de l'arc de ià jet si iet jne sont pas reliés. On part du sommet 0 et on note D[i] la longueur du plus court chemin trouvé à un instant donné. Un ensemble Econtient les sommets pour lesquels on a trouvé le plus court chemin définitif. Au départ, Ene contient que 0. A chaque itéra- tion, un sommet est ajouté àEet les distances D[i] sont actualisées. 04 13 2 1 5 1 26
9 2

Itér.EtD[1]D[2]D[3]D[4]

0 {0} - 1 2 9

1 {0,1} 1 1 6 2 9

2 {0,1,3} 3 1 4 2 8

3 {0,1,3,2} 2 1 4 2 5

4 {0,1,3,2,4} 4 1 4 2 5

A chaque itération, on choisit le sommet tqui a le D[t] minimum, puis on réévalue les D[i] des successeurs de t. Pour reconstituer le chemin, on peut tenir à jour un tableau Cde prédé- cesseurs actualisé lorsque D[i] est changé.

Opti-comb ch 1 22

fonctionDIJKSTRA()

E= {0}; /**********************/

pourchaque sommet i0faire/* Initialisation */

C[i] = 0;D[i] = L[0,i]; /* */

pourk= 1 àn-1 faire/**********************/ { /* Iterations */ t= sommet Etel que D[t] est minimum;/* */

E= E{t}; /* Sommet ajoute a E */

pourchaque iE successeur de tfaire/* */ si(D[t] + L[t, i] < D[i]) alors/* Actualisation de D */

D[i] = D[t] + L[t, i]; /* */

C[i] = t; /* Actualisation de C */

Opti-comb ch 1 23

Complexité de l'algorithme:

Si le graphe a nsommets et aarcs, l'initialisation est en O(n). Il y a n - 1 itérations. La recherche du minimum est en O(n) chaque fois, soit O(n 2 ) en tout Quant à l'actualisation, elle nécessite au total l'examen de tous les arcs, soit a; l'actualisation d'une valeur est en temps constant d'où O(a).

Puisque typiquement n < a< n

2 , la complexité finale est O(n 2 Ceci est vrai si le graphe est représenté par un tableau des successeurs. On peut représenter l'ensemble des sommets et les valeurs des tableaux par une file de priorité pour laquelle la recherche du minimum et l'actualisation d'une valeur sont en O(log n) ainsi que. On a ainsi une complexité O(alog n), bien meilleure si a< n 2

Opti-comb ch 1 24

Justification de l'algorithme :

La justification n'est généralement pas indispensable pour l'implémen- tation ou la compréhension d'un algorithme. La démonstration peut être schématisée. Supposons que le chemin trouvé de 1 à un sommet t ne soit pas le plus court, et prenons le t le plus proche de 1 pour lequel cela se produit : 1t u

Chemin trouvé

Chemin plus court

Ensemble Eavant qu'on

choisisse t

Sommet qu'on aurait dû

choisir au lieu de t

Opti-comb ch 1 25

Remarques:

Lorsque toutes les valuations valent 1, la longueur de chemin est le nombre d'arcs qui le constituent. Dans ce cas, l'algorithme de Dijkstra est inutile, puisqu'une exploration en largeur (complexité O(a)) fournit les plus courts chemins. Si les valuations sont des entiers au plus égaux à d, on peut couper chaque arc en arcs de valuation 1 en introduisant des sommets supplémentaires. Le nombre d'arcs du graphe obtenu est donc majoré par d a. Sur ce graphe on effectue une exploration en largeur, ce qui fournit un algorithme de recherche de plus court chemin pour le graphe original en un temps O(d a), ce qui est efficace lorsque dn'est pas trop grand. Dans le cas général, une implémentation des files de priorité sous forme de tas de Fibonacci permet d'améliorer la complexité à O(a+ nlog n).

Opti-comb ch 1 26

1.5 Le plus court chemin - cas sans circuit

Même si certaines valuations des arcs sont négatives, il y a des chemins de plus courte longueur, parce qu'un tel graphe n'a qu'un nombre fini de chemins d'un sommet à un autre. En particulier, tous les chemins sont simples. Bien sûr seuls les sommets atteignables à partir du sommet d'origine seront trouvés. L'algorithme de Bellman commence par effectuer un tri topologique à partir de l'origine, par une exploration en profondeur.quotesdbs_dbs16.pdfusesText_22
[PDF] graphes et algorithmes gondran minoux pdf

[PDF] algorithme des graphes exercices corrigés

[PDF] les graphes en c openclassroom

[PDF] algorithme de recherche des composantes connexes d'un graphe

[PDF] algorithme composante connexe graphe

[PDF] théorie des graphes livre gratuit

[PDF] suite graphique théorie des graphes

[PDF] histoire de la théorie des graphes

[PDF] théorie des graphes cours et exercices corrigés

[PDF] le gone du chaaba analyse

[PDF] le gone du chaaba azouz begag commentaire

[PDF] les différentes théories des organisations

[PDF] théorie des organisations résumé

[PDF] le gone du chaaba texte intégral

[PDF] telecharger le gone du chaaba livre