Académique Documents
Professionnel Documents
Culture Documents
1. Programmation linéaire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.1. Formulation d’un problème de programmation linéaire . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.2. Dualité . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.3. Algorithme du simplexe (ou méthode de Dantzig) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
3. Ordonnancement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
3.1. Position du problème . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
3.2. La méthode M.P.M (Roy 1960) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
3.3. La méthode PERT (Malcolm, Roseboom, Clark et Fasar :1959) . . . . . . . . . . . . . . . . . . . 18
3.4. Conclusion et remarques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
i
Chapitre 0. Table des matières
ii
CHAPITRE 1
PROGRAMMATION LINÉAIRE
n
Optimiser Z = ∑ cj xj (1)
j=1
⎧ n
⎪
⎪
⎪ ∑ tij xj ≤≥ di , i = 1, . . . , p (2)
⎪
⎪
⎪
⎪j=1
⎪
⎪
⎪
⎪
⎪
(P) ⎪
⎪
⎪
⎪ n
⎪
⎪ ∑ tij xj = di , i = 1 + p, . . . , m
⎪ (3)
⎪
s.l.c ⎨j=1
⎪
⎪
⎪
⎪
⎪
⎪
⎪
⎪
⎪
⎪
⎪xj ≥ 0, j = 1, . . . , q (4)
⎪
⎪
⎪
⎪
⎪
⎪
⎪
⎩xj , de signe quelconque pour j = 1 + q, . . . , n
⎪
⎪ (5),
où (tij )1≤i≤m , (cj )1≤j≤n et (di )1≤i≤m sont des constantes et (xj )1≤j≤n la variable (inconnue).
1≤j≤n
La fonction Z s’appelle la fonction économique ou fonction objectif ou encore critère.
Les inéquations (2) et équations (3) sont les contraintes réelles.
Les inéquations (4) et (5) sont les contraintes de non négativité.
La fonction à optimiser peut être soit une fonction à minimiser, soit une fonction à maximiser
selon le besoin.
On présente ici les cas généraux de minimisation et maximisation avec l’interprétation écono-
mique de chaque élément du programme.
1
Chapitre 1. Programmation linéaire
Première interprétation
i bien produit
j activité
Paramètres
Deuxième interprétation
i activité
j bien consommé (matière première)
Paramètres
Exemple 1.1. Les dirigeants d’une entreprise veulent lancer une nouvelle gamme de crèmes
pour le visage. Ces crèmes seront fabriquées à partir de deux matières premières : la lanoline et
la glycérine. Pour des raisons techniques, chaque fournisseur propose un lot de deux pots indisso-
ciables : un pot de lanoline et un pot de glycérine. Les offres des fournisseurs se distinguent par
les poids respectifs des deux pots et par le prix du lot. Les livraisons auront lieu systématique-
ment au début de chaque cycle de fabrication. Chaque cycle de fabrication nécessite au moins
120 g de lanoline et au moins 90 g de glycérine. Trois fournisseurs sont pressentis pour livrer ces
matières. Voici leurs propositions :
Fournisseurs Prix du lot lanoline glycérine
A 120 F 6g 2g
B 132 F 6g 4g
C 60 F 2g 2g
2
1.1. Formulation d’un problème de programmation linéaire
L’entreprise désire déterminer le nombre de lots qu’il faut achetés à chaque fournisseurs pour
optimiser le coût d’approvisionnement. On note a, b et c, les quantités de lots achetés respec-
tivement chez les fournisseurs A, B et C. Écrire le programme linéaire (P) qui modélise ce
problème.
Première interprétation
i bien consommé
j activité
Paramètres
Deuxième interprétation
i activité
j bien produit
Paramètres
Exemple 1.2 (Société Benoît). La société Benoît décide de se diversifier dans une nouvelle
activité qui consiste à fabriquer deux produits répertoriés sous les noms de code X et Y . Elle a
résumé dans le tableau suivant les informations pour cette fabrication :
3
Chapitre 1. Programmation linéaire
Exemple 1.3. Construire dans le plan muni d’un repère orthogonal, l’ensemble des solutions
admissible du programme obtenu dans l’exemple 1.2.
Théorème 1.1. L’ensemble P des solutions admissibles d’un programme linéaire est soit :
— un polytope est une figure bornée à plusieurs côtés,
— un polyèdre convexe, non vide mais non borné,
— un ensemble vide.
Remarque 1.1. Un polyèdre convexe est l’intersection (éventuellement vide) d’un nombre fini
de demi-espaces fermés et/ou d’hyperplans. Un polyèdre convexe, borné et non vide, est appelé
un polytope.
4
1.2. Dualité
Exemple 1.4. Résoudre graphiquement le programme linéaire obtenu dans l’exemple 1.2.
1.2. Dualité
A chaque contrainte, on peut associer un nombre appelé « prix dual » défini comme l’accroisse-
ment marginal de la fonction économique lorsque le second membre de la contrainte considérée
varie d’une unité. A l’optimum, la solution du programme et les prix duaux vérifient alors un
5
Chapitre 1. Programmation linéaire
ensemble de relations, les relations de complémentarité, qui constituent des conditions néces-
saires et suffisantes d’optimalité. Ces conditions généralisent les conditions de Lagrange et sont
un cas particulier des conditions de Karush Kuhn et Tücker qui interviennent en programmation
non linéaire. D’un point de vue économique, les prix duaux permettent de localiser les modes
d’extension les plus profitables.
Définition 1.3. Le prix dual associé à la contrainte i est la variation de la fonction économique
pour une variation unitaire du second membre de la contrainte i
Remarque 1.3.
• Bien qu’on utilise le plus souvent en situation d’optimalité, la notion de prix duaux est
relative à un sommet quelconque, pas forcément optimal.
• Lorsqu’on effectue des variations sur le second membre des contraintes, les coordonnées du
sommet varient (ce qui conduit à une variation de la fonction économique), mais ce sont
les mêmes variables qui composent ce sommet. La structure de production et d’utilisation
des facteurs reste constante et donnée.
m
Minimiser Z ′ = ∑ di yi
i=1
⎧ m
⎪
(Dmin ) ⎪
⎪
⎪
⎪
∑ tji yi ≥ cj , j = 1, . . . , n
⎪i=1
s.l.c ⎨
⎪
⎪
⎪
⎪
⎪
⎩yi ≥ 0,
⎪ i = 1, . . . , m
Exemple 1.5 (Camp vacance). Un groupe d’étudiants organisent un voyage de vacance en car
pour le Ghana. Il y a 425 étudiants et 9500kg de bagages à transporter.
1) La compagnie Alpha propose trois types de cars en location. Les caractéristiques unitaires
sont résumées dans le tableau suivant :
7
Chapitre 1. Programmation linéaire
des variables hors bases de manière à pouvoir définir la variable entrante et la variable
sortante.
On impose un coefficient de 1 sur les variables de base. L’expression de la fonction économique
en fonction des variables hors base permet de voir si, par rapport au niveau actuel de la fonction
économique, l’introduction d’une variable hors base améliore ce résultat. On en déduit logique-
ment le test d’arrêt de l’algorithme : lorsque aucune variable hors base ne peut augmenter la
valeur actuelle de notre fonction économique, alors on a obtenu la solution optimale.
Remarque 1.8.
1) Le tableau du simplexe est optimal dès l’or que tous les coefficients de la fonction économique
sont inférieurs ou égaux à zéro (∆j ≤ 0).
2) On modifiera alors toujours en priorité la ligne de la fonction économique.
10
1.3. Algorithme du simplexe (ou méthode de Dantzig)
11
CHAPITRE 2
NOTIONS SUR LES GRAPHES
2.1. Introduction
Les graphes permettent de formaliser un certain nombre de problèmes qui se pose en recherche
opérationnelle. Citons parmi ceux-ci :
— les problèmes de circulation (ou problèmes de flot) : transport d’une production de diffé-
rentes usines vers différents lieux de distribution.
— représentation de contraintes de succession que doivent respecter certaines opérations de
production (problèmes d’ordonnancement).
— choix entre plusieurs actions (choix d’investissement) comparés en fonction de plusieurs
critères.
Proposition 2.1. On note sur la ligne de i le numéro des lignes dans lesquelles i apparaissait
comme suivant et on obtient le dictionnaire des précédents et vice versa.
Remarque 2.4. En remplaçant max par min dans 2) b) on obtient le plus court chemin du
sommet i au sommet j.
Remarque 2.5. Il existe d’autres algorithmes de recherche de plus court ou plus long chemin
dans un graphe. Par exemple l’ algorithme de Moore – Dijstra (1959 – 1960) permet de calculer
le plus court chemin d’un sommet initial à tous les autres sommets. Il donne l’arborescence des
plus courts chemins. Des variantes de cet algorithme ont été proposées par Dantzig (1960) et par
Whiting – Hillier (1960).
16
CHAPITRE 3
ORDONNANCEMENT
17
Chapitre 3. Ordonnancement
3.2.2. Le calendrier
Le travail commence toujours à la date 0. On cherche un ordonnancement qui minimise la durée
totale du projet c’est–à–dire la date fin des travaux. Pour qu’une tâche débute, il est nécessaire
que toutes les tâches qui la relient à la tâche début du projet soient réalisées.
Définition 3.1 (date de début au plus tôt).
La date au plus tôt ti de début de la tâche i est la longueur du plus long chemin de α à i.
La procédure de calcul des ti est donc :
a) On pose tα = 0.
b) Prendre les sommets i par rang croissant et faire :ti = max{tj + dj ∶ j ∈ P (i)}.
Conséquence :
la durée minimale du projet est donc tω égale à la longueur du plus long chemin de α à ω.
Définition 3.2 (date de début au plus tard Ti ).
On fixe à tω la durée du projet. La date au plus tard Ti pour commencer la tâche i est la longueur
du plus long chemin de i à ω.
La procédure de calcul des Ti est la suivante :
a) On pose Tω = tω
b) prendre les sommets i par rang décroissant et faire :
Ti = min{Tj − di ∶ j ∈ S(i)} = min{Tj ∶ j ∈ S(i)} − di .
Définition 3.3 (marge totale).
La marge totale 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, donc sans retarder la fin des
travaux. Pour une tâche i donnée, cette marge totale est : mi = Ti − ti .
Définition 3.4 (marge libre).
La marge libre est le retard maximum que l’on peut prendre dans la mise en route d’une tâche
sans remettre en cause les dates de début au plus tôt d’aucune autre tâche. Pour une tâche i
donnée, cette marge libre est : Mi = min{tj − ti − di ∶ j ∈ S(i)}.
- chaque sommet du graphe est un évènement (ou étape) signifiant que toutes les tâches qui
arrivent sont terminées et toutes celles qui partent peuvent commencer.
Exemple 3.1. Représenter les contraintes d’antériorité suivantes et commenter. Les tâches a et
b sont précédentes des tâches c et d
18
3.3. La méthode PERT (Malcolm, Roseboom, Clark et Fasar :1959)
3.3.2. Le calendrier
On note α (ou 1) l’étape début du projet et ω (ou n) l’étape fin du projet.
Définition 3.5 (date de début au plus tôt).
Pour chaque étape x on définit sa date de début au plus tôt tx égal à la longueur du plus long
chemin de α à x. tx est appelé aussi la date attendue de l’évènement x. La date de début au plus
tôt de chaque étape x est égale à la date de début au plus tôt de toutes les tâches qui partent
de x.
di
i,
tx = ti = tj
j , dj
x
tx
t∗y
i , di
y Ti = t∗y − di
i , di
x y
tx ty
19
Chapitre 3. Ordonnancement
Temps
A
Tâches
1 bij − aij 2
(3.1) tij = (aij + bij + mij ) et 2
σij =( ) .
6 6
20
3.4. Conclusion et remarques
Et à chaque tâche pij on affecte cette durée moyenne tij . Puis le long du chemin critique on
obtient la durée moyenne du projet :
(3.2) Dm = ∑ tij = ∑ tij .
pij ∈C pij ∈C
21