Projet d’Algorithme et Complexité
Couplage optimal
1ère année de Master InformatiqueUFR Sciences et Techniques Dijon
Année 2010-2011Harbelot-Chabot
1) Présentation du problème de couplage optimal
2) Solution n°1: Méthode Hongroise
3) Solution n°2: Algorithme de Ford-Fulkerson
4) Analyse comparative
Plan
6) Conclusion
5) Choix techniques
Problème de couplage optimal
Associer des objets d'un problème deux par deux en minimisant le coût des associations entre les objets
Couplage: Etant donné un graphe non orienté G=(S,A), un couplage est un sous-ensemble d’arête M appartenant à A tel que, pour tous les sommets v appartenant à S, au plus une arête de M est incidente à V
Solution n°1: Méthode Hongroise
La méthode hongroise en 5 étapes:
Solution n°1: Méthode Hongroise
Exemple de couplage optimal à l’aide de la méthode Hongroise:
1 2 3
3 1 2
1 3 2
Matrice initiale:
0 1 2
2 0 1
0 2 1
Réduction des lignes:
Solution n°1: Méthode Hongroise
0 1 1
2 0 0
0 2 0
Réduction des colonnes:
0 1 1
2 0 0
0 2 0
Traçage des traits:
Etudiant Projet Coût
1 1 1
2 2 1
3 3 2
Solution optimale:
Coût de la solution:
1 + 1 + 2 = 4
Solution n°2: Algorithme de Ford-Fulkerson
Conversion du problème de couplage optimal en problème de maximisation de flot
Utilisation de l’algorithme de Ford-Fulkerson
Solution n°2: Algorithme de Ford-Fulkerson
Etape 1
•Création du graphe d’écart
Etape 2
•Recherche d’un chemin de coût minimal
Etape 3
•Amélioration du flot
Solution n°2: Algorithme de Ford-Fulkerson
Exemple de couplage optimal à l’aide de l’algorithme de Ford-Fulkerson:
Phase 1 – Etape 1:
Solution n°2: Algorithme de Ford-Fulkerson
Phase 1 – Etape 2:
Chemin de coût minimal: 1, 2, 5, 8
Phase 1 – Etape 3:
Amélioration du flot = 1 Flot=1
Solution n°2: Algorithme de Ford-Fulkerson
Phase 2 – Etape 1:
Solution n°2: Algorithme de Ford-Fulkerson
Phase 2 – Etape 2:
Phase 2 – Etape 3:
Chemin de coût minimal: 1, 3, 6, 8
Amélioration du flot = 1 Flot=2
Solution n°2: Algorithme de Ford-Fulkerson
Phase 3 – Etape 1:
Solution n°2: Algorithme de Ford-Fulkerson
Phase 3 – Etape 2:
Phase 3 – Etape 3:
Chemin de coût minimal: 1, 4, 7, 8
Amélioration du flot = 1 Flot=3
Analyse comparative
Complexité de la méthode Hongroise: O(n²*n)
Complexité de l’algorithme de Ford-Fulkerson = O(n²*M)
Analyse comparative
Langage concis = Programme court
LANGAGE DE PROGRAMMATION
PARADIGMES DE PROGRAMMATION
Performances correctes
Utilisation de plusieurs paradigmes possibles
Paradigme Objet = Représentation du graphe et de ses composantes
Paradigme Impératif = Manipulation de matrices pour la méthode Hongroise
Paradigme Fonctionnel = Parcours de listes et recherche dans le graphe
Conclusion
Apports
Renforcement des connaissances relatives
au langage OCaml
Etude approfondie d’un problème et de ses solutions possibles
Mise en place des connaissances
acquises en matière de complexité
Oui
Avez-vous des questions ?
NonFulkerson…quoi?C’est déjà le matin??
Top Related