Contenuto e scopo presentazione. Crew Scheduling e Crew Rostering. Gestione del personale. Motivazioni



Documenti analoghi
CPM - PERT CPM - PERT. Rappresentazione di un progetto. Gestione di un progetto. Critical Path Method Project Evaluation and Review Technique

Capitolo 5: Ottimizzazione Discreta. E. Amaldi DEI, Politecnico di Milano

Un esempio di applicazione della programmazione lineare intera all ingegneria del software: stima del worst-case execution time di un programma

Modelli di Programmazione Lineare e Programmazione Lineare Intera

Ottimizzazione Multi Obiettivo

TECNICHE DI SIMULAZIONE

Modelli di Programmazione Lineare. PRTLC - Modelli

Contenuto e scopo presentazione. Vehicle Scheduling. Motivazioni VSP

Sequenziamento a minimo costo di commutazione in macchine o celle con costo lineare e posizione home (In generale il metodo di ottimizzazione

mese richiesta

Seconda Prova di Ricerca Operativa. Cognome Nome Numero Matricola A 1/12 A 2/12

Soluzione dell esercizio del 2 Febbraio 2004

Management Sanitario. Modulo di Ricerca Operativa

Esercizi di Ricerca Operativa I

e-dva - eni-depth Velocity Analysis

Ricerca Operativa e Logistica

Excel. A cura di Luigi Labonia. luigi.lab@libero.it

COMUNE DI RAVENNA GUIDA ALLA VALUTAZIONE DELLE POSIZIONI (FAMIGLIE, FATTORI, LIVELLI)

Gestione Turni. Introduzione

1) Descrivere dettagliatamente a quale problema di scheduling corrisponde il problema.

Ogni azienda ha la necessità di conoscere il proprio sistema dei costi sia per controllare la situazione esistente che per verificare il

Il Metodo Branch and Bound

Sono casi particolari di MCF : SPT (cammini minimi) non vi sono vincoli di capacità superiore (solo x ij > 0) (i, j) A : c ij, costo di percorrenza

SERVIZIO A CHIAMATA DI PESCHIERA BORROMEO

Progetto di Reti di Telecomunicazione Modelli in Programmazione Lineare Problemi di flusso

Sistemi Operativi. Scheduling della CPU SCHEDULING DELLA CPU. Concetti di Base Criteri di Scheduling Algoritmi di Scheduling

Sistemi Operativi SCHEDULING DELLA CPU. Sistemi Operativi. D. Talia - UNICAL 5.1

Algoritmi e strutture dati. Codici di Huffman

Organizzazione degli archivi

Un modello matematico di investimento ottimale

Architetture software

Logistica magazzino: Inventari

Automazione Industriale (scheduling+mms) scheduling+mms.

Luigi Piroddi

Informatica (Basi di Dati)

1. Considerazioni preliminari

ESEMPIO P.L. : PIANIFICAZIONE DI INVESTIMENTI

Strutturazione logica dei dati: i file

b i 1,1,1 1,1,1 0,1,2 0,3,4

Fondamenti e didattica di Matematica Finanziaria

Progetto di Reti di Telecomunicazione Modelli in Programmazione Lineare Problemi di Localizzazione

Ottimizazione vincolata

Scheduling della CPU. Sistemi multiprocessori e real time Metodi di valutazione Esempi: Solaris 2 Windows 2000 Linux

G S M C O M M A N D E R Duo S

Sistemi Operativi SCHEDULING DELLA CPU

Università degli Studi di L Aquila. Facoltà di Ingegneria. Corso di Laurea in Ingegneria Elettronica Corso di Sistemi Informativi

Ricerca Operativa e Logistica Dott. F.Carrabs e Dott.ssa M.Gentili. Introduzione

Macchine a stati finiti. Sommario. Sommario. M. Favalli. 5th June 2007

Analisi sensitività. Strumenti per il supporto alle decisioni nel processo di Valutazione d azienda

RICERCA OPERATIVA GRUPPO B prova scritta del 22 marzo 2007

risulta (x) = 1 se x < 0.

Archivio CD. Fondamenti di Programmazione

MODELLO RELAZIONALE. Introduzione

2 Formulazione dello shortest path come problema di flusso

A intervalli regolari ogni router manda la sua tabella a tutti i vicini, e riceve quelle dei vicini.

Gestione della memoria centrale

Sistemi Operativi. 5 Gestione della memoria

MATEMATICA DEL DISCRETO elementi di teoria dei grafi. anno acc. 2009/2010

Gestione Risorse Umane Web

VADEMECUM PER L ATTIVAZIONE DEL TIROCINIO (Studente e Azienda)

SISTEMI INFORMATIVI AVANZATI -2010/ Introduzione

Massimo Paolucci DIST Università di Genova. Metodi per supportare le decisioni relative alla gestione di progetti

ISTRUZIONI PER LA GESTIONE BUDGET

GUIDA RAPIDA PER LA COMPILAZIONE DELLA SCHEDA CCNL GUIDA RAPIDA PER LA COMPILAZIONE DELLA SCHEDA CCNL

Scheduling. Sistemi Operativi e Distribuiti A.A Bellettini - Maggiorini. Concetti di base

Modello di Controllo dell Accesso basato sui ruoli (RBAC)

Macchine a stati finiti. Sommario. Sommario. M. Favalli. Le macchine a stati si utilizzano per modellare di sistemi fisici caratterizzabili mediante:

Metodi e Modelli per l Ottimizzazione Combinatoria Il problema del flusso di costo minimo

Traccia di soluzione dell esercizio del 25/1/2005

Macchine sequenziali

1. PRIME PROPRIETÀ 2

Intelligenza Artificiale

Lezione 8. La macchina universale

LA MASSIMIZZAZIONE DEL PROFITTO ATTRAVERSO LA FISSAZIONE DEL PREZZO IN FUNZIONE DELLE QUANTITÀ

Modulo 3 - Elaborazione Testi 3.5 Stampa unione

Esercitazione di Basi di Dati

Logistica o distribuzione

Regione Toscana. ARPA Fonte Dati. Manuale Amministratore. L. Folchi (TAI) Redatto da

Per studio di funzione intendiamo un insieme di procedure che hanno lo scopo di analizzare le proprietà di una funzione f ( x) R R

Algoritmo proposto. Maria Silvia Pini, Francesca Rossi, K. Brent Venable. Dipartimento di Matematica Pura e Applicata Università di Padova

DOCUMENTO DI SPECIFICA DEI REQUISITI SOFTWARE

Operazioni sui database

Gestione delle Presenze WorkFlow Manuale Operativo

Esercitazione in Laboratorio: risoluzione di problemi di programmazione lineare tramite Excel il mix di produzione

ARCHIVI E DATABASE (prof. Ivaldi Giuliano)

Dimensione di uno Spazio vettoriale

PROGRAMMA GESTIONE TURNI MANUALE UTENTE. Programma Gestione Turni Manuale Utente versione 1.1

CONTENUTO DELL AGGIORNAMENTO

Guida alla redazione del Fascicolo XBRL

(Esercizi Tratti da Temi d esame degli ordinamenti precedenti)

Per capire meglio l ambito di applicazione di un DWhouse consideriamo la piramide di Anthony, L. Direzionale. L. Manageriale. L.

Comune di Capannori Provincia di Lucca

Parte 4. Progettazione di una simulazione

DEPLOY YOUR BUSINESS

COLLI. Gestione dei Colli di Spedizione. Release 5.20 Manuale Operativo

FtpZone Guida all uso

3 CENNI DI TEORIA DELLA COMPLESSITA COMPUTAZIONALE. E. Amaldi Fondamenti di R.O. Politecnico di Milano 1

INDICE E RIFERIMENTI

Determinare la grandezza della sottorete

Transcript:

Contenuto e scopo presentazione Crew Scheduling e Crew Rostering Contenuto vengono introdotti modelli e metodi per problemi di turnazione del personale Raffaele Pesenti 07/02/2002 14.41 Scopo fornire strumenti di supporto alle decisioni operativo in ambito logistico tenendo presente che i costi del personale ed i vincoli a cui esso è soggetto sono sempre significativi in ambito aziendale; evidenziare pregi e limiti dei modelli matematici quando sono applicati al di fuori dei contesti per cui sono stati sviluppati. 2 Motivazioni Coordinare i turni del personale è fondamentale per la buona gestione aziendale, infatti è indispensabile per minimizzare i costi (quantità del personale impiegato) e rispettare i vincoli sindacali, ma anche per bilanciare i carichi di lavoro in modo da non creare tensioni tra i lavoratori. Esempi: trasporti ferroviari, aerei trasporto collettame ospedali, servizi di emergenza... 3 Gestione del personale Nella gestione del personale si deve gestire: la definizione dei turni di lavoro, la rotazione degli equipaggi tra i turni (vedi lucidi seguenti), la distribuzione della clientela (vedi problemi di zaino e routing), lo scheduling degli equipaggi di riserva/a disposizione lo scheduling del personale nei terminali (di terra nel caso aeronautico) e del personale adetto alle manutenzioni ecc... vi è una ricca bibliografia per il crew scheduling e rostering nel caso del personale viaggiante aereo e ferroviario; i modelli usati derivano in genere da quelli di set partitioning/covering e, date le dimensioni elevate, vengono di solito risolti tramite generazione di colonne. Questi modelli funzionano bene nel caso di scheduling fissati (e.g., dalle partenze degli aerei) sono noti e devono essere rispettati; nel caso di trasporto su gomma e scheduling dinamici può convenire utilizzare tecniche di allocazione dinamica di risorse. 4

Definizioni attività (task): occupazione produttiva/corsa con una data durata temporale che deve essere svolto senza interruzione da un lavoratore/squadra di lavoro/equipaggio; allacciamento (pairing): insieme di task svolgibili in sequenza eventualmente intervallando con delle pause da una stessa persona/squadra/equipaggio in un determinato intervallo temporale (24-48 ore). Nel caso di corse di mezzi di trasporto, l origine del primo task e la destinazione dell ultimo task dell allacciamento coincidono con il deposito dell equipaggio; sottoallacciamento: sottoinsieme dei task di un allacciamento che se eseguiti in sequenza inducono un costo significatamente inferiore alla somma dei costi di esecuzione dei task che li compongono. In seguito per comodità si intenderanno anche i singoli task come sottoallacciamenti particolari; turni lavorativi (work rostering) sequenza di allacciamenti che una persona/squadra/equipaggio deve effettuare in un dato periodo di tempo (una settimana-una stagione). 5 Definizioni crew scheduling problem: problema della definizione ottimale degli allacciamenti; crew rostering: problema della definizione ottimale dei turni. 6 Crew Scheduling Problem Crew Scheduling Problem Crew Scheduling Problem CSP(T,c) Istanza: un insieme T di task, ognuno dei quali caratterizzato da attributi, e.g., start time st i, end time et i, una start location sl i, una end location el i, che ne determinano la compatibilità reciproca da appartenere allo stesso allacciamento. Soluzione: un crew scheduling, i.e., una collezione di allacciamenti Q={U 1,...,U N } tale che j U j = T. Obiettivo: minimizzare i costi degli allacciamenti, min Σ j:uj Q c j. Descrizione del problema. obiettivo: minimizzare costi operativi vincoli: ogni attività deve essere eseguita leve decisionali: allacciamenti da realizzare dati tecnologici: insieme Q dei possibili allacciamenti costo c j di ogni allacciamento U j appartenenza di un attività i ad una allacciamento j, i.e., a ij = 1, se i U j, 0 altrimenti. 7 8

Formulazione matematica Formulazione matematica Formulazione del problema. Le variabili: variabili binarie 1 x j = 0 se allacciamento altrimenti j è selezionato I vincoli: ogni attività deve essere eseguita (in uno e un solo allacciamento) Σ j Q a ij x j =1, i La funzione obiettivo: il costo ogni allacciamento j o è selezionato o non lo è x j {0,1}, j Σ j Q c j x j 9 10 Commenti La formulazione proposta riduce il CSP ad un problema di set partitioning; spesso il vincolo sulla necessità che un task sia eseguito è rilassato da equazione a disequazione del tipo maggiore ed uguale, il problema diventa di set covering; tale rilassamento in generale non è riduttivo anzi potrebbe essere conveniente, e.g., se due equipaggi sono assegnati alla stessa corsa vorrà dire che uno sarà semplicemente trasportato a destinazione per prendere servizio in un attività successiva; la soluzione ottima del problema con i vincoli rilassati (set covering) ha certamente un costo non superiore a quello originale (set partitioning); le difficoltà dell approccio risiedono nella generazione degli allacciamenti possibilie nella valutazione dei loro costi; gli allacciamenti potenziali possono essere in numero elevatissimo, in generale ne viene considerato solo un certo sottoinsieme. Nella generazione degli allacciamenti devono essere tenuti presenti vincoli su: tempi massimi di lavoro percorrenze massime di lavoro durate minime delle pause obbligatorie tra i task... ad ogni allacciamento j è associato un costo c j che tipicamente è caratterizzato dalle seguenti componenti: il costo di inizio c sj ; il costo di terminazione c jt ; la somma dei costi di esecuzione dei sottoallaciamenti, in particolare ad ogni sotto allacciamento è associato un costo c pq, dove p e q sono i task iniziale e finale del sottoallacciamento; la somma dei costi associati alle pause, in particolare ad ogni pausa tra due sottoallacciamenti è associato un costo d qp, dove q e p sono rispettivamente i task finale e iniziale dei sottoallacciamenti coinvolti. 11 12

Per generare tutti gli allacciamenti ammissibili si ricorre spesso ad una opportuna rappresentazione a rete; la rete presenta forti similitudini con quella utilizzata per la rete usata per il VSP; si deve generare una rete per ogni deposito di inizio/fine allacciamento. 13 Sia G = (N,E) una rete in cui: N = N I N F {s,t}: insieme degli eventi inizio (N I ) e fine task (N F ) e inizio (s) e fine (t) allacciamento. E = {(α,β): occorrenza α compatibile con β}= E I E F E S E P : insieme di archi orientati: per ogni nodo α(i) N I corrispondente ad un task i che inizia nel deposito di inizio dell allacciamento esiste un arco (s,α) E I di costo c sj, per ogni nodo in β(i) N F corrispondente ad un task i che termina nel deposito di inizio dell allacciamento esiste un arco (β,t) E F di costo c jt, per ogni potenziale sottoallacciamento ammissibile delimitato dai task p e q esiste una arco (α,β) E S con α(p) N I e β(q) N F di costo c pq, per ogni pausa ammissibile delimitata dai task q e p esiste una arco (β,α) E P con α(p) N I e β(q) N F di costo c qp. 14 Esempio tempo Commenti s deposito t deposito Archi in rossi in E I, verdi chiari E F, verdi e neri in E S, blu in E P. in particolare gli archi verdi sono task e quello nero è un sottoallacciamento di due task. Si noti che in questo caso i due task non potrebbero essere eseguiti dallo stesso operatore se fossero svolti separatamente, mentre se eseguiti in sequenza, lo stesso operatore può, e.g., iniziare il secondo task in tempo mascherato. 15 dato che i nodi della rete sono associati a specifici eventi temporali, la rete è certamente aciclica; ogni percorso da s a t è finito e genera un allacciamento i cui task iniziale e finale rispettivamente iniziano e finiscono nello stesso deposito; ogni arco in E S un percorso da s a t corrisponde ad un sottoallacciamento, mentre ogni arco in E P corrisponde ad una pausa; si generano quindi in modo enumerativo tutti i percorsi da s a t che rispettino le regole di formazione degli allacciamenti, e.g., durata massima, costo massimo, quantità minima di pause,... 16

Crew Rostering Problem Crew Rostering Problem CRP(Q,R) Istanza: un insieme Q di allacciamento, ognuno dei quali caratterizzato da attributi, e.g., start time st j, end time et j, una start location sl j, una end location el j, un tempo di lavoro (effettivo) e un tempo di nastro (tempo di lavoro più tempi di riposo = et j -st j ). Un insieme R di regole che determinano la compatibilità di sottoinsiemi di allacciamenti ad appartenere allo stesso turno. Soluzione: un crew rostering, i.e., una collezione di turni W={S 1,...,S N } tale che r S r = W. Obiettivo: minimizzare le pause non fissate contrattualmente, oppure minimizzare il numero dei turni e/o massimizzare il bilanciamento dei turni. Regole regole di sequenziamento: regole che determinano la compatibilità tra due allacciamenti consecutivi in uno stesso turno,e.g., due allacciamenti che prevedano lavoro notturno non possono essere svolti consecutivamente in un turno, devono trascorrere almeno 12 ore tra la fine di un allacciamento e l inizio dell allacciamento successivo; regole operative: regole che determinano la compatibilità dell insieme degli allacciamenti in uno stesso turno,e.g., non possono esservi più di due allacciamenti notturni in un turno, non devono esservi più di 36 ore lavorative in una settimana. 17 18 Generazione degli turni Per generare i turni si ricorre spesso ad una opportuna rappresentazione a rete; anche questa rete presenta forti similitudini con quella utilizzata per la rete usata per il VSP. Commento: la rappresentazione a rete nel caso degli allacciamenti viene utilizzata per generare tutti gli allacciamenti (in questo caso si cercano tutti i percorsi tra una data specifica coppia di nodi); nel caso della generazione dei turni serve a generare solo alcuni dei turni ammissibili (in questo caso di generano solo dei alcuni circuiti necessari a coprire la rete) 19 Generazione dei turni Sia G = (N,E) una rete in cui: N insieme degli allacciamenti che devono essere svolti in una giornata. E = E S E A : E S insieme dei possibili coppie di allacciamenti compatibili secondo le regole di sequenziamento (α,β), gli archi corrispondenti sono quindi orientati. Tra due allacciamenti vi possono essere più archi se la compatibilità tra gli allacciamenti può avvenire con modalità differenti (e.g., senza riposo a casa, con riposo di una giornata, con riposo di due giornate). A ognuno di questi archi è associato un costo proporzionale alla durata del riposo che deve essere effettuato; E A insieme di autoanelli. Ad ogni nodo è associato un insieme di autoanelli (loop) ognuno dei quali corrisponde ad un dato numero di blocchi di riposi aggiuntivi, a partire da zero fino ad un massimo fissato. Ad ognuno di questi autoanelli corrisponde un costo proporzionale al numero di blocchi di riposo associati. 20

Generazione dei turni Un turno corrisponde ad un circuito/percorso con autoanelli ammissibile rispetto alle regole operative sulla rete G; un circuito con autoanelli è un circuito, i.e., un percorso che inizia e finisce sullo stesso nodo, che per ogni nodo visita uno e uno solo degli autoanelli associati. Un percorso è definito similmente. il lavoratore a cui è assegnato il turno corrispondente ad un dato circuito/percorso con autoanelli, dovrà svolgere nel periodo fissato gli allacciamenti coinvolti rispettando i riposi a casa associati agli archi che uniscono gli allacciamenti e gli auto anelli. Se è assegnato ad un circuito il lavoratore ripete indefinitamente il suo turno, viceversa se è assegnato ad un percorso, terminato un turno può essere assegnato ad un altro con diversi assegnamenti. In seguito si considerano solo circuiti, ma i ragionamenti si applicano anche ai percorsi. se si suppone che le regole impediscano ad una persona di svolgere più di un allacciamento al giorno (ipotesi ragionevole dato che altrimenti i due allacciamenti svolgibili durante la stessa giornata potrebbero essere fusi in un unico allacciamento), allora per coprire un turno sono necessari tanti lavoratori quanti sono gli allacciamenti coinvolti nel circuito con autoanelli. Ogni lavoratore inizierà il turno a partire da un allacciamento diverso. 21 Generazione dei turni Per avere l insieme dei turni desiderati bisogna coprire la rete con un insieme di circuiti con autoanelli; imporre le regole operative può essere relativamente complesso, in quanto teoricamente si deve imporre un vincolo per ogni circuito con autoanelli che non le rispetta. Il numero di questi circuiti potrebbe essere estremamente elevato. Conviene quindi imporre tali condizioni in modo dinamico, ovvero verificare a posteriori se circuiti generati le soddisfano tutte ed eventualmente imporre a posteriori le regole violate prima di costruire nuovi circuiti. 22 Crew Rostering Problem Formulazione matematica Descrizione del problema. obiettivo: minimizzare costi operativi legati alle pause vincoli: ogni allacciamento deve essere eseguito una e una sola volta in ogni allacciamento bisogna eseguire un loop non si devono eseguire i circuiti che non rispettano le regole operative leve decisionali: turni da realizzare dati tecnologici: insieme Q degli allacciamenti costo c rs di ogni sequenziazione di allacciamenti costo d jt di ogni loop di durata t insieme R delle sequenziazioni non rispettanti le regole. Formulazione del problema. Le variabili: variabili binarie 1 se allacciamento s segue r in un turno xirs = 0 altrimenti 1 se loop t viene eseguito dopo allacciamento r yrt = 0 altrimenti La funzione obiettivo: il costo Σ (r,s) Es c rs x rs + Σ (r,s) EA d rt y rt 23 24

Formulazione matematica I vincoli: ogni allacciamento deve essere eseguito una e una sola volta Σ r:(r,s) Es x rs =1 e Σ s:(s,r) Es x sr =1 r Il problema è NP-hard Commenti per ogni allacciamento deve essere eseguito un loop Σ t:(r,s) EA y rt =1 r non si devono eseguire i circuiti C che non rispettano le regole operative Σ (r,s) C (1- x rs ) + Σ (r,t) C (1- y rt ) 1 il problema viene risolto con un euristica lagrangiana. Il rilassamento lagrangiano serve a determinare i costi ridotti associati agli archi. I costi ridotti vengono utilizzati per determinare iterativamente quale arco inserire utilizzando ena procedura che costruisce un circuito alla volta aggiungendo un arco ad ogni passo ed aggiornando le stime del rilassamento lagrangiano. ogni arco o loop o appartiene ad un circuito o non vi appartiene x rs, y rt {0,1}, r,s,t 25 26 Bibliografia A. Caprara, M. Fischetti, P. Toth, D. Vigo, P.L. Guida, "Algorithms for Railway Crew Management", Mathematical Programming 79 (1997) 125-141 27