From 21448c4c034ed3684a93103d9e0ebd01e0eacd3f Mon Sep 17 00:00:00 2001
From: Orestis <orestis.malaspinas@pm.me>
Date: Tue, 4 Jun 2024 07:04:49 +0200
Subject: [PATCH] maj cours

---
 slides/cours_27.md | 45 +++++++++++++++++++++++++--------------------
 1 file changed, 25 insertions(+), 20 deletions(-)

diff --git a/slides/cours_27.md b/slides/cours_27.md
index 7c81aa7..075066d 100644
--- a/slides/cours_27.md
+++ b/slides/cours_27.md
@@ -5,6 +5,8 @@ date: "2024-06-04"
 
 # Rappel (1/2)
 
+\footnotesize
+
 ## Algorithme de Dijkstra: à quoi sert-il?
 
 . . .
@@ -17,11 +19,11 @@ A trouver le plus court chemin entre deux sommets d'un graphe!
 
 ```C
 distance[source] = 0
-distance[reste]  = inf;
+distance[reste]  = inf
 pour sommet dans liste_sommets:
     fp = enfiler(fp, sommet, w(source, sommet)) // file min
 tant !est_vide(fp):
-    sommet_courant, fp = défiler(fp);
+    sommet_courant, fp = défiler(fp)
     pour sommet_voisin dans voisinage(sommet_courant):
         n_dist = distance[sommet_courant] + w(sommet_courant, sommet_voisin)
         si distance[sommet_voisin] > n_dist:
@@ -305,20 +307,22 @@ matrice, matrice floyd_warshall(distance, n, w)
 
 ```C
 file_priorité, distance, parent initialisation(graphe)
-    r = aléatoire(graphe)
-    distance[r] = 0
-    parent[r] = indéfini
+    s_initial = aléatoire(graphe)
+    distance[s_initial] = 0
+    parent[s_initial] = indéfini
     fp = file_p_vide()
-    pour v dans sommets(graphe)
-        si v != r
-            distance[v] = infini
-            parent[v]   = indéfini
-        fp = enfiler(fp, v, distance[v])
+    pour s_courant dans sommets(graphe)
+        si s_courant != s_initial
+            distance[s_courant] = infini
+            parent[s_courant]   = indéfini
+        fp = enfiler(fp, s_courant, distance[s_courant])
     retourne fp, distance, parent
 ```
 
 # Algorithme de Prim
 
+\footnotesize
+
 ## Algorithme: Pseudo-code (5min)
 
 . . .
@@ -326,15 +330,16 @@ file_priorité, distance, parent initialisation(graphe)
 ```C
 sommets, parent prim(file_priorité, distance, parent)
     sommets = vide
-    tant que !est_vide(file_priorité)
-        u, fp = défiler(file_priorité)
-        sommets = insérer(sommets, u)
-        pour v dans voisinage de u et pas dans sommets 
-        // ou dans file_priorité
-            si w(u, v) < distance[v]
-                parent[w] = u
-                distance[w] = w(u, v)
-                fp = changer_priorité(fp, w, w(u, v))
+    tant que !est_vide(fp)
+        s_courant, fp = défiler(fp)
+        sommets = insérer(sommets, s_courant)
+        pour s_voinsin dans voisinage(s_courant) et pas dans sommets 
+        // ou dans fp
+            si poids(s_courant, s_voinsin) < distance[s_voinsin]
+                parent[s_voinsin] = s_courant
+                distance[s_voinsin] = poids(s_courant, s_voinsin)
+                fp = changer_priorité(fp, 
+                    s_voinsin, poids(s_courant, s_voinsin))
     retourne sommets, parent
 ```
 
@@ -734,7 +739,7 @@ O(|V|)  u, fp = défiler(file_priorité)
     * Retirer $(u,v)$ de $E$,
     * Si $u\in V_i$ et $v\in V_j$ avec $V_i\cap V_j=\emptyset$:
         * Ajouter $(u,v)$ à $A$;
-        * Fusionner $U$ et $V$ dans $F$.
+        * Fusionner $u$ et $v$ dans $F$.
 
 # Algorithme de Kruskal: exemple
 
-- 
GitLab