Management Sanitario per il corso di Laurea Magistrale SCIENZE RIABILITATIVE DELLE PROFESSIONI SANITARIE Modulo di Ricerca Operativa Prof. Laura Palagi http://www.dis.uniroma1.it/ palagi Dipartimento di Ingegneria informatica automatica e gestionale A. Ruberti Sapienza Università di Roma - Via Ariosto 25 https://groups.google.com/a/dis.uniroma1.it/d/forum/ricerca operativa medicina
Un modello di turnazione Un ospedale deve organizzare i turni del personale infermieristico in un unità di riabilitazione. Un infermiere lavora 5 giorni a settimana con due giorni consecutivi di pausa. Ogni giorno è necessaria la presenza di 7 infermieri. Lo scopo del dirigente è determinare i turni in modo da minimizzare il numero di infermieri necessario a coprire i turni in una settimana.
Analisi del problema Parametri =dati l orizzone temporale: giorno 1, giorno 2,..., giorno T (T = 7) il numero di infermieri necessari in ogni giorno r i = 7 per i =lunedì,...,domenica. i giorni liberi sono due e consecutivi Possiamo descrivere i possibili turni con una tabella lunedì martedì mecroledì giovedì venerdì sabato domenica Turno 1 X X Turno 2 X X Turno 3 X X Turno 4 X X Turno 5 X X Turno 6 X X Turno 7 X X
Possiamo descrivere i possibili turni con una tabella (matrice) con 7 righe e colonne in cui un l elemento a i,j vale 1 se il turno i copre il giorno j lunedì martedì mercoledì giovedì venerdì sabato domenica Turno 1 0 0 1 1 1 1 1 Turno 2 1 0 0 1 1 1 1 Turno 3 1 1 0 0 1 1 1 Turno 4 1 1 1 0 0 1 1 Turno 5 1 1 1 1 0 0 1 Turno 6 1 1 1 1 1 0 0 Turno 7 0 1 1 1 1 1 0
Formalizzazione matematica 1. Individuare le possibili scelte decisionali=variabili di decisione Si tratta di decidere quanti infermieri assegnare ad ogni turno. Dunque una possibile scelta decisionale può essere rappresentata in tabella in questo modo dipendenti Turno 1 5 Turno 2 1 Turno 3 0 Turno 4 2 Turno 5 1 Turno 6 1 Turno 7 1 Obiettivo: minimizzare il numero di dipendenti
Formalizzazione matematica 2. Individuare le restrizioni sui valori delle scelte decisionali Ad esempio la scelta proposta soddisfa i requisiti?
Formalizzazione matematica 2. Individuare le restrizioni sui valori delle scelte decisionali Ad esempio la scelta proposta soddisfa i requisiti? dipendenti lunedì martedì mercoledì giovedì venerdì sabato domenica 5 Turno 1 0 0 1 1 1 1 1 1 Turno 2 1 0 0 1 1 1 1 0 Turno 3 1 1 0 0 1 1 1 2 Turno 4 1 1 1 0 0 1 1 1 Turno 5 1 1 1 1 0 0 1 1 Turno 6 1 1 1 1 1 0 0 1 Turno 7 0 1 1 1 1 1 0
Formalizzazione matematica 2. Individuare le restrizioni sui valori delle scelte decisionali Ad esempio la scelta proposta soddisfa i requisiti? Controllo se l assegnazione consente di garantire la presenza minima richiesta dipendenti lunedì martedì mercoledì giovedì venerdì sabato domenica 5 Turno 1 0 0 1 1 1 1 1 1 Turno 2 1 0 0 1 1 1 1 0 Turno 3 1 1 0 0 1 1 1 2 Turno 4 1 1 1 0 0 1 1 1 Turno 5 1 1 1 1 0 0 1 1 Turno 6 1 1 1 1 1 0 0 1 Turno 7 0 1 1 1 1 1 0 Test su lunedì : 1+0+2+1+1=5: NO!!
Variabili di decisione Il numero di dipendenti assegnato ad un turno=variabili di decisione sono x i in cui il pedici i indica il turno con i = 1, 2,..., T (tante quanto i turni da definire) e possono assumere qualunque valore intero. dipendenti Turno 1 x 1 Turno 2 x 2 Turno 3 x 3 Turno 4 x 4 Turno 5 x 5 Turno 6 x 6 Turno 7 x 7
I vincoli Le restrizioni=vincoli di copertura richiedono che il numero di dipendenti in servizio ogni giorno soddisfi i requisiti minimi giornalieri r i giorno 1 giorno 2... giorno T Turno 1 a 11 a 12... a 1T Turno 2 a 21 a 22... a 2T. Turno T a T 1 a T 2... a TT. dipendenti Turno 1 x 1 Turno 2 x 2. Turno T. x T a 11 x 1 + a 21 x 2 + a 31 x 3 + a 41 x 4 + a 51 x 5 + a 61 x 6 + a 71 x 7 7. a T 1 x 1 + a T 2 x 2 + a T 3 x 3 + a T 4 x 4 + a T 5 x 5 + a T 6 x 6 + a T 7 x 7 7 requisito su lunedì requisito su domenica in generale T a ij x i q j i=1 per ogni j = 1, 2,... 7 = T
Obiettivo: minimizzazione numero dipendenti T dipendenti per turno i = i=1 T c i x i in cui c i = 1, cioè tutti i turni pesano (=costano) in ugual modo. La nostra scelta decisionale vale 5+1+0+2+1+1+1=11 dipendenti Turno 1 5 Turno 2 1 Turno 3 0 Turno 4 2 Turno 5 1 Turno 6 1 Turno 7 1 i=1
Un modello di programmazione matematica min T c i x i i=1 T a ij x i r j i=1 x i 0 i = 1,..., T x i intero i = 1,..., T per ogni j = 1, 2,... 7 = T NOTA BENE: il vincolo di interezza non è trascurabile in questo contesto (vedi solutore)
I dati su foglio elettronico TURNAZIONE PERSONALE richiesta minima 7 7 7 7 7 7 7 lunedì martedì mercoledì giovedì venerdì sabato domenica giorni liberi lun-mar 0 0 1 1 1 1 1 Turno 1 mar-mer Turno 2 1 0 0 1 1 1 1 mer-gio Turno 3 1 1 0 0 1 1 1 gio-ven Turno 4 1 1 1 0 0 1 1 ven-sab Turno 5 1 1 1 1 0 0 1 sab-dom Turno 6 1 1 1 1 1 0 0 dom-lun Turno 7 0 1 1 1 1 1 0
Il modello su foglio elettronico
Il solutore di Excel Il solutore trova una soluzione ottima La soluzione potrebbe non essere unica, MA 10 è il minimo numero di dipendenti che devo avere per assicurare la copertura minima del servizio sabato ho sovrabbondanza di personale (sono in servizio 8 persone)
Rimuoviamo il vincolo di interezza TURNAZIONE PERSONALE richiesta 7 7 7 7 7 7 7 lunedì martedì mercoledì giovedì venerdì sabato domenica giorni liberi n. dipendenti pausa lun-mar 0 0 1 1 1 1 1 1,4 lun-mar Turno 1 Turno 1 mar-mer Turno 2 1 0 0 1 1 1 1 Turno 2 1,4 mar-mer mer-gio Turno 3 1 1 0 0 1 1 1 Turno 3 1,4 mer-gio gio-ven Turno 4 1 1 1 0 0 1 1 Turno 4 1,4 gio-ven ven-sab Turno 5 1 1 1 1 0 0 1 Turno 5 1,4 ven-sab sab-dom Turno 6 1 1 1 1 1 0 0 Turno 6 1,4 sab-dom dom-lun Turno 7 0 1 1 1 1 1 0 Turno 7 1,4 dom-lun lunedì martedì mercoledì giovedì venerdì sabato domenica 7 7 7 7 7 7 7 richiesta >= >= >= >= >= >= >= 7 7 7 7 7 7 7 obiettivo N. dipendenti minimizzare 9,8 La soluzione trovata non è intera, dunque non è accettabile (si tratta di unità dipersonale assegnata ad un turno)
Vogliamo coprire ESATTAMENTE le necessità Cambiamo il vincolo T i=1 a ijx i r j = T i=1 a ijx i = r j Non si riesce a trovare una soluzione che soddisfi questo requisito in modo stretto
Cambiano le necessità Supponiamo che le richieste non siamo più tutte uguali r i = 7 ma che cambino (mercoleì -giovedì =8, sabato =6, domenica=5)