• Non ci sono risultati.

In questo capitolo inizialmente si descriveranno le fasi che hanno portato alla realizzazione dei due modelli matematici che descrivono tutti gli aspetti fondamentali da considerare nelle diverse organizzazioni a confronto:

N/A
N/A
Protected

Academic year: 2021

Condividi "In questo capitolo inizialmente si descriveranno le fasi che hanno portato alla realizzazione dei due modelli matematici che descrivono tutti gli aspetti fondamentali da considerare nelle diverse organizzazioni a confronto: "

Copied!
45
0
0

Testo completo

(1)

Capitolo 3 I modelli

In questo capitolo inizialmente si descriveranno le fasi che hanno portato alla realizzazione dei due modelli matematici che descrivono tutti gli aspetti fondamentali da considerare nelle diverse organizzazioni a confronto:

- la realtà attuale;

- l’organizzazione ipotizzata.

Successivamente si presenta un modello che, aggiunto ai modelli precedenti, gestisce il fabbisogno del personale su turni.

Infine sono presentati due modelli generali che gestiscono il personale su turni su un’intera giornata.

3.1 Le variabili dei problema

Per i due modelli si identificano sei vettori di variabili binarie (cioè che possono assumere solo valore 0 o 1) che mettono in relazione quattro dei cinque insiemi precedentemente definiti: l’insieme dei voli , degli stand , degli operatori e degli slot temporali .

Le variabili sono x ov , yc ovt , ys ovt , yb ovt , z sv , w o .

1) x ov (collega gli insiemi ↔ )

Questa variabile binaria indica se si ha assegnato un operatore (specializzato, comune o specializzato per il bus) o ∈ ad un volo v ∈ .

o v

Tramite x ov si indica se durante la sosta di un volo v sarà presente l’operatore o per lavorare sottobordo: questo implica che tramite tale variabile posso decidere se l’operaio o lavora per il turnaround del volo v, oppure no (e quindi si assegna o meno la coppia volo-operaio).

si assegna o a v

altrimenti 1

0

x ov

(2)

2) yc ovt (collega gli insiemi ↔ ↔ ) 3) ys ovt (collega gli insiemi ↔ ↔ ) 4) yb ovt (collega gli insiemi ↔ ↔ )

Queste tre variabili binarie indicano se in uno slot time t ∈ , l’operatore comune o ∈ , oppure l’operatore specializzato o ∈ , oppure l’operatore specializzato per la guida del bus o ∈ , è occupato a lavorare per un determinato volo v ∈ , oppure è libero.

t v o

Tramite questa variabile si decide se assegnare o meno la terna slot time- volo-operatore.

In particolare, fissato un volo v, la variabile yc ovt può assumere valori uguali a 1 per ogni t ∈ (6) in cui c’è la necessità di occupare un operatore comune (vedi rettangoli gialli dei grafici pagg. 19-20 cap. 2);

analogamente fissato un volo v, la variabile ys ovt può assumere valori uguali a 1 per ogni t ∈ (6) in cui c’è la necessità di occupare un operatore specializzato (vedi rettangoli verdi dei grafici pagg. 19-20 cap. 2);

analogamente fissato un volo v, la variabile yb ovt può assumere valori uguali a 1 per ogni t ∈ (6) in cui c’è la necessità di occupare un operatore specializzato per la guida del bus per l’imbarco (vedi rettangoli celesti dei grafici pagg. 19-20 cap. 2) o per lo sbarco (vedi rettangoli verde acqua dei grafici pagg. 19-20 cap. 2).

Affinché y ovt (7) valga 1, è necessario che la variabile x ov , che mette in relazione lo stesso operatore o con lo stesso volo v, valga 1: infatti solo se è stato assegnato l’operatore o al volo v, lo stesso operatore può lavorare in certi slot temporali t sotto il volo stesso:

(6)

Si ricorda che è un sottoinsieme di che comprende tutti gli slot temporali in cui un volo v richiede la presenza di almeno un operatore per il turnaround: comprende la fascia temporale [(inizio turnaround-1),(fine turnaround+2)].

(7)

y

ovt

indica genericamente una delle tre variabili riferite o all’operatore comune o allo specializzato o all’operatore del bus (yc , ys , yb ).

in t, l’operatore o è occupato su v

altrimenti 1

0

y (7) ovt

(3)

fissati o ∈ e v ∈ , yc ovt =1 solo se x ov =1;

fissati o ∈ e v ∈ , ys ovt =1 solo se x ov =1;

fissati o ∈ e v ∈ , yb ovt =1 solo se x ov =1

In più c’è da aggiungere che se un operatore o ∈ è assegnato ad un certo volo v, non è detto che y ovt valga 1 per tutti i t ∈ del volo v.

E’ ammissibile infatti che un operatore assegnato al volo v i ∈ , non sia occupato in tutti gli slot time del turnaround di v i , poiché può accadere che lo stesso operatore sia stato assegnato anche al volo v j ∈ , simultaneo a v i , e sia stato occupato in quegli slot time per tale volo.

In altre parole è ammissibile che x ovi =1 e y ovit =1 su certi t ∈ e y ovit =0 sugli altri.

Ma non è ammissibile il contrario:

se x ovi =0 (l’operatore o non è assegnato al volo v i ), y ovit =0 su tutti t ∈ .

5) z sv (collega gli insiemi ↔ )

Questa variabile binaria indica se si ha associato un volo v ∈ ad uno stand s ∈ .

v s

Tramite z sv si indica che il volo v sosta sullo stand s nell’arco temporale in cui è in sosta sul piazzale. Con questa variabile posso decidere se assegnare la coppia stand-volo.

6) w o

Questa variabile binaria indica se l’operatore o ∈ viene utilizzato.

alloco v su s

altrimenti 1

0 z sv

(4)

7) f o,tur collega gli insiemi ↔ ττττ

Questa variabile binaria indica se si ha assegnato un operatore o ∈ a lavorare in un turno tur ∈ ττττ.

Se la variabile f o,tur vale 1 significa che nel turno tur c’è la necessità di un ulteriore operatore per lavorare su un volo che sosta nel turno stesso.

Affinché x ov , che mette in relazione lo stesso operatore o con un volo, valga 1 è necessario che la variabile f o,tur valga 1: infatti se è stato assegnato l’operatore o ad almeno un volo v, lo stesso operatore può essere chiamato a lavorare nella fascia temporale del turno tur dove è compreso il turnaround del volo:

fissati o ∈ , tur ∈ ττττ e v ∈ (il cui turnaround rientra nella fascia temporale del turno tur), f o,tur =1 solo se x ov =1.

In altre parole se un operatore è assegnato ad un volo, deve essere assegnato ad un turno che copre il turnaround del volo stesso.

l’operaio o lavora nel turno tur

l’operaio o NON lavora nel turno tur 1

0

f o,tur

(5)

3.2 Il modello dell’organizzazione attuale Questo modello utilizza tre tra le varabili sopra definite:

w o : la variabile che valuta se un operatore o ∈ è stato assegnato almeno una volta ad un volo v ∈ ;

x ov : variabile di assegnamento di un operatore o ∈ ad un volo v ∈ ; z sv : la variabile di assegnamento di un volo v ∈ ad uno stand s ∈ .

3.2.1 La funzione obiettivo

La funzione obiettivo da minimizzare è il numero di operatori occorrenti per coprire le necessità di tutti i voli, e cioè la somma di tutti gli operatori che sono stati assegnati almeno una volta ad un volo.

La logica di assegnamento è quella di riutilizzare, se possibile, un operatore che già ha lavorato nella giornata e che al momento della necessità è libero, evitando di chiamare un’unità in più se non strettamente necessaria (cioè non si può sopperire al bisogno di un turnaround con gli operatori che già sono stati chiamati a lavorare nella giornata, perché nel momento di necessità sono già stati assegnati ad altri voli e nessuno di essi è libero). L’obiettivo da raggiungere è

min costi o ⋅ w o , dove

“costi o “ è un parametro che dà pesi differenti alla tipologia di operatori (maggiore agli operatori specializzati e minore ai comuni e agli specializzati del bus). Tale parametro è stato introdotto per evitare che la soluzione abbia solo operatori specializzati, dal momento che essi sono in grado di effettuare anche il lavoro degli operatori comuni.

Inoltre la funzione obiettivo deve tenere conto che un operatore deve essere assegnato al numero strettamente necessario di voli e quindi è necessario minimizzare anche gli assegnamenti di ogni operatore ai voli (cioè la somma su tutti gli operatori o e su tutti i voli v della variabile x ov ).

L’espressione della funzione obiettivo diventa quindi la seguente:

min costi o ⋅ w o + x ov

o∈

o∈ o∈ v∈

(6)

3.2.2 I vincoli

Vediamo quali sono i vincoli che caratterizzano l’organizzazione attuale in airside.

1) Per ogni volo v ∈ è necessario assegnare almeno un numero DS v di operatori specializzati o ∈ , almeno un numero DC v +DS v di operatori comuni o ∈ e, se v è assegnato ad uno stand che sbarca o imbarca col bus, almeno un operatore specializzato per la guida del bus o ∈ .

x ov ≥ DS v ∀ v ∈

x ov ≥ DC v + DS v ∀ v ∈

x ov ≥ z sv ∀ v ∈

∀ s ∈ : DB s = 1

La matrice DS v definisce per ogni volo v quanti operatori specializzati sono necessari, la matrice DC v definisce per ogni volo v quanti operatori comuni sono necessari e la matrice DB s definisce per ogni stand s se è necessario sbarcare o imbarcare i passeggeri con l’autobus.

Il primo vincolo impone che per ogni volo v siano effettuati tanti assegnamenti di operatori specializzati almeno quanti il volo v stesso necessita.

Il secondo vincolo impone che per ogni volo v siano effettuati tanti assegnamenti di operatori comuni (8) almeno quanti il volo v stesso necessita.

Il terzo vincolo impone che se un volo v è allocato su uno stand s che richiede di sbarcare o imbarcare i passeggeri con il bus, è necessario che sia effettuato un assegnamento al volo v di un operatore specializzato per la guida del bus. Infatti se il volo v è allocato su uno stand s tale che DB s = 1, la variabile z sv = 1 e quindi la sommatoria di tutti gli assegnamenti di operatori specializzati per la guida del bus per ciascun volo v deve essere

(8)

Si ricorda che le attività eseguite da un operatore comune, possono essere svolte anche da un operatore specializzato. Di conseguenza ogni volta che si trova scritto “operatore comune” si sarebbe dovuto scrivere “operatore almeno comune”, indicando che può essere anche un operatore specializzato (anche se non si fa per motivi di scorrevolezza della scrittura).

E’ per questa ragione che nel secondo vincolo la sommatoria è fatta sull’unione degli insiemi degli operatori comuni e specializzati.

o∈

o∈ ∪

o∈

(7)

almeno uguale a 1. Se il volo v è allocato su uno stand s che imbarca e sbarca i passeggeri a piedi, il vincolo è soddisfatto senza effettuare assegnamenti di operatori del bus.

2) Ogni volo v ∈ deve essere assegnato ad uno e un solo stand s ∈ che lo possa contenere.

accogl-stand vs ⋅ z sv = 1 ∀ v ∈

Si ricorda che la matrice accogl-stand vs indica per ogni volo v, quali stand s hanno una capacità sufficiente per accoglierlo.

Il vincolo indica che ogni volo v deve essere assegnato ad un unico (9) stand s (la variabile z sv =1), che ha la capacità sufficiente per contenerlo (il parametro accogl-stand vs =1).

Non è ammissibile che un volo v sia assegnato ad uno stand s che non può contenerlo (cioè z sv =1 e accogl-stand vs =0).

3) Se un operatore o ∈ non viene utilizzato, non può essere assegnato a nessun volo v ∈ .

x ov ≤ w o | | ∀ o ∈

Il vincolo mette in relazione le due variabili x ov e w o nel seguente modo:

se un operatore è stato assegnato almeno ad un volo (la variabile w o = 1), il numero totale di tutti gli assegnamenti che possono essere fatti può essere al massimo pari a tutti i voli schedulati nella giornata (cioè la cardinalità dell’insieme dei voli della giornata ).

Al contrario se la variabile w o vale 0 significa che non sono stati effettuati assegnamenti dell’operatore a nessun volo (x ov =0 per ogni v ∈ ).

(9)

Un volo non può occupare più di uno stand, né può cambiare stand in un momento del suo groundtime.

s∈

v∈

(8)

4) Due voli che sostano contemporaneamente per un intervallo di tempo, non possono essere assegnati ad uno stesso stand.

z s,vi + z s,vj ≤ 1 ∀ v i , v j ∈ : v i ≠ v j ∩ sim vi,vj =1

∀ s ∈

Supposto che v i e v j siano due voli diversi, il cui tempo di sosta è in parte sovrapposto (cioè tali che sim vi,vj = 1), fissato lo stand s, può accadere solo uno tra i seguenti casi:

- la variabile z s,vi =1 e z s,vj =0 (lo stand s viene assegnato al volo v i e non può essere assegnato anche al volo v j );

- la variabile z s,vi =0 e z s,vj =1 (lo stand s viene assegnato al volo v j e non può essere assegnato anche al volo v i ).

5) Un operatore (comune, specializzato oppure specializzato per la guida del bus) non può essere assegnato a due voli che sostano contemporaneamente sul piazzale per un intervallo di tempo.

x o,vi + x o,vj ≤ 1 ∀ v i , v j ∈ : v i ≠ v j ∩ sim vi,vj =1

∀ o ∈ ∪ ∪

Presi due diversi voli v i e v j il cui tempo di sosta è in parte sovrapposto (cioè tali che sim vi,vj = 1), se un operatore o è assegnato al volo v i (la variabile x o,vi

=1) non può essere assegnato al volo v j (la variabile x o,vj deve valere 0).

Viceversa se la variabile x o,vj = 1, la variabile x o,vj deve valere 0.

(9)

3.2.3 La descrizione formale del modello

Si riporta in seguito il modello scritto in maniera formale:

min costi o ⋅ w o + x ov

(1) x ov ≥ DS v ∀ v ∈ x ov ≥ DC v + DS v ∀ v ∈

x ov ≥ z sv ∀ v ∈

∀ s ∈ : DB s = 1

(2) accogl-stand vs ⋅ z sv = 1 ∀ v ∈

(3) x ov ≤ w o | | ∀ o ∈

(4) z s,vi + z s,vj ≤ 1 ∀ v i , v j ∈ : v i ≠ v j ∩ sim vi,vj =1

∀ s ∈

(5) x o,vi + x o,vj ≤ 1 ∀ v i , v j ∈ : v i ≠ v j ∩ sim vi,vj =1

∀ o ∈ ∪

x ov ∈ {0;1} ∀ v ∈ , ∀ o ∈ ∪

z sv ∈ {0;1} ∀ s ∈ , ∀ v ∈

w o ∈ {0;1} ∀ o ∈

o∈

s∈

o∈ v∈

o∈

o∈ ∪ o∈

v∈

(10)

3.2.4 La dimensione del modello

Per identificare la dimensione del modello si devono contare tutte le possibili combinazioni esistenti per ognuna delle variabili dichiarate, sulla base del numero di voli, degli stand e degli operatori.

D’altra parte però questo modello si basa su dati che non sono costanti, ma mutevoli di giorno in giorno perché ogni giorno il numero di voli schedulati è diverso. Quindi nonostante che il numero di stand disponibili ed il numero di operatori comuni, specializzati e adibiti alla guida del bus siano dati costanti, non lo sono il numero di voli.

Comunque per avere un’idea dell’ordine di grandezza di questo modello, si prende come riferimento un gruppo di 9 voli estratti da un venerdì di Aprile, considerato come una giornata esemplificativa.

I dati di cui si ha bisogno per calcolare la dimensione del modello sono:

il numero di operatori comuni = 6;

il numero di operatori specializzati = 9;

il numero di operatori adibiti alla guida del bus = 4;

il numero di stand = 5;

il numero di voli = 9.

A questo punto si può calcolare la dimensione di ognuna delle variabili prese in questione, e poi sommarle per avere la dimensione totale del modello:

w o : (6+9+4) operatori = 19;

x ov : 19 operatori · 9 voli = 171;

z sv : 5 stand · 9 voli = 45;

La dimensione totale del problema è data dalla somma delle possibili combinazioni di tutte le variabili considerate:

19 + 171 + 45 = 235.

Il problema ha 235 variabili e 986 vincoli.

(11)

3.3 Il modello dell’organizzazione ipotetica

Questo modello utilizza tutte le varabili che sono state definite:

w o : la variabile che valuta se un operatore o ∈ è stato assegnato almeno una volta ad un volo v ∈ ;

x ov : variabile di assegnamento di un operatore o ∈ ad un volo v ∈ ; z sv : la variabile di assegnamento di un volo v ∈ ad uno stand s ∈ ;

yc ovt : la variabile di occupazione di un operatore comune o ∈ su un volo v ∈ in uno slot time in cui può essere occupato un operatore comune t ∈ :DC vt ≥1 ys ovt : la variabile di occupazione di un operatore specializzato o ∈ su un volo v ∈ in uno slot time in cui può essere occupato un operatore specializzato t ∈ : DC vt +DS vt +CNT vt ≥1;

yb ovt : la variabile di occupazione di un operatore adibito alla guida del bus o ∈ su un volo v ∈ in uno slot time in cui può essere occupato un operatore del bus t ∈ : BI vt +BS vt ≥1.

3.3.1 La funzione obiettivo

Anche con l’organizzazione ipotizzata si deve minimizzare la somma di tutti gli operatori che sono stati assegnati ad almeno un volo.

La logica di assegnamento è sempre quella di riutilizzare, se possibile, un operatore che già ha lavorato nella giornata e che al momento della necessità è libero; si considera ancora una volta che un operatore deve essere assegnato al numero strettamente necessario di voli ed in più deve essere occupato solo negli slot time dei voli a cui è stato assegnato.

In questo modello diviene necessario minimizzare le seguenti variabili:

- gli assegnamenti di ogni operatore ai voli (cioè la somma su tutti gli operatori o e su tutti i voli v della variabile x ov );

- le occupazioni degli operatori negli slot time per i vari voli (cioè la somma su

tutti gli slot time in cui ogni operatore può essere occupato, su tutti i voli e su

tutti gli operatori della variabile yc ovt , ys ovt , yb ovt ).

(12)

L’espressione della funzione obiettivo diventa quindi la seguente:

min costi o ⋅ w o + x ov +

yc ovt + ys ovt + yb ovt

3.3.2 I vincoli

Vediamo quali sono i vincoli che condizionano questa seconda organizzazione:

1) Se un operatore comune o ∈ , specializzato o ∈ e adibito alla guida del bus o ∈ non viene assegnato ad un volo v ∈ allora non può lavorare in nessuno slot time t ∈ in cui c’è necessità di operatori comuni, specializzati o per il trasporto passeggeri.

yc ovt ≤ L x ov ∀ o ∈

∀ v ∈ ys ovt ≤ L x ov ∀ o ∈

∀ v ∈ yb ovt ≤ L x ov ∀ o ∈

∀ v ∈

Il vincolo mette in relazione la variabile di assegnamento di un operatore ad un volo (x ov ), con la variabile di occupazione di un operatore ad un volo in certi slot time (yc ovt , ys ovt , yb ovt ): evidenzia proprio il concetto che solo qualora un operatore sia assegnato ad un volo, esso può essere occupato a lavorare sotto tale volo in alcuni slot time.

Dato un operatore o ∈ oppure o ∈ oppure o ∈ ed un volo v ∈ , se l’operatore è stato assegnato al volo la variabile x ov =1; di conseguenza lo

t∈ : DC

vt

≥1 o∈

t∈ :

DC

vt

+DS

vt

+CNT

vt

≥1 t∈ :

DC

vt

≥1 t∈ :

BS

vt

+BI

vt

≥1

o∈ v∈ o∈ v∈ o∈ v∈

o∈ v∈

t∈ :

DC

vt

+DS

vt

+CNT

vt

≥1 t∈ :

BS

vt

+BI

vt

≥1

(13)

stesso operatore può essere occupato sul dato volo per al massimo un numero L (10) di slot time:

yc ovt =1 su L diversi t ∈ : DC vt ≥1

ys ovt =1 su L diversi t ∈ : DC vt + DS vt + CNT vt ≥1 yb ovt =1 su L diversi t ∈ : BS vt + BI vt ≥1 .

Al contrario quando un operatore non è assegnato ad alcun volo v è libero su tutti gli slot time per il volo v stesso e quindi può essere assegnato ad un altro volo (ed essere occupato a lavorare su altri slot time).

2) Ogni operatore comune o ∈ , specializzato o ∈ e adibito alla guida del bus o ∈ in ogni slot time t ∈ in cui c’è necessità di operatori specializzati o comuni o adibiti alla guida del bus, al massimo può essere occupato su un volo v ∈ .

yc ovt ≤ 1 ∀ t ∈

∀ o ∈ ys ovt ≤ 1 ∀ t ∈

∀ o ∈ yb ovt ≤ 1 ∀ t ∈

∀ o ∈

In ogni slot time t ogni operatore può o essere libero oppure essere occupato su un volo, ma non più di uno contemporaneamente (non è fisicamente possibile che in uno stesso intervallo di cinque minuti un operatore possa lavorare su più di un turnaround).

Se si osservasse globalmente tutti i voli presenti nel piazzale si noterebbe che in uno slot time uno stesso operatore può:

- non essere occupato in nessun volo (è libero);

- essere occupato sotto al massimo un solo volo v.

In altre parole in ogni slot time l’occupazione di ogni operatore comune yc ovt , specializzato ys ovt , o adibito alla guida del bus yb ovt su tutti i voli presenti non può mai essere maggiore di 1.

(10)

Il parametro L rappresenta la durata del turnaround più lungo: infatti ogni operatore può essere occupato su un dato volo per al massimo tutti i time slot del turnaround del volo.

v∈ : DC

vt

≥1

v∈ : BI

vt

+BS

vt

≥1 v∈ :

DC

vt

+DS

vt

+CNT

vt

(14)

3) Per ogni volo v ∈ , in ogni slot time t ∈ in cui si ha una richiesta DS vt di un operatore specializzato o ∈ , è necessario occupare almeno un numero DS vt di operatori specializzati.

ys ovt ≥ DS vt ∀ v ∈

∀ t ∈ : DS vt ≥1

Si ricorda che la matrice DS vt indica per ogni volo in ogni slot time della giornata se deve essere occupato o meno un operatore specializzato per il turnaround (gli slot time sono il primo, il secondo, e gli ultimi tre di ogni volo).

Il vincolo indica che per ogni volo, per ogni slot time tale che DS vt =1, è necessario occupare almeno un numero di operatori specializzati pari a DS vt .

In altre parole, se in uno slot time si osservasse globalmente tutti gli operatori specializzati presenti nel piazzale, si noterebbe che negli slot time in cui la matrice DS vt = 1, sotto il volo v è presente un numero minimo di operatori pari a DS vt , negli altri slot time gli operatori non sono occupati a lavorare per il turnaround del volo.

4) Per ogni volo v ∈ , in ogni slot time t ∈ in cui si ha una richiesta DC vt di un operatore comune o ∈ ∪ , è necessario occupare almeno un numero DC vt + DS vt di operatori comuni o specializzati.

yc ovt + ys ovt ≥ DC vt + DS vt ∀ v ∈

∀ t ∈ : DC vt ≥ 1 Si ricorda che la matrice DC vt indica per ogni volo in ogni slot time della giornata se deve essere occupato o meno un operatore comune per il turnaround (gli slot time sono il primo, il secondo, e il terz’ ultimo ogni volo).

Il vincolo indica che per ogni volo, per ogni slot time tale che DC vt ≥ 1, è necessario occupare almeno un numero di operatori comuni pari a DC vt (che è 1 o 2 a seconda del tipo di volo).

In altre parole, se in uno slot time si osservasse globalmente tutti gli operatori comuni presenti nel piazzale, si noterebbe che negli slot time in cui

o∈

o∈ ∪

(15)

la matrice DC vt ≠ 0, sotto il volo v è presente un numero minimo di operatori pari a DC vt , negli altri slot time gli operatori non sono occupati a lavorare per il turnaround del volo.

Si noti che l’indice o della sommatoria è preso nell’insieme ∪ , cioè nell’unione degli insiemi di operatori comuni e specializzati, perché nel turnaround le operazioni che può fare un operatore comune possono essere svolte anche da un operatore specializzato.

5) Per ogni volo v ∈ allocato ad uno stand s ∈ tale per cui è necessario sbarcare con l’autobus, in ogni slot time t ∈ in cui si ha una richiesta di un operatore o ∈ per la guida del bus, è necessario occupare almeno un operatore addetto alla guida dell’autobus.

yb ovt ≥ z sv ∀ v ∈

∀ t ∈ : BS vt = 1

∀ s ∈ : bussb s = 1

Nel vincolo si utilizzano due matrici presentate nel capitolo precedente:

la matrice BS vt indica per ogni volo in ogni slot time della giornata se deve essere occupato o meno un operatore specializzato alla guida dell’autobus per trasportare i passeggeri che sono sbarcati dallo stand all’area arrivi (il secondo e il terzo slot time di ogni volo);

la matrice bussb s indica quali stand hanno bisogno di trasportare con l’autobus i passeggeri sbarcati fino all’area arrivi.

Il vincolo indica che quando si assegna un volo v ad uno stand s (la variabile z sv =1), se l’assegnazione è stata fatta ad uno stand s tale che bussb s =1, allora negli slot time t tali che BS vt = 1, è necessario occupare almeno un operatore specializzato alla guida del bus.

o∈

(16)

6) Per ogni volo v ∈ allocato ad uno stand s ∈ tale per cui è necessario imbarcare con l’autobus, in ogni slot time t ∈ in cui si ha una richiesta di un operatore o ∈ per la guida del bus, è necessario occupare almeno un operatore addetto alla guida dell’autobus.

yb ovt ≥ z sv ∀ v ∈

∀ t ∈ : BI vt = 1

∀ s ∈ : busimb s = 1

Nel vincolo si utilizzano due matrici presentate nel capitolo precedente:

la matrice BI vt indica per ogni volo in ogni slot time della giornata se deve essere occupato o meno un operatore specializzato alla guida dell’autobus per trasportare i passeggeri che devono imbarcare dai gate allo stand (il quarto, il quinto e il sesto slot time a partire dall’ultimo di ogni volo);

la matrice busimb s indica quali stand hanno bisogno di trasportare con l’autobus dai gate fino allo stand i passeggeri che devono imbarcare.

Il vincolo indica che quando si assegna un volo v ad uno stand s (la variabile z sv =1), se l’assegnazione è stata fatta ad uno stand s tale che busimb s =1, allora negli slot time t tale che BI vt = 1, è necessario occupare almeno un operatore specializzato alla guida del bus.

7) Per ogni volo v ∈ tra tutti gli slot time dove può essere effettuato un controllo, su un numero di essi pari a tscnt v è necessario che sia occupato almeno un operatore specializzato o ∈ .

ys ovt ≥ tscnt v ∀ v ∈

La matrice CNT vt indica per ogni volo su quali slot time della giornata può essere fatto un controllo dall’operaio specializzato;

il vettore tscnt v indica per ogni volo il numero di slot time in cui almeno un operatore specializzato deve essere occupato per effettuare dei controlli.

Il vincolo indica che, per ogni volo, il numero minimo di operatori specializzati occupati nell’insieme degli slot time in cui si può effettuare un controllo (tali che CNT vt ≥1) deve essere almeno pari a tscnt v .

o∈

o∈

t∈

CNT[vt ] ≥1

(17)

8) Ogni volo v ∈ deve essere assegnato ad uno e un solo stand s ∈ , che lo possa contenere.

accogl-stand vs ⋅ z sv = 1 ∀ v ∈

La matrice accogl-stand vs indica, per ogni volo v, quali stand s hanno una capacità sufficiente per accoglierlo.

Il vincolo indica che ogni volo v deve essere assegnato ad un unico (10) stand s (la variabile z sv =1), e tale stand deve avere una capacità sufficiente per contenerlo (il parametro accogl-stand vs =1).

9) Un operatore comune o ∈ oppure specializzato o ∈ non può essere assegnato a due voli v i ≠ v j ∈ che sostano contemporaneamente sul piazzale per un intervallo di tempo, se i due voli sono stati allocati su due stand s i , s j ∈ per cui non è possibile una condivisione degli operatori.

x o,vi + x o,vj + z si,vi + z sj,vj ≤ 3 ∀ v i , v j ∈ : v i ≠ v j , sim vi,vj =1

∀ s i , s j ∈ : s i ≠ s j , cond si,sj =0

∀ o ∈ ∪

Il vincolo indica che uno stesso operatore non può lavorare su due voli contemporaneamente in sosta se non sono allocati su stand vicini.

Presi due diversi voli v i e v j , il cui tempo di sosta è in parte sovrapposto (cioè tali che sim vi,vj =1), e due diversi stand s i e s j , non condivisibili da uno stesso operatore perché non sufficientemente vicini (cioè cond si,sj =0), se la variabile z si,vi =1 (cioè v i è assegnato allo stand s i ) e se la variabile z sj,vj =1 (cioè il volo v j è assegnato allo stand s j ), allora ogni operatore o ∈ ∪ può essere assegnato o al volo v i (e quindi x ovi =1) o al volo v j (e quindi x ovj =1), ma non ad entrambi.

(10)

In altre parole un volo non può occupare più di uno stand, né può cambiare stand in un momento del suo groundtime.

s∈

(18)

Infatti assegnando il volo v i allo stand s i e il volo v j allo stand s j , la somma z si,vi + z sj,vj vale 2, ma il vincolo impone che x o,vi + x o,vj + z si,vi + z sj,vj valga al massimo 3.

Questo può significare uno solo tra i seguenti casi:

x o,vi = 1 e x o,vj =0;

x o,vi = 0 e x o,vj =1.

10) Se un operatore o ∈ non viene utilizzato, non può essere assegnato a nessun volo v ∈ .

x ov ≤ w o | | ∀ o ∈

Il vincolo mette in relazione le due variabili x ov e w o nel seguente modo:

ogni operatore, se è stato assegnato ad un volo (la variabile w o vale 1), il numero totale di tutti gli assegnamenti che gli possono essere fatti può essere al massimo pari a tutti i voli schedulati nella giornata (cioè la cardinalità dell’insieme dei voli della giornata ).

Al contrario se la variabile w o vale 0 significa che non possono essere effettuati assegnamenti dell’operatore a nessun volo.

11) Due voli v i ≠ v j ∈ che sostano contemporaneamente per un intervallo di tempo, non possono essere assegnati ad uno stesso stand s ∈ .

z s,vi + z s,vj ≤ 1 ∀ v i , v j ∈ : v i ≠ v j , sim vi,vj =1

∀ s ∈

Supposto che v i e v j sono due voli diversi il cui tempo di sosta è in parte sovrapposto (cioè tali che sim vi,vj =1), fissato lo stand s, può accadere solo uno tra i seguenti casi:

la variabile z s,vi =1 e z s,vj =0 (lo stand s viene assegnato al volo v i e non può essere assegnato anche al volo v j );

la variabile z s,vj =1 e z s,vi =0 (lo stand s viene assegnato al volo v j e non può essere assegnato anche al volo v i ).

v∈

(19)

3.3.3 La descrizione formale del modello

Si riporta in seguito il modello scritto in maniera formale:

min costi o ⋅ w o + x ov +

yc ovt + ys ovt + yb ovt

(1) yc ovt ≤ L x ov ∀ o ∈

∀ v ∈ ys ovt ≤ L x ov ∀ o ∈

∀ v ∈ yb ovt ≤ L x ov ∀ o ∈

∀ v ∈ (2) yc ovt ≤ 1 ∀ t ∈

∀ o ∈ ys ovt ≤ 1 ∀ t ∈

∀ o ∈ yb ovt ≤ 1 ∀ t ∈

∀ o ∈ (3) ys ovt ≥ DS vt ∀ v ∈

∀ t ∈ : DS vt =1

(4) yc ovt + ys ovt ≥ DC vt + DS vt ∀ v ∈

∀ t ∈ : DC vt ≥ 1

(5) yb ovt ≥ z sv ∀ v ∈

∀ t ∈ : BS vt = 1

∀ s ∈ : bussb s = 1 (6) yb ovt ≥ z sv ∀ v ∈

∀ t ∈ : BI

vt

= 1

∀ s ∈ : busimb

s

= 1 (7) ys ovt ≥ tscnt v ∀ v ∈

o∈

v∈ :

DC

vt

+DS

vt

+CNT

vt

≥1

o∈

o∈

o∈

t∈

CNT[vt ] ≥1

t∈ :

DC

vt

+DS o∈

vt

+CNT v∈

vt

≥1

t∈ :

DC

vt

+DS

vt

+CNT

vt

≥1 t∈ :

DC

vt

≥1 t∈ :

BS

vt

+BI

vt

≥1

o∈ v∈ o∈ v∈ o∈ v∈

t∈ : DC

vt

≥1

t∈ :

DC

vt

+DS

vt

+CNT

vt

≥1

t∈ : BS

vt

+BI

vt

≥1

v∈ : BI

vt

+BS

vt

≥1 v∈ :

DC

vt

+DS

vt

+CNT

vt

≥1

o∈ ∪

o∈

(20)

(8) accogl-stand vs ⋅ z sv = 1 ∀ v ∈

(9) x o,vi + x o,vj + z si,vi + z sj,vj ≤ 3 ∀ v i , v j ∈ : v i ≠ v j ∩ sim vi,vj =1 ∀ s i , s j ∈ : s i ≠ s j ∩ cond si,sj =0 ∀ o ∈ ∪

(10) x ov ≤ w o | | ∀ o ∈

(11) z s,vi + z s,vj ≤ 1 ∀ v i , v j ∈ : v i ≠ v j ∩ sim vi,vj =1

∀ s ∈

x ov ∈ {0;1} ∀ v ∈ , ∀ o ∈ ∪

yc ovt ∈ {0;1} ∀ v ∈ , ∀ o ∈ , ∀ t ∈ : DC

vt

≥1

ys ovt ∈ {0;1} ∀ v ∈ , ∀ o ∈ , ∀ t ∈ : DC

vt

+ DS

vt

+ CNT

vt

≥1 yb ovt ∈ {0;1} ∀ v ∈ , ∀ o ∈ , ∀ t ∈ : BI

vt

+ BS

vt

≥1

z sv ∈ {0;1} ∀ s ∈ , ∀ v ∈

w o ∈ {0;1} ∀ o ∈

3.3.4 La dimensione del modello

Anche in questo caso è necessario contare tutte le possibili combinazioni esistenti per ognuna delle variabili dichiarate, sulla base del numero di voli, degli stand, degli operatori e degli slot time in cui gli operatori devono essere impegnati.

Quindi, con la stessa logica usata nel modello precedente, si sa che il numero di stand disponibili ed il numero di operatori comuni, specializzati e adibiti alla guida del bus sono dati costanti,ma non lo sono il numero di voli e di conseguenza anche il numero di slot time in cui si ha la necessità di occupare i vari operatori nei diversi turnaround dei voli.

Si prende come riferimento lo stesso gruppo di 9 voli estratti dal solito venerdì di Aprile.

I dati di cui si ha bisogno sono:

il numero di operatori comuni = 4;

il numero di operatori specializzati = 5;

il numero di operatori adibiti alla guida del bus = 3;

il numero di stand = 5;

s∈

v∈

(21)

il numero di voli = 9.

A questo punto si può calcolare la dimensione di ognuna delle variabili prese in questione, e poi sommarle per avere la dimensione totale del modello:

w o : (5+4+3) operatori = 12;

x ov : 12 operatori · 9 voli = 108;

z sv : 5 stand · 9 voli = 45;

In questo modello si hanno in più le variabili legate agli slot time:

yc ovt : yc ot · 9 voli;

ys ovt : ys ot · 9 voli;

yb ovt : yb ot · 9 voli.

Il numero totale che racchiude la variabile y ot è trovato nel seguente modo:

per ogni operatore si deve calcolare tutti gli slot time in cui potrebbe essere occupato per qualsiasi volo. In altre parole:

per gli operatori comuni sono tutti gli elementi della matrice DC vt che valgono 1;

per gli operatori specializzati sono tutti gli elementi delle matrici Ds vt + DC vt + CNT vt

che valgono 1;

per gli operatori addetti alla guida del bus sono tutti gli elementi delle matrici BI vt +BS vt che valgono 1.

La dimensione totale del problema è data dalla somma delle possibili combinazioni

di tutte le variabili considerate, quindi il problema ha 711 variabili e 5741 vincoli.

(22)

3.4 Il modello per la gestione dei turni

L’approssimazione più grande che i modelli precedenti fanno, consiste nel considerare la disponibilità degli operatori a lavorare dalla mattina (precisamente 20 minuti dalla partenza del primo volo) alla sera (precisamente 15 minuti dopo l’arrivo dell’ultimo volo). La realtà aeroportuale invece richiede agli operatori di lavorare su turni di quattro, sei e otto ore. Affinché il modello sia realistico e rispecchi una situazione concreta, è necessario tenere in considerazione questo fattore di fondamentale importanza.

Il modello che segue metterà in rilievo l’importante caratteristica della gestione del personale su turni.

Tra tutte le informazioni che la soluzione del modello precedente dà, è importante conoscere per ogni volo, in ogni slot time, se ogni operatore deve essere occupato sul volo o meno: cioè con la soluzione del modello si viene a conoscenza per ogni volo per ogni slot time e per ogni operatore se la variabile y ovt = 0 o 1.

Conoscendo i valori di tutte le variabili y ovt si può dedurre per ogni slot time, sulla base della globalità di tutti i voli, il fabbisogno totale di operatori comuni, specializzati e abilitati per la guida del bus.

Dalle soluzioni del modello precedente è necessario quindi costruire le seguenti matrici:

OC t , rappresenta il fabbisogno totale per ogni slot time di operatori comuni;

OS t , rappresenta il fabbisogno totale per ogni slot time di operatori specializzati;

OB t , rappresenta il fabbisogno totale per ogni slot time di operatori abilitati alla guida del bus.

Le tre matrici hanno dimensione (1 x numero di slot time), quindi (1 x 222).

Il modello che si riporta in questo paragrafo utilizza una delle varabili sopra definite non ancora utilizzata:

f o,tur : la variabile che valuta se un operatore o ∈ è stato assegnato a lavorare in

un turno tur ∈ ττττ.

(23)

3.4.1 La funzione obiettivo

L’obiettivo è minimizzare il numero totale di operatori presenti su tutti i turni di una giornata lavorativa.

L’espressione matematica che indica il numero minimo di operatori presenti è:

min f o,tur

3.4.2 I vincoli

Vediamo quali sono i vincoli che condizionano la gestione dei turni:

1) La somma di tutti gli operatori comuni o ∈ assegnati a tutti i turni tur ∈ ττττ che coprono uno slot time t ∈ deve essere almeno pari al fabbisogno di operatori comuni nello slot time stesso.

f o,tur ≥ OC t ∀ t ∈

La matrice copertura tur,t indica per ogni slot time della giornata se il turno tur copre o no lo slot time considerato;

la matrice OC t indica il numero complessivo di operatori comuni che in ogni slot time della giornata deve essere presente per assicurare assistenza a tutti i voli.

Il vincolo indica che, per ogni slot time, il numero minimo di operatori comuni assegnati a tutti i turni che coprono lo slot time considerato (tali che copertura tur,t =1) deve essere almeno pari alla necessità di operatori comuni che lo slot time richiede (cioè OC t ).

2) La somma di tutti gli operatori specializzati o ∈ assegnati a tutti i turni tur

∈ ττττ che coprono uno slot time t ∈ deve essere almeno pari al fabbisogno di operatori specializzati nello slot time stesso.

f o,tur ≥ OS t ∀ t ∈

o∈ tur∈ ττττ :

copertura

tur,t

=1

o∈ tur∈ ττττ :

copertura

tur,t

=1

tur∈ ττττ o∈

(24)

La matrice OS t indica il numero complessivo di operatori specializzati che in ogni slot time della giornata deve essere presente per assicurare assistenza a tutti i voli.

Il vincolo indica che, per slot time, il numero minimo di operatori specializzati assegnati a tutti i turni che coprono lo slot time considerato (tali che copertura tur,t =1) deve essere almeno pari alla necessità di operatori specializzati che lo slot time richiede (cioè OS t ).

3) La somma di tutti gli operatori abilitati alla guida del bus o ∈ assegnati a tutti i turni tur ∈ ττττ che coprono uno slot time t ∈ deve essere almeno pari al fabbisogno di operatori abilitati alla guidadel bus nello slot time stesso.

f o,tur ≥ OB t ∀ t ∈

La matrice OB t indica il numero complessivo di operatori abilitati alla guida del bus che in ogni slot time della giornata deve essere presente per assicurare assistenza a tutti i voli.

Il vincolo indica che, per slot time, il numero minimo di operatori abilitati alla guida del bus assegnati a tutti i turni che coprono lo slot time considerato (tali che copertura tur,t =1) deve essere almeno pari alla necessità di operatori abilitati alla guida del bus che lo slot time richiede (cioè OB t ).

4) Ogni operatore o ∈ al massimo può essere assegnato ad un turno tur ∈ ττττ.

f o,tur ≤ 1 ∀ o ∈

Ogni operatore può o essere libero oppure essere assegnato a lavorare su un turno, ma non può lavorare nella stessa giornata su più di uno contemporaneamente.

In altre parole la somma di tutti i turni a cui un operatore può essere assegnato in una stessa giornata lavorativa è al massimo uguale a 1.

o∈ tur∈ ττττ :

copertura

tur,t

=1

tur∈ ττττ

(25)

3.4.3 La descrizione formale del modello

Si riporta in seguito il modello scritto in maniera formale:

min f o,tur

(1) f o,tur ≥ OC t ∀ t ∈

(2) f o,tur ≥ OS t ∀ t ∈

(3) f o,tur ≥ OB t ∀ t ∈

(4) f o,tur ≤ 1 ∀ o ∈

f o,tur ∈ {0;1} ∀ tur ∈ ττττ , ∀ o ∈ tur∈ ττττ o

o∈ tur∈ ττττ :

copertura

tur,t

=1

o∈ tur∈ ττττ : copertura

tur,t

=1

o∈ tur∈ ττττ :

copertura

tur,t

=1

tur∈ ττττ

(26)

3.4.4 La dimensione del modello

Per calcolare la dimensione di questo modello si fa riferimento all’intera giornata del solito venerdì di Aprile.

I dati di cui si ha bisogno per calcolare la dimensione del modello sono:

il numero di operatori comuni = 8;

il numero di operatori specializzati = 10;

il numero di operatori adibiti alla guida del bus = 5;

il numero di slot time = 222;

il numero di turni = 8.

Con il solito ragionamento dei modelli precedenti è possibile calcolare la dimensione dell’unica variabile utilizzata, che rappresenta anche la dimensione del problema:

f o,tur = (8+10+5) operatori · 8 turni = 184.

Il problema ha 184 variabili e 579 vincoli.

(27)

3.5 Il modello completo

In questo paragrafo si valuta il problema della gestione giornaliera del personale, considerando tutti i suoi aspetti: si inseriscono nello stesso modello sia i vincoli organizzativi e gestionali, considerati nel modello del paragrafo 3 dello stesso capitolo, sia i vincoli che gestiscono il personale su turni.

Si sviluppa il modello che si basa sull’organizzazione del personale a squadre di lavoratori per gruppi di voli.

Le variabili che sono utilizzate sono:

x ov : variabile di assegnamento di un operatore o ∈ ad un volo v ∈ ; z sv : la variabile di assegnamento di un volo v ∈ ad uno stand s ∈ ;

yc ovt : la variabile di occupazione di un operatore comune o ∈ su un volo v ∈ in uno slot time in cui può essere occupato un operatore comune t ∈ :DC vt ≥1 ys ovt : la variabile di occupazione di un operatore specializzato o ∈ su un volo v ∈ in uno slot time in cui può essere occupato un operatore specializzato t ∈ : DC vt +DS vt +CNT vt ≥1;

yb ovt : la variabile di occupazione di un operatore adibito alla guida del bus o ∈ su un volo v ∈ in uno slot time in cui può essere occupato un operatore del bus t ∈ : BI vt +BS vt ≥1.

f o,tur : la variabile che valuta se un operatore o ∈ è stato assegnato a lavorare in

un turno tur ∈ ττττ.

3.5.1 La funzione obiettivo

L’ obiettivo è minimizzare il numero di operatori assegnati ad ogni turno, cioè la somma su tutti i turni in cui è organizzata una giornata lavorativa degli operatori che lavorano in ogni singolo turno tur.

L’espressione della funzione obiettivo è la seguente:

min f o,tur

La logica di assegnamento è sempre quella di riutilizzare, se possibile, un operatore che già ha lavorato nello stesso turno e che al momento della necessità è libero; si considera ancora una volta che un operatore deve essere assegnato al

tur∈ ττττ o

(28)

numero strettamente necessario di voli ed in più deve essere occupato solo negli slot time dei voli a cui è stato assegnato.

Anche in questo modello diviene necessario minimizzare le seguenti variabili:

- gli assegnamenti di ogni operatore ai voli (cioè la somma su tutti gli operatori o e su tutti i voli v della variabile x ov );

- le occupazioni degli operatori negli slot time per i vari voli (cioè la somma su tutti gli slot time in cui ogni operatore può essere occupato, su tutti i voli e su tutti gli operatori della variabile yc ovt , ys ovt , yb ovt ).

L’espressione della funzione obiettivo diventa quindi la seguente:

min f o,tur + x ov + ys ovt +

yc ovt + yb ovt

3.5.2 I vincoli

Vediamo quali sono i vincoli del problema generale:

1) Se un operatore comune o ∈ , specializzato o ∈ e abilitato alla guida del bus o ∈ non viene assegnato ad un volo v ∈ allora non può lavorare in nessuno slot time t ∈ in cui c’è necessità di operatori comuni, specializzati, o per il trasporto passeggeri

yc ovt ≤ L x ov ∀ o ∈

∀ v ∈ ys ovt ≤ L x ov ∀ o ∈

∀ v ∈ yb ovt ≤ L x ov ∀ o ∈

∀ v ∈

Il vincolo è uguale al vincolo numero 1 del modello del paragrafo 3.3

tur∈ ττττ o∈ t∈ :

DC

vt

+DS

vt

+CNT

vt

≥1

t∈ : DC

vt

≥1

t∈ : BS

vt

+BI

vt

≥1 o∈

o∈

o∈

v∈

v∈ v∈

o∈ ∪ v∈

t∈ : DC

vt

≥1

t∈ :

DC

vt

+DS

vt

+CNT

vt

≥1 t∈ :

BS

vt

+BI

vt

≥1

(29)

2) Ogni operatore comune o ∈ , specializzato o ∈ e adibito alla guida del bus o ∈ in ogni slot time t ∈ in cui c’è necessità di operatori specializzati o comuni o adibiti alla guida del bus, al massimo può essere occupato su un volo v ∈ .

yc ovt ≤ 1 ∀ t ∈

∀ o ∈ ys ovt ≤ 1 ∀ t ∈

∀ o ∈ yb ovt ≤ 1 ∀ t ∈

∀ o ∈

Il vincolo è uguale al vincolo numero 2 del modello del paragrafo 3.3

3) Per ogni volo v ∈ , in ogni slot time t ∈ in cui si ha una richiesta DS vt di un operatore specializzato o ∈ , è necessario occupare almeno un numero DS vt di operatori specializzati.

ys ovt ≥ DS vt ∀ v ∈

∀ t ∈ : DS vt ≥1

Il vincolo è uguale al vincolo numero 3 del modello del paragrafo 3.3

4) Per ogni volo v ∈ , in ogni slot time t ∈ in cui si ha una richiesta DC vt di un operatore comune o ∈ ∪ , è necessario occupare almeno un numero DC vt + DS vt di operatori comuni o specializzati.

yc ovt + ys ovt ≥ DC vt + DS vt ∀ v ∈

∀ t ∈ : DC vt ≥ 1 Il vincolo è uguale al vincolo numero 4 del modello del paragrafo 3.3

v∈ : DC

vt

≥1

v∈ : BI

vt

+BS

vt

≥1 v∈ :

DC

vt

+DS

vt

+CNT

vt

o∈

o∈ ∪

(30)

5) Per ogni volo v ∈ allocato ad uno stand s ∈ tale per cui è necessario sbarcare con l’autobus, in ogni slot time t ∈ in cui si ha una richiesta di un operatore o ∈ per la guida del bus, è necessario occupare almeno un operatore addetto alla guida dell’autobus.

yb ovt ≥ z sv ∀ v ∈

∀ t ∈ : BS vt = 1

∀ s ∈ : bussb s = 1

Il vincolo è uguale al vincolo numero 5 del modello del paragrafo 3.3

6) Per ogni volo v ∈ allocato ad uno stand s ∈ tale per cui è necessario imbarcare con l’autobus, in ogni slot time t ∈ in cui si ha una richiesta di un operatore o ∈ per la guida del bus, è necessario occupare almeno un operatore addetto alla guida dell’autobus.

yb ovt ≥ z sv ∀ v ∈

∀ t ∈ : BI vt = 1

∀ s ∈ : busimb s = 1

Il vincolo è uguale al vincolo numero 6 del modello del paragrafo 3.3

7) Per ogni volo v ∈ tra tutti gli slot time dove può essere effettuato un controllo, su un numero di essi pari a tscnt v è necessario che sia occupato almeno un operatore specializzato o ∈ .

ys ovt ≥ tscnt v ∀ v ∈

Il vincolo è uguale al vincolo numero 7 del modello del paragrafo 3.3

o∈

o∈

o∈

t∈

CNT[vt ] ≥1

(31)

8) Ogni volo v ∈ deve essere assegnato ad uno e un solo stand s ∈ , che lo possa contenere.

accogl-stand vs ⋅ z sv = 1 ∀ v ∈

Il vincolo è uguale al vincolo numero 7 del modello del paragrafo 3.3

9) Un operatore comune o ∈ oppure specializzato o ∈ non può essere assegnato a due voli v i ≠ v j ∈ che sostano contemporaneamente sul piazzale per un intervallo di tempo, se i due voli sono stati allocati su due stand s i , s j ∈ per cui non è possibile una condivisione degli operatori.

x o,vi + x o,vj + z si,vi + z sj,vj ≤ 3 ∀ v i , v j ∈ : v i ≠ v j , sim vi,vj =1

∀ s i , s j ∈ : s i ≠ s j , cond si,sj =0

∀ o ∈ ∪

Il vincolo è uguale al vincolo numero 9 del modello del paragrafo 3.3

10) Due voli v i ≠ v j ∈ che sostano contemporaneamente per un intervallo di tempo, non possono essere assegnati ad uno stesso stand s ∈ .

z s,vi + z s,vj ≤ 1 ∀ v i , v j ∈ : v i ≠ v j , sim vi,vj =1

∀ s ∈

Il vincolo è uguale al vincolo numero 11 del modello del paragrafo 3.3

11) Se un operatore comune o ∈ oppure specializzato o ∈ oppure addetto al trasporto del bus o ∈ non è assegnato ad un turno tur ∈ ττττ non può essere occupato su nessun volo v ∈ in tutti gli slot time coperti dal turno e in cui c’è necessità rispettivamente di ciascun operatore.

yc ovt ≤ f o,tur ⋅ tsxtur (11) ∀ o ∈

∀ tur ∈ ττττ

v∈ t∈ DC

vt

≥1∩copertura

tur,t

=1

s∈

(32)

ys ovt ≤ f o,tur ⋅ tsxtur (11) ∀ o ∈

∀ tur ∈ ττττ

yb ovt ≤ f o,tur ⋅ tsxtur (11) ∀ o ∈

∀ tur ∈ ττττ

Il vincolo mette in relazione la variabile f o,tur rispettivamente con yc ovt , con ys ovt e con yb ovt nel seguente modo:

- ogni operatore comune, se è stato assegnato ad un turno (la variabile f o,tur vale 1), il numero totale di slot time che il turno copre (tale che copertura tur,t =1) in cui può essere occupato (tali che DC vt ≥1) su tutti i voli può essere al massimo pari a il numero di slot time che il turno copre (cioè il parametro stxtur);

- ogni operatore specializzato, se è stato assegnato ad un turno (la variabile f o,tur vale 1), il numero totale di slot time che il turno copre (tale che copertura tur,t =1) in cui può essere occupato (tali che DC vt + DS vt + CNT vt ≥1) su tutti i voli può essere al massimo pari a il numero di slot time che il turno copre (cioè il parametro stxtur);

- ogni operatore addetto al trasporto bus, se è stato assegnato ad un turno (la variabile f o,tur vale 1), il numero totale di slot time che il turno copre (tale che copertura tur,t =1) in cui può essere occupato (tali che BS vt + BI vt ≥1) su tutti i voli può essere al massimo pari a il numero di slot time che il turno copre (cioè il parametro stxtur).

Al contrario se la variabile f o,tur vale 0 significa che l’operatore (comune, specializzato, addetto al trasporto col bus) non può essere occupato in nessuno slot time che coopre il turno tur su alcun volo.

12) Ogni operatore o ∈ al massimo può essere assegnato ad un turno tur ∈ ττττ.

f o,tur ≤ 1 ∀ o ∈

Il vincolo è uguale al vincolo numero 4 del modello del paragrafo 3.4.

(11)

Il numero di slot time che massimo il turno più lungo (di 8 ore) può coprire è dato dal parametro stxtur (che generalmente è 12*8=40 slot time).

v∈ t∈ DC

vt

+DS

vt

+CNT

vt

≥1∩copertura

tur,t

=1

v∈ t∈ BS

vt

+BI

vt

≥1∩copertura

tur,t

=1

tur∈ ττττ

(33)

3.5.3 La descrizione formale del modello

Si riporta in seguito il modello scritto in maniera formale:

min f o,tur + x ov + ys ovt +

yc ovt + yb ovt

(1) ys ovt ≤ L x ov ∀ o ∈

∀ v ∈ yc ovt ≤ L x ov ∀ o ∈

∀ v ∈ yc ovt ≤ L x ov ∀ o ∈

∀ v ∈

(2) ys ovt ≤ 1 ∀ t ∈

∀ o ∈

yc ovt ≤ 1 ∀ t ∈

∀ o ∈

yb ovt ≤ 1 ∀ t ∈

∀ o ∈

(3) ys ovt ≥ DS vt ∀ v ∈

∀ t ∈ : DS

vt

=1

(4) yc ovt + ys ovt ≥ DC vt + DS vt ∀ v ∈

∀ t ∈ : DC

vt

≥ 1 (5) yb ovt ≥ z sv ∀ v ∈

∀ t ∈ : BS

vt

= 1

∀ s ∈ : bussb

s

= 1 (6) yb ovt ≥ z sv ∀ v ∈

∀ t ∈ : BI

vt

= 1

∀ s ∈ : busimb

s

= 1 (7) ys ovt ≥ tscnt v ∀ v ∈

(8) accogl-stand vs ⋅ z sv = 1 ∀ v ∈ tur∈ ττττ o∈

v∈ :

DC

vt

+DS

vt

+CNT

vt

≥1

o∈

o∈ ∪ o∈

o∈

o∈

t∈

CNT[vt ] ≥1 s∈

t∈ :

DC

vt

+DS

vt

+CNT

vt

≥1

t∈ : DC

vt

≥1

v∈ : DC

vt

≥1

v∈ : BI

vt

+BS

vt

≥1

t∈ : BS

vt

+BI

vt

≥1

o∈ v∈

t∈ :

DC

vt

+DS o∈

vt

+CNT

vt

v∈ ≥1

t∈ : DC

vt

≥1

o∈ v∈

t∈ :

BS

vt

+BI

vt

≥1

(34)

(9) x o,vi + x o,vj + z si,vi + z sj,vj ≤ 3 ∀ v

i

, v

j

∈ : v

i

≠ v

j

∩ sim

vi,vj

=1

∀ s

i

, s

j

∈ : s

i

≠ s

j

∩ cond

si,sj

=0

∀ o ∈ ∪

(10) z s,vi + z s,vj ≤ 1 ∀ v

i

, v

j

∈ : v

i

≠ v

j

∩ sim

vi,vj

=1

∀ s ∈

(11) yc ovt ≤ f o,tur ⋅ tsxtur ∀ o ∈

∀ tur ∈ ττττ ys ovt ≤ f o,tur ⋅ tsxtur ∀ o ∈

∀ tur ∈ ττττ yb ovt ≤ f o,tur ⋅ tsxtur ∀ o ∈

∀ tur ∈ ττττ

(12) f o,tur ≤ 1 ∀ o ∈

x ov ∈ {0;1} ∀ v ∈ , ∀ o ∈ ∪

yc ovt ∈ {0;1} ∀ v ∈ , ∀ o ∈ , ∀ t ∈ : DC

vt

≥1

ys ovt ∈ {0;1} ∀ v ∈ , ∀ o ∈ , ∀ t ∈ : DC

vt

+DS

vt

+CNT

vt

≥1 yb ovt ∈ {0;1} ∀ v ∈ , ∀ o ∈ , ∀ t ∈ : BI

vt

+BS

vt

≥1

z sv ∈ {0;1} ∀ s ∈ , ∀ v ∈

f o,tur ∈ {0;1} ∀ o ∈ , ∀ tur ∈ ττττ v∈ t∈

DC

vt

≥1∩copertura

tur,t

=1

v∈ t∈

DC

vt

+DS

vt

+CNT

vt

≥1∩copertura

tur,t

=1

v∈ t∈

BS

vt

+BI

vt

≥1∩copertura

tur,t

=1

tur∈ ττττ

(35)

3.5.4 La dimensione del modello

Per questo modello si considera come esempio un gruppo di 9 voli di martedì 16 Gennaio, considerato come una giornata invernale esemplificativa.

I dati che si devono avere per calcolare la dimensione del modello sono:

Il numero di operatori comuni = 20;

il numero di operatori specializzati = 20;

il numero di operatori adibiti alla guida del bus = 4;

il numero di stand = 6;

il numero di turni = 8.

Inoltre, come visto per i modelli precedenti, si deve calcolare il numero di slot time in cui, per tutti i voli, sono richiesti degli operatori comuni, degli operatori specializzati e degli operatori addetti alla guida del bus.

A questo punto si può calcolare la dimensione di ognuna delle variabili prese in questione, e poi sommarle per avere la dimensione totale del modello:

x ov : totale operatori · 9 voli = 396;

yc ovt : yc ot · 9 voli = 138 · 46 = 6348;

ys ovt : ys ot · 9 voli = 275 · 46 = 12650;

yb ovt : yb ot · 9 voli = 235 · 46 = 10810;

z sv : 6 stand · 9 voli;

f o,tur : totale operatori · 8 turni.

La dimensione totale del problema è data dalla somma delle possibili

combinazioni, cioè 2506, e il numero di vincoli del problema è 18721.

(36)

3.5.5 Il modello completo nell’organizzazione attuale

Lo stesso modello può essere usato per trovare la soluzione ottima nell’organizzazione del personale su squadre (come si è visto fino ad ora), ma anche per trovare la soluzione ottima nell’organizzazione del personale attualmente in uso.

Infatti cambiando semplicemente i dati della matrice cond si,sj (matrice che indica se due stand contigui s i e s j , su cui sostano voli simultanei, possono condividere degli operatori) si arriva comunque alle due soluzioni da confrontare.

Se il modello ha nella matrice cond si,sj elementi =1 per relazionare quegli stand in cui è possibile condividere operatori, la soluzione ottima che si trova è quella che descrive l’organizzazione del personale su squadre di lavoratori per gruppi di stand.

Se invece nello stesso modello è inserita la matrice cond si,sj i cui elementi sono tutti uguali a 0, significa che ogni operatore non può essere occupato su due stand con voli in sosta in una stessa fascia temporale, e quindi se un operatore è assegnato ad un volo, può lavorare esclusivamente sul turnaround di tale volo. La soluzione ottima che si trova è quella che descrive l’organizzazione del personale attualmente vigente.

In conclusione con lo stesso modello, cambiando i dati della matrice cond si,sj si possono trovare le soluzioni ottime delle due organizzazioni a confronto.

E’importante fare un’ultima osservazione per poter effettuare delle valutazioni sui tempi computazionali di risoluzione del modello stesso (riportati nelle tabelle riassuntive del paragrafo 2 del capitolo 5).

Il vincolo 9 raggruppa un numero molto grande di vincoli, infatti ne esiste uno per ogni operatore comune e specializzato,

per ogni coppia di voli diversi e simultanei tra loro, per ogni coppia di stand diversi e non condivisibili.

Ciò significa che aumentando il numero di questi dati, aumentano i vincoli del modello, e di conseguenza aumentano sia la complessità del problema, sia il tempo computazionale di risoluzione del modello stesso.

Si noti che in una situazione di non condivisione degli stand, la matrice cond si,sj ha

elementi tutti uguali a 0 e che di conseguenza il modello che rappresenta

l’organizzazione attualmente vigente ha un numero maggiore di vincoli.

(37)

3.6 Rivisitazione del modello completo

Nel seguente paragrafo si descrive un altro modello che rappresenta lo stesso problema descritto nel paragrafo precedente (cioè considera tutti i vincoli organizzativi e gestionali, organizzando inoltre il personale su turni).

Il motivo che ha spinto a rivedere il modello precedente è stato la sua dimensione eccessiva. Tramite questo nuovo modello si cerca di ridurre la dimensione del modello mantenendo gli stessi aspetti (ovvero si descrive la stessa identica realtà).

La dimensione di un modello si diminuisce riducendo il numero delle variabili del problema. Nel nostro caso ci siamo chiesti quale variabile poteva essere ridondante.

Le variabili utilizzate sono state le seguenti:

z sv : la variabile di assegnamento di un volo v ∈ ad uno stand s ∈ ;

yc ovt : la variabile di occupazione di un operatore comune o ∈ su un volo v ∈ in uno slot time in cui può essere occupato un operatore comune t ∈ :DC vt ≥1 ys ovt : la variabile di occupazione di un operatore specializzato o ∈ su un volo v ∈ in uno slot time in cui può essere occupato un operatore specializzato t ∈ : DC vt +DS vt +CNT vt ≥1;

yb ovt : la variabile di occupazione di un operatore adibito alla guida del bus o ∈ su un volo v ∈ in uno slot time in cui può essere occupato un operatore del bus t ∈ : BI vt +BS vt ≥1.

f o,tur : la variabile che valuta se un operatore o ∈ è stato assegnato a lavorare in

un turno tur ∈ ττττ.

Si è eliminato la variabile che assegna gli operatori ai voli, x ov , poiché se un operatore è occupato a lavorare in uno slot time sotto un volo (y ovt =1) allora è automaticamente vero che x ov =1 (vedi paragrafo 1 di questo capitolo).

Vediamo come è sviluppato e come cambiano la funzione obiettivo e i vincoli nel

modello precedente lasciando inalterati i concetti, e togliendo la variabile x ov .

(38)

3.6.1 La funzione obiettivo

La funzione obiettivo rimane la stessa.

Dalla funzione obiettivo viene solamente eliminata la sommatoria degli assegnamenti di ogni operatore ai voli (cioè la somma su tutti gli operatori o e su tutti i voli v della variabile x ov ). Per il resto la funzione obiettivo rimane la stessa:

min f o,tur + ys ovt +

yc ovt + yb ovt

3.6.2 I vincoli

1) Ogni operatore o ∈ , o ∈ , o ∈ , se è assegnato ad un turno, in ogni slot time t ∈ in cui c’è necessità di operatori specializzati o comuni o adibiti alla guida del bus, al massimo può essere occupato su un volo v ∈ .

ys ovt ≤ f o,tur ∀ t ∈

∀ o ∈

yc ovt ≤ f o,tur ∀ t ∈

∀ o ∈

yb ovt ≤ f o,tur ∀ t ∈

∀ o ∈

Poiché ogni operatore può essere assegnato al massimo ad un turno (vedi vincolo numero 11) in ogni slot time la somma di tutti gli assegnamenti di ogni operatore può essere al massimo uguale a 1.

Ogni operatore, in ogni slot time, se è stato assegnato a lavorare su un turno, può essere occupato a lavorare al massimo sotto un volo. Al contrario se un operatore non è stato assegnato a nessun turno, è libero su ogni slot time per tutti i voli.

t∈ :

DC

vt

≥1 t∈ :

BS

vt

+BI

vt

≥1

o∈ v∈ o∈ v∈

tur∈ ττττ o∈ t∈ :

DC

vt

+DS

vt

o∈ +CNT

vt

≥1 v∈

v∈ :

DC

vt

+DS

vt

+CNT

vt

≥1

v∈ : DC

vt

≥1

v∈ : BI

vt

+BS

vt

≥1

tur∈ττττ:

copertura

tur,t

=1

tur∈ττττ:

copertura

tur,t

=1 tur∈ττττ:

copertura

tur,t

=1

Riferimenti

Documenti correlati

Linearizzazione delle equazioni di Lagrange (vincoli fissi) nell’intorno di una soluzione

“Dobbiamo considerare lo stato presente dell’universo come effetto del suo stato anteriore e come causa del suo stato futuro. Una intelligenza che, per un dato

“Se conoscessimo esattamente le leggi della natura e la situazione dell'universo all'istante iniziale, potremmo prevedere esattamente la situazione dello stesso universo

Si denota come “integrale generale” dell’equazione differenziale un’espressione analitica che al variare di un parametro fornisca tutte o.. quasi le soluzioni

Due insiemi hanno lo stesso numero di elementi (la stessa Cardinalità) se esiste una corrispondenza biunivoca fra loro. Non tutti gli insiemi infiniti hanno la

Negli <<Acta Eruditorum>> del 1696 Johann Bernoulli propose, come sfida agli altri matematici, il problema in seguito diventato famoso come problema

In questo lavoro di tesi sono stati sintetizzati complessi di ittrio e lantanio con leganti anionici eteroscorpionati [N,N,O]-donatori, che sono stati studiati

• Il modello dinamico di un sistema permette di determinare l’andamento del segnale di uscita corrispondente a un dato segnale di ingresso, cio`e permette di determinare la risposta