Gestion dynamique d’un portefeuille de commandes Par Claude YUGMA
Entreprise travaillant à la commande Problématique Entreprise travaillant à la commande Exigences du Client Contraintes de l'Entreprise Faisabilité de la commande Capacité de production: disponibilité des ressources, charge de travail en cours Caractéristiques techniques de la commande Date de livraison souhaitée
Problématique Négociation des dates de livraison 1) Entreprise Client L'entreprise propose une date de livraison (due date assignment) Le client peut l'accepter ou la refuser 2) Client Entreprise Le client fixe la date de livraison voulue L’entreprise peut accepter ou refuser la commande proposée. Remarque : la négociation ne s’arrête pas uniquement à une réponse binaire « oui » ou « non » d’une des deux parties. Les dates, les prix sont négociables.
Problématique Nous nous plaçons dans le cas où: le client impose une date de livraison l'entreprise accepte ou refuse. Une commande acceptée et livrée à l’heure dégage une marge (le gain). L’entreprise se voit retenir des pénalités en cas de retard de livraison. Ceci pour conserver de bonnes relations avec le client On a prévu des pénalités au moment de la commande
Problématique Comment sélectionner et ordonnancer les commandes de sorte à maximiser le gain ? On a donc un problème de sélection et un problème d’ordonnancement Sélectionner les commandes qui seront acceptées par l’entreprise. Ordonnancer ces commandes de sorte à maximiser le profit.
Problématique Exemple 3 commandes C1(10,15,20) C3(25,30,40) C2(15,50,30) Pi Gi di Pénalité fixe et égale à 20 3 2 1 2 3 Gain total=15+50+(30-20)=75 3 1 2 Gain total=50+30=80 2 3
Plan Modélisation du problème dans un contexte statique Etat de l’art des problèmes présentant des similitudes Résolution par des méthodes exactes Résolution par des heuristiques Contexte dynamique Conclusion & perspectives
Plan Modélisation du problème dans un contexte statique Etat de l’art des problèmes présentant des similitudes Résolution par des méthodes exactes Résolution par des heuristiques Contexte dynamique Conclusion & perspectives
Modélisation L'entreprise comporte un poste (atelier) goulot problème à une machine On se place dans un contexte statique on a un portefeuille de commandes sur lesquelles l'entreprise doit statuer pour chaque commande , on connaît le temps de process , la date de livraison voulue par le client , le gain la pénalité fixe linéaire
Formulation du problème 1) le meilleur sous ensemble de commandes à accepter et 2) un ordonnancement Le Problem of Selection and Scheduling (PSS) consiste à: retard de la commande dans l’ordonnancement gain pénalités De sorte à maximiser où
Reformulation du problème Le Problem of Scheduling (PS) consiste à déterminer un ordonnancement pour les commandes de sorte à minimiser Où 1 si la tâche i est en retard dans 0 sinon
Reformulation du problème Lemme: Le problème (PSS) et (PS) sont équivalents : une solution optimale de (PSS) peut être transformée en temps polynomial en une solution de (PS) et vice versa. Le (PS) généralise 2 problèmes connus de la littérature
Plan Modélisation du problème dans un contexte statique Résolution par des méthodes exactes Résolution par des heuristiques Contexte dynamique Conclusion & perspectives Etat de l’art des problèmes présentant des similitudes le problème de minimisation du retard le problème de minimisation de tâches
Problème 1||wiTi Lawler (1977) Algorithme pseudo polynomial par la programmation dynamique O( ) ( pour le cas ) Emmons relations de dominance (position relative des tâches) Du et Leung (1990) NP-Difficile au sens ordinaire pour le cas wi=1. Lawler (1977), Lenstra, Rinnooy Kan & Brucker: est NP-Difficile au sens fort.
Problème 1||giUi Moore & Hodgson (1968): Algorithme polynomial où Lawler & Moore (1969) : Algorithme pseudo - polynomial par la programmation dynamique . Karp (1972) : NP-Difficile au sens ordinaire. Karger (1997) proposa une FPTAS Baptiste (1999) : montre que le problème en et pour le problème une complexité de où et k est le nombre distincts de
Plan Modélisation du problème dans un contexte statique Etat de l’art des problèmes présentant des similitudes Résolution par des heuristiques Contexte dynamique Conclusion & perspectives Résolution par des méthodes exactes Complexité du problème Programmation linéaire Branch and Bound Programmation dynamique
Cas des pénalités fixes Théorème: le problème de sélection et d ’ordonnancement avec des pénalités fixes est NP-difficile au sens ordinaire. Idée de la preuve: le problème avec des pénalités fixes se ramène au problème qui est NP-difficile au sens ordinaire. Quelques cas particuliers Si où est le minimum des gains Si où est le maximum des gains et les dates de livraison identiques Knapsack. Le problème s’écrit où problème qui est résolu en . Ce problème admet une FPTAS
Cas des pénalités linéaires Théorème: le problème de sélection et d’ordonnancement avec des pénalités linéaires i.e. est NP-difficile au sens fort. Idée de la preuve: la réduction se fait à partir du problème qui est un problème NP-difficile au sens fort. On part d’une instance de NP-difficile au sens fort On construit l’instance I’ Il s’agit de montrer l’existence d’une sélection S et d’un ordonnancement qui garantissent un profit ssi il existe un ordonnancement pour l’instance I avec un retard inférieur à K
Cas des pénalités linéaires Formulation linéaire Variables de décision : max Fonction objectif Coûts de pénalité précède sinon Les contraintes (1) (2) (3) (4) (5) (6) Résolu avec Cplex 5 sur un ordinateur Pentium II
Tests expérimentaux Les suivent une loi Gaussienne de ... Comparaison des temps d exécution Nbre commandes 15 20 23 10 PL1 PL2 25.47 s >15 mns 0.79 s >30 mns 30.33 s 0.78 s 0.53 s 0.05 s Optimale 2087 4739 4161 3568 Résultats des tests pour Optimale Nbre commandes Tps d’exécution 14 12 10 >30 mns 5.13 s 1.27 s 1.20 s 13 1161 1689 1541 ...
Branch and Bound Si une tâche i est telle que , alors elle est rejetée Les tâches à l’heure : Si 2 tâches consécutives i et j sont à l’heure avec j placée avant i et alors il est dominant de les placer par EDD (Emmons) Les tâches en retard: Si 2 tâches consécutives i et j sont en retard et même en les interchangeant alors il est dominant de les placer par croissants
Branch and Bound Pour la tâche i, la date à laquelle le gain devient nul est : t Profit gi di Di Considérons le problème en prenant Di comme due date (rappel : pseudo-polynomial). Soit V l’optimum. Théorème: La valeur de l’objectif du problème de sélection et d’ordonnancement est bornée par
Calcul: borne supérieure NP-Difficile [Lawler & Moore (1969), algorithme pseudo polynomial ] Calculer la borne peut prendre un temps relativement élevé Nous faisons le choix d’un calcul rapide de la borne au détriment de sa précision heuristique, relaxer la borne Calcul de la borne: Max pi Rejeter T1 1 T2 4 T3 8 T4 6 T1 1 T2 4 T3 8 10 T4 Min wi
Tests expérimentaux Contribution de la borne opt temps 10 20 30 Cas Sans borne avec borne opt temps 10 20 30 3209 818375 24245330 3164 816008 24245317 1161 2200 5751 0.01 s 0.85 s 25.3 mn Cas 3483 0.01 s 2087 3479 5077862 2.08 s 4161 4991039 30 mn 8462 1447436881 1447436918 Sans borne avec borne opt temps 10 20 30 Cas La borne supérieure n’est pas efficace ! Néanmoins le traitement va jusqu’à 30 tâches !
Programmation dynamique Le problème traité est constitué d’un problème de sélection et d’un problème d’ordonnancement : Si on se fixe l’ensemble S à sélectionner on cherche le meilleur ordonnancement On s’intéresse à une situation un peu différente Si on se fixe une séquence, comment trouver le meilleur sous-ensemble ? Lemme: le problème ainsi défini est NP-difficile au sens ordinaire.
Programmation dynamique Soit une séquence fixée , la ième tâche Notons : gain maximal que l’on peut obtenir sur t: représente la date de début de l’ordonnancement avec Le programme est en
Tests expérimentaux Cas particulier , , on se fixe séquence EDD 10 20 DP B&B Tps DP Tps B&B 10 20 30 2087 4161 4529 0.01 s 0.03 s 0.09 s 0.79 s 30 min 100 10093 ?? 1 s Propriété: La séquence EDD est dominante lorsque les gains sont égaux au temps des tâches, et les pénalités linéaires. Corollaire: Sous ces hypothèses, la PD sur EDD permet d’obtenir la meilleure sous-séquence.
Plan Modélisation du problème dans un contexte statique Etat de l’art des problèmes présentant des similitudes Résolution par des méthodes exactes Contexte dynamique Conclusion & perspectives Résolution par des heuristiques Heuristiques proches de Un recuit simulé
Approche par des heuristiques Il existe dans la littérature des algorithmes de liste basés sur des règles de priorité pour Le problème traité est proche du problème COVERT ATC WPD GPD Rôle Définition fonction Apparent Tardiness Cost Gain Processing Due date Weighted Processing Due date Weighted Cost Over Time Algorithmes fournissant de bons résultats Adaptation au problème.
Adaptation des algorithmes On rappelle que pour une tâche i est la date qui annule le profit On fixe des deadlines Pendant la construction dynamique de la solution dès qu’une tâche i est sélectionnée pour être ordonnancée on la compare à : La tâche est rejetée Sinon elle est acceptée
Tests expérimentaux
Tests expérimentaux gi indépendants de pi
Un recuit simulé Les tests expérimentaux ont montré que les heuristiques sont intéressantes. Compromis entre optimisation et heuristique: recuit simulé Pour cette technique, nous avons besoin de définir les voisinages de recherche. L’espace de recherche est l’ensemble des séquences sur [1…n]. Pour une séquence donnée, il y a O( ) voisins On dira que 2 séquences sont voisines si l’une peut être obtenue par transposition de 2 tâches
Le recuit simulé G( s ): est le meilleur gain obtenu par PD sur la séquence s Le principe de l’algorithme est le suivant: Choisir y au voisinage de s et calculer DG = G(y) - G(s) Si DG > 0 remplacer : s y Si G(y) > G(meilleur) alors meilleur y fin Si Sinon accepter y avec une certaine probabilité (Boltzmann)
Tests expérimentaux Comparaison Recuit & PD
Plan Modélisation du problème dans un contexte statique Etat de l’art des problèmes présentant des similitudes Résolution par des méthodes exactes Résolution par des heuristiques Conclusion & perspectives Contexte dynamique Résolution par la méthode du statique itératif
Contexte dynamique Les commandes arrivent au fil de l’eau dans l’entreprise Entreprise On connaît le portefeuille de commandes déjà accepté i.e. différentes commandes qu’il faut réaliser le mix prévisionnel Les proportions pour chaque famille de produits Comment décider d’accepter ou refuser une commande?
Le statique itératif Principe: A chaque instant de décision le décideur fixe un certain nombre de paramètres et prend une décision sur des données déterministes en respectant les contraintes tout en cherchant à optimiser son objectif. 2 événements correspondant aux décisions à prendre Une commande arrive Disponibilité de la machine Accepter ou refuser Quoi ordonnancer ?
Statique itératif Evénement 1 Horizon Commande arrive ?? Horizon Portefeuille + commande en cours + k tâches fictives Machine Tâche en exécution Tâches dans le portefeuille Tâches fictives Tâche en cours d’exécution
Statique itératif (suite) Horizon Evénement 2 Fin d’exécution Machine disponible Portefeuille + k tâches fictives Fin d’exécution d’une tâche Performance de l’algorithme L’algorithme calcule au fur et à mesure le gain généré G1. On mémorise l’ensemble des tâches reçues. A posteriori, on fait tourner l’heuristique ATC sur cet ensemble, G2 Performance=
Protocole des tests Nous avons considéré qu’il y a 3 Familles de produits f1 a une durée moyenne de 30, un mix de 20% f2 a une durée moyenne de 100, un mix de 30% f3 a une durée moyenne de 200, un mix de 50% Moyenne des durées des tâches 136 Le temps de travail effectif est fixé à 150000 travail global Le nombre moyen de commandes L’inter arrivée est
Résultats des tests
Plan Modélisation du problème dans un contexte statique Etat de l’art des problèmes présentant des similitudes Résolution par des méthodes exactes Résolution par des heuristiques Contexte dynamique Conclusion & perspectives
Conclusion & perspectives Nous avons étudié un nouveau problème d’ordonnancement qui est un mix entre le retard et le nombre de tâches en retard pour 2 types de pénalités Pour les 2 types de pénalité le problème est NP-difficile, et au sens fort pour des pénalités linéaires. Pour le résoudre nous avons proposé une résolution par des méthodes exactes et approchées. Programmation linéaire en nombres entiers 20 tâches Procédure par séparation et évaluation progressive 30 tâches
Conclusion Pour tenter d’améliorer le nombre de tâches à traiter nous avons proposé des méthodes heuristiques Ces heuristiques sont issues de . Nous avons adapté ces heuristiques au problème. L’adaptation donne de bons résultats Un recuit simulé basé sur des séquences a été proposé et fournit des résultats intéressants En dynamique où les commandes arrivent au fil de l’eau nous avons proposé une méthode de statique itératif. Les tests ont montré que les résultats sont intéressants par rapport au ratio indiqué.