[PDF] Algorithmique de graphes Un graphe non orienté est





Previous PDF Next PDF



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

Comme pour les graphes non orientés une façon (naïve) de déterminer si un graphe orienté est fortement connexe consiste à calculer sa fermeture transitive : si 



Aujourdhui Exemple PARTITION Les graphes Aujourdhui Exemple PARTITION Les graphes

14 déc. 2009 permet de construire la fermeture transitive d'un graphe orienté ou non orienté. Algorithme de Warshall. • À partir de la matrice d'adjacence A ...



Les graphes BTS SIO2 Les graphes BTS SIO2

c) Fermeture transitive d'un graphe. 3. Graphes valués a) Définition b) Chemin minimal – chemin maximal. 4. La méthode Per. Page 2. 1. Graphes simples orientés.



Algorithmique des graphes - 3 — Graphes orientés suite

Entrées : un graphe orienté connexe G. Sortie : la fermeture transitive de G. 1 F ← GrapheOrienté(G.sommets());. 2 pour 



Algorithmes en Java Chap. 5 : Graphes

11 nov. 2013 Résultat : FT fermeture transitive du graphe. Algorithme 9 : FermetureTransitive ... Un graphe valué est un graphe orienté muni d'une application ...



Algorithmique Contrôle no 4 (C4) Algorithmique Contrôle no 4 (C4)

28 févr. 2022 ... fermeture transitive d'un graphe. Écrire la fonction CCFromWarshall ... connexe du sommet x dans le graphe orienté G. Choisissez la version ...



Graphes orientés (§12.4) Terminologie Parcours darbres orientés

Algorithme FloydWarshall(G). Entrée graphe orienté G. Sortie fermeture transitive G* de G i 1 pour tout v G.sommets() numéroter v par vi.



Liens entre probl`emes de plus courts chemins de fermeture

22 mai 2007 2.1 Fermeture transitive d'un graphe orienté . . . . . . . . . . . . 4. 2.2 Fermeture transitive d'une matrice booléenne . . . . . . . . . 4.



Algorithmique Contrôle no 4 (C4)

1 mars 2017 Figure 1 – Graphe orienté. 1. Représenter ... — L'algorithme de Warshall calcule la matrice d'adjacence de la fermeture transitive d'un graphe.



Exemple de calcul de fermeture transitive avec les matrices

Voici le graphe pour lequel on se propose de calculer la fermeture transitive en calculant les puissances successives des matrices.



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

orienté alors il existe un chemin élémentaire de u vers v. idem



Graphes orientés (§12.4) Terminologie Parcours darbres orientés

Algorithme FloydWarshall(G). Entrée graphe orienté G. Sortie fermeture transitive G* de G i 1 pour tout v G.sommets() numéroter v par vi.



Algorithmique de graphes

4.4. Tri topologique dans un graphe orienté sans circuit . . . . . . . . . . . . . . . . . . . 16. 4.5. Fermeture transitive d'un graphe .



Liens entre probl`emes de plus courts chemins de fermeture

13?/04?/2009 aussi la fermeture transitive de graphe orienté acyclique de graphe non orienté (cela revient au calcul des composantes connexes)



TD 2 : Fermeture transitive

Dessinez la fermeture transitive des graphes suivants : Soit G un graphe orienté sans circuit. Montrer qu'il existe un unique graphe G qui soit ?-.



Travaux Dirigés

Donner le nombre d'arêtes d'un graphe non orienté complet de n sommets. Fermeture transitive d'un graphe G=(XU) orienté et composantes fortement.



Liens entre probl`emes de plus courts chemins de fermeture

de fermeture transitive et de multiplication de matrices. Bertrand Marc. 22 mai 2007. Table des mati`eres 2.1 Fermeture transitive d'un graphe orienté .



Aujourdhui Exemple PARTITION Les graphes

14?/12?/2009 permet de construire la fermeture transitive d'un graphe orienté ou non orienté. Algorithme de Warshall. • À partir de la matrice d'adjacence A ...



Algorithmique des graphes

un chemin est une cha?ne dont tous les arcs sont orientés ”dans le même sens”. Définitions. – Fermeture transitive la fermeture transitive d'un graphe 



Clôture transitive - University of Paris-Est Marne-la-Vallée

UMLV 541 Problème G = (S A) graphe (orienté) Calculer H = (S B) où B est la clôture réflexive et transitive de A Note: (st) ? B ssi il existe un chemin de s à t dans G



Fermeture transitive d'un graphe - techiedelightcom

• Fermeture transitive • Explication de l’algorithme de Warshall Un graphe orienté pondéré est un graphe orienté muni d’une



Algorithmique des graphes

La fermeture transitive d’un graphe G=(SA) est un graphe G* avec les même sommets S mais dans lequel il existe un arc entre x et y si et seulement si il y a un chemin de x à y dans G



1 Fermeture transitive de graphe

1 Fermeture transitive de graphe Lebutducalculdelafermeturetransitived’ungrapheestdedéterminer pour tout couple de sommets s’il existe un chemin reliant le premier au second Unalgorithmee?cace(en( n3))estlesuivant: Algorithme 1 Fermeture-efficace(G) 1 soit n le nombre de sommets de G 2 soit M la matrice d’adjacence de G



Searches related to fermeture transitive d+un graphe orienté PDF

Le but de ce TP est de calculer la fermeture transitive d’un graphe orient´e D puis de l’utiliser a?n de calculer les composantes fortement connexes de D Langage Programme en c++ Votre programme pourra commencer par : #include #include using namespace std; const int n=6; int adjacence[n][n]={{000101} //La

Comment trouver la fermeture transitive sur un graphe de composants fortement connectés ?

Ainsi, le problème réduit la recherche de la fermeture transitive sur un graphe de composants fortement connectés, qui devrait avoir considérablement moins d'arêtes et de sommets que le graphe donné. On sait qu'on peut trouver tous les sommets accessibles depuis un sommet v en appelant Recherche en profondeur d'abord (DFS) sur le sommet v.

Qu'est-ce que le graphe orienté ?

correspond à l’une des contraintes. Plus précisément, le graphe orienté associé au Le sommet est ajouté de telle sorte que tous les autres sommets soient joignables à partir de . solution. Soit un graphe orienté ou non orienté et soit un sommet de quelconque. On désigne par la distance du plus court chemin joignant à .

Comment trouver la fermeture transitive d'une matrice de connectivité ?

Notez que tous les éléments diagonaux de la matrice de connectivité sont 1 puisqu'un chemin existe de chaque sommet à lui-même. Comme indiqué dans le post précédent, nous pouvons utiliser le Algorithme de Floyd-Warshall pour trouver le fermeture transitive d'un graph avec V sommets dans O (V3) temps.

Qu'est-ce que la fermeture transitive d'un digraphe ?

La fermeture transitive d'un digraphe G est un digraphe G’ avec un bord (i, j) correspondant à chaque chemin dirigé depuis i à j dans G. Le digraphe résultant G’ La représentation sous forme de matrice d'adjacence est appelée matrice de connectivité.

Algorithmique de graphes

Lucas Letocart

LIPN - UMR CNRS 7030

Institut Galilee, Universite Paris 13

99 av. Jean-Baptiste Clement

93430 Villetaneuse - FRANCE

lucas.letocart@lipn.univ-paris13.fr

Algorithmique de graphes

Chapitre Contenu du document.

1. Introduction4

2. Notions elementaires 4

2.1. Quelques problemes modelisables par des graphes . . . . . . . . . . . . . . . . . . . .

4

2.1.1. Choix d'un trajet en train . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

4

2.1.2. Planication d'une session d'examens . . . . . . . . . . . . . . . . . . . . . .

4

2.1.3. Ordonnancement de t^aches . . . . . . . . . . . . . . . . . . . . . . . . . . . .

5

2.1.4. Routage dans les reseaux de telecommunications . . . . . . . . . . . . . . . .

5

2.2. Denitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

5

2.3. Connexite . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

7

2.3.1. Cha^nes et chemins . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

7

2.3.2. Graphes et composantes connexes et fortement connexes . . . . . . . . . . . .

8

3. Representation des graphes 9

3.1. Matrices d'adjacence et d'incidence . . . . . . . . . . . . . . . . . . . . . . . . . . . .

9

3.1.1. Matrice d'adjacence . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

9

3.1.2. Matrice d'incidence sommets-arcs . . . . . . . . . . . . . . . . . . . . . . . . .

9

3.1.3. Matrice d'incidence sommets-ar^etes . . . . . . . . . . . . . . . . . . . . . . . .

9

3.2. Representation des graphes en machine . . . . . . . . . . . . . . . . . . . . . . . . .

9

3.2.1.

A partir de la matrice d'adjacence . . . . . . . . . . . . . . . . . . . . . . . .9

3.2.2.

A partir de la matrice d'incidence sommets-arcs ou sommets-ar^etes . . . . . .10

4. Parcours des graphes 10

4.1. Parcours en profondeur d'abord : DFS (Depth First Search) . . . . . . . . . . . . . .

10

4.2. Determination des composantes connexes . . . . . . . . . . . . . . . . . . . . . . . .

13

4.2.1. Cas non oriente . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

13

4.2.2. Cas oriente . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

14

4.3. Determination des composantes fortement connexes . . . . . . . . . . . . . . . . . .

14

4.4. Tri topologique dans un graphe oriente sans circuit . . . . . . . . . . . . . . . . . . .

16

4.5. Fermeture transitive d'un graphe . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

17

4.5.1. Algorithme de parcours de graphes . . . . . . . . . . . . . . . . . . . . . . . .

18

4.5.2. Puissances de la matrice d'adjacence . . . . . . . . . . . . . . . . . . . . . . .

18

4.5.3. Algorithmes par multiplications matricielles . . . . . . . . . . . . . . . . . . .

20

5. Problemes de meilleurs chemins 21

5.1. Plus courts chemins d'origine xee dans un graphe avec longueurs non negatives :

algorithme de Dijkstra . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
2

Algorithmique de graphes

5.2. Mise en oeuvre de l'algorithme de Dijkstra pour les graphes peu denses : algorithme

de Johnson . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24

5.2.1. Presentation de la structure de donnees de tas (heap) . . . . . . . . . . . . .

24

5.2.2. Algorithme de Johnson . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

24

5.3. Plus court chemin d'origine xee dans un graphe sans circuit avec longueurs quel-

conques : algorithme de Bellman . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25

5.4. Determination de plus courts chemins d'origine xee dans un graphe avec longueurs

quelconques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26

5.4.1. Algorithme de Ford (1956) . . . . . . . . . . . . . . . . . . . . . . . . . . . .

26

5.4.2. Algorithme de Ford-Bellman . . . . . . . . . . . . . . . . . . . . . . . . . . .

27

5.5. Plus courts chemins entre toutes les paires de sommets : algorithme de Floyd . . . .

28

6. Arbres couvrants 28

6.1. Arbre et arborescence . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

28

6.2. Arbre couvrant de poids minimal d'un graphe simple . . . . . . . . . . . . . . . . . .

30

6.2.1. Formulation du probleme . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

30

6.2.2. Algorithme de Prim-Dijsktra . . . . . . . . . . . . . . . . . . . . . . . . . . .

31

6.2.3. Algorithme de Kruskal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

32

7. Flots dans les graphes 32

7.1. Denitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

32

7.2. Proprietes fondamentales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

33

7.2.1. Flot maximal et coupe minimale . . . . . . . . . . . . . . . . . . . . . . . . .

33

7.2.2. Graphe d'ecart et chemin augmentant . . . . . . . . . . . . . . . . . . . . . .

34

7.3. Recherche d'un

ot maximal : algorithme de Ford-Fulkerson . . . . . . . . . . . . . . 34

7.3.1. Algorithme generique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

34

7.3.2. Algorithme de marquage de Ford-Fulkerson . . . . . . . . . . . . . . . . . . .

35

7.3.3. Une application du probleme de

ot maximal : le couplage dans un graphe biparti . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37

7.4. Recherche d'un

ot maximal a co^ut minimal . . . . . . . . . . . . . . . . . . . . . . . 37

7.4.1. Condition d'optimalite . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

38

7.4.2. Algorithmes de determination du

ot maximal a co^ut minimal . . . . . . . . 38

8. Ordonnancement et graphes 39

8.1. Methode des potentiels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

39

8.1.1. Calendrier au plus t^ot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

39

8.1.2. Calendrier au plus tard . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

40
3

Algorithmique de graphes

Chapitre 1. Introduction

La theorie des graphes et l'algorithmique qui lui est liee est un des outils privilegies de modelisation

et de resolution de problemes dans un grand nombre de domaines allant de la science fondamentale aux applications technologiques concretes. Par exemple, les graphes deterministes et/ou aleatoires

sont utilises en physique, en sciences sociales (pour representer des relations entre groupes d'indi-

vidus), en mathematique combinatoire, en informatique (structures de donnees et algorithmique). Concernant les tres nombreuses applications, on peut citer : les reseaux electriques et transport d'energie, le routage du trac dans les reseaux de telecommunications et les reseaux d'ordinateurs,

le routage de vehicules et l'organisation des tournees ou rotations, les problemes de localisation (d'en-

trep^ots, d'antennes,:::) et de placement, les problemes d'ordonnancement de t^aches et d'aectation de ressources,:::

Chapitre 2. Notions elementaires

2.1. Quelques problemes modelisables par des graphes

2.1.1. Choix d'un trajet en train

Comment faire pour aller en train le plus rapidement possible de Bordeaux a Grenoble sachant que la SNCF donne les temps de parcours suivants et que l'on suppose que toutes les correspondances sont possibles sans attente :Bordeaux!Nantes4h

Bordeaux!Marseille6h

Bordeaux!Lyon6h

Nantes!Paris-Montparnasse2h

Nantes!Lyon4h30

Paris-Montparnasse!Paris-Lyon0h30

Paris-Lyon!Grenoble3h

Marseille!Lyon1h30

Marseille!Grenoble3h

Lyon!Grenoble1h15

Ce probleme peut facilement ^etre represente par un graphe dont les ar^etes sont valuees par les durees des trajets. Il s'agit alors de determiner un plus court chemin entre Bordeaux et Grenoble.

2.1.2. Planication d'une session d'examens

8 groupes d'etudiants (numerotes de G1 a G8) doivent passer des examens dans dierents ensei-

gnements, chaque examen occupant une demi-journee :ChimieG1 et G2

ElectroniqueG3 et G4

InformatiqueG3, G5, G6 et G7

MathematiquesG1, G5, G6 et G8

PhysiqueG2, G6, G7 et G8

4

Algorithmique de graphes

On cherche a organiser la session d'examens la plus courte possible. On peut representer chaque enseignement par un sommet et relier par des ar^etes les sommets qui correspondent aux examens ne pouvant se derouler simultanement. Le probleme est alors de colorier tous les sommets du graphe en utilisant le moins de couleurs possible sachant que deux sommets relies par une ar^ete doivent ^etre de couleurs dierentes.

2.1.3. Ordonnancement de t^aches

La mise en exploitation d'un nouveau gisement minier demande l'execution d'un certain nombre de t^aches :CodesT^achesDureesT^aches anterieures

1Obtention d'un permis d'exploitation120-

2

Etablissement d'une piste de 6km1801

3Transport et installation de 2 sondeuses32

4Creation de b^atiments provisoires pour le bureau des

plans et le logement des ouvriers302

5Goudronnage de la piste602

6Adduction d'eau904

7Campagne de sondage2403 et 4

8Forage et equipement de 3 puits1805, 6 et 7

9Construction de bureaux et de logements denitifs2405, 6 et 7

10Transport et installation du materiel d'exploitation308 et 9

11Tracage et amenagement du fond3608 et 9

Cela revient a resoudre un probleme d'ordonnancement qui consiste a determiner les dates de debut

au plus t^ot et au plus tard de chaque t^ache ainsi que le temps minimum de realisation de l'ensemble.

Pour cela, on doit rechercher un plus long chemin dans un graphe, appele graphe potentiels-t^aches,

dont les sommets representent les t^aches a realiser et les arcs les contraintes d'anteriorite entre les

t^aches : un arc (i;j) represente la necessite de realiser la t^acheiavant la t^achejet l'arc (i;j) est

value par la duree d'execution dei.

2.1.4. Routage dans les reseaux de telecommunications

Le probleme de savoir s'il est possible d'acheminer un ensemble d'informations entre deux centres relies par un reseau de telecommunications revient a chercher un ot de valeur maximale dans un

graphe representant ce reseau, les sommets representant les centres et les ar^etes les liaisons entre ces

centres.

2.2. Denitions

Ungraphe orienteG= (X;U) est deni par :

Un ensem bleX=fx1;x2;:::;xngdont les elements sont appeles dessommetsou desnuds.

L'ordre du grapheGest le nombre de sommetsn.

5

Algorithmique de graphes

Un ensem bleU=fu1;u2;:::;umgdont les elements, appeles desarcs, sont des couples or- donnes deXX=f(x;y)jx2X;y2Xg. Pour un arcu= (x;y) avec (x;y)2X2, on dit que xest l'extremite initialeetyl'extremite terminaledeu,yestsuccesseurdexetxest predecesseurdey. On notejUj=m. Uneboucleest un arc ayant le m^eme sommet comme extremite initiale et terminale :u= (x;x) est appele une boucle,8x2X. Unp-grapheest un graphe dans lequel il n'existe jamais plus deparcs de la forme (x;y) entrex ety:p= max(x;y)2X2jfu2Uju= (x;y)gj. +(x),l'ensemble des successeursdex,8x2X, est une application multivoque deXdans une partie deXtelle que : +(x) =fy2Xj(x;y)2Ug. De m^eme, (x),l'ensemble des predecesseursdex,8x2X, est une application multivoque (reciproque) deXdans une partie deXtelle que : (x) =fy2Xj(y;x)2Ug.8x2X, (x) = +(x)S(x) estl'ensemble des voisinsdex. Un sommetxest ditisolesi (x) =fxg. Un sommetxestadjacentaYsix =2Yet x2(Y)S+(Y) ou (Y) =S(y)8y2Yet +(Y) =S+(y)8y2Y. SiGest un 1-graphe, il est parfaitement deni par l'ensembleXet l'application multivoque +ou . On peut alors le noterG= (X;+) ouG= (X;). Ledemi-degre exterieur (resp. interieur)du sommetx, noted+(x) (resp.d(x)) designe le nombre d'arcs ayantxcomme extremite initiale (resp. terminale),d+(x) =j+(x)jetd(x) = j(x)j.

SoitYXun sous-ensemble de sommets :

{!+(Y) est l'ensemble des arcs ayant leur extremite initiale dansYet leur extremite terminale dansXnY. {!(Y) est l'ensemble des arcs ayant leur extremite terminale dansYet leur extremite initiale dansXnY. {!(Y) =!+(Y)S!(Y) est appeleco-cycledu graphe.!(Y) est ditco-circuitsi!+(Y) =; ou!(Y) =;. Un grapheGest ditcompletsi pour toute paire (x;y) de sommets (avecx6=y) il existe au moins un arc (x;y) ou (y;x). Un 1-graphe est complet si et seulement si : (x;y)=2U)(y;x)2U.

Un grapheGest ditsymetriquesi (x;y)2U)(y;x)2U.

Un grapheGest ditanti-symetriquesi (x;y)2U)(y;x)=2U. Un grapheGest ditbipartisiX1SX2=X,X1TX2=;etX1T+(X1) =;(i.e. +(X1)X2), X

2T+(X2) =;(i.e. +(X2)X1).

Ungraphe non orienteG= (X;E) est deni par :

Un ensem bleX=fx1;x2;:::;xngdont les elements sont appeles dessommetsou desnuds.

L'ordre du grapheGest le nombre de sommetsn.

Un ensem bleE=fe1;e2;:::;emgdont les elements, appeles desar^etes, sont des couples non ordonnes deXX=f(x;y)jx2X;y2Xg. On notejEj=m. Unmultigrapheest un graphe non oriente pour lequel il peut exister plusieurs ar^etes entre deux sommetsxetydonnes. Un graphe non oriente est ditsimples'il est sans boucle et s'il n'existe pas plus d'une ar^ete entre toute paire de sommets. Deux arcs (ar^etes) sont dit(e)sadjacent(e)ss'ils ont au moins une extremite commune. 6

Algorithmique de graphes

Ledegredu sommetx, noted(x), est le nombre d'arcs ou d'ar^etes ayantxcomme extremite. On ad(x) =d+(x) +d(x) dans le cas d'un graphe oriente (attention :xest comptabilise deux fois en cas de boucle). Unecliqueest un graphe simple pour lequel il existe exactement une ar^ete entre toute paire de sommets. On la noteKnsinest son nombre de sommets. Lesous-grapheSG(Y) deG= (X;U) engendre par le sous-ensemble de sommetsYXest le graphe dont les sommets sont les elements deYet les arcs les elements deUayant leurs deux extremites dansY:SG(Y) = (Y;UY) avecUY=fu2Uju= (x;y);x;y2Y2g. Legraphe partielGP(V) deG= (X;U) engendre par le sous-ensemble d'arcsVUest le graphe dont les sommets sont ceux deXet les arcs ceux deV:GP(V) = (X;V). Lesous-graphe partielSGPdeG= (X;U) engendre par le sous-ensemble de sommetsYXet le sous-ensemble d'arcsVUest le graphe partielGP(V) du sous-grapheSG(Y) ou le sous-graphe SG(Y) du graphe partielGP(V) :SGP= (Y;V) avecYXetVU. Deux graphesG= (X;U) etG0= (X0;U0) sont ditsisomorphess'il existe deux bijections : g:X!X0eth:U!U0telles que8u= (x;y)2U,h(u) = (g(x);g(y))2U0.

2.3. Connexite

2.3.1. Cha^nes et chemins

Cha^nes et cyclesUnecha^nede longueurlallant du sommetxau sommetyest une suite d'ar^etes(x;y) = (u1;u2;:::;ul) tels que8i2 f1;:::;l1g,uietui+1sont adjacents. Le sommet x(resp.y) est appele l'extremite initiale (resp. terminale) de la cha^ne. Une cha^ne est diteelementairesi elle ne passe jamais deux fois par le m^eme sommet. Une cha^ne est ditesimplesi elle ne passe jamais deux fois par la m^eme ar^ete.

Remarques :

Dans un graph esimple, si un ec ha^neest elementaire,alors elle est simple. Dans le cas d'un graphe simple, une c ha^neest parfaitemen tcaract eriseepar la suite des sommets qu'elle rencontre ou par l'extremite initiale de la cha^ne et la suite d'ar^etes. Une cha^ne simple de longueurm(i.e. maximale) est unecha^ne eulerienne. Uncycleest une cha^ne dont les extremites initiale et terminale concident. Un cycle elementaire est un cycle minimal, au sens de l'inclusion, i.e. ne contenant strictement aucun cycle. Chemins et circuitsUncheminde longueurlallant du sommetxau sommetyest une suite d'arcs[x;y] = (u1;u2;:::;ul) tels que8i2 f1;:::;l1g,uietui+1sont adjacents et l'extremite terminale deuiest l'extremite initiale deui+1. Le sommetx(resp.y) est appele l'extremite initiale (resp. terminale) du chemin. Un chemin est ditelementairesi il ne passe jamais deux fois par le m^eme sommet. Un chemin est ditsimplesi il ne passe jamais deux fois par le m^eme arc.

Remarques :

Dans un graph esimple, si un c heminest elementaire,alors il est simple. Dans le cas d'un graphe simple, un c heminest parfaitemen tcaract erisepar la suite des sommets qu'il rencontre ou par l'extremite initiale du chemin et la suite d'arcs. 7

Algorithmique de graphes

Un chemin elementaire de longueurn1 (i.e. maximale) est unchemin hamiltonien. Uncircuitest un chemin dont les extremites initiale et terminale concident. Un circuit elementaire est un circuit minimal, au sens de l'inclusion, i.e. ne contenant strictement aucun circuit. Uncircuit hamiltonienest un chemin hamiltonien[xi1;xin] = (xi1;xi2;:::;xin) complete par (xin;xi1).

2.3.2. Graphes et composantes connexes et fortement connexes

Connexite simpleUn grapheGest ditconnexesi8(x;y)2X2x6=y,9(x;y). Proposition: La relationRdenie parxRy,x=you9(x;y) est une relation d'equivalence.

Preuve:

Elle est r e

exive: xRx. Elle est sym etrique: xRy)yRxcar il sut d'inverser la cha^ne. Elle est transitiv e: xRyetyRz)xRzcar il sut de concatener les deux cha^nes. Les classes d'equivalence induites surXparRconstituent une partition deXenX1;X2;:::;Xp. Le nombrepde classes d'equivalence est appele lenombre de connexitedu graphe. Un graphe est dit connexe si et seulement si son nombre de connexite est egal a 1. Les sous-graphesG1;G2;:::;Gp engendres par les sous-ensemblesX1;X2;:::;Xpsont appeles lescomposantes connexesdeG.

Chaque composante connexe est un graphe connexe.

Connexite forteUn grapheGest ditfortement connexesi8(x;y)2X2x6=y,9[x;y]. Proposition: La relationR'denie parxR'y,x=you9[x;y] et9[y;x] est une relation d'equivalence.

Preuve:

Elle est r e

exive: xR'x.

Elle est sym etrique: xR'y)yR'x.

Elle est transitiv e: xR'yetyR'z)xR'z.

Les classes d'equivalence induites surXparR'constituent une partition deXenX1;X2;:::;Xq. Le nombreqde classes d'equivalence est appele lenombre de connexite fortedu graphe. Un graphe est dit fortement connexe si et seulement si son nombre de connexite forte est egal a 1. Les sous-graphesG1;G2;:::;Gqengendres par les sous-ensemblesX1;X2;:::;Xqsont appeles les composantes fortement connexesdeG. On appelle legraphe reduit, noteGr, le graphe deni comme suit : les sommets deGrrepresentent les composantes fortement connexes et il existe un arc entre deux sommetsxetysi et seulement s'il existe au moins un arc entre un sommet deXxet un sommet deXydans le grapheG. Remarque : Un graphe reduit est necessairement sans circuit. 8

Algorithmique de graphes

Chapitre 3. Representation des graphes

3.1. Matrices d'adjacence et d'incidence

3.1.1. Matrice d'adjacence

SoitG= (X;U) un 1-graphe d'ordren, lamatrice d'adjacenceA= (aij(nn)) a coecients 0 ou 1 est denie comme suit :

âaxy= 1()(x;y)2U

âaxy= 0 sinon.

3.1.2. Matrice d'incidence sommets-arcs

SoitG= (X;U) un graphe oriente sans boucle d'ordren, lamatrice d'incidence sommets- arcsest une matriceA= (aij(nm)) a coecients entiers 0, +1 ou1 telle que chaque colonne correspond a un arc et chaque ligne a un sommet. Siu= (x;y) est un arc du grapheGalors la colonneua tous ses termes nuls sauf :

âaxu= +1

âayu=1

3.1.3. Matrice d'incidence sommets-ar^etes

SoitG= (X;U) un graphe non oriente sans boucle d'ordren, lamatrice d'incidence sommets- ar^etesest une matriceA= (aij(nm)) a coecients entiers 0 ou 1 telle que chaque colonne correspond a un arc et chaque ligne a un sommet. Siu= (x;y) est une ar^ete du grapheGalors la colonneua tous ses termes nuls sauf :

âaxu= 1

âayu= 1

3.2. Representation des graphes en machine

3.2.1.

A partir de la matrice d'adjacence

L'occupation memoire d'une matrice d'adjacence estO(n2). Dans le cas de graphes peu denses, mn2pour les graphes orientes etmn(n+ 1)=2 pour les graphes non orientes, il est plus avantageux d'ecrire uniquement que les termes non nuls de la matrice d'adjacence. Representation par liste d'adjacenceOn memorise pour chaque sommet la liste de ses predecesseurs

ou de ses successeurs en utilisant des listes cha^nees. Dans le cas oriente, cette representation revient

a decrire le graphe par son application multivoque ou +.

Remarques :

9

Algorithmique de graphes

Les deux representations seront dierentes si le graphe n'est pas symetrique. Le desavantage d'une telle representation est que le test d'appartenance d'un arc entrexety peut atteindreO(n) puisque l'on peut trouverO(n) sommets sur la liste des successeurs dei.

3.2.2.

A partir de la matrice d'incidence sommets-arcs ou sommets-ar^etes La matrice d'incidence permet de representer un p-graphe ou un multigraphe (sans boucle). Comme il n'existe que deux termes non nuls par colonne dans cette matrice, on a toujours inter^et a representer l'information sous une forme plus condensee. Par liste des arcsOn decrit la matrice d'incidence ligne par ligne : pour chaque sommetx2X, on decrit la liste!+(x) des arcs ayantxcomme extremite initiale (ou comme extremite dans le cas non oriente). Par liste des cocyclesOn decrit la matrice d'incidence colonne par colonne.

Chapitre 4. Parcours des graphes

De nombreux problemes fondamentaux en theorie des graphes concernent la connexite. On peut citer par exemple : ÔUn sommetyest-il accessible par un chemin a partir d'un autre sommet? ÔQuel est l'ensemble de tous les sommets accessibles par un chemin a partir d'un sommet x? ÔLe graphe est-il connexe, c'est-a-dire tous les sommets sont-ils accessibles par une cha^ne a partir d'un sommet donnex? ÔLe graphe est-il fortement connexe, c'est-a-dire existe-t-il un chemin joignant toute paire ordonnee (x;y) de sommets dans le graphe? Pour repondre a toutes ces questions, Tarjan a propose en 1972 un ensemble d'algorithmes ecaces (de complexite lineaire en fonction du nombre d'arcs ou d'ar^etes du graphe) qui sont fondes sur une methode d'exploration systhematique des sommets d'un graphe connue sous le nom de parcours en profondeur d'abord.

4.1. Parcours en profondeur d'abord : DFS (Depth First Search)

Il s'agit d'une generalisation du parcours prexe des arbres. On exploreGa partir d'un sommetx0quelconque. Au cours de l'exploration, chaque sommet peut se trouver dans l'un des deux etats suivants :

âE1: non explore;

âE2: explore.

10

Algorithmique de graphes

Remarque: Si un sommet est dans l'etatE2alors au moins un predecesseur de ce sommet a deja ete explore. Un sommetxexplore peut ^etre dans l'un deux etats suivants : âS1: ferme. C'est le cas quand tous les successeursydexont ete explores; âS2: ouvert. C'est le cas quand certains successeursydexn'ont pas encore ete explores; Pour chaque sommetx, on dispose d'un compteurc(x) indiquant a chaque instant le nombre de successeurs dexnon encore explores. Initialementc(x) =d+(x)8x. Un sommetxest donc ouvert tant quec(x)>0.A l'iteration courante, on part du sommet explorex(explore a partir d'un sommets). Sixest ouvert, on selectionne lec(x)ieme successeur non exploreydex(il faut alors decrementerc(x) de 1), pour passerya l'etat explore et commencer une nouvelle iteration a partir dey. Sixest ferme, il faut remonter au sommetspour commencer une nouvelle iteration a partir des. L'exploration a partir dex0se termine lorsque l'on est remonte en ce sommet et qu'il est ferme. On a donc pu atteindre tous les sommets pouvant ^etre atteints par un chemin a partir de x

0dans le graphe. Rappelons qu'un sommetxrelie par un chemin a tous les autres sommets d'un

graphe est appeleracine. Voici l'algorithme en pseudo-langage de cette exploration par un parcours en profondeur d'abord :ProcedureDFSx0(grapheG, sommetx0)k 1;Pouride1anfairec(i) d+(i)

Fin Pour;Pouride1anfairenum(i) 0

Fin Pour;num(x0) k;explore(G,x0);

FinAlgorithme 1: Parcours en profondeur d'abord a partir du sommetx0Procedureexplore(grapheG, sommetx)Tant que(c(x)>0)faireSelectionnerylec(x)ieme successeur dex;c(x) c(x)1;Si(num(y) = 0)Alorsk k+ 1num(y) kexplore(G,y)

Fin Si

Fait FinAlgorithme 2: Exploration en profondeur d'abord 11

Algorithmique de graphes

DFSx0(G,x0) permet d'explorer tous les sommets deGs'il est possible de les atteindre a partir dex0. Si ce n'est pas le cas, il reste des sommets non explores. Pour continuer l'exploration et couvrir tous les sommets deG, on choisit un sommetx1parmi les sommets non explores (tels que num(x1) = 0) et on applique DFS a partir dex1; et ainsi de suite tant qu'il existe des sommets non

explores. L'algorithme prend n lorsque tous les sommets ont ete explores.ProcedureDFS(grapheG)k 0;Pouride1anfairec(i) d+(i)

Fin Pour;Pouride1anfairenum(i) 0

Fin Pour;Pouride1anfaireSi(num(i) = 0)Alorsk k+ 1;num(i) k;explore(G,i);

Fin Si

Fin Pour

FinAlgorithme 3: Parcours en profondeur d'abord

La complexite de cet algorithme est enO(m)+O(n) car chaque arc est examine au plus une fois et chaque sommet est explore au plus une fois. Or siGest connexe,mn1 et le termeO(n) est absorbe. On obtient alors une for^et decrivant l'exporation deGpar DFS, maisegalement une caracterisation des arcs du graphe. On distingue 4 types d'arc : ÔArc d'arbre: arc ayant permis de visiter de nouveaux sommets lors de l'exploration par DFS. ÔArc avant: (x;y) est un arc avant si et seulement si (x;y) n'est pas un arc d'arbre etyest un descendant dexdans l'un des arbres de la for^et decrivant l'exploration par DFS (i.e. qu'il existe un chemin dexaydans l'un des arbres). ÔArc arriere: (x;y) est un arc arriere si et seulement si (x;y) n'est pas un arc d'arbre etxest un descendant deydans l'un des arbres de la for^et decrivant l'exploration par DFS. ÔArc croise: (x;y) est un arc croise si et seulement siyn'est un descendant dexetx n'est un descendant deydans la for^et decrivant l'exploration par DFS. 12

Algorithmique de graphes

4.2. Determination des composantes connexes

4.2.1. Cas non oriente

Pour determiner les composantes connexes d'un grapheG= (X;U) non oriente, il sut d'ap- pliquer l'algorithme de parcours du graphe en profondeur d'abord en modiant la procedure DFS en initialisant les compteursc(x) par les degresd(x) et en explorant, non pas les successeurs des sommets, mais les voisins. Chaque arbre de la for^et obtenue couvre des sommets appartenant a une m^eme composante connexe et le nombre d'arbres de la for^et est donc le nombre de connexite deG.

Ce nouvel algorithme, appele DFSno, est presente ci-dessous :ProcedureDFSno(grapheG)k 0;l 0;Pouride1anfairec(i) d(i)

Fin Pour;Pouride1anfairenum(i) 0

quotesdbs_dbs44.pdfusesText_44
[PDF] le temps de la révolution et de l'empire cycle 3

[PDF] fermeture transitive matrice

[PDF] décomposition d'un graphe en niveaux

[PDF] chemin hamiltonien

[PDF] de l'année 1789 ? l'exécution du roi cm1

[PDF] graphe d'ordonnancement

[PDF] sujet algorithme bts sio corrigé

[PDF] calcul matrice booléenne

[PDF] calcul matriciel bts

[PDF] prise de note rapide tableau abréviations

[PDF] sauzay programme

[PDF] programme voltaire

[PDF] un petit paragraphe sur l'environnement

[PDF] exemple de texte argumentatif sur l'environnement

[PDF] texte sur l'environnement