Introduction à la Recherche Opérationnelle
Introduction à la Recherche Opérationnelle
Union-Discipline-Travail
Support de cours :
RECHERCHE OPERATIONNELLE
Réalisé par :
DIABATE Nabongo
(Maître de Conférences Mathématiques)
Cell : 07 07 58 71 59/01 03 11 21 44
Email : nabongo_diabate@[Link]
Il s’agit d’un résumé de notions dont l’étude approfondie nécessiterait bien plus de
temps. Le cours a été simplifié dans le but de le rendre accessible à tous.
Bonne lecture
‘’Partage ton pain avec celui qui a faim, et fais entrer dans ta maison les
malheureux sans asile ; si tu vois un homme nu, couvre-le, et ne te détourne
pas de ton semblable’’
Esaie 58 :7.
‘’Celui qui habite sous l’abri du Très-Haut repose à l’ombre du Tout Puissant’’
Psaume 91 :1.
Qu’est-ce que la Recherche Opérationnelle ?
La recherche opérationnelle est une discipline des méthodes scientifiques pour aider
à mieux décider. C’est une approche quantitative permettant de produire de meilleures
décisions. Elle fournit des outils pour rationaliser, simuler et optimiser l’architecture et
le fonctionnement des systèmes industriels et économiques. Elle propose des modèles
pour analyser des situations complexes et permet aux décideurs de faire des choix
efficaces. La recherche opérationnelle exploite ce qu’il y a de plus opérationnel dans
les mathématiques, l’économie et l’informatique. Elle est en prise directe avec
l’industrie et joue un rôle-clé dans le maintien de la compétitivité. Ses apports sont
visibles partout : de l’organisation des lignes de production d’automobiles à la
planification des missions spatiales, de l’optimisation des portefeuilles bancaires à
l’aide au séquençage de l’ADN, mais aussi dans la vie de tous les jours pour le
recyclage des déchets, l’organisation des ramassages scolaires, les emplois du temps
des infirmières ou la couverture satellite des téléphones portables.
La recherche opérationnelle trouve son origine au début du XXe siècle dans l’´étude
de la gestion de stock avec la formule du lot économique (dite formule de Wilson)
proposée par Harris en 1913. Mais ce n’est qu’avec la seconde guerre mondiale que
la pratique va s’organiser pour la première fois et acquérir son nom. En 1940, Patrick
Blackett est appelé par l’état-major anglais à diriger la première une équipe de
recherche opérationnelle, pour résoudre certains problèmes tels que l’implantation
optimale de radars de surveillance ou la gestion des convois d’approvisionnement. Le
qualificatif “opérationnelle” vient du fait que la première application d’un groupe de
travail organisé dans cette discipline avait trait aux opérations militaires. Après la
guerre, les techniques de RO se sont considérablement développées grâce,
notamment, à l’explosion des capacités de calcul des ordinateurs. Les domaines
d’application se sont également multipliés.
CENTRE DE RECHERCHE ET D’ACTION POUR LA PAIX
POLE UNIVERSITAIRE
15 Av. Jean Mermoz, Cocody
08 B.P. 2088 Abidjan 08
Tel. : (225) 22 40 47 20/ Fax : (225) 22 44 84 38
Email : iddh@[Link]
SYLLABUS
2- Enseignants/Intervenants
4-Objectifs
Le présent cours a pour objet de fournir une formation de base sur la formulation et
l'interprétation de modèles mathématiques, afin d’initier les étudiants à l’analyse
quantitative des problèmes de gestion et d’organisation économique des ressources.
5- Prérequis
Algèbre linéaire, algorithmique.
6- Méthodologie (Cours magistraux, séminaires, TD, TP, projets, visites de terrains, etc…)
La méthode d’animation sera la pédagogie participative par objectif afin de permettre aux
étudiants de concilier la théorie à la pratique professionnelle :
Date : 17/01/2023
Séance 1 : Théorie des graphes….
Date : 19/01/2023
Séance 2 : Théorie des graphes….
Date : 24/01/2023
Séance 3 : Optimisation de réseaux….
Date : 26/01/2023
Séance 4 : Optimisation de réseaux….
Date : 27/01/2023
Séance 5 : Techniques d’ordonnancement
Date : 30/01/2023
Séance 6 : Programmation linéaire
Chapitre 9 : Programmation linéaire
I- Généralités
II- Résolution graphique
III- Résolution algébrique
IV- Dualité
Lectures : Lectures obligatoires et conseillés pour la séance 6
[3]G. B. Dantzig M. N. Thapa, Linear programming, Pringer, 1997.
[13]M. Sakarovitch, Optimisation combinatoire et programmation linéaire, Hermann,
Enseignement des sciences, 1982.
Date : 31/01/2023
Séance 7 : Problèmes de transport et d’affectation….
Chapitre 10 : Problèmes de transport
I- Définitions
II- Problèmes de transport
III- Problèmes d’affection
Modalités d’évaluation
Evaluation continue :
Devoirs sur table (TD) : 30%
12-Code Ethique
Voir code d’Ethique du CERAP
Syllabus
Bibliographie-----------------------------------------------------------------------------------------------------------------53
Support de cours de Recherche Opérationnelle
CHAPITRE 1 : LES ENSEMBLES
NB : Tout au long du cours, nous nous intéressons uniquement aux ensembles finis.
I-Définitions
1-Ensemble
Un ensemble est une collection d’objet de même nature. On distingue deux(2) types
d’ensembles :
-ensemble fini ;
-ensemble infini.
a-Ensemble fini
Un ensemble sera dit fini, lorsqu’on peut dénombrer ses éléments, c'est-à-dire
compter ses éléments. On dit également ensemble dénombrable.
Exemple : l’ensemble des étudiants de la classe.
b-Ensemble infini
Un ensemble sera dit infini, lorsqu’on ne peut pas dénombrer ses éléments, c'est-à-
dire ne pas compter ses éléments. On dit également ensemble indénombrable.
2-Sous-ensemble
Un sous-ensemble est une partie d’un ensemble.
Exemple : l’ensemble des étudiantes de la classe constitue un sous ensemble de des
étudiants de la classe.
4-Produit cartésien
Soient deux(2) ensembles A et B. Le produit cartésien de A et B noté A B , est
l’ensemble des couples (x,y) tels que x A et y B .
2-Application injective
Une application est injective si f ( x1 ) = f ( x2 ) x1 = x2 ou x1 x2 f ( x1 ) f ( x2 )
Autrement dit chaque image admet au plus un antécédent.
3-Application subjective
Une application est subjective si tout élément de E’ est l’image par f d’au moins un
élément de E.
f : E → E ', y E ', x E, tel que f ( x) = y .
4-Application bijective
Une application qui est à la fois injective et subjective est dite bijective. Autrement dit,
une application est bijective si tout élément de l’ensemble d’arrivée admet un
antécédent dans l’ensemble de départ qui est unique.
f : E → E ', y E ', ! x E , tel que y = f ( x)
Une application bijective permet de définir une application bijective réciproque.
f :E → E'
f −1 : E ' → E
L’application identique de E dans lui-même est appelée identité de E.
f −1 f = Id E ( x) = x
IV-Exercice
Soit E un ensemble. A et B sont deux sous-ensembles de E.
Démontrer que :
- A B = A B ;
- A B = A B ;
Avec A = CEA = E − A = x E / x A .
Introduction
L’histoire de la théorie des graphes débute peut-être avec les travaux d’Euler au XVIIIe
siècle et trouve son origine dans l’étude de certains problèmes, tels que celui des ponts
de Königsberg (voir page de couverture, les habitants de Königsberg se demandaient s’il
était possible, en partant d’un quartier quelconque de la ville, de traverser tous les ponts
sans passer deux fois par le même et de revenir à leur point de départ), la marche du
cavalier sur l’échiquier ou le problème de coloriage de cartes. La théorie des graphes
s’est alors développée dans diverses disciplines telles que la chimie, la biologie, les
sciences sociales. Depuis le début du XXe siècle, elle constitue une branche à part entière
des mathématiques, grâce aux travaux de König, Menger, Cayley puis de Berge et
d’Erdös. De manière générale, un graphe permet de représenter la structure, les
connexions d’un ensemble complexe en exprimant les relations entre ses éléments :
réseau de communication, réseaux routiers, interaction de diverses espèces animales,
circuits électriques,. . .
Les graphes constituent donc une méthode de pensée qui permet de modéliser une
grande variété de problèmes en se ramenant à l’étude de sommets et d’arcs. Les derniers
travaux en théorie des graphes sont souvent effectués par des informaticiens, du fait de
l’importance qu’y revêt l’aspect algorithmique.
I-Définitions
1-Notion de graphe
Un graphe est un sous ensemble du produit cartésien de deux(2) ensembles.
On appelle graphe G le couple défini par (S,A) ou :
-S représente l’ensemble des sommets, S = S1 , S2 ,..., S n
-A représente l’ensemble des arcs ou arêtes, A = A1 , A2 ,..., Am
a c
a c
II-Terminologie
1-Ordre d’un graphe
L’ordre d’un graphe est le nombre de sommets du graphe, en général, noté : n.
Exemple :
a c
d
Graphe d’ordre 4.
2-Adjacence ou voisinage
a-Graphe non orienté
b-Graphe orienté
Deux sommets sont dits adjacents si un arc les relie. Deux arcs sont dits adjacents
s'ils ont une extrémité en commun.
3-Degré
a-Graphe non orienté
Le degré d'un sommet x d’un graphe non orienté G est le nombre d'arêtes incidentes à
x. Il est noté d(x). Pour un graphe simple le degré de x correspond également au nombre
de sommets adjacents à x.
Exemple :
a c
b-Graphe orienté
Le demi-degré extérieur ou degré sortant d'un sommet x (noté dG+(x)) est égal au
nombre d'arcs qui partent de x. Le demi-degré intérieur ou degré entrant d'un
sommet x (noté dG-(x)) est égal au nombre d'arcs qui arrivent en x. Le degré du sommet
x (noté dG(x)) est égal à la somme des demi-degrés.
dG(x)= dG+(x)+ dG-(x)
Exemple :
a c
5-Sous-graphe
On appelle sous-graphe engendré par X (partie de S) le graphe obtenu en ne
conservant que les sommets de X et les arcs les reliant.
6-Graphe partiel
On appelle graphe partiel un graphe obtenu en supprimant des arcs au graphe initial.
7-Graphe complet
Un graphe complet est un graphe où chaque sommet est relié à tous les autres. Le
graphe complet d'ordre n est noté Kn. Dans ce graphe chaque sommet est de degré n-1.
Exemple :
b
c
K3.
8-Une clique
Une clique est un sous-graphe complet.
9-Un stable
Un stable est un sous-graphe sans arête.
10-Chaîne
On appelle chaîne une succession d'arcs, chaque arc intermédiaire de la séquence
ayant une extrémité en commun avec l'arc précédent et l'autre extrémité en commun
avec l'arc suivant. Dans une chaîne, où on peut rencontrer des arcs directs (parcourus
dans le bon sens) et des arcs inverses.
a-Chaîne élémentaire
Une chaîne ne rencontrant pas deux fois le même sommet est dite élémentaire.
b-Chaîne simple
Une chaîne ne rencontrant pas deux fois le même arc est dite simple.
c-Chaîne eulérienne
On appelle chaîne eulérienne une chaîne empruntant tous les arcs du graphe une fois
et une seule.
d-Chaîne hamiltonnienne
f-Circuit
On appelle circuit un cycle bien orienté, à la fois cycle et chemin.
11-Chemin
a-Graphe non orienté
Un chemin est une liste p = ( x1 , x2 ,..., xk ) de sommets telle qu'il existe dans le graphe
une arête entre chaque paire de sommets successifs. i = 1,..., k − 1, ( xi , xi +1 ) A . La
longueur (distance) du chemin correspond au nombre d'arêtes parcourues : k-1.
L'écartement d'un sommet est la distance maximale existant entre ce sommet et les
autres sommets du graphe. (Si le graphe n'est pas connexe, l'écartement est infini). On
appelle centre d'un graphe, le sommet d'écartement minimal.
(Le centre n'est pas nécessairement unique). Par exemple, dans une clique, tous les
sommets sont "centres". On appelle rayon d'un graphe G, noté ρ(G), l'écartement d'un
centre de G. On appelle diamètre d'un graphe G, noté δ(G), la distance maximale entre
deux sommets du graphe G.
b-Graphe orienté
On appelle chemin une chaîne bien orientée, c'est à dire que tous les arcs de la chaîne
sont parcourus dans le bon sens.
c-Chemin élémentaire
Un chemin élémentaire est un chemin qui ne passe pas deux fois par le même
sommet.
d-Chemin simple
Un chemin simple est un chemin qui ne contient pas deux fois le même arc (arête).
e-Chemin eulérien
On appelle chemin eulérien un chemin empruntant tous les arcs (arêtes) du graphe
une fois et une seule.
f-Chemin hamiltonnien
On appelle chemin hamiltonnien un chemin passant par tous les sommets du graphe
une fois et une seule.
g-Cycle
On appelle cycle un chemin simple finissant à son point de départ.
12-Connexité
Un graphe est connexe si et seulement si il existe un chemin entre chaque paire de
sommets.
13-Composante Connexe
Une composante connexe d'un graphe G est un sous-graphe G'=(S',A') connexe
maximal (pour l'inclusion) : il n'est pas possible d'ajouter à S' d'autres sommets en
conservant la connexité du sous-graphe.
14-Propriétés
a-Graphe connexe
Un graphe G d'ordre n connexe comporte au moins n-1 arêtes.
c-Graphe acyclique
Un graphe acyclique G à n sommets possède au plus n-1 arêtes.
d-Théorème
Un graphe est eulérien si et seulement si il est connexe et tous ses sommets sont de
degré pair.
e-Chemin eulérien
Un graphe admet un chemin eulérien si et seulement si il est connexe et au plus deux
(2) de ses sommets sont de degré impair.
f-Chemin élémentaire
Tout chemin élémentaire est de longueur au plus n-1. Le nombre de chemins
élémentaires dans le graphe est fini. Si il existe un chemin entre deux(2) sommets x et y,
alors il existe un chemin élémentaire entre x et y.
15-Arbre
Un arbre est un graphe connexe sans cycle.
16-Forêt
Une forêt est un graphe sans cycle.
Démonstration :
(1)→ (2) : Le graphe G étant à la fois connexe et acyclique, il possède exactement n-1
arêtes. (cf propriété des graphes connexes et propriété des graphes acycliques)
(3)→ (4) : Par l'absurde si G possédait un cycle, la suppression d'une arête de ce cycle ne
saurait le déconnecter. Par suite G est acyclique. Puisqu'il est également connexe, il
possède donc exactement n-1 arêtes.
(4)→ (5) : L'ajout d'une arête à G donne un graphe à n arêtes : il ne peut être acyclique
(cf propriété des graphes acycliques).
18-Feuille et hauteur
Pour un arbre G=(S,A) de racine r :
❖ Le père d'un sommet x est l'unique voisin de x sur le chemin de la racine à x. La
racine r est le seul sommet sans père.
❖ Les fils d'un sommet x sont les voisins de x autres que son père.
❖ Une feuille est un sommet sans fils. Les feuilles correspondent aux sommets de
degré 1.
19-Réseau et flot
a-Réseau
Un réseau est un graphe orienté G=(S,A) avec une valuation positive de ses arcs. La
valuation c(x,y) d'un arc (x,y) est appelée la capacité de l'arc. On distingue sur G deux
sommets particuliers : une source s et une destination t. Les autres sommets sont les
nœuds intermédiaires du réseau.
b-Flot
Un flot F sur un réseau G=(S,A) est une valuation positive des arcs, c'est à dire une
application de A dans R+, qui vérifie les deux propriétés suivantes :
(1) Pour tout arc a A ,
(2) Pour tout sommet intermédiaire x S \ ( s, t ) , F ( y, x) = F ( x, y)
y y
c-Saturation
Un arc (x,y) est saturé par un flot F si la valeur du flot sur l'arc égale sa capacité :
F(x,y) = c(x,y). Un chemin est saturé si l'un de ses arcs est saturé. La capacité résiduelle
d'un arc (x,y) est la quantité c(x,y)-F(x,y) de flot pouvant encore transiter par lui. La
g d
f
e
II-Représentation par une liste exhaustive : des sommets, arcs ou arêtes
Considérons le graphe ci-dessous :
c
e
f a
S = a, b, c, d , e, f ; A = (a, b);(b, f );( f , b);( f , e);(b, e);(e, d );(d , c);(c, b) .
c
e
Si S Suivant de Si S
a b
b e,f
c b
d c
e d
f e,b
c
e
f a
1-Matrice littérale
a b c d e f
a (a,b)
b (b,e) (b,f)
c (c,b)
d (d,c)
e (e,d)
f (f,b) (f,e)
2-Matrice booléenne
L’existence d’un arc se traduit par 1 et l’absence par 0.
a b c d e f
a 0 1 0 0 0 0
b 0 0 0 0 1 1
c 0 1 0 0 0 0
d 0 0 1 0 0 0
e 0 0 0 1 0 0
f 0 1 0 0 1 0
e
1 c
h
f
b
3 5
a b c d e f g h
1 1 1 0 0 0 0 0 0
2 -1 0 -1 1 0 0 0 0
3 0 -1 1 0 -1 0 -1 0
4 0 0 0 -1 1 1 0 1
5 0 0 0 0 0 -1 1 -1
Introduction
Les problèmes de cheminement concernent la recherche du plus court chemin d’un
point considéré comme point de départ à un autre point considéré comme point
d’arrivé. Il s’agit ici d’un problème d’optimisation, qui consiste non seulement à
rechercher le chemin optimal(le plus court chemin), mais également sa longueur.
Plusieurs méthodes existent pour résoudre ce type de problème. Dans le présent
chapitre, nous nous intéresserons à l’étude des algorithmes de Dijkstra-Moore et Ford.
I G 1
6 3
1 C 3 2
5 M
4 5
H 12
A 8
4 D 3
1 4 2
2 2 K N 9 F
E 1
B 6 6
1 P
4
L 7
Travail à faire : déterminer le chemin de longueur minimale entre les sommet I(sommet
initial) et le sommet F(sommet final).
Phase 3 : Fonctionnement
Tant que tous les sommets ne sont pas dans Σ et que le sommet F n’est pas affecté de la
plus petite distance provisoire :
-Choisir parmi les sommets non placé dans Σ un dont la distance provisoire est
minimale : appelons-le Si;
-Mettre Si dans Σ;
-Pour chaque sommet Yi, qui lui sont adjacent et qui ne sont pas dans Σ:
➢ Calculer s= dist(Si)+poids de l’arc[Si, Yi] ;
➢ Si s est inferieur à la distance provisoire de Yi, attribuer à Yi, le couple (s, Si).
(dist(Yi) min{ dist(Si)+poids de l’arc[Si, Yi] , dist(Yi) })
Phase 4 : Conclusion
-La longueur du plus court chemin de I à F est alors dist(F) ;
-La chaîne de poids minimum se lit à l’envers de F à chacun de ses prédécesseurs
successifs.
2-Application
Considérons le graphe ci-dessus :
I A B C D E G H K L M N P F Σ
(0,I) (1,I) (+∞, ?) (6,I) (+∞, ?) (+∞, ?) (+∞, ?) (+∞, ?) (+∞, ?) (+∞, ?) (+∞, ?) (+∞, ?) (+∞, ?) (+∞, ?) I
(2,A) (5,A) A
(4,B) B
(6,D) D
(9,C) C
(10,E) E
(11,H) (14,H) (17,H) H
(16,L) (17,L) L
(12,G) G
(24,M) M
K
(23,P) P
N
F
Phase 1 :
Affecter le poids 0 au sommet de niveau 0 ;
Phase 2 :
Pour chaque niveau et chaque sommet Si de ce niveau, lui affecter le poids obtenu en
prenant le minimum des sommes Σ ={poids d’un prédécesseur de Si +poids de l’arc le
reliant ce prédécesseur à Si}
Phase 3 :
Le chemin de poids minimum est l’un de ceux qui réalisent le poids du dernier sommet :
il suffit donc d’une lecture à l’envers.
3-Application
Considérons le graphe ci-dessous :
S5
S4
6
6
2 9
S3
2
3
S1
S2
6
On considère le sommet S5 comme étant le sommet initial. Dans la résolution de notre
problème, nous allons procéder comme suite :
-On va ordonnancer le graphe : cela revient à déterminer le niveau de chaque sommet.
Au sommet initial, on attribuera le niveau 0 ;
-Appliquer l’algorithme de Ford
a-Ordonnancement du graphe
Sommet S1 S2 S3 S4 S5
Niveau 3 1 2 4 0
11
0 6 S1
6
2
S5 S2 S4
6 9
2
3 6
13
S3
9
La longueur du chemin est 13 et le chemin est [S5, S2, S3, S1, S4].
I-Définitions
1-Arbre
Un arbre est un graphe connexe sans cycle.
2-Arbre couvrant
Un arbre couvrant ou arbre maximal est un sous graphe maximum qui est aussi un
arbre. Autrement dit Un arbre couvrant pour un graphe G=(S,A) est un arbre construit
uniquement à partir des arêtes de A et qui connecte tous les sommets de S. Un arbre
couvrant d'un graphe G est donc un graphe G1 tel que :
✓ Le graphe G1 est un arbre ;
✓ Le graphe G1 est un graphe partiel de G.
4-Exemple d’application
Relier n villes par un réseau routier de coût minimum. Le poids de chaque arête
correspond au coût de construction du tronçon.
k k +1
Fin Si
Fin Tant que
III-Application
Considérons le graphe ci-dessous représentant un réseau
9
B C 4 D
5 2 9 5
1
4 H 7 4
A 3 2 8
8 9 J
G I
9
3
9 E
9 8
routier :
F
18
Introduction :
Il existe deux façons de colorer :
La première consiste à attribuer à chaque sommet une couleur sans que deux
sommets reliés par une arête soit de la même couleur. C’est cette notion qui est
utilisée dans le théorème des quatre(4) couleurs et leur dérivé.
La seconde consiste au contraire à affecter certain sommet d’une couleur et à
propager celle-ci. C’est la méthode dite de graphe chromatique qui est utilisé
pour optimiser la génération de code sur une machine comportant un grand
nombre de registre.
Beaucoup de problèmes peuvent se réduire à la résolution de coloration de graphe à
savoir la cartographie, l’amélioration de l’organisation de tâche.
I-Définition
Soit G=(S,A) un graphe non orienté. Un sous-ensemble Y de S est stable s’il ne
comprend que des sommets non adjacents deux à deux. Le cardinal de la plus grande
partie stable est le nombre de stabilité de G, on le note α(G). La coloration des sommets
d’un graphe consiste à affecter tous les sommets de ce graphe d’une couleur de telle
sorte que deux sommets adjacents ne portent pas la même couleur. Une coloration avec
k couleurs est donc une partition de l’ensemble des sommets en k parties stables. Le
nombre chromatique, noté γ(G) du graphe est le plus petit entier k pour lequel il existe
une partition de S en k sous-ensembles stables.
II-Exemple d’application :
1-Problème d’emploi du temps
L’université de Bouaké doit organiser les horaires des examens. On suppose qu’il y a 7
épreuves à planifier, correspondant aux cours numérotés de 1 à 7 et que les paires de
cours suivantes ont des étudiants communs : 1 et 2, 1 et 3, 1 et 4, 1 et 7, 2 et 3, 2 et 4, 2 et
5, 2 et 7, 3 et 4, 3 et 6, 3 et 7, 4 et 5, 4 et 6, 5 et 6, 5 et 7 et 6 et 7. Comment organiser ces
épreuves de façon qu’aucun étudiant n’ait à passer deux épreuves en même temps et
cela sur une durée minimale ?
2-Solution
III-Application
Colorier les sommets du graphe ci-dessous :
H
B E
A C F J
I
D
I-Définitions
1-Réseau de transport
Un réseau de transport est un graphe sans boucle où chaque arc u est associé à un
nombre c(u) et u A avec c(u ) 0 . La valeur c(u) est appelé capacité de l’arc u. En
outre, un tel réseau vérifie les hypothèses suivantes :
-Il existe un seul nœud s qui n’a pas de prédécesseur tous les autres en ont au moins un.
Ce nœud est appelé l’entrée du réseau ou la source ;
- Il existe un seul nœud p qui n’a pas de successeur tous les autres en ont au moins un.
Ce nœud est appelé la sortie du réseau ou le puits.
2-Flot
Un flot f dans un réseau de transport est une fonction qui associe à chaque arc u
( u A ) une quantité f(u) qui représente ( y, x) A la quantité de flot qui passe par cet
arc, en provenance de la source et en destination du puits.
f : A→ +
u f (u )
Un flot doit respecter la règle suivante : la somme des quantités des flots, sur les arcs
entrants dans un nœud autre que la source et le puits doit être égale à la somme des
quantités des flots sur les arcs sortants de ce même nœud. Autrement dit, la quantité qui
arrive à un sommet X donné doit être égale à la quantité qui sort de ce sommet (Règle de
cohérence ou loi de Kirchhoff).
3-Flot compatible
Un flot f est compatible avec un réseau si pour tout arc u on a :
u A,0 f (u) c(u) ;
En d’autre terme le flot qui le traverse ne doit pas dépasser la capacité de l’arc.
4-Flot complet
2-Chaîne améliorante
▪ Chaîne sur laquelle on peut augmenter le flux allant de s à p
▪ Plus précisément, une chaîne améliorante est une chaîne élémentaire :
-Tout arc direct (x,y) de la chaîne n’est pas saturé
-Tout arc indirect (x,y) de la chaîne à un flux positif
NB : Soit G=(S,A) un graphe. Un arc (x,y) est direct si ( x, y) A . Un arc (x,y) est indirect
si ( y, x) A .
3-Procédure de Ford-Fulkerson
▪ Permet de trouver une chaîne améliorante
▪ S’il n’en existe pas, le flot est maximum
▪ Initialisation : l’entrée s est marquée +, les autres sommets sont non marqués
▪ Tant que cela est possible, choisir un sommet x vérifiant l’une des deux
conditions suivantes :
-x est l’extrémité d’un arc (y,x) non saturé tel que y est marqué. Marquer + ce
sommet ;
-x est l’origine d’un arc (x,y) tel que y est marqué et sur lequel circule un flux
positif. Marquer – ce sommet.
▪ Indiquer le sommet qui a permis de marqué x c'est-à-dire son prédécesseur
P(x)=y
▪ Si le puits p est marqué, la chaîne reliant les sommets marqués est une chaîne
améliorante
▪ Si en fin d’application de cette procédure, le puits p n’est pas marqué, il n’existe
pas de chaîne améliorante, le flot est donc optimal.
IV-Application
Considérons le graphe ci-dessous :
7,5 7,5+2
10,5+2+2+1
A C G
5,5 8,2+5 10,5
4,2+1
10,2+2+1+5
6,1+5
S B 2,2 D P
1,1
2,1+1 2 6,4
8,1+4
E F
4,4
Réalisé par Prof. DIABATE Nabongo(Enseignant-Chercheur à l’UFR SED /UAO) 22
Support de cours de Recherche Opérationnelle
2-Chaîne ameliorante
S→B→C→A→D→P ;
Min{5,6,10}=5 ;
Le minimum à faire passer est 5. Après cela, on ne peut plus marquer P (non existence
d’une chaîne ameliorante). Le flot maximal est 20.
Introduction
Dès qu’un projet nécessite une multitude de tâches qui mettent en œuvre d’importants
capitaux, des agents de compétences très diverses, des matériels et des matériaux variés,
il est indispensable de prévoir et de suivre le déroulement de toutes les opérations, de
coordonner les différents travaux et l’ensemble des activités afin d’éviter, en autres, les
retards et de rester dans les limites des budgets de financement.
Dans la pratique, la réalisation du projet engendre une succession de tâches auxquelles
s’attachent certaines contraintes :
▪ De temps : délais à respecter pour l’exécution des tâches ;
▪ D’antériorité : certaines tâches doivent s’exécuter avant d’autres ;
▪ De production : temps d’occupation du matériel ou des hommes qui l’utilisent.
Chaque tâche a donc un nom, une durée, une place et un coût. Tout système qui permet
de résoudre le problème d’organisation d’un projet est une méthode ou technique
d’ordonnancement.
Les techniques d’ordonnancement dans le cadre de la gestion d’un projet ont pour
objectif de répondre au mieux aux besoins exprimés par un client, au meilleur coût et
dans les meilleurs délais, en tenant compte des différentes contraintes.
L’ordonnancement se déroule en trois étapes :
▪ La planification : qui vise à déterminer les différentes opérations à réaliser, les
dates correspondantes, et les moyens matériels et humains à y affecter.
▪ L’exécution : qui consiste à la mise en œuvre des différentes opérations définies
dans la phase de planification.
▪ Le contrôle : qui consiste à effectuer une comparaison entre planification et
exécution, soit au niveau des coûts, soit au niveau des dates de réalisation.
Il existe trois méthodes d’ordonnancement : le diagramme de Gantt, la méthode
MPM(Méthode des potentiels Métra), le PERT (Program Evaluation Research Technic).
2-Réalisation.
Les différentes étapes de réalisation d’un diagramme de Gantt son les suivantes :
-Première étape : On détermine les différentes tâches (ou opérations) à réaliser et leur
durée.
-Deuxième étape : On définit les relations d’antériorité entre tâches.
-Troisième étape : On représente d’abord les tâches n’ayant aucune antériorité, puis les
tâches dont les tâches antérieures ont déjà été représentées, et ainsi de suite…
Résolution de l’exemple :
Temps
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
Tâche
A
D
E
Remarques :
▪ Chaque colonne représente une unité de temps.
▪ Les durées d’exécution prévues des tâches sont représentées par un trait
épais. (2 unités de temps pour A).
▪ Les contraintes de succession se lisent immédiatement.
o La tâche C succède à la tâche A.
o D succède à A et B.
o E succède à C et D
▪ On peut alors déterminer le chemin critique : qui est formé d’une succession
de tâches, sur le chemin le plus long en terme de durée. Il est appelé chemin
Avantages :
▪ Permet de déterminer la date de réalisation d’un projet.
▪ Permet d’identifier les marges existantes sur certaines tâches (avec une date
de début au plus tôt et une date au plus tard).
▪ La date au plus tard de début d’une tâche, la date à ne pas dépasser sans
retarder l’ensemble du projet.
Inconvénient :
▪ Ne résoud pas tous les problèmes, en particulier si l’on doit planifier des
fabrications qui viennent en concurrence pour l’utilisation de certaines
ressources.
1-Principe et phases
La méthode MPM repose sur trois(3) principes :
▪ Les tâches sont représentées par des sommets et les contraintes de
succession par des arcs.
▪ Chaque tâche est renseignée par la date à laquelle elle peut commencer
(date au plus tôt) et celle à laquelle, elle doit se terminer (date au plus
tard).
▪ A chaque arc est associée une valeur numérique, qui représente soit une
durée d’opération, soit un délai après lequel peut débuter la tâche
suivante.
Et comporte trois(3) phases :
▪ La construction du graphe.
▪ La recherche du ou des chemins critiques.
▪ L’évaluation et l’interprétation des marges (totales ou libres) qui
permettent de mener à bien le projet.
Date au
plus tard
Date au plus
tôt
2 5
0 2
2 C
A
0 2 4 15 15
9 9
E 6 FIN
0 0
5
DEBUT
0 0 4 4
0 B D
4
Remarques :
Tâche fictive :
- tâche nécessaire pour représenter les contraintes du projet
- elles ont pour valeur 0
- elles sont souvent en pointillés
Exemple :
L succède à J ; K succède à I à J
J L
I
Réalisé par Prof. DIABATE K
Nabongo(Enseignant-Chercheur à l’UFR SED /UAO) 27
Support de cours de Recherche Opérationnelle
I et J fonctionne en parallèle J
J
I I
Autres notions :
Chemin critique : chemin tel que toute augmentation de la durée d’une tâche
retarde d’autant la fin du projet. Intervalle de flottement nul.
Date au
Date au plus plus tard
tôt
2 4
2
B(4) D(5)
4 4
3
Introduction
La programmation linéaire est une méthode mathématique qui consiste à trouver la
solution d’un problème, ramené à la recherche de l’optimum d’une fonction linéaire de
plusieurs variables (dite fonction économique) liées par une série de contraintes, elles
mêmes exprimées sous forme d’équations ou d’inéquations linéaires.
I-Définitions
1- Programme linéaire
Un programme linéaire est un modèle mathématique dans lequel la fonction objectif
et les contraintes sont linéaires en les variables.
2-Forme canonique
a-Définition
La forme canonique est la formulation mathématique du problème à modéliser. Un
programme linéaire est sous forme canonique lorsque toutes ses contraintes sont des
inégalités et toutes ses variables sont non-négatives.
b-Exemple
c-Représentation matricielle
max(ou min)cT x
s.c. Ax (ou )b
x0
mn
n variables, m contraintes, c, x n , b m
, A .
Données :
Quantité utilisée par tonne Quantité disponible par jour
Extérieur Intérieur
M1 6 4 24
M2 1 2 6
Profit∕tonne 5 4
Contraintes supplémentaires
– Demande maximum en peinture d’intérieur : 2 tonnes / jour.
– La production en peinture d’intérieur ne dépasser que d’une tonne celle d’extérieur.
Formulation
-Choix des variables du problème
x1 = tonnes de peinture d’extérieur produites par jour
x2 = tonnes de peinture d’intérieur produites par jour
6 x1 + 4 x2 24
x + 2x 6
1 2
x2 2
x − x 1
2 1
x1 0, x2 0
-Définition de la forme canonique
max Z = 5 x1 + 4 x2
6 x1 + 4 x2 24
x + 2x 6
1 2
2x 2
x − x 1
2 1
x1 0, x2 0
II-Méthode graphique
La résolution graphique est possible uniquement dans le cas de deux variables.
Considérons le problème ci-dessous
max(ou min) Z = C1 x1 + C2 x2
a11 x1 + a12 x2 ( ou ) b1
a21 x1 + a22 x2 ( ou ) b2
..................................
a x + a x ou b
m1 1 m 2 2 ( ) m
x1 0, x2 0
Chaque contrainte ai1 x1 + ai 2 x2 ( ou ) bi est l’équation d’un demi-plan délimité par la
droite d’équation ai1 x1 + ai 2 x2 = bi . La droite ( Di ) : ai1 x1 + ai 2 x2 = bi est la droite de
saturation de la contrainte i, elle se nomme droite limite.
x2 2
x − x 1
2 1
x1 0, x2 0
Forme standard :
max Z = 5 x1 + 4 x2 + 0e1 + 0e2 + 0e3 + 0e4
6 x1 + 4 x2 + e1 = 24
x1 + 2 x2 + e2 = 6
x2 + e3 = 2
x − x + e = 1
2 1 4
x1 0, x2 0, e1 0, e2 0, e3 0, e4 0
Forme matricielle :
max cT x
s.c. Ax = b
x0
5 x1
4 x2 6 4 1 0 0 0 24
0 s1
1 2 0 1 0 0 6
c = , x = , A = , b=
0 s2 0 1 0 0 1 0 2
0 s
−1 1 0 0 0 1 1
3
s
0 4
2-Convexité
a-Définition
Un ensemble E n est convexe si et seulement si x E , et y E ,
0,1 x + (1 − ) y E . L’intersection d’un nombre fini de convexes est convexe.
b-Théorèmes
Théorème 1 : L’ensemble Ω des solutions réalisables d’un programme linéaire est
convexe.
3-Méthode du simplexe
b-Solutions de base
– Système de m équations linéaires à n inconnues (m < n) : infinité de solutions.
– Si on fixe à zéro n-m variables : système de m équations à m inconnues possédant une
solution unique (si la matrice est inversible). C’est une solution de base.
c-Définition (Solution de base)
Une solution de base d’un programme linéaire est la solution unique du système de m
équations à m inconnues obtenu en fixant à zéro n-m variables (pourvu que la matrice
du système soit inversible).
Les variables fixées à zéro sont appelées variables hors base et les autres variables en
base.
d-Algorithme du simplexe
Premier critère de Dantzig (choix de la variable d’entrée)
Pour déterminer la variable entrante, on exprime la fonction économique en fonction
des seules variables hors-bases et on choisit :
-Si on veut maximiser, la variable affectée du coefficient positif le plus élevé.
-Si on veut minimiser, la variable affectée du coefficient négatif le plus petit.
NB : La colonne de la variable entrante correspond à la colonne pivot.
Critère d’arrêt
-Dans le cas d’une maximisation, Lorsque les coefficients de la fonction économique
exprimée en fonction des seules variables hors-bases sont négatifs ou nuls, l’algorithme
s’arrête. La solution maximale est trouvée.
-Dans le cas d’une minimisation, Lorsque les coefficients de la fonction économique
exprimée en fonction des seules variables hors-bases sont positifs ou nuls, l’algorithme
s’arrête. La solution minimale est trouvée.
Lecture du tableau
-Si la variable est dans la base, sa valeur se trouve dans la colonne des seconds membres
B.
-Si la variable n’est pas dans la base, sa valeur est nulle.
f-Cas particuliers
f-1-Bases dégénérées
– Si plusieurs choix sont possibles pour la variable sortante, une des variables en base
sera nulle à l’itération suivante.
– Base telle qu’une variable en base est nulle : base dégénérée.
– Correspond à une contrainte redondante.
– Risque de cyclage !
Exemple :
max z = 3x1 + 9 x2
s.c x1 + 4 x2 8
x1 + 2 x2 4
x1 , x2 0
Var. en base x1 x2 e1 e2 B
e1 1 4 1 0 8
e2 1 2 0 1 4
Δj 3 9 0 0 0
Var. en base x1 x2 e1 e2 B
x2 1/4 1 1/4 0 2
Var. en base x1 x2 e1 e2 B
x2 0 1 1/2 -1/2 2
x1 1 0 -1 2 0
Δj 0 0 -3/2 -3/2 -18
Var. en base x1 x2 e1 e2 B
e1 1 2 1 0 5
e2 1 1 0 1 4
Δj 2 4 0 0 0
Var. en base x1 x2 e1 e2 B
x2 1/2 1 1/2 0 5/2
e2 1/2 0 -1/2 1 3/2
Δj 0 0 -2 0 -10
Var. en base x1 x2 e1 e2 B
x2 0 1 1 -1 1
x1 1 0 -1 2 3
Δj 0 0 -2 0 -10
5 3
Solution optimale : x1 = 0 + 3(1 − ) = 3 − 3 ; x2 = + 1(1 − ) = 1 + (0 1) .
2 2
f-3-Problèmes non bornés
– Certains problèmes sont non bornés dans une direction donnée.
– Si cette direction est une direction d’amélioration de la fonction objectif, celle-ci peut
prendre une valeur arbitrairement grande !
Exemple :
max z = 2 x1 + x2
s.c x1 − x2 1
2 x1 4
Var. en base x1 x2 e1 e2 B
e1 1 -1 1 0 1
e2 2 0 0 1 4
Δj 2 1 0 0 0
– Tous les coefficients (sauf le profit marginal) dans la colonne de x2 sont négatifs ou
nuls.
– Cela signifie que toutes les contraintes de non-négativité sont satisfaites quelle que soit
la valeur de x2.
– L’objectif peut donc augmenter indéfiniment.
f-4-Problèmes impossibles
– Le système de contraintes peut n’avoir aucune solution.
– Méthode des 2 phases : termine avec des variables artificielles non nulles.
– Généralement, provient d’une mauvaise formulation du problème.
Exemple :
max z = 3x1 + 2 x2
2 x1 + x2 2
3x1 + 4 x2 12
x1 , x2 0
4-Conseils pratiques pour la recherche d’un minimum
a-Mise sous forme standard équivalente
a-1-Position du problème
min Z = 60 x1 + 90 x2
20 x1 + 10 x2 10750
10 x1 + 20 x2 8000
x 0, x 0
1 2
a-2-Forme standard
Var. en base x1 x2 e1 e2 B
20 10 -1 0 10750
10 20 0 -1 8000
Δj 60 90 0 0 0
Nous remarquons -1 a la place de 1. Il n y a donc pas de solution de base. Pour remédier
à cela, il faut créer des variables pour la base. Ces variables sont appelées variables
artificielles. Ces variables sont sans signification économique.
Var. en base x1 x2 e1 e2 a1 a2 B
a1 20 10 -1 0 1 0 10750
a2 10 20 0 -1 0 1 8000
Δj 60-30M 90-30M M M 0 0 -18750M
Var. en base x1 x2 e1 e2 a1 a2 B
x1 1 1/2 -1/20 0 1/20 0 537,5
a2 0 15 1/2 -1 -1/2 1 2625
Δj 0 60-15M 3-1/2M M -3+ 3/2M 0 -32250-2625M
Var. en base x1 x2 e1 e2 a1 a2 B
x1 1 0 -1/15 1/30 1/15 -1/30 450
x2 0 1 1/30 -1/15 -1/30 1/15 175
Δj 0 0 1 4 M-1 M-4 -42750
III-Dualité
1-Notion de dual
Une variable duale est une variable que l’on associe à une contrainte.
b-Problème dual
max bT y
s.c AT y c
y0
mn
n variables, m contraintes, m<n, c n
, b, y m
, A .
3-Règle de construction
Exemple :
5-Conclusions à tirer
Soit le primal avec n variables principales ( x1 , x2 , x3 ,..., xn ) et m contraintes donc m
variables d’écart ( e1 , e2 , e3 ,..., em ) .
max(ou min) Z = C1 x1 + C2 x2 + ... + Cn xn
a11 x1 + a12 x2 + ... + a1n xn ( ou ) b1
a21 x1 + a22 x2 + ... + a2 n xn ( ou ) b2
......................................................
a x + a x + ... + a x ou b
m1 1 m 2 2 mn n ( ) m
x1 0, x2 0,....., xn 0,
min Z = min
i =1, j =1
cij xij
20 y1 + 10 y2 + d1 = 60
10 y1 + 20 y2 + d 2 = 90
y1 , y2 , d1 , d 2 0
Var. en base y1 y2 d1 d2 B
d1 20 10 1 0 60
d2 10 20 0 1 90
Δj 10750 8000 0 0 0
Première itération :
Var. en base y1 y2 d1 d2 B
y1 1 1/2 1/20 0 3
d2 0 15 -1/2 1 60
Δj 0 2625 -537,5 0 -32250
Deuxième itération :
Var. en base y1 y2 d1 d2 B
y1 1 0 1/15 -1/30 1
y2 0 1 -1/30 1/15 4
Δj 0 0 -450 -175 -42750
Solution : y1=1 ; y2=4 ; d1=0 ; d2=0 ; z=42750.
y1=1≠0 → 20 x1 + 10 x2 = 10750 (1)
y2=4≠0 → 10 x1 + 20 x2 = 8000 (2)
Les contraintes sont saturées. La résolution du système donne : x1=450 ; x2=175.
I-Définition et exemple
1-Définition
– Un produit doit être transporté de sources (usines) vers des destinations (dépôts,
clients).
– Objectif : déterminer la quantité envoyée de chaque source à chaque destination en
minimisant les coûts de transport. Les coûts sont proportionnels aux quantités
transportées.
– Contraintes d’offre limitée aux sources et de demande à satisfaire aux destinations.
Destinations Offre/Disponibilité
Demande bj
m n
ai = bi
i i
Exemple
– Soit une série de communes de la ville d’Abidjan (Yopougon, Abobo, Adjamé, Cocody)
alimentées en électricité par trois centrales.
– Les capacités des deux centrales sont de 46 et 54 respectivement, et les demandes des
quatre communes sont de 24, 26, 30 et 20 GWh.
– La matrice des coûts de cheminement par GWh est :
Yopougon Abobo Adjamé Cocody
Centrale1 3 4 9 2
Centrale2 6 5 8 8
Modélisation du problème :
xij = nombre de GWh produits à la centrale i et envoyé à la commune j.
cij =coût d’acheminement d’1GWh de la centrale i à la commune j.
Coût total Z= 3x11 + 4 x12 + 9 x13 + 2 x14 + 6 x21 + 5 x22 + 8 x23 + 8 x24
Fonction objectif :
min Z = min cij xij
i =1, j =1
Contraintes de production:
x11 + x12 + x13 + x14 46
x21 + x22 + x23 + x24 54
Contraintes de consommation:
x11 + x21 24
x12 + x22 26
x13 + x23 30
x14 + x24 20
Etape 2 : Test d’optimalité de la solution à travers les coûts marginaux des liaisons non
utilisées.
Etape 3 : Si les coûts marginaux des liaisons non utilisées sont tous positifs, alors la
solution est optimale. Dans le cas contraire, c'est-à-dire si un des coûts marginaux des
liaisons non utilisées est négatif, alors on procède à une amélioration de la fonction
économique.
Algorithme de Stepping-Stone
L’algorithme de Stepping-Stone repose sur la détermination d’une solution de base
initiale que l’on améliore progressivement de façon itérative par intégration de variable
hors-base et élimination corrélative de variable de base.
Déroulement de l’algorithme :
On choisira la case qui permet la plus grande baisse du coût global de transport.
Pour la déterminer, on calculera :
a) les potentiels associés aux origines et aux destinations
b) les variations de coût unitaire pour chaque case vide (β)
c) les quantités maximales qu’on peut ajouter à chaque case vide (Q)
2-Test d’optimalité
Condition d’optimalité : Tous les coûts marginaux associés aux cases vides doivent être
tous positifs.
Coût(SBI)=3х24+4х22+5х4+8х30+8х20=580
3 Yopougon
Centrale1
Centrale2 5 Abobo
8
8
Adjamé
Cocody
b-Détermination des potentiels des sommets
b-1-Procédure
-Affecter 0 comme potentiel, à l’origine de la liaison la plus coûteuse
-Déduire le potentiel des autres sommets par ajout ou déduction des coûts selon le sens
de parcours de l’arbre.
b-2-Application
V(Centrale2)=0 ;
V(Cocody)=8 ;
V(Adjamé)=8 ;
V(Abobo)= 5 ;
V(Centrale1)= V(Abobo)-4=1 ;
V(Yopougon)= V(Centrale1)+3=4 ;
Deuxième itération :
-On construit le graphe ;
-On détermine le potentiel de chaque sommet :
V(Centrale2)=0 ;
V(Abobo)=5 ;
V(Adjamé)=8 ;
V(Centrale1)= V(Abobo)-4=5-4=1 ;
V(Yopougon)= V(Centrale1)+3=1+3=4 ;
V(Cocody)= V(Centrale1)+2=1+2=3.
-On détermine les coûts marginaux des cases vides :
β13=V(Centrale1)+c12-V(Adjamé)=1+4-5=0 ;
β21=V(Centrale2)+c21-V(Yopougon)=0+6-4=2 ;
β24=V(Centrale2)+c24-V(Cocody)=0+8-3=5.
Conclusion : La solution est optimale car tous les βij≥0.
Coût=480.
III-Problèmes d’affectation
1-Présentation
Les problèmes d’affectation sont des cas spéciaux du problème de transport où la
demande associée à chaque destination est égale à 1. Il existe une méthode, “la méthode
hongroise” qui simplifie la résolution du problème d’affectation.
2-Algorithme hongrois
réduire M;
TANT QU'on ne peut affecter n zéros, 1 par ligne et 1 par colonne
affecter le plus possible de zéros
(au plus 1 par ligne et par colonne);
marquer toutes les lignes sans zéro affecté;
Applications :
L’administration de l’université de Bouaké désire procéder aux mutations de 5 membre
du personnel : Amara, Bernard, Clarisse, Dieudonné et Elise et leur offre les postes a, b, c,
d et e. Ces fonctionnaires désirant maximiser leur satisfaction décident d’effectuer
chacun un classement des postes offerts :de 1 très bien à 5 : peu souhaité.
a b c d e
Amara 1 2 3 4 5
Bernard 1 4 2 5 3
Clarisse 3 2 1 5 4
Dieudonné 1 2 3 5 4
Elise 2 1 4 3 5
Solution :
Après réduction on obtient :
0 1 2 1 2
0 3 1 2 0
2 1 0 2 1
0 1 2 2 1
1 0 3 0 2
Appliquons l’algorithme hongrois
0 1 2 1 2
0 3 1 2 0
2 1 0 2 1
0 1 2 2 1
1 0 3 0 2
0 1 2 1 2
0 3 1 2 0
2 1 0 2 1
0 1 2 2 1
1 0 3 0 2
Soit r, le plus petit nombre à colonne non marquée et ligne marquée; soustraire r de
chaque ligne marquée; ajouter r à chaque colonne marquée;
0 0 1 0 1
1 3 1 2 0
3 1 0 2 1
0 0 1 1 0
0 0 1 0 1
1 3 1 2 0
3 1 0 2 1
0 0 1 1 0
2 0 3 0 2
Indice de satisfaction : 1+3+1+2+3=10
0 0 1 0 1
1 3 1 2 0
3 1 0 2 1
0 0 1 1 0
2 0 3 0 2
Indice de satisfaction : 2+3+1+1+3=10
0 0 1 0 1
1 3 1 2 0
3 1 0 2 1
0 0 1 1 0
2 0 3 0 2
Indice de satisfaction : 4+3+1+1+1=10
Introduction
1-Equation d’Euler
Soit J, la fonctionnelle définie par, pour toute fonction x
2-Equation d’Hamilton-Jacobi
On considère le problème d’optimisation suivant :
Sous contrainte
•
NB :
BIBLIOGRAPHIE