Browse Source

Version Terminéee : V3 finie Pret a Rendre

Paul Faure 3 years ago
parent
commit
01281cd5d4
2 changed files with 56 additions and 10 deletions
  1. 5
    5
      Makefile
  2. 51
    5
      README.md

+ 5
- 5
Makefile View File

@@ -14,25 +14,25 @@ man:
14 14
 	@echo "Il est possible de compiler ces fichiers de test avec la cible build_'nom_package'test, un fichier 'nom_package'test.native sera crée"
15 15
 	@echo "Il est possible d'executer ces fichiers de test avec la cible demo_'nom_package'test\n"
16 16
 	@echo "En ce qui concerne Ford Fulkerson, il a été codé dans le module flot, et, peut être lancé grace au fichier FordFulkerson.ml"
17
-	@echo "Pour simplifier son utilisation, la aussi, des cibles ont été créées : "
17
+	@echo "Pour simplifier son utilisation, la aussi, des cibles ont été créées : (V1)"
18 18
 	@echo "   - build_FordFulkerson : pour compiler le programme et créér FordFulkerson.native"
19 19
 	@echo "   - demo_FordFulkerson GRAPH=\"chemin\" ORIGIN=\"origine\" DESTINATION=\"destination\""
20 20
 	@echo "        Pour compiler le programme l'executer sur le graphe donné (ex ./graphs/flot/graph1) entre l'origine et la destination donnée (ex 0 et 5)"
21 21
 	@echo "        Cela charge le graphe, l'exporte au format svg, applique FordFulkerson, exporte le résultat au format svg, et l'affiche dans Firefox\n"
22 22
 	@echo "En ce qui concerne Ford Fulkerson avec prise en compte du cout, il a été codé dans le module flotcost, et, peut être lancé grace au fichier FordFulkersonCost.ml"
23
-	@echo "Pour simplifier son utilisation, la aussi, des cibles ont été créées : "
23
+	@echo "Pour simplifier son utilisation, la aussi, des cibles ont été créées : (V3)"
24 24
 	@echo "   - build_FordFulkersonCost : pour compiler le programme et créér FordFulkersonCost.native"
25 25
 	@echo "   - demo_FordFulkersonCost GRAPH=\"chemin\" ORIGIN=\"origine\" DESTINATION=\"destination\""
26
-	@echo "        Pour compiler le programme l'executer sur le graphe donné (ex ./graphs.flotcost/graph1) entre l'origine et la destination donnée (ex 0 et 5)"
26
+	@echo "        Pour compiler le programme l'executer sur le graphe donné (ex ./graphs/flotcost/graph1) entre l'origine et la destination donnée (ex 0 et 5)"
27 27
 	@echo "        Cela charge le graphe, l'exporte au format svg, applique FordFulkersonCost, exporte le résultat au format svg, et l'affiche dans Firefox\n"
28 28
 	@echo "En ce qui concerne l'affectation d'emploi, elle a été codée dans le module emploifile, et, peut être lancé grace au fichier emploifiletest.ml"
29
-	@echo "Pour simplifier son utilisation, la aussi, des cibles ont été créées : "
29
+	@echo "Pour simplifier son utilisation, la aussi, des cibles ont été créées : (V2)"
30 30
 	@echo "   - build_Emploi : pour compiler le programme et créér emploifiletest.native"
31 31
 	@echo "   - demo_Emploi EMPLOI=\"chemin\""
32 32
 	@echo "        Pour compiler le programme l'executer sur le fichier d'emplois donné (ex ./emplois/emploi1)"
33 33
 	@echo "        Cela charge le fichier, le transforme en graphe, applique FordFulkerson pour affecter les emplois, exporte le résultat au format svg, et l'affiche dans Firefox\n"
34 34
 	@echo "En ce qui concerne l'affectation d'emploi avec priorisation, elle a été codée dans le module emploifilecost, et, peut être lancé grace au fichier emploifilecosttest.ml"
35
-	@echo "Pour simplifier son utilisation, la aussi, des cibles ont été créées : "
35
+	@echo "Pour simplifier son utilisation, la aussi, des cibles ont été créées : (V3)"
36 36
 	@echo "   - build_EmploiCost : pour compiler le programme et créér emploifilecosttest.native"
37 37
 	@echo "   - demo_EmploiCost EMPLOI=\"chemin\""
38 38
 	@echo "        Pour compiler le programme l'executer sur le fichier d'emplois donné (ex ./emplois/emploi1)"

+ 51
- 5
README.md View File

@@ -1,8 +1,9 @@
1 1
 Ce Makefile permet la compilation et l'exécution du code Ocaml lié au projet Ocaml de 4IR codé par TALI Elies et FAURE Paul
2 2
 
3
-L'objectif de ce projet était d'implémenter l'algorithme de Ford Fulkerson (V1), et de l'utiliser pour un cas particulier (ici, l'affectation de taches) (V2)
3
+L'objectif de ce projet était d'implémenter l'algorithme de Ford Fulkerson (V1), et de l'utiliser pour un cas particulier (ici, l'affectation de taches) (V2) puis, de rajouter une version trouvant le flot max, et, minimisant un cout, permettant ainsi d'affecter des taches selon un système de voeux ordonnés (V3)
4 4
 
5
-Ce projet a été divisé en package :
5
+Ce projet a été divisé en package : (V1)
6
+  - LabelFlotCost : gérant les labels des graphes de flot avec prise en compte du cout
6 7
   - LabelFlot : gérant les labels des graphes de flot
7 8
   - Path : gérant les chemins dans les graphes
8 9
   - Tools : des outils pour travailler sur les graphes
@@ -12,22 +13,67 @@ Tous ces modules sont testables (fichier de type 'nom_package'test.ml) grace au
12 13
   - Il est possible d'executer ces fichiers de test avec la cible demo_'nom_package'test
13 14
 
14 15
 En ce qui concerne Ford Fulkerson, il a été dans codé le module flot, et, peut être lancé grace au fichier FordFulkerson.ml
15
-Pour simplifier son utilisation, la aussi, des cibles ont été créées : 
16
+Pour simplifier son utilisation, la aussi, des cibles ont été créées : (V1)
16 17
   - build_FordFulkerson : pour compiler le programme et créér FordFulkerson.native
17 18
   - demo_FordFulkerson GRAPH="chemin" ORIGIN="origine" DESTINATION="destination"
18
-            Pour compiler le programme l'executer sur le graphe donné (ex ./graphs/graph1) entre l'origine et la destination donnée (ex 0 et 5)
19
+            Pour compiler le programme l'executer sur le graphe donné (ex ./graphs/flot/graph1) entre l'origine et la destination donnée (ex 0 et 5)
19 20
             Cela charge le graphe, l'exporte au format svg, applique FordFulkerson, exporte le résultat au format svg, et l'affiche dans Firefox
20 21
 
22
+En ce qui concerne Ford Fulkerson avec prise en compte du cout, il a été codé dans le module flotcost, et, peut être lancé grace au fichier FordFulkersonCost.ml
23
+Pour simplifier son utilisation, la aussi, des cibles ont été créées : (V3)
24
+   - build_FordFulkersonCost : pour compiler le programme et créér FordFulkersonCost.native
25
+   - demo_FordFulkersonCost GRAPH=\"chemin\" ORIGIN=\"origine\" DESTINATION=\"destination\"
26
+        Pour compiler le programme l'executer sur le graphe donné (ex ./graphs/flotcost/graph1) entre l'origine et la destination donnée (ex 0 et 5)
27
+        Cela charge le graphe, l'exporte au format svg, applique FordFulkersonCost, exporte le résultat au format svg, et l'affiche dans Firefox
28
+	
29
+
21 30
 En ce qui concerne l'affectation d'emploi, elle a été codée dans le module emploifile, et, peut être lancé grace au fichier emploifiletest.ml
22
-Pour simplifier son utilisation, la aussi, des cibles ont été créées : 
31
+Pour simplifier son utilisation, la aussi, des cibles ont été créées : (V2)
23 32
   - build_Emploi : pour compiler le programme et créér emploifiletest.native
24 33
   - demo_Emploi EMPLOI="chemin"
25 34
         Pour compiler le programme l'executer sur le fichier d'emplois donné (ex ./emplois/emploi1)
26 35
         Cela charge le fichier, le transforme en graphe, applique FordFulkerson pour affecter les emplois, exporte le résultat au format svg, et l'affiche dans Firefox
27 36
 
37
+En ce qui concerne l'affectation d'emploi avec priorisation, elle a été codée dans le module emploifilecost, et, peut être lancé grace au fichier emploifilecosttest.ml
38
+Pour simplifier son utilisation, la aussi, des cibles ont été créées : (V3)
39
+   - build_EmploiCost : pour compiler le programme et créér emploifilecosttest.native
40
+   - demo_EmploiCost EMPLOI=\"chemin\"
41
+        Pour compiler le programme l'executer sur le fichier d'emplois donné (ex ./emplois/emploi1
42
+        Cela charge le fichier, le transforme en graphe, applique FordFulkersonCost pour affecter les emplois, exporte le résultat au format svg, et l'affiche dans Firefox
43
+
44
+ NB : Emploi et EmploiCost utilisent les mêmes fichers en entier, pour la priorisation des voeux, l'ordre d'écriture compte (cf plus bas)
45
+	
46
+
28 47
 Autres cibles : 
29 48
   - format : Pour indenter le code
30 49
   - edit  : Pour ouvrir le code dans VsCode
31 50
   - clean  : Pour supprimer les fichiers dot, les fichiers native, ainsi que le répertoire _build
32 51
 
33 52
 
53
+ZOOM SUR UN FICHIER EMPLOI
54
+
55
+%% Jobs
56
+
57
+%%Format j <idJobs> <Nom> <Nb de personnes possible> 
58
+%% j signifie qu'on définit un emploi/tache/job, ensuite vient son id (numero), ensuite son Nom en toutes lettres, et enfin le nombre de places disponibles dans cet emploi
59
+
60
+j 1 Professeur 2
61
+j 2 Laveur_de_carreaux 2
62
+j 3 Cuisinier 1
63
+j 4 Poissonier 3
64
+
65
+%% Applicants
66
+%% Format : a <Nb de jobs possibles en même tps> <Nom> <Liste nb jobs>
67
+%% Format scanf : Scanf.scanf line "a %d %s %s@:"
68
+%% %s@: -> mange tout tant qu'on a pas :
69
+%% String.split (à chercher dans le module)
70
+%% a signifie qu'on defini une personne, le nombre suivant defini combien de taches/postes elle doit se voir affecter, son Nom, et enfin la liste des jobs auquels elle postule (leur id)
71
+%% L'ordre dans la liste sert de priorisation dans le cas d'une affectation avec priorisation
72
+
73
+
74
+a 1 Gerard 2
75
+a 1 Sandrine 4
76
+a 1 Patrice 1 3
77
+%% Ici, Christine veut avant tout etre Professeur, ensuite Cuisinier, et en dernier choix, Poissonier
78
+a 2 Christine 1 3 4 
79
+a 1 Leo 2

Loading…
Cancel
Save