RECHERCHE OPERATIONNELLE
 
 
INTRODUCTION
 

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.

 
PLAN DU COURS
 

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 d'apporter 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.

 
EXEMPLES
 
  • 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. L'eau 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 d'eau 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 é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'objet 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-2016 - Bruno Bachelet - bruno@nawouak.net - http://www.nawouak.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).