Skip to content
Extraits de code Groupes Projets
Valider dd09abcf rédigé par Loïc Wikle DUBARD's avatar Loïc Wikle DUBARD
Parcourir les fichiers

capacité (mininum des capacités de toutes les arretes) du chemin c dans le graphe g

parent 266ca6a9
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
...@@ -8,7 +8,6 @@ ...@@ -8,7 +8,6 @@
*) *)
module Graphe = Map.Make(String) module Graphe = Map.Make(String)
module Arreteliste = Map.Make(String) module Arreteliste = Map.Make(String)
module Clesliste = Set.Make(String)
(* (*
...@@ -84,4 +83,33 @@ let rec chemins s g = ...@@ -84,4 +83,33 @@ let rec chemins s g =
*) *)
let rec filtre f t nl = match nl with let rec filtre f t nl = match nl with
| [] -> [] | [] -> []
| elt::ma -> if (List.nth elt 0) = f && (List.nth elt ((List.length elt)-1)) = t then elt::(filtre f t ma) else (filtre f t ma) | elt::ma -> if (List.nth elt 0) = f && (List.nth elt ((List.length elt)-1)) = t then elt::(filtre f t ma) else (filtre f t ma)
\ No newline at end of file
(*
capacité d'un chemin = min des capacités de chaque arrete
initialisation : pour la liste des chemins du graphe je choisi le chemin de capacite maximum que je sature
hérédité : pour la liste des chemins du graphe des capacité résiduelles je choisi le chemin de capacite maximum que je sature *)
(*
* [capacite c g] capacité (mininum des capacités de toutes les arretes) du chemin c dans le graphe g
*)
let capacite c g =
let rec min l a = match l with
| [] -> a
| e::m -> if e<a then min m e else min m a
in
let rec liste_capacite m = match m with
| [] -> []
| elt::[] -> []
| e1::(e2::nl) -> (Arreteliste.find e2 (Graphe.find e1 g))::(liste_capacite nl)
in
let liste = liste_capacite c
in
let f b = min liste (List.nth liste 0)
in
List.map f c
(* [graphe_capacite_residuelles c n g] donne le graphe des capacité résiduelles aprèes avoir retirer des arretes du chemin c le nombre n *)
let rec graphe_capacites_residuelles c n g =
\ No newline at end of file
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Terminez d'abord l'édition de ce message.
Veuillez vous inscrire ou vous pour commenter