Previous: OrdonnancementOrdonnancement Up: Recherche opérationnelle et Optimisation DiscrèteRecherche opérationnelle et Optimisation Discrète Next: Travaux pratiquesTravaux pratiques
Document also available in PDF, Postscript, DVI, pure text, LaTeX and LyX.

Conclusion



Chapitre 1   Conclusion

1.1   Qu'est-ce qu'un problème d'optimisation discrète ?

On a un ensemble fini, et on veut minimiser une fonction définie sur cet ensemble.

Facile, il suffit d'énumérer tous les éléments de l'ensemble!

Sauf que l'ensemble est habituellement très gros ...

1.2   Comment aborder un tel problème ?

L'essentiel est de trouver un bon modèle:

Un tout petit changement de modèle peut entrainer de gros changements de complexité!

(Cf. ordonnancement).

Alors, quelles questions se poser ?

  1. Quelles sont les variables ? (comment mesurer une solution au problème)
  2. Quelles sont les contraintes ?

  3. Quelle est la fonction à optimiser ?

Exemple 1   Problème du boucher.

1.3   Reconnaître les difficultés

1.3.1   Problèmes de décision

Exemple 2   Problème du sac à dos

1.3.2   Problèmes en entiers (discret<-> continu)

Exemple 3   Résolution d'équations diophantienne (équations linéaires en entiers)

Une droite contient-elle un point à coordonnées entières ?

Démontrer que
(2)1/2, e ou pi sont irrationnels n'est pas trivial.

1.4   Modèles et méthodes polynomiales

1.4.1   Programation linéaire

Principe: simplifier le problème en le rendant continu.

Exemple 4   Recherche de couplage max dans un graphe biparti.
Plusieurs modèles de plus en plus simples:

  1. Programmation linéaire générale

  2. Problèmes de transport, avec ou sans contraintes

  3. Problèmes de flot

1.4.2   Algorithmes dans les graphes, ...

1.5   Problèmes non-polynomiaux

La plupart du temps, il n'y a pas d'algorithme polynomial, et on est obligé de passer à des méthodes énumératives.

Comment gérer l'explosion combinatoire?

En fait la plupart des idées ci-dessous sont parfaitement naturelles: vous les utilisez déjà intuitivement dans la vie de tous les jours.

1.5.1   Méthodes arborescentes

Organiser la recherche exhaustive, de façon à examiner des solutions proches les unes des autres, et limiter les recalculs.

1.5.2   Restreindre le domaine de recherche

Rendre faisable une recherche exhaustive en restreignant le domaine de recherche.

Minorer et majorer la fonction objectif

  1. Résolution approchée par des heuristiques -> minoration

    Exemple 5   Utiliser Coffman-Graham pour ordonnancer des tâches unitaires sur 3 processeurs ou plus.
  2. Méthodes de relaxation -> majoration

    Relâcher certaines contraintes

    Exemple 6   Enlever la contrainte d'intégralité dans un problème de programmation linéaire général.
  3. Trouver un problème dual -> majoration

    Si on a un théorème min-max, c'est encore mieux

Restreindre le domaine de recherche à un sous-ensemble dominant

Exemple 7   Pour l'ordonnancement de tâches unitaires, on peut toujours trouver un ordonnancement optimal calé à gauche.
Un tel sous-ensemble de solutions est dominant.

On peut restreindre le domaine de recherche à ce sous-ensemble.

Exemple 8   Pour l'ordonnancement de tâches sans contraintes de resources, cette approche est suffisante pour donner un algorithme polynomial (méthode PERT).

Programmation dynamique

Utiliser l'indépendances de certaines décisions pour contracter des branches similaires dans un arbre de recherche.

1.5.3   «C'est pas parfait, mais ca fera l'affaire»

Pour beaucoup de problèmes, il existe des algorithmes polynomiaux donnant une solution approchée avec garantie de qualité (à moins de x% de la solution optimale).

C'est très souvent largement suffisant dans les applications.

Voire mieux: une famille d'algorithmes An de complexité polynomiale tels que:

Exemple 9   Dans une méthode arborescente,
On peut donc complèment choisir, suivant les besoins, un compromis vitesse / qualité.

Exemple 10   Algorithme LLL.

1.6   À vous de jouer!

Références

[Carlier_Chretienne.PO]
Problèmes d'ordonnancement, Modélisation, Complexité, Algorithmes; J. Carlier, P. Chrétienne, Masson, Études et recherches en informatique, 1988.
[Sakarovitch.OC]
Optimisation combinatoire (2 tomes), Michel Sakarovitch, Hermann

Previous: OrdonnancementOrdonnancement Up: Recherche opérationnelle et Optimisation DiscrèteRecherche opérationnelle et Optimisation Discrète Next: Travaux pratiquesTravaux pratiques
Conclusion / UCBL, Maîtrise MIM, Recherche Opérationnelle / Nicolas M. Thiéry
Last modified: Fri Jun 25 12:06:36 2004