Vous êtes sur la page 1sur 63

République de Côte d’Ivoire

Union - Discipline - Travail


Ministère de l’Enseignement Supérieur
et de la Recherche Scientifique

Université Jean Lorougnon Guedé

Support de cours :

RECHERCHE OPERATIONNELLE

Licence 3 Sciences de Gestion/Economie


Année Universitaire 2022-2023

DIABATE Nabongo
(Enseignant-chercheur)
(Maître de Conférences en Mathématiques)
Cell : 07 07 58 71 59/01 03 11 21 44
Email : nabongo_diabate@yahoo.fr
Université Alassane Ouattara de Bouaké
U.F.R SED
01 BP V 18 BOUAKE 01
www.uao.edu.ci
Avertissement

Le présent support de cours comprend :

-un exposé relatif à l’essentiel des applications classiques en RO

-des exercices relatifs à chaque méthode étudiée.

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.
UFR DE SCIENCES ÉCONOMIQUES
ET DÉVELOPPEMENT
UFR-SED

Année universitaire : 2022–2023

SYLLABUS DU COURS
*INTITULE DU COURS : Recherche Opérationnelle
Type : CM et TD (barrez la mention inutile)
Volume horaire : 24H cours 12H TD………………………………………………
UE de rattachement : Recherche opérationnelle et logiciels………………………….
UP de rattachement : Outils d’aide à la décision…………………………………………….
Niveau du cours : Licence 3 ……………………………………………………...
Département : Economie / Gestion……………………………………………………….
Semestre : S5……………………………………………………………………………………
Nombre de crédit : 3………………………………………………………………………….
Nom de l’enseignant : Dr Diabaté Nabongo (Maître de Conférences)…………………
Contact téléphonique : 07587159/03112144………………………………………………..
Email : nabongo_diabate@yahoo.fr..................................................................................
Statut : Enseignant à l’Université × Professionnel 

*L’objectif général du cours


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. Autrement dit, Il s’agit de présenter
quelques outils mathématiques d’aide à la décision pour la gestion et l’économie.

*Les objectifs spécifiques


Au terme de ce cours, l'étudiant devra pouvoir :

- reconnaître des structures courantes de problèmes;

- formuler les modèles mathématiques pour ces types de problèmes;

- comprendre avec suffisamment de profondeur les propriétés des modèles ainsi formulés;

-utiliser les algorithmes adaptés pour la résolution;


-interpréter la solution obtenue;

-communiquer et expliquer les résultats de l’étude afin de faciliter l’implantation du modèle et


l’adoption de la solution dans un environnement réel.

*Les compétences transmises à l’issue du cours


A l’issue du cours, l’étudiant devra posséder :

-les aptitudes nécessaires pour aborder les grands secteurs socio-technico économiques de
notre société (tels que le transport, l’énergie, la production, les télécommunications etc.) ;

-une démarche scientifique qui cherche à éclairer les questions que se pose un intervenant
dans un processus de décision, en faisant usage d’outils et de méthodes d’optimisation.

Compétences scientifiques et techniques :

-améliorer les décisions ;

-maitriser les problèmes de références ;

-évaluer, organiser et conduire un projet.

Compétences sociales et humaines :

-travailler en équipe à la réalisation d’un projet ;

-évoluer dans des contextes disciplinaires et organisationnels variés ;

-communiquer et s’exprimer, esprit d’analyse et de créativité ;

-s’adapter à des environnements et modes de travail variés ;

-être réactif et proactif.

*Le contenu
Partie 1 : Théorie des graphes

Chapitre 1 : Rappels sur les ensembles

I-Définitions

II-Opérations sur les ensembles

III-Application d’un ensemble dans un autre

Chapitre 2 : Notions fondamentales de la théorie des graphes

I-Définitions

II-Vocabulaire des graphes

Chapitre 3 : Représentation des graphes

I-Représentation par un schéma

II-Représentation par une liste exhaustive

III-Représentation par un tableau a simple entrée


IV-Représentation par une matrice

Chapitre 4 : Coloration des sommets d’un graphe

I-Définitions

II-Exemples d’application

III-Etude de l’algorithme de Welsh et Powell

IV-Application

Partie 2 : Optimisation de réseaux

Chapitre 5 : Problèmes de cheminement

Introduction

I-Etude de l’algorithme de Dijkstra-Moore

II- Etude de l’algorithme de Ford

III- Application

Chapitre 6 : Problèmes de l’arbre couvrant de poids minimum

I- Définitions

II- Etude de l’algorithme de Kruskal

III- Application

Chapitre 7 : Problèmes du flot maximum

I- Définitions

II- Etude de l’algorithme de Ford-Fulkerson

III- Application

Partie 3 : Techniques de planification et problèmes de transport

Chapitre 8 : Les bases de la planification

I-Pourquoi planifier ?

II-Le cycle de planification

III-Les étapes de la planification

Chapitre 9 : Techniques d’ordonnancement

Introduction

I- Diagramme de Gantt

II- La méthode PERT (Program Evaluation and Research Task)

III- La Méthode des Potentiels Metra (MPM)

Chapitre 10 : Problèmes de transport


I- Définitions

II- Problèmes de transport

III- Problèmes d’affection

Partie 4 : Programmation linéaire et dynamique

Chapitre 11 : Programmation linéaire

I- Généralités

II- Résolution graphique

III- Résolution algébrique

IV- Dualité

Chapitre 12 : Programmation dynamique

Introduction

I- Principe d’optimalité de Bellman

II- Programmation dynamique en horizon limité

III- Application

*Programme du cours
N° de Séance Contenu Lectures/travaux
Séance 1
Théorie des graphes Chapitre 1 à 4
Date :
Séance 2
Optimisation de réseaux Chapitre 5 à 7
Date :
Techniques de
Séance 3
planification Chapitre 8 à 9
Date :
Séance 4
Problèmes de transport Chapitre 10
Date :
Séance 5 Programmation linéaire et
Chapitre 11 à 12
Date : dynamique

Langue d’enseignement : le français……………………………………………………….

Modalités d’évaluation

Evaluation continue :
Devoirs sur table (TD) 30%
Examen final en fin de semestre 70%
1ère session : si possible à la fin du cours

Session de rattrapage (2ème session)

*Bibliographie indicative
C. Berge, Graphes et hypergraphes, Dunod, 1970.

J. A. Bondy, U.S.R. Murty, Graph theory with applications, North-Holland, 1979

G. B. Dantzig M. N. Thapa, Linear programming, Pringer, 1997.

G. Desbaseille, Exercices et problèmes de recherche opérationnelle, Dunod, 1982.

H. A. Eiselt, H. V. Frajer, Operations Research Handbook: Standard algorithms and

methods with examples, Walter de Gruyter and Co, Berlin, 1997.

R. Favre, B. Lemaire, C. Picouleau, Précis de recherche opérationnelle, 5eme

édition, Dunod, 2000.

M. Gondran, M. Minoux, Graphes et algorithmes, Eyrolles, 1979.

M. Kamien, N. Schwartz, Dynamic optimization, North-Holland, 1981.

J. Labelle, Théorie des graphes, édition Modulo, Quebec, 2008.

J. L. Lauriere, Elements de programmation dynamique, Masson, 1982.

Y. Nobert, R. Ouellet, R. Parent, La recherche opérationnelle, Gaëtan Morin, 1995.

B. Roy, Algèbre moderne et théorie des graphes, Dunod, 1967.

M. Sakarovitch, Optimisation combinatoire et programmation linéaire, Hermann,

Enseignement des sciences, 1982.

J. P. Vedrine, Techniques quantitatives de gestion, Vuibert, Paris, 1985


Avertissement

Présentation de la recherche opérationnelle

Syllabus

Chapitre 1 : Rappels sur les ensembles-------------------------------------------------------------------------------1

Chapitre 2 : Notions fondamentales de la théorie des graphes-----------------------------------------------3

Chapitre 3 : Représentation des graphes----------------------------------------------------------------------------10

Chapitre 4 : Problèmes de cheminement----------------------------------------------------------------------------13

Chapitre 5 : Problèmes de l’arbre couvrant de poids minimum----------------------------------------------17

Chapitre 6 : Coloration des sommets d’un graphe---------------------------------------------------------------19

Chapitre 7 : Problèmes du flot maximum----------------------------------------------------------------------------21

Chapitre 8 : Techniques d’ordonnancement-----------------------------------------------------------------------23

Chapitre 9 : Programmation linéaire----------------------------------------------------------------------------------30

Chapitre 10 : Problèmes de transport---------------------------------------------------------------------------------45

Chapitre 11 : Programmation dynamique---------------------------------------------------------------------------51

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.

II-Opération sur les ensembles


1-Union
Soient deux(2) ensembles A et B. A union B noté A  B est l’ensemble des éléments
appartenant à A ou à B.
x  A  B  x  A ou x  B
2-Intersection
Soient deux(2) ensembles A et B. A inter B noté A  B est l’ensemble des éléments
appartenant à la fois à A et à B.
x  A  B  x  A et x  B
3-Différence
Soient deux(2) ensembles A et B. A moins B noté A  B est l’ensemble des éléments
appartenant à A et qui n’appartiennent pas à B.
x  A  B  x  A et x  B

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 .

III-Application d’un ensemble dans un autre


1-Notion d’application
Une application ou transformation f d’un ensemble E dans un ensemble E’ associe à
chaque élément x de E, un élément y de E’. f(x) est l’image ou la transformée de x par f.
L’ensemble des applications de X  A est noté F(X,A).

1
Support de cours de Recherche Opérationnelle
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  IdE ( 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 .

2
Support de cours de Recherche Opérationnelle
CHAPITRE 2 : NOTIONS FONDAMENTALES DE LA THEORIE DES GRAPHES

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 ,..., Sn 
-A représente l’ensemble des arcs ou arêtes, A   A1 , A2 ,..., Am 

2-Les types de graphes


On distingue deux(2) types de graphes :
-les graphes orientés
-graphes non orientés

a-Les graphes orientés


Soit G=(S,A) un graphe. Le graphe G est dit orienté si S représente l’ensemble des
sommets et A l’ensemble des arcs. Un arc est un couple de sommets, donc, un élément du
produit cartésien SxS; on note A la famille des arcs.
Exemple d’arc:
A B

Extrémité initiale Extrémité terminale

3
Support de cours de Recherche Opérationnelle
Exemple de graphe orienté :

a c

Graphe orienté à 4 sommets et 5 arcs.

a-Les graphes non orientés


Soit G=(S,A) un graphe. Le graphe G est dit non orienté si S représente l’ensemble des
sommets et A l’ensemble des arêtes. Une arête est un couple de sommets, donc, un
élément du produit cartésien SxS; on note A la famille des arêtes.
Exemple d’arête :
A B

Exemple de graphe non orienté :

a c

Graphe non orienté à 4 sommets et 5 arêtes.

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é
Deux sommets x et y sont adjacents si il existe l'arête (x,y) dans A. Les sommets x et y
sont alors dits voisins. Une arête est incidente à un sommet x si x est l'une de ses
extrémités.

4
Support de cours de Recherche Opérationnelle
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.

NB : Le voisinage d’un sommet est constitué par l’ensemble de ses voisins.

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

d(a)=3; d(b)=2; d(c)=3; d(d)=2.

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

dG(a)= dG+(a)+dG-(a)=3+0=3; dG(b)=dG+(b)+dG-(b)=1+1=2; dG(c)= dG+(c)+dG-(c)=0+3=3;


dG(d)= dG+(d)+dG-(d)=1+1=2;

4-Graphe simple
Un graphe simple est un graphe sans boucle tel qu'entre deux sommets différents, il y
ait au plus un arc.

5
Support de cours de Recherche Opérationnelle
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
On appelle chaîne hamiltonnienne une chaîne passant par tous les sommets du
graphe une fois et une seule.
e-Cycle
On appelle cycle une chaîne simple qui boucle : les arcs de début et de fin sont
adjacents par leur sommet libre.

6
Support de cours de Recherche Opérationnelle
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'es t à 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

7
Support de cours de Recherche Opérationnelle
a-Graphe connexe
Un graphe G d'ordre n connexe comporte au moins n-1 arêtes.

b-Existence d’un cycle


Si dans un graphe G tout sommet est de degré supérieur ou égal à 2, alors G possède au
moins un cycle.

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.

17-Caractérisation d’un arbre


Pour un graphe G=(S,A) d’ordre n, il y a équivalence entre les propriétés suivantes :
(1) G est un arbre
(2) G est un graphe connexe avec n-1 arêtes
(3) G est connexe et la suppression de toute arête le déconnecte
(4) G est acyclique avec n-1 arêtes
(5) G est acyclique et l’ajout de toute arête le rend cyclique

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)

(2)→ (3) : La suppression d'une arête de G donne un graphe à n-2 arêtes : il ne peut être
connexe (cf propriété des graphes connexes).

(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.

8
Support de cours de Recherche Opérationnelle
(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).

(5)→ (1) : Considérons 2 sommets x et y de G. Si il existe l'arête (x,y), alors c'est un


chemin de x à y. Sinon ajoutons cette arête à G : nous créons alors un cycle, de la forme
(x, a,..., z, y, x). Ceci montre l'existence du chemin (x,a,..., z, y) entre x et y dans G. Par
définition G est donc un graphe connexe.

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.

 La hauteur h(G) de l'arbre G est la longueur du plus long chemin de la racine à


une feuille.

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

La somme F ( x)   F ( y, x) est le flot entrant au sommet x.


La somme F ( x)   F ( x, y) est le flot sortant du sommet x.


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
capacité résiduelle d'un chemin est la plus petite capacité résiduelle de ses arcs. Saturer
un chemin p de s à t consiste à augmenter le flot de ses arcs de la capacité résiduelle du
chemin.

9
Support de cours de Recherche Opérationnelle

CHAPITRE 3 : REPRESENTATION DES GRAPHES

I-Représentation par un schéma : représentation sagittale


Chaque sommet est représenté par un point et chaque arc ou arête par une ligne
orienté ou non.
Exemple :
c
b
a

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)  .

III-Représentation par un tableau à simple entrée : le dictionnaire


Considérons le graphe ci-dessous :

c
e

f a
1-Le dictionnaire des suivants
A chaque sommet Si  S , on écrit la liste des sommets qui sont l’extrémité terminale
d’un arc dont Si  S est l’extrémité initiale.

10
Support de cours de Recherche Opérationnelle

Si  S Suivant de Si  S
a b
b e,f
c b
d c
e d
f e,b

2-Le dictionnaire des précédents


A chaque sommet Si  S , on écrit la liste des sommets qui sont l’extrémité initiale d’un
arc dont Si  S est l’extrémité terminale.
Si  S Précédent de Si  S
a -
b a,c,f
c d
d e
e f,b
f b

IV-Représentation par une matrice : tableau à deux entrées


Considérons le graphe ci-dessous :

c
e

f a

1-Matrice littérale
Par convention, les lignes représentent les extrémités initiales et les colonnes les
extrémités terminales.

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)

11
Support de cours de Recherche Opérationnelle

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

V-Matrice d’incidence nœud-arc


Soit G=(S,A) un graphe orienté représenté par une matrice nxm(n=lSl et m=lAl) dite
d’incidence pouvant contenir les valeurs 0, 1 et -1. Chaque ligne de la matrice est
associée à un nœud et chaque colonne à un arc.
0 signifie que le nœud et l’arc ne sont pas adjacents.
1 signifie que le nœud est l’extrémité initiale de l’arc.
-1 signifie que le nœud est l’extrémité terminale de l’arc.
Exemple :
d
a 2 4

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

12
Support de cours de Recherche Opérationnelle
CHAPITRE 4 : LES PROBLEMES DE CHEMINEMENT

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-Etude de l’algorithme de Dijkstra-Moore


1-Présentation de l’algorithme
Présentant de grands avantages de rapidités, l’algorithme de Dijkstra-Moore ne permet
que la recherche de chemin de longueur minimal et pour des graphes pondérés par des
poids positifs.
Considérons le graphe ci-dessous :

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).

Algorithme de Dijkstra-Moore
L’algorithme de Dijkstra-Moore se décompose en quatre(4) phases :
Phase 1 : Mise en place
-On désigne par Σ l’ensemble dans lequel on met les sommets au fur et à mesure de leur
marquage définitif ;
-A chaque sommet Si  S , on associe le couple (dist(Si),p(Si)) où dist(Si) désigne la
distance provisoire de I à Si et p(Si) le prédécesseur de Si.
Phase 2 : Initialisation
-Attribuer au sommet I, le couple (0,I) ;
-Attribuer à chaque sommet adjacent à I le couple (poids de l’arc le reliant à I,I) ;
-Attribuer aux autres sommets le couple (+∞, ?).

13
Support de cours de Recherche Opérationnelle
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

La distance de I à F est 23 et le chemin est [I,A,B,D,E,L,P,F].

II-Etude de l’algorithme de Ford


1-Définitions
a-Niveau
Soit G=(S,A) un graphe orienté sans circuits et I un sommet choisit comme sommet
initial. On appelle niveau du sommet Si ( Si  S ), le nombre d’arcs maximum de tous les
chemins reliant I à Si. Le niveau de I est 0.

b-Graphe ordonnancé
Un graphe dont les sommets ont été classés par niveau est appelé graphe
ordonnancé. On dit aussi qu’on a partagé le graphe en niveaux.

2-Présentation de l’algorithme de Ford


L’algorithme de Ford se décompose en trois(3) phases qui sont :

Phase 1 :
Affecter le poids 0 au sommet de niveau 0 ;

Phase 2 :

14
Support de cours de Recherche Opérationnelle
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

15
Support de cours de Recherche Opérationnelle

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].

16
Support de cours de Recherche Opérationnelle
CHAPITRE 5 : PROBLEMES D’ARBRES COUVRANTS DE POIDS MINIMAUX

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.

3-Arbre maximal de poids minimum


Soit G=(S,A) un graphe non orienté avec un poids associé à chacune de ses arêtes.
Trouver dans G=(S,A) un arbre maximal G1=(S,F1) de poids total minimum. Autrement
dit le problème de l'arbre couvrant de poids minimum consiste à trouver un arbre
couvrant dont la somme des poids c(e) des arêtes est minimum.

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.

Il existe 2 algorithmes célèbres pour résoudre le problème de l'arbre couvrant de poids


minimum :
 L’algorithme de Prim ;
 L’algorithme de Kruskal.
Dans le présent chapitre, nous nous intéresserons à l’étude de l’algorithme de Kruskal.

II-Etude de l’algorithme de Kruskal


Données : Graphe G=(S,A) (n=lSl et m=lAl) et pour chaque arête de A son poids c(e).
Résultat : Arbre ou forêt maximal G1=(S,F1) de poids minimum. Trier et numéroter les
arêtes de G dans l’ordre croissant de leur pois : c(e1), …,c(em).
Poser F  , k  0
Tant que k<m et lF1l<n-1 Faire
Si ek+1 ne forme pas un cycle avec F1 Alors
F  F  ek 1

k  k 1
Fin Si
Fin Tant que

17
Support de cours de Recherche Opérationnelle

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

Solution : F1={DJ,BH,GH,AG,JE,CD,CI,HI,FI} , coût= 38

18
Support de cours de Recherche Opérationnelle

CHAPITRE 6 : COLORATION DE GRAPHE

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
Construisons le graphe G dont les sommets sont les épreuves numérotées de 1 à 7, une
arête relie deux de ses sommets lorsque les deux cours correspondant possèdent des
étudiants communs :

Planifier les examens en un temps minimal consiste à déterminer une k colorations de G;


avec k = γ(G).
G possède un sous-graphe complet d’ordre 4 (de sommets 1,2,3,4), donc γ(G)  4:
Déterminons une partition des sommets de G en sous-ensembles stables :

19
Support de cours de Recherche Opérationnelle
S1={1,6} ; S2={2} ; S3={3,5} ; S4={4,7} ; d’où γ(G)  4, enfin γ(G)=4.
Interprétation:
Les examens peuvent être répartis en 4 périodes, de la manière suivante :
 Première e période, épreuves des cours 1 et 6 ;
 Deuxième période, épreuve du cours 2 ;
 Troisième période, épreuves des cours 3 et 5 ;
 Quatrième période, épreuves des cours 4 et 7.

III-Etude de l’algorithme de Welsh & Powell


Cet algorithme se décompose en neuf(9) étapes :
Etape 1 : Repérer le degré de chaque sommet ;
Etape 2 : Ranger les sommets par ordre de degré décroissant ;
Etape 3 : Attribuer au premier sommet A de la liste une couleur ;
Etape 4 : Suivre la liste en attribuant la même couleur au premier sommet B qui ne soit
pas adjacent à A ;
Etape 5 : Suivre la liste si possible jusqu’au prochain sommet C qui ne soit adjacent ni à
A ni à B ;
Etape 6 : Continuer jusqu'à ce que la liste soit finie ;
Etape 7 : Prendre une deuxième couleur pour le premier sommet D non encore colorié
de la liste ;
Etape 8 : Répéter les étapes 4 à 6 ;
Etape 9 : Continuer jusqu’avoir colorié tous les sommets.

III-Application
Colorier les sommets du graphe ci-dessous :
H
B E

A C F J

I
D

20
Support de cours de Recherche Opérationnelle

CHAPITRE 7 : RECHERCHE DU FLOT MAXIMUM

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
Un flot f est complet si pour tout chemin allant de la source au puits, il y’a au moins un
arc saturé. Un arc est dit saturé lorsque le flot qui le traverse est égal à sa capacité.

II-Problème du flot maximum


Connaissant les capacités des arcs d’un réseau de transport, le problème du flot
maximum consiste à trouver quel est la quantité maximum de flot qui peut circuler de la
source au puits.

III-Etude de l’algorithme de Ford-Fulkerson


On part d’un flot complet et on l’améliore progressivement.
1-Recherche de flot complet initial
On fait passer un flot au jauge entre la source et le puits.

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é

21
Support de cours de Recherche Opérationnelle
-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

1-Recherche de flot complet initial


Chemin SACGP, on sature SA ;
Chemin SBCGP, on sature CG ;
Chemin SBDGP, on sature BD ;
Chemin SBEDGP, on sature BE ;
Chemin SEDP, on sature ED;
Chemin SEFP, on sature EF.
P(B)=S; P(C)=B; P(A)=C; P(D)=A; P(P)=D;

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.

22
Support de cours de Recherche Opérationnelle

CHAPITRE 8 : LES TECHNIQUES D’ORDONNANCEMENT

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).

Exemple : La réalisation d’un projet nécessite les tâches ci-dessous


Tâche Durée en jours Tâches antérieures
A 2
B 4
C 4 A
D 5 A, B
E 6 C,D

I-Le Diagramme de Gantt


1-Principe.
Ce type de diagramme a été mis au point par un américain Henry Gantt. On représente
au sein d’un tableau, en ligne les différentes tâches et en colonne les unités de temps
(exprimées en mois, semaines, jours, heures…)
La durée d’exécution d’une tâche est matérialisée par un trait au sein du diagramme.

2-Réalisation.
Les différentes étapes de réalisation d’un diagramme de Gantt son les suivantes :

23
Support de cours de Recherche Opérationnelle
-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
critique car tout retard pris sur l’une des tâches de ce chemin, entraîne du
retard dans l’achèvement du projet. (Chemin critique : B, D, E).
 Durée de réalisation du projet : 15jours

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.

II-La Méthode des potentiels métra (MPM)


Cette méthode fondée sur la théorie des graphes, a été développée par une équipe de
chercheurs français (Equipe du Professeur Roy dont les premières applications ont
concerné l’implantation d’une centrale nucléaire en France).

24
Support de cours de Recherche Opérationnelle

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.

2-Résolution de notre exemple


Le graphe MPM est ordonnancé selon le niveau des tâches.
-Détermination du niveau des tâches :
Niveau 1 2 3
Tâches A, B C, D E
-Détermination des dates au plus tôt des tâches :
TX  max TY  v(Y , X ) , le maximum étant pris sur les précédents Y de X.
TA  TDebut  v(Debut, A)  0  0  0
TB  TDebut  v(Debut, B)  0  0  0
TC  TA  v( A, C)  0  2  2
TD  max TA  v( A, D); TB  v( B, D)  max 0  2;0  4  4
TE  max TC  v(C , E ); TD  v( D, E )  max 2  4; 4  5  9
TFin  TE  v(E, Fin)  9  6  15

- Détermination des dates au plus tard des tâches :


Il s’agit de la date au plus tard à laquelle peut commencer une tâche sans remettre en
cause la date de fin des travaux. Ceci sera obtenu en commençant par les sommets de
niveau les plus élevés jusqu’aux sommets de niveau les plus faibles.
TZ  TZ , pour le sommet terminal.
TX  min TY  v( X , Y )  , le minimum étant pris sur les suivants Y de X.
NB : Sur les tâches critiques TX  TX

TFin  TFin  15
TE  TFin

 v( E, Fin)  15  6  9
TD  TE  v( D, E)  9  5  4
TC  TE  v(C, E)  9  4  5

25
Support de cours de Recherche Opérationnelle
TB  TD  v( B, D)  4  4  0
TA  min TC  v( A, C ); TD  v( A, D)  min 5  2;4  2  2

TDebut  min TA  v( Debut , A); TB  v( Debut , B)  min 2  0;0  0  0

-Détermination des marges totales


C’est le retard maximum que l’on peut prendre dans la mise en route d’une tâche sans
remettre en cause les dates au plus tard des tâches suivantes.
mt ( X )  TX  TX
mt ( A)  TA  TA  2  0  2
mt ( B)  TB  TB  0  0  0
mt (C)  TC  TC  5  2  3
mt ( D)  TD  TD  4  4  0
mt ( E)  TE  TE  9  9  0

-Détermination des marges libres


C’est le retard maximum que l’on peut prendre dans la mise en route d’une tâche sans
remettre en cause les dates au plus tôt des tâches suivantes.
ml ( X )  min TY  TX  v( X , Y ) , le minimum étant pris sur les suivants Y de X.
ml ( A)  min TC  TA  v( A, C ); TD  TA  v( A, D)  min 2  0  2; 4  0  2  0
ml (B)  TD  TB  v(B, D)  4  0  4  0
ml (C)  TE  TC  v(C, E)  9  2  4  3
ml (D)  TE  TD  v(D, E)  9  4  5  0
ml (E)  TFin  TE  v(E, Fin)  15  9  6  0

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

26
Support de cours de Recherche Opérationnelle

III-Méthode P.E.R.T (Program Evaluation and Research Task)


1-Principe et réalisation
Dans un graphe PERT :
 Chaque tâche est représentée par un arc, auquel on associe un chiffre entre
parenthèses qui représente la durée de la tâche.
 Entre les arcs figurent des cercles appelées « sommets » ou « événement » qui
marquent l’aboutissement d’une ou plusieurs tâches. Ces cercles sont numérotés
afin de suivre l’ordre de succession des divers évènements. Ces sommets
représentent les étapes.
 le graphe doit avoir une seule entrée
 le graphe doit avoir une seule sortie
 Le graphe est ordonnancé selon le niveau des étapes

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 K

 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.

27
Support de cours de Recherche Opérationnelle

2-Résolution de notre exemple

Date au
Date au plus plus tard
tôt
2 4
2

A(2) C(4) E(6)


15 15
9 9 5
4
X(0)
0 0
1

B(4) D(5)
4 4
3

-Calendrier au plus tôt des étapes


tn  max tm  v(m, n) , le maximum étant pris sur les précédents m de n.
t1  0
t2  t1  v(1,2)  0  2  2
t3  t1  v(1,3)  0  4  4
t4  max t2  v(2, 4); t3  v(3, 4)  max 2  4; 4  5  9
t5  t4  v(4,5)  9  6  15
-Calendrier au plus tôt des tâches
La date de début au plus tôt d’une tâche X est égale à la date de début au plus tôt de
l’étape dont elle est issue.
TX  tn , si la tâche X est issue de l’étape n.
Tâche X Sommet n dont est issue X TX
A 1 0
B 1 0
C 2 2
D 3 4
E 4 9
-Calendrier au plus tard des étapes
Il s’agit de la date au plus tard à laquelle peut commencer une étape sans remettre en
cause la date de fin des travaux. Ceci sera obtenu en commençant par les sommets de
niveau les plus élevés jusqu’aux sommets de niveau les faibles.
t z  t z , pour le sommet terminal ou final.
tn  min tm  v(n, m)  , le minimum étant pris sur les suivants m de n.

28
Support de cours de Recherche Opérationnelle
t5  t5  15 , pour le sommet terminal
t4  t5  v(4,5)  15  6  9
t3  t4  v(3, 4)  9  5  4
t2  min t4  v(2, 4); t3  v(2,3)  min 9  4;4  0  4
t1  min t3  v(1,3); t2  v(1, 2)  min 4  4;4  2  0
-Calendrier au plus tard des tâches
La date de début au plus tard d’une tâche X est égale à la date de début au plus tard de
l’étape à laquelle elle aboutit, diminuée de la durée de ka tâche.
TX  tm  v(n, m) , si la tâche X va du sommet n au sommet m.
NB : Sur les tâches critiques, TX  TX .
Tâche X Sommet m ou aboutit X TX
A 2 2
B 3 0
C 4 5
D 4 4
E 5 9
 
TA  t2  v(1, 2)  4  2  2
TB  t3  v(1,3)  4  4  0
TC  t4  v(2, 4)  9  4  5
TD  t4  v(3, 4)  9  5  4
TE  t5  v(4,5)  15  6  9
-Détermination des marges totales
C’est le retard maximum que l’on peut prendre dans la mise en route d’une tâche sans
remettre en cause les dates au plus tard des tâches suivantes.
mt ( X )  TX  TX
mt ( A)  TA  TA  2  0  2
mt ( B)  TB  TB  0  0  0
mt (C)  TC  TC  5  2  3
mt ( D)  TD  TD  4  4  0
mt ( E)  TE  TE  9  9  0
-Détermination des marges libres
C’est le retard maximum que l’on peut prendre dans la mise en route d’une tâche sans
remettre en cause les dates au plus tôt des tâches suivantes.
ml ( X )  tm  tn  v(n, m) , si la tâche X va du sommet n au sommet m.
ml ( A)  t2  t1  v(1,2)  2  0  2  0
ml (B)  t3  t1  v(1,3)  4  0  4  0
ml (C)  t4  t2  v(2,4)  9  2  4  3
ml (D)  t4  t3  v(3,4)  9  4  5  0
ml (E)  t5  t4  v(4,5)  15  9  6  0

29
Support de cours de Recherche Opérationnelle

CHAPITRE 9 : PROGRAMMATION LINEAIRE

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
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,

c-Représentation matricielle
max(ou min)cT x
s.c. Ax  (ou )b
x0
mn
n variables, m contraintes, c, x  n , b m
, A .

3-Les étapes de la mise sous forme canonique


Les étapes de la mise sous forme canonique sont les suivantes :
-Choix des variables du problème
-Définition de l’objectif économique et sa fonction mathématique
-Définition mathématique des contraintes
-Définition de la forme canonique

4-Exemple de mise sous forme canonique


Optimisation de l’usage de ressources limitées dans les domaines militaire, industriel,
agricole, économique, ...

30
Support de cours de Recherche Opérationnelle
Une société produit de la peinture d’intérieur et d’extérieur à partir de deux produits
de base M1 et M2.

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

-Définition de l’objectif économique et sa fonction mathématique


max Z  5x1  4x2
-Définition mathématique des contraintes

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  5x1  4 x2
6 x1  4 x2  24
x  2x  6
 1 2

 x2  2
x  x  1
 2 1
 x1  0, x2  0

5–Méthodes pour trouver l’optimum


Il existe plusieurs méthodes pour trouver l’optimum d’un problème de programmation
linéaire. On a :
– Méthode graphique
– Méthode du Simplexe
– Dualité

II-Méthode graphique
La résolution graphique est possible uniquement dans le cas de deux variables.

31
Support de cours de Recherche Opérationnelle
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 ai1x1  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.

1-Les étapes de la résolution graphique


Les étapes sont les suivantes :
-Détermination des droites limites
-Représentation des droites limites
-Détermination de la zone d’acceptabilité
-Recherche de la solution optimale
-Interprétation des résultats

2-Résolution graphique de notre exemple :


max z  5x1  4x2
s.c 6x1  4x2  24 (1)
x1  2x2  6 (2)
x2  2 (3)
x2  x1  1 (4)
x1  0 (5)
x2  0 (6)
Représentation graphique :

32
Support de cours de Recherche Opérationnelle

Géométrie des solutions :

Ensemble des solutions admissibles :


Polyèdre (ABCDEF)
Courbes de niveaux de l’objectif :
Ensemble de solutions ayant un profit (valeur de l’objectif) donné : intersection entre
une droite et le polyèdre.
Amélioration de la solution :
Recherche d’une direction dans laquelle le profit z augmente.
Résolution graphique :

Recherche de la solution optimale :


– La droite mobile doit garder une intersection avec l’ensemble des solutions
admissibles.
– Solution optimale : x1 = 3 ; x2 = 1,5 (E)
– La solution optimale est un sommet du polyèdre.
– Cette observation est la base de l’algorithme du simplexe.

II- Méthode algébrique ou du simplexe


La méthode algébrique est possible si et seulement le problème est sous la forme
standard.
1-Forme standard
a-Définition

33
Support de cours de Recherche Opérationnelle
Un programme linéaire est sous forme standard lorsque toutes ses contraintes sont
des égalités et toutes ses variables sont non-négatives.

b-Mise sous forme standard


La mise sous forme standard se fait par l’utilisation de variables d’écart. La variable d’écart mesure la
différence entre les deux membres de l’inéquation. Son rôle est de transformer les inéquations en
équations.

Règles des variables d’écart

Règle 1 : relative aux contraintes


-Si l’inégalité est de la forme «  », la variable d’écart s’ajoute : ai1x1  ai 2 x2  ....  ain xn  ei  bi
-Si l’inégalité est de la forme «  », la variable d’écart se soustrait :
ai1x1  ai 2 x2  ....  ain xn  ei  bi

Règle 2 : relative à la fonction économique


Les variables d’écart ont des coefficients nuls dans la fonction économique pour annuler leurs
effets sur le résultat. max  ou min  Z  C1 x1  C2 x2  ....  Cn xn  0e1  0e2  ...  0em

c-Exemple
Déterminons la forme standard de notre exemple :
Forme canonique :
max Z  5x1  4 x2
6 x1  4 x2  24
x  2x  6
 1 2

 2x  2
x  x  1
 2 1
 x1  0, x2  0
Forme standard :
max Z  5x1  4 x2  0e1  0e2  0e3  0e4
6 x1  4 x2  e1  24
 x  2x  e  6
 1 2 2

 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
x0

34
Support de cours de Recherche Opérationnelle
 
5  x 1 
 4  
   x2   6 4 1 0 0 0  24 
0  s1   1 2 0 1 0 0  6
c    , x   , A   , b 
 
0  2
s  0 1 0 0 1 0  2
0 s     
 1 1 0 0 0 1  1
   3

 
0  s4 

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.

Théorème 2 : Tout point x d’un polyèdre convexe borné   n


est une combinaison
linéaire convexe de points extrêmes de Ω.

3-Méthode du simplexe
a-Idées de base
– Solution optimale : sommet (point extrême).
– Idée fondamentale du simplexe : déplacement de sommet en sommet adjacent de
manière à améliorer la fonction objectif.
– Transformation des inégalités en égalités : forme standard du programme linéaire -
système de m équations à n inconnues (m < n).
– Identification algébrique des sommets : correspondance avec les bases d’un système
d’équations.

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é.

35
Support de cours de Recherche Opérationnelle
-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.

Deuxième critère de Dantzig (choix de la variable de sortie)


On effectue les rapports des seconds membres des contraintes aux coefficients
correspondants de la variable entrante. La variable sortante correspond au plus petit
rapport positif.
NB : La ligne de la variable sortante correspond à la ligne 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.

Construction du nouveau tableau


 En déduire le nombre pivot. Le pivot est le nombre, intersection entre la colonne
pivot et la ligne pivot ;
Construire un nouveau tableau à partir de ce nombre pivot :
 Les nouveaux éléments remplaçant ceux de la ligne pivot de la première matrice
sont obtenues en divisant les éléments de cette ligne pivot par le nombre pivot ;
Le nombre se substituant dans la deuxième matrice au nombre pivot de la
première matrice est obligatoirement 1.
 Les nouveaux éléments remplaçant ceux de la colonne pivot de la première
matrice sont nuls à l’exception du nombre pivot remplacé par 1 ;
 Les éléments sur les autres lignes et dans les autres colonnes se déduisent des
éléments correspondants de la première matrice par la transformation suivante :
élément-le rapport[(le nombre intersection entre la ligne de l’élément et la
colonne pivot multiplier par le nombre intersection entre la colonne de l’élément
et la ligne pivot)/nombre pivot].

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.

e-Conseils pratiques pour la recherche d’un maximum


1-Transformer les inéquations en équations par l’adjonction de variables d’écart.
2-Dresser le premier tableau, en considérant les variables d’écart comme variables de
base :
 Déterminer la colonne pivot, celle ou se trouve le coefficient positif le plus élevé
dans la fonction économique Z, et la variable entrante ;
 Diviser chaque élément de la colonne contenant les seconds membres des
contraintes l’élément correspondant-sur la même ligne-de la colonne pivot ;
Inutile d’effectuer la division si l’élément de la colonne pivot (diviseur) est 0 ou
un nombre négatif, car le plus petit rapport positif indique la ligne pivot et la
variable sortante (on ne tient pas compte des quotients négatifs).

36
Support de cours de Recherche Opérationnelle
 En déduire le nombre pivot ;
3-Construire un deuxième tableau à partir de ce nombre pivot :
 Les nouveaux éléments remplaçant ceux de la ligne pivot de la première matrice
sont obtenues en divisant les éléments de cette ligne pivot par le nombre pivot ;
Le nombre se substituant dans la deuxième matrice au nombre pivot de la
première matrice est obligatoirement 1.
 Les nouveaux éléments remplaçant ceux de la colonne pivot de la première
matrice sont nuls à l’exception du nombre pivot remplacé par 1 ;
 Les éléments sur les autres lignes et dans les autres colonnes se déduisent des
éléments correspondants de la première matrice par la transformation suivante :
élément-le rapport[(le nombre intersection entre la ligne de l’élément et la
colonne pivot multiplier par le nombre intersection entre la colonne de l’élément
et la ligne pivot)/nombre pivot].

Résolution par la méthode du simplexe de notre exemple :


Var. en base x1 x2 e1 e2 e3 e4 B
e1 6 4 1 0 0 0 24
e2 1 2 0 1 0 0 6
e3 0 1 0 0 1 0 2
e4 -1 1 0 0 0 1 1
Δj 5 4 0 0 0 0 0
Première itération
Var. en base x1 x2 e1 e2 e3 e4 B
x1 1 2/3 1/6 0 0 0 4
e2 0 4/3 -1/6 1 0 0 2
e3 0 1 0 0 1 0 2
e4 0 5/3 1/6 0 0 1 5
Δj 0 2/3 -5/6 0 0 0 -20
Deuxième itération
Var. en base x1 x2 e1 e2 e3 e4 B
x1 1 0 1/4 -1/2 0 0 3
x2 0 1 -1/8 3/4 0 0 3/2
e3 0 0 1/8 -3/4 1 0 1/2
e4 0 0 3/8 -5/4 0 1 5/2
Δj 0 0 -3/4 -1/2 0 0 -21
Solution : x1=3 ; x2=3/2 ; z=21.
Disponible en contrainte 3 :2-3/2= 1/2(ligne e3)
Disponible en contrainte 4 :1-3/2+3= 5/2(ligne e4)

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 !

37
Support de cours de Recherche Opérationnelle
Exemple :
max z  3x1  9x2
s.c x1  4x2  8
x1  2x2  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
e2 1/2 0 -1/2 1 0
Δj 3/4 0 -9/4 0 -18

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

f-2-Solutions optimales multiples


– Si la fonction objectif est parallèle à une contrainte active pour la solution optimale, la
même valeur de l’objectif peut être prise par plusieurs solutions admissibles.
– Il y a une infinité de solutions optimales dans ce cas (toutes les combinaisons convexes
de sommets optimaux).
– Cela se traduit par un profit marginal nul pour une ou plusieurs variables hors base.
Exemple :
max z  2x1  4x2
s.c x1  2x2  5
x1  x2  4
x1, x2  0

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

38
Support de cours de Recherche Opérationnelle
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  2x1  x2
s.c x1  x2  1
2x1  4
x1, x2  0

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.

39
Support de cours de Recherche Opérationnelle
Exemple :
max z  3x1  2x2
2x1  x2  2
3x1  4x2  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
min Z  60 x1  90 x2  0e1  0e2
20 x1  10 x2  e1  10750

10 x1  20 x2  e2  8000
 x  0, x  0, e  0, e  0
 1 2 1 2

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.

a-3-Forme standard équivalente


Pour les contraintes:
-La mise sous forme standard équivalente d’une contrainte avec le signe «  », la variable
d’écart se soustrait et la variable artificielle s’ajoute. Alors
ai1x1  ai 2 x2  ....  ain xn  bi donne ai1x1  ai 2 x2  ....  ain xn  ei  ai  bi
Pour la fonction économique:
La variable artificielle aura :
-dans le cas d’une minimisation, un coefficient très grand positif +M  M   
-dans le cas d’une maximisation, un coefficient très grand négatif -M   M   
Exemple:
min Z  (60  30M ) x1  (90  30M ) x2  Me1  Me2  18750M
20 x1  10 x2  e1  a1  10750

10 x1  20 x2  e2  a2  8000
 x  0, x  0, e  0, e  0
 1 2 1 2

40
Support de cours de Recherche Opérationnelle
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

Solution : x1=450 ; x2=175 ; e1=0 ; e2=0.


Remarque :
Premier cas
Si le second membre d’une contrainte de type ≤ est négatif, il faut multiplier les deux
membres de l’inégalité par -1 et changer le signe de l’inégalité.
Exemple : 3x1+2x2≤-12, on obtient -3x1-2x2≥12.
Deuxième cas
Si une contrainte est de type ≥, le second membre étant positif, le fait d’introduire une
variable d’écart ne permet pas de prendre l’origine comme base de départ.
Exemple : x1+ 3x2≥68, x1+ 3x2-e1=68, cela ne résoud pas le problème, on introduit une
variable artificielle a1 affectée du coefficient +1. On obtient x1+ 3x2-e1+ a1=68. Pour que
la fonction économique ne change pas de valeur, il faut que la variable artificielle n’influe
pas sur la valeur optimum de la fonction économique. La variable artificielle intervient
dans l’optimum avec une valeur nulle, si nous l’affectons dans la fonction économique à
maximiser d’un cout négatif très élevé, noté –M.
Troisième cas
Si une contrainte est définie par une égalité, nous utiliserons une variable artificielle a1
d’un coût négatif très élevé, noté –M dans la fonction économique (-Ma1) sans
l’introduction d’une variable d’écart.
Exemple : x1+ 2x2=50, on obtient x1+ 2x2+ a1=50.

III-Dualité
1-Notion de dual
Une variable duale est une variable que l’on associe à une contrainte.

2-Problème primal et problème dual


a- Problème primal
min cT x
s.c. Ax  b
x0
mn
n variables, m contraintes, m<n, c, x  n , b m
, A .

41
Support de cours de Recherche Opérationnelle

b-Problème dual
max bT y
s.c AT y  c
y0
mn
n variables, m contraintes, m<n, c  n
, b, y  m
, A .

3-Règle de construction

Problème max Problème min


Contrainte Variable
≤ ≥0
= Non restreinte
Variable Contrainte
≥0 ≥
Non restreinte =
a-Fonction économique
-comporte m variables duales  y1 , y2 , y3 ,..., ym 
-les coefficients correspondent aux seconds membres du primal  b1 , b2 , b3 ,..., bm 
-qui est à maximiser si le primal est à minimiser, ou à minimiser si le primal est à
maximiser.

b-Des contraintes associées aux variables du primal


-les coefficients sont ceux du primal pris en colonne
-les seconds membres sont les coefficients de la fonction économique du primal
-les signes sont de sens opposés à ceux du primal. Exemple : ≤ devient ≥.

Exemple :

Problème primal Problème dual


min z  60x1  90x2 max z '  10750 y1  8000 y2
20x1 10x2  10750 (y1) 20 y1 10 y2  60
10x1  20x2  8000 (y2) 10 y1  20 y2  90

4-Propriétés fondamentales de ces deux programmes


1-La fonction économique du problème primal à la même valeur optimale que la
fonction économique du problème dual.
2-Si, pour une solution optimale d’un programme linéaire, une contrainte n’est pas
saturée, alors la valeur optimale de la variable duale correspondante est nulle. Par
contre, si la valeur optimale d’une variable d’un programme linéaire est nulle, la
contrainte duale correspondante n’est pas forcement non saturée pour la solution
optimale du duale.
3-Si la valeur optimale d’une variable d’un programme linéaire n’est pas nulle, alors la
contrainte duale correspondante est saturée pour la solution optimale.

42
Support de cours de Recherche Opérationnelle
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,

Le dual aura m variables principales  y1 , y2 , y3 ,..., ym  et n contraintes donc n variables


d’écart  d1 , d 2 , d3 ,..., d n 

min(ou max)Z '  b1 y1  b2 y2  ...  bm ym


a11 y1  a12 y2  ...  a1m ym   ou   C1

a21 y1  a22 y2  ...  a2 m ym   ou   C2

......................................................
a y  a y  ...  a y  ou  C
 1n 1 2 n 2 mn m   n
 y1  0, y2  0,....., yn  0,

-les taux marginaux de substitution  i  des variables principales du primal
correspondent en valeur absolue, aux valeurs des variables d’écarts du dual et
inversement.  x1  d1 ,  x2  d2 ,...,  xn  dn , et  y1  e1 ,  y2  e2 ,...,  ym  em .
 
-les taux marginaux de substitution  j des variables d’écart du primal correspondent
en valeur absolue, aux valeurs des variables principales du dual et inversement.
e1  y1 , e2  y2 ,..., en  ym , et d1  x1 , d2  x2 ,...,  dn  xn .

6-Recherche d’un minimum


Considérons le problème suivant :
min z  60x1  90x2
20x1 10x2  10750
10x1  20x2  8000
x1, x2  0

min Z  min cx


i 1, j 1
ij ij

43
Support de cours de Recherche Opérationnelle

Déterminons son dual :


x1 x2 Max
y1 20 10 10750
y2 10 20 8000
Min 60 90
On obtient :
max z '  10750 y1  8000 y2
20 y1 10 y2  60
10 y1  20 y2  90
y1, y2  0
On introduit des variables d’écart : d1, d2
max z '  10750 y1  8000 y2  0d1  0d2
20 y1 10 y2  d1  60
10 y1  20 y2  d2  90
y1, y2 , d1, d2  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 → 20x1 10x2  10750 (1)
y2=4≠0 → 10x1  20x2  8000 (2)
Les contraintes sont saturées. La résolution du système donne : x1=450 ; x2=175.

44
Support de cours de Recherche Opérationnelle

CHAPITRE 10 : PROBLEMES DE TRANSPORT

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é
Sources cij aj

Demande bj

m n

 a  b
i
i
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  4x12  9x13  2x14  6x21  5x22  8x23  8x24
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

II-Résolution du problème de transport


La résolution se déroule en trois étapes :

45
Support de cours de Recherche Opérationnelle
Etape 1 : Recherche d’une solution de base initiale ou admissible.

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.

1-Recherche d’une solution de base initiale ou admissible.


Il existe plusieurs méthodes pour trouver une solution de base admissible. Dans le
présent chapitre, nous nous intéresseront aux méthodes suivantes :
- Méthode du Coin Nord-Ouest
- Méthode des moindres coûts

a- Méthode du Coin Nord-Ouest


Partir du coin supérieur gauche du tableau.
1. allouer le plus possible à la cellule courante et ajuster l’offre et la demande ;
2. se déplacer d’une cellule vers la droite (demande nulle) ou le bas (offre nulle) ;
3. répéter jusqu’au moment où toute l’offre est allouée.

Yopougon Abobo Adjamé Cocody Disponibilté


Centrale1 24 22 46-24-22=0
Centrale2 4 30 20 54-4-30-20=0
Demande 24-24=0 26-26=0 30-30=0 20-20=0
Coût(SBI)=3х24+4х22+5х4+8х30+8х20=580

b-Méthode des Moindres coûts


Sélectionner la cellule de coût minimum.
1. allouer le plus possible à la cellule courante et ajuster l’offre et la demande ;
2. sélectionner la cellule de coût minimum ayant une demande et une offre non nulles ;
3. répéter jusqu’au moment où toute l’offre est allouée.

Yopougon Abobo Adjamé Cocody Disponibilité


Centrale1 24 2 20 2-2=0
Centrale2 24 30 30-30=0
Demande 0 24-24=0 30-30=0 0
Coût(SBI)=3х24+4х2+5х24+8х30+2х20=480

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 (β)

46
Support de cours de Recherche Opérationnelle
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.

Considérons la solution obtenue avec la méthode du coin nord-ouest

Yopougon Abobo Adjamé Cocody Disponibilté


Centrale1 24 22 46-24-22=0
Centrale2 4 30 20 54-4-30-20=0
Demande 24-24=0 26-26=0 30-30=0 20-20=0

Coût(SBI)=3х24+4х22+5х4+8х30+8х20=580

a-Détermination de l’arbre associé à la solution de base initiale

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 ;

c-Détermination des coûts marginaux


Le coût marginal de la liaison (Ai,Bj) s’obtient par la formule :

47
Support de cours de Recherche Opérationnelle
ij  V ( Ai )  cij  V ( B j ) où
V ( Ai ) : Potentiel du sommet Ai ;
cij : Coût unitaire de transport d’une unité de i à j ;
V ( B j ) : Potentiel du sommet Bj.
β13=V(Centrale1)+c13-V(Adjamé)=1+9-8=2 ;
β14=V(Centrale1)+c14-V(Cocody)=1+2-8=-5 ;
β21=V(Centrale2)+c21-V(Yopougon)=0+6-4=2 ;
Conclusion : La solution n’est pas optimale. Il faut donc l’améliorer.

d-Amélioration de la solution
Première itération :
-Déterminons une chaine de transfert compatible
La méthode utilisée est l’algorithme de Stepping-Stone.

Yopougon Abobo Adjamé Cocody Disponibilté


Centrale1 24 22- + 46
Centrale2 4+ 30 20- 54
Demande 24 26 30 20
La chaîne de transfert est :(Centrale1,Cocody), (Centrale1,Abobo), (Centrale2,Abobo) ,
(Centrale2,Cocody).
Vérification : +c14-c12+c22-c24=-5= β14.
Min{20,22}=20.
Yopougon Abobo Adjamé Cocody Disponibilté
Centrale1 24 2 20 46
Centrale2 24 30 54
Demande 24 26 30 20
Coût=580-5х20=480
Coût=3х24+4х2+5х24+8х30+2х20=480

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

48
Support de cours de Recherche Opérationnelle
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é;
TANT QU'on peut marquer quelque chose
marquer les colonnes ayant un zéro non affecté dans une ligne marquée;
marquer les lignes ayant un zéro affecté dans une colonne marquée
FIN TANT QUE;
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;
réduire M
FIN TANT QUE

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

49
Support de cours de Recherche Opérationnelle
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
2 0 3 0 2
On a les affectations suivantes :

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

50
Support de cours de Recherche Opérationnelle

CHAPITRE 11 : INTRODUCTION A LA PROGRAMMATION DYNAMIQUE

Introduction

La programmation dynamique est une méthode algorithmique pour résoudre les


problèmes d’optimisation. Le concept a été introduit dans les années 1950 par Richard
Bellman. Le terme programmation signifiait : planification et ordonnancement. La
programmation dynamique s’applique avec succès lorsque le problème d’optimisation
est composé de plusieurs sous-problèmes de même nature, et qu’une solution optimale
du problème global s’obtient à partir de solutions optimales des sous-problèmes.

I-Principe d’optimalité de Bellman


Toute solution d’optimalité s’appuie elle-même sur des sous problèmes résolus
localement de façon optimale.

NB : La difficulté essentielle d’emploi de la programmation dynamique est de


reconnaitre qu’un problème donné peut s’écrire sous une forme séquentielle et que la
relation de récurrence traduisant le principe d’optimalité s’applique.
Il existe :
1-la programmation dynamique en temps discret :
-en horizon fini
-en horizon infini
2- la programmation dynamique en temps continu

II-Les étapes de la programmation dynamique

Il existe quatre(4) étapes :


1-caracteriser la structure de la solution optimale
2-définir la valeur d’une solution optimale
3-calculer la valeur d’une solution optimale de manière ascendante
4-construire une solution optimale à partir des informations calculées.

III-Intérêt des modèles dynamiques


Les modèles dynamiques se caractérisent par l’introduction du temps comme les
grandeurs économiques (prix, taux de chômage, quantités offertes ou demandées)
évoluent dans le temps, leur prise en compte justifie l’intérêt que l’économiste porte à
ces modèles. La dynamique continue est considérée comme le cas limite de la limite de la
dynamique séquentielle.
Exemples : les modèles de croissance, les modèles de gestion de stock, d’exploitation des
ressources naturelles etc.

IV- Programmation dynamique en temps discret


La modélisation du problème aboutit à une suite récurrente dont la résolution se fait
par backward induction (rétroaction arrière).
Exemple : le problème du plus court chemin (L’algorithme de Dijkstra-Moore est un
algorithme d’optimisation séquentielle).

V- Programmation dynamique en temps continu

51
Support de cours de Recherche Opérationnelle
La programmation dynamique en temps continu conduit au calcul des variations.

1-Equation d’Euler
Soit J, la fonctionnelle définie par, pour toute fonction x

-Une condition nécessaire pour que J soit stationnaire est que l’on ait :

Cette condition est la condition nécessaire du premier ordre.


-Condition suffisante de Legendre (condition nécessaire du deuxième ordre)

Si , la courbe est localement minimale

Si , la courbe est localement maximale

2-Equation d’Hamilton-Jacobi
On considère le problème d’optimisation suivant :

Sous contrainte

L’Hamiltonien associé au problème est :

-Condition d’optimalité de Jacobi :


NB :

VI- Différence entre l’Equation d’Euler et l’Equation d’Hamilton-Jacobi


L’Equation d’Euler est une condition nécessaire d’équilibre d’un programme
d’optimisation dynamique en temps continu sans contrainte. Tandis que l’Equation
d’Hamilton-Jacobi est une condition nécessaire d’équilibre d’un programme
d’optimisation dynamique en temps continu avec contrainte.

52
Support de cours de Recherche Opérationnelle

BIBLIOGRAPHIE

C. Berge, Graphes et hypergraphes, Dunod, 1970.

J. A. Bondy, U.S.R. Murty, Graph theory with applications, North-Holland, 1979.

G. B. Dantzig M. N. Thapa, Linear programming, Pringer, 1997.

G. Desbaseille, Exercices et problèmes de recherche opérationnelle, Dunod, 1982.

H. A. Eiselt, H. V. Frajer, Operations Research Handbook: Standard algorithms and


methods with examples, Walter de Gruyter and Co, Berlin, 1997.

R. Favre, B. Lemaire, C. Picouleau, Précis de recherche opérationnelle, 5eme édition,


Dunod, 2000.

M. Gondran, M. Minoux, Graphes et algorithmes, Eyrolles, 1979.

M. Kamien, N. Schwartz, Dynamic optimization, North-Holland, 1981.

J. Labelle, Théorie des graphes, édition Modulo, Quebec, 2008.

J. L. Lauriere, Elements de programmation dynamique, Masson, 1982.

Y. Nobert, R. Ouellet, R. Parent, La recherche opérationnelle, Gaëtan Morin, 1995.

B. Roy, Algèbre moderne et théorie des graphes, Dunod, 1967.

M. Sakarovitch, Optimisation combinatoire et programmation linéaire, Hermann,


Enseignement des sciences, 1982.

J. P. Vedrine, Techniques quantitatives de gestion, Vuibert, Paris, 1985.

53

Vous aimerez peut-être aussi