Vous êtes sur la page 1sur 28

Introduction lordonnancement

Nizar El Hachemi

15 dcembre 2010

Nizar El Hachemi

Introduction lordonnancement

Plan du cours

Dnition et formulation du problme dordonnancement Introduction Comet Exemples

Nizar El Hachemi

Introduction lordonnancement

Dnition et formulation du problme dordonnancement

Cest quoi lordonnancement ? Quelques domaines concerns par la fonction ordonnancement La fonction ordonnancement dans la gestion de la production Contraintes rencontres en ordonnancement Formulation mathmatique

Nizar El Hachemi

Introduction lordonnancement

Ordonnancer ?
Dnition Le problme dordonnancement consiste organiser dans le temps la ralisation dun ensemble de tches, compte tenu de contraintes temporelles (dlais, contraintes denchanement, ...) et de contraintes portant sur lutilisation et la disponibilit des ressources requises. Un ensemble de tches Un environnement de ressources pour eectuer les tches Des contraintes sur les tches et les ressources Un critre doptimisation Dterminer les dates dexecution des tches

Nizar El Hachemi

Introduction lordonnancement

Domaines concerns

Gestion de projets Administration : gestion des ressources humaines + emplois du temps ... Production Informatique (excution des programmes, optimisation de code)

Nizar El Hachemi

Introduction lordonnancement

La gestion de la production

La gestion de production a pour objet la recherche dune organisation ecace de la production des biens et des services 3 catgories pour classer les dcisions en gestion de la production :
1 2

Les dcisions stratgiques : politique long terme de lentreprise Les dcisions tactiques : dcisions moyen terme (planication de la production, planication de transport) Les dcisions oprationnelles : court terme (gestion des stocks, ordonnancement, pilotage informatique en temps rel)

Nizar El Hachemi

Introduction lordonnancement

Contraintes rencontres en ordonnancement

Technologiques : une tche ne peut dbuter que lorsque dautres sont acheves Commerciales : certaines dates doivent tre acheves pour une date xe Matrielles : une machine ne peut traiter quune machine la fois Main doeuvre : eectif limit Financires : budget limit

Nizar El Hachemi

Introduction lordonnancement

Formalisation des contraintes

Contraintes potentielles (ou de potentiels) Contraintes disjonctives Contraintes cumulatives

Nizar El Hachemi

Introduction lordonnancement

Contraintes potentielles

Notation : tj : date de dbut de la tche j, pj sa dure Forme gnrale : tj ti >= aij Localisation temporelle : j ne peut dbuter avant une certaine date (livraison de matire premire, conditions climatiquees,...) Contrainte de dlai : j doit tre termine avant une certaine date Contrainte de succession
1 2 3 4

succession succession succession succession

simple avec attente avec chevauchement immdiate

Nizar El Hachemi

Introduction lordonnancement

Contraintes disjonctives

Deux tches i et j sont en disjonction si elles ne peuvent tre excutes simultanment Les intervalles dexcution des tches disjonctives sont disjoints : ]ti , ti + pi []tj , tj + pj [= Disjonction dingalits de potentiels
1

tj ti pi ou ti tj pj

Nizar El Hachemi

Introduction lordonnancement

Contraintes cumulatives

Cest une gnralisation des contraintes disjonctives Exemple : On a deux grues et 5 tches ncessitant une grue Soit
1 2

wk (t) la quatit disponible de la ressource k linstant t wik (t) la quantit ncessaire de la ressource k pour excuter i t
iS wik (t) wk (t) alors les tches de S peuvent tre excutes simultanment t sinon les tches de S sont en disjonction

Si
1 2 3

Nizar El Hachemi

Introduction lordonnancement

Formulation mathmatique

n tches excuter + 2 tches ctives 0 et n + 1 de dures nulles Dterminer (t0 , t1 , ..., tn , tn+1 ) de manire Minimiser f (t0 , t1 , ..., tn , 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 ngativit : t0 , t1 , ..., tn , tn+1

par exemple : f (t0 , t1 , ..., tn , tn+1 ) = tn+1 t0

Nizar El Hachemi

Introduction lordonnancement

Ordonnancement de projet

Problme central de lordonnancement : ressources illimites


1 2 3

Dnition Modlisation avec un graphe potentiels-tches Recherche dordonnancement admissible Problmatique Rsolution exacte Approche simple de rsolution : algorithme de liste Problmatique Lore et la demande Algorithme de dcalage

Cas gnral : ressources limites


1 2 3

Cas de ressources nancires


1 2 3

Nizar El Hachemi

Introduction lordonnancement

Context

Un projet consiste en un ensemble de n tches lies par des contraintes de succession ou de prcdence Objectif
1

2 3

Calculer la dure minimale du projet, les ressources tant supposes illimites Minimiser (tn+1 t0 ) sous les contraintes de potentiels Dterminer les dates de dbut au plus tt et au plus tard des tches Dterminer les tches critiques

Nizar El Hachemi

Introduction lordonnancement

Formulation mathmatique

Dterminer (t0 , t1 , ..., tn , tn+1 ) de manire Minimiser tn+1 t0 sujet


1 2

Contraintes de potentiel : tj ti >= aij Contraintes de non ngativit : t0 , t1 , ..., tn , tn+1

Nizar El Hachemi

Introduction lordonnancement

Formulation mathmatique

les modles quon a vu sont des PL (des modles linaires) Y a t-il une autre manire de modliser ces problmes dordonnancement ? Oui, en utilisant la programmation par contraintes

Nizar El Hachemi

Introduction lordonnancement

Comet

Un modle riche pour la recherche locale Une recherche riche Sparation entre la modlisation et la recherche Flxibiliter

Nizar El Hachemi

Introduction lordonnancement

Solveurs de Comet

Un solveur CP (constraint programming) Un solveur LP (programmation linaire) Un solveur MIP (programmation en nombres entiers) Un solveur LS (recherche locale base sur les contraintes)

Nizar El Hachemi

Introduction lordonnancement

Dclaration de solveurs en Comet

import cotls ;
1 Solver< LS > m() ;

import cotln ;
2 Solver< LP > lp() ;

import cotln ;
3 Solver< MIP > mip() ;

import cotfd ;
4 Solver< CP > m() ;

Nizar El Hachemi

Introduction lordonnancement

Dclaration de variables

var{int} queen[Size](m,Size) := distr.get() ; var< LP > {oat} cut[Congs](lp) ; var< MIP > {int} x[Columns](mip,0..maxValue) ; var< CP > {int} q[i in S](m,S) ;

Nizar El Hachemi

Introduction lordonnancement

Dclaration de contraintes

Constraint< LP >meet[Shelves] ;
1 forall(i in Shelves) meet[i] = lp.post(sum(j in Congs) C{j}.getShelf(i) * cut[j] >= demand[i]) ; 2 forall(i in Rows) mip.post(sum(j in Columns) coef[i,j] * x[j] <= b[i]) ;

ConstraintSystem< LS >S(m) ;
3 forall(i in Teams) S.post(x[i,i,nbRounds-1]+x[i,0,nbRounds-1] + x[i,i,nbRounds]+x[i,0,nbRounds] >= 1) ;

Solver< CP > m() ;


4 m.post(alldierent(q),onBounds) ;

Nizar El Hachemi

Introduction lordonnancement

Cas dtude simple : une seule machine

Lensemble des tches raliser est fait par une seule machine On peut rencontrer ce genre de problme dans un systme de production possdant une machine goulot Lordonnancement consiste choisir le temps dexcusion de chaque tche

Nizar El Hachemi

Introduction lordonnancement

Exemple : une seule machine

On considre une usine possdant une chargeuse Lusine recevra 10 chargement pendant une journe donne Chaque dchargement opr par la chargeuse prend 30 minutes 3 chargements arrivent 8h du matin, 4 arrivent 13h et le reste arrive 16h.

Nizar El Hachemi

Introduction lordonnancement

Exemple : une seule machine

Proposer un modle CP Ecrire le modle CP en language Comet Rsoudre le problme

Nizar El Hachemi

Introduction lordonnancement

Exemple : une seule machine

On enrichit le modle avec les contraintes suivantes : Pas de plus que deux chargements en 90 minutes Finir avant 8h du soir

Nizar El Hachemi

Introduction lordonnancement

Exemple : deux machines en parallle

On considre le mme problme mais avec deux chargeuses Lusine recevra 10 chargement pendant une journe donne Chaque dchargement opr par la chargeuse prend 30 minutes 3 chargements arrivent 8h du matin, 4 arrivent 13h et le reste arrive 16h. Finir avant 18h du soir

Nizar El Hachemi

Introduction lordonnancement

Jobshop Scheduling

Le problme consiste en un ensemble de n Jobs Un ensemble de m machines Un Job est une squence dactivits (t1 , t2 , ..., tl ) Chaque activit doit tre excuter sur une machine donne mi sans interruption

Nizar El Hachemi

Introduction lordonnancement

Contraintes du Jobshop Scheduling

Contrainte de prcdence
1

(ti precedes ti+1 ) Soit v et w deux activits qui sexcutent sur la mme machine alors : Soit v precedes w ou Soit w precedes v

Contrainte disjonctive
1

Nizar El Hachemi

Introduction lordonnancement