Problèmes de Flots, Problèmes de couplage, Problèmes d affectation

Documents pareils
Chapitre 5 : Flot maximal dans un graphe

La NP-complétude. Johanne Cohen. PRISM/CNRS, Versailles, France.

Plus courts chemins, programmation dynamique

Programmation linéaire

Cours de Recherche Opérationnelle IUT d Orsay. Nicolas M. THIÉRY. address: Nicolas.Thiery@u-psud.fr URL:

Introduction à la théorie des graphes. Solutions des exercices

Plan. 5 Actualisation. 7 Investissement. 2 Calcul du taux d intérêt 3 Taux équivalent 4 Placement à versements fixes.

Exo7. Calculs de déterminants. Fiche corrigée par Arnaud Bodin. Exercice 1 Calculer les déterminants des matrices suivantes : Exercice 2.

Baccalauréat ES Polynésie (spécialité) 10 septembre 2014 Corrigé

Chapitre 6. Fonction réelle d une variable réelle

Eteindre. les. lumières MATH EN JEAN Mme BACHOC. Elèves de seconde, première et terminale scientifiques :

Souad EL Bernoussi. Groupe d Analyse Numérique et Optimisation Rabat http ://

Taux d évolution moyen.

Exercices du Cours de la programmation linéaire donné par le Dr. Ali DERBALA

Calcul matriciel. Définition 1 Une matrice de format (m,n) est un tableau rectangulaire de mn éléments, rangés en m lignes et n colonnes.

Cours 02 : Problème général de la programmation linéaire

Eléments de Théorie des Graphes et Programmation Linéaire

Arithmétique binaire. Chapitre. 5.1 Notions Bit Mot

Programmation Linéaire - Cours 1

Définition 0,752 = 0,7 + 0,05 + 0,002 SYSTÈMES DE NUMÉRATION POSITIONNELS =

Communications collectives et ordonnancement en régime permanent pour plates-formes hétérogènes

Baccalauréat S Antilles-Guyane 11 septembre 2014 Corrigé

Fonctions de plusieurs variables

Exemples de problèmes et d applications. INF6953 Exemples de problèmes 1

Programmation linéaire

alg - Classes, instances, objets [oo] Exercices résolus

Prêt hypothécaire. Programme de financement intégré Caméléon. Financez vos projets à la valeur de votre propriété

Exercices - Polynômes : corrigé. Opérations sur les polynômes

Théorie des Graphes Cours 3: Forêts et Arbres II / Modélisation

Limites finies en un point

Comparaison de fonctions Développements limités. Chapitre 10

Continuité et dérivabilité d une fonction

CHOIX OPTIMAL DU CONSOMMATEUR. A - Propriétés et détermination du choix optimal

Exercices types Algorithmique et simulation numérique Oral Mathématiques et algorithmique Banque PT

I. Polynômes de Tchebychev

Problème 1 : applications du plan affine

Développement décimal d un réel

Raisonnement par récurrence Suites numériques

Cours de Master Recherche

Résolution de systèmes linéaires par des méthodes directes

Université Paris-Dauphine DUMI2E 1ère année, Applications

La classification automatique de données quantitatives

Resolution limit in community detection

Optimisation non linéaire Irène Charon, Olivier Hudry École nationale supérieure des télécommunications

Optimisation for Cloud Computing and Big Data

OPTIMISATION À UNE VARIABLE

Chapitre 3. Quelques fonctions usuelles. 1 Fonctions logarithme et exponentielle. 1.1 La fonction logarithme


Licence Sciences et Technologies Examen janvier 2010

Bien lire l énoncé 2 fois avant de continuer - Méthodes et/ou Explications Réponses. Antécédents d un nombre par une fonction

Annexe 6. Notions d ordonnancement.

Chapitre 2. Matrices

Les indices à surplus constant

Fonctions homographiques

Durée de L épreuve : 2 heures. Barème : Exercice n 4 : 1 ) 1 point 2 ) 2 points 3 ) 1 point

Petit lexique de calcul à l usage des élèves de sixième et de cinquième par M. PARCABE, professeur au collège Alain FOURNIER de BORDEAUX, mars 2007

Programmation C++ (débutant)/instructions for, while et do...while

Bac Blanc Terminale ES - Février 2011 Épreuve de Mathématiques (durée 3 heures)

Chapitre 3. Les distributions à deux variables

Baccalauréat ES Pondichéry 7 avril 2014 Corrigé

Feuille TD n 1 Exercices d algorithmique éléments de correction

Logistique, Transports

Microsoft Excel : tables de données

Programmation linéaire et Optimisation. Didier Smets

Baccalauréat ES/L Amérique du Sud 21 novembre 2013

* très facile ** facile *** difficulté moyenne **** difficile ***** très difficile I : Incontournable T : pour travailler et mémoriser le cours

La demande Du consommateur. Contrainte budgétaire Préférences Choix optimal

I - PUISSANCE D UN POINT PAR RAPPORT A UN CERCLE CERCLES ORTHOGONAUX POLES ET POLAIRES

La programmation linéaire : une introduction. Qu est-ce qu un programme linéaire? Terminologie. Écriture mathématique

C++ - Classes, instances, objets [oo] Exercices résolus

Jean-Philippe Préaux

Représentation d un entier en base b

Ordonnancement. N: nains de jardin. X: peinture extérieure. E: électricité T: toit. M: murs. F: fondations CHAPTER 1

Leçon 10. Procédures d inventaire et valorisation des stocks

III- Raisonnement par récurrence

avec des nombres entiers

Image d un intervalle par une fonction continue

TRACER LE GRAPHE D'UNE FONCTION

IFT2880 Organisation des ordinateurs et systèmes

Cercle trigonométrique et mesures d angles

Algorithmique et Programmation

Big Data et Graphes : Quelques pistes de recherche

L ANALYSE EN COMPOSANTES PRINCIPALES (A.C.P.) Pierre-Louis GONZALEZ

La consolidation à une date ultérieure à la date d acquisition

2.4 Représentation graphique, tableau de Karnaugh

Théorie et codage de l information

D.E.S.C.F - UV 1 - Module 8 Consolidation dans les groupes de sociétés. Corrigé - Cas IG/IP/MEE

INFO-F Algorithmique 3 et Recherche Opérationnelle

Algorithmes de recherche

Cours d Analyse. Fonctions de plusieurs variables

Les Conditions aux limites

ALGORITHMIQUE II NOTION DE COMPLEXITE. SMI AlgoII

LEÇON N 7 : Schéma de Bernoulli et loi binomiale. Exemples.

La persistance des nombres

Analyse en Composantes Principales

BACCALAUREAT GENERAL MATHÉMATIQUES

NOMBRES COMPLEXES. Exercice 1 :

V- Manipulations de nombres en binaire

AC AB. A B C x 1. x + 1. d où. Avec un calcul vu au lycée, on démontre que cette solution admet deux solutions dont une seule nous intéresse : x =

Nouvelles propositions pour la résolution exacte du sac à dos multi-objectif unidimensionnel en variables binaires

Transcription:

Problèmes de Flots, Problèmes de couplage, Problèmes d affectation 0/oo / 0/ /oo 0/ / 0/oo / / / /oo /oo 0/oo / 0/

Plan : Maximisation de flot : Algorithme de Ford-Fulkerson Problème de couplage Problème de mise en boîte Couplage dans un graphe biparti Couplage de coût minimal Maximisation de flot à coût : Algorithme de Busacker- Gowen Problème de Transport Affectation de coût minimal Méthode Hongroise

Problème de flot maximal Définition : Un réseau de transport est un graphe : connexe et orienté, sans cycle, un unique sommet n a pas de prédécesseur : c est la source, un unique sommet n a pas de successeur, c est le but, chaque arête est bi-valuée : f / c, avec f,c des entiers positifs, (flot et capacité) c > 0, et 0 f c. En tout sommet flots entrants = Σ Σ flots sortants

Un réseau de transport peut être représenté ainsi (par exemple), aucune arête ne va de droite à gauche : source 2/2 0/2 2 / /2 0/2 3 /2 6 but 0/4 4 0/ 5 /2

arêtes saturées source 2/2 0/2 2 / /2 0/2 3 /2 6 but 0/4 4 0/ 5 /2 Une arête est saturée si flux=capacité. Sinon elle est insaturée.

source 2/2 0/2 2 / /2 0/2 3 /2 6 but 0/4 4 0/ 5 /2 On peut facilement montrer que le flux entrant égale le flux sortant. (ici 2)

Le problème du flot maximal consiste à maximiser le débit. source 2/2 0/2 2 / /2 0/2 3 /2 6 but 0/4 4 0/ 5 /2 On peut facilement montrer que le flux entrant égale le flux sortant. (ici 2). C est le débit.

Le problème du flot maximal consiste à maximiser le débit. source 2/2 0/2 2 / /2 /2 3 2/2 6 but 2/4 4 / 5 2/2 Par exemple, ici, le débit peut-être accru à 4.

Le problème du flot maximal consiste à maximiser le débit. source 2/2 0/2 2 / /2 /2 3 2/2 6 but 2/4 4 / 5 2/2 Attention!! il serait trompeur de croire que le flot est maximal dès que tout chemin de la source au but contient une arête saturée!!

Graphe d écart Définition : Etant donné un réseau de transport G, son graphe d écart a : même sommets que G, toute arête e insaturée de G ; valuée par c(e) f(e). pour toute arête e de i à j, de flux non nul, l arête e de j à i, valuée par f(e).

réseau de transport 2/2 2 / 3 /2 /2 0/2 6 0/4 4 / 5 /2 2 2 3 2 6 4 4 5 graphe d écart

Le flot peut être augmenté si et seulement si le graphe d écart contient un chemin de la source au but 2/2 2 / 3 /2 /2 0/2 6 0/4 4 / 5 /2 2 2 3 2 6 4 4 5

Le flot peut être augmenté si et seulement si le graphe d écart contient un chemin de la source au but 2/2 2 / 3 /2 /2 0/2 6 0/4 4 / 5 /2 2 2 3 2 6 4 4 5 Le plus petit poids des arête du chemin est l augmentation. Ici.

On l ajoute au flot des arêtes positives, et on le retranche au flot des arêtes négatives 2/2 2 / 3 /2 /2 0/2 - + 6 0/4 + 4 / 5 /2 + 2 2 3 2 6 4 4 5 Le plus petit poids des arête du chemin est l augmentation. Ici.

On l ajoute au flot des arêtes positives, et on le retranche au flot des arêtes négatives 2/2 2 / 3 /2 0/2 /2 6 /4 4 / 5 2/2 2 2 3 2 6 4 4 5 Le plus petit poids des arêtes du chemin est l augmentation. Ici.

Algorithme de Ford-Fulkerson Répéter Construire le graphe d écart Ge, Chercher dans Ge un chemin C de la source au but Calculer l augmentation Δ(C) Augmenter les arcs + de C dans G de Δ Diminuer les arcs - de C dans G de Δ Tant que Ge contient un tel chemin. (C) (C) Dans la pratique on pourra ne pas construire Ge mais marquer + ou (et) les sommets successifs en partant de la source ( ).

Problèmes de couplage Dans un graphe simple, un couplage est un ensemble d arêtes deux à deux non incidentes. Un couplage est maximal si son nombre d arêtes est maximal (un couplage parfait est maximal) La recherche de couplage maximal est un problème générique auquel de nombreux problèmes peuvent se ramener. Par exemple : si un couplage parfait existe (comme dans le cas d un graphe simple complet ayant 2n sommets), pour le trouver il suffit de trouver un couplage maximal. A rapprocher du problème du camion d épandage,

Pour un couplage C, un chemin U est alterné s il emprunte alternativement des arêtes dans C et hors de C. Un chemin alterné Par définition tout chemin réduit à une arête est alterné

Une chaîne améliorante est un chemin alterné dont les deux sommets extrémités sont hors de C. une chaîne améliorante

Une chaîne améliorante est un chemin alterné dont les deux sommets extrémités sont hors de C. Deux autres chaînes améliorantes

Une chaîne améliorante est un chemin alterné dont les deux sommets extrémités sont hors de C. La dernière Il n y en a pas d autres

Si U est une chaîne améliorante, un transfert de C par U consiste à retirer de C ses arêtes qui sont dans U à rajouter les arêtes de U qui ne sont pas dans C. On montre facilement que l on a construit un nouveau couplage ; et que sa cardinalité a augmenté de +.

Théorème : Un couplage est maximal si et seulement si il n admet aucune chaîne améliorante. Un transfert de C est un nouveau couplage C vérifiant : #C = #C +.

Ainsi déterminer un couplage maximal se ramène à la recherche de chaînes améliorantes. On commence initialement avec le couplage vide. Chercher une telle chaîne peut s implémenter avec des algorithmes de recherches classiques; polynomiaux. On obtient un algorithme de complexité cubique. Dans la pratique, lorsque le graphe n est pas trop gros on peut facilement chercher des chaînes améliorantes à la main, en remarquant d abord qu une arête ne rencontrant pas C donne une chaîne améliorante

Exemple : Problème de mise en boîte. On dispose en quantité abondante de sacs (divers conteneurs) tous de capacités K > 0. On a un ensemble d objets chacun d un poids inférieur à K. On veut ranger tous les objets dans des sacs en minimisant le nombre de sacs employés. On convient que : On peut mettre autant d objets que l on désire dans un sac, tant que la somme de leur poids n excède pas la capacité du sac.

En général il s agit d un problème NPdifficile. Si par contre on ne peut mettre qu au plus 2 objets dans un même sac (si par exemple le poids de chaque objet est > K/3), alors il se ramène à un problème de couplage maximal Construire un graphe non orienté ayant un sommet pour chaque objet, et où une arête relie deux objets dès que la somme de leur poids n excède pas K. Minimiser le nombre de sacs revient à trouver un couplage maximal de ce graphe.

Couplage dans un graphe biparti, et problème de flot. Définition : Un graphe est biparti si l on peut partitionner ses sommets en deux ensembles S et S 2, tels que chaque arête a une extrémité dans S et l autre dans S 2.

Un problème de couplage dans un graphe biparti se ramène à un problème de flot de la façon suivante : On oriente toutes les arêtes de S vers S 2.

Un problème de couplage dans un graphe biparti se ramène à un problème de flot de la façon suivante : / / / / / / / / / On ajoute une source et des arêtes de capacité la reliant aux sommets de S. On ajoute un but et des arêtes de capacité qui relient les éléments de S 2 au but.

Un problème de couplage dans un graphe biparti se ramène à un problème de flot de la façon suivante : /oo / / /oo / / /oo / / /oo / / /oo /oo / On donne une capacité infinie aux arêtes reliant S à S 2.

Un problème de couplage dans un graphe biparti se ramène à un problème de flot de la façon suivante : /oo / / /oo / / /oo / / /oo / / /oo /oo / A un couplage C du graphe biparti, correspond un flot de débit #C.

Un problème de couplage dans un graphe biparti se ramène à un problème de flot de la façon suivante : 0/oo / 0/ /oo 0/ / 0/oo / / / /oo /oo 0/oo / 0/ Débit = 3 A un couplage C du graphe biparti, correspond un flot de débit #C.

Un problème de couplage dans un graphe biparti se ramène à un problème de flot de la façon suivante : 0/oo / 0/ /oo 0/ / 0/oo / / / /oo /oo 0/oo / 0/ Réciproquement sous ces hypothèses (tous les flots sont entiers!!), un flot de débit D donne un couplage de cardinalité D. Une chaîne augmentante du couplage correspond à un chemin de la source au but dans le graphe d écart, et donc à une augmentation du flot. Débit = 3

Un problème de couplage dans un graphe biparti se ramène à un problème de flot de la façon suivante : 0/oo 0/ 0/ 0/oo 0/ 0/ 0/oo 0/ 0/ 0/ 0/oo 0/oo 0/oo 0/ 0/ Pour chercher un couplage maximal dans le graphe biparti, on applique l algorithme de Ford-Fulkerson (en partant d un flot nul) à ce réseau de transport.

Couplage de coût minimal Si le graphe est valué par des entiers non négatifs (ce sont les coûts), un couplage maximal de coût minimal est un couplage maximal, dont la somme des coûts est minimale parmi tous les couplages maximaux.

Couplage de coût minimal sur un graphe biparti et problème de flot de coût minimal 0/oo 0/ 0/ 0/oo 0/ 0/ 0/oo 0/ 0/ 0/ 0/oo 0/oo 0/oo 0/ 0/ Comme précédemment on ramène le problème de couplage dans un graphe biparti à un problème de flot.

Couplage de coût minimal sur un graphe biparti et problème de flot de coût minimal 0/oo(.) 0/(0) 0/(0) 0/oo(.) 0/(0) 0/(0) 0/oo(.) 0/(0) 0/(0) 0/(0) 0/oo(.) 0/oo(.) 0/oo(.) 0/(0) 0/(0) Sauf qu en plus les arcs sont munis d un coût : nul pour ceux incidents à la source ou au but. pour les autres, c est leur coût dans le graphe biparti.

Couplage de coût minimal sur un graphe biparti et problème de flot de coût minimal 0/oo(.) 0/(0) 0/(0) 0/oo(.) 0/(0) 0/(0) 0/oo(.) 0/(0) 0/(0) 0/(0) 0/oo(.) 0/oo(.) 0/oo(.) 0/(0) 0/(0) Chercher un couplage maximal de coût minimal revient à : chercher un flot de débit maximal, et de coût minimal (avec ce qui va suivre ).

Exemple d applications : encore un problème d affectation. N personnes à affecter à M machines. Chaque affectation a un coût. Minimiser le coût total. Pour résoudre le problème on constitue un graphe biparti, où les sommets de la partition correspondent respectivement aux travailleurs et aux machine. Un arête relie chaque travailleur à chaque machine ; elle est valuée par le coût de l affectation. Résoudre le problème revient à chercher un couplage maximal de coût minimal dans le graphe biparti. La méthode s applique.

Problèmes de flot de coût minimal On considérera un réseau de transport avec coût. Il s agit d un réseau de transport où les arêtes sont en plus munies d un coût : un entier non négatif. C est le coût de passage d une unité. Le problème du flot de coût minimal consiste à acheminer un flot de débit fixé D, pour un coût total ( Σ coût x flot) minimal.

Graphe d écart avec coût Comme pour un problème de flot sans coût on constitue le graphe d écart. Sauf qu en plus les arêtes du graphe d écart sont munies d un pseudo-coût : Les arêtes positives gardent leur coût Ci 0 Les arêtes négatives ont le coût opposé Ci 0.

Algorithme : trouver un flot de coût minimal Paramètre initial M (débit souhaité) Initialement le débit D et le coût K sont = 0 Répéter Chercher une chemin se S à B dans le graphe d écart, de coût minimal c. Calculer son augmentation Δ. Δ=min ( Δ, M-D) Dans le réseau de transport augmenter les flux des arêtes + de Δ, diminuer le flux des arêtes de Δ, et augmenter D de Δ. K= K+c x Δ Tant que l on trouve un tel chemin et D<M. A la fin le débit est min(m, débit maximal), et le flot est de coût minimal parmi de tels flots.

A 40/40/40 E O 80/80/0 30/50/0 50/50/0 0/00/0 B C 40/40/0 0/20/40 0/20/00 30/30/40 0/20/40 50/50/40 F G H 40/60/0 40/40/0 0/40/0 30/30/0 50/50/0 T D 0/00/40 I Trouver un flot maximal de coût minimal ère Méthode : Partir d un flot non nul D abord maximiser le flot puis minimiser son coût.

+ O 80/80/0 + 30/50/0 50/50/0 0/00/0 + A B C - - 40/40/40 0/20/40 0/20/00 D 0/00/40 40/40/0 30/30/40 0/20/40 50/50/40 + + + + E F G H I 40/60/0 40/40/0 0/40/0 30/30/0 50/50/0 + T Recherche de chaînes augmentantes Une seule : OBFAGT Capacité : 20 Sur-coût unitaire : 0+00-0+40+0=50

A 40/40/40 E O 80/80/0 50/50/0 50/50/0 0/00/0 B C 20/40/0 20/20/40 20/20/00 30/30/40 0/20/40 50/50/40 F G H 40/60/0 40/40/0 20/40/0 30/30/0 50/50/0 + T D 0/00/40 I Flot augmente de 20! 80 Coût augmente de 20*50=3000! 400 Le flot est maximal Le coût n est pas nécessairement minimal (parmi ceux maximaux)

A 40/40/40 E O 80/80/0 50/50/0 50/50/0 0/00/0 B C 20/40/0 20/20/40 20/20/00 30/30/40 0/20/40 50/50/40 F G H 40/60/0 40/40/0 20/40/0 30/30/0 50/50/0 + T D 0/00/40 I Comment optimiser le coût à débit constant? Le flot est maximal Le coût n est pas nécessairement minimal (parmi ceux maximaux)

Réponse : On construit le graphe d écart (avec coût), et on cherche un cycle de coût <0. On modifie le flot puis on continue tant que cela est possible. Car : Théorème : à débit fixé un flot n est pas de coût minimal si et seulement si son graphe d écart contient un cycle négatif.

O 80/-0 50/-0 50/-0 00/0 A B C 40/-40 20/0 20/-40 20/-00 30/-40 20/40 50/-40 E 20/-0 40/-0 20/0 F 40/-0 20/0 T G 20/-0 30/-0 H 50/-0 D 00/40 I Le graphe d écart

O 80/-0 50/-0 50/-0 00/0 A B C 40/-40 20/0 20/-40 20/-00 30/-40 20/40 50/-40 E 20/-0 40/-0 20/0 F 40/-0 20/0 T G 20/-0 30/-0 H 50/-0 D 00/40 I Un cycle de coût 0+40-40-0=0

O 80/-0 50/-0 50/-0 00/0 A B C 40/-40 20/0 20/-40 20/-00 30/-40 20/40 50/-40 E 20/-0 40/-0 20/0 F 40/-0 20/0 T G 20/-0 30/-0 H 50/-0 D 00/40 I Un cycle de coût 0+40-40+40-40-0=0

O 80/-0 50/-0 50/-0 00/0 A B C 40/-40 20/0 20/-40 20/-00 30/-40 20/40 50/-40 E 20/-0 40/-0 20/0 F 40/-0 20/0 T G 20/-0 30/-0 H 50/-0 D 00/40 I Les cycles aller-retour sont toujours de coût =0 Il n y a pas de cycles de coût négatifs : le coût trouvé est minimal. CQFD

A 0/40/40 E O 0/80/0 0/50/0 0/50/0 0/00/0 B C 0/40/0 0/20/40 0/20/00 0/30/40 0/20/40 0/50/40 F G H 0/60/0 0/40/0 0/40/0 0/30/0 0/50/0 T D 0/00/40 I 2ème Méthode : algorithme de Busacker-Gowen On part du flot nul!!

A 0/40/40 E O 40/80/0 0/50/0 0/50/0 0/00/0 B C 40/40/0 0/20/40 0/20/00 0/30/40 0/20/40 0/50/40 F G H 0/60/0 40/40/0 0/40/0 0/30/0 0/50/0 T D 0/00/40 I On Cherche une chaîne augmentante de coût minimal OAFT : capacité 40, coût 30 Débit = 40, coût= 200 (minimal parmi ceux de débit 40)

A 0/40/40 E O 40/80/0 0/50/0 50/50/0 0/00/0 B C 40/40/0 0/20/40 0/20/00 0/30/40 0/20/40 50/50/40 F G H 0/60/0 40/40/0 0/40/0 0/30/0 50/50/0 T D 0/00/40 I On Cherche une chaîne augmentante de coût minimal OCIT : capacité 50, coût 60 Débit = 90, coût= 4200 (minimal parmi ceux de débit 90)

A 40/40/40 E O 80/80/0 0/50/0 50/50/0 0/00/0 B C 40/40/0 0/20/40 0/20/00 0/30/40 0/20/40 50/50/40 F G H 40/60/0 40/40/0 0/40/0 0/30/0 50/50/0 T D 0/00/40 I On Cherche une chaîne augmentante de coût minimal OAET : capacité 40, coût 60 Débit = 30, coût= 6600 (minimal parmi ceux de débit 30)

A 40/40/40 E O 80/80/0 30/50/0 50/50/0 0/00/0 B C 40/40/0 0/20/40 0/20/00 30/30/40 0/20/40 50/50/40 F G H 40/60/0 40/40/0 0/40/0 30/30/0 50/50/0 T D 0/00/40 I On Cherche une chaîne augmentante de coût minimal OBHT : capacité 30, coût 60 Débit = 60, coût= 8400 (minimal parmi ceux de débit 60)

A _ 40/40/40 E + O 80/80/0 30/50/0 50/50/0 0/00/0 B C 40/40/0 0/20/40 + + + _ 0/20/00 30/30/40 0/20/40 50/50/40 D 0/00/40 + + 40/60/0 F 40/40/0 + 0/40/0 + G 30/30/0 H 50/50/0 I T On Cherche une chaîne augmentante de coût minimal Une seule : OBFAGT

A _ 40/40/40 E + O 80/80/0 30/50/0 B 20/40/0 20/20/40 + + 20/20/00 50/50/0 30/30/40 C 0/20/40 0/00/0 50/50/40 40/60/0 F 40/40/0 + 20/40/0 + G 30/30/0 H 50/50/0 T D 0/00/40 I On Cherche une chaîne augmentante de coût minimal OBFAGT : capacité 20, coût 50 Débit=80, coût=400 (minimal parmi ceux de débit 80)

A 40/40/40 E + O 80/80/0 + 30/50/0 50/50/0 0/00/0 20/40/0 20/20/40 B 20/20/00 30/30/40 C _ 0/20/40 50/50/40 + F G H 40/60/0 40/40/0 20/40/0 30/30/0 50/50/0 T + D 0/00/40 + I On Cherche une chaîne augmentante de coût minimal Plus aucune L algorithme s arrête Débit=80 Coût=400

Exemple : Problème de transport Supposons que l on doive organiser des acheminements (en bateau, avion) entre des base de dépôts et des lieux d expédition. Toute base i dispose d un stock A i. Chaque lieu d expédition j a une demande B j. Stock total = demande totale Pour chaque acheminement entre un dépôt A i et un lieu B j on a un coût C ij par tonne de fret. Problème : Acheminer tout le stock avec un coût total minimal.

Pour le résoudre Considérer un graphe biparti (bases/lieux) où une arête relie une base à tous les lieux où il est possible et demandé d envoyer des stocks. Elle est munie du coût d acheminement (pour t) et d une capacité infinie. Ajouter une source reliée à chaque base i par un arc de coût nul et de capacité A i Ajouter un but relié à chaque lieu d expédition j par un arc de coût nul et de capacité B j. Si M est la capacité en stock, le problème revient à chercher dans ce réseau de transport avec coût un flot de débit M et de coût minimal.

Affectation de coût minimal On a n tâches à effectuer et n travailleurs. L affectation d un travailleur i à la tâche j a un coût C ij. Comment effectuer toutes ces tâches pour un coût minimum?

Méthode hongroise On considère la matrice : Il s agit de choisir n éléments de la matrice, tels que chaque ligne et chaque colonne ne contienne qu un seul de ces éléments, et que leur somme soit minimale. Le problème est inchangé si on ajoute un même nombre à une colonne ou à une ligne. C C 2 C n C 2 C 22 C 2n C n C n2 C nn

Une réduction consiste à soustraire de chaque ligne son plus petit élément, puis de soustraire de chaque colonne son plus petit élément. Ex : 3 2 3 2 2 2 3 0 2 0 0 0 2

Algorithme hongrois Réduire la matrice Tant que on ne peut pas affecter n zéros, par ligne, par colonne, Chercher un support (lignes & colonnes) minimal des zéros, et barrer ses rangées. Soit k le + petit terme non barré. L ajouter aux termes barrés 2 fois, et le retrancher aux termes non barrés. Fin Tant que.

réduction puis au + affectation 2 3 4 4 3 5 0 0 0 0 2 0 2 0 0 0 0 2 0 2 k= 0 0 0 0 0 0 0 0 0 0 0 0 fini.

Algorithme de recherche d un support minimal des zéros Essayer d encadrer un zéro par ligne et par colonne. Si c est possible la procédure est finie. Sinon : Marquer toute ligne n ayant pas de zéro encadré. Tant que c est possible : Marquer toute colonne ayant un zéro non encadré sur une ligne marquée. Marquer toute ligne ayant un zéro encadré dans une colonne marquée Fin tant que. Barrer chaque colonne marquée et chaque ligne non marquée. C est un support minimal des zéros.