Skip to content
Snippets Groups Projects
Commit 2acaac60 authored by paul.albuquer's avatar paul.albuquer
Browse files

Edit cours_25.md

parent e9acc33b
No related branches found
No related tags found
No related merge requests found
Pipeline #40703 passed
...@@ -42,7 +42,7 @@ date: "2025-06-06" ...@@ -42,7 +42,7 @@ date: "2025-06-06"
# Formalisation: Les arbres couvrants # Formalisation: Les arbres couvrants
* Qu'est-ce qu'un arbre couvrant? Des idées? De quel objet on part? Où va-t-on? * Qu'est-ce qu'un arbre couvrant? Des idées? De quel objet part-on? Où va-t-on?
. . . . . .
...@@ -55,7 +55,7 @@ date: "2025-06-06" ...@@ -55,7 +55,7 @@ date: "2025-06-06"
# Arbres couvrants # Arbres couvrants
* Quels algorithmes que nous avons déjà vus permettent de construire des arbres couvrants? * Quels algorithmes que nous avons déjà vus, permettent de construire des arbres couvrants?
. . . . . .
...@@ -63,11 +63,11 @@ date: "2025-06-06" ...@@ -63,11 +63,11 @@ date: "2025-06-06"
. . . . . .
![Graphe, et parcours comme arbres couvrants.](figs/arbres_couvrants_parcours.png) ![Graphe et parcours comme arbres couvrants.](figs/arbres_couvrants_parcours.png)
# Arbres couvrants minimaux # Arbres couvrants minimaux
* Un *arbre couvrant minimal* est un sous-graphe d'un graphe non-orienté pondéré $G(V,E)$, tel quel: * Un *arbre couvrant minimal* est un sous-graphe d'un graphe non-orienté pondéré $G(V,E)$ tel quel:
* C'est un arbre (graphe acyclique); * C'est un arbre (graphe acyclique);
* Il couvre tous les sommets de $G$ et contient $|V|-1$ arêtes; * Il couvre tous les sommets de $G$ et contient $|V|-1$ arêtes;
* Le coût total associé aux arêtes de l'arbre est minimum parmi tous les arbres couvrants possibles. * Le coût total associé aux arêtes de l'arbre est minimum parmi tous les arbres couvrants possibles.
...@@ -84,7 +84,7 @@ date: "2025-06-06" ...@@ -84,7 +84,7 @@ date: "2025-06-06"
* Comment générer un arbre couvrant minimal? * Comment générer un arbre couvrant minimal?
![Un graphe, connexe, non-orienté, pondéré, et son arbre couvrant minimal.](figs/arbre_couvrant_minimal_exemple.png) ![Un graphe, connexe, non-orienté, pondéré, et un arbre couvrant minimal.](figs/arbre_couvrant_minimal_exemple.png)
# Algorithme de Prim # Algorithme de Prim
...@@ -491,13 +491,13 @@ sommets, parent prim(file_priorité, distance, parent) ...@@ -491,13 +491,13 @@ sommets, parent prim(file_priorité, distance, parent)
tant que !est_vide(fp) tant que !est_vide(fp)
s_courant, fp = défiler(fp) s_courant, fp = défiler(fp)
sommets = insérer(sommets, s_courant) sommets = insérer(sommets, s_courant)
pour s_voinsin dans voisinage(s_courant) et pas dans sommets pour s_voisin dans voisinage(s_courant) et pas dans sommets
// ou dans fp // ou dans fp
si poids(s_courant, s_voinsin) < distance[s_voinsin] si poids(s_courant, s_voisin) < distance[s_voisin]
parent[s_voinsin] = s_courant parent[s_voisin] = s_courant
distance[s_voinsin] = poids(s_courant, s_voinsin) distance[s_voisin] = poids(s_courant, s_voisin)
fp = changer_priorité(fp, fp = changer_priorité(fp,
s_voinsin, poids(s_courant, s_voinsin)) s_voisin, poids(s_courant, s_voisin))
retourne sommets, parent retourne sommets, parent
``` ```
...@@ -531,7 +531,7 @@ O(|V|) u, fp = défiler(file_priorité) ...@@ -531,7 +531,7 @@ O(|V|) u, fp = défiler(file_priorité)
sommets = insérer(sommets, u) sommets = insérer(sommets, u)
pour v dans voisinage de u et pas dans sommets pour v dans voisinage de u et pas dans sommets
O(|E|) si w(u, v) < distance[v] O(|E|) si w(u, v) < distance[v]
// màj dista + parent // màj distance + parent
O(|V|) fp = changer_priorité(fp, w, w(u, v)) O(|V|) fp = changer_priorité(fp, w, w(u, v))
retourne sommets, parent retourne sommets, parent
``` ```
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment