Introduction File

publicité
Introduction à la Recherche Opérationnelle
Frédéric Meunier
28 septembre 2016
Ecole des Ponts, France
4
5
???????
5
1
4
11
5
9
10
8
7
3
10
5
8
2
10
12
10
2
7
1
6
3
7
10
6
4
13
Monsieur R. doit organiser sa tournée.
4
5
5
1
4
11
5
9
10
8
7
3
10
5
8
2
10
12
10
2
7
1
6
3
7
10
4
13
Monsieur R. a organisé sa tournée.
6
A 25 villes, cela fait 24! = 24 × 23 × 22 × · · · × 2 × 1
possibilités, soit environ 6.204 × 1025 possibilités.
A la main, à raison d’une possibilité par seconde, il faudrait
environ 1.976 × 1016 années.
Avec un ordinateur, à raison d’1 million de possibilités par
seconde, il faudrait environ 19 milliards d’années.
Plan
• Qu’est-ce que la Recherche Opérationnelle ?
• Déroulement du cours.
• Notions de bases (un peu de théorie).
Qu’est-ce que la Recherche
Opérationnelle ?
La Recherche Opérationnelle
Ce que nous venons de voir, c’est un problème typique de la
Recherche Opérationnelle : problème du voyageur de
commerce.
Recherche Opérationnelle, ou RO :
discipline des mathématiques appliquées traitant des questions
d’utilisation optimale des ressources en entreprise.
Exemples de problème de RO
4
5
5
1
4
11
5
9
10
• trouver la meilleure tournée
10
5
8
10
12
10
8
7
3
2
2
7
1
6
3
7
10
6
4
13
• organiser le meilleur emploi du temps
• concevoir le réseau le plus robuste
• remplir de manière optimale un conteneur
• positionner intelligemment ses entrepôts
A
D
80
70
0
30
30
Début
• ordonnancer des tâches sur des machines
Fin
E
B
0
50
80
0
F
C
30
40
Les Pères
Monge, Blackett, Dantzig.
A partir des années 50, fort développement de la RO :
• laboratoires (mathématiques, informatique),
• entreprises (supply chain, transport, télécommunications,
etc.)
Deux mots-clés : Modélisation et Optimisation.
Progrès des performances sur le problème du
voyageur de commerce
1954
1971
1975
1977
1980
1987
1987
1987
1994
1998
2001
2004
Dantzig, Fulkerson, Johnson
Held, Karp
Camerini, Fratta, Maffioli
Grötschel
Crowder, Padberg
Padberg, Rinaldi
Grötschel, Holland
Padberg, Rinaldi
Applegate, Bixby, Chvátal, Cook
Applegate, Bixby, Chvátal, Cook
Applegate, Bixby, Chvátal, Cook
Applegate, Bixby, Chvátal, Cook, Helsgaun
Et ce n’est pas avant tout une question de puissance
d’ordinateur.
49 villes
64 villes
67 villes
120 villes
318 villes
532 villes
666 villes
20 392 villes
70 397 villes
130 509 villes
150 112 villes
240 978 villes
Déroulement du cours
“Fondements”
1. Plus courts chemins et programmation dynamique
2. Flots
3. Graphes bipartis
4. Problèmes difficiles : programmation linéaire en nombres entiers,
heuristiques et métaheuristiques
e
− k zT
B
“Problématiques”
1. Localisation d’entrepôts
2. Remplissage de conteneurs
3. Conception de réseau
4. Tournées
A
D
80
70
0
30
30
Début
5. Ordonnancement
Fin
E
B
0
50
80
0
F
C
30
40
Intervenants extérieurs
A cela s’ajouteront trois interventions d’1h par des personnes
du monde industriel
• Bouygues.
• Air France.
• Saint-Gobain.
Support de cours et mode d’évaluation
Support Polycopié.
Page web Educnet.
Mode d’évaluation Par ordre décroissant de pondération.
1. Contrôle final de 2h45 le 1er février (c)
2. Un miniprojet (p)
Deux miniprojets, à commencer sur les
séances en autonomie (pi pour i = 1, 2)
3. Deux contrôles surprises de 20 minutes (qi
pour i = 1, 2)
4. Participation, assiduité.
1
(max(q1 , q2 ) + 3p + 5c).
9
Si note < 8, pas de rattrapage. Si 8 ≤ note < 10,
rattrapage.
note =
Séances en autonomie
Les deux séances en autonomie seront les 7 décembre et 11
janvier.
7 décembre : Modélisation par la programmation linéaire en
nombres entiers
• planification de la production
• conception d’une grille horaire pour du transport ferroviaire
11 janvier : Régulation d’un système de vélos partagés
Notions de base
Quelles notions ?
1. Modélisation.
2. Optimisation.
3. Graphes.
4. Problèmes.
5. Algorithmes et Complexité.
Modélisation
Modèle =
Un modèle mathématique est une traduction de la
réalité pour pouvoir lui appliquer les outils, les
techniques et les théories mathématiques, puis
généralement, en sens inverse, la traduction des
résultats mathématiques obtenus en prédictions ou
opérations dans le monde réel.
Graphes
Brique de base en modélisation.
Graphe : G = (V , E)
V : ensemble de sommets
E : ensemble d’arêtes ; à toute arête correspond une paire de
sommets.
v3
v3 v 3
v5
v1 v 2
v2
v1
v2 v 5
v5 v 6
v1 v 2
v3 v 4
v4
v6
degré d’un sommet : nombre d’arêtes incidentes au sommet.
Graphes complets, graphes bipartis
Graphe complet : toute paire de sommets est reliée par une
arête.
Graphe biparti : sommets peuvent être partitionnés en deux
parties n’induisant chacune aucune arête.
Graphes : Chaîne
Chaîne : suite de la forme
v0 , e1 , v1 , . . . , ek , vk
vi ∈ V , ej ∈ E avec ej = vj−1 vj .
Chaîne ne passant jamais plus d’une fois par une arête :
chaîne simple.
Chaîne ne passant jamais plus d’une fois sur un sommet :
chaîne élémentaire.
Chaîne simple passant par toutes les arêtes d’un graphe :
chaîne eulérienne.
Chaîne élémentaire passant par tous les sommets du graphe :
chaîne hamiltonienne.
Graphes : Chaîne hamiltonnienne
Hamilton inventa l’“Icosian Game” au XIXe siècle, mais ce fut
un bide commercial.
Hamilton (1805–1865)
Graphes : connexité, cycles
Graphe connexe : entre toute paire de sommets, il y a une
chaîne.
Cycle : chaîne simple fermée.
Cycle élémentaire, hamiltonien, eulérien.
Graphes : Coloration
Coloration : c : V → N (N= couleurs).
Coloration propre : pour toute paire de voisins u, v, on a
c(u) 6= c(v).
nombre minimum de couleurs d’une coloration propre : nombre
chromatique (noté χ(G))
Graphes : Couplage et couverture
Ensemble d’arêtes deux à deux disjointes : couplage
Ensemble de sommets tel que toute arête touche au moins un
de ses éléments : couverture
: couverture par les sommets du graphe
Les ponts de Königsberg
Euler, 1736.
Euler (1707–1783)
Chaîne et cycle eulériens : existence
Modélisation
Un graphe connexe admet une chaîne eulérienne si et
seulement si il possède au plus deux sommets de degré impair.
Un graphe connexe admet un cycle eulérien si et seulement si
il n’a pas de sommet de degré impair.
Optimisation
Min
f (x)
s.c. x ∈ X .
f : critère.
« s.c. » = « sous contraintes »
X : ensemble des solutions réalisables
« x ∈ X » : contraintes du programme.
Parmi les solutions réalisables, on veut chercher une solution
optimale x ∗ , i.e. une solution réalisable qui minimise le critère.
Minimisation : De l’importance des bornes inférieures
OPT = Min
f (x)
s.c. x ∈ X .
Toujours se demander s’il n’y a pas une borne inférieure simple
et de bonne qualité à OPT.
Une borne inférieure permet d’évaluer la qualité d’une solution
courante → évite de continuer à chercher des solutions et
éventuellement, montre l’optimalité d’une solution.
Coloration
Graphe coloré avec 5 couleurs: rouge, bleu, vert, jaune et noir.
Coloration et sous-graphe complet : une inégalité
cardinalité d’un sous-graphe complet
≤
nombre de couleurs dans une coloration propre.
La cardinalité maximale d’un sous-graphe complet de G se
note ω(G).
ω(G) ≤ χ(G).
Couplage
Couplage et couverture : une inégalité
Soit M un couplage et C une couverture par les sommets. Alors
|M| ≤ |C|.
τ (G) : cardinalité minimale d’une couverture
ν(G) : cardinalité maximale d’un couplage
ν(G) ≤ τ (G).
Problèmes
Problème :
• “Donnée”
• “Tâche” ou “Question”.
Exemples de problèmes
PROBLÈME DE LA CHAÎNE EULÉRIENNE
Donnée : Un graphe G = (V , E).
Question : G a-t-il une chaîne eulérienne ?
PROBLÈME DU COUPLAGE DE PLUS GRAND POIDS
Donnée : Un graphe G = (V , E), une fonction de poids
w : E → R+ .
Tâche : Trouver le couplage de G de plus grand poids.
Problème de décision, problème d’optimisation
Problème de décision : consiste à répondre ‘Oui’ ou ‘Non’ à
une question.
Problème d’optimisation : consiste à trouver l’optimum d’une
fonction.
Algorithmes et complexité
algorithme = suite d’opérations élémentaires implémentable
dans un ordinateur
Supposons donnés un problème P et un algorithme A qui le
résout. Se pose alors la question de son efficacité.
→ Théorie de la complexité.
Fonction de complexité
Fonction de complexité f (n) d’un algorithme : nombre
d’opérations élémentaires qu’il faut effectuer si la donnée est
de taille n.
Exemples :
Trier n entiers : O(n log(n)).
Tester l’existence d’un cycle eulérien : O(n + m).
Algorithme polynomial/exponentiel
Algorithme polynomial : fonction de complexité = O(na ) avec a
constante.
Sinon, algorithme exponentiel.
Fonction de complexité
n
n2
n3
n5
2n
10
0, 01 µs
0, 1 µs
1 µs
0, 1 ms
∼ 1 µs
20
0, 02 µs
0, 4 µs
8 µs
3, 2 ms
∼ 1 ms
Taille n
50
60
0, 05 µs
0, 06 µs
2, 5 µs
3, 6 µs
125 µs
216 µs
312, 5 ms
777, 6 ms
∼ 13 jours ∼ 36 années et 6 mois
TABLE: Comparaison de diverses fonctions de complexité pour un ordinateur
ffectuant 1 milliard d’opérations par seconde.
Une question de puissance des ordinateurs ?
Soit A un algorithme résolvant un problème P en 2n
opérations.
On a une machine qui résout P avec A en 1 heure jusqu’à
n = 438.
Si on a un machine 1000 fois plus rapide ?
Une question de puissance des ordinateurs ?
On a une machine qui résout P avec A en 1 heure jusqu’à
n = 438.
Machine 1000 fois plus rapide → en une heure, jusqu’à
n = 448.
Une question de puissance d’ordinateurs ?
Taille de l’instance la plus large que l’on peut résoudre en 1 heure
Fonction
Avec un ordinateur Avec un ordinateur Avec un ordinateur
de complexité
actuel
100 × plus rapide 1000 × plus rapide
n
N1
100N1
1000N1
n2
N2
10N2
31.6N2
n3
N3
4.64N3
10N3
n5
N4
2.5N4
3.98N4
2n
N5
N5 + 6.64
N5 + 9.97
3n
N6
N6 + 4.19
N6 + 6.29
TABLE: Comparaison de diverses fonctions de complexité.
Classe P
Problème (de décision) est polynomial ou dans P : il existe un
algorithme polynomial qui le résout.
Problème (de décision) est non-déterministiquement
polynomial ou dans NP : si la réponse est oui pour l’instance
considérée, il existe un certificat et un algorithme polynomial
qui permet de vérifier que la réponse est bien oui.
Classe NP
PROBLÈME DU CYCLE HAMILTONIEN
Donnée : Un graphe G = (V , E).
Question : G a-t-il un cycle hamiltonien ?
Pour F ⊆ E, on peut tester en temps polynomial si F est un
cycle hamiltonien.
F est un certificat.
Le problème du cycle hamiltonien est dans NP.
Classe NP
Proposition
P ⊆ NP.
Démonstration.
En cas de réponse ‘Oui’, la donnée est un certificat.
Problèmes NP-complets
problème de décision est NP-complet : s’il existe un algorithme
polynomial qui le résout, alors il existe un algorithme
polynomial pour tout problème NP.
On ne connaît pas d’algorithme polynomial résolvant un
problème NP-complet.
Theorem (Cook, 1970)
Il existe des problèmes NP-complets.
Exemple de problème NP-complet
PROBLÈME DU CYCLE HAMILTONIEN
Données : Un graphe G = (V , E).
Question : G a-t-il un cycle hamiltonien ?
est NP-complet.
Problèmes NP-difficiles
problème est NP-difficile : s’il existe un algorithme polynomial
qui le résout, alors il existe un algorithme polynomial pour tout
problème NP.
Différence avec NP-complet : pas nécessairement un problème
de décision.
Exemple : le problème du voyageur de commerce est
NP-difficile.
Les problèmes NP
NP-complets
NP
P
NP-difficiles
Question à 1 millions de $
?
P = NP.
offerts par la Fondation Clay.
Téléchargement