Recherche Opérationnelle Optimisation combinatoire : Applications et compléments Pierre Delisle Université de Reims Champagne-Ardenne Département de Mathématiques et Informatique 17 février 2014
Plan de la séance Différents problèmes d'optimisation académiques et industriels Problèmes de planification de personnel dans les transports Problèmes d'ordonnancement Optimisation et calcul HPC Métaheuristiques parallèles 2
Le problème de la planification du personnel dans les systèmes de transport 3
2 problèmes d'optimisation Offre de service Opérationnel Courses commerciales connues par les voyageurs 4
Problème de Graphicage Définition de l'offre de service Quels sont les points qui seront desservis? Découpage en services voiture Quelles sont les lignes qui seront empruntées par les véhicules? 5
Vehicle scheduling problem Différentes formulations Travelling Salesman Problem (TSP) Multiple Travelling Salesman Problem (MTSP) Vehicle Routing Problem (VRP) Capacitated Vehicle Routing Problem (CVRP) Vehicle Routing Problem with Time Windows(VRPTW) Vehicle Routing and Scheduling Problem (VSRP) + contraintes «industrielles» 6
Habillage Découpage en services agent De quelle façon assigner les personnels aux véhicules? 7
Approche de résolution habituelle Générer et affecter un coût à un ensemble initial (S) d horaires de personnel réalisables Formuler le problème de choisir dans S un sousensemble de coût minimum qui réalise toutes les tâches Couverture d ensemble (Set Covering Problem) ou Partitionnement d ensemble (Set Partitioning Problem) Résolution du SCP/SPP en utilisant un algorithme approprié (Branch and bound basé sur la PL) Utilisation de techniques de génération de colonnes pour déterminer S 8
Modélisation du problème d'habillage Modélisation sous forme de problèmes d'optimisation classiques de la recherche opérationnelle Vue concise de la structure sous-jacente des problèmes industriels Utilisation de méthodes d'optimisation existantes Différentes contraintes industrielles peuvent ensuite être ajoutées 3 problèmes Set Covering Problem (SCP) Set Partitioning Problem (SPP) Crew Scheduling Problem (CSP) 9
Set Covering Problem Ensemble fini X Ensemble S de sous-ensembles de X Trouver un sous-ensemble de S Qui couvre tous les éléments de X De cardinal minimum Solutions possibles s1, s2, s3, s4, s5 s2, s5, s6 Exemple : Formation d'un comité 10
Set Partitioning Problem Ensemble fini X Ensemble S de sous-ensembles de X Trouver un sous-ensemble de S Qui couvre tous les éléments de X De cardinal minimum Chaque élément ne doit être couvert qu'une seule fois Solutions possibles s 2, s 5, s 6 Exemple : Planification d'un mariage! 11
Modélisation mathématique du SCP et du SPP Minimiser n cjxj (1) Le coût de l'ensemble des colonnes i = 1,..., m (2) Chaque ligne doit être couverte : - Au moins une fois pour le SCP ( ) - Exactement une fois pour le SPP (=) j = 1,..., n (3) Une colonne peut être sélectionée (1) ou non (0) j= 1 Sous les contraintes n aijxj 1 j= 1 xj (0,1) c1 c2 c3 c4 c5 2 8 5 9 4 Ligne 1 1 1 1 0 0 Ligne 2 0 0 1 0 1 Ligne 3 0 1 0 1 0 Ligne 4 0 0 0 1 1 - {c1, c3, c4} est une solution réalisable du SCP mais pas du SPP - {c2, c5} est une solution réalisable du SCP et du SPP Exemple 12
SCP, SPP et planification de personnel Division des services voiture en morceaux de course Création de services agent couvrant plusieurs morceaux de course Set Covering ou Set Partitioning? Exemple : déplacement haut-le-pied (deadhead) permis ou non 13
Le problème de Crew Scheduling N tâches effectuées par k personnels Début et fin d'une journée N-1 Tâches de travail au même dépôt N k 0 i Temps de travail maximum T 2 1 Arc de transition De coût cij S'il est possible pour un personnel de réaliser i puis j Temps Trouver les chemins de personnel N+1 j Personnel 1 0 1 2 N+1 Personnel 2 0 i j N-1 Personnel 3 0 k N N+1 N+1 De coût total minimum De sorte que chaque tâche soit réalisée une seule fois Et que le temps de travail impliqué dans chaque chemin ne dépasse pas le temps de travail T 14
Modélisation mathématique du CSP Minimiser cij xij (1) Le coût de l'ensemble des arcs de transition j = 1,..., N (2) Le nombre d'arcs quittant une tâche est égal au nombre d'arcs entrant dans la tâche i = 1,...,N (3) Un arc quitte chaque tâche (4) K arcs originaires de 0 (dépôt) sont utilisés (K tâches sont choisies pour être la première tâche sur un chemin) i, j Sous les contraintes xjk = xij = 1 k xij i j x0 j = K j (Contraintes de limite de temps) (5) xij (0,1) i, j (6) Chaque arc peut être utilisé au maximum une fois (les chemins sont arc disjoints) 15
Relaxation lagrangienne pour le CSP Minimiser cij xij + N ui (1 i= 1 i, j xij ) (1) Introduction des multiplicateurs u et relaxation i de l équation 3 (un arc quitte chaque tâche) j Sous les contraintes xjk = k xij j = 1,..., N (2) Il doit y avoir K chemins d arcs disjoints contraints par la limite de temps T (4) La fonction objectif est de minimiser le coût (lagrangien) total de ces K chemins i x0 j = K j (Contraintes de limite de temps) (5) xij (0,1) i, j (6) Difficulté du problème : nécessité d avoir des chemins d arcs disjoints - Solution : relaxer l équation 6 16
Relaxation lagrangienne pour le CSP Minimiser N cij xij + ui (1 i= 1 i, j xij ) j Sous les contraintes xjk = k xij j = 1,..., N i Problème relaxé : Trouver les k chemins contraints par la limite de temps, de coût (lagrangien) minimum, parmi N chemins Solution du problème relaxé : Borne inférieure de la solution du CSP original Optimisation de subgradient : Permet de trouver les bons ui x0 j = K j (Contraintes de limite de temps) x 0 j (0,1) j = 1,..., N xij 0 entier i 0, j On permet aux arcs (et donc aux tâches) d apparaître dans plusieurs chemins, sauf ceux qui démarrent au dépôt 17
Méthode par séparation et évaluation (Branch and bound) Si la procédure d'optimisation de subgradient trouve une solution réalisable On a trouvé la solution optimale du problème original Sinon i.e. si, dans la meilleure solution, il reste des tâches de degrés entrant/sortant différents de 1 i.e. si certaines tâches sont utilisées plusieurs fois ou pas du tout une procédure de séparation-évaluation est nécessaire pour trouver la solution optimale À partir de la solution associée à la meilleure borne inférieure, interdire successivement les arcs associés à des tâches de degrés entrant/sortant > 1 18
Méthode par séparation et évaluation (Branch and bound) 19
Problème d'ordonnancement industriel : Production d'aluminium 20
Le processus industriel de production d'aluminium 21
Le processus de coulée Coulée de l'aluminium sur une machine à couler horizontale 22
Considérations du problème Déterminer l ordre de passage de n commandes en considérant plusieurs contraintes technologiques et administratives Date de livraison à respecter pour chaque commande Deux types de réglages: Changement du moule pour des produits de dimension différente Drainage des fours pour des produits d alliage différent Objectifs multiples à minimiser Pertes de temps à la machine à couler Retard total pour l ensemble des commandes Perte de capacité de transport 23
Exemple de problème 24
Single Machine Scheduling Problem Une machine est toujours disponible durant la période d'ordonnancement La machine traite les jobs un à la fois Le temps de traitement de chaque job sur la machine est connu et ne dépend pas des jobs précédents Le temps de traitement inclut le temps de setup et le temps sur machine 25
Objectifs classiques à optimiser 26
Implémentation logicielle 27
Variantes Plusieurs machines parallèles Atelier sériel (flowshop) 28
Variantes Atelier à cheminements multiples (job shop) 29
Optimisation et calcul HPC 30
Optimisation et calcul HPC Architectures parallèles actuelles Clusters, SMPs, processeurs multi-coeur, GPUs, hybrides Offrent des ressources de calcul imposantes Le problème est de les utiliser efficacement! Stratégies de parallélisation des méthodes arborescentes Maître-esclave, décomposition de domaine Stratégies de parallélisation des métaheuristiques Accélération du processus de recherche de solutions Amélioration de la recherche par la concurrence Problématiques Performance, portabilité et reproductibilité sur une architecture cible Architectures hybrides méthodes hybrides 31
Hybridation technologique 32
Hybridation technologique 33
Métaheuristiques parallèles Conception Implémentation 34
Métaheuristiques parallèles Métaheuristiques : stratégies efficaces pouvant demander beaucoup de ressources Temps de calcul Mémoire Les 2 contributions principales du parallélisme aux métaheuristiques : Accélérer le processus de recherche de solutions Améliorer la recherche par des activités concurrentes 35
Stratégies de parallélisation des métaheuristiques Processus de recherche simple Parallélisation interne Décomposition de domaine Processus de recherche multiples Processus indépendants Processus coopératifs Approches hybrides 36
La coopération entre processus de recherche Résolution d un problème par un groupe d agents coopérant Nouvelle forme d apprentissage Parallélisme naturel 3 questions importantes Quelle information doit être partagée? À quel moment doit-elle être partagée? Entre quels processus doit-elle être partagée? 37
Parallélisation des algorithmes génétiques Parallélisation maître-esclave sur une population unique Paralélisation de grain fin sur une population unique Population sur le processeur maître Appel aux esclaves pour appliquer les opérateurs génétiques Répartition des individus sur les processeurs Parallélisation de gros grain sur des population multiples (modèle en îles) Une population par processeur Migration d'individus 38
Parallélisation de l OCF Niveau Colonie Interaction (indépendant/coopératif) Échange d information (phéromone/solutions) Coordination et schéma d échange Niveau Fourmi Construction des solutions Gestion de la phéromone Gestion de la liste de candidats Recherche locale 39
Études de cas 40
Résolution exacte du CSP sur CPU/GPU 41
Architecture GPU GPU Architecture massivement parallèle Prix raisonnable CUDA (Compute Unified Device Architecture) Challenges Conception Programmation 42
Relaxation lagrangienne pour le CSP Problème relaxé Relaxation lagrangienne pour le CSP - Construction du problème - Définition des arcs fixés - Résolution du problème relaxé - Optimisation de subgradient Branch and Bound Calcul des plus courts chemins contraints bloc i : plus court chemin à partir de i thread : sommet du graphe 43
Résultats expérimentaux Code C++ CUDA 4.0 Problèmes tests 50 à 500 tâches OR-Library (benchmarks publics de la communauté scientifique) Nœud de calcul GPU sur Clovis GPU Tesla C2050 Architecture Fermi 448 unités de calcul 44
Résultats expérimentaux 180 Temps CPU Temps d'exécution (s) 160 155 Temps CPU+GPU 140 120 100 93 84 80 60 53 43 40 20 20 0 0 0 50 0 0 100 2 1 150 2 1 200 4 1 250 4 15 20 1 300 350 400 450 500 Nombre de tâches 45
Optimisation par Colonie de Fourmis sur CPU/GPU 46
Optimisation par Colonie de Fourmis Inspiré des comportements collectifs des insectes sociaux Construction des solutions Règle de transition Informations heuristique Phéromone Mise à jour de la phéromone Intensification Évaporation Initialisation des traces de phéromone Pour un nombre de cycles donné faire Pour chaque fourmi k faire - Positionnement de la fourmi k sur une ville choisie aléatoirement - Construction de la tournée par la règle de transition - Calcul de la longueur de la tournée Mise à jour de la meilleure tournée Mise à jour des traces de phéromone 47
Optimisation par Colonie de Fourmis sur GPU 48
Résultats expérimentaux 50 41,02 Accélérations 40 30 20 10 0 35,39 31,68 13,58 5,74 5,35 eil51 8,62 kroa100 16,77 11,9 d198 20,8 19,72 23,14 20,34 14,76 lin318 rat783 fl1577 d2103 Problèmes 49
Conclusion et perspectives Calcul HPC potentiel pour méthodes exactes et approchées Intégration aux solutions logicielles commerciales Beaucoup de travail reste à faire, conceptuel et technique GPU performance vs. effort de recherche et développement? Mais, que nous réserve le futur du HPC? 50
La semaine prochaine Pas de semaine prochaine, c'est terminé 51