MP Scai
MP Scai
ISP-UVIRA
[Link] pratique de la RO
Chapitre 2 : LA PROGRAMMATION LINEAIRE
2.1. Généralités
2.2. Définition
2.3. Formulation d’un problème linéaire
2.4. Méthodes de résolution
A. Méthode Graphique
B. Méthode Algorithme du Simplexe
c) Initiation à un logiciel d’optimisation ou Excel
2.5. Dualité d’un Programme linéaire
2.6. Exercices d’Application
Chapitre 3 : NOTIONS GENERALES SUR LES GRAPHES ET LES PROBLEMES
D’ORDONNANCEMENT D’UN PROJET
3.1. Notions Générales sur les Graphes
a) Définition
b) Premier contact avec les graphes
c) Types des Graphes
d) Niveau de Graphes
3.2. Chemins dans un Graphes
3.3. Le Problème d’optimisation dans un graphe valué
a) Problèmes du plus cours chemin dans un graphe
b) Problème du chemin de valeur maximal dans un graphe
c)Pr oblème du chemin critique dans un graphe
3.4. Les Problèmes d’Ordonnancement et Gestion de Projet
a) Notions préliminaires
b) Construction du Graphes
c) Par la Méthode Française ( Potentielle-Tâche)
d) Par la Méthode Américaine (Potentielle-Étape)
c) Recherche de Chemin(Chemin critique, Chemin de valeur maximale et chemin de
valeur minimale,….).
4.1. Notions
4.2. Formalisation du problème de flot maximal
4.3. Détermination du flot maximal par l’algorithme de Ford et Fulkerson
Pour le grand public, la recherche opérationnelle est née vers 1940 lorsque le
physicien anglais Blackett fut appelé à présider une équipe multidisciplinaire chargée de résoudre
l’épineuse question de l’implantation optimale des radars de surveillance britanniques qui a joué
un rôle déterminant dans la bataille d’Angleterre.
L’appellation Recherche opérationnelle, tire probablement son origine des
applications aux opérations militaires de cette discipline durant la seconde guerre mondiale.
Dès la fin des hostilités, de nombreux essais furent tentés pour appliquer à l’économie
industrielle des méthodes jusqu’alors tentées par des états major alliés. D’après Robert Faure, la
recherche opérationnelle est l’ensemble des techniques rationnelles et des méthodes d’analyse et
de synthèse des phénomènes d’organisation utilisables pour élaborer les meilleures décisions.
En réalité, cette discipline date de plusieurs siècles avant la seconde guerre mondiale:
dès le 17ème siècle, Blaise Pascal et Pierre de Fermat, suivis de peu par Jacques Bernoulli et
d’autres savants cherchaient à établir des méthodes permettant les meilleurs décisions dans
l’incertain.
Vers 1776, Gaspard Monge attaquait avec succès des problèmes économiques de
nature combinatoire alors qu’Augustin Cournot s’était, vers 1838, frotté sur la théorie
mathématique des richesses devenant, de l’avis de beaucoup, le précurseur de l’économétrie.
Aux environs de 1925, Emile Borel introduisait la théorie mathématique des jeux
sous sa forme moderne tandis que quelques années avant lui, Erlang fondait la célèbre théorie des
files d’attente. Enfin, la veille de la seconde guerre mondiale, KANTOROVITCH concevait et
appliquait la programmation linéaire à la planification avant que KÖNIG ne se soit intéressé aux
graphes vers 1936.
Bien évidemment, il est impossible de dresser une liste exhaustive de tous les cadres
dans lesquels la R.O s’applique. On peut juste résumer que les techniques de la R.O s’appliquent
dans des problèmes combinatoires, les domaines de l’aléatoire ainsi que des situations de
concurrence. Chacune de ces trois catégories englobent une foule de techniques et des champs de
recherche.
Actuellement, la Recherche opérationnelle constitue une discipline très vaste et très
complexes, à cheval sur les Mathématiques, l’Économie, l’Informatique et bien d’autres
domaines.
[Link] de la Recherche Opérationnelle
Quelles sont les qualités requises de la part d’un chercheur opérationnel ? On exige de
lui avant tout un esprit scientifique, c’est-à-dire aussi bien capable de raisonner correctement par
déduction que par induction. On lui demande aussi la faculté de s’adapter pour lui permettre de
passer d’un problème à un autre sans perdre trop de temps. Il faut aussi, et c’est une condition
essentielle, qu’il sache se taire, garder un secret. Ceci est une condition primordiale car, de cette
aptitude dépend la confiance que l’on peut mettre dans sa personne, et des facilités de
renseignement qui lui seront accordées.
[Link] de la Recherche Opérationnelle
Le but de la Recherche Opérationnelle est d’obtenir une solution optimale (maximale
ou minimale) à un problème donné, en mettant en évidence les aspects critiques sur lesquels les
responsables portent leurs analyses et leurs jugements et en livrant des données réelles qui
permettent aux responsables d’avoir une opinion fondée.
La Recherche Opérationnelle permet donc aux responsables de décider en
connaissance de cause : elle élève le niveau où se manifeste le choix.
2.4.Démarche de la Recherche Opérationnelle
Les principales phases d’un travail de recherche opérationnelle sont les suivantes :
1) Énoncer ou définir le problème
Définir le problème implique la spécification des objectifs de l’organisation et les
parties du système qui doivent être étudiées avant de résoudre le problème. A ce stade, on
détermine ce que le projet est supposé accomplir. Pratiquement cela consiste entre autre :
- A tenir compte de toute hypothèse et commentaire des personnes ou organisations
impliquées dans ce projet ;
- A réexaminer toute notion préconçue liée au problème que l’on traite ;
- A se mettre à la place d’un opérateur et d’examiner le projet sous cet angle ;
2) Établir un modèle mathématique du problème
Le gestionnaire développe un modèle mathématique analytique ou un modèle de
simulation qui rende un ordinateur capable d’approcher le comportement du système actuel. Un
modèle exprime une ou plusieurs relations entre les différentes variables et constantes. D’un
modèle construit dépend l’efficacité d’éventuelles décisions à prendre. Un modèle peut être écrit
à l’aide d’un langage formel ou dans un langage naturel.
Exemple. Supposons que l’on se trouve devant le problème suivant :
- Formulation en langage naturel.
Une entreprise conçoit et commercialise deux produits, le premier est vendu avec un bénéfice de
10 francs l’unité, le second avec un bénéfice de 20 francs l’unité. La production étant soumise à la
contrainte suivante : La quantité journalière fabriquée ne peut dépasser 100 unités tous produits
confondus. On demande de définir un plan de production quotidien qui optimise le bénéfice de
l’entreprise. Dans cette formulation,
historiquement plus axé sur les événements incertains et l'industrie, et ses méthodes plus
particulièrement mathématiques. La recherche opérationnelle utilise de nombreuses méthodes
issues de théories mathématiques diverses. En ce sens, une partie de la recherche opérationnelle
peut être considérée comme une branche des mathématiques appliquées. Les mathématiques,
notamment les statistiques, contribuent aussi à poser efficacement les termes d'un problème. La
théorie des graphes sert de support à la résolution d'un vaste échantillon de problèmes, notamment
certains issus de l'algorithmique classique, tels que les problèmes de plus court chemin, le
problème du voyageur de commerce, les problèmes d'ordonnancement de tâches, les problèmes de
planning ou encore les problèmes d'optimisation de flux.
Les progrès de l'informatique sont intimement liés à l'accroissement des applications
de la recherche opérationnelle. Une puissance de calcul importante est nécessaire à la résolution
de problèmes de grande taille. Cette puissance est cependant loin de constituer une panacée : la
théorie de la complexité des algorithmes nous apprend que certains problèmes ne peuvent pas être
résolus de manière optimale dans un temps raisonnable, même si l'on considère des ordinateurs un
milliard de fois plus puissants que ceux d'aujourd'hui.
Actuellement, la Recherche opérationnelle constitue une discipline très vaste et
très complexes, à cheval sur les Mathématiques, l’Economie, l’Informatique et bien d’autres
domaines.
2.6. Application pratique de la RO
Les domaines d’intervention de la R.O. sont très divers (social, ´économique, militaire
...). En tant que science, la R.O. interagit avec d’autres activités scientifiques comme les
mathématiques ou l’informatique, qu’elle utilise et qu’elle enrichit aussi. Cependant un emploi
sans discernement de la R.O. en tant qu’aide à la décision d’opérateurs, peut conduire dans
certaines situations à des erreurs. Ces erreurs sont souvent conséquentes à un mauvais emploi de
techniques issues de la R.O. ou à l’inadaptation de ces techniques par rapport à la réalité d’un
problème L’idée à retenir est que la Recherche Opérationnelle ne s’occupe pas de problèmes dans
lesquels une solution de bons sens intervient tout naturellement. Elle concerne des situations dans
lesquelles, pour une raison quelconque, le bon sens humain se révèle faible ou impuissant. Ces
problèmes types sont regroupés en trois grandes catégories, à savoir :
2.6.1. Les problèmes combinatoires
Un problème est dit combinatoire lorsqu'il comprend un grand nombre de solutions
admissibles parmi lesquelles on cherche une solution optimale ouproche de l'optimum.
Il s’agit de problèmes pour lesquels il existe plusieurs solutions qu’il est impossible
d’énumérer toutes. Dans ce cas, l’utilisation d’un algorithme judicieux permet d’aller très
rapidement à la solution optimale. Les principaux exemples sont :
décision de l’une des parties risquent d’être amenuisées du fait de la décision de l’autre partie.
Parmi les exemples, on peut citer la définition de politiques d’approvisionnement, de vente, etc.,
domaine de la théorie des jeux. Ces trois grandes catégories constituent les trois parties principales
de notre cours de R.O.
[Link] informatique
L’informatique apporte des solutions pour des problèmes de la Recherche
Opérationnelle. Les applications ont été mises à la disposition du publique. On peut citer : Ms
Excel, Lotus-1-2-3, Or Simplex, Linear Programmation, Ms Project, Gantt (pour
l’ordonnancement),… Parmi ces solutions informatiques, certaines sont gratuits et d’autres
payants.
1) Identifier les variables du problème à valeur non connues (variable de décision) et les
représenter sous forme symbolique (exp. x1, y1 ) ;
2) Identifier les restrictions (les contraintes) du problème et les exprimer par un système
d’équations linéaires ;
3) Identifier l’objectif ou le critère de sélection et le représenter sous une forme linéaire en
fonction des variables de décision. Spécifier si le critère de sélection est à maximiser ou à
minimiser.
2.4. Méthodes de résolution
Il existe généralement deux (2) méthodes de résolution d’un Programme Linéaire.
Exemples introductifs
1) Une usine fabrique 2 pièces A et B usinées dans deux ateliers et . Les temps d'usinage
sont pour A: de 3 heures dans l'atelier et de 6 heures dans l'atelier pour B: de 4 heures
dans l'atelier et de 3 heures dans l'atelier . Le temps de disponibilité hebdomadaire de
l'atelier est de 160 heures et celui de l'atelier de 180 heures. La marge bénéficiaire est
de 1200 F pour une pièce A et 1000 F pour une pièce B. Quelle production de chaque
type doit-on fabriquer pour maximiser la margehebdomadaire ?
Le problème peut se formaliser de la façon suivante : variables économiques ou
d'activités ce sont les inconnues :
2) Un spécialiste en médecine a fabriqué un médicament (des pilules) pour guérir les sujets
atteints d’un rhume. Ces pilules sont fabriquées selon deux formats :
Formulation du problème en un PL :
Cette méthode n'est applicable que dans le cas où il n'y a que deux variables. Son
avantage est de pouvoir comprendre ce que fait la méthode générale du Simplexe, sans entrer dans
la technique purement mathématique.
contraintes :{
Afin de comparer avec la résolution graphique, nous pouvons considérer que nous
Solution :
1) On transforme les inéquations en équations en ajoutant à chacune des équations
une variable d’écart :
- Une fois le pivot égalé à 1, il faut maintenant annuler tous les autres éléments de la colonne
pivot : Dans ce cas, il faut (naturellement) soustraire 5 fois la première ligne de la
deuxième ligne, 2 fois la première ligne de la troisième ligne et ajouter 5 fois la
première ligne à la quatrième. On obtient alors le deuxième tableau :
Deuxième tableau :
Comme il ne reste plus comme indicateur négatif que qui est dans la deuxième
colonne on introduit dans la base : la deuxième colonne devient la colonne pivot. La division
de la colonne des constantes par la colonne pivot révèle que le plus faible ratio de
déplacement se situe dans la deuxième ligne :
Dans ce cas devient le nouveau pivot. Comme le vecteur unitaire portant 1 sur la
deuxième ligne est situé sous s2 c’est s2 alors qui est exclu de la base.
On peut lire directement sur ce tableau la troisième solution de base accessible : quand
et et . Comme il n’ y a plus d’indicateurs négatifs sur
la dernière ligne, c’est la solution optimale. Le dernier élément de la dernière ligne indique que,
lorsque et , la fonction objectif atteint un maximum tel que
, . Comme s1 et s2, alors les variables d’écart sont
nulles dans les deux premières contraintes et il en résulte que les deux premiers facteurs de
production sont utilisés à plein. Par contre comme alors six unités du troisième facteur de
production restent inutilisés !
La valeur de l’indicateur situé sous chaque variable d’écart dans le tableau final exprime la
valeur marginale, ou prix fictif, du facteur de production associé à la variable, c’est-à-dire qu’il
révèle de combien changerait la valeur de la fonction objectif si le facteur de production
augmentait d’une unité.
Ainsi, on peut dire que les profits s’accroîtraient d’une demi-unité, ou de 50 centimes, si la
disponible de ce facteur :
Retrouver graphiquement cette solution représentant l’ensemble de solutions
admissibles on a :
Sur ce graphique il est évident que les sommets du polygone des solutions
admissibles sont : .
En calculant la fonction objectif : ( ) 3x1+5x2 sur chacun de ces
sommets on obtient :
Il est donc évident que prend sa valeur maximale au point (5,3).
Etapes Justification
1. Formuler un programme linéaire pour le Pour obtenir une représentation mathématique du
problème réel. problème
2. Vérifier que le second membre du programme Ceci est nécessaire pour obtenir comme variable de
linéaire est positif base initiale l’origine
3. Ecrire le programme linéaire sous une forme Mettre toutes les contraintes sous forme d’égalité
standard
4. Construire le premier tableau de simplexe Ce tableau correspond à la solution initiale de base
5. Choisir comme variable entrante dans la base La valeur de cj-zj indique la quantité d’augmentation
celle qui admet le plus grand effet net positif cj-zj. de la fonction objectif si on augmente la valeur de xj
d’une unité.
6. Choisir la variable sortante de la base celle qui La plus petite valeur de Qi/aij indique le nombre
admet le plus petit ratio supérieur à zéro. maximal d’unité de xj qu’on peut introduire avant que
la variable de base de l’ième ligne ne soit égale à zéro.
7. Construire le nouveau tableau en utilisant la Cette règle nous permet entre autre de calculer les
règle de pivot valeurs des nouvelles variables de décision
8. Faire le test d’optimalité. Si Si (cj-zj) 0 alors on n’a pas d’intérêt à faire entrer
(cj-zj) 0 pour toutes les variables (hors base), la dans la base aucune de ces variables. Une telle
solution obtenue est donc optimale. Sinon introduction engendra une diminution de la fonction
retourner à l’étape 5. objectif.
PRIMAL DUAL
m contraintes d'infériorité n contraintes de supériorité
n variables d'activité n variables d'écart
m variables d'écart m variables d'activité
écriture en ligne écriture en colonne
- Les coefficients des colonnes (lignes) du primal sont les coefficients des lignes
(colonnes) dudual.
- Si le problème primal possède une solution optimale infinie, alors le dual n’a
pas de solutionréalisable.
- Une contrainte est dite saturée lorsque la variable d'écart qui lui est associée
est nulle à l'optimum. Si pour une solution optimale d'un programme linéaire une
contrainte n'est pas saturée, alors la valeur optimale (duale) correspondante est
nulle. La réciproque n'est pas (nécessairement) vraie.
- Si la valeur optimale d'une variable n'est pas nulle, alors la contrainte duale
correspondante est saturée pour la solution optimale. Le corollaire est très utile
pour résoudre un programme à partir de la solution de son dual.
- Si pour une solution optimale d'un programme linéaire une contrainte n'est pas
saturée, alors la valeur optimale (duale) correspondante est nulle. En terme
économique, par exemple, si un bien est abondant (il n'y en a plus qu'on ne peut
utiliser efficacement), son coût marginal (une heure de location supplémentaire)
considéré comme son prix d'équilibre (la variable duale associée)est nul.
Exemple
PRIMAL DUAL
3 x1 + 4 x2 160 3 y1 + 6 y2
6 x1 + 3 x2 180 4 y1 + 3 y2
Min w = 160 y1 + 80 y2
Max z = 1200 x1 + 1000 x2
y1 0 ; y2 0
x1 0 ; x2 0
Illustration :
Minimiser sous les contraintes
En résolvant, d’après la méthode du simplexe le programme dual on commence par introduire les
variables d’écart pour avoir :
Au vu des coefficients des autres lignes sur la colonne pivot, les opérations naturelles :
s’imposent sur toutes les
lignes et donnent :
Comme tous les indicateurs sont non négatifs, alors il suffit de poser
Pour la solution optimale du dual nous avons trouvé pour ses variables
En utilisant les résultats relatifs au dual ci-dessous nous avons les déductions suivantes :
- Comme la variable d’écart du dual , il en résulte que la variable de
décision correspondante du primal, est nécessairement égal à zéro.
- Comme les deux dernières variables d’écart du dual sont nulles (
), il en résulte que les variables de décision
correspondantes du primal sont non nulles : .
- Puisque les valeurs optimale des variables de décision du dual
Cette action vous amène une autre boîte de dialogue dans laquelle, vous êtes invité
de cocher Complément Solver puis cliquer sur ok pour que cette commande fait partie
intégrante de l’onglet données.
4) Comme vous pouvez le constater sur cette image, la colonne D est restée vide jusque là.
L’ordinateur ne pouvant pas comprendre les variables et les contraintes, il est nécessaire
de lui fournir les données numériques pour qu’il agisse. Ainsi, cette colonne recevra le
calcul des valeurs de contraintes à même de vérifier les inéquations. Pour ce faire, au
niveau de D4, première contrainte du programme linéaire à résoudre : 3x1 + 4x2≤4200,
B2 devant contenir la valeur optimale de X1 et C2, la valeur optimale de la variable X2,
la cellule D4 sera alors la multiplication du contenu de B2 par B4 lequel produit sera
ajouté du produit C2 et C4. En Excel, il faudra, dans la cellule D4, introduire le signe
d’égalité (=) puis cliquer sur B2 puis saisir le signe de multiplication à l’aide du clavier
(*) et puis cliquer sur B4, mettre le signe d’addition (+) ensuite cliquer sur C2 puis saisir
le signe de multiplication à l’aide du clavier (*) et en fin sur C4 ce qui donnera la
formule suivante = B2*B4 + C2*C4. La valeur sera égale à zéro. Ne vous inquiétez pas.
Il faudra alors reprendre cette opération jusqu’à terminer toutes les contraintes. Pour la
deuxième contrainte, dans la cellule D5, on aura le résultat (formule) suivant :
B2*B5+C2*C5, pour la troisième contrainte, dans la cellule D6, on aura le résultat
(formule) suivant : B2*B6+C2*C6, et pour la quatrième et dernière contrainte, dans la
cellule D7, on aura le résultat (formule) suivant : B2*B7+C2*C7.
5) Ce qui vous reste à faire en termes d’introduction de données est la formule de calcul du
profit total qui s’obtient en multipliant les quantités optimales reprises en B2 et C2 par
les prix unitaires contenues dans les cellules B8 et C8. En faisant cela, on obtient alors la
formule =B8*B2+C8*C2 à inscrire dans la cellule B9. C’est cette cellule qu’on
maximisera car elle correspond à la fonction objectif 66x1 + 84x2. L’image ci-dessous
illustre cela.
1) Menu: Outils/Solveur (office 2003) ou sous l’onglet Données (office 2007 à 2016), la
commande Solveur .
2) Entrez les paramètres du solveur comme vous pouvez le voir sur l’image ci-dessous :
La Cellule cible à définir est celle qui doit contenir la cellule du profit total ou du coût
minimal en fonction du problème. Dans le cas de notre exemple, B9.
Égale à permet de préciser le type de problème à résoudre : Minimisation ou
maximation. Pour notre exemple, nous allons cocher Max.
Cellules variables: Cette zone reçoit les cellules de valeurs recherchées. Pour notre cas,
les cellules B2 : C2 représentant les variables de décisions qui doivent être déterminées
automatiquement par le solveur.
Contraintes: Cette zone contiendra toutes contraintes du programme linéaire sans
oublier les contraintes de non-négativité x1≥ 0, x2≥ 0.
Pour le faire,
1) Cliquez sur « Ajouter ». Cela vous apporte la boîte de dialogue « ajouter une contrainte »
ci-après :
6) Le solveur crée alors une feuille de rapport de manière automatique portant le nom de la
feuille contenant les données du programme auquel il ajoute 1.
2.7. Exercices d’Application
1) Le gérant d'un hôtel souhaite renouveler le linge de toilette de son établissement. Il a besoin
de : 90 draps de bain, 240 serviettes et 240 gants de toilette. Une première entreprise de vente
lui propose un lot A comprenant 2 draps de bain, 4 serviettes et 8 gants pour 200 francs. Une
deuxième entreprise vend pour 400 francs un lot B de 3 draps de bains, 12 serviettes et 6 gants
de toilettes. Pour répondre à ses besoins, le gérant achète x lots A et y lots B.
1. Traduire par un système d'inéquations les contraintes auxquelles satisfont x et y.
2. Par la méthode graphique trouver la fonction objectif.
2) Pour fabriquer deux produits P1 et P2 on doit effectuer des opérations sur trois machines
M1, M2 et M3, successivement mais dans un ordre quelconque. Les temps unitaires
d’exécution sont donnés par le tableau suivant :
M1 M2 M3
P1 11 mn 7 mn 6 mn
P2 9 mn 12 mn 16 N
On supposera que les machines n’ont pas de temps d’inactivité. La disponibilité
pour chaque machine sont :
- 165 heures (9900 minutes) pour la machine M1 ;
- 140 heures (8400 minutes) pour la machine M2 ;
- 160 heures (9600 minutes) pour la machine M3 .
Le produit P1 donne un profit unitaire de 900 dinars et le produit P2 un profit unitaire de 1000
dinars. Dans ces conditions, combien doit-on fabriquer mensuellement de produits P1 et P2
pour avoir un profit total maximum ?
3) Une entreprise désire effectuer une campagne publicitaire dans la télévision, la radio et
les journaux pour un produit lancé récemment sur le marché. Le but de la campagne est
d’attirer le maximum possible de clients. Les résultats d’une étude de marché sont
donnés par le tableau suivant :
Télévision Radio Journaux
Locale Par satellite
Coût d’une publicité 40 DT 30 DT 75 DT15 DT
Nombre de client potentiel 400 500 900 200
par publicité
Nombre de client potentiel 300 400 200 100
femme par publicité
Pour la campagne, on prévoit de ne pas payer plus que 800DT pour toute la campagne et on
demande que ces objectifs soient atteints :
- Au minimum 2000 femmes regardent, entendent ou lisent la publicité ;
- La campagne publicitaire dans la télévision ne doit pas dépasser
500 DT ;
- Au moins 3 spots publicitaires seront assurer par la télévision locale et au moins
de deux spots par la télévision par satellite.
- Le nombre des publicités dans la radio ou dans les journaux sont pour chacun
entre 5 et 10.
4) Minimiser sous les contraintes :
La polycopie sans permission de l’auteur est un manquement scientifique.
Par le Chef de Travaux AMANI MAISHA Sulutani
41
Recherche Opérationnelle BAC+3 MP et SCAI
Réponses :
Réponses :
5) Une entreprise utilise au moins 800 kg d’une alimentation spécial par jour. Cette alimentation
est un mélange de blé et de soja, avec les compositions suivantes :
Les besoins alimentaires de cette alimentation spéciale sont d’au moins 30% de protéines et au
plus 5% de fibre végétale. L’entreprise veut déterminer le coût minimum journalier de ce
mélange d’alimentation.
6) Un atelier fabrique deux pièce A et B. La capacité de production de l’atelier est de 40
heures. En une heure, l’atelier fabrique 6 pièces A ou 8 pièces B. Les pièces A et B sont
vendues respectivement à 3,25$ et 2,50$; les charges variables s’élèvent à 3 $ par kg de
- etc.
3.1.Définition
3.1.1. Graphe
Soit G, une relation sur un ensemble X ; on pourra représenter le fait que deux
éléments a, b de X sont en relation par un arc de a vers b : a → b. Si a, b et b, a sont en
relation, on aura une ligne non orientée (appelée arête) a — b. Une relation sera donc
représentée par un ensemble
d’arcs (ou d’arêtes) pouvant
se succéder.
La relation D définie sur X = {1, 2, 3, 6, 12} telle que: ∀x, y ∈ X, D(x, y) ssi x divise y peut être
représentée par :
3.2.10. Digraphe
Un Digraphe ou « graphe orienté » est un graphe dont les arrêtes sont orientées
et dont le couple est défini comme suit ! (Départ, Arrivée). Par conséquence, le couple (x, y)
est différent du couple (y, x) puisque leur orientation est différente.
3.2.11. Graphe non orienté
En théorie des graphes, un graphe non orienté G=(V,E) est un couple formé
de V un ensemble de sommets et E un ensemble d'arêtes, chaque arête étant une paire de
sommets. Cette définition ne s'applique qu'aux graphes simples et n'est pas valable pour
les multigraphes.
[Link] et Cycles
3.4.1. Chaine
La polycopie sans permission de l’auteur est un manquement scientifique.
Par le Chef de Travaux AMANI MAISHA Sulutani
48
Recherche Opérationnelle BAC+3 MP et SCAI
Une chaîne dans un graphe G est une suite ayant pour éléments alternativement des
sommets et des arêtes, commençant et se terminant par un sommet, et telle que chaque arête est
encadrée par ses extrémités.
En outres, Une chaîne est une suite d’arêtes telle que l’extrémité terminale de
chaque arête coïncide avec l’extrémité initiale de l’arête suivante. On dira que la chaine relie le
premier sommet de la suite au dernier sommet. En plus, on dira que la chaîne a pour' longueur le
nombre d’arrêtes de la chaîne. Le graphe ci-dessous contient entre autres les chaines (
NB : Il existe :
- Chaîne simple est une chaîne qui n’utilise pas deux fois la même arête.
- Chaîne eulérienne est une chaîne simple passant par toutes les arêtes d’un graphe.
- Chaîne hamiltonienne est une chaîne simple passant par tous les sommets d’un graphe
une et une seule fois.
3.4.2. Cycle
Un cycle est une chaîne simple se fermant sur elle-même. C’est donc une chaîne qui
revient à son point de départ. Dans le cas des graphes non orientés, un circuit est un cycle et un
chemin est une chaîne.
NB : Dans un graphe non orienté, un cycle est une suite d'arêtes consécutives distinctes
(chaine simple) dont les deux sommets extrémités sont identiques. Dans les graphes orientés, la
notion équivalente est celle de circuit, même si on parle parfois aussi de cycle (par exemple
dans l'expression graphe acyclique orienté).
NB : Il existe généralement :
- Un cycle hamiltonien est un cycle simple passant par tous les sommets d’un graphe
une et une seule fois.
- Un cycle élémentaire est un cycle ne passant pas deux fois par le même sommet, sauf
que le sommet final coïncide toujours avec le sommet de départ.
- Cycle eulérien : cycle simple passant par toutes les arêtes d’un graphe une et une
seule fois.
3.4.3. Une boucle
Une boucle est une ligne orientée qui revient à son sommet de départ.
Arborescence Arbre
une -seule fois par chacune des arêtes de G. Un graphe est dit eulérien s'il possède un cycle
eulérien. On appelle chaîne eulérienne d'un graphe G une chaîne passant une et une seule fois
par chacune des arêtes de G, Un graphe ne possédant que des chaînes eulériennes est semi-
eulérien.
En résumé : Un cycle qui passe exactement une fois par chaque arête d’un graphe est dit «
eulérien ».
Un graphe hamiltonien ne doit pas être confondu avec un graphe eulérien, où l'on
passe par toutes les arêtes une fois et une seule : dans un cycle hamiltonien, on peut très bien
négliger de passer par certaines arêtes. Un graphe peut être eulérien, hamiltonien, les deux à la
fois, ou aucun des deux : le graphe papillon est un exemple de graphe eulérien mais pas
hamiltonien.
Gr1
[Link]. Représentation d’un graphe sous forme de méthode énumérative des sommets et
arcs
Le graphe Gr1 se traduit par les sommets et arcs suivants :
Grap. A
On remarque que chaque colonne a une somme égale à 2, puisque chaque arête a deux
extrémités.
La matrice d’incidence sommets-arcs A d’un graphe G = (X, U) est une matrice à m lignes et n
colonnes telle que si u(i, j) est un arc de U, la colonne u vaut 0 partout sauf en :
aiu = +1 et aju = –1.
Ici, les lignes représentent les sommets et les colonnes les arcs. Pour le graphe 1.24
ci-dessous, la matrice d’incidence sommets-arcs est :
Remarques :
• Chaque colonne comporte exactement 1 terme égal à 1 (dans la ligne du sommet initial de l’arc) et
un terme égal à –1 (dans la ligne du sommet terminal) ; les autres termes de la colonne étant tous
nuls ;
• La somme de chaque colonne est égale à 0 (un arc a une origine et une destination) ;
• La matrice est totalement uni modulaire i.e., toutes les sous-matrices carrées extraites de la
matrice ont pour déterminant +1, –1 ou 0.
sont de plus valués. Un chemin µ permettant d’aller d’un sommet x du graphe à un autre
sommet xh est optimal si la somme des valeurs l(xi, xj) valuant chaque arc xixj = µh est soit
minimale, soit maximale. Dans le premier cas, l’optimum est un minimum, dans le second, un
maximum, la valeur extrémale étant :
Exemple
- Chaîne simple est une chaîne qui n’utilise pas deux fois la même arête.
- Chaîne eulérienne est une chaîne simple passant par toutes les arêtes d’un graphe.
---- Chaîne hamiltonienne est une chaîne simple passant par tous les sommets d’un
graphe une et une seule fois.
c) Cycle :Un cycle est une chaîne simple se fermant sur elle-même. C’est donc une
chaîne qui revient à son point de départ. Dans le cas des graphes non orientés, un
circuit est un cycle et un chemin est une chaîne.
- Un cycle hamiltonien est un cycle simple passant par tous les sommets d’un graphe
une et une seule fois.
- Un cycle élémentaire est un cycle ne passant pas deux fois par le même sommet, sauf
que le sommet final coïncide toujours avec le sommet de départ.
- Cycle eulérien : cycle simple passant par toutes les arêtes d’un graphe une et une seule
fois.
d) Arborescence et arbre
Une arborescence est un graphe orienté d’un seul tenant et sans circuit tel que, pour
tout couple de sommets de ce graphe, il existe toujours un autre sommet, origine d’un chemin
conduisant aux premiers sommets. L’origine de l’arborescence est appelée «centre» ou «racine».
Un arbre est un graphe non orienté d’un seul tenant et sans cycle tel que pour aller
d’un sommet à un autre sommet du graphe, il existe toujours une chaîne.
A chaque arc (x,y) est associé un nombre positif V(x,y) appelé la valeur de l'arc.
L'algorithme de Ford va nous permettre de déterminer le chemin de valeur maximale entre un
sommet D (Départ) et un sommet F (Fin).
- On ordonne le graphe par niveaux
- On fait la représentation du graphe par niveaux.
A partir de cette représentation, on supprime les sommets et les arcs par lesquels on ne
m(4) = 0
m(3) = m(4) + V(4,3) = 0 + 5 = 5
m(5) = m(4) + V(4,5) = 0 + 2 = 2
m(6) = Max { m(3) + V(3,6) ; m(5) + V(5,6) } = Max { 5 + 5 ; 2 + 1 }= Max { 10 ; 3 } =
10
Exemple :
Il est utile de rappeler que quand plusieurs trajets convergent vers un nœud ou sommet,
c’est le plus court qui a la primauté.
Remarques
Rappelons encore que la recherche du chemin le plus court revient, en d’autres termes,
à remplacer le maximum par le minimum chaque fois que plusieurs arcs aboutissent au même
sommet.
Enfin, l’utilité de la recherche d’un chemin de valeur minimale réside dans la
détermination de l’itinéraire le plus court permettant de se rendre d’un point x0 à un point xb,
les arcs représentant les routes et les valeurs portées sur les arcs les distances kilométriques.
On peut avoir l’itinéraire le plus rapide si la valuation concerne le temps de parcours, ou
encore le moins coûteux si l’on fait état de la consommation de carburant.
La recherche d’un chemin de valeur maximale a une importance capitale dans les
modèles d’ordonnancement.
3. 8. Les Problèmes d’Ordonnancement et Gestion de Projet
3.8.1. Notions préliminaires
- préciser les contraintes qui s’opposent à ce que les tâches soient exécutées
arbitrairement.
Une telle méthode doit donc permettre :
- d’analyser le projet en profondeur, c’est-à-dire le décomposer en tâches ;
- de mettre sur pied un plan d’action contribuant à réaliser ledit projet tout en respectant
les contraintes, c’est-à-dire de déterminer le meilleur temps nécessaire à la réalisation
de l’ensemble de l’ouvrage entrepris ;
- et enfin, de contrôler le bon déroulement du projet, c’est-à-dire de localiser les tâches
ou les étapes-critiques ou celles qui ne peuvent être ni retardées, ni ralenties, sans que
la fin des travaux soit décalée du temps correspondant.
3.8.3. Construction du Graphes
Exemple : Les opérations mises en jeu dans la construction d'un ensemble hydro-
électrique sont lessuivantes :
a) Construction des voies d'accès
b) Travaux de terrassement
c) Construction des bâtiments administratifs
d) Commande du matériel électrique
e) Construction de la centrale
f) Construction du barrage
g) Installation des galeries et conduites forcées
h) Montage des machines
i) Essais de fonctionnement
(MPM), et la méthode PERT (Programm Evaluation and Research Task). Toutes les deux
utilisent des graphes pour résoudre le problème.
- Construction du graphe
- un sommet correspond à une tâche
- un arc définit une relation d'antériorité
- la valeur de l'arc définit le temps minimum séparant deux tâches successives.
- Chaque sommet de la représentation graphique est figuré par un rectangle :
Tx T*x
X
où :
- x = nom de la tâche,
- Tx = date de début au plus tôt de la tâche
- T*x = date de début au plus tard de la tâche.
- Un sommet terminal permettant de dater la fin des travaux est rajouté au graphe.
- La représentation graphique est ordonnée par niveaux des sommets, c.à.d. des tâches.
Exemple:
Ta = Tc = Td = 0Tb = Ta + 4 = 4
Tg = Ta + 4 = 4
Tf = Max (Tb + 6 ; Tc + 4) = Max (10 ; 4) = 10
Te = Max (Tb + 6 ; Tc + 4 ; Td + 12 ) = Max
(10 ; 4 ; 12) = 12Th = Max (Te + 10 ; Tg + 7) =
Max (22 ; 11) = 22
Ti = Max (Tf + 24 ; Th + 10) =
Max (34 ; 32) = 34Tz = Ti + 3 = 37
Ces résultats peuvent être reportés sur le graphe
mt(x) = T*x - Tx
Exemple :
mt(a) = T*a - Ta = 0 - 0 = 0
mt(b) = T*b - Tb = 4 - 4 = 0
mt(c) = T*c - Tc = 6 - 0 = 6
mt(d) = T*d - Td = 2 - 0 = 2
mt(e) = T*e - Te = 14 - 12 = 2
mt(f) = T*f - Tf = 10 - 10 = 0
mt(g) = T*g - Tg = 17 - 4 = 13
mt(h) = T*h - Th = 24 - 22 = 2
mt(i) = T*i - Ti = 34 - 34 = 0
- Marges libres
C'est le retard maximum que l'on peut prendre dans la mise en route d'une tâche
sans remettre encause les dates au plus tôt des tâches suivantes (donc sans retarder la
fin des travaux).
mL(x) = min [Ty - Tx - V(x,y)] , le min étant pris sur les suivants y de x.
Exemple :
mL(a) = Min [Tb - Ta - V(a,b) ; Tg - Ta -
V(a,b)] = Min (0 ; 0) = 0
mL(b) = Min [Tf - Tb - V(b,f) ; Te - Tb -
V(b,e)] = Min (0 ; 2) = 0
mL(c) = Min [Tf - Tc - V(c,f) ; Te - Tc -
V(c,e)] = Min (6 ; 8) = 6
mL(d) = Te - Td - V(d,e) = 0
mL(e) = Th - Te - V(e,h) = 0
mL(f) = Ti - Tf - V(f,i) = 0
mL(g) = Th - Tg - V(g,h) = 11
mL(h) = Ti - Th - V(h,i) = 2
mL(i) = Tz - Ti - V(i,z) = 0
Cette technique aurait été conçue sous l'appellation initiale de méthode CPM
(Critical Method Path) par la marine américaine, en 1958, pour coordonner les tâches des
milliers d'entreprises impliquées dans son projet "Polaris" (programme de développement de
missiles à ogive nucléaire). Compte tenu de son efficacité (elle aurait permis de réduire de 14 à
7 ans la durée globale de réalisation du projet Polaris) elle s'est rapidement imposée dans les
organisations, gouvernementales ou non, ayant à gérer des projets importants (programme
Apollo de la NASA, construction d'autoroute, etc.) au détriment du diagramme de Gantt.
L'utilisation du PERT permet, notamment, de déterminer la durée minimum nécessaire pour
mener à bien un projet et les dates auxquelles peuvent ou doivent débuter les différentes tâches
nécessaires à sa réalisation pour que cette durée minimum soit respectée.
Construction du graphe
Le recours au PERT suppose qu'aient préalablement été identifiées les différentes
tâches nécessaires à la réalisation d'un projet, leur durée et leurs relations d'antériorité.
Généralement ces informations sont synthétisées dans un tableau du type suivant dit tableau des
tâches et antériorité.
Le PERT permet de représenter l'ensemble des tâches sur un graphe orienté, à partir
duquel il sera possible d'identifier leurs dates au plus tôt et au plus tard et de calculer leurs
marges. Un graphe orienté est un réseau composé d'une entrée et d'une sortie, ainsi que de points
(appelés "sommets") reliés entre eux par des flèches (appelées "arcs").
Les principales conventions d'un réseau PERT sont les suivantes :
- chaque tâche est symbolisée par un arc, auquel est associé une valeur numérique
correspondant à sa durée.
- les sommets auxquels aboutissent les arcs correspondent donc à des étapes, qui
marquent l'aboutissement d'une ou plusieurs tâches.
- chaque étape est identifiée par un numéro d'ordre et renseignée sur la date à
laquelle elle peut être atteinte au plus tôt ("date au plus tôt") et au plus tard ("date au
plus tard") pour respecter le délai optimal de réalisation du projet.
- le graphe possède une entrée (sommet sans antécédent) et une sortie (sommet sans
descendant) qui correspondent respectivement aux étapes "Début des opérations" et
"Fin desopérations".
Du fait de ses conventions, il est parfois nécessaire d'introduire des "tâches fictives"
de durée nulle pour traduire correctement sur un graphe les relations d'antériorité de certaines
tâches, notamment lorsque celles-ci partagent avec d'autres une partie de leurs antécédents.
En utilisant la méthode MPM, déterminez la durée totale du projet, ainsi que, pour
chaque tâche, la date de début au plus tôt, la date de début au plus tard, la marge
libre, la marge totale. Quelles sont les tâches critiques pour la réalisation du projet ?
La tâche D est retardée de 3 jours. Cela implique-t-il un retard sur le délai
d’exécution du programme ?
5) Lors d’un stage, votre responsable en entreprise vous demande d’exécuter un travail.
Après avoir recensé les différentes tâches que vous aurez à réaliser, vous estimez
leur duréed’exécution et disposez du tableau suivant :
A H 4
B A,G,J 8
C E 14
D - 12
E - 8
F E 6
G D,K,J 6
H - 8
I J,K 10
J H 6
K E,D,F 8
Tâches A B C D E F G H I J K
Réduction 0 2 0 0 4 0 2 0 1 2 0
Quelles sont les tâches que vous réduirez pour que le projet ne dure que 30 jours ?
Dressez la liste des tâches critiques. (On s’attachera à réduire les tâches critiques en
commençant par les tâches finales.
4.1. Notions
Il existe un sommet x0 et un seul tel que -1 x0 : ce sommet x0 est appelé l’entrée du
réseau ;
Un flot du réseau est une quantité (i, j) associée à chaque arc (i, j) du réseau tel
que :
(4.1)
(4.2)
(4.3)
La relation (4.2) établit que pour tout sommet x, la somme algébrique des flux entrant dans x est
égale à la somme algébrique des flux sortants. Cette égalité est dite équation de nœud par
analogie aux modèles physiques et aux lois de Kirchhoff2 en électricité.
(4.4)
(4.5)
Un chemin est dit saturé si au moins un des arcs qui le composent est saturé.
Un flot est dit complet s’il n’y a plus sur le graphe de chemin de x0 à xn non saturé.
Dans l’étape initiale, il s’agira éventuellement d’un flot nul. Les étapes de cet algorithme sont
les suivantes :
2
Il s’agit en particulier de la première loi de Kirchoff
La polycopie sans permission de l’auteur est un manquement scientifique.
Par le Chef de Travaux AMANI MAISHA Sulutani
74
Recherche Opérationnelle BAC+3 MP et SCAI
Rappelons qu’un flot est dit complet si et seulement si tous les chemins du graphe
sont saturés. Les chemins non saturés, s’il en existe, peuvent être saturés en ajoutant au flot de
chacun de ses arcs la quantité d avec :
La quantité
Définition
On appelle chaîne de x0 à xn, une suite ordonnée des sommets (x0, x1, …, xi, xi+1, …,
xn) telle que pour tout xi ≠ xn,
si, parmi tous les arcs parcourus dans le sens des flèches, il y en a au moins un pour lequel
(xi,xi+1) = C(xi, xi+1) (4.10)
ou si, parmi tous les arcs parcourus en sens inverse des flèches, il y en a au moins un pour lequel
(xi+1, xi) = 0 (4.11)
On obtient un flot maximal lorsque toutes les chaînes sont saturées. Lorsqu’une
chaîne n’est pas saturée, on peut toujours l’améliorer en augmentant de d le flot sur les arcs de
A+ et en le diminuant de d sur les arcs de A- avec :
- A+ = l’ensemble des arcs parcourus dans le sens des flèches sur la chaîne non saturée
trouvée ;
- A- = l’ensemble des arcs parcourus dans le sens inverse des flèches sur la même
La polycopie sans permission de l’auteur est un manquement scientifique.
Par le Chef de Travaux AMANI MAISHA Sulutani
75
Recherche Opérationnelle BAC+3 MP et SCAI
chaîne.
- aux localités de départ et d’arrivée. Le sommet E sera dit « entrée du réseau » car E n’a pas de
précédent et S « sortie du réseau » car c’est un sommet sans suivant.
- aux intersections de routes (tous les autres sommets qui seront appelés « nœuds de transit ».
Les arcs correspondent aux liaisons routières et sont orientés dans le même sens.
la route, de la vitesse maximale autorisée, du caractère plus ou moins accidenté, etc. Associons
également à chaque arc (i, j) un nombre (i, j) appelé flot sur l’arc (i, j). C’est la circulation
réelle sur chaque route. Les capacités sont données par les nombres encerclés du graphe 3.2 (en
milliers de véhicules par heure). Les nombres non encadrés portés sur les arcs se rapportent au
flot sur chaque arc. Nous faisons l’hypothèse que le flux de véhicules (flot) est constant le long
de chaque arc (aucun ne s’arrête en route) et à chaque nœud de transit, il arrive autant de
véhicules qu’il en repart (principe de la conservation du flot).
Sur le graphe, les nombres non encadrés sur les arcs respectent ces conditions. Un
flux de 6.000 véhicules par heure entre E et S est donc compatible avec la capacité des routes (6
= 2 + 3 + 1 flux partant de E = 4 + 2 = flux arrivant en S). Le flot sur chaque arc doit
respecter la contrainte de capacité (4.4).
Pour trouver un flot complet sur le graphe ci-haut, on cherche un chemin non saturé
de E à S. Reprenons le graphe ci-haut où l’on reporte le flot de départ en marquant les arcs
saturés. On a :
Le chemin (E, 4, S) est non saturé. Pour le saturer, on ajoute au flot de chacun de ses arcs la
quantité Min [C(i, j) – (i, j)]. Sur le graphe, c’est l’arc (E, 4) sur le chemin non saturé qui nous
donne la capacité résiduelle minimum qui est égale à C(E, 4) – (E, 4) = 2 – 1 = 1. En l’ajoutant
au flot de chaque arc du chemin non saturé (E, 4, S), on obtient le nouveau flot du graphe qui
donne aussi les arcs saturés.
Ce flot est complet car il n’existe aucun chemin non saturé de E à S. Mais ce flot n’est pas
nécessairement maximum. En effet, sur le graphe du graphe ci-haut, la chaîne (E, 2, 1, 3, 4, S)
n’est pas saturée. Sur cette chaîne non saturée, la capacité résiduelle minimale sur les arcs de
A+ est 4 – 3 = 1. Le flot minimal sur les arcs de A- est 1. On modifie donc le flot selon les
règles énoncées plus haut (augmenter de d = min [d1, d2] le flot sur les arcs de A+ et le
diminuer de d sur les arcs de A- ). On obtient alors le graphe ci-après :
Sur cette dernière figure, il existe encore une chaîne non saturée de E à S. C’est la chaîne (E, 1,
3, 4, S). La valeur de d sur cette chaîne est égale à 2. On obtient ainsi le flot du graphe ci-après :
Puisque toutes les chaînes de ce graphe sont maintenant saturées, le flot ainsi obtenu est
maximal, avec (S) = 10.
Origine
Aketi 150 100 50 - 200
Bumba 150 150 50 50 350
Kikwit 100 100 200 400
Manterne 200 100 200
Demande 300 400 200 200
On demande de définir les quantités à transporter de chaque origine vers chaque
destination de façon à satisfaire au maximum la demande des usines de traitement.
Solution
On construit un graphe dont les sommets correspondent aux centres d’origine et
aux usines de traitement, les arcs représentant les différentes possibilités de transport avec les
capacités disponibles. Les sommets correspondant aux centres origine sont reliés au sommet
d’entrée E par un arc dont la capacité est égale au stock disponible. Les sommets correspondant
aux usines de traitement sont reliés au sommet de sortie S par un arc dont la capacité est égale à
la demande. Il conviendra de rendre maximale la valeur de (S) indiquant la demande satisfaite.
Première étape : Détermination d’un flot au jugé.
Il est proposé ci-après un flot qu’il faudra par la suite optimiser. Les valeurs en
gras sont les flots.
On vérifie si le flot du graphe, égal à 900 tonnes, est complet. Rappelons qu’un flot
est dit complet si tous les chemins du graphe de E a S sont saturés, c’est-à-dire ont un arc au
moins pour lequel la capacité, C(i, j), est égale au flot (i, j). On constate que les chemins E, K,
U, S et E, M, U, S ne sont pas saturés. Donc le flot du graphe n’est pas complet. Considérons le
premier chemin non saturé E, K, U, S. La capacité résiduelle minimale est 200 – 150 = 50. En
augmentant le flot de cette quantité sur chacun des arcs du chemin, le flot passe à 950. Ce flot
est maintenant complet car l’arc (U, S) est devenu saturé (le deuxième chemin empruntant le
même arc l’est devenu aussi).
Bien que complet, le flot obtenu n’est pas maximal car la chaîne E, M, T, A, L, S
est non saturé. On calcule alors d = min {d1, d2} par la formule (4.12) ; ce d étant égal à 50, on
ajoute cette quantité au flot des arcs parcourus dans le bon sens et on la retranche au flot des
arcs parcourus en sens inverse. D’où le graphe sur lequel toutes les chaînes de E à S sont à
présent saturées. Ce flot est alors égal à 1000 tonnes.
Transports
Sources/Destinataires 1 2 3 4 5
1
2
Étape 1 :
Transports
Sources/Destinataires 1 2 3 4 5
1 15
2 0
Etape 2
Transports
Sources/Destinataires 1 2 3 4 5
1 15 20
2 0 0
Étape 3
Transports
Sources/Destinataires 1 2 3 4 5
1 15 20 5
2 0 0 0
Étape 4
Transports
Sources/Destinataires 1 2 3 4 5
1 15 20 5 9
2 0 0 0 16
Etape 5
Transports
Sources/Destinataires 1 2 3 4 5
1 15 20 5 9 0
2 0 0 0 16 14
Coût de la solution
La solution trouvée avec cette méthode n'est pas optimale en termes de coût.
On trouve ici : 15*10 + 20*6 + 5*3 + 9*5 + 0*25 + 0*5 + 0*2 + 0*6 + 16*12
+ 14*5 = 592.
Exemple2 :
Soit, la société Alpha possédant quatre dépôts A1, A2, A3 et A4 dans lesquels
existent des quantités respectives de 896, 782, 943, 928 unités d’une matière première, et cinq
usines D1, D2, D3 , D4 et D5 demandant respectivement 800, 439, 50, 790 et 1470 unités de
celles-ci. Les coûts de transport, C ij, sont donnés par le tableau ci-dessous. Comment
organiser le transport au moindre coût total?
Première étape :
A1-D1 est le coin Nord-Ouest, on lui affecte min (800;896) soit 800 unités demandées par D1et
fournies en A1.
Deuxième étape : A1-D2 est le coin N-O, on lui affecte 96 unités demandées par D2 et fournies
en A1.
On sature ainsi l’offre en A1, qui disparaît. On obtient le tableau 3 pour lequel le
coin N-O est A2-D2.
Troisième étape :
A2-D2 est le coin N-O, on lui affecte 343 unités demandées par D2 et offert par A2.
On satisfait ainsi la demande D2, qui disparaît. On obtient le tableau 4 pour lequel le
coin N-O est A2-D3.
Quatrième étape : A2-D3 est le coin N-O, on lui affecte 50 unités fournies par A2 et demandée
en D3.
On sature la demande D3, qui disparaît. On obtient le tableau 5 pour lequel le coin
N-O est A2-D4.
Cinquième étape : A2-D4 est le coin N-O, on lui affecte 389 unités fournies par A2 et
demandée par D4.
On sature l’offre A2, qui disparaît. On obtient le tableau 5 pour lequel le coin N-O est A3-D4.
Sixième étape : A3-D4 est le coin N-O, on lui affecte 401 unités fournies par A3 et demandée
par D4.
On sature la demande D4, qui disparaît. On obtient le tableau 5 pour lequel le coin N-O est A3-
D5.
Dernière étape : Il ne reste qu'une colonne D5 on affecte aux liaisons existantes le transport de
façon évidente
Nous avons ainsi obtenu une solution de base réalisable puisque la condition
d’avoir (n -1)(m -1) variables nulles dans la solution est satisfaite (12 cases vides dans le dernier
tableau).
Le coût de cette solution est : 800* 21+ 96*11+ 343* 52 + 50* 43 + 389* 29 + 401* 80 +
542*93 + 928*54 = 181 721 UM
3) Méthode de BALAS – HAMMER
- Présentation :
Cette méthode est basée sur le calcul des regrets. Le regret associé à une ligne ou à
une colonne est la différence entre le coût minimum et le coût immédiatement supérieur dans
cette ligne ou dans cette colonne. C’est une mesure de la priorité à accorder aux transports de
cette ligne ou de cette colonne, car un regret important correspond à une pénalisation importante
si on n’utilise pas la route de coût minimum. La méthode de Balas-Hammer fournit, en
général, une solution très proche de l’optimum; le nombre de changements de base nécessaires
pour arriver à une solution optimale est peu élevé (il arrive même assez fréquemment que la
solution donnée par cette règle soit optimale).
- Principe :
D’abord, on calcule pour chaque rangée, ligne ou colonne, la différence entre le coût
le plus petit avec celui qui lui est immédiatement supérieur. Ensuite on affecte à la relation de
coût le plus petit correspondant à la rangée présentant la différence maximale la quantité la plus
élevée possible. Ce qui sature une ligne ou une colonne. Et on reprendre le processus jusqu'à ce
que toutes les rangées soient saturées.
- L’algorithme de Balas -Hammer:
∆l représente la différence entre le coût minimum et celui immédiatement supérieur
sur une ligne. ∆c représente la différence entre le coût minimum et celui immédiatement
supérieur sur une colonne.
1) Calculer les différences ∆l et ∆c pour chaque ligne et colonne.
2) Sélectionner la ligne ou la colonne ayant le ∆l ou ∆c maximum.
3) Choisir dans cette ligne ou colonne le coût le plus faible.
4) Attribuer à la relation (i, j) correspondante le maximum possible de matière
transportable de façon à saturer soit la destination soit la disponibilité.
5) calculer la quantité résiduelle soit demande soit en disponibilité.
6) Eliminer la ligne ou la colonne ayant sa disponibilité ou demande satisfaite.
7) SI nombre de lignes ou colonnes> 2 retour en 2. SINON affecter les quantités
restantes aux liaisons.
- Application de l’algorithme de Balas-Hammer
Exemp1e1
Données initiales
- Tableau représentant les coûts entre des sources et des destinataires, ainsi queles
stocks disponibles pour les sources et les demandes des destinataires :
Coûts / Besoins / Stocks
Sources/Destinataires 1 2 3 4 5 Stocks
1 10 6 3 5 25 49
2 5 2 6 12 5 30
Demandes 15 20 5 25 14
- Le regret le plus important est celui de la colonne 5 : 20. Dans cette rangée, on
repère le coût minimal : C(2,5) = 5.
- Remplissage de la matrice des transports
-
Transports
Sources/Destinataires 1 2 3 4 5
1 0
2 14
- Réitération du principe
- ETC...
- Résultat
- On en arrive à établir le tableau des transports :
-
Transports
Sources/Destinataires 1 2 3 4 5
1 0 19 5 25 0
2 15 1 0 0 14
- Le coût total se calcule par un produit scalaire entre les matrices des coûts et des
transports.
- Ici, le coût optimal est donc : 0*10 + 19*6 + 5*3 + 25*5 + 0*25 + 15*5 + 1*2 + 0*6
+ 0*12 + 14*5 = 401
Exemple 2 : Reprenons l’exemple précédant, et cherchons une solution de base par l’algorithme
de Balas-Hammer.
Première étape :
Deuxième étape :
Troisième étape :
Quatrième étape :
Cinquième étape :
Sixième étape :
Septième étape :
Dernière étape :
Il nous reste qu’une source non épuisée A3, on l’affecte à D5 qui demande
exactement 85 unités. Enfin, la solution de base est :
Première étape :
Réduction des lignes : on crée une nouvelle matrice des coûts en choisissant le coût
minimal sur chaque ligne et en le soustrayant de chaque coût sur la ligne.
Dans ce cas, le nombre minimal de lignes est de 3 qui est inférieur au nombre de
ligne ou colonne (4), alors on passe à l’étape 4.
Quatrième étape :
Premièrement, il faut trouver la cellule de valeur minimum non couverte par une
ligne, puis, soustraire cette valeur de toutes les cellules non couvertes. Ensuite, ajouter cette
valeur aux cellules situées à l’intersection de deux lignes. Et enfin, retourner à l’étape 3.
La valeur minimum des cellules non couvertes est 20. On soustrait 20 des cellules
non couvertes et on l’ajoute aux cellules qui se trouvent à l’intersection des lignes, ceci nous
donne le tableau suivant :
d) Cas de maximisation
La même technique s'applique à la recherche d'un maximum. Il suffit, au départ,
de transformer le problème en un problème à minimum soit en changeant le signe tous les
termes de la matrice, soit en retranchant tous les éléments de la matrice d'un nombre au moins
égal au plus grand de ces éléments. En appliquant la technique, on minimise ainsi l'écart par
rapport à un certain plafond. Il est évident que le maximum du problème d'affectation formé
avec les cij correspond au minimum de celui formé avec les c"ij. On recherche la solution
optimale du tableau formé avec les c"ij.
Example
Le Chef de Section des SCAI doit affecter 5 enseignants aux cours suivants :
Info et Bureautique, Algo1, RO, Gestion des Stocks et Théorie des Graphes. Le Chef de
Section souhaite affecter ces enseignants en optimisant leurs aptitudes à enseigner les cours
souhaités. Ces aptitudes sont mesurées par les cotes obtenues dans ces différentes branches à
l’ISP-Uvira. Elles sont données dans le tableau ci-dessous.
Info et Algo1 RO GeStock Théorie des
Bureautique Graphes
E1 15 09 07 08 02
E2 03 17 04 10 09
E3 06 06 08 07 16
E4 11 02 16 16 11
E5 18 15 03 12 09
Etant un problème de maximisation, il est nécessaire, avant d’appliquer la méthode
hongroise, de transformer préalablement les données du tableau ci-haut, soit en les multipliant
par -1 soit en les retranchant de la donnée la plus élevée, ici 18.
Info et Algo1 RO GeStock Théorie Min Info et B. Algo1 RO GeStock Théorie des G Min
des G
B.
E1 -15 -09 -07 -08 -02 -15 E1 3 9 11 10 16 3
E2 -03 -17 -04 -10 -09 -17 E2 15 1 14 8 9 1
E3 -06 -06 -08 -07 -16 -16 E3 12 12 10 11 2 2
E4 -11 -02 -16 -16 -11 -16 E4 7 16 2 2 7 2
E5 -18 -15 -03 -12 -09 -18 E5 0 3 15 6 9 0
E1 0 6 8 7 13 3
E2 14 0 13 7 8 1
E3 10 10 8 9 0 2
E4 5 14 0 0 5 2
E5 0 3 15 6 9 0
Dans ce cas ci-haut s, le nombre minimal de lignes est de 4 qui est inférieur au
nombre de ligne ou colonne (5), alors on passe à l’étape suivante.
- Premièrement, il faut trouver la cellule de valeur minimum non couverte par une ligne,
puis, soustraire cette valeur de toutes les cellules non couvertes. Ensuite, ajouter cette
valeur aux cellules situées à l’intersection de deux lignes. Et enfin, retourner à l’étape
précédente.
- La valeur minimum des cellules non couvertes est 3. On soustrait 3 des cellules non
couvertes et on l’ajoute aux cellules qui se trouvent à l’intersection des lignes, ceci nous
donne le tableau suivant :
E2 14 0 13 7 8
E3 10 10 8 9 0 -3
+3
E4 5 14 0 0 5
E5 0 3 15 6 9
Le minimum est 3
6 8 7 13
3 15 6 9
E2 17 0 13 7 8
E3 13 10 8 9 0
E4 7 14 0 0 5
E5 0 0 12 3 6
e) Cas particulier (Nombre d’Ouvriers est différents au nombres de tâches et vice versa)
N M ( avec N= nombre de tâches et M = nombre d’ouvriers)
1) Nombre d’Ouvriers Nombre de tâches (M N)
Dans ce cas, on recherche la fonction de séparation uniquement sur les
lignes. Certaines tâches ne seront pas exécutées.
Choisir B(S0) =∑
( )
( ) ( )
1) Nombre de Tâches Nombre d’Ouvriers (N M)
Dans ce cas, on recherche la fonction de séparation uniquement sur les
colonnes.
Certains ouvriers ne seront pas affectés.
Choisir B(S0) =∑
( )
( ) ( )
Exemple : Trouver une affectation au moindre coût des ouvriers aux tâches, la
matrice des coûts étant :
Cij T1 T2 T3 T4 T5 T6
1 30 25 41 14 28 24
2 7 28 18 3 32 27
3 20 13 21 32 6 0
4 21 16 25 13 18 18
Etape 1 ( On cherche le minimal de chaque ligne et on le réduit ligne par ligne dans la matrice)
Cij T1 T2 T3 T4 T5 T6
Ci (On réduit de :)
1 30 25 41 1414 28 24
2 7 28 18 3 3 32 27
3 20 13 21 320 6 0
4 21 16 25 1313 18 18
30
Etape 2 (On réitère la procédure jusqu’à la fin)
Cij T1 T2 T3 T4 T5 T6 Ci (on réduit de :)
1 16 11 27 0 14 10 14
2 4 25 15 0 29 24 3
3 20 13 21 32 6 0 0
4 8 3 12 0 5 5 13
Somme 30
Etape 3
Cij T1 T2 T3 T5 T6 Ci (on
réduit de :)
2 0 21 11 25 20 4
3 20 13 21 6 0 0
4 5 0 9 2 2 3
Somme 7
2 T1
Cij T2 T3 T5 Ci (on réduit de :)
4 0 9 2 0
3 T6
Cij T2 T3 T5 Ci (on réduit de :)
4 0 9 2 0
4 T2
D’où le tableau d’affectation ( 1= affection, 0 = pas d’affectation)
Cij T1 T2 T3 T4 T5 T6
1 0 0 0 1 0 0
2 1 0 0 0 0 0
3 0 0 0 0 0 1
4 0 1 0 0 0 0
1 T4 = 14
2 T1 = 7
3 T6 = 0
4 T2 = 16
Total coût = 37
5.4. Les problèmes du voyageur de commerce
a) Notions
Le problème du voyageur de commerce est un problème célèbre en Informatique
La polycopie sans permission de l’auteur est un manquement scientifique.
Par le Chef de Travaux AMANI MAISHA Sulutani
105
Recherche Opérationnelle BAC+3 MP et SCAI
théorique, qui a de nombreuses applications dans des domaines variés. Il consiste à trouver,
pour un certain nombre de villes données, la boucle la plus courte passant par toutes les
villes.
b) Définition
En informatique, le problème du voyageur de commerce, ou problème du
commis voyageur, est un problème d’optimisation qui consiste à déterminer, étant donné un
ensemble de villes, le plus court-circuit passant par chaque ville une seule fois. C’est un
problème algorithmique célèbre, qui a donné lieu à de nombreuses recherches et qui est
souvent utilisé comme introduction à l’algorithmique ou à la théorie de la complexité. Il
présente de nombreuses applications que ce soit en planification, en logistique ou dans des
domaines éloignés, comme la génétique, les gènes étant les villes et la similarité la distance.
2) Description
Etant donné n villes et leurs distances par paire, il s’agit de déterminer le
chemin le plus petit qui passe exactement une fois par chaque ville et revienne à la ville de
départ. On modélise le problème du voyageur de commerce comme un problème sur un
graphe non orienté pondéré. Les villes sont des sommets du graphe. Le voyageur emprunte
les arrêtes sur le graphe. Le coût d’une arrête entre deux (2) sommets est la distance entre
deux (2) villes correspondantes. Souvent, on considère un graphe complet c-à-d il y a une
arrête entre toutes paires de sommets : G = (V, E, ) avec V un ensemble de sommets, E = V
X V un ensemble d’arrêtes , et :E une fonction de coût sur les arrêtes. Le problème
est de trouver le plus court cycle hamiltonien dans le graphe G.
3) Formalisation du problème
Formellement, le problème du voyageur de commerce peut s’écrire comme un
programme linéaire. Ci dessous, V est l’ensemble des n sommes du graphe, x ij désigne l’arc
(i,j) et vaut 1 s’il fait partie de la solution, 0 sinon, Cij représente le poids de l’arc (i,j).
5) Exemple illustratif
Soit le problème du voyageur de commerce ci-après :
Cij V1 V2 V3 V4 V5 V6
V1 8 12 14 14 26
V2 13 56 35 54 20
V3 23 23 33 21 26
V4 2 7 37 15 22
V5 25 30 1 16 7
V6 20 24 10 37 21
Etape1 (On détermine le coût minimal par ligne) : On détermine le coût minimal de
chaque ligne, puis on fait la différence entre de tous éléments de la ligne et coût
minimal
Cij V V2 V3 V4 V5 V6 Ci (réduit
1 de) :
V1 8 12 14 14 26 8
V2 13 56 35 54 20 13
V3 23 23 33 21 26 21
V4 2 7 37 15 22 2
V5 25 30 1 16 7 1
V6 20 24 10 37 21 10
55
Etape 2 : Même opération, mais selon les colonnes.
Cij V1 V2 V3 V4 V5 V6 Ci
V1 0 4 6 6 18 0
V2 0 43 22 41 7 0
V3 2 2 12 0 5 0
V4 0 5 35 13 20 0
V5 24 29 0 15 6 0
V6 10 14 0 27 11 0
Réduit 0 0 0 6 0 5 11
de :
Pour éviter le cyclage, passer par C36 = , il faut aller de la ville 6 vers
ville 3 (V6 V3).
Cij V1 V2 V4 V5 V6 Ci
V1 0 0 6 13 0
V2 0 16 41 2 0
V3 2 2 6 0 0 0
V4 0 5 13 15 0
V5 24 29 9 1 1
1
Réitère l’algorithme et on a :
Cij V1 V2 V4 V5 V6 Ci
V1 0 0 6 13 0
V2 0 16 41 2 0
V3 2 2 6 0 0 0
V4 0 5 13 15 0
V5 23 28 8 0 1
V2 V1
Cij V2 V4 V5 V6 Ci
V1 0 0 6 13 0
V3 2 6 0 0 0
V4 5 13 15 5
V5 28 8 0 0
Cij V2 V4 V5 V6 Ci
V1 0 0 6 13 0
V3 2 6 0 0 0
V4 0 8 10 5
V5 28 8 0 0
V1 V4
Cij V2 V5 V6 Ci
V3 2 0 0 0
V4 0 8 10 0
V5 28 0 0
V5 V6
Cij V2 V5 Ci
V3 2 0 0
V4 0 8 0
NB : En fin de trouver un circuit hamiltonien et éviter le cyclage dans ce problème du
voyageur du commerce, on doit partir de la V3 vers la ville V2 (V3 V2 ) et de la ville V4
Solution
V6 V3 = 10
V5 V6 =7
V3 V2=23
V4 V5=15
V1 V4 =14
V2 V1 =13
Le coût total minimal est de 82.
V6 V3
V5 V2
V4 V1
Q
Q/2-------------------------------------------------------------------stock moyen
0
t1 t2 t3 t4 t5 t
NB : la distance séparant t1 et t2 c’est T
Le stock atteint la quantité Q au moment des réapprovisionnements puis diminue
progressivement e de façon constante suivant la demande D. quand il atteint le niveau nul,
on lance une nouvelle commande ou fabrication qui entre en stock aussitôt.
Soit :
C(Q) = coût total de gestion de stock ou coût total par unité de temps ;
a = coût unitaire de l’article ;
t = taux de possession des stocks en pourcentage par an de la valeur
stockée ;
Cs= le coût des possessions (de stockage ou déstockage) ou encore coût de
détention par unité de produit et de temps ;
On a donc : ou encore
On sait que C(Q) = + , ainsi, pour trouver la quantité optimale (Q*), on aura alors :
√
C (Q*)= + , après démonstration C(Q*)=√ ou √
√
Exemple
Mr NYONGOLO est responsable des approvisionnements chez un commerçant
détaillant d’articles de sport. La demande annuelle d’une référence des ballons de football est
2000U, t est 20%. Le coût de commande est de 300FF, le coût unitaire (a) est de 150FF, la
quantité (Q) actuelle d’approvisionnement actuel est Q. Déterminer la quantité optimale à
demander ainsi que les coûts inhérents à la gestion de stock.
Solution
Dou r = 2000unités, a = 150FF, Cr =300FF, Q*=? C (Q*) =? , coût annuel de Possession =?,
coût de lancement ?
Q*=200unités, (Q*)= 6000FF, CAP= 3000FF, CAL=300FF
Nbre de la demande ( ) 10 commandes
On aura alors :C ( ) +
Q’ = Q* , or , ( ) ( )- donc on aura
( )
, or à l’optimum : et puis remplaçons
( )
( )
Après démonstration C(Q’) =1/2 ( ) C(Q*) ou alors 1/2 ( )
( )
b) Manifacturing Modele
Dans ce modèle toutes les hypothèses de WILSON sont recommandées pour P
(taux d’approvisionnement) =P/L, P étant fini et uniforme.
Graphiquement, nous aurons :
Q
-----------------------------------C-----------------------------------
Q/2 ----------------------------------D--------------------------
P E r B t
L
T
Avec r= taux d’épuisement de stock, Q= la quantité commande ou à produire
P= taux de reconstitution (d’approvisionnement).
Le niveau moyen du stock à déterminer pour une période d’une année sera égal :
P=Q/L et r = Q/T
Le niveau moyen du stock sera égal à la quantité totale à commande moins DC :
DE = Q-CD, DE niveau de stock
Or nous savons que : r=CD/L
. Donc DE= Q-rL , or Q = PL, donc
DE = PL-rL . /
Donc DE = Q(1-rL/PL) ( ).
Le stock minimum du stock moyen sera donné par la relation ci-dessous : DE/2=
Q/2(1-r/p)
Le nombre de commande à passer sera donnée par la relation ci-après : r/Q ou
D/Q
Remplaçons Q/2 par sa valeur dans la fonction du coût total par unité de temps ;
C(Q) = . /
( )
=0 . / =0, après avoir minimisé, on aboutira au résultat :Q*=
( )
C(K) ( ) ( ) ( )
C1 : Da(1- )+ ( ) = réduction =
C2 : Da(1- )+ ( ) = réduction =
Ck : Da(1- )+ ( ) = réduction =
Après démonstration
C0-C1=Cs( ) ( ) ( )
Exemple graphique :
Exemple
On utilise régulièrement 480 tonnes par mois d’une certaines matières premières. On
évalue à 200FF le frais direct relatif à une commande tandis que le coût de possession est
estimé pour cette matière est estimé à 20%. On reçoit une offre pour 200FF la tonne avec
proposition de rabais de 1% la livraison de 500tonnes ou plus.
Quelle est doit être la politique d’approvisionnement pour cette matière.
Solution
D ou r = 480T/mois, Cr=200FF, a=200FF, t=20%, q= 500T q1 =500T, rabais 1%
Tous les coûts : Sans réduction C(Q)= 1161600FF et Avec rabais C(Q)= 1197748,84FF.
La politique d’approvisionnement doit être faite avec rabais pour essayer de
minimiser les coûts car si on s’approvisionne les 500T sans réduction on aura un coût supérieur.
Soit le coût de 1161600 FF pour 480Tonnes par mois, le coût total pour 500
tonnes sans réduction sera alors égal : 1161600/480 = 2420 la tonne. Le coût des 500 tonnes
La polycopie sans permission de l’auteur est un manquement scientifique.
Par le Chef de Travaux AMANI MAISHA Sulutani
117
Recherche Opérationnelle BAC+3 MP et SCAI
Q---------------------------D-----------------------------------------------------------
l L r q=
r E
0 A
S-------------------------------B--------------------------------------------------------------
T
Q= B*D
S=r*L
D=L*r
T=l+L
( )
L=C*D/r = or r=
( ) ( )
C(Q) = Cr + Cs + * Crup C(Q) = Cr+ Cs +
( )
La fonction dévient alors : C(Q) = Cr + +Cs + Crup
Si nous posons que on aura alors S= Q avec égal risque de rupture des
si Q2 = ( )
= en fin nous avons
( )
( )
Q*=√ or nous savons que S* = Q* S*= Q*
On a donc S*=√( )
Q --------------------------------------------------------
r
Stock
t
1er cas : Cr+(Q-r)Cs
- On arrive en fin de période avec un surplus.
Q-----------------------------------------------
t
2ème cas : Cr+(r+Q) Crup
La fonction économique à rendre minimum est ici l’espérance mathématique du
coût d’approvisionnement par cycle. Comme l’intervalle entre réapprovisionnement est fixe,
le coût de lancement ou de réapprovisionnement n’a pas d’importance dans le modèle.
E,( )- = ∫ ( ) ( ) dr +∫ ( ) ( ) dr.
formule suivante :
Ss=Z*√
Avec :
- = distribution da la demande
- d et = moyenne et écart-type de la distribution de délai d’approvisionnement.
Exemple :
Considérons un article de consommation suivant une loi de Gauss de moyenne
hebdomadaire x = 50 et d’écart type σ x = 5. Le délai moyen de livraison est de 4 semaines (20
jours) avec une variation d’écart type de 2 jours.
fonction de même unité de temps. En situation probabiliste les facteurs qui influencent sur la
quantité de stock de sécurité sont :
Le taux de la demande moyen,
Le délai d’approvisionnement ou délai moyen ;
La variabilité de la demande et/ou de délai d’approvisionnement ;
Le niveau de service désiré.
Lorsqu’il y a une variabilité de la demande et/ou du délai d’approvisionnement, il
est possible que la demande réelle excédée la demande prévue.
Par conséquent, il devient nécessaire de garder un stock additionnel ou un stock de
sécurité pour réduire les risques de rupture des stocks durant le délai d’approvisionnement.
Dans ce cas, le point de commande sera calculé par :
PC=
Le gestionnaire doit évaluer avec soin les coûts de possession d’un stock de
sécurité tout en tenant compte de la réduction du risque de ses ruptures de stock.
Le niveau de service sera alors inversement proportionnel aux risques ruptures de
stock.
Le risque de rupture de stock sera donc :
C’est le coût de revient du matériel lors de l’achat. Ces frais étant supportés par
l’entreprise on conçoit que la charge annuelle qui leurs est due est d’autant plus faible que
l’on conserve l’équipement le plus longtemps possible. Il faut évidemment tenir compte de
la valeur et de revente du matériel et de la déduire du prix de revient à l’achat pour obtenir
montant de frais d’acquisition.
b) Le coût de Fonctionnement
C’est l’ensemble de frais dus à l’utilisateur de l’équipement à savoir : la
consommation de l’énergie, l’entretien, l’amortissement,… Pour les matériels d’usure, ces
frais croissent généralement en fonction d’utilisation et donc de l’âge.
Ainsi, on aura ce cas :
Coût d’acquisition Coût de fonctionnement
t1 t2 t3 Durée de vie
Coût de fonctionnement
Coût d’acquisition
t(durée de vie)
Notons qu’il ne faut pas l’équipement dure longtemps dans l’entreprise on risque
de voir les coûts de fonctionnement devenir supérieurs aux coûts d’acquisition.
moyen.
En effet, si on conservait l’équipement un a de plus, il coûterait un supplément dû
aux coûts du fonctionnement de la cinquième année auxquels s’ajouterait la différence de la
valeur de revente.
C5= 40000+(8000-6000)= 42000
C4=35000+(12000-8000) =39000
Si i est le taux d’intérêt, on a les facteurs d’escompte qui est égal à : Vt=( )
ou Vt= (1+i)-t
Dans le modèle avec actualisation, chaque dépense doit être escomptée pour
trouver son équivalent à un moment fixe, le plus souvent au moment d’investissement. Si l’on
désigne par K(r), la valeur actuelle du coût total avec un remplacement au bout de r années
et en supposant que toutes les dépenses de fonctionnement sont effectuées au début de la
période, on a maintenant l’expression suivante :
K(r) = A+C1Vo +C2V1+C3V2+…+CrVr-1-krVr, comme tout nombre exposant 0
donne 1, l’expression deviendra alors :
K(r) = A+C1 +C2V1+C3V2+…+CrVr-1-krVr
La fonction économique qu’il faudra rendre minimum doit correspondre à un coût
moyen. Puis que l’on tient compte ici de l’échelonnement des dépenses dans le temps, on ne
peut pas se contenter d’une simple moyenne.
La fonction économique que l’on voit considérer est l’annuité d’une rente de r
années dont la valeur actuelle correspond à la valeur actuelle des dépenses totales relatives à
l’équipement.
On sait que, la valeur actuelle d’une rente d’annuité X payable d’avance pendant r
année s’exprime par la relation suivante :
On doit donc trouver la valeur X(r) tel que le coût total actuel K(r) =V*X(r).
La polycopie sans permission de l’auteur est un manquement scientifique.
Par le Chef de Travaux AMANI MAISHA Sulutani
127
Recherche Opérationnelle BAC+3 MP et SCAI
Exemple
En prenant l’exemple précédant (matériel A) on vous demande de déterminer
l’année de remplacement optimal de ce matériel sachant que le taux d’intérêt annuel est 10%.
Année Valeur de rente Ct Ct de fonctionnement Ct Total Annuité
nominal actualisé d’acquisition Nominal Actualisé Cumulé X(r)
1 30000 27272,72 32727,27 20000 20000 20000 52727,27 52727,27
2 20000 16529 43471 25000 22727,2 42727,2 86498 45196
3 12000 9016 50984 30000 24793 67520 108504 43320
4 8000 5464 54536 35000 26296 93816 148352 42546
5 6000 3725 56274 40000 27320 121136 177410 42546
6 5000 2822,36 57178 45000 27941 149077 206255 43052
Par le fait de l’actualisation, on constate que le minimum correspond à un
remplacement après 5 ans. La valeur de l’annuité pratique égale à celle correspondant à un
remplacement après 4ans.
EXERCICES
1) Une entreprise utilise une matière première M pour laquelle la consommation annuelle
de 1 000 kg est régulière. Le prix d’achat est de 360FF le kg. Le coût de passation d’une
commande s’élève à 500 FF, le taux de possession du stock représente 10% de la valeur
du stock moyen TD : Chercher la cadence d’approvisionnement N et la quantité
économique les plus rentables pour la matière première M.
2) Les dirigeants de la société de produits Z souhaitent connaître la cadence la plus rentable
pour leurs approvisionnements en matières premières. Le coût de passation d’une
commande est évalué à 100 FF, le taux de possession des stocks est de l’ordre de 15% de
leur valeur. On estime que la consommation annuelle à retenir comme base est de 25 000
kg. Le coût unitaire d’un élément du stock s’élève à 102 FF.
3) Dans une étude de sensibilité du modèle de WILSON, on dit que Q’=2 Q*. Etudier
la sensibilité de Q par rapport à avec
4) Soit dans un modèle classique de WILSON, on a la fonction :
normale avec une moyenne de 50T et un écart-type de 5T. Sachant que le contre
maitre est prêt à prendre les risques de rupture de stock à 3%. Déterminer :
a) Le stock de réserve à garder
b) Le point de commande
6) Mr KAKA utilise 1440Kgs par trimestre de semoule. Il évalue à 400FF les frais qui
entrent en jeux pour une commande. Il évalue en suite le coût de possession de
stock pour 25% sur la valeur de semoule. On suppose une offre avec réduction de
1,5% pour une livraison de 1600Kgs minimum.
Déterminer la vraie politique d’approvisionnement.
7) On considère un appareil électroménager dont le coût d’achat est de 925060 FF. Sa
valeur de revente se présente comme suit :
Année Valeur
1 450000
2 360000
3 227650
4 109005
5 75950
6 60800
7 55550
Le coût de fonctionnement est 150000FF la 1ère année et s’accroit de 20% par an.
Les dépendances doivent être actualisées au taux d’intérêt annuel de 12%.
TD : Déterminer à combien de temps faut-il remplacer cet appareil (par le modèle
sans actualisation et le modèle avec actualisation)?
Les files d'attente sont des phénomènes qui nous sont familiers parce que observables très
fréquemment dans notre activité personnelle ; mais on les rencontre aussi dans de nombreux
problèmes économiques, militaires, sociaux, etc.
On peut considérer deux régimes possibles dans l'étude des phénomènes d'attente. Le régime
stationnaire ou permanent et le régime transitoire. On parlera du régime permanent lorsque le
processus doit se dérouler pendant un temps suffisamment long pour que l'état du système ne
soit plus influencé par les conditions de départ du processus. Le régime est transitoire quand
l'état du système dépend des conditions initiales.
7.2. Structure d'un phénomène d'attente
Pour qu'une file d'attente apparaisse, il suffit que les entrées et/ou les services se
produisent à des intervalles irréguliers ou réguliers. Sous sa forme la moins complexe, un
phénomène d’attente (figure 8.1) comporte trois phases principales, à savoir :
- Une arrivée d’unités,
- Une file d’attente,
- Un service
Ce schéma reproduit les principaux aspects que l’on rencontre dans un problème
d’attente. On peut y voir comment les clients, venant de la source, entrent dans le système
d’attente en commençant par former une file d’attente dans le centre d’attente ensuite ils se font
servir et enfin sortent. Ceci est bien entendu la forme plus simple. Les modèles d’attente ne sont
pas toujours les mêmes. Ils varient en fonction des différents aspects qui caractérisent soit les
arrivées des clients, soit la manière dont le service est rendu. Dans l’optique de la manière
dont le service est rendu, donnons certaines autres formes des files. Ceci étant, rappelons que :
- la source : le loge des clients potentiels. Elle peut-être à capacité infinie c'est-à-dire,
comprenant les clients potentiels en nombre infini. Dans ce cas, les unités servies dans le
système ne sont pas nécessairement celles qui y étaient antérieurement. Exemples : des
individus se présentant à un guichet d’un service public ou d’un grand magasin ; des
véhicules à une station d’essence. On a dans ce cas un modèle de type ouvert ou
linéaire.
- La source est aussi à capacité finie, c'est-à-dire comprenant un nombre fini des clients
potentiels. Le client, une fois servi et satisfait, revient à la source et est susceptible de se
représenter plus tard dans le système (exemple, les véhicules ou les machines d’une
entreprise réparés dans le garage ou l’atelier de réparation de cette entreprise). On dit
que le modèle est à type fermé ou cyclique.
- Le centre de service est l’endroit exact où est rendu le service. Le fonctionnement du
centre de service est caractérisé par le temps qui lui est nécessaire pour "traiter" une
arrivée. Il est le plus souvent décrit par la loi de probabilité des temps de service. Le
taux moyen de service représente la capacité du centre de service en nombre d'unités
traitées par unité de temps. Le centre de service peut comprendre un ou plusieurs
guichets dans lesquels on trouve des serveurs. Il peut être de différents modèles, classés
en fonction du nombre des serveurs. Nous distinguons :
- Le modèle à serveur unique : c’est le modèle le plus simple, il n’y a qu’un seul
guichet qui rend service.
- Le modèle à S serveurs, où S > 1 : ici nous trouvons plusieurs guichets qui
peuvent être organisés de différentes manières :
1) Guichets en parallèle
Il y a plusieurs guichets qui rendent indifféremment le même service. Les clients n’ont besoin
d’être servis que par un seul des guichets, bien qu’il y en ait plusieurs. Ils se présentent au
guichet qu’ils trouvent ouvert pour être servis (exemple : les pompes à essence dans une station
service).
2) Guichets en série
Ici, ne peut être considéré comme servi que le client passé par tous les guichets.
3) Guichets en réseaux
- Les guichets en séries parallèles
Quelle que soit la série choisie, à la fin tous les clients passent par le même guichet
- Les guichets en série parallèles explosives.
Tous les clients commencent par le même centre de service, mais après se
La polycopie sans permission de l’auteur est un manquement scientifique.
Par le Chef de Travaux AMANI MAISHA Sulutani
133
Recherche Opérationnelle BAC+3 MP et SCAI
répartissent en séries.
Les clients entrent dans le système par des porte-tambours. Ils se dirigent vers les files
d'attente et y prennent la dernière place. Les entrées peuvent être, soit séparées par des
intervalles de temps égaux, soit séparées par des intervalles de temps inégaux mais déterminés,
soit séparées par des intervalles de temps inégaux connus en probabilité (on dit que les
intervalles sont aléatoires).
Dès qu'un client a obtenu le service désiré auprès d'une station (voie, guichet, vendeur,
etc.), il sort du système et il est remplacé par l'un des premiers clients attendant dans les files.
- Une file d'attente ou queue qui précède éventuellement le centre de service. Nous
appellerons "file d'attente" l'ensemble des clients (unités arrivées) qui attendent d'être
servis, à l'exclusion de celui qui est en train de se faire servir dans le centre de service.
La longueur de la file d’attente est déterminée par la capacité du centre d’attente qui peut
être infinie (lorsque le nombre d’unités dans la file est indénombrable, tels les avions
attentant l’atterrissage dans le ciel) ou finie (lorsque le nombre d’unités dans la file est
fini, exemple, les malades attendant la consultation dans une salle d’attente d’un centre
médical). Ici, toute unité devant attendre au-delà de la capacité du centre d’attente est
considérée comme perdue.
- Le système d'attente qui est l'ensemble des clients qui font la queue, y compris celui
qui se fait servir.
- La discipline du service qui précise quel individu parmi ceux actuellement en attente
sera traité le premier. Les règles de priorité sont très variées. On en distingue
généralement cinq.
La règle FIFO (First in, First out ou First come, First served) ou en Français
PEPS (Premier Entré, Premier Sorti) qui est normalement d'application dans
tous les phénomènes de files d'attente. D'après cette règle, le premier arrivant est
le premier servi.
La règle LIFO (Last in, First out ou Last come, First served), en Français
DEPS (Dernier Entré, Premier Sorti) qui veut que le dernier venu soit le
premier servi. Par exemple lorsqu'un ascenseur descend au rez-de-chaussée, la
personne se trouvant au deuxième niveau d'un immeuble de 20 étages sera servi
avant une autre se trouvant au 19ème.
La règle NIFO (Next in, First out) qui veut que le prochain arrivant soit le
premier servi. Cette règle est pratiquée dans la comptabilité des compagnies
pétrolières.
La polycopie sans permission de l’auteur est un manquement scientifique.
Par le Chef de Travaux AMANI MAISHA Sulutani
134
Recherche Opérationnelle BAC+3 MP et SCAI
La règle avec priorité qui veut qu'on puisse accorder une certaine priorité à
certains clients se trouvant dans la file.
La méthode quelconque ou « au hasard » qui veut qu'on puisse servir les
clients dans un ordre quelconque (pêle-mêle).
- Le processus d'arrivée des "clients" qui est décrit par une loi de probabilité des
arrivées. Le taux moyen d'arrivées est le nombre moyen de "clients" qui se présentent
par unité de temps. Les arrivées des clients sont aléatoires.
En ce qui concerne le comportement des clients, on distingue les clients patients et les
clients impatients.
Les premiers sont ceux qui restent dans la file jusqu'à ce qu'ils soient servis. Quant aux
derniers, on distingue les clients impatients a priori et les clients impatients a
posteriori.
Les clients impatients a priori sont des unités qui arrivent et trouvant d'autres unités
décident de partir (sans entrer dans le système).
Les clients impatients a posteriori sont des unités qui sont déjà dans la file d’attente
et qui décident de partir vu que le temps dont elles disposent pour attendre est écoulé
Appelons :
S : le nombre de stations ;
m : le nombre d'unités dans l'ensemble du phénomène (rappelons que m peut être constant) ;
n : le nombre d'unités dans le système (en attente dans une file et en cours de service) ;
v : le nombre d'unités dans les files d’attente ;
j : le nombre d'unités en cours de service ;
q : le nombre de stations inoccupées ;
tf : le temps moyen d'attente dans la file avant le service ;
ts : le temps moyen d'attente dans le système ;
n, v, j, q: les valeurs moyennes de n, v, j et q
On a donc :
n = j si n S, tous les clients peuvent être servis
=v+j si n > S.
Les quantités n, v et j varient en fonction du temps et sont aléatoires et on se
propose de découvrir les lois de probabilité auxquelles elles peuvent satisfaire.
Soit pn la probabilité qu'il y ait n unités dans le système.
Nous avons à considérer les événements suivants : 0 événement, 1 événement, ..., n événements,
..., m événements. Ceci définit une variable aléatoire.
La polycopie sans permission de l’auteur est un manquement scientifique.
Par le Chef de Travaux AMANI MAISHA Sulutani
135
Recherche Opérationnelle BAC+3 MP et SCAI
Dans le cas d'une seule file d'attente et d'un nombre S de stations qui assurent le
service, le nombre moyen d'unités dans la file sera :
Cette formule s'explique par le fait qu'il y a des unités en attente dès que n dépasse
S, c'est-à-dire pour n = S + i, avec i = 1 à m - S et que les probabilités correspondantes sont pS
+ 1, pS + 2, ... On pourrait encore exprimer le nombre moyen d'unités en cours de service, mais
on préfère souvent s'intéresser au nombre moyen ̅ de stations inoccupées. Ce qui donne :
Il est évident qu'il y a S stations inoccupées quand il n'y a pas de client dans le
système, (S-1) pour un client, etc. Il existe entre ces moyennes ̅, ̅ , et ̅, une relation
importante :
̅= ̅ +S - ̅,
En effet,
(11)
qui est bien le paramètre m = λ t de la loi de Poisson.
a) Modèle à serveur unique (M\M\1\ :PAPS)
C’est le système d’attente avec un serveur et pour lequel les taux d’arrivées
moyens et de services sont des constantes indépendantes de l’état de système.
Notations utilisées
Le temps de service est une variable aléatoire suivant une loi exponentielle avec
fonction de densité f(t)= ( )=Me-Mt, t> .Ainsi la probabilité qu’il y ait n entités
dans le système est Pn. Il s’en suit que pour Pn 0 la probabilité de taux t:
L=λW
Lq=λWq
Dans ce cas, les arrivées suivent une loi de Poisson avec paramètre λ et lorsque le
temps de service pour chaque unité suit une loi exponentielle avec une moyenne . Par
conséquent quel que soit le nombre S de serveurs qui fournissent le service, la distribution du
temps de service est la même. Le taux moyen de service pour tout le système d’attente c'est-
à-dire la vitesse moyenne à laquelle les unités quittent le système dépend de l’état du système
En.
Puisque le taux moyen de service (serveur occupé) est , on a :
Exemple
Une compagnie maritime possède un quai dans un port où ses bateaux déchargent
leurs cargaisons. L’arrivée des bateaux dans le port suit une loi de poisson avec un temps
moyen de 10h entre chaque arrivée. Le temps requis pour le déchargement suit une loi
exponentielle avec une moyenne de 3h. Calculez :
i) le facteur d’utilisation des facilités de service
ii) la probabilité qu’un bateau ait à attendre
iii) le nombre moyen des bateaux dans le port (longueur ligne d’attente)
iv) le nombre moyen des bateaux qui attendent pour être déchargés (longueur de la file
d’attente).
v) le temps moyen qu’un bateau passe dans le système
vi) le temps moyen d’attente pour un bateau
vii) la probabilité qu’un bateau passe plus que t=10h dans le système.
La polycopie sans permission de l’auteur est un manquement scientifique.
Par le Chef de Travaux AMANI MAISHA Sulutani
142
Recherche Opérationnelle BAC+3 MP et SCAI
Solution
1) Supposons un râtelier dans une usine où les mécaniciens viennent retirer des outils
spéciaux nécessaires pour l’accomplissement d’une tâche particulière leur assignée. Une
étude a été faite sur le temps entre les arrivées et les temps requis de service. Toutes ces
distributions sont adéquatement décrites de façon inversement exponentielle. Le temps
moyen entre arrivées est de 60 secondes et le temps moyen de service est de 50
secondes.
Calculer :
i) la longueur de file d’attente
ii) la longueur de la ligne d’attente
iii) le temps d’attente
iv) le % de temps inoccupé du surveillant
v) le temps qu’un mécanicien passe dans le système
Solution
EXERCICES
1) Un système clients serveur reçoit en moyenne 1000 requêtes par secondes, arrivant
selon un processus de Poisson. Il dispose d’un unique serveur pouvant traiter en
moyenne 2000 clients par seconde. On suppose que le temps de service d’un client est
distribué selon la loi exponentielle.
a) Calculer la probabilité que le temps de service dépasse 2ms.
b) Quel est le pourcentage de clients rejetés pour un système ne comportant pas de
file d’attente ?
c) Même question pour un système comportant une fille d’attente de 1 place. Calculer
le taux d’application du serveur.
2) Des camions arrivent dans une station-service pour passer des tests de sécurité, suivant
un processus de Poisson de taux de 6/jour. La durée des testes pour camion est une
valeur exponentielle d’espérance mathématique de 1h30mn. On suppose que le
processus d’arrivée ne s’interrompt pas et que la station travaille 24 heures sur 24.
a) Le système admet-il une distribution stationnaire ? Si oui, calculer et donner le nombre
moyen d’usagers dans le système, la longueur moyenne de la file d’attente et le temps
moyen passé dans la file (en régime stationnaire).
CONCLUSION
La Recherche Opérationnelle s’impose aujourd’hui comme un outil indispensable pour
la prise de décision dans des environnements complexes et incertains. En combinant des
méthodes quantitatives rigoureuses, telles que la programmation linéaire, la théorie des files
d’attente, la gestion des stocks, la simulation ou encore la théorie des graphes, la RO permet
d’optimiser les ressources, de réduire les coûts et d’améliorer l’efficacité des systèmes. Au-delà
des calculs et des modèles, elle développe également la capacité d’analyser des problèmes
concrets, de structure la réflexion et de proposer des solutions rationnelles face à des situations
pratiques variées, que ce soit en logistique, en production, en finance ou en gestion.
Toutefois, la RO ne se limite pas à des calculs ou des méthodes : elle est l’art de
transformer des problèmes complexes en solutions efficaces. En fournissant des méthodes
rigoureuses pour analyser, optimiser et prévoir, elle permet aux organisations de prendre des
décisions intelligentes, d’utiliser au mieux leurs ressources et de gagner en performances.
Ainsi, la RO n’est pas seulement une discipline théorique : elle constitue un véritable
levier stratégique pour la performance organisationnelle et la compétitivité, préparant les
décideurs à affronter des défis complexes avec méthode et précision.