Turnazione del personale



Похожие документы
Modelli di turnazione del personale

Parte V: Rilassamento Lagrangiano

Problemi di Ottimizzazione

Sistemi di equazioni lineari

Management Sanitario. Modulo di Ricerca Operativa

Introduzione ai grafi

Rilassamento Lagrangiano

Sistemi di equazioni lineari

Problemi di Flusso: Il modello del Trasporto

Lezioni di Ricerca Operativa 2 Dott. F. Carrabs

Rilassamento Lagrangiano

Problema del trasporto

Possibile applicazione

Ricerca Operativa. G. Liuzzi. Lunedí 20 Aprile 2015

Note per il corso di Geometria Corso di laurea in Ing. Edile/Architettura. 4 Sistemi lineari. Metodo di eliminazione di Gauss Jordan

LEZIONE 2. ( ) a 1 x 1 + a 2 x a n x n = b, ove a j, b R sono fissati.

Esercitazione n o 3 per il corso di Ricerca Operativa

ASSEGNAMENTO DELLE OPERAZIONI DI TAGLIO NELLA PRODUZIONE DI CAPI DI ABBIGLIAMENTO

Soluzioni degli esercizi di formulazione di PL{0, 1}

Un esempio di applicazione della PLI: il Sudoku

Metodi e Modelli per l Ottimizzazione Combinatoria Cover inequalities

Macchine parallele M 1 M 2 M 3 J 1 J 2 LAVORI J 3 J 4

2. ALGORITMO DEL SIMPLESSO

R.D.L. 19 OTTOBRE 1923 N. 2328

Risoluzione di problemi ingegneristici con Excel

I Appello Ricerca Operativa 2 bis Compito A

Esercizi sulla Programmazione Lineare. min. cx Ax b x 0

Esercitazione n o 3 per il corso di Ricerca Operativa

Introduzione ai grafi. Introduzione ai grafi p. 1/2

Introduzione al Metodo del Simplesso. 1 Soluzioni di base e problemi in forma standard

Sull algoritmo di ascesa duale per il problema della localizzazione di impianti

Argomento 13 Sistemi lineari

Catene di Markov. 8 ottobre 2009

CAPITOLO V. DATABASE: Il modello relazionale

Note sull algoritmo di Gauss

4 GLI ARRAY E LE STRINGHE

ALGEBRA LINEARE PARTE III

Pagine di Algebra lineare. di premessa al testo Pagine di Geometria di Sara Dragotti. Parte terza: SISTEMI LINEARI

LEZIONE 4. { x + y + z = 1 x y + 2z = 3

UNIVERSITÀ DEGLI STUDI DI PAVIA FACOLTÀ DI INGEGNERIA. Matlab: esempi ed esercizi

Programmare con MATLAB c Parte 5 Cicli: for e while

Sistemi lineari. a 11 x 1 + a 12 x a 1n x n = b 1 a 21 x 1 + a 22 x a 2n x n = b 2 : : : a m1 x 1 + a m2 x 2 +..

Problemi di Localizzazione Impianti

PowerDIP Software gestione presenze del personale aziendale. - Guida all inserimento e gestione dei turni di lavoro -

Un esempio di applicazione della programmazione lineare intera: il Sudoku

Corso di Matematica per la Chimica

1) Hamming bound, coset, codici equivalenti

LEZIONE 3. a + b + 2c + e = 1 b + d + g = 0 3b + f + 3g = 2. a b c d e f g

Introduzione alla programmazione lineare

Problema del Job Shop

Metodi per la risoluzione di sistemi lineari

Транскрипт:

Modelli di turnazione del personale Turnazione del personale In generale, ad un turno di un mezzo non corrisponde un turno lavorativo del personale, in quanto la normative che stabiliscono rispettivamente l ammissibilità dei rispettivi turni è differente. Quindi, a partire da un dato insieme di corse da coprire ogni giorno di un determinato periodo di tempo ed un insieme di equipaggi (crews) disponibili, si vuole assegnare, per ogni giorno, ciascuna corsa ad un equipaggio in modo da garantire la copertura di tutte le corse nel periodo dato e minimizzando una assegnata funzione di costo. 1

Turnazione del personale (cont) Un turno di un mezzo (block) è considerato come un servizio di trasporto da espletare, e viene descritto tramite una sequenza di attività (task). Un task è una porzione di lavoro tra due punti di cambio (relief point) in cui può avvenire la sostituzione dell equipaggio del veicolo. A ciascun task è associato un luogo e un tempo di inizio e un luogo e tempo di fine. Turnazione del personale (cont) Una sequenza di task consecutivi espletati sullo stesso veicolo è detta piece of work (o anche sottoturno). Una giornata di lavoro (duty) è quindi composta da una sequenza ammissibile di piece of work. Un turno (bianco) di un lavoratore consiste in una duty se questa inizia e termina presso la stessa base, o una sequenza di duty in modo che il turno comunque inizi e finisca presso la stessa sede. 2

Turnazione del personale (cont) Il crew scheduling produce un insieme di turni (bianchi) di lavoro in modo da poter espletare l insieme dei task giornalieri, minimizzando una assegnata funzione obiettivo (ad esempio i costi). Il crew rostering definisce un insieme di turni lavorativi (working rosters) che determinano la sequenza di turni giornalieri che ciascun equipaggio deve effettuare in un dato periodo di tempo (settimana o mese), in modo tale da coprire giorno dopo giorno tutti i turni bianchi individuati nella fase precedente. definizioni Sia data una lista di task, ciascuno caratterizzato da un istante di inizio e un istante di fine e un insieme di serventi (impiegati) equivalenti tra loro, ciascuno in grado di espletare qualunque servizio della lista. Sia data, inoltre, una relazione binaria di incompatibilità tra task: in particolare, due task sono detti incompatibili se non possono essere espletati dallo stesso servente (sono incompatibili, ad esempio, due task i cui tempi di esecuzione si sovrappongono, in quanto i serventi possono espletare un solo servizio alla volta). 3

definizione del problema Il problema dei turni del personale consiste nell assegnazione ottima dei task ai serventi, compilando per ciascuno di questi un programma dei task da compiere (turno) in modo da garantire che: (i) ciascun task venga svolto da un solo servente; (ii) ciascun turno sia composto di task non incompatibili e rispetti opportune regole di ammissibilità. Per fissare le idee, si descriverà ora una istanza del problema dei turni del personale che si presenta nella compilazione dei turni degli autisti in una azienda di trasporto pubblico urbano. Nel caso in esame, il problema consiste nel formare turni giornalieri. Ogni giorno, debbono essere effettuate un certo numero di corse per ciascuna linea. Per ogni corsa è stabilita una tabella oraria che specifica l ora di partenza dal primo capolinea, l ora di arrivo al secondo capolinea, l ora di passaggio in ciascuna delle fermate intermedie. Sono individuate le fermate (tra cui i capolinea) in cui è consentito effettuare un cambio di autista ( fermate utili ). La tratta di corsa compresa tra due fermate utili deve essere percorsa ininterrottamente dallo stesso autista. Il compito di guidare un autobus lungo una di tali tratte costituisce quindi il servizio o task elementare r i (i = 1,..., m). 4

Per ogni servizio elementare r i è nota l ora di inizio s i, l ora di fine e i e le relative fermate utili di inizio e fine. Una successione di uno o più servizi consecutivi appartenenti alla stessa corsa costituisce un piece of work, completamente specificato dal primo e ultimo servizio della sequenza. Si indichi con L ij il piece of work avente r i e r j, rispettivamente, come primo e ultimo servizio. Un sotto-turno L ij si dice ammissibile se la sua durata e j - s i è compresa in un opportuno intervallo. Un turno, in generale, sarà composto da diversi sotto-turni separati da pause di riposo. Si indicherà con B ji una pausa di riposo compresa tra la fine del servizio r j e l inizio del servizio r i (servizi appartenenti alla stessa o a diverse corse). Se introduciamo un attività fittizia di inizio-turno P i e un attività fittizia di fine-turno Q j, allora un turno T t è una sequenza: { P i1, L i1,j1, B j1,i2,..., L ik,jk, Q jk } composta da un inizio-turno, una serie alternata di sotto-turni e pause di riposo, un ultimo sotto-turno e un fine-turno. Se l inizio-turno, il fineturno e tutti i sotto-turni e le pause di riposo della sequenza sono ammissibili, diremo che il turno è corretto. 5

Infine, un turno corretto T t si dice ammissibile se rispetta alcuni vincoli esterni, quali ad esempio: 1. il numero di sotto-turni in T t è minore di un massimo N M ; 2. la durata complessiva del turno T t (denominata, in inglese, spread ), e jk - s i1 è minore di un massimo S M ; 3. il carico complessivo di lavoro del turno T t, dato dalla somma di tutti i sottoturni, è minore di un massimo W M. Definiamo ora il costo c t di un turno T t. Esso è costituito da diverse componenti: 1. Ad ogni inizio-turno ammissibile P i è associato un costo c (1) i 2. ad ogni fine-turno ammissibile Q j è associato un costo c (2) j 3. ad ogni sotto-turno ammissibile L ij è associato un costo c (3) ij = HR (e j - s i ), avendo indicato con HR il costo orario del lavoro (paga oraria); 4. ad ogni pausa di riposo ammissibile B ji è associato un costo c (4) ji = BR(s i - e j ), avendo indicato con BR il costo orario del riposo (remunerazione oraria della pausa). 6

Il costo totale di un T t turno sarà quindi pari a: c t = c (1) i + c (2) j + somma dei costi c (3) ij di ogni sottoturno + somma dei costi c (4) ji delle pause di riposo Sia infine A la matrice d incidenza servizi-turni. In altri termini, le righe di A (siano esse m) sono associate ai servizi r i e le colonne (siano esse n) sono associate ai turni T t. L elemento a it della matrice A, posto in riga i e colonna t è uguale a 1 se il servizio r i è assicurato ( coperto )dalturnot turno T t, 0 altrimenti. Possiamo quindi formulare il problema dei turni del personale ( Crew Scheduling Problem, CSP) come problema matematico di set-covering: min c T x Ax 1 x {0, 1} La soluzione ottima x * di CSP è il vettore di incidenza di un sottoinsieme C dei turni ammissibili tale da garantire, a costo minimo, l espletamento (copertura) di tutti i servizi. 7

Si noti che è possibile che un servizio r i sia coperto contemporaneamente da più turni che sono stati selezionati. L interpretazione di una tale situazione è la seguente: dei diversi autisti a cui è assegnato il servizio r i unosololoesegue effettivamente, conducendo l autobus; gli altri viaggiano come passeggeri. Si osservi, infatti, che può essere necessario ricorrere a tale evenienza per consentire agli autisti di riprendere il servizio da fermate diverse da quelle in cui lo avessero precedentemente interrotto. Esempio Siano assegnate quattro corse andata-ritorno da espletare, prive di fermate intermedie: Corsa Orario di inizio Orario di arrivo Corsa 1 8.00 10.00 Corsa 2 11.00 13.00 Corsa 3 14.00 16.00 Corsa 4 17.00 19.00 Le corse sono tutte compatibili. 8

Esempio La paga oraria degli autisti è 10 unità di costo La pausa di un autista tra due corse viene retribuita con 5 unità di costo per ora. La giornata lavorativa di un autista inizia con la prima corsa a lui assegnata e termina con l ultima corsa. Un turno (bianco) dura un giorno. Ogni macchinista i non può effettuare più di tre corse ma non meno di due. Esempio Supponiamo che siano stati generati le seguenti 10 sequenze ammissibili con i relativi costi: 1. (1, 2) c 1 = 45 2. (1, 3) c 2 = 60 3. (1, 4) c 3 = 75 4. (2, 3) c 4 = 45 5. (2, 4) c 5 = 60 6. (3, 4) c 6 = 45 7. (1, 2, 3) c 7 = 70 8. (1, 2, 4) c 8 = 80 9. (1, 3, 4) c 9 = 80 10. (2, 3, 4) c 10 = 70 9

Esempio Definiamo le variabili decisionali x 1, x 2,, x 10 associate alle sequenze ammissibili. Il problema di turni degli equipaggi in esame può essere formulato nel seguente modo: min 45x 1 + 60x 2 + 75x 3 + 45x 4 + 60x 5 + 45x 6 + 70x 7 + 80x 8 + 80x 9 + 70x 10 x 1 + x 2 + x 3 + x 7 + x 8 + x 9 1 x 1 + x 4 + x 5 + x 7 + x 8 + x 10 1 x 2 + x 4 + x 6 + x 7 + x 9 + x 10 1 x 3 + x 5 + x 6 + x 8 + x 9 + x 10 1 x i {0, 1}, i = 1, 2,, 10 Esempio La soluzione (ottima) del problema rivela: E previsto l impiego di due autisti a cui vengono assegnati, rispettivamente, la prima sequenza ammissibile (corse 1 e 2) e la sesta sequenza ammissibile (corse 3 e 4). Il costo di tale soluzione è 90. 10

Crew Rostering Problem In generale, a turni di lavoro differenti corrisponde un differente grado di difficoltà o onere,si pone quindi il problema di assegnare i turni lavorativi (bianchi) al personale dipendente cercando di ruotare i turni di lavoro in modo da rispettare un qualche criterio i di equità. Il crew rostering produce un insieme di sequenze periodiche di turni lavorativi bianchi su un periodo di riferimento di una settimana o un mese, cercando di bilanciare gli oneri delle sequenze prodotte Crew Rostering Problem definizioni Nei problemi di crew rostering esiste una nuova definizione di turno : un turno è una sequenza di turni- bianchi (o duties), quelli calcolati nella fase di crewscheduling, posti in successione tra loro. Poiché ogni turno-bianco è espletato in uno o più giorni, un turno si articola su più giorni successivi: tipicamente una settimana o un mese. 11

Crew Rostering Problem esempio Supponiamo sia assegnato il seguente turno, formato dalla sequenza ciclica dei 16 turni-bianchi d 1, d 2, d 15, d 16, articolato su un periodo di di 30 giorni suddivisi in 5 gruppi da sei giorni nei quali il sesto giorno è sempre inattivo. Giorno 1 Giorno 2 Giorno 3 Giorno 4 Giorno 5 Giorno 6 d 1 d 2 d 3 d 4 d 5 d 6 d 7 d 8 d 9 d 10 d 11 d 12 d 13 d 14 d 15 d 16 Crew Rostering Problem La natura periodica del sistema fa sì che la lunghezza del turno corrisponda al numero di equipaggi necessari a coprire tutti i giorni le sequenze in esso contenute: ad esempio se la lunghezza del turno è di 30 giorni, sono necessari 30 equipaggi per ogni occorrenza della sequenza d 1, d 2, d 16. In ogni giorno del calendario infatti, i 30 equipaggi svolgono il carico di lavoro associato ad un diverso giorno del turno nel seguente modo: Il primo equipaggio effettua la sequenza d 1 il giorno di calendario x, la sequenza d 2 il giorno x + 1,, nessuna sequenza il giorno x + 29 e di nuovo la sequenza d 1 il giorno x + 30. Il giorno x + 1 la sequenza d 1 viene effettuata dal secondo equipaggio, che effettua la sequenza d 2 il giorno x + 2 e così via Analogamente, la sequenza d 1 viene effettuata dal terzo equipaggio il giorno x + 3 ed infine dall ultimo equipaggio il giorno x + 29. 12

Alcune Osservazioni (i) Nella realtà devo aggiungere molti più vincoli, di natura operativa; Posso avere più giorni di riposo; posso avere regole di sequenziamento all interno del turno. Formulazione matematica Algoritmi euristici Se il personale è invece dipendente dell azienda di trasporto, tipicamente i vincoli che regolano l attività del personale vengono gestiti contestualmente nella fase di turnazione dei veicoli. Alcune Osservazioni (ii) Quando non si opera su una rete densa con linee intersecanti e sono scarsi i punti in cui possono avvenire scambi tra gli equipaggi (ad esempio): il turno di un mezzo corrisponde ad un turno di un equipaggio Il problema da risolvere è spesso di vehicle-crew scheduling (combinato) in cui però la complicazione rispetto al vehicle scheduling è ad esempio l aggiunta del vincolo sulla durata del turno. Nel caso di trasporto con mezzi propri (padroncini) ovviamente non è presente una problematica legata alla turnazione del personale. 13