Académique Documents
Professionnel Documents
Culture Documents
Rapport
Réalisé par :
SADIK Ilhame Encadré par :
MOUSSAOUI Khadija M. Jalil ABOUIR
1 Probléme d’affectation 3
1.1 Introduction : . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.2 Définitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.3 Formulation du probléme d’affectation . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.4 Contraintes du probleme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.5 Exemple d’Affectation de Tâches à des Machines . . . . . . . . . . . . . . . . . . . 5
1.5.1 Formulation du Problème . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.6 Recherche de l’affectation optimale . . . . . . . . . . . . . . . . . . . . . . . . . . 6
1.6.1 la méthode Hongroise : . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
1.7 Implémentation sous python . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
1.7.1 Bibliothéque : . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
1.7.2 Les fonctions sous python Pour résoudre Probléme d’affectation : . . . . . 9
1.7.3 Application sur l’exemple : . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
1.8 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
2 Problème de transport 15
2.1 introduction : . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
2.2 notions nécessaires . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
2.2.1 Solution de base réalisable : . . . . . . . . . . . . . . . . . . . . . . . . . . 15
2.2.2 Solution optimale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
2.3 Algorithme de résolution du problème de transport . . . . . . . . . . . . . . . . . . 16
2.3.1 Étape 1 : Formuler et configurer le problème sous forme matricielle . . . . . 16
2.3.2 Étape 2 : Obtenir une première solution de base réalisable . . . . . . . . . . 16
2.3.3 Étape 3 : Tester la solution de base initiale pour l’optimalité . . . . . . . . 16
2.4 Méthodes de détermination de solution de base . . . . . . . . . . . . . . . . . . . . 16
2.4.1 Méthode du Coin Nord-Ouest . . . . . . . . . . . . . . . . . . . . . . . . . . 16
2.4.2 2.2. Méthode du Coût Minimum : . . . . . . . . . . . . . . . . . . . . . . . 17
2.5 Application des méthodes de résolution du problème du transport . . . . . . . . . 17
2.5.1 Problématique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
2.5.2 Modélisation Mathématique . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
2.5.3 Détermination d’une solution de base initiale en utilisat la Méthode de Coin
Nord-Ouest : . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
2.5.4 Détermination d’une solution de base initiale en utilisat la Méthode du Coût
Minimum : . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
2.5.5 solution optimale en utilisant la Méthode de Distribution Modifiée : . . . . 20
2.6 l’implémentation des méthodes de résolution du probléme du transport sous python : 23
2.6.1 méthode des moindres Coûts sous python . . . . . . . . . . . . . . . . . . . 23
2.6.2 méthode de Coin Nord-Ouest sous python . . . . . . . . . . . . . . . . . . . 27
2
Chapitre 1
Probléme d’affectation
1.1 Introduction :
Le problème d’affectation, un concept central en recherche opérationnelle et en informatique,
constitue le cœur de nombreuses applications pratiques. Il se pose lorsqu’il est nécessaire d’attribuer
de manière optimale des ressources limitées à des tâches spécifiques, avec pour objectif ultime de
maximiser l’efficacité opérationnelle, de minimiser les coûts ou d’atteindre d’autres critères de
performance prédéfinis.
• Affectation des Tâches à des Machines : Dans les usines et les installations de produc-
tion, les entreprises doivent souvent attribuer des tâches de fabrication à différentes machines
et équipements. L’algorithme d’affectation peut être utilisé pour optimiser l’utilisation des
machines en affectant efficacement les tâches à chaque machine en fonction de sa capacité, de
ses performances et des exigences de chaque tâche. Par exemple, certaines machines peuvent
être spécialisées dans le découpage, d’autres dans le soudage ou l’assemblage. En utilisant
l’algorithme d’affectation, l’entreprise peut maximiser le rendement de ses équipements et
minimiser les temps d’arrêt en veillant à ce que chaque tâche soit effectuée par la machine la
mieux adaptée.
Ce chapitre vise à introduire les fondements du problème d’affectation, à explorer ses différentes
dimensions et à mettre en lumière ses applications variées.
3
4 CHAPITRE 1. PROBLÉME D’AFFECTATION
1.2 Définitions
— Couplage : Soit un graphe G(X, U ) simple. On appelle couplage un ensemble d’arêtes tel
que deux arêtes quelconques de U ne sont pas adjacentes.
— Sommets Saturés : Un sommet d’un graphe est dit saturé par un couplage s’il est
l’extrémité d’une arête de ce couplage.
— Couplage Parfait : Un couplage est dit parfait s’il sature tous les sommets du graphe.
— Couplage Maximal : Un couplage est dit maximal s’il est impossible d’ajouter une arête
supplémentaire au couplage sans violer la définition d’un couplage.
— Couplage Maximum : Un couplage est dit maximum s’il est de cardinalité maximale,
c’est-à-dire s’il est impossible de trouver un couplage de taille plus importante dans le graphe.
Objectif :
Minimiser le coût total d’attribution des tâches aux personnes.
Variables de Décision :
xij : variable binaire indiquant si la tâche ti est attribuée à un personne mj . Elle vaut 1 si la
tâche est attribuée à un personne , et 0 sinon.
Formulation :
n X
X m
Minimiser cij · xij
i=1 j=1
M1 M2 M3 M4
T1 1 2 6 ∞
T2 ∞ 5 ∞ 10
T3 7 ∞ 5 6
T4 4 ∞ 3 ∞
Nous cherchons à affecter chaque tâche à une seule machine de manière à minimiser le coût
total de production. Cela peut être formulé comme un problème d’affectation avec les contraintes
suivantes :
X
Pour chaque tâche i : xij = 1
j
X
Pour chaque machine j : xij = 1
i
Où xij est une variable binaire qui prend la valeur 1 si la tâche i est affectée à la machine j, et
0 sinon.
6 CHAPITRE 1. PROBLÉME D’AFFECTATION
les étapes :
La méthode hongroise comprend trois phases principales :
1. Obtention initiale de zéros
1.1. Soustraire le minimum de chaque ligne à toutes les valeurs de cette ligne.
1.2. Soustraire le minimum de chaque colonne aux valeurs correspondantes de
cette colonne.
2. Recherche d’une solution de coût nul
2.1. Prendre la ligne contenant le moins de zéros.
2.2. Encadrer le premier zéro de cette ligne.
2.3. Barrer les autres zéros de la ligne et de la colonne du zéro encadré.
2.4. Répéter jusqu’à l’impossibilité d’encadrer un zéro.
2.4.1. Si obtention de n zéros indépendants :
2.4.1.1. L’affectation est optimale.
1.6. RECHERCHE DE L’AFFECTATION OPTIMALE 7
étapes 1 :
M1 M2 M3 M4 M1 M2 M3 M4
T1 1 2 6 ∞ T1 0 1 5 ∞
T2 ∞ 5 ∞ 10 T2 ∞ 0 ∞ 4
T3 7 ∞ 5 6 T3 2 ∞ 0 0
T4 4 ∞ 3 ∞ T4 1 ∞ 0 ∞
étapes 2 :
M1 M2 M3 M4 M1 M2 M3 M4
T1 0 1 5 ∞ T1 1 2 6 ∞
T2 ∞ 0 ∞ 4 T2 ∞ 5 ∞ 10
T3 2 ∞ 0
0 T3 7 ∞ 5 6
T4 1 ∞ 0 ∞ T4 4 ∞ 3 ∞
— Fonction ajust matrix(mat, cover rows, cover cols) : Cette fonction ajuste
la matrice en soustrayant le minimum des éléments non couverts et en ajoutant
ce minimum aux éléments couverts. Voici les étapes : - Elle parcourt toutes les
lignes non couvertes de la matrice et soustrait le minimum de chaque ligne non
couverte. - Ensuite, elle parcourt tous les éléments non couverts de la matrice
et soustrait le minimum de chaque colonne non couverte. - Enfin, elle ajoute le
minimum retiré aux intersections des lignes couvertes et des colonnes couvertes.
1.7. IMPLÉMENTATION SOUS PYTHON 11
du tableau.
Cost matrix est représente la matrice des coûts d’affectation des tâches aux ma-
chines, où les valeurs np.inf est ∞ indiquent des affectations impossibles.
Après avoir appliqué l’algorithme hongrois , nous obtenons la position des éléments
dans la solution optimale. Ensuite, nous calculons le coût total minimal de la solution
optimale ainsi que la matrice contenant les éléments sélectionnés. Après l’exécution
du code, le coût total minimal de la solution optimale est affiché : 15
On va justement faire appel aux fonctions déjà expliquées dans la partie précédente.
14 CHAPITRE 1. PROBLÉME D’AFFECTATION
1.8 Conclusion
En résumé, ce chapitre aborde le problème d’affectation, un domaine crucial dans
de nombreuses applications pratiques. Nous avons introduit les concepts clés, for-
mulé le problème et présenté un exemple d’affectation de tâches à des machines. En
utilisant la méthode hongroise, une approche itérative, nous avons illustré comment
résoudre ce problème de manière efficace en Python. En conclusion, ce chapitre met
en lumière l’importance des méthodes algorithmiques pour résoudre les problèmes
d’affectation et démontre comment les outils informatiques modernes comme Python
peuvent être utilisés pour obtenir des solutions précises et rapides.
Chapitre 2
Problème de transport
2.1 introduction :
Le problème de transport est l’un des défis majeurs de la programmation linéaire,
abordé dans de nombreux domaines tels que la logistique, la gestion des opérations
et la recherche opérationnelle. Il surgit lorsque des biens doivent être déplacés depuis
plusieurs sources vers plusieurs destinations, chacune ayant une offre et une demande
spécifiques.
L’objectif principal est de minimiser les coûts totaux associés au déplacement des
biens, en prenant en compte les capacités de production des sources et les exigences
de demande des destinations.
La méthode du problème de transport repose sur une modélisation mathématique
rigoureuse, où les flux de biens entre les sources et les destinations sont représentés
par une matrice de coûts ou de distances. À l’aide de techniques d’optimisation
linéaire, comme le simplexe ou d’autres méthodes spécifiques au problème de trans-
port, il est possible de déterminer les allocations optimales qui minimisent les coûts
de transport tout en respectant les contraintes de capacité et de demande.
15
16 CHAPITRE 2. PROBLÈME DE TRANSPORT
Par conséquent, cela peut nécessiter ensuite de nombreuses étapes pour atteindre la
solution optimale.
réception des matières premières jusqu’à la livraison finale aux clients. Cette syn-
chronisation complexe nécessite une planification minutieuse et une coordination
étroite entre toutes les parties prenantes impliquées.”
// A B C l′ of f re
1 6 8 10 150
2 7 11 11 175
3 4 5 12 275
demande 200 100 300 600
// A B C l′ of f re
1 150 X X X
2 50 100 25 175
3 X X 275 275
demande 200 100 300 600
La fonction objectif s’écrit :
x2A = 50 unités
= 6×(150)+8×(0)+10×(0)+7×(50)+11×(100)+11×(25)+4×(0)+5×(0)+12×(275)
= 5925
la représentation graphique :
20 CHAPITRE 2. PROBLÈME DE TRANSPORT
// A B C l′ of f re
1 6 8 25 10 125 150
2 7 11
11 175 175
3 4 200 5 75 12
275
demande 200 100 300 600
2. Calcul des coûts de transport unitaires : Pour chaque cellule allouée cij ,
calculez le coût de transport unitaire cij − ui − vj .
3. Calcul des pénalités pour les cellules vides : Pour chaque cellule vide cij ,
calculez les pénalités ∆ij = cij − ui − vj .
/ vj va vb vc /
′
ui / A B C l of f re
u1 1 6 8 25 10
150
u2 2 7 11
11 175 175
u3 3 4 200 5 75 12
275
/ demande 200 100 300 600
Les équations sont les suivantes :
x1B : u1 + vB =8
x1C : u1 + vC = 10
x2C : u2 + vC = 11
x3A : u3 + vA =4
x3B : u3 + vB =5
vB =8
vC = 10
u2 =1
u3 = −3
vA =7
/ vj va = 7 vb = 8 vc = 10 /
′
ui / A B C l of f re
u1 = 0 1 6 8 25 10
150
u2 = 1 2 7 11
11 175 175
u3 = −3 3 4 200 5 75 12
275
/ demande 200 100 300 600
Les calculs sont les suivants :
x1A : u1 + vA =6 Donc : vA = 6
x1C : u1 + vC = 10 Donc : vC = 10
x2C : u2 + vC = 11 Donc : u2 = 1
x3A : u3 + vA =4 Donc : u3 = −2
x3B : u3 + vB =5 Donc : vB = 7
Toutes les valeurs ∆ij sont positives ou nulles, donc la solution obtenue est opti-
male.
x1A = 25 unitée,
x2C = 175 unitée,
x3A = 175 unitée,
x1C = 125 unitée,
x3B = 100 unitée
Le coût total de transport est :
La méthode des coûts minimaux est utilisée pour résoudre le problème du trans-
port, qui consiste à trouver la manière la moins coûteuse de transporter des res-
sources de plusieurs sources vers plusieurs destinations, en respectant les contraintes
d’offre et de demande.
L’algorithme est implémenté dans le code Python suivant :
1. Importation de bibliothèques : Le code commence par importer la bi-
bliothèque NumPy, utilisée pour les calculs numériques.
2. Définition de la fonction ‘minimumc ostm ethod‘ :
3. Initialisation de la matrice d’allocation : Une matrice d’allocation vide
est initialisée.
4. Boucle principale : Tant qu’il reste de l’offre non satisfaite et de la demande
non comblée, on recherche la cellule avec le coût minimum.
5. Recherche du coût minimum : On parcourt toutes les cellules de la matrice
des coûts pour trouver celle ayant le coût le plus bas, tout en vérifiant qu’il
reste de l’offre et de la demande pour cette cellule.
6. Allocation en fonction du coût minimum : Une fois la cellule de coût
minimum trouvée, on alloue la quantité minimale entre l’offre disponible et la
demande pour cette cellule.
7. Mise à jour de l’offre et de la demande : On met à jour les quantités
disponibles d’offre et de demande.
24 CHAPITRE 2. PROBLÈME DE TRANSPORT
matrice d’allocation :
2.6. L’IMPLÉMENTATION DES MÉTHODES DE RÉSOLUTION DU PROBLÉME DU TRANSPORT SOUS PYTH
Conclusion
En conclusion, le problème du transport est un élément essentiel dans de
nombreux domaines, de la logistique à la planification des opérations, en passant
par la gestion des chaı̂nes d’approvisionnement. À travers ce chapitre, nous avons
exploré différentes méthodes de résolution telles que la méthode des coûts
minimaux, la méthode du coût total minimal et le simplexe.
Chaque méthode offre ses propres avantages et inconvénients, et le choix de la
méthode appropriée dépend souvent de la complexité du problème et des objectifs
spécifiques à atteindre. Les avancées technologiques ont permis le développement
de logiciels spécialisés capables de résoudre efficacement des problèmes de
transport même de grande envergure.
Comprendre et maı̂triser les principes du problème du transport est crucial pour
améliorer l’efficacité opérationnelle, réduire les coûts logistiques et maintenir la
compétitivité dans un marché en constante évolution. Il est donc essentiel pour les
entreprises de développer des compétences dans ce domaine afin de prendre des
décisions stratégiques éclairées et de maximiser leur rentabilité.
En définitive, le problème du transport joue un rôle central dans la gestion des
opérations et la prise de décisions commerciales. En continuant à explorer de
nouvelles méthodes et technologies, les entreprises peuvent s’assurer d’optimiser
leurs processus logistiques et de maintenir un avantage concurrentiel sur le marché.