[PDF] Liens entre probl`emes de plus courts chemins de fermeture





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.



Algorithmique de graphes

Un graphe non orienté est dit simple s'il est sans boucle et s'il n'existe pas Déterminer la fermeture transitive du graphe réduit Gr qui est sans circuit.



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é.

Liens entre probl`emes de plus courts chemins,

de fermeture transitive et de multiplication de matrices.

Bertrand Marc

22 mai 2007

Table des mati`eres

1 Algorithmes de plus courts chemins 2

1.1 Plus courts chemins `a origine unique . . . . . . . . . . . . . . 2

1.2 Plus court chemin entre deux sommetsuetv. . . . . . . . . 3

1.3 Plus courts chemins pour tout couple de sommets . . . . . . . 3

1.4 Cas non pond´er´e . . . . . . . . . . . . . . . . . . . . . . . . . 3

2 Calcul de fermeture transitive 4

2.1 Fermeture transitive d"un graphe orient´e . . . . . . . . . . . . 4

2.2 Fermeture transitive d"une matrice bool´eenne . . . . . . . . . 4

3 Multiplication de matrices 5

3.1 Mutiplication de matrices r´eelles . . . . . . . . . . . . . . . . . 5

3.2 Multiplication de matrices bool´eennes . . . . . . . . . . . . . . 5

4 R´eduction entre ces diff´erentes cat´egories 5

4.1 Matrices bool´eennes . . . . . . . . . . . . . . . . . . . . . . . 5

4.2 Les Semi-anneaux ferm´es . . . . . . . . . . . . . . . . . . . . . 6

Introduction

Je vais essayer de pr´esenter bri`evement les probl`emes que nous allons ´etudier. Le plus intuitif est de classer ces probl`emes en trois familles :

1. Les probl`emes de plus court chemins

2. Les probl`emes de fermeture transitive

1

3. Les probl`emes de multiplication de matrices

Ces probl`emes se regroupent naturellement de cette mani`ere. Nous allons en effet voir que ces familles correspondent aux r´eductions les plus simples et les plus intuitives. Nous verrons ensuite dans la derni`ere partie les liens entre ces diff´erentes familles de probl`emes.

1 Algorithmes de plus courts chemins

Fixons quelques conventions : nous nous pla¸cons dans un graphe orient´e G= (V,E) (on posen=|V|etm=|E|), muni d"une fonction de pond´eration w:E→??+qui associe `a chaque arc un poids `a valeur r´eelle. On lui associe une distance :δ(u,v) =?min{w(p) :u?v}s?il existe un chemin p de u `a v ∞sinon

1.1 Plus courts chemins `a origine unique

Il s"agit ici de trouver tous les plus courts chemins entre un sommets?V (la source) et le reste du graphe. L"algorithme le plus utilis´e dans ce cas est l"algorithme de Dijkstra :Algorithme 1Dijkstra(G,s,w)pourchaque sommetv?Vfaire d[v]← ∞

π[v]←NIL

fin pour d[s]←0

E← ∅

F←V

tantqueF?=∅faire u←minF

E←E? {u}

pourchaque sommetv?Adj[u]faire sid[v]> d[u] +w(u,v)alors d[v]←d[u] +w(u,v)

π[v]←u

finsi fin pour fin tantque2 Pour´etudier correctement la complexit´e de cet alogorithme, il faut pr´eciser la ligneu←minF. Il s"agit en fait de trouver le sommetuqui minimised[v], v?F. Et selon comment on met en oeuvre la file de priorit´e qui permet de calculer le minimum (en fait selon comment on implanteF). Avec un simple tableau, on obtient une complexit´e enO(n2). Avec des tas de Fibonacci, on peut descendre `aO(nlnn+m)

1.2 Plus court chemin entre deux sommetsuetv

Si on r´esoud le probl`eme `a origine unique pour le sommet origineu, on r´esoud ´egalement ce probl`eme de mani`ere triviale. Par ailleurs on ne connait aucun algorithme qui soit meilleur asymptotiquement que les algorithmes pour le probl`eme `a origine unique. Ainsi, si je sais r´esoudre le probl`eme de plus court chemin `a origine unique en tempsO(T(n,m)), alors je sais aussi r´esoudre ce probl`eme en tempsO(T(n,m)). En pratique, on a donc une solution enO(nlnn+m).

1.3 Plus courts chemins pour tout couple de sommets

Ce probl`eme peut ˆetre r´esolu en ´executant un algorithme `a origine unique `a partir de chaque sommet. Ainsi, si je sais r´esoudre le probl`eme de plus court chemin `a origine unique en tempsO(T(n,m)), alors je sais aussi r´esoudre ce probl`eme en tempsO(n×T(n,m)) (et de mˆeme l"espace utilis´e est multipli´e parn). En pratique on obtient alors une complexit´e enO(n2lnn+nm). Il est `a noter qu"il existe aussi des algorithmes calculant directement tous les plus courts chemins, comme l"algorithme deFloyd-Warshallqui s"execute enO(n3) et l"algorithme deJohnsonqui s"execute enO(n2lnn+nm).

1.4 Cas non pond´er´e

On dispose ici d"un graphe orient´e sans fonction de pond´eration des arˆetes et l"on veut r´esoudre les diff´erents probl`emes de plus courts chemins. Il est important de pr´eciser que la distance utilis´ee ici est : ?(u,v) =?min{longueur(p) :u?v}s?il existe un chemin p de u `a v ∞sinon. Il est clair que l"on peut munir le graphe d"une fonction de pond´eration constantewqui renvoie 1 sur toute arˆete deE. Et dans ce cas, il est ´evident queδ=δ?. A partir de l`a, on peut dire que le cas non pond´er´e est un cas particulier du cas pond´er´e et donc on obtient les mˆemes complexit´es. Mais on peut aussi modifier l"algorithme de Dijkstra. On peut en effet remarquer qu"il est tr`es proche d"un parcours en largeur. Et en appliquant un 3 parcours en largeur `a notre graphe, on peut calculer les plus courts chemins `a partir d"une source fixe. On peut ainsi r´esoudre le probl`eme des plus courts chemins `a origine unique enO(n+m). Et grˆace `a la r´eduction qui pr´ec`ede, on a une solution du probl`eme de plus courts chemins pour tout couple de sommets enO(n2+nm).

2 Calcul de fermeture transitive

2.1 Fermeture transitive d"un graphe orient´e

La fermeture transitive d"un grapheG= (V,E) est d´efinie par le graphe G ?= (V,E?) o`uE?={(i,j) : il existe un chemin relianti`ajdansG}. Montrons que l"on peut calculer la fermeture transitive d"un graphe `a partir du calcul des plus courts chemins pour tout couples de sommets. Si Dest la matrice r´esultant de l"algorithme des plus courts chemins (dij= min{longueur(p) :i?j}en supposant que les sommets sont num´erot´es de 1 `an). Alors on a clairement l"´equivalencedij=∞ ?il n"y a pas de chemin dei`aj. On construit alors la matriceCde la mani`ere suivante : c ij= 0?dij=∞etcij= 1?dij<∞. La matriceCest bien ´evidemment la matrice d"adjacence deG?. Ainsi si l"on sait r´esoudre le probl`eme des plus courts chemins pour tout couple de sommets enO(T(n,m)), on sait calculer la fermeture transitive en O(T(n,m)+n2). En pratique, cela nous donne une complexit´e enO(n2+nm).

2.2 Fermeture transitive d"une matrice bool´eenne

La fermeture transitive d"une matrice bool´eenneMest d´efine parM?=? n≥0Mn. On peut remarquer qu"une matrice bool´eenneMest aussi la ma- trice d"adjacence d"un grapheG. Mais que signifieMken terme de matrice d"adjacence? Montrons par r´ecurrence que (Mk)ij= 1 si et seulement si il existe un chemin de longueurkentreietjdansG. Pourk= 1, cela d´ecoule trivialement de la d´efinition d"une matrice d"ad- jacence. Supposons que c"est vrai pour un certaink, et montrons que c"est vrai pourk+ 1. (Mk+1)ij=n? p=1(Mk)ipmpj Cel`a signifie que(Mk+1) = 1? ?p(Mk)ip= 1etmpj= 1. Ceci est ´equivalent `a : il existe un chemin de longueurkentreietp, et(p,j)?E. 4 C"est `a dire il existe un chemin de longueurk+1entreietj.Ainsi (M?)ij= 1 si et seulement si il existe un chemin dansGentreietj. DoncM?est la matrice d"adjacence deG?. Ainsi on peut calculer la fermeture transitive d"un graphe ou d"une ma- trice bool´eenne indif´erement : c"est la mˆeme chose, et donc c"est la mˆeme complexit´e. En pratique on peut donc calculer la fermeture transitive d"une matrice bool´eenne enO(n2+nm). o`umest le nombre de 1 contenu dansM.

3 Multiplication de matrices

3.1 Mutiplication de matrices r´eelles

Il existe plusieurs algorithmes de multiplication de matrices r´eelles : l"al- gorihtme na¨ıf fonctionne enO(n3). Il existe des algorithmes plus efficaces, comme Strassen (enO(n2,81)) ou Coppersmith et Winograd (enO(n2,376)). Je ne vais pas pr´esenter ces algorithmes ici, mais je vais plutˆot essayer de faire le lien avec les probl`emes qui nous int´eresse.

3.2 Multiplication de matrices bool´eennes

On pourrait penser que multiplier des matrices bool´eennes est un cas particulier des matrices r´eelles, mais ce n"est pas tout `a fait aussi simple. Il faut travailler dans un anneau pour pouvoir appliquer les algorithmes de la famille de Strassen. Mais ce n"est pas un r´eel probl`eme. Pour calculer C=AB, Il suffit de multiplier les matrices dans?n+1(qui est un anneau) : c ij= 1. Ainsi si on sait multiplier des matrices r´eelles avec une complexit´e enM(n), on sait multiplier des matrices bool´eennes enO(M(n) +n2). En pratique on peut donc multiplier les matrices bool´eennes avec une complexit´e enO(M(n)).

4 R´eduction entre ces diff´erentes cat´egories

4.1 Matrices bool´eennes

Th´eor`eme 1Le tempsT(n)n´ecessaire pour calculer la fermeture transitive d"une matrice bool´eenne est du mˆeme ordre que le tempsM(n)n´ecessaire pour calculer le produit de deux matrices bool´eennes. 5 Preuve 1SoitXune matricen×n. On supposera pour l"instant quen= 2k. On partitionneXen quatre matrices ´egales :X=?A B C D? . Si on suppose queXrepr´esente un grapheG= (V,E)o`u les sommets sont s´epar´es en deux parties ´egalesV1etV2, alors la matriceArepr´esente les arˆetes entre les sommets deV1, la matriceDrepr´esente les arˆetes entre les sommets deV2, la matriceBrepr´esente les arˆetes entreV1etV2et la matriceBrepr´esente les arˆetes entreV2etV1. CalculonsX?, on peut commencer par le coin sup´erieur gauche : un che- min entre deux sommets deV1a deux possibilit´es : - ce chemin reste dansV1 - ce chemin passe parV2avant de revenir.(il peut donc ˆetre repr´esent´e parBD?C) Ainsi ces chemins sont repr´esent´es parE= (A+BD?C)?. De mˆeme, on peut calculer les autres ´el´ements deX?:X?=?E EBD? D ?CE D?+D?CEBD?? ?E F G H? (on pourrait bien sˆur trouver des ´ecritures plus simples, mais elles induiraient plus de calculs par la suite). On peut calculer ces quatres matrices grˆace `a la s´equence suivante : T 1=D? T 2=BT1

E= (A+T2C)?

F=ET2 T 3=T1C G=T3E

H=T1+GT2

On a donc calcul´e 2 fermetures transitives, 6 multiplications et 2 additions Pour le cas o`unn"est pas une puissance de2, il suffit de compl´eter la ma- triceXde la mani`ere suivante pour arriver `a une puissance de2:?X0 0I? o`uIrepr´esente l"identit´e.

4.2 Les Semi-anneaux ferm´es

Th´eor`eme 2Si on sait calculer le produit de deux matrices en tempsO(M(n)), alors on peut calculer les plus courts chemins pour tout couple de sommets 6 enO(M(n)lnn) Preuve 2On va calculer les plus courts chemins pour tout couple de som- mets en se basant sur la proc´edure suivante. En entr´ee on donne une matrice D (m)telle qued(m) ijest la longueur minimale d"un chemin d"au plusmarcs du sommetiau sommetj, et la matriceWdes poids des arˆetes deE. En

sortie on r´ecup`ere la matriceD(m+1)Algorithme 2Extensions-plus-courts-chemins(D,W)SoitD?une matricen×n

pouri= 1 `anfaire pourj= 1 `anfaire d ?ij← ∞ pourk= 1 `anfaire d ?ij←min(d?ij,dik+wkj) fin pour fin pour fin pour retournerD?On peut remarquer que cet algorithme est exactement le produit de deux matrices, `a ceci pr`es que l"on a remplac´e l"op´eration+parminet l"op´eration ×par+. Ainsi cette proc´edure peut ˆetre effectu´ee comme un produit de ma- trices, et donc avec la mˆeme complexit´e. Et on peut aussi utiliser l"associati- vit´e de ce "produit", ce qui justifie l"exponentiation rapide ci-dessous. Comme on se place dans un graphe sans circuit de poids n´egatif, tous chemins se trouvent dans la matriceD(n-1). Pour la calculer, on va utiliser un algorithme d"exponentiation rapide :Algorithme 3Plus-courts-chemins-tout-couples(W)D (1)←W m←1 tantquem < n-1faire D m←2m fin tantque retournerD(m)7 En fait, on a utilis´e une structure alg´ebrique particuli`ere qui permet de mettre en parall`ele le produit de matrice et la proc´edure Extensions- plus-courts-chemins. Pour ˆetre rigoureux, on aurait dˆu montr´e queS1= (?,min,+,∞,0) etS2= (?,+,×,0,1) sont dessemi-anneaux ferm´eset il aurait ensuite fallu montr´e les propri´et´es pricipales des semi-anneaux ferm´es.

Conclusion

Comme on a pu le voir, tous ces probl`emes sont li´es. On obtient assez facilement des r´eductions pertinentes entre ces probl`emes polynomiaux. On aurait mˆeme pu en rajouter d"autres, comme l"utilisation du calculs de plus courts chemins (avec des poids n´egatifs) dans le cadre de programmation lin´eaire (dans le cas particulier des contraintes de potentiel). Voici le sch´ema bilan des r´eductions pr´esent´ees ici. Les fl`eches jaunes marquent les ´equivalences, les bleues pointent les probl`emes que l"on peut d´eduire directement (ou les cas particuliers), et enfin les vertes marquent les probl`emes que l"on peut r´esoudre en utilisant le probl`eme source. Les num´eros de probl`emes sont indiqu´es juste en dessous avec la meilleure complexit´e au

vu de ce qui a ´et´e d´emontr´e ici.1. Plus courts chemins `a partir d"un sommet source, dans un graphe

orient´e dont les arcs ont des poids positifs enO(nlnn+m)

2. Plus courts chemins entre tous les sommets, dans un graphe orient´e

dont les arcs ont des poids positifs enO(n2lnn+nm) 8

3. Plus court chemin entre deux sommets, dans un graphe orient´e dont

les arcs ont des poids positifs enO(nlnn+m)

4. Plus courts chemins `a partir d"un sommet source, dans un graphe

orient´e sans poids enO(n+m)

5. Plus courts chemins entre tous les sommets, dans un graphe orient´e

sans poids enO(n2+nm)

6. Plus court chemin entre deux sommets, dans un graphe orient´e sans

poids enO(n+m)

7. Fermeture transitive d"un graphe orient´e enO(n2+nm)

8. Multiplication de deux matrices sur un anneau enO(n2,81)

9. Multiplication de deux matrices bool´eennes enO(n2,81)

10. Fermeture transitive d"une matrice bool´eenne enO(n2+nm)

Bibliographie

-Introduction `a l"algorithmique, livre de T. Cormen, C. Leiserson, R. Rivest (et C. Stein dans la derni`ere version), Dunod (1994) -The design and analysis of computer algorithms, livre de Aho, Hocroft et Ullman, Addison-Wesley (1974) 9quotesdbs_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