• Aucun résultat trouvé

Algorithme 1 :StockerAretesValides(G,u, S, hors arbre) Entr´ees : un graphe pond´er´e non orient´eG, un sommetudeG, un tas d’arˆetesS et un tableau bool´een hors arbre

N/A
N/A
Protected

Academic year: 2022

Partager "Algorithme 1 :StockerAretesValides(G,u, S, hors arbre) Entr´ees : un graphe pond´er´e non orient´eG, un sommetudeG, un tas d’arˆetesS et un tableau bool´een hors arbre"

Copied!
2
0
0

Texte intégral

(1)

Licence Informatique Algorithmique des graphes 2019–2020

Graphes pond´er´es

Ce document reprend les algorithmes vus au cours. Par convention, ils sont impl´ement´es sous la forme de fonctions avec un nom utilisantcette police. Si vous la voyez apparaˆıtre dans un algorithme, cela signifie donc qu’on fait appel `a un autre algorithme d´ej`a vu.

Algorithme 1 :StockerAretesValides(G,u, S, hors arbre)

Entr´ees : un graphe pond´er´e non orient´eG, un sommetudeG, un tas d’arˆetesS et un tableau bool´een hors arbre.

esultat : les arˆetes valides incidentes `a usont ajout´ees `aS.

1 pour chaquevG.voisins(u) faire

2 sihors arbre[v] alors S.ins´erer((u,v,G.poids arˆete(u,v))) ;

Algorithme 2 :ExtraireAreteSure(S, hors arbre)

Entr´ees : un tasS d’arˆetes et un tableau bool´een hors arbre.

esultat : une arˆete sˆure (ou factice s’il n’y en a pas) est extraite deS et renvoy´ee; les arˆetes invalides ´eventuellement rencontr´ees sont ´elimin´ees.

1 tant queS.pas vide() faire

2 (u, v, p)S.extraire minimum();

3 sihors arbre[u]6=hors arbre[v] alors renvoyer(u, v, p) ;

4 renvoyer (nil,nil, +∞);

Algorithme 3 :Prim(G, d´epart)

Entr´ees : un graphe pond´er´e non orient´eG, un sommet de d´epart.

Sortie : un ACPM pour la composante connexe deGcontenant d´epart.

1 arbre GraphePond´er´e();

2 arbre.ajouter sommet(d´epart);

3 hors arbretableau(G.nombre sommets(),vrai);

4 hors arbre[d´epart]faux;

5 candidatesTas() ;

6 StockerAretesValides(G, d´epart, candidates, hors arbre) ;

7 tant quearbre.nombre aretes() < G.nombre sommets() - 1 faire

8 (u, v, p)ExtraireAreteSure(candidates, hors arbre) ;

9 siu= nilalors renvoyerarbre ;

10 sihors arbre[u] alors´echangeruetv;

11 arbre.ajouter arˆete(u,v,p);

12 hors arbre[u]faux;

13 StockerAretesValides(G,u, candidates, hors arbre) ;

14 renvoyer arbre;

Page 1 / 2

(2)

Licence Informatique Algorithmique des graphes 2019–2020

Algorithme 4 :Kruskal(G)

Entr´ees : un graphe pond´er´e non orient´eG.

Sortie : une forˆet couvrante de poids minimum pourGconsistant en un arbre couvrant de poids minimum pour chaque composante connexe deG.

1 forˆet GraphePond´er´e(G.sommets());

2 classesUnionFind(G.sommets()) ;

3 pour chaque(u,v,p) tri par poids croissant(G.arˆetes())faire

4 siclasses.find(u) 6=classes.find(v) alors

5 forˆet.ajouter arˆete(u,v,p);

6 classes.union(classes.find(u), classes.find(v));

7 renvoyer forˆet;

Algorithme 5 :ExtraireSommetLePlusProche(S, distances)

Entr´ees : un ensembleS de sommets, et la distance de chaque sommet de S.

esultat : le sommet de S le plus proche est extrait et renvoy´e.

1 sommetnil;

2 distance min+∞;

3 pour chaquecandidatS faire

4 sidistances[candidat] <distance min alors

5 sommetcandidat;

6 distance mindistances[candidat];

7 sisommet6=nil alors SS\ sommet ;

8 renvoyer sommet;

Algorithme 6 :Dijkstra(G, source)

Entr´ees : un graphe pond´er´e non orient´eG, un sommet source.

Sortie : la longueur d’un plus court chemin de la source `a chacun des sommets du graphe (+∞

pour les sommets non accessibles).

1 a traiter G.sommets();

2 distances tableau(G.nombre sommets(), +∞);

3 distances[source] 0;

4 tant quea traiter.pas vide() faire

5 uExtraireSommetLePlusProche(a traiter, distances);

6 siu=nil alors renvoyerdistances ;

7 pour chaquevG.voisins(u) faire

8 distances[v] min(distances[v], distances[u] +G.poids arˆete(u,v));

9 renvoyer distances;

Page 2 / 2

Références

Documents relatifs

(a) II est basé sur la recherche de l'arbre de longueur minimum du graphe des données (on rappelle que l'arbre de longueur minimum d'un graphe dont les arêtes sont valuées, est

FETE DES MERES fête des mères. fête des mères

marge brute – remise – prix d’achat net – prix de vente hors taxe – coût d’achat prix de vente toute taxe comprise – prix d’achat net – frais d’achat – prix

Les réactifs sont les ions Ag + et le cuivre métallique car les courbes correspondantes ont un coefficient directeur négatif.. Les produits sont le métal Ag et les ions Cu 2+ car

-LIRE :Retrouver la structure narrative du conte en s’aidant du schéma narratif -DIRE :Participer à un débat sur l’interprétation d’un texte, utiliser des éléments

3- Ne cessant d’améliorer notre commande, nous avons constaté qu’un phénomène d’oscillation de l’eau autour d’un niveau provoque de nombreux démarrage et arrêt

On décompose le volume du liquide en rotation en couronnes cylindriques de rayon r, d’épaisseur dr et de hauteur z(r). Exprimer le volume dV d’une telle couronne. En supposant que

Nous l'avons dit : la drépanocytose est une maladie gouvernée par un seul gène : le gène de la globine bêta, dont il existe deux version, l'une responsable de la.