Vous êtes sur la page 1sur 34

Faculté des Sciences et Techniques d’Al Hoceima

Recherche Opérationnelle

Master en Systèmes Embarqués et


Robotique(SER)

Présenté par : Faiza Dib


1
I. Introduction

La Recherche Opérationnelle c'est une discipline moderne qui utilise :


Des modèles mathématiques, statistiques
Des algorithmes pour modeler et résoudre des problèmes complexes, en
déterminant la solution optimale et en améliorant la prise de décisions.
Cette matière reçoit aussi le nom de Recherche Opérationnelle ou Aide à la Décision.

Domaines d'application:
- Production : maximiser le profit selon disponibilité de la main d’œuvre,
demande du marche, capacité de production, prix de revient du matériaux brut. .
- Transport : minimiser distance totale parcourue selon quantités de matériaux a
transporter, capacité des transporteurs, points de ravitaillement en carburant. . .
- Grande importance dans le milieu industriel : production, transport, emploi du
temps, Ordonnancement dans l’industrie automobile, Un problème d’emballage
Equilibrage des stocks, Planification de personnel
2
I. Introduction

Les Techniques de la recherche opérationnelle


 L'optimisation linéaire
Programmation linéaire
Programmation quadratique
Programmation en nombres entiers
Programmation dynamique
 L'optimisation non linéaire,
 L'optimisation stochastiques
 L'optimisation multicritères
 La théorie de réseaux et des graphes, etc

3
I. Introduction

1. Détection de
problème 4. Collecte
3. Elaboration
des données
d’un modèle

2. formulation
de problème

5. Résolution
7. La prise de du problème
décision et 6. Validation du
l’implémentatio modèle
n de la solution
4
I. Introduction

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.
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
I. Introduction

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


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 le 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 : 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, le modèle enrichi
permettra de tirer des conclusions mieux étayées.
6
II. Programmation linéaire:

• Du point de vue mathématique, on appelle problème de programmation linéaire


tout problème dans lequel il s’agit d’optimiser (c’est-à-dire de maximiser ou
minimiser selon le cas) une fonction de plusieurs variables, linéaires par rapport à
l’ensemble de ces variables, celles-ci devant satisfaire à un ensemble des
contraintes linéaires.
• la programmation linéaire est une technique mathématique d’optimisation
(maximisation ou minimisation) de fonction objectif linéaire sous des contraintes
ayant la forme d’inéquations linéaires. Elle vise à sélectionner parmi différentes
actions celle qui atteindra le plus probablement l’objectif visé.
• Les problèmes de la programmation linéaire (PL) se posent lorsque l’on cherche à
rendre optimale (minimum ou maximum) une fonction linéaire de plusieurs
variables, ces variables étant assujetties à des contraintes linéaires, c’est à dire, du
premier degré. Soulignons à ce propos, qu’une contrainte est linéaire, lorsqu’elle
s’exprime par une égalité ou inégalité dont le premier membre est une
combinaison linéaire et le second, un nombre réel.
• Remarque : C’est grâce à cette méthode que les problèmes de ravitaillement
étaient résolus pendant la seconde guerre mondiale.
II. Programmation linéaire:

• Exemple
Une compagnie est spécialisée dans la production de deux types de produits : des
climatiseurs et des ventilateurs.
Les deux produits nécessitent un certain nombre d’heures de main d’œuvre.
Le tableau suivant donne les informations nécessaires sur les deux produits, c’est-à
dire les nombres d’heures machine et d’heures main d’œuvre nécessaires à la
fabrication d’une unité de chacun de ces produits, ainsi que le profit généré par la
production d’une unité de ce produit. Le tableau nous donne aussi le nombre total
d’heures machines et d’heures main d’œuvre disponibles.

Heures Main d’œuvre Profit


machine
Climatiseur 2 h/unité 3 h/unité 25 DH/unité
Ventilateur 2 h/unité 1 h/unité 15 DH/unité
Total 240 h 140 h
disponible
8
II. Programmation linéaire:

1. Formulation du programme linéaire

a) Variables de décision : doivent complètement décrire les décisions à


prendre.
La compagnie veut décider du nombre de climatiseurs et du nombre de ventilateurs
à produire pour maximiser le profit. Ceci nous amène à choisir les deux variables de
décision suivantes :
x1 = nombre de climatiseurs
x2 = nombre de ventilateurs

9
II. Programmation linéaire:

b) Fonction objectif :
Dans n’importe quel programme linéaire, le responsable de décision veut
maximiser (en général, le revenu ou profit) ou minimiser (en général le coût)
une fonction des variables de décisions. Cette fonction est appelée “ fonction
objectif ”.

L’objectif de l’entreprise est de déterminer le programme de production qui


maximisera son profit (Z=profit). La fonction objectif s’écrit alors:

Max Z = 25x1 + 15x2

10
II. Programmation linéaire:

c) Contraintes du modèle :
La limitation des ressources contraint l’entreprise de la manière suivante :
1) Contraintes heure machine 2x1 + 2x2 ≤ 240
2) Contrainte main d’œuvre 3x1 + x2 ≤ 140
3) Contraintes de non-négativité (exprimant que les niveaux d’activité ne
peuvent être négatifs) x1 ≥ 0, x2 ≥ 0

Modèle complet : x1 = nbre de climatiseurs, x2 = nbre de ventilateurs


Max Z = 25 x1 + 15 x2
sous contraintes 2x1 + 2x2 ≤ 240
3x1 + x2 ≤ 140
x1 ≥ 0, x2 ≥ 0

11
II. Programmation linéaire:

Enonce du problème
Une entreprise fabrique deux produits A et B, en utilisant une machine m et deux
matières premières p et q. On dispose chaque jour de 8 heures de m, de 10 kg de p
et de 36 kg de q. On suppose que :
— la production d’une unité de A nécessite 2 kg de p et 9 kg de q, et utilise la
machine m durant 1 heure ;
— la production d’une unité de B nécessite 2 kg de p et 4 kg de q, et utilise la
machine m durant 2 heure ;
— les profits réalisés sont de 50 dh par unité de A et 60 dh par unité de B.

L’objectif que poursuit l’entreprise est de maximiser le profit qu’elle pourra tirer, par
jour, de ces 2 produits en utilisant au mieux ses ressources.
Le tableau suivant résume les données afférentes à ce problème de production :
II. Programmation linéaire:

Le tableau suivant résume les données afférentes à ce problème de production :


A B Disponible
m 1h 2h 8h
p 2 kg 2 kg 10 kg
q 9 kg 4 kg 36 kg
Profit 50 dh 60 df
unitaire

La construction d’un modèle linéaire


x1 = la quantité du produit A à produire
x2 = la quantité du produit B à produire
Les variables x1 et x2 sont dites variables de décision.

13
II. Programmation linéaire:

Quel profit l’entreprise retirera-t-elle de la vente de ces deux produits ?

Il s’agit d’additionner les bénéfices à tirer de chacun des 2 produits :


— pour le produit A, elle retire 50 dh par unité et en fabrique x1 unités ; cette
production lui rapporte donc un profit de (50 x1) dh ;
— de même, la quantité x2 du produit B lui permet de faire un profit de (60 x2) dh.

Le profit total à tirer des deux produits s’élève donc à : (50 x1 + 60 x2) dh
Nous dénoterons ce profit total par z et laisserons implicite l’unité monétaire :
z = 50 x1 + 60 x2
Nous cherchons évidemment à rendre z aussi grand que possible en donnant à x1 et
x2 des valeurs appropriées.

14
II. Programmation linéaire:

La grandeur z est une fonction qui, à chaque plan de production (une quantité de A,
une quantité de B), associe le nombre de dirhams que l’entreprise retirerait comme
profit si elle adoptait ce plan. Cette fonction z, qui traduit l’objectif de notre
problème, s’appelle fonction objectif ou fonction économique.
Et, comme nous cherchons à rendre z aussi grand que possible, nous écrivons :
Maximiser z où z = 50 x1 + 60 x2
Max z = 50 x1 + 60 x2
S’il ne s’agissait pour l’entreprise que de maximiser z, il suffirait de laisser augmenter
x1 ou x2 pour que z prenne une valeur aussi grande qu’elle le souhaite.
Mais s’attendre à de tels profits s’apparente plus au rêve qu’à la situation de notre
entreprise. Il y a bien sûr des empêchements naturels, appelés contraintes, qui
freinent le rêve d’un profit infini. Prenons en considération tour à tour chacune des
contraintes.
15
II. Programmation linéaire:

Contrainte relative à la machine m Le temps d’utilisation de la machine m


pour fabriquer les produits A et B ne peut excéder les 8 heures disponibles
Temps d’utilisation de m  8:
Or, ce temps utilisé est la somme des heures consacrées à chacun des types de
produits. Pour le produit A, le temps nécessaire à la fabrication de la quantité x1 se
calcule ainsi :
1 heure/(unité de A) * x1 (unité de A) = x1 heures

Pour le produit B, on procède de façon analogue :


2 heure/(unité de B) * x2 (unité de B) = 2x2 heures

La contrainte relative à la machine m s’écrit donc :


x1 + 2x2  8 (m)
On emploie le signe « », et non « = », car il n’est pas obligatoire que toutes les
heures disponibles soient utilisées pour la fabrication des produits A et B, bien
qu’il ne soit pas interdit qu’il en soit ainsi.
16
II. Programmation linéaire:

Contraintes relatives aux matières premières En s’inspirant de la contrainte


relative à la machine, ces contraintes s’écrivent tout naturellement :

2x1 + 2x2  10 (p)


9x1 + 4x2  36 (q)
Contraintes de positivité Elles assurent que la solution ne comporte pas des
valeurs négatives (inacceptables).
x1; x2 > 0;
Modèle complet : x1 = la quantité du produit A à produire
x2 = la quantité du produit B à produire
Max z = 50 x1 + 60 x2
x1 + 2x2  8
2x1 + 2x2  10
9x1 + 4x2  36
x1; x2 > 0;
17
II. Programmation linéaire:

Enoncé du problème
Un agriculteur souhaite que son troupeau consomme la plus faible ration quotidienne
de trois éléments nutritifs A, B et C.
Les exigences quotidiennes sont de 16 pour A, 12 pour B et 18 pour C. L’agriculteur
achète deux types d’aliments P et Q :
-Une unité de P comprend 2 unités de A, 1 unité de B et 1 unité de C ; et elle coûte 20 dh,
-Une unité de Q comprend 1 unité de A, 1 unité de B et 3 unités de C ; et elle coûte 40 dh.
L’agriculteur cherche la combinaison la moins coûteuse des quantités de P et Q qui
respectera l’exigence de consommation minimale d’éléments nutritifs.
Le tableau suivant résume les données afférentes à ce problème :
P Q Besoins Minimaux
A 2 1 16
B 1 1 12
C 1 3 18
Coût unitaire 20 dh 40 dh
18
II. Programmation linéaire:

La construction d’un modèle linéaire


Appelons x1 et x2 les quantités des aliments P et Q qu’il faut acheter.
L’objectif de l’agriculteur est évidemment de minimiser le coût total des aliments qu’il
faut acheter. Mathématiquement cela s’écrit :
Minimiser z = 20x1 + 40x2
ce que généralement l’on convient d’abréger comme suit :
Min z = 20x1 + 40x2
Chacun des 3 éléments nutritifs à considérer donne lieu à une contrainte, qui vise à
exiger que les aliments, dans leur ensemble, satisfassent les besoins quotidiens du
troupeau. On obtient : 2x1 + x2  16
x1 + x2  12
x1 + 3x2  18
Les contraintes ci-dessus emploie le signe « » parce qu’il faut respecter les exigences
de consommation minimales, mais que celles-ci peuvent être dépassées.
Enfin, il faut pas oublier qu’on peut pas acheter des quantités négatives de P ou Q :
x1; x2 > 0
19
II. Programmation linéaire:

2.Forme standard et forme canonique d’un programme linéaire


Forme standard
Un programme linéaire est sous forme standard lorsque toutes ses contraintes sont
des égalités et toutes ses variables sont non-négatives.
Représentation matricielle:
max CTx
S.C Ax = b
x0
Ou:

max z   j c j x j
s.c  j
aij x j  bi i  1, 2,....m
xj  0 j  1, 2,....n

n variables, m contraintes
II. Programmation linéaire:

Forme canonique
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.
Représentation matricielle

max CTx
S.C Ax  b
x0
Ou: max z   j c j x j
s.c  j
aij x j  bi i  1, 2,....m
xj  0 j  1, 2,....n

n variables, m contraintes, c; x  Rn; b  Rm; A  Rm*n.


21
II. Programmation linéaire:

Exemple:

Représentation 1:

Représentation matricielle :

22
II. Programmation linéaire:

Passage entre les formes


Equation → Inéquation
 ax  b
ax  b  
 ax  b

max ↔min : max f (x) = -min (-f (x))


Max f(x)=m =-m=-min(-f(x))

Inéquation → Equation :
peut être transformée en égalité par l’introduction d’une variable d’écart :

ax  b  ax  s  b s0
ax  b  ax  s  b s0

23
II. Programmation linéaire:

Exercice 1

Un atelier fabrique des tables et des bureaux.


— Chaque table nécessite 2, 5 h pour l’assemblage, 3 h pour le polissage et 1 h pour
la mise en caisse.
— Chaque bureau exige 1 h pour l’assemblage, 3 h pour le polissage et 2 h pour la
mise en caisse.
L’entreprise ne peut disposer, chaque semaine, de plus de 10 h pour l’assemblage, de
15 h pour le polissage et de 8 h pour la mise en caisse.

Sa marge de profit est de 30 dh par table et de 40 dh par bureau.


Combien de tables et de bureaux doit-on produire afin d’obtenir
un profit hebdomadaires maximal ?

24
II. Programmation linéaire:

Identification des variables :


Le profit hebdomadaire évolue en fonction du nombre de tables et bureaux fabriqués.
Le problème consiste donc à déterminer les nombres de tables et bureaux qui
permettent de réaliser le profit le plus important. On note :
x1 = le nombre de tables à fabriquer par semaine
x2 = le nombre de bureaux à fabriquer par semaine

Fonction objectif :
Le profit hebdomadaire z s’obtient à partir de l’expression:
z = 30x1 + 40x2
L’objectif poursuivi consiste à trouver le couple de valeurs x1 et x2 qui maximise le
profit hebdomadaire z :
Max z = 30x1 + 40x2

25
II. Programmation linéaire:

Contraintes :
Les valeurs prises par x1 et x2 sont limitées par les disponibilités des ateliers. Ainsi, il
convient de prendre en compte :

— Contraintes de production : Par exemple, le temps utilisé pour assembler


tables et bureaux ne peut excéder les 10 heures disponibles. Ce qui s’écrit donc :
2, 5x1 + x2  10
De même, pour le polissage et la mise en caisse, on écrit
3x1 + 3x2  15
x1 + 2x2  8
Contraintes de non-négativité : Ce type de contraintes ne figure pas de manière
explicite dans l’énoncé. Cependant son caractère est évident car les nombres de
tables et de bureaux à fabriquer ne peuvent être que positives ou nulles :
x1  0, x2 0

26
II. Programmation linéaire:

Le programme linéaire ainsi défini s’écrit :

27
II. Programmation linéaire:

3. Méthode graphique
Dans cette partie nous présentons une technique de résolution de programme linéaire
à deux variables x1 et x2. Dans ce cas on peut utiliser une représentation graphique du
programme linéaire.
La représentation graphique sera utile pour acquérir une compréhension intuitive des
principes de base de la programmation linéaire.
La formulation canonique d’un programme linéaire à deux variables peut s’écrire sous
l’une des deux formes suivantes :

28
II. Programmation linéaire:
3. Méthode graphique
Quelques rappels de géométrie
1.1. La construction de la région réalisable
Chacune des équations aix1 + bix2 = ci définit une droite qui partage le plan en
deux demi-plans P1 et P2 d’équation :

29
II. Programmation linéaire:
3. Méthode graphique
Chaque contrainte détermine l’un des deux demi-plans (P1) ou (P2) que l’on trouvera en
vérifiant si un point particulier (l’origine (0; 0) par exemple) est contenu dedans ou non.
L’intersection de tous les demi-plans correspondant aux contraintes constitue
l’ensemble des points réalisables : ce sont les solutions communes à toutes les
contraintes.
Cet ensemble correspond à une région D du plan et est souvent appelée région
réalisable. Cette région est parfois vide ou non borné.

30
II. Programmation linéaire:
3. Méthode graphique

Ensemble des solutions réalisables = intersection de ces demi-plans : polyèdre


Optimiser l'objectif
Les lignes de niveau {4x + 5y = constante} sont des droites parallèles

31
II. Programmation linéaire:
3. Méthode graphique
Géométrie d'un PL
L'ensemble des solutions réalisables est toujours un polyèdre (intersection de demi-
espaces)
Les lignes de niveau {f = constante} de la fonction-objectif f sont des hyperplans
affines (n = 2 ) droite, n = 3 ) plan...)
Optimum atteint au bord
L'optimum de la fonction-objectif, s'il existe, est atteint en (au moins) un sommet du
polyèdre.
Solutions d'un PL
 La région admissible peut être vide
nb solutions optimales :∞
 non vide, bornée
nb solutions optimales : 1 ou ∞
 non vide, non bornée
nb solutions optimales : 0 ou 1 ou 1 ∞
32
II. Programmation linéaire:
3. Méthode graphique

Notion de point extrême

Proposition
S’il en existe, il y a toujours une
solution optimale sur un sommet
(point extrême) de la région
réalisable
Corollaire
Pour trouver l’optimum, il ”suffit”
d’examiner les points extrêmes de
la région réalisable

33
II. Programmation linéaire:
3. Méthode graphique

Notion de point extrême

Définition
Un point x d’un ensemble convexe S est un point extrême de S s’il n’existe pas
deux points x1, x2 S t.q. x = x1 + (1 − x2).

Théorème
Si le polyèdre formé par l’ensemble des solutions d’un PL est borné, alors il existe
au moins une solution optimale et l’une d’elles est obtenue sur un point extrême.

34

Vous aimerez peut-être aussi