Dans le cadre du cours de Recherche Opérationnelle, ce projet se décompose en deux volets : implémenter et résoudre des problèmes de flot (calcul du flot maximum et du flot de coût minimal pour une valeur donnée), puis analyser la complexité des algorithmes et mesurer leurs performances (temps d'exécution et cohérence des résultats).
Projet : Recherche Opérationnelle
Le but du projet :
Démonstration Visuelle
Structure Algorithmique
Démarrer le programme
// Choisir une action
Choisir entre :
1. Étudier un graphe existant
2. Créer un graphe aléatoire
Si choisir "Étudier un graphe existant"
Entrer le numéro du graphe (par exemple, 1, 2, 3...)
Si le graphe a des coûts associés (numéro > 5)
Choisir une méthode :
1. Calculer le flot maximal (Edmonds-Karp)
2. Calculer le flot maximal (Push-Relabel)
3. Calculer le flot à coût minimal
Si choisir "Flot à coût minimal"
Entrer la valeur de flot souhaitée
Sinon
Choisir une méthode :
1. Calculer le flot maximal (Edmonds-Karp)
2. Calculer le flot maximal (Push-Relabel)
Voir les résultats :
- Matrice finale
- Flot
- Coût (si applicable)
- Temps d'exécution
Si choisir "Créer un graphe aléatoire"
Choisir entre :
1. Test simple
2. Test multiple (100 graphes)
Entrer la taille du graphe (nombre de sommets)
Si choisir "Test multiple"
Entrer la valeur de flot souhaitée
Choisir une méthode :
1. Calculer le flot maximal (Edmonds-Karp)
2. Calculer le flot maximal (Push-Relabel)
3. Calculer le flot à coût minimal
Si choisir "Flot à coût minimal"
Entrer la valeur de flot souhaitée
Voir les résultats :
- Matrice finale
- Flot
- Coût (si applicable)
- Temps d'exécution
Si test multiple, voir aussi :
- Temps moyen d'exécution
Finir le programme
Explications Détaillées du projet
Algorithmes implémentés et complexités :
- Edmonds-Karp (Ford-Fulkerson avec parcours en largeur) : cherche une chaîne améliorante par BFS. Complexité dans le pire des cas O(V·E²), avec V le nombre de sommets et E le nombre d'arêtes.
- Push-Relabel : gère les excédents en ajustant localement la hauteur des sommets. Complexité O(V²·E), souvent plus efficace sur les graphes denses où E≫V.
- Flot à coût minimal : utilise l'algorithme de Bellman-Ford pour obtenir à chaque étape le chemin de coût minimal. Complexité typique O(F·E·V), avec F la valeur du flot recherché.