La recherche opérationnelle est une discipline dont le but est de fournir des méthodes pour
répondre à un type précis de problème, c’est-à-dire à élaborer une démarche universelle pour
un type de problème qui aboutit à la ou les solutions les plus efficaces. La particularité de la
recherche opérationnelle est que les méthodes proposées sont des démarches rationnelles
basées sur des concepts et outils mathématiques et/ou statistiques.
Généralement, ces méthodes sont employées sur des problèmes tels que leur utilisation
"manuelle" devient impossible. C’est pourquoi, du fait qu’elles sont rationnelles, les
démarches proposées par la recherche opérationnelle peuvent être traduites en programmes
informatiques.
Cette traduction d’une démarche en un programme informatique n’est pas sans difficulté.
Tout d’abord, le temps d’exécution du programme résultant et/ou la place occupée dans la
mémoire de l’ordinateur peuvent ne pas être acceptables. Ainsi, une méthode en recherche
opérationnelle sera jugée sur ces critères de temps et de place. Plus une méthode sera rapide
et peu gourmande en mémoire, plus elle sera considérée bonne.
Les ordinateurs ont une structure particulière qui fait que toutes les propriétés des
mathématiques traditionnelles ne sont pas toujours respectées. Ainsi, une démarche prouvée
fonctionner admirablement en théorie peut s’avérer être complètement inexploitable en
pratique. Notamment, les nombres réels dans un ordinateur ne peuvent pas être représentés
de manière exacte, ils sont arrondis. On voit donc facilement qu’une répétition excessive
d’arrondis dans un calcul peut entraîner des erreurs importantes dans les résultats finaux. Les
méthodes employées en recherche opérationnelle doivent prendre en compte ce genre de
problème.
Dans ce cours, nous verrons différents outils de recherche opérationnelle sans apporter de
justifications mathématiques très détaillées et rigoureuses. Après quelques exemples qui
permettront de mieux cerner le domaine de la recherche opérationnelle, nous introduirons un
outil à la fois graphique et théorique: les graphes. Afin de mieux appréhender la complexité
d’un problème ou la rapidité d’un algorithme, nous nous intéresserons à la théorie de la
complexité. Enfin, nous verrons un autre outil important de la recherche opérationnelle qui
est la programmation linéaire. L’avantage de cet outil est dapporter une solution générique
à la résolution de nombreux problèmes. De plus, cet outil est disponible sous différentes
formes pour une utilisation informatique. Voici le plan du cours.
Présentation
Les graphes
RECHERCHE OPERATIONNELLE
INTRODUCTION
PLAN DU COURS
1 de 3
Informatique / Recherche operationnelle / Presentation (French)
Les arbres
Représentation des graphes
Efficacité des algorithmes, complexité des problèmes
Recherche du plus court chemin
Ordonnancement, recherche du plus long chemin
Recherche du flot maximum
Programmation linéaire
Chemin le plus court / le plus long
Soit un ensemble de villes et des chemins directs reliant ces villes entre elles. Le
problème dit "du plus court chemin" consiste à trouver pour une ville de départ donnée
et une ville d’arrivée donnée le chemin le plus court qui relie ces deux villes. Le
problème peut également être de trouver un chemin le plus court pour chaque couple
de villes. Pour certains problèmes, trouver le plus long chemin entre deux points peut
être intéressant.
Ordonnancement / planification
Considérons la gestion d’un grand projet. Il est constitué de différentes étapes à
réaliser. Il est logique de penser que certaines tâches doivent être effectuées avant
d’autres alors que certaines peuvent très bien être effectuées en même temps. Ainsi, on
établit une certaine relation d’ordre entre les étapes. Un premier problème consiste à
trouver une planification des tâches qui aboutisse à la réalisation du projet en un
minimum de temps. Ensuite, il peut être intéressant de détecter les étapes dites
"critiques" dont le moindre retard peut affecter toute la suite du projet.
Flot maximum
Soit des châteaux d’eau ayant un débit constant. Ils desservent un certain nombre de
villes, chacune ayant des besoins quantifiés constants. Leau est acheminée à travers
des conduits dont le débit maximum est connu. Le problème est de trouver un moyen
de satisfaire au mieux les demandes de chaque ville. En d’autres termes, essayer
d’apporter le plus deau possible vers les villes.
Flot de coût minimum
Il s’agit d’un problème semblable à celui du flot maximum mais on suppose en plus
qu’un coût fonction du débit est associé à l’utilisation d’un conduit. Le problème
devient alors de satisfaire les villes mais de la manière la moins onéreuse.
Sac à dos
Un randonneur prépare son sac à dos pour partir en excursion. Bien entendu, il veut
EXEMPLES
2 de 3
Informatique / Recherche operationnelle / Presentation (French)
éviter d’avoir un sac trop lourd et décide de se limiter dans le choix des objets qu’il
emporte afin de ne pas dépasser un certain poids. Cependant, il veut emporter le
maximum de choses utiles. Pour cela, il affecte une valeur quantitative à chaque objet
en plus de son poids (plus la valeur est importante, plus le randonneur juge l'ob jet
important). Le problème peut donc se formuler de la manière suivante: trouver
l’ensemble des objets dont la somme des utilités est maximum tout en ne dépassant pas
un poids fixé.
Affectation
Des modifications de postes sont effectuées dans une entreprise. Plusieurs personnes
doivent être affectées à de nouveaux postes. Ainsi, chacun classe par ordre de
préférence les postes qu’il veut occuper. Le problème ici est d’attribuer à chaque
personne un poste tout en essayant de satisfaire au mieux le souhait de chacun.
Voyageur de commerce
Un voyageur de commerce doit démarcher dans un certain nombre de villes. Il connaît
bien entendu la distance qui sépare les villes entre elles. Cependant, le voyageur de
commerce veut perdre le moins de temps possible dans ses déplacements. Le problème
est donc de trouver un chemin qui passe par toutes les villes une et une seule fois et qui
soit le court possible.
Dans tous ces exemples, il existe une méthode simple pour résoudre le problème. En effet, il
suffit d’énumérer toutes les possibilités et d’en dégager la ou les meilleures. Cependant, on
s’aperçoit que plus le problème est compliqué en terme d’éléments mis en jeu, plus le
nombre de possibilités croît de manière non pas linéaire (proportionnelle) mais plutôt
exponentielle. Par exemple, le problème d’affectation présenté précédemment avec 100
personnes a 100! (100 x 99 x 98 x ... x 1) solutions. Le simple fait de rajouter une personne
dans le problème va multiplier par 101 le nombre de solutions.
Généralement en recherche opérationnelle, on a souvent à traiter des problèmes dont le
nombre de solutions devient rapidement difficile à imaginer. Bien que les exemples vus ici
soient petits, il faut bien comprendre qu’en réalité, on sera confronté à des problèmes de
taille beaucoup plus importante. Ce qui explique que l’on cherche des méthodes toujours plus
efficaces pour résoudre les problèmes.
Copyright (c) 1999-2001 - Bruno Bachelet - bachelet@ifrance.com - http://bruno.bachelet.net
La permission est accordée de copier, distribuer et/ou modifier ce document sous les termes de la licence GNU Free Documentation License,
Version 1.1 ou toute version ultérieure publiée par la fondation Free Software Foundation. Voir cette licence pour plus de détails
(http://www.gnu.org).
3 de 3
Informatique / Recherche operationnelle / Presentation (French)
Un graphe est un ensemble de noeuds qui sont reliés entre eux par des arcs.
Mathématiquement, un graphe est représenté par un couple de deux ensembles G = (X;U) où
X est l’ensemble des noeuds et U l’ensemble des arcs.
Un arc relie deux noeuds entre eux, il sera donc représenté par un couple (x;y)x et y sont
des noeuds. Un arc peut être orienté, c’est-à-dire que l’ordre de x et de y est important dans le
couple (x;y). Un arc peut ne pas être orienté et dans ce cas, l’ordre de x et de y dans le couple
(x;y) na aucune importante, donc (x;y) = (y;x). Les arcs sont représentés de la manière
suivante.
Arc orienté:
Arc non orienté:
Remarque
Un arc non orienté peut toujours être transformé en une situation où l’on na que des arcs
orientés.
C’est pourquoi, dans la suite du cours, on utilisera le plus souvent des graphes orientés, c’est-
à-dire des graphes dont les arcs sont tous orientés.
On appelle boucle un arc dont l’extrémité initiale est égale à son extrémité finale. Par
exemple, (x;x) est une boucle.
1. LES GRAPHES
DEFINITIONS ET THEOREMES
Graphe
Arc
Boucle
Adjacence
1 de 10
Informatique / Recherche operationnelle / Les graphes (French)
Pour un arc u = (x;y) on dit que:
x est adjacent à y,
y est adjacent à x,
x et y sont adjacents à u,
u est adjacent à x et y.
Le demi-degré extérieur d’un noeud est le nombre d’arcs adjacents qui en partent.
On le note d+(x) et d+(x) = |{u U | u = (x;y) où y X}|.
Le demi-degré intérieur d’un noeud est le nombre d’arcs adjacents qui y arrivent.
On le note d-(x) et d-(x) = |{u U | u = (y;x) où y X}|.
Le degré d’un noeud est le nombre d’arcs qui lui sont adjacents.
On le note d(x) et d(x) = d+(x) + d-(x).
Exemple
Dans le graphe suivant, d+(x) = 3, d-(x) = 2, d(x) = 5.
Un graphe est dit régulier si les degrés de tous ses sommets sont égaux.
Un graphe est dit complet si tous les noeuds sont adjacents deux à deux.
Autrement dit, (x;y) U (y;x) U.
Degré
Graphe régulier
Graphe complet
2 de 10
Informatique / Recherche operationnelle / Les graphes (French)
1 / 51 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !