• Aucun résultat trouvé

TD d’algorithmique avanc´ee TD 9 : Tri topologique

N/A
N/A
Protected

Academic year: 2022

Partager "TD d’algorithmique avanc´ee TD 9 : Tri topologique"

Copied!
1
0
0

Texte intégral

(1)

TD d’algorithmique avanc´ee TD 9 : Tri topologique

Jean-Michel Dischler et Fr´ ed´ eric Vivien

Untri topologique d’un graphe orient´e acyclique G= (S, A) est un ordre lin´eaire des sommets deG tel que siGcontient l’arc (u, v),uapparaˆıt avantv. Le tri topologique d’un graphe peut ˆetre vu comme un alignement de ses sommets le long d’une ligne horizontale tel que tous les arcs soient orient´es de gauche `a droite.

Attention : le tri topologique d’un graphe orient´e acyclique n’est pas forc´ement unique.

1. Proposez un tri topologique du graphe de la figure 1.

5

6 2

3 1

4

7 8 9

Fig.1 – Exemple de graphe orient´e acyclique.

2. Modifiez l’algorithme de parcours en profondeur vu en cours pour qu’il calcule pour chaque nœudusa date de fin de traitement fin[u] (la date `a laquelle lui et ses fils ont ´et´e trait´es).

3. Quel lien pouvez-vous faire entre les dates de fin de traitement et un tri topologique ? 4. Proposez un algorithme de tri topologique. Quel est sa complexit´e ?

5. Am´eliorez votre algorithme pour qu’il soit de complexit´e lin´eaire.

6. Proposez un autre algorithme de tri topologique, bas´e cette fois-ci sur le fait qu’un sommet de degr´e entrant nul peut ˆetre plac´e en tˆete d’un tri topologique. Quelle est la complexit´e de cet algorithme ?

Références

Documents relatifs

R´ ecrivez votre algorithme de recherche du maximum sous la forme d’un tournoi (de tennis, de foot, de p´ etanque ou de tout autre sport)2. Il n’est pas n´ ecessaire de

Nous voulons maintenant un algorithme Union(A, B) qui nous renvoie l’union des deux ensembles qui lui sont pass´ es en argument.. (a) Cas des ensembles non tri´ es

Donnez deux algorithmes « diviser pour r´ egner » permettant de multiplier deux polynˆ omes de degr´ e au plus n et s’ex´ ecutant en Θ(n log 2 3 ).. (a) Le premier algorithme

Nous supposons ´ egalement que la seule op´ eration ` a notre disposition nous permet de v´ erifier si deux ´ el´ ements sont ou non ´ egaux.. Au moyen de l’algorithme pr´

Le probl` eme est le mˆ eme que le pr´ ec´ edent, sauf qu’ici le voleur peut ne prendre qu’une fraction d’un objet et n’est plus oblig´ e de prendre l’objet tout entier

[r]

On peut le réaliser à partir du parcours (récursif) en profondeur dans le graphe dual en partant d'un sommet sur lequel aucun arc n'aboutit.. Il suffira

Ici le but est de montrer un algorithme linéaire (en O(|S| + |A|)) qui, étant donnés un graphe G = (S, A) et deux sommets s, t ∈ S décide s’il existe un chemin de longueur paire