Vous êtes sur la page 1sur 58

~1~

PLAN DU COURS
CHAP I : GENERALITES
1.1. Définitions
1.2. Historique de la recherche opérationnelle
1.3. Caractéristiques de la recherche opérationnelle
1.4. Objectif de la recherche opérationnelle
1.5. Domaines d’application
1.6. Types de problèmes traités
1.7. Etapes de la Recherche Opérationnelle
1.8. Outils de la Recherche Opérationnelle
1.9. Relations avec d'autres disciplines

CHAP II : THEORIE DES GRAPHES


2.1. Définition de graphe
2.2. Historique de la théorie des graphes
2.3. Illustration des quelques problèmes traites par graphe
2.4. Champ d’application des graphes
2.5. Présentation schématique du graphe
2.6. Types des graphes
2.7. Représentation des graphes
2.7.1. Matrices d'adjacence
2.7.2 matrices aux arcs
2.7.3 Représentation sagittale
2.7.4 Les dictionnaires
2.7.5. Énumération de tous les sommets
2.8. Détermination du niveau de sommet d’un graphe
2.8.1. Définition de niveau
2.8.2. Procédure de détermination de niveau de sommet d’un
graphe à partir de dictionnaires des précédents

CHAP III : PROBLEME D’ORDONNANCEMENT

3.1 Introduction
3.2 Méthodes d’ordonnancement
3.2.1 Le diagramme de Gantt
3.2.1.1 présentations
3.2.1.2 avantages du diagramme de Gantt
3.2.1.3 les étapes du diagramme de Gantt
3.2.1.4 exemples
3.2.2 La méthode PERT
3.2.2.1 définitions
3.2.2.2 étapes
3.2.2.3 exemples
3.2.3 La méthode des potentiels métra (MPM)
3.2.3.1 aperçus historiques de la méthode MPM
3.2.3.2 descriptions de la méthode MPM
~2~

3.2.3.3 avantages de la méthode MPM


3.2.3.4 étapes du graphe MPM
3.2.3.5 conditionnalités
3.2.3.6 autres techniques de résolution par la méthode MPM
3.2.3.6.1 Procédure
3.2.3.6.2 Exemple

CHAP IV: PROBLEME D’AFFECTATION OPTIMALE


4.1. Introduction
4.2. Méthode de calcul
4.2.1. Etapes de la méthode KÖNIGOISE
4.3. Exemple

CHAP V: PROGRAMMATION LINEAIRE

5.1. Introduction
5.2. Conditionnalités d’une programmation linéaire
5.3 Représentation du programme
5.4. Formulation de programme linéaire
5.5. Méthodes de calculs
5.5.1 Méthode d’algorithme de dénombrement
5.5.2 Méthode graphique
5.5.3 Méthode de simplexe
5.6. Problème dual et primal
5.6.1 Définition
5.6.2 Mécanisme de passation

BIBLOGRAPHIE
~3~

CHAP I : GENERALITES

La recherche opérationnelle (RO) intéresse l'informatique, les mathématiques


appliquées, la gestion, le management et le génie industriel. L'objet de cette discipline
est de fournir des bases rationnelles à la prise de décisions, habituellement dans un but
de contrôle ou d'optimisation (améliorer l'efficacité, diminuer les coûts, etc.).

1.1 . DEFINITIONS

La recherche opérationnelle est définie comme l'ensemble des méthodes et


techniques rationnelles orientées vers la recherche du meilleur choix dans la façon
d'opérer en vue d'aboutir au résultat visé ou au meilleur résultat possible.

Elle est un ensemble de méthodes (algorithmiques, mathématiques,


modélisation) afin de prendre des décisions optimales ou proches de l’optimum dans
des problèmes complexes, qui traitent de la maximisation d’un profit ou la
minimisation d’un coût.

La recherche opérationnelle (RO) est la discipline des mathématiques


appliquées qui traite des questions d'utilisation optimale des ressources dans l'industrie
et dans le secteur public.

La Recherche opérationnelle est aussi l’ensemble des méthodes


mathématiques et algorithmiques qui permettent de résoudre un problème donné de la
meilleure façon possible

L’Institut international sur la recherche en matière de politique alimentaire


stipule que « la recherche opérationnelle vise à étudier les processus au moyen
desquels les programmes et les interventions sont mis en œuvre au profit des
bénéficiaires souhaités.

Andrew Fisher et al. Présentent la définition suivante de la RO : « La RO est


un processus, une manière d’identifier et de résoudre les problèmes de programme.
Telle qu’elle est couramment appliquée dans le domaine de la santé, du planning
familial et d’autres programmes de développement.
1.2. HISTORIQUE DE LA RO

La recherche opérationnelle est née pendant la Seconde Guerre mondiale


partant des efforts conjugués d'éminents mathématiciens (dont von Neumann, Dantzig,
Blackett) à qui il avait été demandé de fournir des techniques d'optimisation des
ressources militaires. L’objectif était de trouver la meilleure allocation des ressources
militaires limitées à travers l’usage de techniques quantitatives.

Au début du XXe siècle, l'étude de la gestion de stock peut être considérée


comme étant à l'origine de la recherche opérationnelle moderne avec la formule du lot
économique (dite formule de Wilson) proposée par Harris en 1913.
~4~

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 é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. La dénomination est
restée par la suite, même si le domaine militaire n'est plus le principal champ
d'application de cette discipline.

Après la guerre, les techniques 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.

1.3. CARACTERISTIQUES DE LA RECHERCHE OPERATIONNELLE

La recherche opérationnelle se distingue d’autres types de recherches par les


caractéristiques suivantes :

- Elle traite de problèmes spécifiques dans des programmes spécifiques, non pas
de thèmes sanitaires généraux ;
- Elle traite des problèmes qui sont sous le contrôle de directeurs, tels que les
systèmes de programmation, de formation, d’établissement de prix et de
fourniture d’informations ; Elle utilise des procédures de recueil de données
systématiques, à la fois qualitatives et quantitatives, pour accumuler des
éléments soutenant la prise de décision ;
- Elle requiert la collaboration entre les directeurs et les chercheurs en termes
d’identification du problème de recherche, de développement de la conception
de l’étude, de mise en œuvre de l’étude, d’analyse et d’interprétation des
résultats ;
- Elle réussit uniquement si les résultats de l’étude sont utilisés pour prendre des
décisions liées au programme ; la publication seule n’est pas un indicateur
valide d’une RO réussie ».

1.4. OBJECTIF DE LA RO

La recherche opérationnelle occupe une place grandissante dans l'industrie,


principalement la logistique et les transports. Pour un ingénieur souhaitant faire un
travail technique dans ces disciplines, elle est quasi-incontournable.

L’objectif global de la recherche opérationnelle est d’identifier des solutions


optimales pour renforcer les programmes et maximiser leurs efficacités. Avec comme
~5~

objectif spécifique décrite est d’évaluer la mise en œuvre et les aspects opérationnels
des programmes.

Un étudiant maîtrisant les exercices de ce cours est capable de proposer une


modélisation d'une grande part des problèmes de recherche opérationnelle rencontrés
dans l'industrie, de proposer des approches de résolution et d'en discuter les qualités
respectives.

1.5. DOMAINE D’APPLICATION

Le champ d'application de la RO s'est élargi à des domaines comme l'économie,


la finance, le marketing et la planification d'entreprise. Plus récemment, la RO a été
utilisée pour la gestion des systèmes de santé et d'éducation, pour la résolution de
problèmes environnementaux et dans d'autres domaines d'intérêt public ; pour planifier
l’utilisation et gérer la production d’énergie ; planifier des systèmes de livraison ou de
transport en commun ; organiser les services policiers ou ambulanciers ; gérer la
production, les stocks et la distribution de produits usinés ; concevoir des systèmes de
communication et des systèmes informatiques ; établir des horaires de travail, de
cours ou des calendriers sportifs ; choisir des politiques économiques et financière ;
gérer les soins de santé dans les hôpitaux.

➢ Exemples d’application

• Planifier la tournée d'un véhicule de livraison qui doit passer par des points
fixés à l'avance puis revenir à son point de départ en cherchant à minimiser la
distance parcourue est un problème typique de recherche opérationnelle. On
appelle ce problème le problème du voyageur de commerce.

• Ordonnancer les tâches sur un chantier. Pour chaque tâche T, on connaît sa


durée. De plus, on connaît les autres tâches dont T dépend directement et
combien de temps avant ou après le début de chacune d'elles T doit démarrer.
On désire minimiser la durée totale du chantier. On dit que ce problème est un
problème d'ordonnancement

1.6. TYPES DE PROBLEMES TRAITES

La recherche opérationnelle est utilisée lorsque qu’on est confronté à un


problème combinatoire, aléatoire ou concurrentiel. Sur ce, elle relève sur des
problèmes suivants :

• Comment ordonnancer les tâches d’un projet en fonction de la main d’œuvre,


tout en minimisant sa durée ?
• Comment investir ses 1000 dollars d’économie de sorte à maximiser le profit
obtenu après deux ans ?
• Trouver un (plus court) chemin entre deux villes : problème du plus court
chemin dans les graphes
~6~

• Broadcast de coût minimum dans un réseau : problème des arbres recouvrant de


poids minimum.
• Envoi d’un maximum d’information dans un réseau : problème du flot
maximum.

Exemple typique :

Fixer une politique de prix de vente, sachant que les résultats d'une telle
politique dépendent de la politique que les concurrents adopteront.

En bref, les problèmes que la R.O. peut aider à résoudre sont stratégiques (on
peut citer le choix d'investir ou pas, le choix d'une implantation, le dimensionnement
d'une flotte de véhicules ou d'un parc immobilier…) ou opérationnels (notamment
l'ordonnancement, la gestion de stock, l'affectation de moyens (humains ou matériels)
à des tâches, les prévisions de ventes…).

Les applications dans le domaine de l'informatique sont très nombreuses elles


aussi. On peut citer, entre autres, le choix de la localisation et du nombre de serveurs à
mettre en place, de la capacité de stockage, de la puissance de calcul et du débit du
réseau, le choix d'une architecture informatique (application centralisée / distribuée,
traitements en temps réel ou en différé, réseau maillé ou en étoile, etc.), et
l'ordonnancement dans les systèmes d’exploitation.

1.7. LES ETAPES DE LA RO


Elle consiste à :
- Détecter un problème ;
- Formuler le problème ;
- Elaborer un modèle (projet) ;
- Collecter les données ;
- Résoudre le modèle ;
- Prendre les décisions et l’implémentation de la solution ;
1. La détection d’un problème : Les nécessités de l’action viennent des expériences
vécues ; c’est la phase préscientifique.

2. La formulation du problème : Quel est le vrai problème à résoudre ? Quels


critères permettent de juger si le problème est résolu de façon satisfaisante ?

3. L’élaboration d’un modèle : Il s’agit de représenter les principaux aspects de la


réalité par un ensemble de formules, mathématiques le plus souvent qui mettent en jeu
les variables de décisions concernées et leurs interactions. On lance des hypothèses, on
élabore une théorie, on écrit un modèle. C’est la phase de conceptualisation, de
construction théorique ; en un mot, c’est la phase de modélisation.
~7~

4. La collecte des données : Il faut préciser les paramètres du modèle en s’appuyant


sur l’information recueillie dans l’environnement du problème à résoudre.
L’élaboration du modèle s’éclaire à la lanterne des données. Le processus peut requérir
plusieurs cycles impliquant les étapes 3, 4 et 5.

5. La résolution du modèle : C’est la phase où l’on souhaite recourir aux méthodes ou


approches appropriées déjà disponible si on a réussi à classer le problème parmi ceux
pour lesquels, on connait déjà une méthode d’approche. Sinon, il faut recourir à la
simulation ou inventer une technique de résolution.

6. La validation du modèle : On confronte les conclusions obtenues du modèle aux


opinions des personnes qui ont suffisamment d’expérience du problème traité pour
apprécier ou critiquer la pertinence de la solution proposée. Si les avis reçus sont
négatifs, on peut alors remettre en cause soit l’écriture du modèle retenu, soit la valeur
de ses paramètres, soit les critères d’appréciation de la solution. On peut aller jusqu’à
remettre en cause l’approche choisie pour résoudre le problème et partant le modèle
retenu.

7. La prise de décision et l’implémentation de la solution (la mise en œuvre) :


Comment implémenter la solution obtenue ? Doit-on s’arrêter là ? Il y a ici un retour
possible vers le modèle initial pour le modifier ou l’enrichir des observations faites
lors de la phase expérimentale. Une fois les révisions nécessaires apportées.

➢ Vue d’ensemble de la modélisation d’un problème de recherche


opérationnelle :

1. Détection
d’un problème

3. Elaboration 4. Collecte des


d’un modèle données
2. Formulation
du problème

5. Résolution
du problème

7. Prise des 6. Validation


décisions du modèle

Figure tirée de Dr Yao Silvère KONAN


~8~

1.8. OUTILS DE LA R.O

La RO concerne la théorie des probabilités ; les méthodes de Monte Carlo, les


processus stochastiques, les modèles de transport, les modèles de files d’attente, les
modèles de réseau, la théorie des jeux, la programmation linéaire et non linéaire, la
programmation dynamique, les processus décisionnels de Markov, l’analyse entrée-
sortie, la modélisation des choix, l’économétrie, la modélisation.

1.9. RELATIONS AVEC D'AUTRES DISCIPLINES

La recherche opérationnelle se situe au carrefour de différentes sciences et


technologies. Par exemple, l'analyse économique est souvent nécessaire pour définir
l'objectif à atteindre ou pour identifier les contraintes d'un problème.

Elle est aussi liée à l'ingénierie des systèmes. Par rapport à celle-ci, le champ
d'application de la recherche opérationnelle est historiquement plus axé sur les
événements incertains et l'industrie, et ses méthodes plus particulièrement
mathématiques.

La recherche opérationnelle utilise de nombreuses méthodes issues de


théories mathématiques diverses. En ce sens, une partie de la recherche opérationnelle
peut être considérée comme une branche des mathématiques appliquées. Les
mathématiques, notamment les statistiques, contribuent aussi à poser efficacement les
termes d'un problème.

La théorie des graphes sert de support à la résolution d'un vaste échantillon


de problèmes, notamment certains issus de l'algorithmique classique, tels que les
problèmes de plus court chemin, le problème du voyageur de commerce, les problèmes
d'ordonnancement de tâches, les problèmes de planning ou encore les problèmes
d'optimisation de flux.

Les progrès de l'informatique sont intimement liés à l'accroissement des


applications de la recherche opérationnelle. Une puissance de calcul importante est
nécessaire à la résolution de problèmes de grande taille.

Plusieurs méthodes de résolution de problèmes sont issues de l'intelligence


artificielle. Alors que l'approche de l'intelligence artificielle est de proposer des
méthodes de résolution génériques, la recherche opérationnelle utilise ces méthodes en
les spécialisant pour les rendre plus efficaces à résoudre des classes plus restreintes de
problèmes.
~9~

CHAP II : THEORIE DES GRAPHES

La théorie des graphes est la discipline mathématique et informatique qui


étudie les graphes, lesquels sont des modèles abstraits de dessins de réseaux reliant des
objets. Ces modèles sont constitués par la donnée de « points », appelés des sommets
(en référence aux polyèdres), et de « liens » entre ces points ; ces liens sont souvent
symétriques (les graphes sont alors dits non orientés) et sont appelés des arêtes.

Les algorithmes élaborés pour résoudre des problèmes concernant les objets
de cette théorie ont de nombreuses applications dans tous les domaines liés à la notion
de réseau (réseau social, réseau informatique, télécommunications, etc.) et dans bien
d'autres domaines (par exemple génétique) .

2.1. DEFINITION DE GRAPHE

Un graphe est un ensemble de points nommés nœuds (parfois sommets ou


cellules) reliés par des traits (segments) ou flèches nommées arêtes (ou liens ou arcs).
L'ensemble des arêtes entre nœuds forme une figure similaire à un réseau.

Les arêtes peuvent être orientées (flèches) ou non orientées (traits). Si les
arêtes sont orientées, la relation va dans un seul sens et est donc asymétrique, et le
graphe lui-même est dit orienté. Sinon, si les arêtes sont non orientées, la relation va
dans les deux sens et est symétrique, et le graphe est dit non orienté.

Le Graphe est donc composé des sommets et des arcs, des points et des
flèches ou des traits qui les relient.

2.2. HISTORIQUE DE LA THEORIE DES GRAPHES

La théorie des graphes est très probablement née en 1735 lorsque Leonhard
Euler (1707 - 1783) résout le problème des sept ponts de Königsberg (De nos jours
Kaliningrad en Russie Kaliningrad, une ville de la Russie occidentale, capitale de
l’oblast de Kaliningrad, située sur le fleuve Pregolia.). Ce problème est très simple sur
le principe mais un peu plus compliqué à démontrer, en voici l'énoncé : La vile de
Königsberg est une ville autour d'un fleuve, elle compte quatre berges et sept ponts les
reliant. Le but du jeu est de savoir s'il existe un chemin permettant d'emprunter tous les
ponts une fois et une seule et revenir au point de départ. Le problème s'appelle, de
façon plus formelle, la recherche d'un cycle eulérien dans un graphe. Euler a démontré
que ce problème n'avait pas de solution.
~ 10 ~

2.3. ILLUSTRATION DES QUELQUES PROBLEMES TRAITES PAR


GRAPHE

Exemple 1. A l'école demander aux élèves de relier 3 maisons à 3 sources


différentes d'énergie (eau, gaz et électricité) sans que les canalisations se croisent sur la
feuille de papier.

Exemple 2. Le problème archi-connu consistant à savoir si on peut tracer


ce dessin en un trait de crayon (c'est à dire sans le lever) sans repasser deux fois sur le
même trait, c'est de la Théorie des Graphes.

Certains problèmes peuvent être spécifiés par un état initial, un état final,
un certain nombre d’états intermédiaires et des règles de transition précisant comment
on peut passer d’un état à l’autre. Beaucoup de jeux et autres “casse-tête” peuvent être
modélisés ainsi.

2.4. CHAMP D’APPLICATION DES GRAPHES

Les graphes sont très utilisés dans l'informatique. On les trouve partout : les
réseaux, l'ordonnancement de processus, ... . Mais ils sont surtout utilisés pour
modéliser des problèmes plus ou moins complexes. Ainsi on pourra représenter un
réseau de chemin de fer ou un réseau routier. Et ensuite on peut se servir de cette
modélisation pour résoudre des problèmes tels que la recherche du plus court chemin
entre deux villes.

2.5. PRESENTATION SCHEMATIQUE DU GRAPHE

Un graphe est composé de sommets et d'arcs ; Un graphe G est défini de


manière formelle par un couple (S, A) où :
~ 11 ~

• S est un ensemble fini d'éléments. Chacun de ces éléments est appelé sommet
du graphe.
• A est un sous ensemble (éventuellement nul) de S x S. Chacun de ces éléments
de A est appelé arc ou arête.

L'ensemble A est donc composé de paires (x,y), x et y étant appelés les


extrémités de l'arête (ou de l'arc).

Exemple de graphe
6
2

1 5 7

3 4

Dans les ronds, nous avons donc les sommets. Ceux-ci sont reliés entre
eux par des arcs. Quelques fois les sommets sont appelés des noeuds. Ces deux
définitions sont totalement identiques.

On appellera taille du graphe, le cardinal de l'ensemble A, c'est à dire le


nombre d'arêtes du graphe.

L'ordre d'un graphe correspond au nombre de sommets contenus dans un


graphe.

L'ordre du graphe ci-dessus est de 5. L'ordre du graphe ci-dessus est de 4.

Le nombre de fois qu’un sommet est touché par une arête est le
degré de ce sommet. Si plus d’une arête relient deux sommets, ces arêtes sont dites
parallèles.
~ 12 ~

2.6. TYPES DES GRAPHES

Il convient de distinguer deux grands types de graphes : les graphes orientés


et les graphes non orientés.

1) Graphe orienté

Un graphe orienté est un graphe dont les arêtes sont orientées. Cela signifie
que les extrémités d'une arête ont un sens bien précis. On appellera alors l'arête un arc.
Les extrémités de l'arc sont alors appelés extrémité initiale et extrémité finale. Un arc
(x,y) sera donc l'arc pour lequel x est l'extrémité initiale et y l'extrémité finale.
Un graphe orienté ne permet le passage d'un sommet à un autre que dans un seul sens.

2) graphe non orienté

Il arrive parfois qu'on parle de graphe associé à un graphe orienté, ce graphe non
orienté n'est rien d'autre que le graphe orienté auquel on a remplacé les arcs par des
arêtes. . Dans un graphe non orienté les routes seront à double sens.

3) Le graphe complet et non complet

Un graphe complet est un graphe dont chaque sommet est relié directement
à tous les autres sommets. Au cas contraire il est dit non complet ou incomplet.

Graphe complet Graphe non complet


~ 13 ~

4) Chaîne - Chemin - Circuit - Cycle.

On appelle chaîne, une suite de sommets adjacents, c'est à dire une suite de
sommet reliés par des arêtes. La longueur de la chaîne est le nombre d'arêtes visitées
pour passer du premier sommet de la chaîne au dernier. On appelle chaîne simple, une
chaîne qui n'est composée que de sommets différents.

7-3-4-6-8-1 est une chaîne.

On appelle chemin une suite de sommets reliés par des arcs. C'est donc la
définition d'une chaîne pour les graphes orientés. Comme pour les chaînes, on appelle
chemin simple tout chemin qui ne passe pas deux fois par le même sommet.

Un circuit est un chemin fermé simple. On entend par chemin fermé un chemin
dont le sommet initial est aussi le sommet final. Voici par exemple un circuit :

On appelle cycle une chaîne fermée. C'est donc un circuit pour les graphes non
orientés. Il est dit élémentaire si la chaîne sur laquelle il est basé est simple (hormis le
sommet de départ et d'arrivé, cela va de soi.).

On appelle un foret un graphe qui ne possède pas de cycle.

Il existe principalement deux qualificatifs pour les chemins et les chaînes. Ces
deux qualificatifs sont eulérien et hamiltonien.

Un circuit ou une chaîne est eulérien (en référence au mathématicien suisse


Leonhard Euler) si toutes les arêtes du graphe y apparaissent une fois et une seule.

Les chemins ou les chaînes sont dit hamiltonien(ne) si tous les sommets des
graphes y apparaissent une fois et une seule.

Le problème des sept ponts de Königsberg était de trouver un circuit eulérien


dans le graphe. En effet, le but était de trouver un circuit qui passe par tous les ponts.
C'est d'ailleurs en hommage à Euler que l'on appelle ceci un circuit eulérien.

La recherche d'un cycle hamiltonien peut être utilisée dans la vie moderne
lorsque l'on veut à partir d'une carte routière passer par une liste de ville.
~ 14 ~

6) une boucle

C’est un circuit de longueur 1 Une boucle est une arête qui lie un sommet à lui-
même.

Le sommet C est une boucle

7) une arborescence

C’est un graphe orienté d’un seul tenant et sans circuit tel que pour tout couple
de sommet de ce graphe, il existe toujours un autre sommet d’origine d’un chemin
conduisant au premier sommet.

Exemple

8) un arbre

C’est un graphe non orienté d’un seul tenant et sans cycle tel que pour aller
d’un sommet à un autre, il existe toujours une chaine. Son origine est appelé centre ou
racine.

Exemple
~ 15 ~

9) Graphes valués

On appelle un graphe valué, un graphe orienté ou non, dont les arêtes


(ou les arcs) possèdent des valeurs. C'est à dire que les arêtes possèdent un
nombre qui identifie le coût de passage d'un sommet à un autre. Cette
pondération est utilisée par exemple dans la représentation d'un réseau routier
pour indiquer le temps ou la distance joignant deux villes.

Exemple

2.7. REPRESENTATION DES GRAPHES

Le graphe peut être représenté par diverses façons, notamment par :


- la matrice adjacente
- la matrice aux arcs
- la représentation sagittale
- les dictionnaires de suivants et des précédents
- l’énumération de tous les sommets

2.7.1. Matrices d'adjacence

La représentation par matrice d'adjacence consiste en l'utilisation d'une matrice


carrée ayant pour taille le nombre de sommets du graphe. Sur les lignes et les colonnes
on trouve les noms des sommets. En général, on donne des numéros aux sommets, ce
qui facilite la lecture.

Considérons la matrice M[n,n], le coefficient M(i,j) qui est le coefficient à


l'intersection de la ligne i et de la colonne 1 peut prendre deux valeurs : soit 1 soit 0.
Elle vaut 1 si l'arc (i,j) existe . C’est à dire qu'il existe un arc reliant le sommet i au
sommet j. Elle vaut alors 0 s'il n'y a pas d'arc.

Exemple de graphe et de sa matrice d'incidence associée :

0 1 0 0
0 0 1 1
0 0 0 1
0 0 0 0
~ 16 ~

On remarque aisément qu'un graphe non orienté sera représenté par une
matrice symétrique.

Si jamais on est en présence d'un graphe valué, la représentation change


quelque peu.

2.7.2 matrices aux arcs

Dans ce type de graphe, il suffit tout simplement de mettre dans le coefficient


M(i,j) la valeur de l'arc (i,j).

Exemple de graphe valué et sa matrice associée :

0 4,2 0 0
0 0 5,6 7,3
0 0 0 10,6
0 0 0 0

2.7.3 Représentation sagittale

La représentation sagittale consiste à représenter le graphe par sa forme


graphique ainsi que les liens des arcs associés

Exemple :

.d c

e b

f
~ 17 ~

2.7.4 Les Dictionnaires

On distingue deux types des dictionnaires ; dictionnaire des suivants et


dictionnaire des précédents. Considérons le graphe ci-dessus pour présenter les deux
dictionnaires.

a) Dictionnaires des suivants :


X S(X)
a b
b e,f
c b
d c
e d
f b,e

b) Dictionnaires des précédents :


X P(X)
a . -
b a,c,f
c d
d e
e b,f
f b

Note : Il y a un troisième type de dictionnaire appelé dictionnaires des voisins. Celui-


ci ne s’applique que pour les graphes non orientés.

En considérant le graphe ci-haut lorsqu’il n’a pas d’arcs, on peut ainsi les représenter
dans un dictionnaire des voisins.

2.7.5. Enumération de tous les sommets

Ceci consiste à présenter l’ensemble des couples des liens associés à ce


graphe. Considérant le graphe ci-haut, on aura :

G = { (a,b), (b,e), (b,f), (c,b), (e,d), (f,b), (f,e) }


~ 18 ~

2.8. DETERMINATION DU NIVEAU DE SOMMET D’UN GRAPHE

2.8.1. Définition de niveau

Le niveau d’un sommet i est la longueur du plus long chemin ayant pour
extrémité i.
Soit le graphe suivant :
7
2

1 5 6

3 4

Le sommet 6 a pour niveau 4, Tandisque les sommets 4 et 7 ont pour niveau 3

2.8.2. Procédure de détermination de niveau de sommet d’un graphe à partir de


dictionnaires des précédents

La procédure commence par la présentation de dictionnaire des précédents du


graphe considéré. Ensuite on calcule les 𝐂𝐢 , en commençant, bien entendu, par 𝐂𝐨 .

𝐂𝐨 est l’ensemble des sommets de niveau 0. 𝐂𝐨 est en fait l’ensemble des


sommets sans précèdent .il comprend donc les valeurs de X pour lesquelles P(X) est
vide.

Pour le cas du graphe ci-haut, 𝐂𝐨 =1 c à d que le sommet 1 n’a pas des


précédents donc il est du niveau 0.

X P(X)
1 . -
2 1
Co =1 3 1,2,3
4 3,5
5 1
6 2,3,4
7 2,3
~ 19 ~

Ensuite, on barre le sommet de niveau 0 partout où il figure dans la


colonne de P(x).Si une ligne a ainsi tous ses éléments barrés, le sommet correspondant
est de niveau 1.
X P(X)
1 . -
2 1
3 1,2,3 C1 = {2,5}
4 3,5
5 1
6 2,3,4
7 2,3

On réintègre cette procédure en augmentant de 1 la valeur de niveau


jusqu’à ce que tous les sommets soient barrés.

X P(X)
1 . -
2 1
3 1,2,3
4 3,5
5 1
6 2,3,4
7 2,3 C2 = {3. }

Et en fin on aura :

X P(X)
1 . -
2 1
3 1,2,3
4 3,5
5 1 C3 = {4,7} et C4 = {6. }
6 2,3,4
7 2,3
~ 20 ~

EXERCICE

Soit le graphe ci-après :

T.D. Déterminez le niveau de ce graphe.

Dictionnaires des Précédents Dictionnaires des suivants

x P(x) x S(x)
x1 - x1 x2 , x3
x2 x1 , x3 x2 x4
x3 x1 x3 x2 , x4
x4 x2 , x3 x4 x5 , x6
x5 x4 x5 x6
x6 x4 , x5 x6 -

Détermination du niveau :

Le niveau d'un sommet x est la longueur du plus long chemin d'extrémité x.


La détermination des niveaux se fait à partir du dictionnaire des précédents:

x P(x)
x1 -
x2 x1 , x3
x3 x1 C0 = {sommets de niveau 0}
x4 x2 , x3 = {sommets n'ayant pas de précédent}= { x1}
x5 x4
x6 x4 , x5 Tous les sommets x1 sont barrés, d'où le tableau ci-dessous
~ 21 ~

x P(x)
x1 -
x2 x1 , x3 Les sommets barrés sont considérés comme n'existant
x3 x1 plus.
x4 x2 , x3
x5 x4 C1 = {sommets de niveau 1}
x6 x4 , x5 = {sommets n'ayant pas de précédent}= { x3}

Tous les sommets x3 sont barrés, d'où le tableau ci-dessous

x P(x)
x1 -
x2 x1 , x3 Les sommets barrés sont considérés comme n'existant
x3 x1 plus.
x4 x2 , x3 C2 = {sommets de niveau 2}
x5 x4 = {sommets n'ayant pas de précédent}= { x2}
x6 x4 , x5
Tous les sommets x2 sont barrés, d'où le tableau ci-dessous

x P(x)
x1 -
x2 x1 , x3
Les sommets barrés sont considérés comme n'existant
x3 x1 plus.
x4 x2 , x3
x5 x4 C3 = {sommets de niveau 3}
x6 x4 , x5 = {sommets n'ayant pas de précédent}= { x4}

Tous les sommets x4 sont barrés, d'où le tableau ci-dessous

Les sommets barrés sont considérés comme n'existant


x P(x) plus.
x1 -
C4 = {sommets de niveau 4}
x2 x1 , x3 = {sommets n'ayant pas de précédent}= { x5}
x3 x1
x4 x2 , x3 Tous les sommets x5 sont barrés, d'où le tableau ci-dessous
~ 22 ~

x5 x4
x6 x4 , x5

x P(x)
x1 - Les sommets barrés sont considérés comme n'existant
x2 x1 , x3 plus.
x3 x1
x4 x2 , x3 C5 = {sommets de niveau 5}
x5 x4 = {sommets n'ayant pas de précédent}= { x6}
x6 x4 , x5
Tous les sommets x6 sont barrés, d'où le tableau ci-dessous

x P(x)
x1 -
x2 x1 , x3
x3 x1 Tous les sommets ayant été barrés, l'algorithme est
terminé. Les niveaux sont donc
x4 x2 , x3
C0 = { x1}
x5 x4 C1 = { x3}
x6 x4 , x5 C2 = { x2}
C3 = { x4}
C4 = { x5}
C5 = { x6}

D'où la représentation du graphe par niveaux ci-dessous :


~ 23 ~

Exercice à résoudre par les étudiants (TP)

Soit le tableau ci- après résumant l'ensemble des tâches d’un projet et
leurs antériorités.

Durées Taches
Lettre Taches
(jours) antérieures
A Avant-projet 6
B Etude de marché 2
C Etude de faisabilité 3 A
D Réalisation 5 A
E Définition de la politique publicitaire 3 A
F Estimation des couts 2 C
G Présentation des prototypes aux clients 3 D
H Détermination du prix de produit 4 B,E
I Evaluation du chiffre d'affaires 2 H
J Rapport de synthèse du lancement de la série 2 F,G,I

T.D. Tracez le graphe et calculez les niveaux.


~ 24 ~

CHAP III : PROBLEME D’ORDONNANCEMENT

3.1 INTRODUCTION

Un problème d'ordonnancement consiste à ordonner dans le temps un


ensemble de tâches contribuant à la réalisation d'un même projet. L'objectif est de
minimiser la durée de réalisation du projet compte tenu des contraintes d'antériorité
reliant les différentes tâches. De plus, on détermine les calendriers de réalisation de
chacune de ces tâches ainsi que les marges de manœuvre associées.

3.2 METHODES D’ORDONNANCEMENT

Trois méthodes sont classiquement utilisées:


- le diagramme de GANTT ou diagramme en barre
- la méthode PERT (Progamm Evaluation and Review Technic càd Technique
d’évaluation et de contrôle de Programme) aux Etats unis d’Amérique
- la méthode des Potentiels Metra (MPM) en France
Les deux dernières méthodes utilisent la représentation graphique (le graphe)
pour résoudre le problème.

3.2.1 Le diagramme de GANTT

3.2.1.1 Présentation

Le diagramme de GANTT est un diagramme de planning et de prévision ayant


pour but de mettre en évidence les durées et de permettre ainsi le contrôle à tout
moment de l’évolution du projet par comparaison des réalisations aux prévisions. Elle
est la plus ancienne des trois techniques de planification décrites dans le présent cours.
Elle porte le nom de son créateur Henry Laurence GANTT, ingénieur et consultant
américain, qui l’a mise au point en 1917.
Il se présente sous forme d’un tableau quadrié dans lequel une colonne
correspond à une unité de temps et une ligne à une tache d’opération. La tache se
matérialise par une barre horizontale dont la longueur représente la durée de la tâche.
Cette longueur de la barre est proportionnelle à la durée prévue de la tâche.
Le travail effectif ou le déroulement réel du projet se représente parfois par
des barres horizontales en pointillés juste au-dessus de celles figurant les prévisions.
Le diagramme de Gantt, couramment utilisé en gestion de projet, est l'un des
outils les plus efficaces pour représenter visuellement l'état d'avancement des
différentes activités (tâches) qui constituent un projet. La colonne de gauche du
diagramme énumère toutes les tâches à effectuer, tandis que la ligne d'en-tête
représente les unités de temps les plus adaptées au projet (jours, semaines, mois etc.).
Chaque tâche est matérialisée par une barre horizontale, dont la position et la longueur
représentent la date de début, la durée et la date de fin.
Ce diagramme permet donc de visualiser d'un seul coup d'œil :

• Les différentes tâches à envisager


~ 25 ~

• La date de début et la date de fin de chaque tâche


• La durée escomptée de chaque tâche
• Le chevauchement éventuel des tâches, et la durée de ce chevauchement
• La date de début et la date de fin du projet dans son ensemble

En résumé, un diagramme de Gantt répertorie toutes les tâches à accomplir


pour mener le projet à bien, et indique la date à laquelle ces tâches doivent être
effectuées (le planning). En plus, ce sous-programme est facilement exploitable pour
lisser la charge des différentes ressources (exploitation des marges).

3.2.1.2 AVANTAGES DU DIAGRAMME DE GANTT


Si l'outil est devenu si populaire dans le monde de la gestion de projet, ce n'est
pas pour rien : il offre en effet des nombreux avantages.

Notamment :

a) Il est adaptable à tous


Puisqu'à chaque projet sont liés des jalons, des activités, des durées et des
dates échéances, le diagramme de Gantt est utilisable pour tous les domaines d'activité.

b) Il facilite la compréhension
Représenter la complexité par des éléments visuels simples permet à tous de
mieux l'appréhender. Tout devient plus simple avec des images !

c) Il aide à planifier
Le dépassement des délais est bien souvent chose courante dans la gestion
de projets. Déterminer une durée pour chaque activité à réaliser et leur donner une date
d'échéance permet de visualiser plus facilement la durée totale du projet.

d) Il structure les pensées

Cinq, dix, trente… un projet compte parfois de nombreuses tâches à mener à


bien. Parfois même tellement que l'on ne sait pas par quel bout commercer ! Le
diagramme de Gantt aide à référencer quelles tâches sont nécessaires à accomplir et
quel ordre leur donner.

e) Il améliore l'organisation du travail

Avoir une vision complète sur la structure du projet impacte positivement


l'organisation du travail de tous les membres du projet. Le chemin critique permet
d'obtenir une meilleure approche de ce qui est à faire, de ce qui est urgent ou qui l'est
moins, des possibles retards sur la planification de base, etc…

f) Il est dynamique

Qui n'a pas été confronté un jour à un changement de planning bouleversant


par la même toute l'organisation du projet ? Qui n'a pas connu les mises à jour
fastidieuses et décalé une à une toutes les dates et échéances d'un projet ? Le
~ 26 ~

diagramme de Gantt, dynamique, recalcule automatiquement les dates et durées de


chaque tâche lorsque l'une d'entre elle est modifiée.

3.2.1.3 Les étapes du diagramme de GANTT

La création d'un diagramme de Gantt passe par plusieurs étapes


indispensables.

1ère étape : Le listing des tâches

La création d'un diagramme de Gantt commence par lister toutes les tâches
qui doivent être accomplies pour qu'il soit mené à bien. A chacune de ses tâches
peuvent être attribuées des sous-tâches, des actions liées, qui constitueront ensemble la
tâche complète. Pensez à tous les éléments, même les plus insignifiants : un oubli peut
retarder toute la réalisation du projet. Cet ensemble de tâches et sous-tâches
hiérarchisées se retrouvera listé à gauche du diagramme.

2ème étape : L'attribution des ressources et la gestion des charges

A chaque activité et sous-activité, une ou plusieurs ressources peuvent être


affectées.

3ème étape : Etalement des dates dans le temps

Une fois toutes les tâches référencées, il faut les étaler dans le temps.
Commencez alors par dater le début du projet, puis établissez un ordre d'exécution des
tâches. Leur attribuer une date de début, une durée, une fin, est primordial pour repérer
l'état d'avancement du projet et organiser son planning. Evaluez ces temps en fonction
des ressources disponibles et ne sous-estimez pas les durées de réalisation : une
estimation trop large vaut mieux qu'une estimation trop serrée ! C'est à ce moment-là
que vous visualiserez la longueur des activités sur le diagramme : les rectangles les
plus longs correspondront aux tâches les plus étendues dans le temps, et inversement.

4ème étape : La création de connexions entre les tâches

Vous devez alors créer des liens entre vos tâches afin de mieux visualiser
ces connexions qui lieront le projet, générant par la même un ensemble construit et
cohérent. Celles-ci seront matérialisées par des flèches entre chaque rectangle.

Dans le commencement d'une tâche, deux types de liaisons sont possibles :

• Une tâche ne peut pas commencer si une antérieure n'est pas terminée
• Une tâche ne peut pas commencer si une antérieure n'est pas commencée

A noter qu'une tâche peut avoir plusieurs tâches antérieures obligatoires.


Dans ce cas, il faut que ces tâches soient toutes terminées pour entamer la suivante.
Inversement, une tâche peut avoir plusieurs tâches postérieures. Dans ce cas, la fin de
cette tâche conditionne le début des autres.
~ 27 ~

On retrouve cette logique dans la fin de tâche :

• Une tâche ne peut pas se terminer si une antérieure n'est pas terminée
• Une tâche ne peut pas se terminer si une antérieure n'est pas commencée

3.2.1.4 EXEMPLE

Nom de la Durée
tache Début Fin (jours)
Tache 1 16-janv 21-janv 5
Tache 2 22-janv 23-janv 1
Tache 3 22-janv 28-janv 6
Tache 4 27-janv 29-janv 2
Tache 5 28-janv 04-févr 7
Tache 6 05-févr 09-févr 4
Tache 7 28-janv 05-févr 8
Tache 8 04-févr 06-févr 2
Tache 9 07-févr 10-févr 3
Tache 10 09-févr 12-févr 3
Tache 11 11-févr 14-févr 3
Tache 12 15-févr 17-févr 2

Diagramme de GANNT
~ 28 ~

3.2.2 La méthode PERT

3.2.2.1 Définition

La méthode Technique d’évaluation et de contrôle de Programme en anglais


(Progam Evaluation and Review Technic) en sigle PERT a pour objet essentiel la mise
en évidence des différentes liaisons qui existent entre les taches. L’outil de base est le
graphe du projet

3.2.2.2 étapes

a) Construction du graphe

- un arc correspond à une tâche


- la valeur de l'arc représente la durée de la tâche.
- un sommet est une étape signifiant
toutes les tâches qui y arrivent sont terminées
toutes les tâches qui en partent peuvent commencer

a et b doivent être terminées


pour que c et d puissent
commencer

NB : il est quelque fois nécessaire d'introduire des tâches fictives de durée nulle

a et b doivent être terminées pour


que c puisse commencer et
uniquement b doit être terminée
pour que d commence

Deux arcs ne peuvent avoir à la fois la même origine et la même extrémité. Il est
nécessaire de rajouter une tâche fictive dans ces conditions:

sera
transformé
en

- Chaque sommet est représenté par un cercle divisé et trois parties


~ 29 ~

où n = nom ou numéro de l'étape


tn = date de début au plus tôt de l'étape
t*n = date de début au plus tard de l'étape

- Un sommet terminal et un sommet initial sont rajoutés au graphe.

b) Détermination des dates au plus tôt des étapes

Une étape n ne pouvant débuter que lorsque toutes les étapes qui y
aboutissent sont terminées, tn correspond à la valeur du chemin de valeur maximale
aboutissant à n.

tn = max [tm + V(m,n)] , le max étant pris sur les précédents m de n.

Pour le sommet terminal z, tz correspond à la durée minimale du projet (qui


correspond au chemin de valeur maximale aboutissant à z). Le chemin de valeur
maximale associé est appelé chemin critique, constitué de tâches critiques: un retard
sur l'une de tâches critiques entraînerait un allongement de la durée du projet.

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

d) 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 plus faibles.

t*z = tz pour le sommet terminal


t*n = min [t*m - V(n,m)] , le min étant pris sur les suivants m de n.

e) 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 la tâche

T*x = t*m - V(n,m) , si la tâche x va du sommet n au sommet m

Pour les tâches critiques, T*x = Tx

f) Marges totales

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

mT(x) = T*x - Tx

g) 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 (donc sans
retarder la fin des travaux).

mL(x) = tm - tn - V(n,m) , si la tâche x va du sommet n au sommet m

NB: si du sommet d'arrivée m ne partent que des tâches fictives, on retiendra le


minimum sur tous les premiers sommets suivants d'où partent au moins une tâche
réelle.

3.2.2.3 EXEMPLE

Soit le tableau ci-après qui représente les différentes étapes d’exécution d’un
projet :
Durées Taches
Lettre Taches
(jours) antérieures
A Avant-projet 6
B Etude de marché 2
C Etude de faisabilité 3 A
D Réalisation 5 A
E Définition de la politique publicitaire 3 A
F Estimation des couts 2 C
G Présentation des prototypes aux clients 3 D
H Détermination du prix de produit 4 B,E
I Evaluation du chiffre d'affaires 2 H
J Rapport de synthèse du lancement de la série 2 F,G,I

Déterminer la durée minimale de la réalisation de ce projet ainsi que le


chemin critique par la méthode PERT.

1° Présentation des dictionnaires

Dictionnaires des Précédents Dictionnaires des suivants

X P(X) X S(X)
A .- A C,D,E
B .- B H
C A C F
D A D G
E A E H
F C F J
G D G J
H B,E H I
I H I J
J F,G,I J .-
~ 31 ~

2° Construction du graphe

D(5) G (3)
A(6)

C(3) F(2) J(2)

B(2) E(3) I(2)

H(4)

3° Détermination des dates au plus tôt et au plus tard et du chemin critique

D (5) G(3)

A(6) C(3)

E(3) F(2) J(2)

B(2) I (2)

H(4)

Exercice à résoudre par les étudiants (TP)

Soit le tableau ci-après qui représente les différentes étapes d’exécution d’un
projet :
~ 32 ~
Durées Taches
Lettre Taches Ressources
(jours) antérieures
A Définition Du budget 4 5
B Sélection thème, date, lieu 3 A 5
C Embauche traiteur 3 B 5
D Annonce interne 3 B 8
E Annonce presse 4 D 2
F Sélection menu 2 C 2
G Location des équipements 4 C ,E 3
H Embauche personnels 4 G 4
I Préparatifs 5 G 4
J Evènement 1 I, H, F 10

T.D. Déterminer la durée minimale de la réalisation de ce projet ainsi


que le chemin critique par la méthode PERT.

3.2.3 LA METHODE DES POTENTIELS METRA (MPM)

3.2.3.1 Aperçu historique de la méthode MPM

La méthode MPM (Méthode des Potentiels Métra) a été créée la même


année que le PERT. C’est en 1958 que le Français Bernard ROY développe l’outil et
l’applique lors dans la construction d’une centrale nucléaire.

3.2.3.2 Descriptions de la méthode MPM

Les règles de mise en œuvre de la méthode MPM sont proches de celles que
nous avons abordées précédemment pour la méthode du PERT. Nous ne reviendrons
donc pas sur ces règles.

Un graphe MPM sert à ordonnancer des tâches dans le temps en tenant


compte des contraintes entre ces tâches. Il s'applique à des projets (construction,
informatique, etc.) ou à des processus industriels (par exemple : processus de
fabrication d'une voiture).

Le graphe MPM permet de répondre aux questions suivantes :

• Combien de temps le projet/processus durera-t-il ?


• A quel moment pourrons-nous commencer une tâche particulière ?
• Si cette tâche n'est pas terminée à temps, le projet/processus tout entier sera-t-il
retardé ?
• Quelle tâche devons-nous accélérer pour terminer le projet/processus plus tôt ?

On établit le graphe à partir d'un tableau contenant :


~ 33 ~

• La liste des tâches à réaliser.


• La durée des tâches.
• Les contraintes d'antériorité.

Sa représentation est un cadre identifié par le nom de la tâche. Les dates au plus tôt
et au plus tard son inscrites dans la partie supérieure.
A : Nom de la tâche
4 : Début au plus tôt
9 : Début au plus tard

Les contraintes de succession sont représentées par une flèche qui part de la
tâche antécédente et se dirige vers la suivante. La durée de la contrainte correspond à
la durée de sa tâche de démarrage. Cette valeur est indiquée au-dessus de la flèche.

12 : Durée de la tâche A

Par convention, un réseau MPM doit se terminer par une tâche unique qui
détermine la fin du projet. Cette tâche n’aura aucune durée.

3.2.3.3 Avantages de la méthode MPM

Comme vous pourrez le remarquer, la représentation graphique de la MPM à


l’avantage de ne pas faire appel aux tâches fictives parfois nécessaires lors de la mise
en œuvre d’un PERT.

3.2.3.4 Etapes du graphe MPM

1er étape : Classer les taches par niveau

• Niveau 1 : tâches qui peuvent commencer immédiatement en début de projet (pas de


contraintes d'antériorité).
• Niveau n : Tâches dont les tâches antérieures sont au maximum de niveau n-1.

Utilisons l'exemple basé sur le tableau de contraintes suivant pour mieux


appréhender ces étapes :
~ 34 ~

Taches Durée Taches précédentes


A 6
B 2
C 7 B
D 8 B
E 3 AC
F 4 ED

Niveau Taches
1 AB
2 CD
3 E
4 F

2eme étape : Classer le graphe

3eme étape : Calculer les dates et les marges

• Date au plus tôt :

• Date à laquelle on peut commencer la tâche parce que les tâches précédentes sont
terminées.
• formule : = Max (Dates au plus tôt précédentes + durées précédentes).

• Date au plus tard :

• Date maximale à laquelle on peut commencer la tâche sans repousser la fin du projet.
• formule : = Min (Date au plus tard suivantes) - durée de la tâche.

• Marge totale :

• Retard autorisé à la tâche sans retarder la fin du projet.


~ 35 ~
• formule : = Date au plus tard - Date au plus tôt.

• Marge libre :

• Retard autorisé sans retarder aucune des tâches suivantes.


• formule : = Min (Dates au plus tôt suivantes) - Durée de la tâche - Date au plus tôt
de la tâche.

4eme étape : Tracer le ou les chemins critiques

• Tâche critique :

• Tâche qui ne peut être retardée sans que l'ensemble du projet soit retardé en
conséquent.
• Ce sont les tâches dont la marge totale est nulle.

• Chemin critique :

• Séquence des tâches critiques, du début à la fin du projet.


• Il peut y avoir plusieurs chemins critiques.

5eme étape : Interprétation du graphe

L’interprétation tourne au tour des questionnements suivants :

• Comment faire pour accélérer le projet ?


En essayant de réduire la durée des tâches critiques.

• Si telle tâche est retardée, quelle est l'incidence sur la durée totale du projet ?
Le projet est retardé du retard pris par la tâche moins la marge totale de cette tâche.

• Si telle tâche est avancée, quelle est l'incidence sur la durée totale du projet ?
On doit recalculer les dates au plus tôt à partir de cette tâche pour pouvoir répondre à
cette question.

3.2.3.5 CONDITIONNALITE

• La date au plus tard est toujours supérieure ou égale à la date au plus tôt

• Il y a toujours au moins une tâche de premier niveau dont la marge totale est nulle
(date au plus tôt = date au plus tard = 0)

• Il y a toujours un chemin critique du début à la fin du projet (suite de tâches dont la


marge totale = 0)

• Toutes les données sont positives ou nulles, jamais négatives.

• La marge libre est toujours inférieure ou égale à la marge totale.


~ 36 ~

3.2.3.6 Autre technique de résolution par la méthode MPM

Soulignons par ailleurs qu’il existe encore une autre technique de


résolution par la méthode MPM basée sur les mêmes principes que ceux de PERT
cependant, il n’est pas nécessaire de résoudre d’abord le graphe.

L’algorithme suivi est très simple il consiste à dresser un tableau à 2


lignes et à autant des colonnes qu’il y a d’opération plus deux. Car on ajoute 2
événements supplémentaires qui sont le début « d » et la fin « f »

3.2.3.6.1 PROCEDURE

1° Les opération sont inscrites dans un ordre quelconque sur la 1er ligne
et dans la partie droite de chaque colonne.

2° Sur la 2ème ligne et en dessous de chaque opération, sont mentionné les


opérations précédentes ainsi que leurs durées. Une demi-colonne étant réservée à
gauche pour les calculs,

3° Quand une opération n’est précédée d’aucune autre, ou marque « d »


au-dessous.

4° On inscrit sur la 2ème ligne et à droit de chaque opération, sa durée.


5° On place un zéro dans les dernières colonnes ménagées, en 2ième
ligne pour chaque colonne contenant un « d ». Comme il y a surement au moins une
opération contenant un « d » dans sa colonne, on a immédiatement une colonne
entièrement remplis.

6° on fait la somme des chiffres inscrit en 2ème ligne de cette colonne


entièrement remplie. Ce qui donne la date de début de l’opération placée en tête des
colonnes et cette date est inscrit à sa gauche.

7° Partant où apparait une opération déjà remplie on marque sa valeur


dans la sous colonne correspondante, ce qui donne des nouvelles colonnes entièrement
remplient.

8° On fait la somme dans chaque colonne en seconde ligne et on les


inscrit à gauche de chaque opération.

Lorsqu’une colonne contient deux ou plusieurs opérations et qu’elle est


complète, alors on fait la somme de nombres et on place en tête de colonne, le
maximum de résultat obtenu.

Et ainsi de suite

Le chemin critique est retrouvé en reprenant dans le tableau à partir de la


fin, les opérations dont les lignes ont fourni le nombre d’opération en tête de colonne.
~ 37 ~

3.2.3.6.2 EXEMPLE

Soit un projet à 8 taches

Taches Durée (jour) Taches précédentes


A 3
B 4
C 4 A
D 2 B
E 6 A
F 2 CD
G 4 B
H 1 FG

T.D : Déterminer la durée minimum nécessaire à la réalisation de ce projet


ainsi que le chemin critique.

Résolution :

Opérations d O A O B 3 C 4 D 3 E 7 F 4 G 9 H 10 f
Opérations précédentes

La durée minimum nécessaire à la réalisation de ce projet est de 10 jours.

Le chemin critique : A- C- F- H
~ 38 ~

CHAP IV: PROBLEME D’AFFECTATION OPTIMALE

4.1. INTRODUCTION

Supposons que dans une entreprise m ouvriers travaillent différemment


sur n machines avec plus ou moins d’efficacité selon le rendement de chacun.
L’efficacité peut se mesuré par le revenu provenant de la vente des produits fabriqués
par les divers ouvriers travaillant sur différentes machines.

Répartir les ouvriers sur les machines de la façon la plus efficace est un
problème d’affectation.

Soit m unité à affecter à n tâches, une unité ne peut être affectée qu’à une
et une seule tâche et une tâche ne peut employer qu’une et une seule unité.
L’unité i exécute la tâche j avec un coût ou un profit Cij. Le problème
qui se pose est celui de se poser la question suivante : ‘‘comment doit-on affecter
chaque unité à une seule tâche pour que la rentabilité soit optimale’’

U1 Tâche Tj

1 1 Ui 1 2……………….n
2 2
3 3 1 C11 C12…………..C1n
4 4 2 C21 C22…………..C2n
5 5 . .
. . . .
. . . .
. . . .
m n m Cm1 Cm2

• Le problème se formule comme suit :


- Soit Cij le coût ou profit total de la réalisation de la tâche j par unité i
- Soit Xij l’unité i affectée à la tâche j

• Alors le problème s’écrit :


n n
Z= Σ Σ Cij Xij
i =1 j =1
S/C Xij 𝜖 {0,1} ɣi, ɣj (1)
n
Σ Xij = 1, ( j = 1,2……………..n) ɣj (2)
i =1
n
Σ Xij = 1, ( i = 1,2……………..n) ɣi (3)
j =1
~ 39 ~

- La contrainte (1) exprime que Xij ne peut prendre que la valeur 0 ou 1


- La contrainte (2) exprime qu’il n’y a que ‘‘1’’ par colonne n
- La contrainte (3) exprime qu’il n’y a que ‘‘1’’ en ligne

4.2. METHODE DE CALCUL

Il existe plusieurs méthodes ou techniques pour traiter le problème


d’affectation optimale. Cependant, dans le présent cours nous retenons la méthode de
la matrice réduite appelée aussi la méthode KÖNIGOISE ainsi dénommée en
souvenir d’un célèbre mathématicien KÖNIG.

4.2.1. Etapes de la méthode KÖNIGOISE

1ère Phase : Obtention de Zéro

A tous les éléments d’une même colonne on identifie l’élément le plus petit et on
fait : Cij = Cij –min Cij

D’où on a au moins un Zéro par colonne, et on fait la même chose en ligne. Cij
– Cij –Min Cij.

On obtiendra au moins un Zéro par ligne et par colonne.

2ème Phase : Recherche d’une solution optimale

Avec les zéro de Cij forme une solution pour laquelle le Ct a une valeur nulle.
C'est-à-dire une affectation où tous les Cij de la solution sont des zéro. Si cela est
possible, on a alors trouvé une solution optimale. Si non on passe à la phase 3.

3ème Phase : Recherche des lignes et colonnes en nombre minimales contenant


tous les zéro

1) Marquez d’une croix (x) toutes les lignes qui ne contiennent aucun zéro
encadre.
2) Marquez toutes colonnes qui a un zéro barré sur une ou plusieurs des lignes
marquées
3) Marquez toutes lignes qui a un zéro encadré dans une colonne marquée.
4) repentez 2 et 3 jusqu’à ce qu’il n’y ait plus des colonnes ou des lignes à
marquer

4ème Phase : Achèvement de la phase 3

Tracez un trait sur toute ligne non marquée et un trait sur toute colonne marquée.
Ceci nous donne les lignes et colonnes en nombre minimale qui contiennent tous
les zéro encadrés ou barrés.
~ 40 ~

5ème Phase : Déplacement de certain zéro

Considérez le tableau partiel des éléments qui ne sont pas traversé par des trait et
prenez le plus petit nombre de ce tableau partiel enlevez ce nombre aux éléments
des colonnes non traversé par un trait et ajoutez le aux éléments des lignes
traversées par un trait deux fois.

Il revient au même d’enlever le nombre en question aux éléments du tableau qui


ne sont pas rayés et de l’ajouter aux éléments qui sont rayés 2 fois, en ligne et en
colonne.

6ème Phase : Obtention de la solution optimale

Sur le tableau Cij obtenu en phase 5, recherchez une solution optimale selon la
méthode de la phase 2.

4.3. Exemple

La matrice ci-dessous établie le coût de fabrication des ouvriers A,B,C,D


et E sur les machines 1,2,3,4 et 5.

1 2 3 4 5
A 12 8 11 15 4
B 7 9 17 14 10
C 9 6 12 7 7
D 7 8 14 8 10
E 9 9 13 10 6

T.D. Opérez les affectations de manière à rendre minimal le coût total de


fabrication.

Résolution

1 2 3 4 5
A 12 8 11 15 4
B 7 9 17 14 10
C 9 6 12 7 7
D 7 8 14 8 10
E 9 9 13 10 6
7 6 11 7 4
~ 41 ~

1 2 3 4 5
A 5 2 0 8 0
B 0 3 6 7 6
C 2 0 1 0 3
D 0 2 3 1 6
E 2 3 2 3 2 2

1 2 3 4 5
A 5 2 0 8 0
B 0 3 6 7 6
C 2 0 1 0 3
D 0 2 3 1 6
E 0 1 0 1 0

1 2 3 4 5
A 6 2 0 8 0
B 0 2 5 6 5
C 3 0 1 0 3
D 0 1 2 0 5
E 1 1 0 1 0

C’est la solution optimale

Par conclusion, l’affectation optimale sera :

A 1 7
B 2 6
Le coût total s’élève à 38
C 3 11
D 4 8
6
E 5
38
~ 42 ~

Exercice à résoudre par les étudiants (TP)

Un responsable d’une PME de vente des denrées alimentaires


désire connaitre l’affectation optimale de ses vendeurs Alain, Norbert, Marie,
Pierre, Louise et fiston qui doivent vendre les produits suivants dans leurs points
de vente habituels : Coca cola (1), Gâteaux (2), Biscuit (3), Crème glacée (4),
Pain au lait (5) et Jus des fruits (6).

La structure des charges par rapport au rendement de ces vendeurs


est reprise dans la matrice ci-dessous :

1 2 3 4 5 6
A 11 12 5 15 8 5
N 4 5 2 14 10 3
M 5 6 3 17 9 5
P 5 4 7 5 7 9
L 9 8 12 13 6 3
F 2 3 2 9 9 10

T.D Trouvez l’affectation optimale


~ 43 ~

CHAP V: PROGRAMMATION LINEAIRE

5.1 INTRODUCTION

Les problèmes de programmations linéaires sont généralement liés à des


problèmes d’allocations de ressources limitées, de la meilleure façon possible, afin de
maximiser un profit ou de minimiser un coût. Le terme meilleur fait référence à la
possibilité d’avoir un ensemble de décisions possibles qui réalisent la même
satisfaction ou le même profit. Ces décisions sont en général le résultat d’un problème
mathématique.
En bref, la programmation linéaire est un Modèle mathématique dans lequel
la fonction objectif et les contraintes sont linéaires par des variables.
Limité au départ aux problèmes industriels et militaires, de nos jours
plusieurs problèmes de divers domaines sont représentés ou approximés par des
modèles de PL. L’utilisation de ces techniques de modélisation s’est renforcée encore
après avoir construit des algorithmes et des logiciels capables de résoudre de plus
larges problèmes avec autant de variables de décision que de contraintes.

5.2. LES CONDITIONNALITES D’UNE PROGRAMMATION LINEAIRE

Comme étant un modèle, la programmation linéaire admet des hypothèses


(des conditions) que le décideur doit valider avant de pouvoir les utiliser pour
modéliser son problème. Ces hypothèses sont liées à la proportionnalité, La non-
négativité, l’additivité et la linéarité de la fonction objective .Elles sont formulées de la
manière suivante :

1. Les variables de décision du problème sont positives


2. Le critère de sélection de la meilleure décision est décrit par une fonction linéaire
de ces variables, c’est à dire, que la fonction ne peut pas contenir par exemple un
produit croisé de deux de ces variables. La fonction qui représente le critère de
sélection est dite fonction objective (ou fonction économique).
3. Les restrictions relatives aux variables de décision (exemple: limitations des
ressources) peuvent être exprimées par un ensemble d’équations linéaires. Ces
équations forment l’ensemble des contraintes.
4. Les paramètres du problème en dehors des variables de décisions ont une valeur
connue avec certitude.

5.3 REPRESENTATION DU PROGRAMME

Un programme linéaire consiste à trouver le maximum ou le minimum d’une


forme linéaire dite fonction objectif en satisfaisant certaines équations et inéquations
dites contraintes.

En langage mathématique, on décrira de tels modèles de la manière suivante :


~ 44 ~

Max Z = c1x1 + c2x2 + ... + cjxj + ... + cnxn (a)

Sous les contraintes :

 a11 x1 + a12 x 2 +  + a1 j x j +  + a1n x n  b1


 a x + a x ++ a x ++ a x  b
 21 1 22 2 2j j 2n n 2
 (b)
 
a m1 x1 + a m 2 x 2 +  + a mj x j +  + a mn x n  bm

et sous les conditions : xj  0, (j = 1, 2, ... n). (c)

(a) est la fonction "objectif" ou la fonction économique devant être maximisée,


(b) sont des contraintes du groupe, elles s'appellent contraintes fonctionnelles. Celles du
groupe
(c), sont les contraintes de non négativité car on ne peut prendre en considération des
activités de valeur négative, ce qui n'aurait aucune signification économique.

Le programme peut aussi s'écrire comme :


n n
Max Z = c
j=1
j x j S/C a
j=1
ij x j  bi i = 1, 2, ... m et xj  0 (j = 1, 2, ... n)

ou, sous forme matricielle

 x1   a11 a12 .. a1n   x1   b1 


  a a22 .. an 2   x  b 
Max Z = c1 c 2 ... c n    S/C  21
x2   2    2  et X  0
 ...  .. .. .. ..   ...   ...
       
 xn  an 2 an 2 ... ann   xn  bn 

ou encore : Max Z = CX S/C AX  B et X  0

Tout ensemble de variables qui satisfont simultanément aux contraintes


fonctionnelles et de non négativité est une solution possible du problème de
programmation linéaire.

Un problème de minimisation s'écrira :

Min Z = c1x1 + c2x2 + ... + cjxj + ... + cnxn


Sous les contraintes :

 a11 x1 + a12 x 2 +  + a1 j x j +  + a1n x n  b1


 a x + a x ++ a x ++ a x  b
 21 1 22 2 2j j 2n n 2

 
a m1 x1 + a m 2 x 2 +  + a mj x j +  + a mn x n  bm

et sous les conditions x  0, (j = 1, 2, ... n).


~ 45 ~

Le programme peut aussi s'écrire comme :


n n
Min Z = c
j=1
j x j S/C a
j=1
ij x j  bi i = 1, 2, ... m et xj  0 (j = 1, 2, ... n)

Ou, sous forme matricielle,

 x1   a11 a12 .. a1n   x1  b1 


  a a22 .. an 2   x  b 
x2
Min C = c1 c2 ... cn  S/C  21   2    2  et X  0
 ...  .. .. .. ..   ...  ...
       
 xn an 2 an 2 ... ann   xn  bn 

ou encore : Min Z = CX S/C AX  B et X  0

Avant d'effectuer les calculs permettant de résoudre le programme linéaire, il peut


être souhaitable ou nécessaire de réaliser certaines transformations :

5.4 FORMULATION DE PROGRAMME LINEAIRE

Généralement il y a trois étapes à suivre pour pouvoir construire le modèle


d'un programme linéaire :
1. Identifier les variables du problème à valeur non connues (variable de décision) et
les représenter sous forme symbolique (exp. x1, y1 ).
2. Identifier les restrictions (les contraintes) du problème et les exprimer par un
système d’équations linéaires.
3. Identifier l’objectif ou le critère de sélection et le représenter sous une forme
linéaire en fonction des variables de décision. Spécifier si le critère de sélection est
à maximiser ou à minimiser.

Soulignons que la tâche de formulation de programme linéaire demande


généralement une certaine expertise et connaissance du problème pour pouvoir relever
facilement les différentes composantes du problème et ainsi donner un programme qui
modélise au mieux la situation réelle.

De ce qui précède, nous présentons quelques exemples de formulation de


programme linéaire liés à différents problèmes de décision :

Exemple 1 : problème de production

Pour fabriquer deux produits P1 et P2 on doit effectuer des opérations


sur trois machines M1, M2 et M3, successivement mais dans un ordre quelconque. Les
temps unitaires d’exécution sont donnés par le tableau suivant :

M1 M2 M3
P1 11 mn 7 mn 6 mn
P2 9 mn 12 mn 16 mn
~ 46 ~

On supposera que les machines n’ont pas de temps d’inactivité.

La disponibilité pour chaque machine est :

• 165 heures (9900 minutes) pour la machine M1 ;


• 140 heures (8400 minutes) pour la machine M2 ;
• 160 heures (9600 minutes) pour la machine M3.

Le produit P1 donne un profit unitaire de 900 dinars et le produit P2


un profit unitaire de 1000 dinars.

Dans ces conditions, combien doit-on fabriquer mensuellement de


produits P1 et P2 pour avoir un profit total maximum ?

Formulation en un PL :

Les variables de décisions sont :

• x1 : le nombre d’unités du produit P1 à fabriquer


• x2 : le nombre d’unités du produit P2 à fabriquer

Les contraintes outre les contraintes de non-négativité sont :

• 11x1 + 9x2  9900 pour la machine M1


• 7 x1 + 12 x2  8400 pour la machine M2
• 6x1 + 16 x2  9600 pour la machine M3

Le profit à maximiser est : z = 900 x1 + 1000 x2

Le programme linéaire résultant est :

Max 900 x1 + 1000 x2


s.c. 11x1 + 9 x2  9900
7 x1 + 12 x2  8400
6 x1 + 16 x2  9600
x1  0, x2  0

Exemple 2 : Problème d’alimentation

On se propose de réaliser une alimentation économique pour des


bestiaux, qui contient obligatoirement 4 sortes de composants nutritifs, A, B, C et D.
L’industrie alimentaire produit précisément deux aliments M et N qui contiennent ces
composants : 1 Kg d’aliment M contient 100 g de A, 100 g de C, 200 g de D ; 1 Kg
d’aliment N contient 100 g de B, 200 g de C, 100 g de D.

Un animal doit consommer par jour au moins : 0.4 Kg de A ; 0.6 Kg


de B ; 2 Kg de C ; 1.7 Kg de D. L’aliment M coûte 10 DT le Kg et N coûte 4 DT le
~ 47 ~

Kg. Quelles quantités d’aliments M et N doit-on utiliser par jour et par animal pour
réaliser l’alimentation la moins coûteuse ?

Formulation en un PL :

On peut résumer toutes les données du problème dans le tableau suivant

M N Quantités prescrites
A 0.1 0 0.4
B 0 0.1 0.6
C 0.1 0.2 2
D 0.2 0.1 1.7
Coût 10 4

Ce genre de tableau peut aider à mieux analyser le problème et ainsi formuler le


programme linéaire correspondant.

Les variables de décision sont

• xM : la quantité d’aliments M à utiliser pour l’alimentation des deux bestiaux


• xN : la quantité d’aliments N à utiliser pour l’alimentation des deux bestiaux

Les contraintes de non-négativité sont x1  0, x2  0.

Le choix de cette quantité est contraint à la présence dans l’alimentation du composant

• A: 0.1 x1  0.4  x1  4
• B: 0.1 x2  0.6  x2  6
• C: 0.1 x1 + 0.2 x2  2  x1 + 2 x2  20
• D: 0.2 x1 + 0.1 x2  1.7  2 x1 + x2  17

La fonction objectif est une fonction coût : z = 10 x1 + 4 x2 .

Le programme linéaire est un programme de minimisation :

Min 10 x1 + 4 x2
s.c. x1  4
x2  6
x1 + 2 x2  20
2 x1 + x2  17
x1  0, x2  0
~ 48 ~

5.5. METHODES DE CALCULS

Nous retenons, dans le présent cours, trois méthodes pour résoudre les
problèmes de programmation linéaire qui sont :

1. Méthode d’algorithme de dénombrement


2. Méthode graphique
3. Méthode Algébrique
4. Méthode de simplexe

5.5.1 Méthode d’algorithme de dénombrement

Cette méthode consiste à dénombrer toutes les solutions de bases en


utilisant la formule combinatoire suivante :

𝐂𝒏𝒎 =𝒎!(𝒏−𝒎)!
𝒏!

Et de calculer, par la suite, la valeur de la fonction économique Z pour


chacune des valeurs trouvées. On prendra, bien entendu, la valeur de base admissible.

Soulignons qu’avant toute opération, il faut d’abord passer de la forme


canonique à la forme standard en ajoutant les variables d’écart.

Exemple :
Maximisez z = 3x1 + 2 x2
s.c. 2x1 +3 x2  15
2x1 + x2  12
2x1 + 5x2  20
x1, x2  0

Transformation du système de la forme canonique à la forme standard

2x1 +3 x2 + x3 = 15
2x1 + x2 + x4 = 12
2x1 + 5x2 + x5 = 20

.m=3 et n=5 𝐂𝟓𝟑 =𝟑!(𝟓−𝟑)!


𝟑!
= 10 d’où 10 solutions de base
~ 49 ~

Tableau :

Solution Valeurs
Base x1 x2 x3 x4 x5 A ou NA de Z

1 0 0 15 12 20 A 0
2 0 15 0 7 -5 NA
3 0 12 -21 0 -40 NA
4 0 4 3 8 0 A 8
5 7,5 0 0 -3 NA
6 6 0 3 0 8 A 18
7 10 0 -5 0 NA
8 5,25 1,5 0 0 2 A 18,75
9 3,75 2,5 0 2 0 A 16,25
10 5 2 -1 0 0 NA

La solution optimale : Z =18,75 avec x1 = 5,25 et x2= 1,5

Donc pour maximiser les recettes cette entreprise doit produire la


combinaison x1 = 5,25 et x2= 1,5

5.5.2 Méthode graphique

Méthode graphique consiste à représenter toutes les droites des


contraintes en vue de déterminer la solution optimale.

Exemple : Maximisez la fonction suivante sous les différentes contraintes ci-


dessous.
~ 50 ~

Il s’agit ici de représenter dans l’espace toutes les droites des


contraintes et considérer en suite les espaces des solutions acceptées.

Graphique :

La solution optimale se retrouve aux coordonnés (40,110) càd x1 = 40 et


x2= 110 avec Z =22400

5.5.3 Méthode Algébrique

A ce niveau on peut utiliser on peut utiliser soit la méthode matricielle,


la méthode de substitution, la méthode par comparaison … Cependant, dans le
présent cours, nous optons pour la méthode matricielle avec la pratique
d’échelonnement.

Exemple

Maximisez z = 4 x1 + 3 x2 + 2 x3
s.c. 2x1 + 4 x2 + 6 x3  28
x1 - 3 x2 - 7 x3  -26
-3x1 + 2 x2 - x3  -2
x1, x2 et x3  0

Résolution par la méthode matricielle

La matrice associée à ce système d’équation est la suivante :

2 4 6 x1 28
( 1 −3 −7 ). ( x2 ) = (−26)
−3 2 −1 x3 −2
~ 51 ~

La matrice élargie est la suivante :

2 4 6 28
( 1 −3 −7 −26 )
−3 2 −1 −2
Echelonnement :

𝐿′ 2 = 𝐿1 − 2𝐿2
𝐿′3 = 3𝐿1 + 2𝐿3

2 4 6 28
(0 10 20 80 )
0 16 16 80
𝐿′′3 = 8𝐿2 − 5𝐿3

2 4 6 28
(0 10 20 80 )
0 0 80 240

D’où le système d’équation suivante :

2x1 + 4 x2 + 6 x3 = 28 (1)
{ 10 x2 + 20 x3 = 80 (2)
80 x3 = 240 (3)

240
(3)’ ⇒ X3 =
. 80

X3 = 3

(3)’ dans (2) ⇒ 10 x2 + 20(3) = 80


.
10 x2 + 60 = 80
X2 = 2

(x2) et (x3) dans (1) ⇒ 2x1 + 4(2) + 6 (3) = 28


.
2x1 + 8 + 18 = 28
X1 = 1

La solution optimale : x1 = 1, x2 = 2 et x3 = 3
avec z = 4 (1) + 3 (2) + 2 (3)
Z =16
~ 52 ~

5.5.4 Méthode de SIMPLEXE

5.5.4.1 Définition

La méthode de simplexe peut être définie comme étant une procédure


itérative qui passe d’une solution réalisable de base à une autre jusqu’à atteindre la
solution optimale.

Elle commence par l'identification d'une solution réalisable de base et


ensuite, on essaye de trouver d'autres solutions réalisables de base jusqu’à atteindre à
la solution optimale.

5.5.4.2 Procédure de la méthode du simplexe

Le tableau suivant résume les étapes de la méthode de simplexe relatives aux


problèmes de maximisation et minimisation :

Etapes Maximisation Minimisation


Formuler un programme linéaire Formuler un programme linéaire pour
1
pour le problème réel. le problème réel.

Vérifier que le second membre du Vérifier que le second membre du


2 programme linéaire est positif programme linéaire est positif sinon
sinon modifier les contraintes modifier les contraintes

Ecrire le programme linéaire sous Ecrire le programme linéaire sous une


3
une forme standard forme standard
Construire le premier tableau de Construire le premier tableau de
4
simplexe simplexe

Choisir comme variable entrante Choisir comme variable entrante dans


5 dans la base celle qui admet le la base celle qui admet le plus petit
plus grand effet net positif cj-zj. effet net négatif cj-zj.

Choisir la variable sortante de la Choisir la variable sortante de la base


6 base celle qui admet le plus petit celle qui admet le plus petit ratio
ratio supérieur à zéro. supérieur à zéro.
Construire le nouveau tableau en Construire le nouveau tableau en
7
utilisant la règle de pivot utilisant la règle de pivot
8 Faire le test d’optimalité. Si Faire le test d’optimalité. Si
~ 53 ~

(cj-zj)  0 pour toutes les variables (cj-zj)  0 pour toutes les variables
(hors base) donc la solution (hors base) donc la solution obtenue
obtenue est optimale. Sinon est optimale. Sinon retourner à l’étape
retourner à l’étape 5. 5.

5.5.4.4 EXEMPLE

Un fabriquant produit des tables (x1) et des bureaux (x2). Chaque table
nécessite 3 heures pour l’assemblage (A), 4 heures pour le polissage (B) et 3
heures pour la mise en caisse (C).

Chaque bureau exige 10 heures pour l’assemblage, 1 heures pour le


polissage et 2 heures pour la mise en caisse. Cette entreprise ne peut disposer
chaque semaine plus de 60 heures pour l’assemblage, de 15 heures pour le
polissage et de 16 heures pour la mise en caisse. Sa marge de profit s’élève à
11 dollars us par table et 7 dollars us par bureau.

Trouvez la combinaison de production qui maximisera le profit


hebdomadaire de cette entreprise par la méthode de simplexe.

Résolution

Présentation de cette programmation linéaire :

x1 x2
A 3 10 60
B 4 1 15
C 3 2 16
Profit 11 7
Forme Canonique de la programmation linéaire :

Maximisez z = 11x1 + 7 x2
s.c. 3x1 +10 x2  60
4x1 + x2  15
3x1 + 2x2  16
x1, x2  0

Ensuite on présente la forme standard en ajoutant les variables d’écarts :

Maximisez z = 11 x1 + 7x2+ 0 x3 + 0 x4+ 0 x5

S/C 3x1 +10 x2 + x3 = 60


4x1 + x2 + x4 = 15
~ 54 ~

3x1 + 2x2 + x5 = 16

Tableau I

Ci i x1 x2 x3 x4 x5 Voi
0 3 3 10 1 0 0 60
0 4 4 1 0 1 0 15
0 5 5 2 0 0 1 16
Ch 11 7 0 0 0
Xi 60 15 16 Z= 0
Δj 11 7

Voi ↑e 20 15 16
aie 4 3
↓s
Tableau II

Ci i x1 x2 x3 x4 x5 Voi
0 3 0 .37/4 1 .-3/4 0 .195/4
11 1 1 .1/4 0 .1/4 0 .15/4
0 5 0 .5/4 0 .-3/4 1 .19/4
Ch 11 7 0 0 0

Xi 15 195 19 Z= 165 .= 41,25


4 4 4 4
17 .-11
Δj
4 4
↑e
Voi 15 195 19
aie 37 5
↓s

Pas une solution optimale car les Δj ne sont pas tous négatifs.

Tableau III
~ 55 ~

Ci i x1 x2 x3 x4 x5 Voi
0 3 0 0 1 .24/5 .-37/5 .68/5
11 1 1 0 0 .2/5 .-1/5 .14/5
7 2 0 1 0 .-3/5 .4/5 .19/5
Tableau Ch 11 7 0 0 0 III
Xi 14 19 68 Z= 57,4
5 5 5
.-1 .-17
Δj 5 5

C’est la solution optimale. Pour maximiser le profit, l’entreprise doit produire :

x1 = 14/5 et x2= 19/5 pour un profit de Z = 57,4

Càd Z = 11(14/5) + 7(19/5)

Z = 57,4

5.6. PROBLEME DUAL ET PRIMAL


5.6.1 Définition
Le problème de primal et dual consiste simplement de passer de
minimum en maximum et vice versa en respectant les conditions requises. Il existe
toujours pour tout problème de maximisation (ou minimisation) un problème de
minimisation (ou maximisation) correspondant. On donne le nom de primal au problème
initial. Le problème correspondant s'appelle le dual.

Exemple :

Un industriel I fabrique deux produits P1 et P2 à l’aide des deux matières


M1 et M2. Pour produire une unité de P1, il utilise 1 unité de M1 et 2 de M2. De même,
pour réaliser une unité de P2, il emploie 3 unités de M1 et 2 de M2. La contrainte
budgétaire impose qu’il ne peut pas utiliser par jour plus de 12 unités de chaque matière
première. Sachant qu’il gagne 10 $ par unité de P1 et 15 $ par unité de P2, il cherchera à
établir un plan de production optimal pouvant se formuler mathématiquement comme
suit :
~ 56 ~

Maximiser  = 10x1 + 15x2

Sous contraintes

x1 + 3x2  12
2 x1 + 2 x2  12
x1  0, x2  0

Ce programme initial est le Primal.

Considérons à présent le cas d’un autre Industriel J, concurrent de l’entrepreneur I.


J désire acheter chaque jour à I les 12 unités de chaque matière première dont ce dernier
dispose. Il devra donc déterminer les prix unitaires y1 et y2 de M1 et M2 respectivement
de manière à minimiser le coût total égal à 12 y1 + 12 y2. Bien entendu, les prix y1 et y2
ne sont pas négatifs. De plus, la transaction entre les deux individus ne sera possible que
si chacun d’eux y trouve son compte. En clair, il faudra que le prix total payé par J pour
acheter à I les matières premières correspondant à une unité de P1 et P2 soit au moins égal
au rendement marginal de ces produits, à savoir 10 pour P1 et 15 pour P2.

Le problème posé à J est donc le dual de celui posé à I. Il s’agit de

Minimiser C = 12 y1 + 12 y2

Sous contraintes

y1 + 2 y 2  10
3 y1 + 2 y 2  15
y1  0, y 2  0

On peut présenter simultanément le primal et le dual sous la forme d'un tableau.

PRIMAL

x10 x20 ... xn0 Min Z

y1 a11 a12 ... a1n ≤ b1


DUAL

y2 a21 a22 ... a2n ≤ b2

… ... ... ... ... ...

ym am1 am2 ... amn ≤ bm


~ 57 ~

  

Max Z c1 c2 ... cn

5.6.2 Mécanisme de passation

De ce fait, pour passer du primal au dual, il faut que :

1. Les termes du second membre deviennent les coefficients de la fonction


objectif et réciproquement.
2. Le problème de maximisation devient un problème de minimisation.
3. Les inégalités deviennent des inégalités
4. La matrice A se transforme en sa transposée.

Pour mieux appréhender cette passation, nous présentons les exemples ci-
après à travers ce tableau :

Primal Dual
Max ½ x + x 1 2 Min 3y + y + 2y 1 2 3

S.c x + x ≤ 3
1 2 S.c y - y + y ≥ ½
1 2 3

-x +x ≤1 1 2 y +y ≥1 1 2

x ≤2 1 y ≥ 0, y ≥ 0, y ≥ 0
1 2 3

x ≥ 0, x ≥ 0
1 2

Min - x + x 1 2 Max 2y - 2y + 5y 1 2 3

S.c 2x - x ≥ 2
1 2 S.c 2y - y + y ≤ -1 1 2 3

- x + 2x ≥ -21 2 - y + 2y + y ≤ 1 1 2 3

x +x ≤5 1 2 y ≥ 0, y ≥ 0, y ≤ 0
1 2 3

x ≥ 0, x ≥ 0
1 2

Max 2x - x 1 2 Min 3 y + 4 y 1 2

S.c x - x = 3
1 2 S.c y + 2 y ≥ 2 1 2

x ≤4
1 - y ≥ -1 1

x ≥ 0, x ≥ 0
1 2 y ∈IR, y ≥ 0 1 2

Max 2x - x 1 2 Min - 2y + 6y - 5y 1 2 3

S.c x - 2x ≤ 2
1 2 S.c y + y = 2 1 2

x +x =6
1 2 - 2y + y + y = -1 1 2 3

x ≤5
2 y ≥ 0, y ∈IR, y ≥ 0
1 2 3

x ∈IR, x ∈IR
1 2
~ 58 ~

BIBLOGRAPHIE

1. Bernard FORTZ, Recherche opérationnelle et application, 2013.


2. Dominique DE W. THOMAS M. LIEBLING ET JEAN-FRANÇOIS HECHE.
Recherche opérationnelle pour ingénieurs , Presses polytechniques et
universitaires romandes. 2003.
3. Dr Yao Silvère KONAN, Recherche Opérationnelle, UNIVERSITE FELIX
HOUPHOUËT BOIGNY. Module II.
4. J-C. BERMOND ET AL., Communications dans les réseaux de processeurs,
éd. Masson, Paris, 2008.
5. Nadia BRAUNER, Recherche opérationnelle I, éd. GRENOBLE, paris, 2016.
6. Robert FAURE, Bernard LEMAIRE et Christophe PICOULEAU. Précis de
recherche opérationnelle, Méthodes et exercices d'application - 6e édition
Dunod.2009.

Vous aimerez peut-être aussi