Introduction aux problèmes d’ordonnancement · 02/09/2014 3 I.1 Exemples de problèmes de RO (2)...

35
02/09/2014 1 M.J. Huguet DGEI / LAAS-CNRS 2014 - 2015 OPTIMISATION COMBINATOIRE Organisation Intervenants : MJ. Huguet & N. Jozefowiez Cours – IE – Projet Pré-requis : Algorithmique, Structures de Données, Complexité Graphes, Programmation Linéaire Programmation Logique, Intelligence Artificielle Domaine scientifique Recherche Opérationnelle – Optimisation Combinatoire – Satisfaction de Contraintes - Satisfiabilité Optimisation Combinatoire 2 En savoir plus Société Française de Recherche Opérationnelle et d’Aide à la Décision (ROADEF) Chercheurs / Enseignants Chercheurs Industriels http://www.roadef.org Challenge ROADEF/EURO Concours basés sur un problème posé par un industriel Association Française pour la programmation par Contraintes (AFPC) Chercheurs / Enseignants Chercheurs http://www.afpc-asso.org/ 3 Optimisation Combinatoire En savoir plus RO, Optimisation et Contraintes à Toulouse : http://www.toro-toulouse.fr/ LAAS : équipe ROC (ex. Mogisa) : http://www.laas.fr/MOGISA/ ENAC, ISAE, IRIT, IMT, ONERA, INRA-BIA Parcours RO du Master 2 Recherche IT Parcours IAICI du Master 2 Recherche IT 4 Optimisation Combinatoire

Transcript of Introduction aux problèmes d’ordonnancement · 02/09/2014 3 I.1 Exemples de problèmes de RO (2)...

Page 1: Introduction aux problèmes d’ordonnancement · 02/09/2014 3 I.1 Exemples de problèmes de RO (2) Sac à Dos (Knapsack Problem) Sélectionner un ensemble d’objets à placer dans

02/09/2014

1

M.J. Huguet

DGEI / LAAS-CNRS

2014 - 2015

OPTIMISATION COMBINATOIRE

Organisation

Intervenants : MJ. Huguet & N. Jozefowiez

Cours – IE – Projet

Pré-requis :

Algorithmique, Structures de Données, Complexité

Graphes, Programmation Linéaire

Programmation

Logique, Intelligence Artificielle

Domaine scientifique

Recherche Opérationnelle – Optimisation Combinatoire – Satisfaction de

Contraintes - Satisfiabilité

Optimisation Combinatoire 2

En savoir plus

Société Française de Recherche Opérationnelle et d’Aide à la

Décision (ROADEF)

Chercheurs / Enseignants Chercheurs

Industriels

http://www.roadef.org

Challenge ROADEF/EURO

Concours basés sur un problème posé par un industriel

Association Française pour la programmation par Contraintes

(AFPC)

Chercheurs / Enseignants Chercheurs

http://www.afpc-asso.org/

3

Optimisation Combinatoire

En savoir plus

RO, Optimisation et Contraintes à Toulouse :

http://www.toro-toulouse.fr/

LAAS : équipe ROC (ex. Mogisa) : http://www.laas.fr/MOGISA/

ENAC, ISAE, IRIT, IMT, ONERA, INRA-BIA

Parcours RO du Master 2 Recherche IT

Parcours IAICI du Master 2 Recherche IT

4 Optimisation Combinatoire

Page 2: Introduction aux problèmes d’ordonnancement · 02/09/2014 3 I.1 Exemples de problèmes de RO (2) Sac à Dos (Knapsack Problem) Sélectionner un ensemble d’objets à placer dans

02/09/2014

2

En savoir plus

Optimisation combinatoire (Tome 1 à 5) – Paschos Vangelis Th – Lavoisier,

Traité IC2, série Informatique et Systèmes d’Information

Résolution de problèmes de recherche opérationnelle par les méta-

heuristiques – Pirlot M et Teghem J. – Lavoisier, Traité IC2, série

Informatique et Systèmes d’Information

Métaheuristiques pour l’optimisation difficile, J. Dréo et al. – Eyrolles.

Optimisation multiobjectif, Y. Collette, P. Siarry, Eyrolles.

5 Optimisation Combinatoire

1. Exemples

2. Secteurs et Applications Industrielles

I : Quelques exemples

I.1 Exemples de problèmes de RO (1)

Ordonnancement / Planification

Ordonner la réalisation des différentes activités compte tenu de contraintes

temporelles, de séquencement, de ressources disponibles en quantité limité,

….

Exemple :

ordonnancer un projet

ordonnancer la production d’un produit, la réalisation de services

planification de prises de vue satellite

7 Optimisation Combinatoire

Exemple - Ordonnancement

Contexte

Ordonnancement

8 Optimisation Combinatoire

Page 3: Introduction aux problèmes d’ordonnancement · 02/09/2014 3 I.1 Exemples de problèmes de RO (2) Sac à Dos (Knapsack Problem) Sélectionner un ensemble d’objets à placer dans

02/09/2014

3

I.1 Exemples de problèmes de RO (2)

Sac à Dos (Knapsack Problem)

Sélectionner un ensemble d’objets à placer dans une unique boite (ie. un sac

à dos) pour maximiser un gain.

Ensemble d’objets avec caractéristiques

1 Boite avec 1 dimension (ou plusieurs)

9

Objets : poids + valeur

Boite : capacité maximale en poids

Optimisation Combinatoire

Exemple KP

Exemple :

Une entreprise dispose d’un budget total B pour financer certains projets

sélectionnés parmi un ensemble de n projets.

Chaque projet j a un coût c j et un gain attendu g j .

Quels projets l’entreprise doit-elle sélectionner pour maximiser son profit ?

Autre applications :

Chargement de véhicules

Découpe de matériaux

Gestion de portefeuilles financiers

Base algo de chiffrement asymétrique

10 Optimisation Combinatoire

I.1 Exemples de problèmes de RO (3)

Coloriage de graphes

Les entités adjacentes d’un problème ne peuvent avoir la même couleur

Définir la notion d’adjacence :

Par exemple : Utilisation d’une ressource commune

Exemple :

Emplois du temps (session de rattrapage) : placer des évènements sur des créneaux (les

couleurs)

Allocation de fréquences à des utilisateurs

11 Optimisation Combinatoire

Exemple coloriage

Emploi du temps

Allouer des créneaux horaires à des activités

Graphe :

Sommets = activités (matière + enseignant + classe)

Arêtes = contraintes de différence

Couleurs = les créneaux horaires possibles

12 Optimisation Combinatoire

Page 4: Introduction aux problèmes d’ordonnancement · 02/09/2014 3 I.1 Exemples de problèmes de RO (2) Sac à Dos (Knapsack Problem) Sélectionner un ensemble d’objets à placer dans

02/09/2014

4

I.1 Exemples de problèmes de RO (4)

Voyageur de commerce (Traveling Salesman Problem)

Dans un graphe déterminer un trajet de cout minimal passant une fois et une

seule par l’ensemble des sommets

Exemple : livraison clients

Tournées de véhicules (Vehicle Routing Problem)

Idem voyageur de commerce mais on dispose de plusieurs véhicules pour

parcourir tous les sommets

Exemple : collecte de déchets

13 Optimisation Combinatoire

Exemple : TSP

Recherche d’un circuit/chemin hamiltonien

Nombreuses variantes :

Pb symétrique ou non, fenêtres temporelles, ….

TSP : http://www.math.uwaterloo.ca/tsp/index.html

Concord : http://neos.mcs.anl.gov/neos/solvers/co:concorde/TSP.html

14 Optimisation Combinatoire

Exemple VRP

Contexte :

Très nombreuses variantes :

Fenêtres temporelles, véhicules hétérogènes, pick-up & delivery, multi-dépôt,

synchronisation …

Site : http://neo.lcc.uma.es/radi-aeb/WebVRP/

15 Optimisation Combinatoire

I.1 Exemples de problèmes de RO (5)

Bin Packing

Ranger des objets dans des boîtes de la manière la plus économique possible

(minimiser le nombre de boites)

Variantes : 1D, 2D ou 3D

Applications :

Rangement d’un ensemble de fichiers informatiques sur des supports

Problèmes de découpe de matière première

Logistique : problèmes de conditionnement

16 Optimisation Combinatoire

Page 5: Introduction aux problèmes d’ordonnancement · 02/09/2014 3 I.1 Exemples de problèmes de RO (2) Sac à Dos (Knapsack Problem) Sélectionner un ensemble d’objets à placer dans

02/09/2014

5

Exemple Bin Packing

Ensemble d’objets à 2 dimensions

Ensemble de Bin à 2 dimensions

Solution sans retournement avec retournement

17 Optimisation Combinatoire

1.2 Secteurs et Applications Industrielles (1)

Types de problèmes :

Planifier, Ordonnancer (Planning, Scheduling, Allocation)

Transporter (Routing,Transportation)

Découpe et Empilement (Cutting, Packing)

Secteurs économiques :

Secteur industriel (gestion production, stratégie)

Services, Hôpitaux, Administrations

Logistique et Transport

Aéronautique, Espace

Réseaux et Télécom, Systèmes Embarqués

Développement durable (gestion de l’énergie, de ressource, …)

etc.

18 Optimisation Combinatoire

1.2 Secteurs et Applications Industrielles (2)

Objectifs usuels

Temps

Argent

Quantité

Equilibrage (ex : utilisation de ressources)

Qualité de service

Robustesses

Mais aussi :

Sécurité

Environnement

19 Optimisation Combinatoire

II Caractéristiques des problèmes

Page 6: Introduction aux problèmes d’ordonnancement · 02/09/2014 3 I.1 Exemples de problèmes de RO (2) Sac à Dos (Knapsack Problem) Sélectionner un ensemble d’objets à placer dans

02/09/2014

6

II.1 Caractéristiques (1)

Existence d’un ensemble discret et fini de solutions

Problèmes Combinatoires

Existence de contraintes à satisfaire

restreignent l’ensemble des alternatives possibles

définissent les alternatives admissibles

Pas de fonction objectif Décision / Satisfaction

problème de satisfaction ou de décision

Si une fonction objectif : Optimisation Combinatoire

problème d’optimisation

21 Optimisation Combinatoire

II.1 Caractéristiques (2)

Résolution

Ensemble fini de solutions ordonnées en fonction de la valeur de l’objectif

Trouver une solution optimale :

Parcourir cet ensemble

Mais : taille trop importante pour tout énumérer

Pour un humain

Pour un outil informatique !

Ex : TSP avec n villes : (n)! Alternatives

si 10-12s pour générer et tester une alternative :

o N=10 3.6.10-6 s N = 15 1,3s

o N= 20 28 j N= 30 8.4 1012 an

22

Méthode permettant

de ne pas énumérer

l’ensemble des

alternatives !

Optimisation Combinatoire

II.2. Problèmes de Recherche Opérationnelle

(RO) (1)

Problèmes combinatoires

Ceux présentés

Outils : graphes, programmation linéaire

Problèmes stochastiques

trouver une solution optimale à un problème dont les données sont

incertaines,

l’incertitude est modélisée par des hypothèses probabilistes.

Exemple : minimiser le nombre de guichets pour que la probabilité d’attente

d’un client soit inférieure à un seuil donné (loi d’arrivée des clients, temps moyen

de service, …)

Outils : probabilité, processus stochastiques, théorie des files d’attente

Optimisation Combinatoire 23

II.2. Autres problèmes de Recherche

Opérationnelle (RO) (2)

Problèmes d’aide à la décision

trouver une solution à des problèmes concurrentiels où la solution optimale

pour un acteur dépend des décisions prises par les autres acteurs.

Exemple : politique de prix de vente

Outils : théorie de jeux – théorie de la décision

24 Optimisation Combinatoire

Page 7: Introduction aux problèmes d’ordonnancement · 02/09/2014 3 I.1 Exemples de problèmes de RO (2) Sac à Dos (Knapsack Problem) Sélectionner un ensemble d’objets à placer dans

02/09/2014

7

II.3. But de la RO

But : Aider des décideurs à faire les choix les plus efficaces

fournir des modèles et méthodes (algorithmiques) pour résoudre des

problèmes de gestion de systèmes complexes

considérer des problèmes ne pouvant être traités « manuellement »

Potentiellement tous secteurs d’activités ….

Toute organisation, tout système complexe

Problèmes de décision, d’optimisation

25 Optimisation Combinatoire

II.3. Outils de la RO

Outils à la frontière des : mathématiques, informatique,

économie

Cadre générique de modélisation et de résolution

Les outils de de la RO permettent :

de trouver une solution où l'homme n'en trouvait pas

de trouver une solution sur des problèmes nouveaux où l'homme n'a aucune

experience

de trouver plusieurs solutions là ou l'homme n'en envisageait qu'une

de juger de la qualité d'une solution

de justifier des décisions, des choix

26 Optimisation Combinatoire

II.3. Caractéristiques de la RO

Points clés en RO :

Analyse d’un problème (compréhension, complexité, …)

Modélisation

Méthodes de résolution

Validation expérimentale

Difficulté :

Temps de résolution / Espace mémoire acceptable

Passage de la théorie mathématique à l’implémentation informatique (ex.

précision)

27 Optimisation Combinatoire

III.1. Complexité des méthodes (=algorithmes)

III.2. Complexité des problèmes

III. Complexité des problèmes

Page 8: Introduction aux problèmes d’ordonnancement · 02/09/2014 3 I.1 Exemples de problèmes de RO (2) Sac à Dos (Knapsack Problem) Sélectionner un ensemble d’objets à placer dans

02/09/2014

8

III.1. Méthodes efficaces ? (1)

Caractéristique d’un algorithme (méthode)

Terminaison (en un temps fini)

Correction (réponse correcte)

Complétude (réponse dans tous les cas)

Complexité en temps et en espace mémoire

Fonction des données du problème

Estimation du temps de résolution pour toutes les instances

Dans le pire des cas

Donner seulement l’évolution générale : notation O

O(1) O(n), O(n2), O(nk), O(n.logn), O(2n), O(n!), ….

29 Optimisation Combinatoire

III.1. Méthodes efficaces ? (2)

Signification

Complexité en fonction de la taille des données (10^6 instructions par

seconde)

o Note : age univers = 13E09 ans

30

1 n n.log n n^2 n^3 2^n fact(n)

n

10 1,00E-06 1,00E-05 3,32E-05 1,00E-04 1,00E-03 1,02E-03 3,63

20 1,00E-06 2,00E-05 8,64E-05 4,00E-04 0,008 1,05 7E+2 siècles

30 1,00E-06 3,00E-05 1,47E-04 9,00E-04 0,027 18 min 8E+16 siècles

40 1,00E-06 4,00E-05 2,13E-04 1,60E-03 0,064 12 jours -

50 1,00E-06 5,00E-05 2,82E-04 2,50E-03 0,125 35 ans -

100 1,00E-06 1,00E-04 6,64E-04 1,00E-02 1 4E+14 siécles -

Optimisation Combinatoire

III.1. Méthodes efficaces ? (3)

Optimisation Combinatoire 31

III.2. Classes de complexité (1)

Complexité d’un problème

Complexité du meilleur algorithme pour le résoudre

Exemple : Trier des éléments dans un tableau

Classes de complexité

P trouver une solution ou montrer qu’il n’en existe pas est polynomial

NP vérifier une solution est polynomial

NP-Complet les plus difficiles de NP

Propriétés :

Conjecture :

32 Optimisation Combinatoire

Page 9: Introduction aux problèmes d’ordonnancement · 02/09/2014 3 I.1 Exemples de problèmes de RO (2) Sac à Dos (Knapsack Problem) Sélectionner un ensemble d’objets à placer dans

02/09/2014

9

III.2. Classes de complexité ? (2)

Classification des problèmes dans une classe de complexité

Problème de la classe P

Trouver un algorithme polynomial qui le résout

Problème de la classe NP-Complet

Il est dans la classe NP

Transformer un problème connu NP-Complet vers ce problème

Voir littérature sur la classification des problèmes

Savoir ce que représente les classes de complexité et les conséquences en

termes de méthodes de résolution

33

Optimisation Combinatoire

III.3 Conséquences (1)

Problème de la classe P : Problème « facile » (tractable)

Problème de la classe NPC : Problème « difficile »

Mais attention

Même si classe P :

Degré du polynôme

Coefficient

Et si classe NPC

Nature des instances ?

Caractéristiques des ordinateurs ?

On considère la complexité au pire : se produit-il sur les instances à résoudre

?

34 Optimisation Combinatoire

III.3 Conséquences (2)

Impact du taux de contraintes sur le temps de résolution (Pb de Satisfaction)

Pb peu contraint : résolution rapide

Pb sur-contraint : résolution rapide (pas de solution)

Entre le deux : difficulté de résolution

35

0

200

400

600

800

1000

1200

0 20 40 60 80 100 120

Optimisation Combinatoire

IV. Modélisation de pbs

combinatoires

Page 10: Introduction aux problèmes d’ordonnancement · 02/09/2014 3 I.1 Exemples de problèmes de RO (2) Sac à Dos (Knapsack Problem) Sélectionner un ensemble d’objets à placer dans

02/09/2014

10

IV.1. Pbs considérés

Problème combinatoire :

Ensemble discret et fini d’alternatives possibles = espace de recherche

(de solution)

Nombre très élevé d’alternatives

Exploration « systématique » impossible

Exemple : voyageur de commerce avec 50 « sommets »

Il y a 49! alternatives possibles (soit 6,08.1062 solutions)

Si évaluation d’une solution en 1ms 1,92.1050 siècle de calcul

Si évaluation en 0,1ms 1,92.1049 siècle de calcul.

o Univers = 13,8. 109 ans

Besoin de méthodes scientifiques pour explorer cet espace et déterminer une

solution optimale

37 Optimisation Combinatoire

IV.1 Démarche de résolution

Démarche pour aborder un problème d’opti comb. :

Ne pas oublier l’étape d’analyse de la complexité

Ne pas oublier l’étape d’analyse et d’évaluation des solutions !

38 Optimisation Combinatoire

IV.2 Cadres de modélisation

3 grands cadres de modélisation et de résolution

PLNE

Programmation Linéaire en Nombres Entiers (PLNE)

Contraintes

Constraint Satisfaction Problem (CSP)

SAT

Satisfiabilité booléenne

Caractéristiques communes

Variables et Domaines associés

Contraintes

Objectifs à optimiser

Optimisation Combinatoire 39

IV.2. Modèle SAT (1)

Raisonnement logique (Cours 4IR-Info)

Problème

N variables booléennes

M clauses

Une clause = disjonction de littéraux

Problème = conjonction de clauses

Pas de fonction objectif

Exemple :

Optimisation Combinatoire 40

Page 11: Introduction aux problèmes d’ordonnancement · 02/09/2014 3 I.1 Exemples de problèmes de RO (2) Sac à Dos (Knapsack Problem) Sélectionner un ensemble d’objets à placer dans

02/09/2014

11

IV.2. Modèle SAT (2)

Solution

Une clause est satisfaite : au moins 1 littéral est VRAI

Le pb est satisfait : toutes les clauses sont satisfaites

Exemple :

est satisfait avec les affectations :

Exemple :

n’est pas satisfiable

SAT : Classe NP-Complet

Optimisation Combinatoire 41

IV.2. Modèle PLNE (1)

Cadre de la Prog Linéaire (Cours 3MIC-Info)

avec variables entières

Problème

Variables entières

Contraintes : combinaisons linéaires de variables

Objectif : combinaison linéaire de variables

Solution :

affectation des variables minimisant l’objectif

Optimisation Combinatoire 42

Contraintes d’intégrité

IV.2. Modèle PLNE (2)

Exemple

Optimisation Combinatoire 43

IV.2. Modèle PLNE (3)

Prog Linéaire (var. continues)

Classe P

Prog. Linéaire en variables entières

Classe NP-Complet

Transformation (complexité linéaire) de toute instance SAT en une instance

de PLNE en variables 0/1

Illustration

Prog. Linéaire en variables mixtes

Prog. Linéaire en variables 0/1

Optimisation Combinatoire

44

Page 12: Introduction aux problèmes d’ordonnancement · 02/09/2014 3 I.1 Exemples de problèmes de RO (2) Sac à Dos (Knapsack Problem) Sélectionner un ensemble d’objets à placer dans

02/09/2014

12

IV.2. Modèle CSP (1)

Problème

Variables quelconques mais à domaines finis (symboliques ou numériques

Contraintes : quelconques

Objectif : quelconque

Cours PPC (5IL- Mineure PPC & OC)

Optimisation Combinatoire

45

IV.2. Modèle CSP (2)

Contraintes

en intension / en extension

Solution

Affectation des variables satisfaisant les contraintes

Problème

Classe NP-Complet

Généralisation des problèmes SAT

Optimisation Combinatoire 46

IV.2. Liens / Différences

Nature des domaines

SAT : booléen / PLNE : entiers / CSP : quelconques mais finis

Contraintes

SAT : clauses / PLNE : combin linéaire / CSP : quelconques

Objectif

SAT : non / PLNE : oui / CSP : non

Solution : affectation de valeurs aux variables

Problèmes de la classe NP-Complet

équivalent en termes de complexité

Mais pour un problème donné

modèles non équivalents dans les 3 formalismes

efficacité pratique des méthodes différentes

Optimisation Combinatoire

47

IV.3 Méthodes de résolution (1)

Différents buts :

Une solution décision/satisfaction

Une solution optimale optimisation

Toutes les solutions optimales

Pb de décision / pb d’optimisation

Pb d’optimisation :

Min f(x) sachant contraintes C

Pb de décision :

existe-t-il solution s avec contrainte C et f(x) = k ?

Optimisation Combinatoire 48

Page 13: Introduction aux problèmes d’ordonnancement · 02/09/2014 3 I.1 Exemples de problèmes de RO (2) Sac à Dos (Knapsack Problem) Sélectionner un ensemble d’objets à placer dans

02/09/2014

13

IV.3 Méthodes de résolution (2)

Passage pb d’optimisation à un pb de décision

Résoudre pb de décision pour différentes valeur de k

Exemple : pour la minimisation

S’il existe une solution pour une valeur k donnée

Diminuer la valeur de k

Sinon

Augmenter la valeur de k

Complexité pb optimisation = celle du pb de décision associé

Optimisation Combinatoire 49

IV.3 Méthodes de résolution (3)

Classification

Méthode complète / incomplète (décision)

Méthode exacte / approchée (optimisation)

Méthode complète :

Obtient une solution si le pb est satisfiable et prouve l’absence de solution si le pb

est insatisfiable

Méthode exacte

Obtient une solution dont l’optimalité est prouvée

Optimisation Combinatoire 50

IV.3 Méthodes de résolution (4)

Base méthode exacte / complète

Recherche arborescente

Méthode approchées / incomplètes

Heuristique

Méthode exacte tronquée

Méta-heuristique

Optimisation Combinatoire 51

IV.3 Méthodes de résolution (4) : outils

Modélisation et solver PL / PLNE :

AMPL: modeler + liens avec différents solver

LINDO : modeler + solver

OPL (modeler) avec Cplex (solver)

Xpress, Gurobi, LP-Solve, EXCEL

Solvers (méthodes approchées)

Local Solver

Paradiseo

Solvers (CSP)

Ilog Solver (Optimizer) – IBM

Choco

Eclipse, ….

52 Optimisation Combinatoire

Page 14: Introduction aux problèmes d’ordonnancement · 02/09/2014 3 I.1 Exemples de problèmes de RO (2) Sac à Dos (Knapsack Problem) Sélectionner un ensemble d’objets à placer dans

02/09/2014

14

V. Méthodes arborescentes

V.1. Généralités (1)

Principe Recherche Arborescente :

Problème de taille trop importante pour la résolution

Décomposer en sous problèmes disjoints de taille restreinte

Poursuite de la décomposition jusqu’à aboutir à des sous-problèmes de taille

abordable

Optimisation Combinatoire 54

P

P1 P2

P11 P12 P13

V.1. Généralités (2)

Principe (suite)

Si une solution est obtenue pour un sous problème

Arrêt de la décomposition

Si P = Pb de satisfaction

P a une solution ssi P1 ou P2 ont une solution

Si une solution est obtenue pour P1 : arrêt (P2 non considéré)

Si P = Pb d’optimisation (min)

Optimum de P = Min (opt P1, opt P2)

Optimisation Combinatoire 55

P

P1 P2

P11 P12 P13

V.1. Généralités (3)

Composition d’une recherche arborescente :

Méthode de décomposition

Comment séparer en sous-problème ?

Stratégie d’exploration

Comment parcourir les sous-problèmes ? (profondeur, largeur,..)

Méthode d’élagage (coupe) :

Peut-on éliminer des parties de l’arborescence ?

Evaluation

Nombre de nœuds explorés

Profondeur / Hauteur

Optimisation Combinatoire

56

Page 15: Introduction aux problèmes d’ordonnancement · 02/09/2014 3 I.1 Exemples de problèmes de RO (2) Sac à Dos (Knapsack Problem) Sélectionner un ensemble d’objets à placer dans

02/09/2014

15

V.2 Recherche Arborescente –

Cadre SAT(1)

SAT

Variables Booléennes

Contraintes sous forme de clauses

Décomposition

Sélectionner une variable

SP1 : et SP2 :

Taille arborescence

Profondeur max = nombre de variable

Taille max =

Stratégie de parcours

En profondeur d’abord

Optimisation Combinatoire 57

V.2 Recherche Arborescente –

Cadre SAT(2)

Algo DPLL (Davis-Putnam-Logemann–Loveland)

Choisir un littéral et lui affecter une valeur : x true (ou false)

Si test cohérence == true ( clause vide)

passer au littéral suivant

Sinon

Retour arrière

Arrêt

Toutes les variables sont instanciées (une solution)

Incohérence du problème

Pb est satisfiable : toutes les variables sont affectées sans qu'une clause ne

devienne vide

Pb est insatisfiable : explorer toute l’arborescence

Optimisation Combinatoire 58

V.2 Recherche Arborescente –

Cadre SAT(3)

Retour arrière

De manière chronologique

Après chaque affectation x true (resp. x faux)

Réduire les clauses

Éliminer les clauses contenant x (resp. \not x)

Eliminer \not x des clauses le contenant (resp. x)

Choix du littéral stratégie de branchement

Impact sur la taille de l’arborescence

Optimisation Combinatoire

59

V.2 Recherche Arborescente –

Cadre SAT(4)

Exemple

Développer l’arborescence obtenue par l’algorithme DPLL et donner sa

taille (ie. nombre de nœuds)

Cas 1 : choisir y puis z puis x

Cas 2 : choisir x puis y puis z

Optimisation Combinatoire 60

Page 16: Introduction aux problèmes d’ordonnancement · 02/09/2014 3 I.1 Exemples de problèmes de RO (2) Sac à Dos (Knapsack Problem) Sélectionner un ensemble d’objets à placer dans

02/09/2014

16

V.2 Recherche Arborescente –

Cadre SAT(5)

Améliorations

Apparition de clauses unaires : fixer la valeur des variables présentes dans

une clause unaire (Propagation unaire)

Les variables des clauses unaires sont sélectionnées en priorité pour le

branchement

Effet en cascade de réduction de clauses

Elimination de littéraux purs

Littéral n’ayant qu’une seule forme dans toutes les clauses

Fixer la valeur de de littéral (dans la stratégie de branchement)

Effet en cascade

Optimisation Combinatoire 61

V.2 Recherche Arborescente –

Cadre SAT(6)

Exemple

Développer l’arborescence obtenue par l’algorithme DPLL et donner sa

taille (ie. nombre de nœuds)

Utiliser la propagation unaire et l’élimination des littéraux purs

Optimisation Combinatoire 62

V.2 Recherche Arborescente –

Cadre SAT(7)

Travaux dans les Solver SAT

Heuristiques de branchement efficaces

Structures de données pour propager les clauses unaires efficacement

Backjumping (retour arrière non chronologique)

Inférer une clause expliquant l’incohérence

Revenir sur une instanciation source de l’incohérence

Apprentissage de clauses

La clause inférée peut être ajoutée à l’ensemble des clauses du problème pour ne

pas reproduire l’échec

Restart

Stopper l’exploration et la relancer

Ajouter de l’aléatoire dans l’heuristique de branchement

Optimisation Combinatoire 63

V.2 Recherche Arborescente –

Cadre SAT(8)

Evolutions des Solvers SAT

Années 1960 : algorithme DPLL

10 variables

Années 2000 : améliorations de SAT

100 000 variables

Intérêt

Réduction des problèmes NP-Complets à SAT

Avoir un algo générique efficace pour SAT plutôt que des algo dédiés pour

chaque problème NP-Complet

Compétition solver SAT http://www.satcompetition.org/

Optimisation Combinatoire 64

Page 17: Introduction aux problèmes d’ordonnancement · 02/09/2014 3 I.1 Exemples de problèmes de RO (2) Sac à Dos (Knapsack Problem) Sélectionner un ensemble d’objets à placer dans

02/09/2014

17

V.3 Recherche Arborescente –

Cadre CSP (1)

CSP

Variables à domaines finis

Décomposition

Pour chaque variable prise successivement

Décomposer en fonction des valeurs de cette variable

Arrêt toutes les variables ont une valeur (une solution !)

Optimisation Combinatoire 65

P

X1 a X1 b

X2 a X2 b X2 c

X1 X1

X2 X2

X2

V.3 Recherche Arborescente –

Cadre CSP (2)

Taille de l’arborescence

CSP

Variables

Domaines

Taille max des domaines :

Taille arborescence

Stratégie de parcours :

Profondeur d’abord

Optimisation Combinatoire 66

V.3 Recherche Arborescente –

Cadre CSP (3)

Algo :

Choisir une variable x

Lui affecter une valeur : x v

Si test cohérence == true

passer à la variable suivante

Sinon

Retour arrière

Arrêt

Toutes les variables sont instanciées (une solution)

Incohérence du problème

Mécanisme de retour-arrière Backtrack

Affecter une autre valeur à la variable : x v’

Revenir à la variable précédente (chronologique)

Optimisation Combinatoire 67

BACKTRACK

CHRONOLOGIQUE

V.3 Recherche Arborescente –

Cadre CSP (4)

Test de cohérence après instanciation x v

Vérifier que les contraintes liant x aux variables précédentes

BACKWARD CHECKING

Retirer du domaine des variables reliées à la variable x par une contrainte, toutes

les valeurs ne satisfaisant pas la contrainte

(Filtrage)

Si un domaine devient vide : incohérence

FORWARD CHECKING

Autre : filtrage plus poussé (ex. arc-cohérence)

Impact important sur l’efficacité de la méthode

Optimisation Combinatoire

68

Page 18: Introduction aux problèmes d’ordonnancement · 02/09/2014 3 I.1 Exemples de problèmes de RO (2) Sac à Dos (Knapsack Problem) Sélectionner un ensemble d’objets à placer dans

02/09/2014

18

V.3 Recherche Arborescente –

Cadre CSP (5)

Stratégie de parcours (suite)

Profondeur d’abord

Ordre sur les variables

Ordre sur les valeurs

Heuristiques d’instanciation statiques / dynamiques

Heuristiques d’instanciation dédiées / génériques

Impact important sur l’efficacité de la méthode

Optimisation Combinatoire 69

Heuristique

d’instanciation

V.3 Recherche Arborescente –

Cadre CSP (6)

Heuristiques d’instanciation

Ordre sur les variables : fail first

Ordre sur les valeurs : suceed first

Ordres génériques sur les variables

Min domain

Max deg

Combinaison (min dom max deg) (min dom/deg)

Degré pondéré par les échecs : wdeg

Poids associé aux contraintes

Augmentation du poids si échec à cause de la contrainte

Ordres génériques sur les valeurs

Min-conflict

Optimisation Combinatoire

70

V.3 Recherche Arborescente –

Cadre CSP (7)

Exemple1

Développer l’arborescence obtenue par l’algo Backtrack Chronologique et

donner sa taille

Utiliser le Backward Checking et :

Cas 1 : ordre lexicographique pour les variables et ordre croissant pour les valeurs

Cas 2 : Variable de plus petit domaine en priorité

Cas 3 :Variable de plus grand degré (ie dans le plus grand nombre de contraintes) en

priorité

Peut-on appliquer une heuristique d’instanciation dynamique ?

Cas 4 : Heuristique d’instanciation Cas 2 et Forward Checking

71

Optimisation Combinatoire

V.3 Recherche Arborescente –

Cadre CSP (8)

Exemple 2

On recherche toutes les solutions de ce CSP

Donner l’arborescence obtenu avec l’algo de Backtrack Chronologique

utilisant le Forward Checking

Cas 1. Heuristique statique : ordre lexicographique sur les variables et les valeurs

Cas 2. Heuristique dynamique : Variable de plus petit domaine en priorité et ordre

lexicographique sur les valeurs

Optimisation Combinatoire 72

Page 19: Introduction aux problèmes d’ordonnancement · 02/09/2014 3 I.1 Exemples de problèmes de RO (2) Sac à Dos (Knapsack Problem) Sélectionner un ensemble d’objets à placer dans

02/09/2014

19

V.3 Recherche Arborescente –

Cadre CSP (9)

Améliorations

Techniques de propagation

Compromis niveau de propagation / recherche

Heuristiques d’instanciation

Heuristiques dédiées ou génériques

Backjumping

Effectuer retour-arrière sur une variable cause de l’incohérence

Nogood recording

Mémoriser les instanciations sources d’incohérence

Restart

Optimisation Combinatoire 73

V.4 Recherche Arborescente –

Cadre PLNE(1)

PLNE

Variables entières

Contraintes linéaires et Objectif linéaire

Recherche arborescente

Nœud = un état du problème (espace de solutions)

Arc = un changement d’état

Décomposition

Séparation de l’espace des solutions

Evaluation des espaces de solutions

Pour éliminer des espaces de solution

Optimisation Combinatoire 74

Branch and Bound

V.4 Recherche Arborescente –

Cadre PLNE(2)

On veut résoudre

Soit l’espace des solution

Partitionner

deux ensembles et

Alors l’optimum

Si alors ne pas poursuivre l’exploration de

Optimisation Combinatoire 75

V.4 Recherche Arborescente –

Cadre PLNE(3)

Evaluation

Rôle clé dans un Branch and Bound

Principe pour un problème de maximisation

Évaluation par borne supérieure: évaluation de la meilleure solution

possible

Quelle fonction d’évaluation ?

Toute borne supérieure.

Par exemple la relaxation continue (obtention d’un PL)

Optimisation Combinatoire 76

Page 20: Introduction aux problèmes d’ordonnancement · 02/09/2014 3 I.1 Exemples de problèmes de RO (2) Sac à Dos (Knapsack Problem) Sélectionner un ensemble d’objets à placer dans

02/09/2014

20

V.4 Recherche Arborescente –

Cadre PLNE(4)

Développement de l’arborescence

Obtention d’un nœud

Si = 1 solution alors la mémoriser si elle améliore la solution courante

Si = pas de solution admissible alors éliminer

Si < solution courante alors ne pas le mémoriser

Sinon mémoriser dans l’ensemble des nœuds dont il faut poursuivre

l’exploration

Dans quel ordre poursuivre la décomposition ?

Optimisation Combinatoire 77

V.4 Recherche Arborescente –

Cadre PLNE(5)

Ordre d’exploration des nœuds

Le dernier crée profondeur d’abord

Privilégie l’obtention rapide d’une solution même de mauvaise qualité

Celui de meilleure évaluation largeur d’abord

Limite la taille de l’arborescence

Séparation

Choisir une variable et séparer par rapport à sa valeur non entière obtenue

lors de la résolution du PL

Variable la plus contraintes

Etc.

Optimisation Combinatoire 78

V.4 Recherche Arborescente –

Cadre PLNE(6)

Exemple

Evaluer le PL à

chaque nœud

Optimisation Combinatoire 79

S

z=17.67

x1=1.55; x2=4.03

S1

z=15.67

x1=1; x2=3.67

S2

z=17

x1=2; x2=3.75

S5

z=13

x1=1; x2=3

S6

Incohérence

X1<= 1 X1 >= 2

X3<= 3 X2 <= 3

X2 >=4 S4

Incohérence

S3

z=15.2

x1=3.2; x2=3

X3>= 4

S7

z=15

x1=3; x2=3

X1<= 3 X1 >= 4

S8

Incohérence

V.4 Recherche Arborescente –

Cadre PLNE(7)

Autre exemple : voyageur de commerce

Problème de minimisation (distance parcourue)

Evaluation : borne inférieure

Relaxation en PL

Arbre couvrant de cout minimal

½ somme des 2 arcs de plus petits couts par sommets

Séparation

Choix d’un arc

Choix d’un arc de regret maximal

Optimisation Combinatoire 80

Page 21: Introduction aux problèmes d’ordonnancement · 02/09/2014 3 I.1 Exemples de problèmes de RO (2) Sac à Dos (Knapsack Problem) Sélectionner un ensemble d’objets à placer dans

02/09/2014

21

V.4 Recherche Arborescente –

Cadre PLNE(8)

Exercice

Développer un Branch and Bound pour le TSP à 5 villes ci-dessous

Partir de A

Séparation :

Choisir arc de plus petit cout

Evaluation

somme des n arcs de plus petits couts

Optimisation Combinatoire 81

A B C D E

A X 1 7 3 14

B 3 X 6 9 1

C 6 14 X 3 7

D 2 3 5 X 9

E 15 7 11 2 X

V.4 Recherche Arborescente –

Cadre PLNE(9)

Améliorations du Branch & Bound

Coupes

Branch and Cut

Décomposition des contraintes

Problème maître / Problème esclave

Génération de colonnes

Branch and Price

Optimisation Combinatoire 82

V.5 Recherche Arborescente –

en IA (1)

Algorithme A* (cours 4IR)

Recherche dans des graphes d’états

Etat initial

Etats Finaux

Opérateurs de changement d’état

But : découvrir un chemin de l’état initial vers un état final à cout minimal

Recherche ordonnée

Utilisation d’une fonction heuristique sur les nœuds

Fonction d’évaluation

Optimisation Combinatoire 83

V.5 Recherche Arborescente –

en IA (2)

Algorithme A*

Recherche ordonnée de type A

La fonction heuristique au nœud x dépend de 2 sous fonctions

g(x) = Cout réel de l’état initial vers x

h(x) =Cout estimé de x vers un état final

Recherche ordonnée A*

Le cout estimé est un minorant du cout réel

Optimisation Combinatoire 84

Page 22: Introduction aux problèmes d’ordonnancement · 02/09/2014 3 I.1 Exemples de problèmes de RO (2) Sac à Dos (Knapsack Problem) Sélectionner un ensemble d’objets à placer dans

02/09/2014

22

V.5 Recherche Arborescente –

en IA (3)

Exercice

Dérouler l’algorithme A* sur le problème de TSP précédent

Etat initial : une ville A

Etats Finaux : toute séquence A*A

Changement d’état : ajouter une ville dans la séquence

Fonctions d’évaluation

g(A*X) = cout depuis A jusqu’à X

h(A*X) = estimation du trajet restant depuis X

o Nb arcs restants * cout minimal des arcs possibles restants

o Somme des p arcs de plus petits couts s’il manque p arcs

Optimisation Combinatoire 85

V.6 Conclusion (1)

Méthodes complètes / exactes

Garantie d’optimalité

Garantie d’absence de solutions

Méthodes arborescentes

Mécanismes similaires dans les différents formalismes

Heuristiques de branchement

Stratégie de parcours

Spécificité en optimisation

Estimation/Borne

pour élaguer des parties de l’espace de recherche

Optimisation Combinatoire 86

V.6 Conclusion (2)

Méthodes exactes – cadre CSP

Cours Programmation par Contraintes

Méthodes exactes – cadre PLNE

Suite de ce cours

Optimisation Combinatoire 87

VI. Méthodes approchées

Page 23: Introduction aux problèmes d’ordonnancement · 02/09/2014 3 I.1 Exemples de problèmes de RO (2) Sac à Dos (Knapsack Problem) Sélectionner un ensemble d’objets à placer dans

02/09/2014

23

VI.1 Introduction (1)

But : trouver rapidement une solution (de bonne qualité)

pour un problème NP-Complet

Méthodes approchées / Incomplètes

Optimisation

Trouver une solution sans garantie d’optimalité

Pour un problème de minimisation

Obtient une borne supérieure de l’optimum

Satisfaction

Peut obtenir une solution mais si elle n’obtient pas de solution cela ne

montre pas l’incohérence

Optimisation Combinatoire

89

VI.1 Introduction (2)

Différentes familles de méthodes (optimisation)

Heuristiques « gloutonnes » (constructives)

Obtenir une solution à partir de « règles » de décision

Recherche locale

Exploration du voisinage d’une solution

Méta-Heuristiques

Méthodes génériques visant à sortir des optimas locaux

Intensification

Diversification

« recherche globale »

Algorithmes d’approximation

Solution à qualité garantie

Optimisation Combinatoire 90

VI.2 Recherche Gloutonne (1)

Contexte optimisation

Méthode naïve

Partir d’une affectation vide

Tant qu’il y a des variables non affectées

Choisir une variable

Lui affecter une valeur

Les choix successifs ne sont pas remis en cause

Une branche d’une recherche arborescente (sans backtrack)

Les choix effectués doivent garantir l’admissibilité de la solution obtenue (ie.

respect des contraintes)

Peut-on toujours le garantir ?

Optimisation Combinatoire 91

Greedy Search VI.2 Recherche Gloutonne (2)

Qualité de la solution / fonction objectif

Dépend de l’ordre sur les variables et des choix de valeurs

Aucune garantie d’optimalité dans le cas général

Choix de variables

Méthode directe :

Sélectionner la paire (variable, valeur) qui a le meilleur impact sur l’objectif

Méthode à regret

Sélectionner la paire (variable, valeur) telle que sa non prise en compte serait la

plus pénalisante / objectif

Optimisation Combinatoire 92

Page 24: Introduction aux problèmes d’ordonnancement · 02/09/2014 3 I.1 Exemples de problèmes de RO (2) Sac à Dos (Knapsack Problem) Sélectionner un ensemble d’objets à placer dans

02/09/2014

24

VI.2 Recherche Gloutonne (3)

Caractéristiques d’une recherche gloutonne

Exploite des connaissances sur le problème pour faire les meilleurs choix à

chaque étape

Très simple à mettre en œuvre

Temps de calcul limité :

Complexité : linéaire en fonction du nombre de variables

Aucune garantie d’optimalité

Dans un contexte satisfaction

Peut ne pas aboutir à une solution admissible

Sauf si pb peu contraint

Optimisation Combinatoire 93

VI.2 Recherche Gloutonne (4)

Cas particuliers où la recherche gloutonne garantit

l’obtention d’une solution optimale

Exemple 1: Algo de Prim ou de Kruskal pour déterminer un arbre couvrant

de cout minimal

Exemple 2 : Minimiser la durée totale de l’ordonnancement sur une seule

ressource de tâches ayant des dates de début au plus tôt

Voir aussi en CSP (graphe de contraintes binaires acyclique)

Optimisation Combinatoire 94

VI.2 Recherche Gloutonne (5)

Exemple 1

Problème d’ordonnancement de 3 jobs composés chacun de 3 de tâches au plus sur

3 machines. La séquence de tâches est caractérisée par : o Job1 : (M1, 1) (M2, 3) (M3, 4)

o Job2 : (M2, 2) (M1, 1) (M3, 3)

o Job3: (M3, 3) (M2, 3)

Variables = dates de début des tâches

Objectif : minimiser la durée totale

Heuristique gloutonne à appliquer

o Classer les tâches par dates de début au plus tôt croissantes

o Placer chaque tâche dans l’ordre sur les machines sans chevauchement avec la tâche précédente

Quelle est la durée de l’ordonnancement obtenu ?

Cette durée est-elle optimale ? Pourquoi ?

Optimisation Combinatoire 95

VI.2 Recherche Gloutonne (6)

Exemple 2

Soit le problème de TSP ci-dessous pour lequel on cherche à déterminer un

circuit de cout minimal

Heuristique gloutonne à pénalité (regret)

À chaque étape choisir un arc (i, j) de pénalité maximale

Si on ne prend pas (i, j)

o P1 = cout minimal pour sortir de i

o P2 = cout minimal pour entrer en j

Pénalité = P1 + P2

Optimisation Combinatoire 96

x1 x2 x3 x4 x5

x1 X 3 4 5 4

x2 3 X 2 2 1

x3 4 2 X 1 2

x4 5 2 1 X 3

x5 4 1 2 3 X

Page 25: Introduction aux problèmes d’ordonnancement · 02/09/2014 3 I.1 Exemples de problèmes de RO (2) Sac à Dos (Knapsack Problem) Sélectionner un ensemble d’objets à placer dans

02/09/2014

25

VI.2 Recherche Gloutonne (7)

Amélioration

Introduire de l’aléatoire

Sur les choix de variables et de valeurs

Lancer plusieurs exécutions de la recherche gloutonne

Arrêt de la méthode

Conditions à définir en fonction du problème et du contexte

Contexte optimisation

Récupérer la meilleure solution

Contexte satisfaction

Récupérer une solution admissible (éventuellement)

Optimisation Combinatoire 97

VI.3 Recherche Locale (1)

Principe

Partir d’une affectation des variables

Appliquer des modifications locales

Arrêt

Obtention d’une affectation cohérente (satisfaction)

Obtention d’une affectation de bonne qualité (optimisation)

Voisinage d’une affectation

Ensemble des affectations atteignables à partir de modifications sur l’affectation

Changer la valeur d’une variable

Permuter 2 variables dans une séquence

Etc.

Optimisation Combinatoire

98

Local Search

VI.3 Recherche Locale (2)

Caractéristiques à définir

Génération d’une affectation initiale

Définition du voisinage d’une affectation

Choix d’une affectation dans le voisinage

Exploration du voisinage

Evaluation d’une affectation dans le voisinage (optimisation)

Conditions d’arrêt

Génération d’une affectation initiale

Aléatoire

Recherche gloutonne

Optimisation Combinatoire 99

VI.3 Recherche Locale (3)

Définition du voisinage d’une affectation

Dépend du problème à résoudre

Exemple : cadre SAT ou CSP

Changer la valeur d’une variable

Changer la valeur de k variables (k donné)

Exemple : solution = permutation

Echanger 2 variables dans la permutation (swap)

Attention à la taille du voisinage

Si trop petit : risque de ne pas avoir de meilleur(e) affectation

Si trop grand : cout de l’exploration

Optimisation Combinatoire

100

Page 26: Introduction aux problèmes d’ordonnancement · 02/09/2014 3 I.1 Exemples de problèmes de RO (2) Sac à Dos (Knapsack Problem) Sélectionner un ensemble d’objets à placer dans

02/09/2014

26

VI.3 Recherche Locale (4)

Exemple de voisinage

Changer la valeur d’une variables

Insertion

Inversion/Echange (2-opt)

Swap

Optimisation Combinatoire 101

VI.3 Exemple Voisinage

Soit un pb d’ordonnancement de 6 activités sur 1 machine

Une solution est : A1| A2| A3| A4 | A5 | A6

Donner les voisinages obtenus avec les opérateurs

Insertion

Swap

Quelle est la taille de ces voisinages

Optimisation Combinatoire 102

VI.3 Recherche Locale (4)

Exploration du voisinage

But : choisir une nouvelle affectation

Aléatoire

Acceptation d’une affectation de meilleure qualité (optim)

Affectation de toute autre affectation

Risque de bouclage de la méthode

Prévoir des conditions d’arrêt

Premier voisin améliorant

Savoir se diriger vers des voisins prometteurs

Meilleur voisin

Exploration de tout le voisinage

Optimisation Combinatoire 103

VI.3 Recherche Locale (5)

Evaluation d’un voisin

Mise à jour de l’affectation courante

Estimation a priori de la qualité d’un voisin

Opération fréquente

Doit être la moins couteuse en temps de calcul

Si possible incrémentale

Exemple

Soit un circuit (A-B-C-D-E-A) de cout Z et un voisinage consistant à

échanger 2 arêtes non consécutives (par exemple (AB) avec (CD)

Le circuit voisin (A-C-B-D-E-A) est de cout

Z’=Z-(AB)-(CD) + (AC)+(BD)

Optimisation Combinatoire 104

Page 27: Introduction aux problèmes d’ordonnancement · 02/09/2014 3 I.1 Exemples de problèmes de RO (2) Sac à Dos (Knapsack Problem) Sélectionner un ensemble d’objets à placer dans

02/09/2014

27

VI.3 Recherche Locale (6)

Conditions d’arrêt

Obtention d’une affectation cohérente (solution) (satisfaction)

Obtention d’une solution de qualité voulue (optimisation)

Nombre d’itérations / Temps d’éxécution maximum atteint

Nombre d’itérations / Temps d’éxécution maximum sans amélioration atteint

(optimisation)

Recherche Locale

Extension d’une recherche gloutonne

Optimisation Combinatoire 105

VI.3 Recherche Locale (7)

Caractéristiques de la recherche locale

Extension d’une recherche gloutonne

Intensification de la recherche dans une partie de l’espace de recherche

Limite : optima locaux

Ajout de mécanismes d’amélioration

Diversification : aller explorer d’autres parties de l’espace de recherche

Optimisation Combinatoire 106

VI.3 Recherche Locale (8)

Diversification

Introduire de l’aléatoire / des perturbations

Faire varier les voisinages

Faire varier l’acceptation d’une nouvelle solution

Solution meilleure

Solution meilleur ou égale

Toute solution

De recherche locale recherche globale

Méta-Heuristiques

Recherche « générique », adaptable à différents problèmes

Optimisation Combinatoire 107

VI.3 Recherche Locale (9)

Variante dans le cadre Satisfaction

Résoudre un problème d’Optimisation

Introduire une fonction Objectif représentant la satisfaction des contraintes

Objectif = nb de contraintes (clauses) non satisfaites

On cherche à minimiser cet objectif

Lorsqu’il vaut 0 : obtention d’une solution admissible

Optimisation Combinatoire 108

Page 28: Introduction aux problèmes d’ordonnancement · 02/09/2014 3 I.1 Exemples de problèmes de RO (2) Sac à Dos (Knapsack Problem) Sélectionner un ensemble d’objets à placer dans

02/09/2014

28

VI.3 Recherche Locale (10)

Variante dans le cadre Optimisation

Fonction Objectif z

Explorer des affectations à la limite entre affectation cohérentes et

incohérentes

Considérer un objectif complémentaire :

Nombre de contraintes insatisfaites (à minimiser)

Nouvel objectif =

Combinaison linéaire des 2 précédents

Quelle pondération ?

Optimisation Combinatoire 109

VI.4 Méthodes de RL (1)

Méthode de descente

Hill Climbing / Iterative Improvment

Instanciation particulières des caractéristiques d’une RL

Principe

1. Affectation complète initiale : s

2. Générer le voisinage de s : N(s)

3. Sélectionner s’ N(s) tq z(s’) < z(s)

4. Si s’ n’existe pas alors arrêt

5. Sinon s s’ et retour en 2

On cherche un voisin strictement meilleur à chaque itération

Intensification

Optimisation Combinatoire 110

VI.4 Méthodes de RL (2)

Terminaison de la méthode de descente

Solution localement optimale

La taille du voisinage ne permet pas de trouver de meilleure solution

Pas de bouclage de la méthode

Pas de retour sur une solution déjà trouvée

Quand on sélectionne s’ comme solution améliorante, s’ n’a jamais été sélectionnée

auparavant comme solution améliorante

Optimisation Combinatoire 111

Illustration Méthode de Descente

Optimisation Combinatoire 112

Page 29: Introduction aux problèmes d’ordonnancement · 02/09/2014 3 I.1 Exemples de problèmes de RO (2) Sac à Dos (Knapsack Problem) Sélectionner un ensemble d’objets à placer dans

02/09/2014

29

VI.4 Méthodes de RL (3)

Améliorations

Relancer la méthode de descente à partir de plusieurs solutions initiales

Comment générer les solutions initiales :

Aléatoires,

Choix parmi un ensemble donné

Conserver la meilleure solution trouvée

Méthode de Descente Multi-Start

Optimisation Combinatoire 113

Illustration Méthode Descente Multi-Start

Optimisation Combinatoire 114

VI.4 Méthodes de RL (4)

Descente à voisinages variables

Définir plusieurs voisinages (diversification)

But : pouvoir sortir des optima locaux et améliorer la qualité de la solution

Principe

Effectuer une succession de méthodes de descente

Quand un optimum local est atteint par une méthode de descente:

changer de voisinage

Ordonner a priori l’ensemble des voisinages

N1, N2, …., Nk

Complexité croissante

Optimisation Combinatoire 115

VI.4 Méthodes de RL (5)

Descente à voisinages variables

1. Affectation complète initiale : s

2. i 1 (numéro du voisinage)

3. Sélectionner meilleur voisin s’ dans Ni(s)

4. Si z(s’) < z(s) alors i i; s s’

5. Sinon i i+1

6. Arrêt i >k (nombre de voisinages)

Optimisation Combinatoire 116

Page 30: Introduction aux problèmes d’ordonnancement · 02/09/2014 3 I.1 Exemples de problèmes de RO (2) Sac à Dos (Knapsack Problem) Sélectionner un ensemble d’objets à placer dans

02/09/2014

30

Illustration Méthode Descente Voisinages

Variables

Optimisation Combinatoire 117

VI.4 Méthodes de RL (6)

Recherche Locale Itérée (ILS : Iterated Local Search)

Basée sur

méthode de descente

Perturbation aléatoire de la solution

1. Solution initiale : s0 ; Best s0

2. Exploration : s Descent(s0) (ou autre)

3. s’ Perturbation (s)

4. s’’ Descent(s’) (ou autre)

5. Acceptation :

Si f(s’’) < f(s) alors s s’’ ; Mise-à-jour(Best, s); retour en 3

6. Arrêt : conditions à définir

Optimisation Combinatoire 118

Illustration Méthode ILS

Optimisation Combinatoire 119

VI.4 Méthodes de RL (7)

Recherche à grands voisinages

Large Neighborhood Search (LNS)

Adaptative LNS

Principe

Solution initiale

Opérateurs de destruction (destroy)

Modifier la solution courante

Opérateurs de construction (repair)

Reconstruire une solution

Adaptative

Choix des opérateurs en fonction des résultats

Optimisation Combinatoire 120

Page 31: Introduction aux problèmes d’ordonnancement · 02/09/2014 3 I.1 Exemples de problèmes de RO (2) Sac à Dos (Knapsack Problem) Sélectionner un ensemble d’objets à placer dans

02/09/2014

31

VI.5 A vous

Présentation de différentes méthodes approchées

Recherche Tabou

Recuit Simulé

Algorithmes Evolutionnaires

Colonie de Fourmis

Principe de la méthode

Présentation d’un problème spécifique

Adaptation de la méthode pour ce problème

Résultats obtenus

Durée : 20 minutes

Optimisation Combinatoire

121

VI.5 Caractéristiques générales (1)

Méthodes à solution unique / Méthodes à population de

solutions

Méthodes « à solution unique » (single point) :

À chaque étape : évolution d’une seule solution

Méthode à trajectoire (trajectoire dans l’espace de recherche)

Exemple : Tabou, Recuit, Descente, ILS, VND, ….

Méthodes à population de solutions

À chaque étape : évolution d’un ensemble de solutions

Exemple : Algo évolutionnaire, Colonie de Fourmis

Optimisation Combinatoire 122

VI.5 Caractéristiques générales (2)

Méthodes à mémoire ou sans mémoire

Utilisation ou non des résultats de la recherche au cours de la résolution

Sans mémoire

Évolution de la méthode : due à l’état courant uniquement

Avec mémoire

Différentes utilisations

Mémoire court terme :

Par exemple : éviter cycle, sortir d’optimas locaux, …

Mémoire long terme :

Adaptation des paramètres de la méthode

Optimisation Combinatoire 123

VI.5 Caractéristiques générales (3)

Mécanismes d’Intensification et de Diversification

Présents dans toutes les méthodes approchées

Intensification

Pousser la recherche autour de solutions de bonne qualité

Diversification

Déplacer la recherche vers de nouvelles parties non explorées de l’espace des

solutions

Compromis entre les deux :

Spécifique de chaque méthode approchée

Optimisation Combinatoire 124

Page 32: Introduction aux problèmes d’ordonnancement · 02/09/2014 3 I.1 Exemples de problèmes de RO (2) Sac à Dos (Knapsack Problem) Sélectionner un ensemble d’objets à placer dans

02/09/2014

32

VI.5 Caractéristiques générales (4)

Classification Mécanismes Intensification Diversification

Aléatoire (R)

Perturbation aléatoire

Guidé par la fonction objectif (GObj)

Exemple : descente

Guidé par d’autres évaluations (GNObj)

Restart basé sur le comptage d’arguments participant à des bonnes solutions

Optimisation Combinatoire 125

R

GO

GNO

Intensification Diversification

VI.5 Caractéristiques générales (5)

Exemple : Intensification / Diversification

Optimisation Combinatoire 126

VI.6 Evaluation méthodes approchées (1)

Cadre Optimisation

Deux questions

Q1: Est-ce que la méthode fonctionne et donne les résultats attendus compte

tenu de ses caractéristiques ?

Q2 : Est-ce que la méthode est performante ?

Optimisation Combinatoire 127

VI.6 Evaluation méthodes approchées (2)

Q1 : est-ce que la méthode fonctionne ?

Est-ce que la solution retournée est admissible ?

Concevoir un « vérificateur de solution » (polynomial)

Est-ce que la méthode se déroule comme attendu ?

Dépend de la méthode. Par exemple :

Est-ce que l’exploration des voisinages permet d’améliorer la solution initiale ?

Si non : rechercher pourquoi

o Est-ce lié à l’implémentation de la méthode ?

o Est-ce lié aux instances considérées ?

Comment évolue la méthode au cours des itérations ?

Optimisation Combinatoire 128

Page 33: Introduction aux problèmes d’ordonnancement · 02/09/2014 3 I.1 Exemples de problèmes de RO (2) Sac à Dos (Knapsack Problem) Sélectionner un ensemble d’objets à placer dans

02/09/2014

33

VI.6 Evaluation méthodes approchées (3)

Q2 : Est-ce que la méthode est performante ?

Qualité d’une méthode approchée

Accepter toute solution et évaluer a posteriori ?

Autre problème :

Garantir a priori qualité de la solution (à p% de l’optimum) ?

Evaluation de la qualité d’une solution a posteriori

Avec la fonction Objectif

Par rapport à une référence

Optimum (si connu)

Borne Inférieure (en minimisation)

Optimisation Combinatoire

129

VI.6 Evaluation méthodes approchées (4)

Soit un problème de minimisation et soit une méthode M

appliquée à un problème donné P

M(P) représente le cout de la solution trouvée

M(P) est une borne supérieur de l’optimum

Performance de M : M(P) / OPT(P) ( ≥ 1)

Si la valeur optimale pour P est connue

Performance de M : M(P) / LB(P) ( ≥ M(P) / OPT(P))

Avec LB(P) une borne inférieure pour P

Si M(P) = LB(P) : on a atteint l’optimum

Distance à l’Optimum : 100.(M(P)/OPT(P) – 1)

Distance à la Borne Inférieure : idem

Optimisation Combinatoire 130

VI.6 Evaluation méthodes approchées (5)

Q2 : Est-ce que la méthode est performante ?

Evaluation statistique

Plusieurs instances du problème

Caractéristiques variables (taille, taux de contraintes, ….)

Qualité de la solution

Temps de Calcul

« Taille » de l’exploration

Optimisation Combinatoire 131

VI.6 Evaluation méthodes approchées (6)

Q2 : Est-ce que la méthode est performante ?

Evaluation comparative

Comparer la qualité de la méthode vis à vis d’autres méthodes

Redévelopper les autres méthodes

Comparer ensuite l’ensemble des méthodes

Considérer les mêmes problèmes que ceux traités par les autres méthodes

Refaire les mêmes évaluations pour la nouvelle méthode

Attention : normalisation des temps de calcul

Optimisation Combinatoire 132

Page 34: Introduction aux problèmes d’ordonnancement · 02/09/2014 3 I.1 Exemples de problèmes de RO (2) Sac à Dos (Knapsack Problem) Sélectionner un ensemble d’objets à placer dans

02/09/2014

34

VI.7 Hybridation (1)

Pourquoi

Exploiter les caractéristiques de différentes méthodes

Quelles combinaisons de caractéristiques ?

Pour quels problèmes ?

Différentes formes d’hybridation

1. Combiner des méthodes approchées

2. Faire coopérer différentes méthodes approchées

3. Coupler méthodes complètes et méthodes approchées

Optimisation Combinatoire 133

VI.7 Hybridation (2)

Combiner différentes méthodes approchées

Méthodes à population + Méthodes à trajectoire

Evolutionary Algorithm + Local Search

Principe :

o Recherche Locale sur les solutions initiales / les solutions filles (après croisement

ou mutation)

ELS (Evolutionary Algorithme + Iterated Local Search)

Principe

o Celui d’ILS appliqué à un ensemble de solutions

Memetic Algorithm

Optimisation Combinatoire 134

VI.7 Hybridation (3)

Coopération de méthodes

Utiliser plusieurs méthodes pour résoudre un problème

Décomposition en sous –problèmes

Echange d’information

Sur le problème

Sur les solutions

Paralléliser des méthodes

Optimisation Combinatoire 135

VI.7 Hybridation (4)

Coupler méthodes approchées et méthodes exactes

Programmation par Contraintes et méthodes approchées

Exemple : utiliser la PPC pour explorer un grand voisinage (LNS)

Exemple : ACO et PPC

1. Chaque fourmis utilise un mécanisme de PPC pour construire une solution

2. Méthodes ACO + utilisation des phéromones pour guider une heuristique

d’instanciation dans la PPC

Nombreuses autres illustrations (EA, TS)

Solvers

IBM Ilog Solver, COmet

Optimisation Combinatoire 136

Page 35: Introduction aux problèmes d’ordonnancement · 02/09/2014 3 I.1 Exemples de problèmes de RO (2) Sac à Dos (Knapsack Problem) Sélectionner un ensemble d’objets à placer dans

02/09/2014

35

VI.7 Hybridation (5)

Recherche arborescente et méthodes approchées

Exemple :

Beam Search : combiner heuristique et Branch and Bound

Programmation mathématiques et méthodes approchées

Exploration de grands voisinages avec PLNE, avec Programmation dynamique

matheuristics

Optimisation Combinatoire 137

VII. Conclusion

VII. Conclusion (1)

Analyse du problème

Quelles sont les décisions à prendre ?

Quelles sont les contraintes ?

Quelles sont les objectifs ?

Unique ?

Multiple ?

Cadre de modélisation

Caractéristiques du modèle obtenu (expressivité, taille, ….)

Lien avec des problèmes classiques

Complexité

Optimisation Combinatoire 139

VII. Conclusion (2)

Résolution

Concevoir une méthode spécifique ?

Utiliser outils / méthodes existants ?

Décomposer

Parties essentielles du problème

Intégrer au fur et à mesure

Evaluation

Instances « jouet » / Instances taille réelle

Analyse critique des résultats

Optimisation Combinatoire 140