Introduction à l’ordonnancement

Nizar El Hachemi

15 décembre 2010

Nizar El Hachemi

Introduction à l’ordonnancement

Plan du cours

Définition et formulation du problème d’ordonnancement Introduction à Comet Exemples

Nizar El Hachemi

Introduction à l’ordonnancement

Définition et formulation du problème d’ordonnancement C’est quoi l’ordonnancement ? Quelques domaines concernés par la fonction ordonnancement La fonction ordonnancement dans la gestion de la production Contraintes rencontrées en ordonnancement Formulation mathématique Nizar El Hachemi Introduction à l’ordonnancement .

. contraintes d’enchaînement. .) et de contraintes portant sur l’utilisation et la disponibilité des ressources requises. Un ensemble de tâches Un environnement de ressources pour effectuer les tâches Des contraintes sur les tâches et les ressources Un critère d’optimisation ⇒ Déterminer les dates d’execution des tâches Nizar El Hachemi Introduction à l’ordonnancement .Ordonnancer ? Définition Le problème d’ordonnancement consiste à organiser dans le temps la réalisation d’un ensemble de tâches.. compte tenu de contraintes temporelles (délais.

Production Informatique (exécution des programmes.Domaines concernés Gestion de projets Administration : gestion des ressources humaines + emplois du temps ... optimisation de code) Nizar El Hachemi Introduction à l’ordonnancement .

La gestion de la production La gestion de production a pour objet la recherche d’une organisation efficace de la production des biens et des services 3 catégories pour classer les décisions en gestion de la production : 1 2 3 Les décisions stratégiques : politique long terme de l’entreprise Les décisions tactiques : décisions à moyen terme (planification de la production. ordonnancement. planification de transport) Les décisions opérationnelles : court terme (gestion des stocks. pilotage informatique en temps réel) Nizar El Hachemi Introduction à l’ordonnancement .

Contraintes rencontrées en ordonnancement Technologiques : une tâche ne peut débuter que lorsque d’autres sont achevées Commerciales : certaines dates doivent être achevées pour une date fixée Matérielles : une machine ne peut traiter qu’une machine à la fois Main d’oeuvre : effectif limité Financières : budget limité Nizar El Hachemi Introduction à l’ordonnancement .

Formalisation des contraintes Contraintes potentielles (ou de potentiels) Contraintes disjonctives Contraintes cumulatives Nizar El Hachemi Introduction à l’ordonnancement .

pj sa durée Forme générale : tj − ti >= aij Localisation temporelle : j ne peut débuter avant une certaine date (livraison de matière première...) Contrainte de délai : j doit être terminée avant une certaine date Contrainte de succession 1 2 3 4 succession succession succession succession simple avec attente avec chevauchement immédiate Nizar El Hachemi Introduction à l’ordonnancement .Contraintes potentielles Notation : tj : date de début de la tâche j. conditions climatiquees..

tj + pj [= ∅ Disjonction d’inégalités de potentiels 1 tj − ti ≥ pi ou ti − tj ≥ pj Nizar El Hachemi Introduction à l’ordonnancement . ti + pi [∩]tj .Contraintes disjonctives Deux tâches i et j sont en disjonction si elles ne peuvent être exécutées simultanément ⇒ Les intervalles d’exécution des tâches disjonctives sont disjoints : ]ti .

Contraintes cumulatives C’est une généralisation des contraintes disjonctives Exemple : On a deux grues et 5 tâches nécessitant une grue Soit 1 2 wk (t) la quatité disponible de la ressource k à l’instant t wik (t) la quantité nécessaire de la ressource k pour exécuter i àt i∈S wik (t) ≤ wk (t) alors les tâches de S peuvent être exécutées simultanément à t sinon les tâches de S sont en disjonction Si 1 2 3 Nizar El Hachemi Introduction à l’ordonnancement .

. tn . tn+1 ) = tn+1 − t0 Nizar El Hachemi Introduction à l’ordonnancement .. t1 .. tn+1 ) sujet à 1 2 3 4 Contraintes Contraintes Contraintes Contraintes de potentiel : tj − ti >= aij disjonctives : tj − ti ≥ pi ou ti − tj ≥ pj cumulatives (idem) de non négativité : t0 ... tn . t1 . . tn .. .. t1 ..Formulation mathématique n tâches à exécuter + 2 tâches fictives 0 et n + 1 de durées nulles Déterminer (t0 . . . tn+1 ) de manière à Minimiser f (t0 .. t1 . tn+1 par exemple : f (t0 ... tn ..

Ordonnancement de projet Problème central de l’ordonnancement : ressources illimitées 1 2 3 Définition Modélisation avec un graphe potentiels-tâches Recherche d’ordonnancement admissible Problématique Résolution exacte Approche simple de résolution : algorithme de liste Problématique L’offre et la demande Algorithme de décalage Cas général : ressources limitées 1 2 3 Cas de ressources financières 1 2 3 Nizar El Hachemi Introduction à l’ordonnancement .

Context Un projet consiste en un ensemble de n tâches liées par des contraintes de succession ou de précédence Objectif 1 2 3 4 Calculer la durée minimale du projet. les ressources étant supposées illimitées ⇒ Minimiser (tn+1 − t0 ) sous les contraintes de potentiels Déterminer les dates de début au plus tôt et au plus tard des tâches Déterminer les tâches critiques Nizar El Hachemi Introduction à l’ordonnancement .

tn+1 ) de manière à Minimiser tn+1 − t0 sujet à 1 2 Contraintes de potentiel : tj − ti >= aij Contraintes de non négativité : t0 ..Formulation mathématique Déterminer (t0 . tn .. tn . tn+1 Nizar El Hachemi Introduction à l’ordonnancement .. .. ... t1 . t1 .

en utilisant la programmation par contraintes Nizar El Hachemi Introduction à l’ordonnancement .Formulation mathématique les modèles qu’on a vu sont des PL (des modèles linéaires) Y a t-il une autre manière de modéliser ces problèmes d’ordonnancement ? Oui.

Comet Un modèle riche pour la recherche locale Une recherche riche Séparation entre la modélisation et la recherche Fléxibiliter Nizar El Hachemi Introduction à l’ordonnancement .

Solveurs de Comet Un solveur CP (constraint programming) Un solveur LP (programmation linéaire) Un solveur MIP (programmation en nombres entiers) Un solveur LS (recherche locale basée sur les contraintes) Nizar El Hachemi Introduction à l’ordonnancement .

3 Solver< MIP > mip() . import cotfd . 1 Solver< LS > m() . Nizar El Hachemi Introduction à l’ordonnancement .Déclaration de solveurs en Comet import cotls . 4 Solver< CP > m() . 2 Solver< LP > lp() . import cotln . import cotln .

0. Nizar El Hachemi Introduction à l’ordonnancement .Size) := distr. var< LP > {float} cut[Configs](lp) .. var< MIP > {int} x[Columns](mip.get() .Déclaration de variables var{int} queen[Size](m.S) .maxValue) . var< CP > {int} q[i in S](m.

getShelf(i) * cut[j] >= demand[i]) . ConstraintSystem< LS >S(m) .post(x[i. Nizar El Hachemi Introduction à l’ordonnancement .0.nbRounds-1]+x[i.i. 3 forall(i in Teams) S.nbRounds]+x[i.onBounds) . 4 m.post(sum(j in Configs) C{j}.nbRounds] >= 1) . 1 forall(i in Shelves) meet[i] = lp.Déclaration de contraintes Constraint< LP >meet[Shelves] .0. 2 forall(i in Rows) mip.post(sum(j in Columns) coef[i.nbRounds-1] + x[i.post(alldifferent(q).i. Solver< CP > m() .j] * x[j] <= b[i]) .

Cas d’étude simple : une seule machine L’ensemble des tâches à réaliser est fait par une seule machine On peut rencontrer ce genre de problème dans un système de production possédant une machine goulot L’ordonnancement consiste à choisir le temps d’exécusion de chaque tâche Nizar El Hachemi Introduction à l’ordonnancement .

Exemple : une seule machine On considère une usine possédant une chargeuse L’usine recevra 10 chargement pendant une journée donnée Chaque déchargement opéré par la chargeuse prend 30 minutes 3 chargements arrivent à 8h du matin. Nizar El Hachemi Introduction à l’ordonnancement . 4 arrivent à 13h et le reste arrive à 16h.

Exemple : une seule machine Proposer un modèle CP Ecrire le modèle CP en language Comet Résoudre le problème Nizar El Hachemi Introduction à l’ordonnancement .

Exemple : une seule machine On enrichit le modèle avec les contraintes suivantes : Pas de plus que deux chargements en 90 minutes Finir avant 8h du soir Nizar El Hachemi Introduction à l’ordonnancement .

Finir avant 18h du soir Nizar El Hachemi Introduction à l’ordonnancement .Exemple : deux machines en paralléle On considère le même problème mais avec deux chargeuses L’usine recevra 10 chargement pendant une journée donnée Chaque déchargement opéré par la chargeuse prend 30 minutes 3 chargements arrivent à 8h du matin. 4 arrivent à 13h et le reste arrive à 16h.

. .. tl ) Chaque activité doit être exécuter sur une machine donnée mi sans interruption Nizar El Hachemi Introduction à l’ordonnancement .Jobshop Scheduling Le problème consiste en un ensemble de n Jobs Un ensemble de m machines Un Job est une séquence d’activités (t1 . t2 ..

Contraintes du Jobshop Scheduling Contrainte de précédence 1 (ti precedes ti+1 ) Soit v et w deux activités qui s’exécutent sur la même machine alors : Soit v precedes w ou Soit w precedes v Contrainte disjonctive 1 2 Nizar El Hachemi Introduction à l’ordonnancement .

Sign up to vote on this title
UsefulNot useful