Capitolo 2
Lo scopo dello studio
2.1
L’idea base
Questo progetto ha lo scopo di valutare come variano l’efficacia e l’efficienza nell’organizzazione del personale operaio a seguito di una gestione differente rispetto a quella attuale. Valuteremo una diversa modalità sia nell’assegnazione del personale operaio ai voli, sia nell’allocazione dei voli agli stand rispetto a quella attuale, e sulla base di essa si cercherà di capire quale situazione sia la migliore. Come già descritto nel capitolo precedente, attualmente ogni volo ha bisogno di una serie di operazioni da svolgere in base ai servizi richiesti dalle singole compagnie; il personale operaio viene allocato ai voli sulla base delle esigenze del volo, senza un criterio ben preciso, ma seguendo il bagaglio dell’esperienza delle persone organizzatrici.
Il ragionamento di base che viene seguito per l’allocazione è il seguente:
ogni aeromobile in sosta ha bisogno di un certo tipo di servizio, di conseguenza gli viene associato un numero di risorse operaie per eseguire le operazioni sottobordo: assegniamo quindi un certo numero di lavoratori (che va da due a cinque operatori a seconda del tipo di servizio richiesto) ad ogni volo;
viceversa ad ogni operatore è richiesto di seguire le operazioni da svolgere in rampa per un determinato tipo di aeromobile in sosta allo stand.
Nel momento in cui il turnaround è finito e l’aereo è pronto per il decollo, il personale ritorna in postazione iniziale per essere assegnato ad un altro aeromobile in arrivo.
Riassumendo:
per ogni aeromobile esiste un’unica squadra di operatori; per ogni squadra di operatori esiste un unico aeromobile.
A seconda del giorno settimanale cambia la necessità di personale perché il traffico giornaliero di aeromobili sullo scalo è diverso. E’ da notare che comunque il traffico giornaliero è noto a priori.
L’idea base di questa riorganizzazione si fonda sul concetto che il turnaround di un volo non impegna costantemente tutti gli operatori assegnati al volo durante l’intera durata della sosta, ma in realtà li impegna per una parte, mentre per un’altra parte gli operatori rimangono inattivi.
La proposta che si sta analizzando è quindi quella di valutare se può essere conveniente che un gruppo di operatori, nei momenti di inattività del turnaround del volo ad esso assegnato, possano cambiare stand e lavorare anche su un altro volo, in modo da poter gestire contemporaneamente più aeromobili in sosta nello stesso momento, purché gli aeromobili siano allocati in zone adiacenti.
Quindi al contrario di come si gestisce attualmente il turnaround sugli aeromobili, ci chiediamo se convenga gestire il personale nel modo seguente:
allocare diversi voli (che contemporaneamente occupano il piazzale) su stand contigui e assegnare un unico gruppo di operatori a tali voli.
Dobbiamo sapere quali sono i momenti in cui ogni volo ha bisogno della presenza di un operatore per effettuare alcuni servizi e quali sono invece quei momenti in cui ogni operatore rimane inattivo; la condivisione di un operatore dovrebbe essere oculata e fatta nel momento in cui l’inattività e l’attività sui due voli si intersecano in maniera opportuna. In questo modo lo stesso operatore potrebbe essere occupato in momenti diversi su voli differenti, in base alle diverse necessità, senza che nessun turnaround venga penalizzato.
Perciò, allocando in stand adiacenti dei voli che rimangono in sosta per periodi di tempo sovrapposti, e assegnando a tali voli un gruppo di operatori (anche più numeroso dell’esigenza strettamente necessaria per ciascun singolo volo), si potrebbe gestire contemporaneamente i turnaround dei voli sfruttando la condivisione di alcuni operatori.
Schematicamente:
2.1
Gli aspetti organizzativi importanti
Questo problema descrive una situazione molto complessa che ha bisogno di numerosi aspetti da tenere in considerazione.
Facendo una prima analisi di massima, notiamo che tutti i dati da considerare possono essere suddivisi in quattro grandi insiemi che caratterizzano l’area d’interesse di ogni singolo dato.
Gli insiemi sono i seguenti:
• L’insieme dei voli schedulati di un’intera giornata, che indicheremo con
Si considerano nell’insieme tutti i voli che nella giornata arrivano e poi ripartono, tutti quelli che arrivano e sostano nel piazzale per l’intera notte seguente, e tutti quelli che, dopo aver sostato nella notte, ripartono il mattino. L’insieme comprende tutti i voli passeggeri che transitano nello scalo, ma esclude i voli cargo della giornata, e i voli di aviazione generale.
• L’insieme degli stand del piazzale, che indicheremo con
L’insieme comprende le piazzole numero 1, 2, 3, 4, 5, 6, 7, 8, 21, 22, 44, 45, 46, 47.
Sono esclusi da questo studio gli stand 30, 31, 32, 33, 34, 35, dedicati ai Assegnamento attuale:
ogni volo è allocato su uno stand;
ad ogni volo è assegnato un diverso gruppo di
operatori, che lavorano solo su quel turnaround.
s-1 s
s-1 s
Assegnamento da analizzare: i voli sono allocati su stand contigui;
ai voli è assegnato lo stesso gruppo di operatori; ogni operatore può essere occupato su diversi
dall’insieme dei voli considerati (poiché sono voli che sostano nel piazzale per tempi differenti e non richiedono le stesse operazioni standardizzabili dei turnaround sopra descritti).
• L’insieme degli slot time, che indicheremo con
Uno slot time è un intervallo di tempo in cui viene suddivisa una giornata lavorativa, ed è preso piccolo ma sufficientemente significativo per la descrizione delle attività del lavoro svolto dal personale operaio in ogni turnaround.
Nel nostro caso specifico si ritiene opportuno prendere uno slot di tempo uguale a cinque minuti perché è sia il più piccolo intervallo di tempo che riesce a descrivere ogni insieme di attività degli operatori nel turnaround, sia un divisore intero del tempo totale dei diversi turnaround che consideriamo nello studio. La suddivisione del turnaround in intervalli di cinque minuti è sia molto semplice da un punto di vista matematico, sia corretto dal punto di vista dell’aggregazione delle operazioni del turnaround. Infatti il turnaround di 25 minuti viene suddiviso in 5 slot time, il turnaround di 35 minuti viene suddiviso in 7 slot time, e quello di 45 minuti in 9 slot time.
L’insieme rappresenta inoltre il tempo totale della giornata in cui gli
operatori sono impegnati per lavorare sotto i voli, e generalmente va dalle 05:30 alle 24:00, ed è composto da 222 slot time.
• L’insieme degli operai, che indicheremo con
Questo insieme rappresenta tutti gli operatori che lavorano in airside; è
suddiviso in tre sottoinsiemi: gli operatori comuni , gli operatori
specializzati e gli operatori specializzati dedicati alla guida del bus
= { U U }
Concettualmente esiste un legame tra gli insiemi e : gli operatori
comuni non possono svolgere le operazioni che fanno gli operatori specializzati, mentre gli operatori specializzati possono svolgere anche le operazioni degli operatori comuni.
Invece gli operatori dedicati alla guida del bus sono specializzati che, per motivi di salute, non possono più eseguire alcune attività e quindi si dedicano esclusivamente alla guida dei bus.
• L’insieme dei turni, che indicheremo con ττττ
Questo insieme rappresenta tutti i turni di otto ore su cui viene organizzata una giornata lavorativa.
In realtà non sono considerati tutti i turni; i turni generalmente usati sono tredici, che comprendono anche le coperture notturne, ma in questo elaborato l’arco della giornata considerato va dalle 5:30 alle 24:00, quindi verranno gestiti solo i turni che coprono questa fascia temporale.
Nel problema pianificheremo tutto considerando solo turni full time, ma in realtà esistono anche turni part time a 6 ore e a 4 ore.
I dati del problema sono relativi ad ogni insieme precedentemente indicato. Per ogni volo v appartenente all’insieme si conoscono:
• v: il tempo di inizio di tutte le operazioni sul volo v;
questo istante non coincide con il tempo di arrivo dell’aeromobile sul piazzale, perchè prima dell’atterraggio sono richieste delle operazioni di preparazione dello stand (come per esempio l’avvicinamento dei mezzi necessari) che occupano l’operatore diversi minuti prima dell’inizio del groundtime.
Consideriamo quindi che il momento in cui un operatore o ∈ assegnato al
volo v ∈ è effettivamente occupato nelle operazioni in uno stand, sia da
cinque minuti prima dell’istante atterraggio del volo. v = inizio turnaround – 5.
• v: il tempo di fine di tutte le operazioni sul volo v;
anche questo istante non coincide con il tempo di fine del turnaround dell’aeromobile sul piazzale, perchè nel momento in cui il turnaround termina è necessario che un operatore effettui delle operazioni per far fare manovra all’aeromobile prima che esso decolli (queste sono le operazioni di marshalling, che occupano l’operatore per cinque minuti, o di push back, che occupano l’operatore per dieci minuti).
• Ai fini del nostro studio, è importante saper la relazione temporale(1) che esiste tra un volo e gli altri. Nel caso in cui due voli impegnino contemporaneamente degli operatori nel piazzale, si dirà che due voli sono
simultanei, e si valuterà l’ipotesi di posizionarli abbastanza vicini in modo da poter condividere alcuni operatori.
Quindi è importante evidenziare quali voli nel tabulato giornaliero sono simultanei.
Diremo che due voli vi e vj sono simultanei se:
vi < vj < vi, ovvero quando il tempo d’inizio dell’impiego di un operatore al volo vj avviene dopo al tempo d’inizio dell’impiego dell’operatore al volo vi, e prima del tempo di rilascio dell’operatore dal volo vi:
In altre parole ∀ { vi, vj } : vi ∈ , vj ∈ si parla di simultaneità se: [ vi, vi]∩ [ vj, vj]≠∅
• Un insieme che comprende tutti gli slot temporali in cui gli operatori sono
occupati durante il turnaround di un volo, più un time slot prima e due time slot dopo.
= { t∈ : almeno un operaio lavora sul volo v nello slot time t }
L’occupazione nel turnaround degli operatori negli slot time può variare sia a seconda della tipologia di aeromobile (cambiano le operazioni di assistenza sotto volo), sia sulla base delle richieste contrattuali di ognuna compagnia (facendo riferimento ai differenti tempi di sosta dell’aeromobile). Per questo motivo è si suddivide l’insieme in sei sottoinsiemi.
I sottoinsiemi identificati sono i seguenti:
= rappresenta i voli in cui l’aeromobile è un ATR ed il turnaround ha una durata di 25 minuti. Si necessita di 2 operatori (di cui almeno uno specializzato). Generalmente questi voli non hanno bisogno delle
(1) La relazione temporale idonea per la condivisione del personale non corrisponde precisamente
alla sosta contemporanea dei voli nel piazzale, ma è legata all’occupazione degli operatori nello stand per il volo, che va da cinque minuti prima a dieci minuti dopo della sosta.
vi vj
scale per lo sbarco e l’imbarco dei passeggeri né dei nastri per il carico e lo scarico dei bagagli ma richiedono il GPU.
= rappresenta i voli in cui l’aeromobile è un CRJ ed il turnaround ha una durata di 35 minuti. Si necessita di 2 operatori (di cui almeno uno specializzato). Generalmente questi voli non hanno bisogno delle scale per lo sbarco e l’imbarco dei passeggeri ma richiedono il nastro per il carico e lo scarico dei bagagli e il servizio di GPU.
= rappresenta i voli in cui l’aeromobile è un 737 ed il turnaround ha una durata di 25 minuti. Si necessita di 2 operatori (di cui almeno uno specializzato). Generalmente sono i voli della Ryan air che hanno bisogno della scala posteriore per lo sbarco e l’imbarco dei passeggeri e due nastri per il carico e lo scarico dei bagagli.
= rappresenta i voli in cui l’aeromobile è un 737 ed il turnaround ha una durata di 45 minuti. Si necessita di 3 operatori (di cui almeno uno specializzato). Generalmente sono i voli della British airways che hanno bisogno delle due scale (anteriore e posteriore) per lo sbarco e l’imbarco dei passeggeri e due nastri per il carico e lo scarico dei bagagli.
In più esistono altre due tipologie di turnaround, che si differenziano per le operazioni che devono essere fatte.
= rappresenta i voli che hanno sostato nel piazzale durante la notte e che nella mattina devono ripartire. Il turnaround ha una durata di 20 minuti e ha bisogno solo di quelle operazioni che sono connesse a far imbarcare i passeggeri e a far decollare l’aeromobile.
= rappresenta i voli che arrivano la sera e sosteranno nel piazzale durante la notte. Il turnaround ha una durata di 15 minuti e ha bisogno solo di quelle operazioni che sono connesse a far parcheggiare l’aeromobile e a far sbarcare i passeggeri.
L’unione di questi insiemi (i cui elementi v variano giornalmente col variare del piano di voli giornaliero) è
In seguito sono schematizzati graficamente i time slot in cui ogni operatore (comune, specializzato e per il bus in imbarco e in sbarco) è occupato prima, dopo, e durante il turnaround a seconda del tipo di volo.
Turnaround per i voli che hanno sostato nella notte (v ∈ )
Turnaround per i voli tipo ATR (v ∈ )
Turnaround per i voli tipo CRJ (v ∈ )
Turnaround per i voli tipo 737 di Ryan air(v ∈ )
Turnaround per i voli tipo 737 di British airways (v ∈ )
v p v v a p v v v 1 p a v a p v v a p v
Turnaround per i voli che sosteranno nella notte (v ∈ )
Legenda (2):
- ogni piccolo rettangolo identifica uno slot time di 5 minuti;
- ogni linea di rettangoli rappresenta l’impegno temporale di ogni
operatore nel turnaround, e a seconda delle colorazioni si capisce se in quello slot time un operatore (comune, specializzato, per imbarco col bus, per lo sbarco con il bus) è impegnato o meno, in questo modo:
slot time in cui nessun operatore è occupato slot time in cui è occupato un operatore comune slot time in cui è occupato un operatore specializzato
slot time in cui è occupato un operatore per imbarcare col bus
slot time in cui è occupato un operatore per sbarcare col bus
- a, p: tempo di arrivo e di partenza dell’aeromobile sul piazzale:
(p-a) = ground time del volo;
- v: tempo in cui l’aeromobile inizia ad impegnare almeno un operatore;
- v :tempo in cui l’aeomobile finiscesi impegnare l’operatore più
occupato;
per tutti i tipi di voli il numero di operatori che sono necessari durante le operazioni sottobordo sono 2 (non considerando gli operatori che eventualmente sono adibiti al trasporto dei passeggeri sul bus); questo non vale con i voli di tipo British Airways, che necessitano di 3 operatori (due comuni e uno specializzato).
• Un insieme ΘΘΘΘ che comprende gli slot temporali del volo in cui un operatore
specializzato deve essere presente per alcuni slot time per eseguire dei
(2) E’ piuttosto evidente come nei time slot centrali gli operatori comune e specializzato siano
prevalentemente inattivi. E’ stato questo il motivo per cui è stata indrodotta l’ipotesi
controlli e spostare i carrelli che la cooperativa riempie o svuota con i bagagli durante le fasi di scarico e carico.
Vediamo graficamente quali sono questi time slot per ogni tipologia di volo:
Insieme ΘΘΘΘ per i voli che hanno sostato nella notte (v ∈ )
Insieme ΘΘΘΘ per i voli tipo ATR (v ∈ )
Insieme ΘΘΘΘ per i voli tipo CRJ (v ∈ )
Insieme ΘΘΘΘ per i voli tipo 737 di Ryan air (v ∈ )
Insieme ΘΘΘΘ per i voli tipo 737 di British airways (v ∈ )
Insieme ΘΘΘΘ per i voli che sosteranno nella notte (v ∈ )
Per i voli tipo , , , è fissato solo un time slot per
effettuare il controllo;
per i voli tipo solo un time slot è dedicato al controllo, e può essere
scelto in un insieme di tre time slot centrali (il quarto, il quinto e il sesto);
per i voli tipo sono dedicati al controllo due time slot, e possono
essere scelti in un insieme di cinque time slot centrali (il quarto, il quinto, il sesto, il settimo e l’ottavo).
v v v v v v v v v v v v
Per ogni stand s appartenente all’insieme sappiamo che:
• Si deve valutare la necessità di dover utilizzare un operatore in più rispetto
allo specializzato e al/ai comune/i.
Infatti nel caso in cui lo stand non sia vicino all’area arrivi è necessario predisporre un ulteriore operatore che trasporti col bus navetta i passeggeri sbarcati dallo stand dove è parcheggiato l’aeromobile all’area arrivi; in più se lo stand non è neanche vicino ai gate d’imbarco, è necessario predisporre un operatore del bus (che non è detto che sia il solito dello sbarco) per il trasporto dei passeggeri che devono imbarcare, dai gate allo stand dove è parcheggiato.
In particolare gli stand 3 e 4 non hanno bisogno di imbarcare né sbarcare passeggeri col bus, lo stand 2 soltanto ha bisogno di imbarcare i passeggeri col bus (i passeggeri sbarcano a piedi); il resto degli stand hanno bisogno sia di imbarcare che di sbarcare passeggeri col bus.
• Sulla base della pianta del piazzale possiamo identificare quali sono gli
stand vicini tra loro, e quindi per ogni insieme composto da una coppia di stand è importante sapere se sono sufficientemente vicini da poter condividere uno o più operatori. Infatti nel caso in cui due voli impegnino contemporaneamente uno o più operatori, possiamo studiare se può essere conveniente la condivisione degli operatori ai voli.
• Sulla base della capacità di ogni stand, dobbiamo valutare su quali stand
può sostare ogni tipo di volo.
Generalmente tutti i voli considerati possono essere assegnati a tutti gli stand disponibili facendo le eccezioni seguenti:
lo stand 8 è in grado di accettare solo aeromobili di piccole dimensioni tipo ;
gli stand 21 e 22 possono accettare solo voli di tipo e .
Alcune osservazioni(3) da tenere in considerazione sono le seguenti:
- se lo stand numero 1 è occupato da un aeromobile tipo Airbus 300, non sono disponibili né lo stand 21 né lo stand 22;
- se lo stand numero 1 è occupato da un aeromobile tipo 757, lo stand
numero 22 non è disponibile, mentre lo stand numero 21 è utilizzabile.
Per ogni slot time t in cui si ha necessità di operatori ( t ∈ sappiamo che:
• Esiste un numero di operatori comuni, chiamato DCtv, che il volo v richiede
nello slot time t.
Questo valore si può ricavare dalla schematizzazione grafica di pag. 18 e 19 per ogni tipologia di turnaround: ogni rettangolo colorato in giallo rappresenta la necessità di operatori comuni per ogni slot time del turnaround di ogni volo. In particolare quindi per ogni volo DCtv=1 nei time slot colorati in giallo e nel caso di voli 737 tipo British airways, il valore DCtv=2 poiché sono necessari 2 operatori comuni sottobordo. DCtv=0 in tutti i rettangoli bianchi.
• Esiste un numero di operatori specializzati, chiamato DStv, che il volo v
richiede nello slot time t.
In analogia a quanto spiegato sopra, per ogni tipologia di turnaround: ogni rettangolo colorato in verde rappresenta la necessità di un operatore specializzato per slot time del turnaround di ogni volo. In particolare quindi per ogni volo DStv=1 nei time slot colorati in verde, DStv=0 in tutti i rettangoli bianchi.
• Esiste un numero di operatori necessari per lo sbarco dei passeggeri,
chiamato BAtv, che ogni volo v richiede nello slot time t.
Per ogni tipologia di turnaround ogni rettangolo colorato in blu rappresenta la necessità di un operatore alla guida del bus per lo sbarco dei passeggeri per ogni slot time del turnaround del volo v. Quindi BAtv=1 nei time slot colorati in blu, BAtv=0 in tutti i rettangoli bianchi.
non inserire nell’insieme dei voli anche i voli cargo, questo in realtà è presente, e a seconda del tipo di aeromobile, può inibire anche gli stand 21 e 22.
Per i voli che hanno sostato nel piazzale e che devono partire, non dovendo sbarcare alcun passeggero, BAtv vale sempre 0.
• Esiste un numero di operatori necessari per l’imbarco dei passeggeri,
chiamato BPtv, che il volo v richiede nello slot time t.
Per ogni tipologia di turnaround ogni rettangolo colorato in celeste rappresenta la necessità di un operatore alla guida del bus per l’imbarco dei passeggeri per ogni slot time del turnaround di ogni volo. Quindi BPtv=1 nei time slot colorati in celeste, BPtv=0 in tutti i rettangoli bianchi.
Per i voli che arrivano la sera e dovranno sostare nel piazzale, non dovendo imbarcare alcun passeggero, BPtv vale sempre 0.
Per ogni turno tur appartenente all’insieme ττττ si considera che:
ogni operatore lavora su un turno effettivo di 8 ore.
Al netto delle pause pranzo la presenza effettiva dell’operatore sulla giornata è di 7 ore e 25 minuti; le fasce temporali in cui gli operatori fanno la pausa sono tra le 11:30 e le 14:45 per il pranzo, e tra le 18:30 e le 21:00 per la cena, e vengono gestite giornalmente a seconda delle necessità che si presentano momentaneamente sul piazzale, facendo in modo di non lasciare scoperto alcun volo.
I turni disponibili sono circa cento, ma quelli che generalmente vengono utilizzati si riducono a otto: si considerano i turni che partono dalle 5:30, 6:00, 9:30, 11:00, 14:00, 14:30, 15:30, 16:00, e si prolungano per otto ore.
2.2
I dati del problema
In relazione all’insieme conosciamo:
• Un tabulato di voli giornalieri, che rappresenta tutti i voli che in un
determinato giorno partono dopo aver sostato nella notte, arrivano e poi lasciano lo scalo, e arrivano e sostano nello scalo durante la notte.
Nel tabulato per ogni volo troviamo l’orario di arrivo e il tipo di volo.
Inizialmente dall’orario di arrivo, che traduciamo in slot time(4), dobbiamo
ricavare l’orario di inizio v dell’impegno degli operatori per ogni volo v,
sapendo che gli operatori devono iniziare le loro attività cinque minuti (1 time slot) prima dell’arrivo:
∀ v v = (arrivo del volo v – 1)
Sapendo che ogni volo v appartiene ad uno dei sottoinsiemi di che
precedentemente abbiamo definito, classifichiamo ogni volo per sottoinsieme di appartenenza.
Creeremo quindi il file di testo “voli.txt” strutturato come una tabella in cui
ogni riga identifica un volo v, nella prima colonna avremo il tempo v di inizio
delle operazioni di ogni i-esimo volo, e nella seconda colonna avremo un numero che identifica il tipo di volo con il seguente criterio:
20 identifica l’insieme dei voli appartenenti a (con turnaround di 20
minuti)
25 identifica l’insieme dei voli appartenenti a (con turnaround di 25
minuti)
257 identifica l’insieme dei voli appartenenti a (con turnaround di 25
minuti)
35 identifica l’insieme dei voli appartenenti a (con turnaround di 35
minuti)
45 identifica l’insieme dei voli appartenenti a (con turnaround di 45
minuti)
15 identifica l’insieme dei voli appartenenti a (con turnaround di 15
minuti)
(4)Gli orari sono indicati con numeri interi (e non con la classica scrittura tipo hh:mm) per motivi di
semplicità durante la programmazione che è stata necessaria (che è spiegata nelle pagine successive).
• Una matrice quadrata simvivj che mette in relazione due voli vi vj e il tempo di
impiego degli operatori ad essi, costruita con il programma “matrice-simultaneità.cpp” in linguaggio di programmazione C++ (vedi Appendice 1.1), sulla base del tabulato dei voli giornalieri.
Per due generici voli vi vj:
• Una matrice DCv che indica il numero di operatori comuni che è necessario
assegnare a ciascun volo.
La matrice ha tante righe quanti sono i voli e una colonna; gli elementi di ogni riga indicano il numero di operatori comuni che è necessario assegnare a ciascun volo v.
• Una matrice DSv che indica il numero di operatori specializzati che è
necessario assegnare a ciascun volo.
La matrice ha tante righe quanti sono i voli e una colonna; gli elementi di ogni riga indica il numero di operatori specializzati che è necessario assegnare a ciascun volo v.
Con le ipotesi che abbiamo fatto, ogni volo necessita di un operatore specializzato, quindi tutti gli elementi della matrice valgono 1.
• Un insieme di stand su cui ogni volo può essere parcheggiato. Prendendo
come input il tabulato dei voli giornalieri e classificando ogni volo
nell’insieme di appartenenza ( , , , , , ),
possiamo capire su quale stand (in funzione del vincolo della propria capacità) ogni tipo di aeromobile può essere parcheggiato.
i voli sono simultanei
vi < vj < vi
altrimenti 1
0 simvivj
seper il volo v è necessario 1 operatore comune
1
La matrice che si ottiene si chiama “accogl-stand” ed è realizzata tramite il programma “accoglienza-stand.cpp” (vedi Appendice 1.2).
In relazione agli insiemi e conosciamo:
• per ogni volo v della giornata un vettore (chiamato turnaround del volo v)
che indica tutti gli slot time dell’intervallo in cui sosta l’aeromobile nel piazzale (che comprende anche lo slot time precedente all’arrivo e due slot time dopo la partenza).
Al variare di v il vettore è composto da un numero variabile di elementi (che dipende ovviamente dal tipo di volo e quindi dalla lunghezza del turnaround del volo stesso) in questo modo:
v ∈ ha 6 elementi (si considera il turnaround di 6 slot time);
v ∈ ha 8 elementi (si considera il turnaround di 8 slot time);
v ∈ ha 8 elementi (si considera il turnaround di 8 slot time);
v ∈ ha 10 elementi (si considera il turnaround di 10 slot time);
v ∈ ha 12 elementi (si considera il turnaround di 12 slot time);
v ∈ ha 4 elementi (si considera il turnaround di 4 slot time).
E’ stata costruita una matrice chiamata “insieme-Tv” sempre con linguaggio di programmazione C++, il cui procedimento di realizzazione è la prima parte del programma “matrice-num-operai.cpp” e il file che si genera è “insieme-Tv.txt” (vedi Appendice 1.3).
• Una matrice “domanda-comuni” che per ogni volo v indica quanti operatori
comuni sono richiesti in ogni slot time; è costruita sempre con linguaggio di programmazione C++, prendendo come input il file “insieme-Tv.txt” (vedi Appendice 1.3).
Dal file “insieme-Tv”, in base alla quantità di numeri diversi da 0, ricaviamo direttamente a quale insieme appartiene ogni volo v presente sull’i-esima
seper il volo v nello slot time t è
necessario 1 operatore comune se per il volo v, nello slot time t non è necessario alcun operatore
1 0 DCt,v
2 se per il volo v nello slot time t sono
riga; sulla base degli schemi di pag. 19 e 20, conoscendo il tipo di volo e su quali slot time il volo sosta, contando i rettangoli colorati in giallo, ricaviamo la necessità di operatori comuni in ogni slot time.
• Con lo stesso ragionamento, ma sulla base dei rettangoli colorati in verde,
creiamo la matrice “domanda-specializzati” di dimensione (numero voli x 222), i cui elementi sono uguali a 1 in tutti quei time slot in cui è necessario un operatore specializzato e 0 altrimenti.
• Con lo stesso ragionamento, ma sulla base dei rettangoli colorati in blu
creiamo la matrice “operai-bus-imbarco”, e sulla base dei rettangoli colorati in celeste creiamo la matrice “operai-bus-sbarco”.
• Per ogni volo v della giornata identifichiamo un vettore ΘΘΘΘ che indica gli slot
time centrali nell’intervallo di sosta dell’aeromobile in cui un operatore se per il volo v nello slot time t è necessario
1 operatore specializzato
se per il volo v nello slot time t non è necessario alcun operatore specializzato
1 0 DSt,v
se per il volo v nello slot time t è necessario 1
operatore specializzato addetto al bus per l’imbarco dei passeggeri
se per il volo v nello slot time t non è necessario alcun operatore specializzato addetto al bus per l’imbarco dei passeggeri 1 0 BPt,v 1 0 BAt,v
se per il volo v nello slot time t è necessario 1 operatore specializzato addetto al bus per lo sbarco dei passeggeri
se per il volo v nello slot time t non è necessario alcun operatore specializzato addetto al bus per lo sbarco dei passeggeri
specializzato deve essere presente per almeno uno slot time per effettuare
controlli(5) e operazioni durante il carico e lo scarico dei bagagli.
Per ogni tipo di volo, questo vettore è composto da un numero variabile di elementi, secondo la seguente logica:
v ∈ ∪ ∪ ∪ ΘΘΘΘ ha 1 elemento (il controllo è su 1 slot
time);
v ∈ ΘΘΘΘ ha 3 elementi (il controllo può essere fatto su 3 slot time);
v ∈ ΘΘΘΘ ha 5 elementi (il controllo può essere fatto su 5 slot time).
La matriceche si ottiene chiamata “insieme-teta”, ed è realizzata tramite linguaggio C++ con il programma “insieme-teta.cpp” (vedi Appendice 1.4).
• Per ogni volo v identifichiamo un vettore, chiamato tscntv (slot time di
controllo), che indica quanti sono gli slot time dell’insieme teta in cui deve essere presente l’operatore specializzato.
Gli elementi del vettore tscntv assumono valore 1 o 2 con il seguente criterio:
v ∈ ∪ ∪ ∪ ∪ tscnt è uguale a 1 (nell’intervallo
Θ Θ Θ
Θ il controllo può essere fatto in 1 tra tutti gli slot time disponibili);
v ∈ tscnt è uguale a 2 (nell’intervallo ΘΘΘΘ il controllo può essere fatto
in 2 tra tutti gli slot time disponibili).
Anche la matrice “time-slot-per-controlli” è in output al programma “insieme teta.cpp” (vedi Appendice 1.4).
• La matrice chiamata “matrice-CNTR”, strettamente correlata alla matrice
“insieme-teta”, in cui per ogni volo ogni suo elemento cntvt è uguale a 1 se in quello slot time possono essere effettuate le operazioni di spostare i carrelli carichi di bagagli e il controllo dallo specializzato, 0 altrimenti (vedi Appendice 1.4).
(5) Per semplicità si dirà che durante questi slot time l’operatore specializzato effettua controlli. Si
tenga conto che in realtà in questi slot time l’operatore deve anche trasportare i carrelli con i bagagli dei passeggeri sbarcati dallo stand all’area arrivi, trasportare i carrelli con i bagagli dei passeggeri che devono imbarcare dall’area dove sono stati posizionati allo stand.
se per il volo v nello slot time t può essere fatto un controllo dallo specializzato altrimenti
1 0 cntvt
In relazione all’insieme abbiamo:
• Due vettori bus-imbarco e bus-sbarco costruite con i programmi
“busimbarco.cpp” e “bussbarco.cpp” che indicano la necessità di ogni stand s di utilizzare un operatore per l’imbarco e lo sbarco dei passeggeri (vedi Appendice 1.5).
In particolare:
• Più in generale, abbiamo una matrice DBs che ha tante righe quanti sono gli
stand e una colonna. Gli elementi indicano per ogni stand s se è necessario imbarcare o sbarcare con l’autobus.
In altre parole nel caso su uno stand sia parcheggiato un aeromobile, ogni riga indica se è necessario assegnare un operatore a quel volo per sbarcare o imbarcare i passeggeri.
• Una matrice chiamata “condivisione” realizzata con il programma
“cond.cpp”, che per ogni coppia di stand indica se tali stand sono sufficientemente vicini da poter condividere uno o più operatori, nel caso in cui essi siano assegnati a due voli che sostano simultaneamente sui due stand (vedi Appendice 1.6).
∀ { si, sj } : si∈ , sj∈
se serve il bus per l’imbarco per un volo nello stand s altrimenti
1 0 busimb,s
se serve il bus per lo sbarco per un volo nello stand s altrimenti
1 0 bussb,s
se si e sj possono condividere degli operatori
1
se serve sbarcare o imbarcare con l’autobus altrimenti
1 0 DBs
Il criterio per cui due stand possono essere condivisibili da uno stesso operatore è che gli stand devono essere adiacenti sul piazzale.
Sono condivisibili le seguenti coppie di stand:
1-22, 21-22, 2-3, 3-4, 4-5, 6-7, 7-8, 44-45, 45-46, 46-47. In relazione all’insieme ττττ abbiamo:
• Una matrice chiamata “coperture”, costruita con il programma
“copertura.cpp”, che indica se ogni slot time della giornata è coperto da uno degli otto turni usati. Ogni elemento vale 1 se il turno copre il time slot, e 0 altrimenti (vedi Appendice 1.7).
Con questa matrice possiamo gestire anche le pause pranzo di ogni turno in questo modo: consideriamo che la matrice copertura riporti 1 su tutti gli slot time che copre il turno, eccetto dallo slot time in cui un operatore che copre il turno tur dovrebbe andare a mensa, più i sei slot time successivi (perché la pausa è lunga trentacinque minuti). Perciò nell’intervallo di copertura ci sono sette zeri in corrispondenza degli slot time in cui si richiede la pausa mensa. Ciò significa che gli operatori che coprono il turno tur non sono disponibili dal momento in cui vanno a mensa per i successivi 35 minuti.
se il turno tur copre lo slot time t altrimenti
1 0 coptur,t