Vous êtes sur la page 1sur 14

UNIVERSITÉ DU QUÉBEC À CHICOUTIMI

Année universitaire 2023-2024

MEMOIRE DE PROJET DE FIN


D’ETUDES

Réalisé par : Encadré par :


Baker Chhima Dr. Sara Séguin

8MAT702
Sujet spécial II en mathématique
Recherche opérationnelle
Table des matières

1- Introduction générale : .........................................................................................................


2- Modélisation mathématique : ..............................................................................................
3- Optimisation linéaire : ...........................................................................................................
4- Optimisation en nombres entiers : ………………………………………………………………………………….
5- Implémentation avec Excel et Python : …………………………………………………………………………….
6- Formation en ligne : ………………………………………………………………………………………………………….
Introduction
Histoire de la recherche opérationnelle
La recherche opérationnelle est née pendant la seconde guerre mondiale avec la constitution
d’équipes de chercheurs en vue d'étudier des problèmes stratégiques et tactiques engagés dans
les opérations militaires. L'objectif était de gérer d’une manière optimale les ressources
militaires limitées. Le premier succès de cette approche a été obtenue en 1940 par le prix Nobel
de physique Patrick Black qui est résolu un problème d'implantation des radars de surveillance.

la recherche opérationnelle est une discipline qui apparaît pendant la seconde guerre
mondiale, son objectif était la gestion des ressources limitées dans le domaine militaire,
l’application de ces méthodes de recherche opérationnelle a fait son entrée dans les entreprises
et commence à être enseigné dans les universités et les grandes écoles à partir des années 50.

Depuis une dizaine d'années, 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 recherche opérationnelle a été utilisé pour la gestion des systèmes de santé
et d'éducation, pour la résolution de problèmes environnementaux et d'autres domaines
d'intérêt public.

Les domaines d'application de la recherche opérationnel sont :

- La gestion de production : Le joueur technique de production, Le choix technique de


production, Le choix technique de stockage, L’affectation des moyens de production..
- Le Marketing : Le choix des plans médias, La détermination de la politique des prix, La
répartition des efforts de la force de vente, La méthode pour sélectionner les caractéristiques
des produits etc.
- La finance : Le choix d’investissement, identification des meilleures stratégies
d'investissement, L’évaluation des risques associés, La maximisation des rendements etc.
- La Gestion des ressources humaines GRH : L’affectation des personnels au sein de
l’entreprise, optimiser la planification des ressources humaines, la gestion des effectifs, la
répartition des tâches, la gestion des horaires de travail, la prévision des besoins en personnel,
etc.
- La logistique : La gestion de transport, La logistique commerciale, La logistique
d’approvisionnement, La logistique d’appui, La logistique de distribution etc.
Définition de la recherche opérationnelle

I- Recherche :
L’analyse des besoins, La collection des données.
La construction d’un modèle mathématique.
La résolution, la conception d’une méthode pour calculer la solution.
La validation, l’expérimentation pour tester l’adéquation de la solution au modèle, ajustements.

II– Opérationnelle :
Opération, C’est l’ensemble de méthodes à employer afin d’obtenir un résultat.
On peut dire que la recherche opérationnelle constitue un processus de prise de décisions
fondé sur des bases scientifiques, ainsi comment organiser les opérations (Production,
Transport, Construction, Communication, Planification financière, Santé, Militaire ... ) d’une
manière optimale. C’est la discipline des méthodes scientifiques utilisable pour élaborer de
meilleures décisions. Elle peut être 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.

Modélisation mathématique
La modélisation mathématique est l’ensemble de démarche qui considère une situation réelle
et la transforme en un problème mathématique afin d’obtenir une solution de la situation de
départ, La programmation linéaire est une branche des mathématiques appliquées et plus
précisément de l'optimisation dont l'objectif est de minimiser ou maximiser une fonction
numérique à plusieurs variables sachant que ces dernières sont liées par des relations appelées
contraintes. Le principe de la programmation linéaire est fondé sur le fait que :
1) La fonction à optimiser appelée Fonction Objectif a une expression linéaire.

2) Les expressions des contraintes sont tous linéaires.

3) Problème linéaire sous sa forme canonique, s'écrit sur la forme suivante :


Modélisation :
Pour modéliser un problème linéaire, il faut suivre les étapes suivantes :

1- Identifier : les variables principales ou les variables de décision du problème.


2- Exprimer : la fonction objective en termes des variables identifiées en précisant s’il s’agit
d’un problème à maximiser ou à minimiser.
3- Formuler : les contraintes sous forme d’équations et (ou) d’inéquations linéaires.

Exemple d’application :
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.

Hypothèses, 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


1heure ;
La production d’une unité de B nécessite 2 kg de p et 4 kg de q. et utilise la machine m durant
2heure ;
Les profits réalisés sont de 50 CAD par unité de A et 60 CAD par unité de B.

L’objectif que poursuit l’entreprise est de maximiser le profit qu’elle pourra tirer, par jour, de
ces deux produits en utilisant au mieux ses ressources.

A B Dispo/jour
M 1h 2h 8h
P 2kg 2kg 10kg
Q 9kg 4kg 36kg
Profit unit. 50cad 60cad

Quelles sont les informations dont doit disposer le directeur de l’entreprise pour considérer que
son problème est résolu ?

Il suffit de connaitre la quantité du produit A et la quantité du produit B à fabriquer


quotidiennement.

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

Additionner les bénéfices à tirer de chacun des deux produits.


• Pour le produit A, le bénéfice est de 50 CAD par unité et on fabrique X 1 unités ; cette
production lui rapporte donc un profit de (50* X1) CAD ;

• De même, la quantité X2 du produit B lui permet de faire un profit de (60* X2) CAD. Le
profit total à tirer des deux produits s’élève donc à (50* X1 + 60* X2).
Donc on note ce profit total par Z, et laisserons implicite l’unité monétaire :

Z = 50*X1 + 60*X2
• Z est une fonction qui, à chaque plan de production (une quantité de A, une quantité de
B), associe le nombre de CAD Dollar Canadien 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. Maximiser Z où Z = 50*X1 + 60*X2

Le temps d’utilisation de la machine m pour fabriquer les produits A et B ne peut


pas excéder les 8 heures.

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é de X1 calcule ainsi : 1 heure/ (unité
de A) × X1 (unité de A) = X1 heures On procède de la même manière pour le produit B ; 1 heure/
(unité de B) × X2 (unité de B) = 2×X2 heures.

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


X1 + 2 X2 ≤ 8

En s’inspirant de la contrainte relative à la machine, ces contraintes s’écrivent tout


naturellement,

2 X1 + 2 X2 ≤ 10 (p)
9 X1 + 4 X2 ≤ 36 (q)

Contrainte de positivité : Elle assure que la solution ne comporte pas des valeurs négatives
(inacceptables).

X1, X2 ≥ 0

Le modèle se résume ainsi,

Optimisation linéaire
Dans ce chapitre, on va aborder la problématique de la programmation linéaire, la méthode du simplexe
et la dualité. Afin de formuler un problème linéaire, on doit déterminer les variables de décision.il faut
identifier les paramètres et décrire la fonction objectif et enfin, il est important d’expliciter les
contraintes et les bornes sur les variables de décision, la fonction objectif est celle qu’on veut la
minimiser ou maximiser. Le simplex est un algorithme qui permet de résoudre un problème
d’optimisation linéaire, c’est une méthode itérative, à chaque passage d’un point extrême à l’autre
jusqu’à obtenir la solution optimale s’il y’a une, une solution de base réalisable est un point extrême qui
respecte toutes les contraintes et les bornes d’un problème.

Méthode du Simplex:
1. Première étape : forme standard


 Si on augmente ⇗ Xw de 1 unité, la fonction Objectif augmente de 5.

 Si on augmente ⇗ Xz de 1 unité, la fonction Objectif augmente de 4.

Alors on choisit Xw :
I. Variable en base e1, e2, e3, e4, e5, e6.

II. Variable hors base Xw, Xz.

Calcul des ratios :


Alors Xz est la variable sortante.

Alors Xz entre dans la base, e2 sort de la base.

Dualité:
La dualité est un concept en optimisation qui relie deux problèmes entre eux : le problème primal et le
problème dual. Le problème primal est le problème original, tandis que le problème dual est le problème
associé. Les deux problèmes ont la même fonction objectif, mais les contraintes sont inversées.
Dans un problème de minimisation, les contraintes du primal sont supérieures ou égales au membre de
droite, tandis que les contraintes du dual sont inférieures ou égales au membre de droite. Dans un
problème de maximisation, les contraintes du primal sont inférieures ou égales au membre de droite,
tandis que les contraintes du dual sont supérieures ou égales au membre de droite.
Les variables du primal et du dual sont également inversées. Dans un problème de minimisation, les
variables du primal sont positives, tandis que les variables du dual sont négatives. Dans un problème de
maximisation, les variables du primal sont négatives, tandis que les variables du dual sont positives.
La dualité peut être utilisée pour quantifier l'impact de la modification des contraintes sur la fonction
objectif. Par exemple, si nous modifions une contrainte du primal, cela aura un impact sur la solution du
problème dual. La solution du problème dual nous donnera une borne inférieure pour la solution du
problème primal.
La dualité peut également être utilisée pour résoudre des problèmes d'optimisation. Si nous pouvons
résoudre le problème dual, nous pouvons alors utiliser cette solution pour trouver une solution au
problème primal.
Chaque problème d’optimisation a un problème associé qui est nommé le dual.
Les contraintes et les variables sont inversées dans chaque problème, les coefficients de la fonction
objectif deviennent les membres de droite des contraintes dans le dual et que les membres de droites
des contraintes du primal deviennent les coefficients de la fonction objectif du dual. Les variables duales
y sont associées à chaque contrainte du problème primal. Avant d’aborder les règles de transformation,
L’étude de la dualité nécessite que le problème soit écrit sous forme canonique. Pour écrire le problème
dual associé à un problème primal, les règles suivantes s’appliquent. Si les contraintes du primal sont du
sens forme canonique, alors les variables duales auront des bornes supérieures ou égales à 0. Au
contraire, si les contraintes sont du sens inverse de la forme canonique, alors les variables duales sont
inférieures ou égales à 0. Finalement, si les contraintes du primal en sont d’égalité, alors les variables du
dual sont libres. Voici un exemple de dualité. Soit le problème primal suivant :

Optimisation en nombres entiers :


Un problème d'optimisation en nombres entiers est un problème d'optimisation dont toutes les variables
sont contraintes à ne prendre que des valeurs entières.
• Variables discrètes : nombre d'objets à considérer, nombre d'actions à effectuer, etc.
• Nombres d'ouvriers à affecter à un chantier.
• Variables binaires (0/1) : oui/non, allumer/éteindre, etc.
• Allumer la climatisation ou pas.

La relaxation linéaire est une méthode qui consiste à interpréter de façon continue un
programme linéaire en nombres entiers, lorsque l’espace des solutions admissibles passe des entiers aux
réels pour un problème linéaire et c’est le même programme linéaire dans lequel on a enlevé les
contraintes d’intégrité. La relaxation est basée sur le fait que l’ensemble des entiers est inclus dans
l’ensemble des réels.

On considère qu’on a un certain problème R où va minimiser une fonction objectif f de x sous la


contrainte que x doit appartenir à l’ensemble des entiers :

À chaque étape, la méthode évalue la solution partielle obtenue et utilise une borne inférieure
pour éliminer les branches qui ne peuvent pas conduire à une meilleure solution que celle déjà trouvée.
Cela permet de réduire considérablement l'espace de recherche et d'obtenir une solution optimale plus
rapidement.

Elle consiste à explorer toutes les solutions possibles en divisant le problème initial en sous-
problèmes plus petits, appelés "branches". La méthode du "Branch and Bound" est une technique
utilisée en programmation linéaire pour résoudre des problèmes d'optimisation.

Comment construire une borne inférieure sur Z* ?

Il suffit de donner une solution réalisable pour ce problème.


Comment construire une borne supérieure sur Z* ?

Résoudre le problème relaxé (entiers)

La méthode Branch and Bound :


Pas 0 - Résoudre la relaxation linéaire :

P0 est une solution de la relaxation linéaire :

Figure 1 Région Réalisable


Remarque :

La solution Z0 est inacceptable car elle viole les contraintes d’inégalité des variables (Entiers naturels).

Première borne supérieur sur Z* :

Pas 1 – Brancher sur une variable de séparation non-entière :

 Prendre la variable la plus proche d’un entier.


 Si la variable choisie Xk a la valeur fractionnaire N + ε, on imposera :
Soit Xk ≤ N Soit Xk ≥ N + 1

Figure 3 Arbre de Branch and Bound. Figure 2 Région Réalisable

Pas 2 – Choix du nœud à diviser :


Choisir le problème dont la relaxation fournit la meilleure valeur de la fonction objectif (la plus grande en
cas de maximisation).

Conclusion :

Il y a trois raisons de couper une branche dans l’arbre :

1- Lorsque la relaxation linéaire obtenue est non réalisable.


2- Lorsque la relaxation linéaire obtenue fournit une solution entière.
3- Lorsque la valeur de la borne inférieure à la valeur de la meilleure solution entière obtenue.

Implémentation avec Excel et Python :


1. Application en Python :

On résout un problème de programmation linéaire en utilisant la bibliothèque Pulp, qui est un solveur de
problèmes d'optimisation linéaire et mixte entiers pour Python. Le problème lui-même consiste à
maximiser une fonction objective linéaire sous certaines contraintes.

Variables de décision :
W_series : Variable continue représentant la quantité de la série W.
Z_series : Variable continue représentant la quantité de la série Z.
Objectif :
Maximiser la fonction objectif suivante :

2. Application en Excel :
Objectif 21
W-series Z-series
5 4
Valeur 3 1,5
Constraints Disponibilite
Composantes A 24 6 4 ≤ 24 max 5Xw + 4Xz
Cpmposantes B 6 1 2 ≤ 6 6Xw + 4 Xz ≤ 24
Limite -1,5 -1 1 ≤ 1 1Xw + 2Xz ≤ 6
Xw + Xz ≤ 1
Bornees Min Max 0 ≤ Xz ≤ 2
W-series 0 Xw ≥ 0
Z-series 0 2

Formation en ligne:
Comment la recherche opérationnelle peut-elle éclairer nos décisions? Bien plus qu'une simple boîte à
outils pour les responsables de la planification quantitative, la recherche opérationnelle constitue une
véritable approche de pensée qui vise à améliorer chaque étape du processus, et non simplement à
accomplir des tâches de manière routinière.

L'essence de la recherche opérationnelle réside dans sa capacité à identifier les problèmes qui
nécessitent une résolution et à rechercher des perspectives novatrices, allant au-delà des simples
chiffres. Dans la réalité de notre quotidien, nous sommes souvent confrontés à des situations de
compromis. Par exemple, considérons le processus de production avec ses coûts de mise en course. À
chaque nouveau lot produit, il y a un coût de mise en route, mais si nous produisons en continu, cela
entraîne une accumulation de stocks qui engendre également des coûts. Trouver l'équilibre entre le coût
des stocks et le coût de mise en route devient alors crucial.
Un autre exemple concerne la proximité des entreprises avec leurs clients, ce qui permet d'accélérer les
livraisons et de réduire les coûts de transport. Cependant, ériger un centre de distribution en plein cœur
des villes peut s'avérer exorbitant. Comment trouver le juste milieu entre les coûts de transport et les
coûts de localisation des installations pour parvenir à une solution optimale ?

Prenons un cas concret d'une entreprise avec trois directeurs chargés des décisions relatives à la
production, à l'inventaire et à la distribution. Habituellement, ces responsables prennent leurs décisions
indépendamment les uns des autres ou bien le directeur le plus puissant impose ses décisions aux autres
départements. Malheureusement, cela peut conduire à des solutions non optimales. La recherche
opérationnelle propose une approche globale qui tient compte des interactions entre les différents
départements et décisions, permettant ainsi d'améliorer la performance et l'efficacité globales de
l'entreprise.

En somme, la recherche opérationnelle dépasse largement le simple cadre de résolution de problèmes


quantitatifs. C'est une démarche intellectuelle qui encourage à repenser les méthodes existantes et à
rechercher des solutions innovantes pour rendre les processus plus efficaces et harmonieux. Elle offre
une vision globale et systémique des défis auxquels nous faisons face, ouvrant ainsi la voie vers une prise
de décision éclairée et optimale dans un monde complexe et en constante évolution.

Conclusion :
La recherche opérationnelle sert de guide pour une prise de décision efficace grâce à ses
composants de base de modélisation mathématique, d'optimisation linéaire, d'optimisation
d'entiers et de leurs implémentations pratiques à l'aide d'Excel et de Python. Le fondement de
la recherche opérationnelle réside dans l'art de la modélisation mathématique, où des
problèmes complexes du monde réel sont distillés dans des cadres mathématiques structurés.
Optimisation linéaire : le fondement des techniques d'optimisation, l'optimisation linéaire,
s'articule autour de l'optimisation d'une fonction objectif linéaire soumise à des contraintes
linéaires. Des algorithmes comme la méthode du simplexe et les approches graphiques
dévoilent des solutions optimales dans des scénarios où des variables continues sont en jeu.
Cependant, cette approche se heurte à des limites lorsqu'il s'agit de décisions basées sur des
nombres entiers, jetant ainsi les bases de l'optimisation des nombres entiers.
L'optimisation des nombres entiers va encore plus loin en introduisant des variables de
décision discrètes, reflétant des scénarios du monde réel qui exigent des résultats en nombre
entier. Des techniques telles que les méthodes Branch and Bound permet l'exploration de
solutions discrètes, offrant une représentation plus précise des processus de prise de décision.

En conclusion, la recherche opérationnelle sert de guide aux organisations dans le labyrinthe de


la prise de décision. La modélisation mathématique donne vie aux problèmes, tandis que les
techniques d'optimisation linéaire et entière affinent les décisions dans des domaines continus
et discrets.

Vous aimerez peut-être aussi