implementazione di un algoritmo distribuito per l'assegnazione del traffico aereo slides
TRANSCRIPT
Implementazione di un algoritmo distribuito perl’assegnazione del traffico aereo
Matteo Buriola
Dipartimento di matematica e geoscienzeUniversità degli Studi di Trieste
10 Marzo 2016 - Tesi di Laurea Magistrale
Matteo Buriola (UNITS) Algoritmo distribuito per traffico aereo 10 Marzo 2016 1 / 22
Introduzione
Compagnie aeree
In competizione tra loroRicercano il profitto
Autorità di controllo
Sicurezza ed efficenzaOrganizzazione in settori
Matteo Buriola (UNITS) Algoritmo distribuito per traffico aereo 10 Marzo 2016 2 / 22
Introduzione
Compagnie aeree
In competizione tra loroRicercano il profitto
Autorità di controllo
Sicurezza ed efficenzaOrganizzazione in settori
Matteo Buriola (UNITS) Algoritmo distribuito per traffico aereo 10 Marzo 2016 2 / 22
Introduzione
Compagnie aereeIn competizione tra loro
Ricercano il profittoAutorità di controllo
Sicurezza ed efficenzaOrganizzazione in settori
Matteo Buriola (UNITS) Algoritmo distribuito per traffico aereo 10 Marzo 2016 2 / 22
Introduzione
Compagnie aereeIn competizione tra loroRicercano il profitto
Autorità di controllo
Sicurezza ed efficenzaOrganizzazione in settori
Matteo Buriola (UNITS) Algoritmo distribuito per traffico aereo 10 Marzo 2016 2 / 22
Introduzione
Compagnie aereeIn competizione tra loroRicercano il profitto
Autorità di controllo
Sicurezza ed efficenzaOrganizzazione in settori
Matteo Buriola (UNITS) Algoritmo distribuito per traffico aereo 10 Marzo 2016 2 / 22
Introduzione
Compagnie aereeIn competizione tra loroRicercano il profitto
Autorità di controlloSicurezza ed efficenza
Organizzazione in settori
Matteo Buriola (UNITS) Algoritmo distribuito per traffico aereo 10 Marzo 2016 2 / 22
Introduzione
Compagnie aereeIn competizione tra loroRicercano il profitto
Autorità di controlloSicurezza ed efficenzaOrganizzazione in settori
Matteo Buriola (UNITS) Algoritmo distribuito per traffico aereo 10 Marzo 2016 2 / 22
Regolamentazione
Riduzione della capacità in un settore per un tempo t .Imposizione di un tetto al numero di voliSuddivisione di t in finestre temporali o slot.Assegnazione degli slot.
Generazione di un ritardo =⇒ Aumento dei costi
Obiettivo:
Una procedura per ridurre i costi tramite lo scambio di slot e checoinvolga le compagnie aeree nel processo decisionale
Individual Rationality: nessuno ci rimette.Budget Balanced: nessuna sovvenzione esterna.
Matteo Buriola (UNITS) Algoritmo distribuito per traffico aereo 10 Marzo 2016 3 / 22
Regolamentazione
Riduzione della capacità in un settore per un tempo t .
Imposizione di un tetto al numero di voliSuddivisione di t in finestre temporali o slot.Assegnazione degli slot.
Generazione di un ritardo =⇒ Aumento dei costi
Obiettivo:
Una procedura per ridurre i costi tramite lo scambio di slot e checoinvolga le compagnie aeree nel processo decisionale
Individual Rationality: nessuno ci rimette.Budget Balanced: nessuna sovvenzione esterna.
Matteo Buriola (UNITS) Algoritmo distribuito per traffico aereo 10 Marzo 2016 3 / 22
Regolamentazione
Riduzione della capacità in un settore per un tempo t .Imposizione di un tetto al numero di voli
Suddivisione di t in finestre temporali o slot.Assegnazione degli slot.
Generazione di un ritardo =⇒ Aumento dei costi
Obiettivo:
Una procedura per ridurre i costi tramite lo scambio di slot e checoinvolga le compagnie aeree nel processo decisionale
Individual Rationality: nessuno ci rimette.Budget Balanced: nessuna sovvenzione esterna.
Matteo Buriola (UNITS) Algoritmo distribuito per traffico aereo 10 Marzo 2016 3 / 22
Regolamentazione
Riduzione della capacità in un settore per un tempo t .Imposizione di un tetto al numero di voliSuddivisione di t in finestre temporali o slot.
Assegnazione degli slot.
Generazione di un ritardo =⇒ Aumento dei costi
Obiettivo:
Una procedura per ridurre i costi tramite lo scambio di slot e checoinvolga le compagnie aeree nel processo decisionale
Individual Rationality: nessuno ci rimette.Budget Balanced: nessuna sovvenzione esterna.
Matteo Buriola (UNITS) Algoritmo distribuito per traffico aereo 10 Marzo 2016 3 / 22
Regolamentazione
Riduzione della capacità in un settore per un tempo t .Imposizione di un tetto al numero di voliSuddivisione di t in finestre temporali o slot.Assegnazione degli slot.
Generazione di un ritardo =⇒ Aumento dei costi
Obiettivo:
Una procedura per ridurre i costi tramite lo scambio di slot e checoinvolga le compagnie aeree nel processo decisionale
Individual Rationality: nessuno ci rimette.Budget Balanced: nessuna sovvenzione esterna.
Matteo Buriola (UNITS) Algoritmo distribuito per traffico aereo 10 Marzo 2016 3 / 22
Regolamentazione
Riduzione della capacità in un settore per un tempo t .Imposizione di un tetto al numero di voliSuddivisione di t in finestre temporali o slot.Assegnazione degli slot.
Generazione di un ritardo
=⇒ Aumento dei costi
Obiettivo:
Una procedura per ridurre i costi tramite lo scambio di slot e checoinvolga le compagnie aeree nel processo decisionale
Individual Rationality: nessuno ci rimette.Budget Balanced: nessuna sovvenzione esterna.
Matteo Buriola (UNITS) Algoritmo distribuito per traffico aereo 10 Marzo 2016 3 / 22
Regolamentazione
Riduzione della capacità in un settore per un tempo t .Imposizione di un tetto al numero di voliSuddivisione di t in finestre temporali o slot.Assegnazione degli slot.
Generazione di un ritardo =⇒ Aumento dei costi
Obiettivo:
Una procedura per ridurre i costi tramite lo scambio di slot e checoinvolga le compagnie aeree nel processo decisionale
Individual Rationality: nessuno ci rimette.Budget Balanced: nessuna sovvenzione esterna.
Matteo Buriola (UNITS) Algoritmo distribuito per traffico aereo 10 Marzo 2016 3 / 22
Regolamentazione
Riduzione della capacità in un settore per un tempo t .Imposizione di un tetto al numero di voliSuddivisione di t in finestre temporali o slot.Assegnazione degli slot.
Generazione di un ritardo =⇒ Aumento dei costi
Obiettivo:
Una procedura per ridurre i costi tramite lo scambio di slot e checoinvolga le compagnie aeree nel processo decisionale
Individual Rationality: nessuno ci rimette.Budget Balanced: nessuna sovvenzione esterna.
Matteo Buriola (UNITS) Algoritmo distribuito per traffico aereo 10 Marzo 2016 3 / 22
Regolamentazione
Riduzione della capacità in un settore per un tempo t .Imposizione di un tetto al numero di voliSuddivisione di t in finestre temporali o slot.Assegnazione degli slot.
Generazione di un ritardo =⇒ Aumento dei costi
Obiettivo:Una procedura per ridurre i costi tramite lo scambio di slot e checoinvolga le compagnie aeree nel processo decisionale
Individual Rationality: nessuno ci rimette.Budget Balanced: nessuna sovvenzione esterna.
Matteo Buriola (UNITS) Algoritmo distribuito per traffico aereo 10 Marzo 2016 3 / 22
Regolamentazione
Riduzione della capacità in un settore per un tempo t .Imposizione di un tetto al numero di voliSuddivisione di t in finestre temporali o slot.Assegnazione degli slot.
Generazione di un ritardo =⇒ Aumento dei costi
Obiettivo:Una procedura per ridurre i costi tramite lo scambio di slot e checoinvolga le compagnie aeree nel processo decisionale
Individual Rationality: nessuno ci rimette.
Budget Balanced: nessuna sovvenzione esterna.
Matteo Buriola (UNITS) Algoritmo distribuito per traffico aereo 10 Marzo 2016 3 / 22
Regolamentazione
Riduzione della capacità in un settore per un tempo t .Imposizione di un tetto al numero di voliSuddivisione di t in finestre temporali o slot.Assegnazione degli slot.
Generazione di un ritardo =⇒ Aumento dei costi
Obiettivo:Una procedura per ridurre i costi tramite lo scambio di slot e checoinvolga le compagnie aeree nel processo decisionale
Individual Rationality: nessuno ci rimette.Budget Balanced: nessuna sovvenzione esterna.
Matteo Buriola (UNITS) Algoritmo distribuito per traffico aereo 10 Marzo 2016 3 / 22
Definizioni
Siano
F = { 1,. . . , F } un insieme di voli.S = {1,. . . , S } un insieme di settori con capacità limitata.Is e Us l’orario di inizio e di fine della regolamentazione per ilsettore sSf una successione di elementi di S che f deve attraversare, doveEs
f è il tempo previsto di entrata di f nel settore s e Esf − Es′
f iltempo di volo di f attraverso una coppia consecutiva di elementis, s′ ∈ Sf .
Matteo Buriola (UNITS) Algoritmo distribuito per traffico aereo 10 Marzo 2016 4 / 22
Definizioni
SianoF = { 1,. . . , F } un insieme di voli.
S = {1,. . . , S } un insieme di settori con capacità limitata.Is e Us l’orario di inizio e di fine della regolamentazione per ilsettore sSf una successione di elementi di S che f deve attraversare, doveEs
f è il tempo previsto di entrata di f nel settore s e Esf − Es′
f iltempo di volo di f attraverso una coppia consecutiva di elementis, s′ ∈ Sf .
Matteo Buriola (UNITS) Algoritmo distribuito per traffico aereo 10 Marzo 2016 4 / 22
Definizioni
SianoF = { 1,. . . , F } un insieme di voli.S = {1,. . . , S } un insieme di settori con capacità limitata.
Is e Us l’orario di inizio e di fine della regolamentazione per ilsettore sSf una successione di elementi di S che f deve attraversare, doveEs
f è il tempo previsto di entrata di f nel settore s e Esf − Es′
f iltempo di volo di f attraverso una coppia consecutiva di elementis, s′ ∈ Sf .
Matteo Buriola (UNITS) Algoritmo distribuito per traffico aereo 10 Marzo 2016 4 / 22
Definizioni
SianoF = { 1,. . . , F } un insieme di voli.S = {1,. . . , S } un insieme di settori con capacità limitata.Is e Us l’orario di inizio e di fine della regolamentazione per ilsettore s
Sf una successione di elementi di S che f deve attraversare, doveEs
f è il tempo previsto di entrata di f nel settore s e Esf − Es′
f iltempo di volo di f attraverso una coppia consecutiva di elementis, s′ ∈ Sf .
Matteo Buriola (UNITS) Algoritmo distribuito per traffico aereo 10 Marzo 2016 4 / 22
Definizioni
SianoF = { 1,. . . , F } un insieme di voli.S = {1,. . . , S } un insieme di settori con capacità limitata.Is e Us l’orario di inizio e di fine della regolamentazione per ilsettore sSf una successione di elementi di S che f deve attraversare, doveEs
f è il tempo previsto di entrata di f nel settore s e Esf − Es′
f iltempo di volo di f attraverso una coppia consecutiva di elementis, s′ ∈ Sf .
Matteo Buriola (UNITS) Algoritmo distribuito per traffico aereo 10 Marzo 2016 4 / 22
Settori e slot
Ogni settore s è caratterizzato da
una capacità limitata Ks di entrate all’ora,una lista di assegnazione Ls composta da Ns = bKs
Us−Is60 c
elementi, chiamati slot, con capacità unitaria.
Denotiamo il generico js-esimo slot in Ls come l’intervallo di tempo[Ijs ,Ujs ] dove
Ijs = Is+
⌊(js − 1) · 60
Ks
⌋Ujs = Ijs+1 − 1
Matteo Buriola (UNITS) Algoritmo distribuito per traffico aereo 10 Marzo 2016 5 / 22
Settori e slot
Ogni settore s è caratterizzato da
una capacità limitata Ks di entrate all’ora,
una lista di assegnazione Ls composta da Ns = bKsUs−Is
60 celementi, chiamati slot, con capacità unitaria.
Denotiamo il generico js-esimo slot in Ls come l’intervallo di tempo[Ijs ,Ujs ] dove
Ijs = Is+
⌊(js − 1) · 60
Ks
⌋Ujs = Ijs+1 − 1
Matteo Buriola (UNITS) Algoritmo distribuito per traffico aereo 10 Marzo 2016 5 / 22
Settori e slot
Ogni settore s è caratterizzato da
una capacità limitata Ks di entrate all’ora,una lista di assegnazione Ls composta da Ns = bKs
Us−Is60 c
elementi, chiamati slot, con capacità unitaria.
Denotiamo il generico js-esimo slot in Ls come l’intervallo di tempo[Ijs ,Ujs ] dove
Ijs = Is+
⌊(js − 1) · 60
Ks
⌋Ujs = Ijs+1 − 1
Matteo Buriola (UNITS) Algoritmo distribuito per traffico aereo 10 Marzo 2016 5 / 22
Settori e slot
Ogni settore s è caratterizzato da
una capacità limitata Ks di entrate all’ora,una lista di assegnazione Ls composta da Ns = bKs
Us−Is60 c
elementi, chiamati slot, con capacità unitaria.
Denotiamo il generico js-esimo slot in Ls come l’intervallo di tempo[Ijs ,Ujs ] dove
Ijs = Is+
⌊(js − 1) · 60
Ks
⌋Ujs = Ijs+1 − 1
Matteo Buriola (UNITS) Algoritmo distribuito per traffico aereo 10 Marzo 2016 5 / 22
Voli e rotte
Una serie qf = [r1, . . . , r|Sf |] di slot deve essere assegnata ad ogni volo,tenendo conto che uno slot ri può essere assegnato al volo f solo setermina dopo E i
f , cioè E if ≤ Uri , ∀ri ∈ qf , i ∈ Sf .
Uno slot qf può causare un ritardo al volo f pari aDefiniamo quindi il ritardo dqf
f della serie qf come
d fqf = max
i∈Sf
{max(Iri − E if ,0)}
Ogni ritardo dqff causa un costo C(f ,qf ) ≥ 0.
Diciamo che una serie qf è accettabile per il volo f se:
Esiste uno slot ri per ogni i ∈ Sf con E if ≤ Uri
Iri e Uri per ogni coppia i , j di settori consecutivi in Sf sonocompatibili con il tempo di volo E j
f − E if
Il ritardo dqff è vincolato tra 0 e un valore massimo MaxDelf , oltre il
quale il costo diventa eccessivo e il volo viene cancellato.
Matteo Buriola (UNITS) Algoritmo distribuito per traffico aereo 10 Marzo 2016 6 / 22
Voli e rotte
Una serie qf = [r1, . . . , r|Sf |] di slot deve essere assegnata ad ogni volo,tenendo conto che uno slot ri può essere assegnato al volo f solo setermina dopo E i
f , cioè E if ≤ Uri , ∀ri ∈ qf , i ∈ Sf .
Uno slot qf può causare un ritardo al volo f pari a
Definiamo quindi il ritardo dqff della serie qf come
d fqf = max
i∈Sf
{
max(Iri − E if ,0)
}
Ogni ritardo dqff causa un costo C(f ,qf ) ≥ 0.
Diciamo che una serie qf è accettabile per il volo f se:
Esiste uno slot ri per ogni i ∈ Sf con E if ≤ Uri
Iri e Uri per ogni coppia i , j di settori consecutivi in Sf sonocompatibili con il tempo di volo E j
f − E if
Il ritardo dqff è vincolato tra 0 e un valore massimo MaxDelf , oltre il
quale il costo diventa eccessivo e il volo viene cancellato.
Matteo Buriola (UNITS) Algoritmo distribuito per traffico aereo 10 Marzo 2016 6 / 22
Voli e rotte
Una serie qf = [r1, . . . , r|Sf |] di slot deve essere assegnata ad ogni volo,tenendo conto che uno slot ri può essere assegnato al volo f solo setermina dopo E i
f , cioè E if ≤ Uri , ∀ri ∈ qf , i ∈ Sf .
Uno slot qf può causare un ritardo al volo f pari a
Definiamo quindi il ritardo dqff della serie qf come
d fqf = max
i∈Sf
{max(Iri − E if ,0)}
Ogni ritardo dqff causa un costo C(f ,qf ) ≥ 0.
Diciamo che una serie qf è accettabile per il volo f se:
Esiste uno slot ri per ogni i ∈ Sf con E if ≤ Uri
Iri e Uri per ogni coppia i , j di settori consecutivi in Sf sonocompatibili con il tempo di volo E j
f − E if
Il ritardo dqff è vincolato tra 0 e un valore massimo MaxDelf , oltre il
quale il costo diventa eccessivo e il volo viene cancellato.
Matteo Buriola (UNITS) Algoritmo distribuito per traffico aereo 10 Marzo 2016 6 / 22
Voli e rotte
Una serie qf = [r1, . . . , r|Sf |] di slot deve essere assegnata ad ogni volo,tenendo conto che uno slot ri può essere assegnato al volo f solo setermina dopo E i
f , cioè E if ≤ Uri , ∀ri ∈ qf , i ∈ Sf .
Uno slot qf può causare un ritardo al volo f pari a
Definiamo quindi il ritardo dqff della serie qf come
d fqf = max
i∈Sf
{max(Iri − E if ,0)}
Ogni ritardo dqff causa un costo C(f ,qf ) ≥ 0.
Diciamo che una serie qf è accettabile per il volo f se:
Esiste uno slot ri per ogni i ∈ Sf con E if ≤ Uri
Iri e Uri per ogni coppia i , j di settori consecutivi in Sf sonocompatibili con il tempo di volo E j
f − E if
Il ritardo dqff è vincolato tra 0 e un valore massimo MaxDelf , oltre il
quale il costo diventa eccessivo e il volo viene cancellato.
Matteo Buriola (UNITS) Algoritmo distribuito per traffico aereo 10 Marzo 2016 6 / 22
Voli e rotte
Una serie qf = [r1, . . . , r|Sf |] di slot deve essere assegnata ad ogni volo,tenendo conto che uno slot ri può essere assegnato al volo f solo setermina dopo E i
f , cioè E if ≤ Uri , ∀ri ∈ qf , i ∈ Sf .
Uno slot qf può causare un ritardo al volo f pari a
Definiamo quindi il ritardo dqff della serie qf come
d fqf = max
i∈Sf
{max(Iri − E if ,0)}
Ogni ritardo dqff causa un costo C(f ,qf ) ≥ 0.
Diciamo che una serie qf è accettabile per il volo f se:
Esiste uno slot ri per ogni i ∈ Sf con E if ≤ Uri
Iri e Uri per ogni coppia i , j di settori consecutivi in Sf sonocompatibili con il tempo di volo E j
f − E if
Il ritardo dqff è vincolato tra 0 e un valore massimo MaxDelf , oltre il
quale il costo diventa eccessivo e il volo viene cancellato.
Matteo Buriola (UNITS) Algoritmo distribuito per traffico aereo 10 Marzo 2016 6 / 22
Voli e rotte
Una serie qf = [r1, . . . , r|Sf |] di slot deve essere assegnata ad ogni volo,tenendo conto che uno slot ri può essere assegnato al volo f solo setermina dopo E i
f , cioè E if ≤ Uri , ∀ri ∈ qf , i ∈ Sf .
Uno slot qf può causare un ritardo al volo f pari a
Definiamo quindi il ritardo dqff della serie qf come
d fqf = max
i∈Sf
{max(Iri − E if ,0)}
Ogni ritardo dqff causa un costo C(f ,qf ) ≥ 0.
Diciamo che una serie qf è accettabile per il volo f se:
Esiste uno slot ri per ogni i ∈ Sf con E if ≤ Uri
Iri e Uri per ogni coppia i , j di settori consecutivi in Sf sonocompatibili con il tempo di volo E j
f − E if
Il ritardo dqff è vincolato tra 0 e un valore massimo MaxDelf , oltre il
quale il costo diventa eccessivo e il volo viene cancellato.
Matteo Buriola (UNITS) Algoritmo distribuito per traffico aereo 10 Marzo 2016 6 / 22
Voli e rotte
Una serie qf = [r1, . . . , r|Sf |] di slot deve essere assegnata ad ogni volo,tenendo conto che uno slot ri può essere assegnato al volo f solo setermina dopo E i
f , cioè E if ≤ Uri , ∀ri ∈ qf , i ∈ Sf .
Uno slot qf può causare un ritardo al volo f pari a
Definiamo quindi il ritardo dqff della serie qf come
d fqf = max
i∈Sf
{max(Iri − E if ,0)}
Ogni ritardo dqff causa un costo C(f ,qf ) ≥ 0.
Diciamo che una serie qf è accettabile per il volo f se:
Esiste uno slot ri per ogni i ∈ Sf con E if ≤ Uri
Iri e Uri per ogni coppia i , j di settori consecutivi in Sf sonocompatibili con il tempo di volo E j
f − E if
Il ritardo dqff è vincolato tra 0 e un valore massimo MaxDelf , oltre il
quale il costo diventa eccessivo e il volo viene cancellato.
Matteo Buriola (UNITS) Algoritmo distribuito per traffico aereo 10 Marzo 2016 6 / 22
Voli e rotte
Una serie qf = [r1, . . . , r|Sf |] di slot deve essere assegnata ad ogni volo,tenendo conto che uno slot ri può essere assegnato al volo f solo setermina dopo E i
f , cioè E if ≤ Uri , ∀ri ∈ qf , i ∈ Sf .
Uno slot qf può causare un ritardo al volo f pari a
Definiamo quindi il ritardo dqff della serie qf come
d fqf = max
i∈Sf
{max(Iri − E if ,0)}
Ogni ritardo dqff causa un costo C(f ,qf ) ≥ 0.
Diciamo che una serie qf è accettabile per il volo f se:
Esiste uno slot ri per ogni i ∈ Sf con E if ≤ Uri
Iri e Uri per ogni coppia i , j di settori consecutivi in Sf sonocompatibili con il tempo di volo E j
f − E if
Il ritardo dqff è vincolato tra 0 e un valore massimo MaxDelf , oltre il
quale il costo diventa eccessivo e il volo viene cancellato.Matteo Buriola (UNITS) Algoritmo distribuito per traffico aereo 10 Marzo 2016 6 / 22
Problema
Trovare una serie di rotte X ∗ = {q∗1, . . . ,q∗F} che minimizzino il costototale dei ritardi
∑f∈F C(f ,q∗)
ZIP = min∑f∈F
∑q∈Qf
C(f ,q)x(f ,q)
∑f∈F
∑q∈Qf :q3r
x(f ,q) ≤ 1 ∀r ∈ L
∑q∈Qf
x(f ,q) = 1 ∀f ∈ F
x(f ,q) ∈ {0,1} ∀f ∈ F ,q ∈ Qf
Matteo Buriola (UNITS) Algoritmo distribuito per traffico aereo 10 Marzo 2016 7 / 22
Problema
Trovare una serie di rotte X ∗ = {q∗1, . . . ,q∗F} che minimizzino il costototale dei ritardi
∑f∈F C(f ,q∗)
ZIP = min∑f∈F
∑q∈Qf
C(f ,q)x(f ,q)
∑f∈F
∑q∈Qf :q3r
x(f ,q) ≤ 1 ∀r ∈ L
∑q∈Qf
x(f ,q) = 1 ∀f ∈ F
x(f ,q) ∈ {0,1} ∀f ∈ F ,q ∈ Qf
Matteo Buriola (UNITS) Algoritmo distribuito per traffico aereo 10 Marzo 2016 7 / 22
Problema
Trovare una serie di rotte X ∗ = {q∗1, . . . ,q∗F} che minimizzino il costototale dei ritardi
∑f∈F C(f ,q∗)
ZIP = min∑f∈F
∑q∈Qf
C(f ,q)x(f ,q)
∑f∈F
∑q∈Qf :q3r
x(f ,q) ≤ 1 ∀r ∈ L
∑q∈Qf
x(f ,q) = 1 ∀f ∈ F
x(f ,q) ∈ {0,1} ∀f ∈ F ,q ∈ Qf
Matteo Buriola (UNITS) Algoritmo distribuito per traffico aereo 10 Marzo 2016 7 / 22
Problema
Trovare una serie di rotte X ∗ = {q∗1, . . . ,q∗F} che minimizzino il costototale dei ritardi
∑f∈F C(f ,q∗)
ZIP = min∑f∈F
∑q∈Qf
C(f ,q)x(f ,q)
∑f∈F
∑q∈Qf :q3r
x(f ,q) ≤ 1 ∀r ∈ L
∑q∈Qf
x(f ,q) = 1 ∀f ∈ F
x(f ,q) ∈ {0,1} ∀f ∈ F ,q ∈ Qf
Matteo Buriola (UNITS) Algoritmo distribuito per traffico aereo 10 Marzo 2016 7 / 22
Problema
Trovare una serie di rotte X ∗ = {q∗1, . . . ,q∗F} che minimizzino il costototale dei ritardi
∑f∈F C(f ,q∗)
ZIP = min∑f∈F
∑q∈Qf
C(f ,q)x(f ,q)
∑f∈F
∑q∈Qf :q3r
x(f ,q) ≤ 1 ∀r ∈ L
∑q∈Qf
x(f ,q) = 1 ∀f ∈ F
x(f ,q) ∈ {0,1} ∀f ∈ F ,q ∈ Qf
Matteo Buriola (UNITS) Algoritmo distribuito per traffico aereo 10 Marzo 2016 7 / 22
Problema
Trovare una serie di rotte X ∗ = {q∗1, . . . ,q∗F} che minimizzino il costototale dei ritardi
∑f∈F C(f ,q∗)
ZIP = min∑f∈F
∑q∈Qf
C(f ,q)x(f ,q)
∑f∈F
∑q∈Qf :q3r
x(f ,q) ≤ 1 ∀r ∈ L
∑q∈Qf
x(f ,q) = 1 ∀f ∈ F
x(f ,q) ∈ {0,1} ∀f ∈ F ,q ∈ Qf
Matteo Buriola (UNITS) Algoritmo distribuito per traffico aereo 10 Marzo 2016 7 / 22
Scambio di rotte
Il Network Manager risolve il problema e calcola i prezzi della rotteP = {p(q∗1), . . . ,p(q∗F )}.
Questo metodo non soddisfa la proprietà IR
Si procede in due passi
si assegna, senza nessun costo, un insieme di rotteA = {a1, . . . ,aF} ai voli, seguendo lo standard FPFSsi permette lo scambio di rotte tra i voli. Ogni volo per cui af 6= q∗fpaga il prezzo p(q∗f ) per la sua rotta ottimale e riceve p(af ) comerimborso per la restituzione della rotta af , variando così il suoprofitto di
∆u(f ,e∗) = [C(f ,af )− C(f ,q∗f )]− [p(q∗f )− p(af )] =
= −C(f ,e∗f )− p(e∗f )
Matteo Buriola (UNITS) Algoritmo distribuito per traffico aereo 10 Marzo 2016 8 / 22
Scambio di rotte
Il Network Manager risolve il problema e calcola i prezzi della rotteP = {p(q∗1), . . . ,p(q∗F )}. Questo metodo non soddisfa la proprietà IR
Si procede in due passi
si assegna, senza nessun costo, un insieme di rotteA = {a1, . . . ,aF} ai voli, seguendo lo standard FPFSsi permette lo scambio di rotte tra i voli. Ogni volo per cui af 6= q∗fpaga il prezzo p(q∗f ) per la sua rotta ottimale e riceve p(af ) comerimborso per la restituzione della rotta af , variando così il suoprofitto di
∆u(f ,e∗) = [C(f ,af )− C(f ,q∗f )]− [p(q∗f )− p(af )] =
= −C(f ,e∗f )− p(e∗f )
Matteo Buriola (UNITS) Algoritmo distribuito per traffico aereo 10 Marzo 2016 8 / 22
Scambio di rotte
Il Network Manager risolve il problema e calcola i prezzi della rotteP = {p(q∗1), . . . ,p(q∗F )}. Questo metodo non soddisfa la proprietà IR
Si procede in due passisi assegna, senza nessun costo, un insieme di rotteA = {a1, . . . ,aF} ai voli, seguendo lo standard FPFS
si permette lo scambio di rotte tra i voli. Ogni volo per cui af 6= q∗fpaga il prezzo p(q∗f ) per la sua rotta ottimale e riceve p(af ) comerimborso per la restituzione della rotta af , variando così il suoprofitto di
∆u(f ,e∗) = [C(f ,af )− C(f ,q∗f )]− [p(q∗f )− p(af )] =
= −C(f ,e∗f )− p(e∗f )
Matteo Buriola (UNITS) Algoritmo distribuito per traffico aereo 10 Marzo 2016 8 / 22
Scambio di rotte
Il Network Manager risolve il problema e calcola i prezzi della rotteP = {p(q∗1), . . . ,p(q∗F )}. Questo metodo non soddisfa la proprietà IR
Si procede in due passisi assegna, senza nessun costo, un insieme di rotteA = {a1, . . . ,aF} ai voli, seguendo lo standard FPFSsi permette lo scambio di rotte tra i voli. Ogni volo per cui af 6= q∗fpaga il prezzo p(q∗f ) per la sua rotta ottimale e riceve p(af ) comerimborso per la restituzione della rotta af , variando così il suoprofitto di
∆u(f ,e∗) = [C(f ,af )− C(f ,q∗f )]− [p(q∗f )− p(af )] =
= −C(f ,e∗f )− p(e∗f )
Matteo Buriola (UNITS) Algoritmo distribuito per traffico aereo 10 Marzo 2016 8 / 22
Algoritmo FPFS
L’assegnazione A = {a1, . . . ,aF} viene eseguita secondo l’algoritmoFirst Planned First Served
1 Per ogni settore s, gli slot verranno assegnati ai voli secondo illoro orario d’ingresso previsto in s, quindi ogni volo otterrà il primoslot utile non ancora assegnato.
2 Se un volo attraversa più settori si sceglie, tra tutti gli slot a luiassegnati, quello che causa il ritardo maggiore, cioè viene presala rotta più penalizzante, e si modificano gli altri suoi slot peradeguarsi a questa rotta.
3 Si decide un ordine di priorità per tutti i voli coinvolti.4 Seguendo l’ordine del passo 3, ad ogni volo viene assegnata
definitivamente la rotta scelta al passo 2; se uno slot dovesserisultare già occupato gli viene assegnato il migliore tra quellisuccessivi ed ancora disponibili, con conseguente modifica dellarotta e del ritardo.
Matteo Buriola (UNITS) Algoritmo distribuito per traffico aereo 10 Marzo 2016 9 / 22
Algoritmo FPFS
L’assegnazione A = {a1, . . . ,aF} viene eseguita secondo l’algoritmoFirst Planned First Served
1 Per ogni settore s, gli slot verranno assegnati ai voli secondo illoro orario d’ingresso previsto in s, quindi ogni volo otterrà il primoslot utile non ancora assegnato.
2 Se un volo attraversa più settori si sceglie, tra tutti gli slot a luiassegnati, quello che causa il ritardo maggiore, cioè viene presala rotta più penalizzante, e si modificano gli altri suoi slot peradeguarsi a questa rotta.
3 Si decide un ordine di priorità per tutti i voli coinvolti.4 Seguendo l’ordine del passo 3, ad ogni volo viene assegnata
definitivamente la rotta scelta al passo 2; se uno slot dovesserisultare già occupato gli viene assegnato il migliore tra quellisuccessivi ed ancora disponibili, con conseguente modifica dellarotta e del ritardo.
Matteo Buriola (UNITS) Algoritmo distribuito per traffico aereo 10 Marzo 2016 9 / 22
Algoritmo FPFS
L’assegnazione A = {a1, . . . ,aF} viene eseguita secondo l’algoritmoFirst Planned First Served
1 Per ogni settore s, gli slot verranno assegnati ai voli secondo illoro orario d’ingresso previsto in s, quindi ogni volo otterrà il primoslot utile non ancora assegnato.
2 Se un volo attraversa più settori si sceglie, tra tutti gli slot a luiassegnati, quello che causa il ritardo maggiore, cioè viene presala rotta più penalizzante, e si modificano gli altri suoi slot peradeguarsi a questa rotta.
3 Si decide un ordine di priorità per tutti i voli coinvolti.4 Seguendo l’ordine del passo 3, ad ogni volo viene assegnata
definitivamente la rotta scelta al passo 2; se uno slot dovesserisultare già occupato gli viene assegnato il migliore tra quellisuccessivi ed ancora disponibili, con conseguente modifica dellarotta e del ritardo.
Matteo Buriola (UNITS) Algoritmo distribuito per traffico aereo 10 Marzo 2016 9 / 22
Algoritmo FPFS
L’assegnazione A = {a1, . . . ,aF} viene eseguita secondo l’algoritmoFirst Planned First Served
1 Per ogni settore s, gli slot verranno assegnati ai voli secondo illoro orario d’ingresso previsto in s, quindi ogni volo otterrà il primoslot utile non ancora assegnato.
2 Se un volo attraversa più settori si sceglie, tra tutti gli slot a luiassegnati, quello che causa il ritardo maggiore, cioè viene presala rotta più penalizzante, e si modificano gli altri suoi slot peradeguarsi a questa rotta.
3 Si decide un ordine di priorità per tutti i voli coinvolti.
4 Seguendo l’ordine del passo 3, ad ogni volo viene assegnatadefinitivamente la rotta scelta al passo 2; se uno slot dovesserisultare già occupato gli viene assegnato il migliore tra quellisuccessivi ed ancora disponibili, con conseguente modifica dellarotta e del ritardo.
Matteo Buriola (UNITS) Algoritmo distribuito per traffico aereo 10 Marzo 2016 9 / 22
Algoritmo FPFS
L’assegnazione A = {a1, . . . ,aF} viene eseguita secondo l’algoritmoFirst Planned First Served
1 Per ogni settore s, gli slot verranno assegnati ai voli secondo illoro orario d’ingresso previsto in s, quindi ogni volo otterrà il primoslot utile non ancora assegnato.
2 Se un volo attraversa più settori si sceglie, tra tutti gli slot a luiassegnati, quello che causa il ritardo maggiore, cioè viene presala rotta più penalizzante, e si modificano gli altri suoi slot peradeguarsi a questa rotta.
3 Si decide un ordine di priorità per tutti i voli coinvolti.4 Seguendo l’ordine del passo 3, ad ogni volo viene assegnata
definitivamente la rotta scelta al passo 2; se uno slot dovesserisultare già occupato gli viene assegnato il migliore tra quellisuccessivi ed ancora disponibili, con conseguente modifica dellarotta e del ritardo.
Matteo Buriola (UNITS) Algoritmo distribuito per traffico aereo 10 Marzo 2016 9 / 22
Problema con scambi
Possiamo riformulare il nostro problema includendo gli scambi.
ZIP−E = max∑f∈F
∑q∈Qf
V (f ,q)x(f ,q)
∑f∈F
∑q∈Qf :q3r
x(f ,q) ≤ 1 ∀r ∈ L
∑q∈Qf
x(f ,q) = 1 ∀f ∈ F
x(f ,q) ∈ {0,1} ∀f ∈ F ,q ∈ Qf
dove V (f ,q) = C(f ,af )− C(f ,q)
Il problema è NP-Hard
Matteo Buriola (UNITS) Algoritmo distribuito per traffico aereo 10 Marzo 2016 10 / 22
Problema con scambi
Possiamo riformulare il nostro problema includendo gli scambi.
ZIP−E = max∑f∈F
∑q∈Qf
V (f ,q)x(f ,q)
∑f∈F
∑q∈Qf :q3r
x(f ,q) ≤ 1 ∀r ∈ L
∑q∈Qf
x(f ,q) = 1 ∀f ∈ F
x(f ,q) ∈ {0,1} ∀f ∈ F ,q ∈ Qf
dove V (f ,q) = C(f ,af )− C(f ,q)
Il problema è NP-Hard
Matteo Buriola (UNITS) Algoritmo distribuito per traffico aereo 10 Marzo 2016 10 / 22
Problema con scambi
Possiamo riformulare il nostro problema includendo gli scambi.
ZIP−E = max∑f∈F
∑q∈Qf
V (f ,q)x(f ,q)
∑f∈F
∑q∈Qf :q3r
x(f ,q) ≤ 1 ∀r ∈ L
∑q∈Qf
x(f ,q) = 1 ∀f ∈ F
x(f ,q) ∈ {0,1} ∀f ∈ F ,q ∈ Qf
dove V (f ,q) = C(f ,af )− C(f ,q)
Il problema è NP-Hard
Matteo Buriola (UNITS) Algoritmo distribuito per traffico aereo 10 Marzo 2016 10 / 22
Problema con scambi
Possiamo riformulare il nostro problema includendo gli scambi.
ZIP−E = max∑f∈F
∑q∈Qf
V (f ,q)x(f ,q)
∑f∈F
∑q∈Qf :q3r
x(f ,q) ≤ 1 ∀r ∈ L
∑q∈Qf
x(f ,q) = 1 ∀f ∈ F
x(f ,q) ∈ {0,1} ∀f ∈ F ,q ∈ Qf
dove V (f ,q) = C(f ,af )− C(f ,q)
Il problema è NP-Hard
Matteo Buriola (UNITS) Algoritmo distribuito per traffico aereo 10 Marzo 2016 10 / 22
Algoritmo Distribuito
La risoluzione del problema può essere impraticabile perchè:
le compagnie aeree sono restie a rivelare i loro costiil peso computazionale ricade tutto sul Network Manager
Soluzione proposta
Calcolo dei prezziIl Network Managercalcola i prezzi sullabase della domanda.
=⇒⇐=
Ottimizzazione localeLe compagnie aereescelgono quale rottascambiare sulla basedei loro costi e deiprezzi
Matteo Buriola (UNITS) Algoritmo distribuito per traffico aereo 10 Marzo 2016 11 / 22
Algoritmo Distribuito
La risoluzione del problema può essere impraticabile perchè:le compagnie aeree sono restie a rivelare i loro costi
il peso computazionale ricade tutto sul Network Manager
Soluzione proposta
Calcolo dei prezziIl Network Managercalcola i prezzi sullabase della domanda.
=⇒⇐=
Ottimizzazione localeLe compagnie aereescelgono quale rottascambiare sulla basedei loro costi e deiprezzi
Matteo Buriola (UNITS) Algoritmo distribuito per traffico aereo 10 Marzo 2016 11 / 22
Algoritmo Distribuito
La risoluzione del problema può essere impraticabile perchè:le compagnie aeree sono restie a rivelare i loro costiil peso computazionale ricade tutto sul Network Manager
Soluzione proposta
Calcolo dei prezziIl Network Managercalcola i prezzi sullabase della domanda.
=⇒⇐=
Ottimizzazione localeLe compagnie aereescelgono quale rottascambiare sulla basedei loro costi e deiprezzi
Matteo Buriola (UNITS) Algoritmo distribuito per traffico aereo 10 Marzo 2016 11 / 22
Algoritmo Distribuito
La risoluzione del problema può essere impraticabile perchè:le compagnie aeree sono restie a rivelare i loro costiil peso computazionale ricade tutto sul Network Manager
Soluzione proposta
Calcolo dei prezziIl Network Managercalcola i prezzi sullabase della domanda.
=⇒⇐=
Ottimizzazione localeLe compagnie aereescelgono quale rottascambiare sulla basedei loro costi e deiprezzi
Matteo Buriola (UNITS) Algoritmo distribuito per traffico aereo 10 Marzo 2016 11 / 22
Algoritmo Distribuito
La risoluzione del problema può essere impraticabile perchè:le compagnie aeree sono restie a rivelare i loro costiil peso computazionale ricade tutto sul Network Manager
Soluzione proposta
Calcolo dei prezziIl Network Managercalcola i prezzi sullabase della domanda.
=⇒⇐=
Ottimizzazione localeLe compagnie aereescelgono quale rottascambiare sulla basedei loro costi e deiprezzi
Matteo Buriola (UNITS) Algoritmo distribuito per traffico aereo 10 Marzo 2016 11 / 22
Algoritmo Distribuito
La risoluzione del problema può essere impraticabile perchè:le compagnie aeree sono restie a rivelare i loro costiil peso computazionale ricade tutto sul Network Manager
Soluzione proposta
Calcolo dei prezziIl Network Managercalcola i prezzi sullabase della domanda.
=⇒
⇐=
Ottimizzazione localeLe compagnie aereescelgono quale rottascambiare sulla basedei loro costi e deiprezzi
Matteo Buriola (UNITS) Algoritmo distribuito per traffico aereo 10 Marzo 2016 11 / 22
Algoritmo Distribuito
La risoluzione del problema può essere impraticabile perchè:le compagnie aeree sono restie a rivelare i loro costiil peso computazionale ricade tutto sul Network Manager
Soluzione proposta
Calcolo dei prezziIl Network Managercalcola i prezzi sullabase della domanda.
=⇒⇐=
Ottimizzazione localeLe compagnie aereescelgono quale rottascambiare sulla basedei loro costi e deiprezzi
Matteo Buriola (UNITS) Algoritmo distribuito per traffico aereo 10 Marzo 2016 11 / 22
Formulazione Lagrangiana
Rilassando il vincolo sugli slot otteniamo la seguente formulazione
ZLRLP−E (λ) = max∑f∈F
∑q∈Qf
V (f ,q)x(f ,q) +
∑r∈L
λr (1−∑f∈F
∑q∈Qf :q3r
x(f ,q))
∑q∈Qf
x(f ,q) = 1 ∀f ∈ F
x(f ,q) ∈ {0,1} ∀f ∈ F ,q ∈ Qf
Dove i valori λr rappresentano i prezzi degli slot.
Matteo Buriola (UNITS) Algoritmo distribuito per traffico aereo 10 Marzo 2016 12 / 22
Formulazione Lagrangiana
Rilassando il vincolo sugli slot otteniamo la seguente formulazione
ZLRLP−E (λ) = max∑f∈F
∑q∈Qf
V (f ,q)x(f ,q) +
∑r∈L
λr (1−∑f∈F
∑q∈Qf :q3r
x(f ,q))
∑q∈Qf
x(f ,q) = 1 ∀f ∈ F
x(f ,q) ∈ {0,1} ∀f ∈ F ,q ∈ Qf
Dove i valori λr rappresentano i prezzi degli slot.
Matteo Buriola (UNITS) Algoritmo distribuito per traffico aereo 10 Marzo 2016 12 / 22
Formulazione Lagrangiana
Rilassando il vincolo sugli slot otteniamo la seguente formulazione
ZLRLP−E (λ) = max∑f∈F
∑q∈Qf
V (f ,q)x(f ,q) +
∑r∈L
λr (1−∑f∈F
∑q∈Qf :q3r
x(f ,q))
∑q∈Qf
x(f ,q) = 1 ∀f ∈ F
x(f ,q) ∈ {0,1} ∀f ∈ F ,q ∈ Qf
Dove i valori λr rappresentano i prezzi degli slot.
Matteo Buriola (UNITS) Algoritmo distribuito per traffico aereo 10 Marzo 2016 12 / 22
Ricerca delle rotte
Le compagnie aeree devono risolvere per ogni volo il problema
ZLRLP−E (f , λ) = max∑q∈Qf
[V (f ,q)−∑r∈q
λr +∑r∈af
λr ]x(f ,q)
∑q∈Qf
x(f ,q) = 1
x(f ,q) ≥ 0 ∀q ∈ Qf
La soluzione è individuabile in tempo polinomiale, per ispezione, noti iprezzi λr
ZLRLP−E (f , λ) = maxq∈Qf
[V (f ,q)−∑r∈q
λr +∑r∈af
λr ]
Matteo Buriola (UNITS) Algoritmo distribuito per traffico aereo 10 Marzo 2016 13 / 22
Ricerca delle rotte
Le compagnie aeree devono risolvere per ogni volo il problema
ZLRLP−E (f , λ) = max∑q∈Qf
[V (f ,q)−∑r∈q
λr +∑r∈af
λr ]x(f ,q)
∑q∈Qf
x(f ,q) = 1
x(f ,q) ≥ 0 ∀q ∈ Qf
La soluzione è individuabile in tempo polinomiale, per ispezione, noti iprezzi λr
ZLRLP−E (f , λ) = maxq∈Qf
[V (f ,q)−∑r∈q
λr +∑r∈af
λr ]
Matteo Buriola (UNITS) Algoritmo distribuito per traffico aereo 10 Marzo 2016 13 / 22
Ricerca delle rotte
Le compagnie aeree devono risolvere per ogni volo il problema
ZLRLP−E (f , λ) = max∑q∈Qf
[V (f ,q)−∑r∈q
λr +∑r∈af
λr ]x(f ,q)
∑q∈Qf
x(f ,q) = 1
x(f ,q) ≥ 0 ∀q ∈ Qf
La soluzione è individuabile in tempo polinomiale, per ispezione, noti iprezzi λr
ZLRLP−E (f , λ) = maxq∈Qf
[V (f ,q)−∑r∈q
λr +∑r∈af
λr ]
Matteo Buriola (UNITS) Algoritmo distribuito per traffico aereo 10 Marzo 2016 13 / 22
Calcolo dei prezzi
Il Network Manager deve invece calcolare i prezzi λ.
Ciò avviene tramite un algoritmo subgradiente
λt+1r = max(0, λt
r − Φt · SGtr )
SGtr = 1−
∑f∈F ,q∈Qf :q3r
x t (f ,q)
Con il passo
Φt =θt (ZLRLP−E (λt )− Z ∗IP−E )∑
s∈S∑
r∈Ls(1−
∑f∈F
∑q∈Qf :q3r x t (f ,q))2
Matteo Buriola (UNITS) Algoritmo distribuito per traffico aereo 10 Marzo 2016 14 / 22
Calcolo dei prezzi
Il Network Manager deve invece calcolare i prezzi λ.
Ciò avviene tramite un algoritmo subgradiente
λt+1r = max(0, λt
r − Φt · SGtr )
SGtr = 1−
∑f∈F ,q∈Qf :q3r
x t (f ,q)
Con il passo
Φt =θt (ZLRLP−E (λt )− Z ∗IP−E )∑
s∈S∑
r∈Ls(1−
∑f∈F
∑q∈Qf :q3r x t (f ,q))2
Matteo Buriola (UNITS) Algoritmo distribuito per traffico aereo 10 Marzo 2016 14 / 22
Calcolo dei prezzi
Il Network Manager deve invece calcolare i prezzi λ.
Ciò avviene tramite un algoritmo subgradiente
λt+1r = max(0, λt
r − Φt · SGtr )
SGtr = 1−
∑f∈F ,q∈Qf :q3r
x t (f ,q)
Con il passo
Φt =θt (ZLRLP−E (λt )− Z ∗IP−E )∑
s∈S∑
r∈Ls(1−
∑f∈F
∑q∈Qf :q3r x t (f ,q))2
Matteo Buriola (UNITS) Algoritmo distribuito per traffico aereo 10 Marzo 2016 14 / 22
Stima dei limiti
Φt =θt (UBZ ∗ − ZLBIP−E )∑
s∈S∑
r∈Ls(1−
∑f∈F
∑q∈Qf :q3r x t (f ,q))2
Doveθt = 2 per t = 0 e successivamente dimezzatoUBZ ∗ è un limite superiore del valore ottimo degli scambi.Funzione di F e S e costante durante tutte le iterazioni.
UBZ ∗ = |S| · |F| · |Q|
ZLBIP−E è un limite inferiore del valore ottimo degli scambi cheviene perfezionato ad ogni iterazione.
Per ogni f ∈ F e q ∈ Qf , all’iterazione t il Network Manager puòcalcolare un limite inferiore LBt (f ,q) per lo scambio.
Matteo Buriola (UNITS) Algoritmo distribuito per traffico aereo 10 Marzo 2016 15 / 22
Stima dei limiti
Φt =θt (UBZ ∗ − ZLBIP−E )∑
s∈S∑
r∈Ls(1−
∑f∈F
∑q∈Qf :q3r x t (f ,q))2
Doveθt = 2 per t = 0 e successivamente dimezzato
UBZ ∗ è un limite superiore del valore ottimo degli scambi.Funzione di F e S e costante durante tutte le iterazioni.
UBZ ∗ = |S| · |F| · |Q|
ZLBIP−E è un limite inferiore del valore ottimo degli scambi cheviene perfezionato ad ogni iterazione.
Per ogni f ∈ F e q ∈ Qf , all’iterazione t il Network Manager puòcalcolare un limite inferiore LBt (f ,q) per lo scambio.
Matteo Buriola (UNITS) Algoritmo distribuito per traffico aereo 10 Marzo 2016 15 / 22
Stima dei limiti
Φt =θt (UBZ ∗ − ZLBIP−E )∑
s∈S∑
r∈Ls(1−
∑f∈F
∑q∈Qf :q3r x t (f ,q))2
Doveθt = 2 per t = 0 e successivamente dimezzatoUBZ ∗ è un limite superiore del valore ottimo degli scambi.Funzione di F e S e costante durante tutte le iterazioni.
UBZ ∗ = |S| · |F| · |Q|
ZLBIP−E è un limite inferiore del valore ottimo degli scambi cheviene perfezionato ad ogni iterazione.
Per ogni f ∈ F e q ∈ Qf , all’iterazione t il Network Manager puòcalcolare un limite inferiore LBt (f ,q) per lo scambio.
Matteo Buriola (UNITS) Algoritmo distribuito per traffico aereo 10 Marzo 2016 15 / 22
Stima dei limiti
Φt =θt (UBZ ∗ − ZLBIP−E )∑
s∈S∑
r∈Ls(1−
∑f∈F
∑q∈Qf :q3r x t (f ,q))2
Doveθt = 2 per t = 0 e successivamente dimezzatoUBZ ∗ è un limite superiore del valore ottimo degli scambi.Funzione di F e S e costante durante tutte le iterazioni.
UBZ ∗ = |S| · |F| · |Q|
ZLBIP−E è un limite inferiore del valore ottimo degli scambi cheviene perfezionato ad ogni iterazione.
Per ogni f ∈ F e q ∈ Qf , all’iterazione t il Network Manager puòcalcolare un limite inferiore LBt (f ,q) per lo scambio.
Matteo Buriola (UNITS) Algoritmo distribuito per traffico aereo 10 Marzo 2016 15 / 22
Stima dei limiti
Φt =θt (UBZ ∗ − ZLBIP−E )∑
s∈S∑
r∈Ls(1−
∑f∈F
∑q∈Qf :q3r x t (f ,q))2
Doveθt = 2 per t = 0 e successivamente dimezzatoUBZ ∗ è un limite superiore del valore ottimo degli scambi.Funzione di F e S e costante durante tutte le iterazioni.
UBZ ∗ = |S| · |F| · |Q|
ZLBIP−E è un limite inferiore del valore ottimo degli scambi cheviene perfezionato ad ogni iterazione.
Per ogni f ∈ F e q ∈ Qf , all’iterazione t il Network Manager puòcalcolare un limite inferiore LBt (f ,q) per lo scambio.
Matteo Buriola (UNITS) Algoritmo distribuito per traffico aereo 10 Marzo 2016 15 / 22
Stima dei limiti
Φt =θt (UBZ ∗ − ZLBIP−E )∑
s∈S∑
r∈Ls(1−
∑f∈F
∑q∈Qf :q3r x t (f ,q))2
Doveθt = 2 per t = 0 e successivamente dimezzatoUBZ ∗ è un limite superiore del valore ottimo degli scambi.Funzione di F e S e costante durante tutte le iterazioni.
UBZ ∗ = |S| · |F| · |Q|
ZLBIP−E è un limite inferiore del valore ottimo degli scambi cheviene perfezionato ad ogni iterazione.
Per ogni f ∈ F e q ∈ Qf , all’iterazione t il Network Manager puòcalcolare un limite inferiore LBt (f ,q) per lo scambio.
Matteo Buriola (UNITS) Algoritmo distribuito per traffico aereo 10 Marzo 2016 15 / 22
Calcolo di LBt
Per fare ciò definiamo:
p(q,af , λt ) =
{ ∑r∈q λ
tr −
∑r∈af
λtr se x t (f ,q) = 1
−∞ altrimenti
come l’ammontare che il volo f accetta di pagare per la rotta q aiprezzi fissati all’iterazione t;
LBt (f ,q) = max{p(q,af , λt ),LBt−1(f ,q), max
q∈Q̂f (q){LBt (f ,q)}}
dove Q̂f (q) è l’insieme delle rotte che inducono al volo f unritardo non inferiore a quello causato da q.
inizializzato con
LB0(f ,q) =
{0 se q ∈ Q̂(af ) ∪ {af}−∞ altrimenti
Matteo Buriola (UNITS) Algoritmo distribuito per traffico aereo 10 Marzo 2016 16 / 22
Calcolo di LBt
Per fare ciò definiamo:
p(q,af , λt ) =
{ ∑r∈q λ
tr −
∑r∈af
λtr se x t (f ,q) = 1
−∞ altrimenti
come l’ammontare che il volo f accetta di pagare per la rotta q aiprezzi fissati all’iterazione t;
LBt (f ,q) = max{p(q,af , λt ),LBt−1(f ,q), max
q∈Q̂f (q){LBt (f ,q)}}
dove Q̂f (q) è l’insieme delle rotte che inducono al volo f unritardo non inferiore a quello causato da q.
inizializzato con
LB0(f ,q) =
{0 se q ∈ Q̂(af ) ∪ {af}−∞ altrimenti
Matteo Buriola (UNITS) Algoritmo distribuito per traffico aereo 10 Marzo 2016 16 / 22
Calcolo di LBt
Per fare ciò definiamo:
p(q,af , λt ) =
{ ∑r∈q λ
tr −
∑r∈af
λtr se x t (f ,q) = 1
−∞ altrimenti
come l’ammontare che il volo f accetta di pagare per la rotta q aiprezzi fissati all’iterazione t;
LBt (f ,q) = max{p(q,af , λt ),LBt−1(f ,q), max
q∈Q̂f (q){LBt (f ,q)}}
dove Q̂f (q) è l’insieme delle rotte che inducono al volo f unritardo non inferiore a quello causato da q.
inizializzato con
LB0(f ,q) =
{0 se q ∈ Q̂(af ) ∪ {af}−∞ altrimenti
Matteo Buriola (UNITS) Algoritmo distribuito per traffico aereo 10 Marzo 2016 16 / 22
Calcolo di LBt
Per fare ciò definiamo:
p(q,af , λt ) =
{ ∑r∈q λ
tr −
∑r∈af
λtr se x t (f ,q) = 1
−∞ altrimenti
come l’ammontare che il volo f accetta di pagare per la rotta q aiprezzi fissati all’iterazione t;
LBt (f ,q) = max{p(q,af , λt ),LBt−1(f ,q), max
q∈Q̂f (q){LBt (f ,q)}}
dove Q̂f (q) è l’insieme delle rotte che inducono al volo f unritardo non inferiore a quello causato da q.
inizializzato con
LB0(f ,q) =
{0 se q ∈ Q̂(af ) ∪ {af}−∞ altrimenti
Matteo Buriola (UNITS) Algoritmo distribuito per traffico aereo 10 Marzo 2016 16 / 22
Calcolo di LBt
Per fare ciò definiamo:
p(q,af , λt ) =
{ ∑r∈q λ
tr −
∑r∈af
λtr se x t (f ,q) = 1
−∞ altrimenti
come l’ammontare che il volo f accetta di pagare per la rotta q aiprezzi fissati all’iterazione t;
LBt (f ,q) = max{p(q,af , λt ),LBt−1(f ,q), max
q∈Q̂f (q){LBt (f ,q)}}
dove Q̂f (q) è l’insieme delle rotte che inducono al volo f unritardo non inferiore a quello causato da q. inizializzato con
LB0(f ,q) =
{0 se q ∈ Q̂(af ) ∪ {af}−∞ altrimenti
Matteo Buriola (UNITS) Algoritmo distribuito per traffico aereo 10 Marzo 2016 16 / 22
Calcolo di ZLBIP−E
Il Network Manager deve quindi risolvere il seguente problema
ZLBtIP−E = max
∑f∈F
∑q∈Qf
LBt (f ,q)x(f ,q)
∑f∈F
∑q∈Qf :q3r
x(f ,q) ≤ 1 ∀r ∈ L
∑q∈Qf
x(f ,q) = 1 ∀f ∈ F
x(f ,q) ∈ {0,1} ∀f ∈ F ,q ∈ Qf
Il problema è ancora NP-Hardma con alcune caratteristiche che ne facilitano la risoluzione.
Matteo Buriola (UNITS) Algoritmo distribuito per traffico aereo 10 Marzo 2016 17 / 22
Calcolo di ZLBIP−E
Il Network Manager deve quindi risolvere il seguente problema
ZLBtIP−E = max
∑f∈F
∑q∈Qf
LBt (f ,q)x(f ,q)
∑f∈F
∑q∈Qf :q3r
x(f ,q) ≤ 1 ∀r ∈ L
∑q∈Qf
x(f ,q) = 1 ∀f ∈ F
x(f ,q) ∈ {0,1} ∀f ∈ F ,q ∈ Qf
Il problema è ancora NP-Hardma con alcune caratteristiche che ne facilitano la risoluzione.
Matteo Buriola (UNITS) Algoritmo distribuito per traffico aereo 10 Marzo 2016 17 / 22
Calcolo di ZLBIP−E
Il Network Manager deve quindi risolvere il seguente problema
ZLBtIP−E = max
∑f∈F
∑q∈Qf
LBt (f ,q)x(f ,q)
∑f∈F
∑q∈Qf :q3r
x(f ,q) ≤ 1 ∀r ∈ L
∑q∈Qf
x(f ,q) = 1 ∀f ∈ F
x(f ,q) ∈ {0,1} ∀f ∈ F ,q ∈ Qf
Il problema è ancora NP-Hardma con alcune caratteristiche che ne facilitano la risoluzione.
Matteo Buriola (UNITS) Algoritmo distribuito per traffico aereo 10 Marzo 2016 17 / 22
Calcolo di ZLBIP−E
Il Network Manager deve quindi risolvere il seguente problema
ZLBtIP−E = max
∑f∈F
∑q∈Qf
LBt (f ,q)x(f ,q)
∑f∈F
∑q∈Qf :q3r
x(f ,q) ≤ 1 ∀r ∈ L
∑q∈Qf
x(f ,q) = 1 ∀f ∈ F
x(f ,q) ∈ {0,1} ∀f ∈ F ,q ∈ Qf
Il problema è ancora NP-Hard
ma con alcune caratteristiche che ne facilitano la risoluzione.
Matteo Buriola (UNITS) Algoritmo distribuito per traffico aereo 10 Marzo 2016 17 / 22
Calcolo di ZLBIP−E
Il Network Manager deve quindi risolvere il seguente problema
ZLBtIP−E = max
∑f∈F
∑q∈Qf
LBt (f ,q)x(f ,q)
∑f∈F
∑q∈Qf :q3r
x(f ,q) ≤ 1 ∀r ∈ L
∑q∈Qf
x(f ,q) = 1 ∀f ∈ F
x(f ,q) ∈ {0,1} ∀f ∈ F ,q ∈ Qf
Il problema è ancora NP-Hardma con alcune caratteristiche che ne facilitano la risoluzione.
Matteo Buriola (UNITS) Algoritmo distribuito per traffico aereo 10 Marzo 2016 17 / 22
Implementazione
Xpress-Mosel: risoluzione dei problemi di ottimizzazione
Apposite librerie per la trasmissione dei dati
Java: organizzazione dei dati e controllo dell’esecuzione
Classe SlotClasse Sector
Lista ordinata di slot
Classe Route
Tabella con settori attraversati⇒ slot occupati
Classe Flight
Tabella con settori attraversati⇒ orario d’ingressoLista ordinata di rotte
Matteo Buriola (UNITS) Algoritmo distribuito per traffico aereo 10 Marzo 2016 18 / 22
Implementazione
Xpress-Mosel: risoluzione dei problemi di ottimizzazioneApposite librerie per la trasmissione dei dati
Java: organizzazione dei dati e controllo dell’esecuzione
Classe SlotClasse Sector
Lista ordinata di slot
Classe Route
Tabella con settori attraversati⇒ slot occupati
Classe Flight
Tabella con settori attraversati⇒ orario d’ingressoLista ordinata di rotte
Matteo Buriola (UNITS) Algoritmo distribuito per traffico aereo 10 Marzo 2016 18 / 22
Implementazione
Xpress-Mosel: risoluzione dei problemi di ottimizzazioneApposite librerie per la trasmissione dei dati
Java: organizzazione dei dati e controllo dell’esecuzione
Classe SlotClasse Sector
Lista ordinata di slot
Classe Route
Tabella con settori attraversati⇒ slot occupati
Classe Flight
Tabella con settori attraversati⇒ orario d’ingressoLista ordinata di rotte
Matteo Buriola (UNITS) Algoritmo distribuito per traffico aereo 10 Marzo 2016 18 / 22
Implementazione
Xpress-Mosel: risoluzione dei problemi di ottimizzazioneApposite librerie per la trasmissione dei dati
Java: organizzazione dei dati e controllo dell’esecuzione
Classe Slot
Classe Sector
Lista ordinata di slot
Classe Route
Tabella con settori attraversati⇒ slot occupati
Classe Flight
Tabella con settori attraversati⇒ orario d’ingressoLista ordinata di rotte
Matteo Buriola (UNITS) Algoritmo distribuito per traffico aereo 10 Marzo 2016 18 / 22
Implementazione
Xpress-Mosel: risoluzione dei problemi di ottimizzazioneApposite librerie per la trasmissione dei dati
Java: organizzazione dei dati e controllo dell’esecuzione
Classe SlotClasse Sector
Lista ordinata di slot
Classe Route
Tabella con settori attraversati⇒ slot occupati
Classe Flight
Tabella con settori attraversati⇒ orario d’ingressoLista ordinata di rotte
Matteo Buriola (UNITS) Algoritmo distribuito per traffico aereo 10 Marzo 2016 18 / 22
Implementazione
Xpress-Mosel: risoluzione dei problemi di ottimizzazioneApposite librerie per la trasmissione dei dati
Java: organizzazione dei dati e controllo dell’esecuzione
Classe SlotClasse Sector
Lista ordinata di slotClasse Route
Tabella con settori attraversati⇒ slot occupati
Classe Flight
Tabella con settori attraversati⇒ orario d’ingressoLista ordinata di rotte
Matteo Buriola (UNITS) Algoritmo distribuito per traffico aereo 10 Marzo 2016 18 / 22
Implementazione
Xpress-Mosel: risoluzione dei problemi di ottimizzazioneApposite librerie per la trasmissione dei dati
Java: organizzazione dei dati e controllo dell’esecuzione
Classe SlotClasse Sector
Lista ordinata di slotClasse Route
Tabella con settori attraversati⇒ slot occupatiClasse Flight
Tabella con settori attraversati⇒ orario d’ingressoLista ordinata di rotte
Matteo Buriola (UNITS) Algoritmo distribuito per traffico aereo 10 Marzo 2016 18 / 22
Preparazione dei dati
Lettura dei dati da file di testoGenerazione dei settori
Generazione di slot
Generazione dei voliGenerazione delle rotte
Ogni rotta è usabile soltanto da un voloNiente reroutingUna rotta sempre disponibile per garantire una soluzione
Compilazione delle matriciInizializzazione delle librerie
Matteo Buriola (UNITS) Algoritmo distribuito per traffico aereo 10 Marzo 2016 19 / 22
Preparazione dei dati
Lettura dei dati da file di testo
Generazione dei settori
Generazione di slot
Generazione dei voliGenerazione delle rotte
Ogni rotta è usabile soltanto da un voloNiente reroutingUna rotta sempre disponibile per garantire una soluzione
Compilazione delle matriciInizializzazione delle librerie
Matteo Buriola (UNITS) Algoritmo distribuito per traffico aereo 10 Marzo 2016 19 / 22
Preparazione dei dati
Lettura dei dati da file di testoGenerazione dei settori
Generazione di slot
Generazione dei voliGenerazione delle rotte
Ogni rotta è usabile soltanto da un voloNiente reroutingUna rotta sempre disponibile per garantire una soluzione
Compilazione delle matriciInizializzazione delle librerie
Matteo Buriola (UNITS) Algoritmo distribuito per traffico aereo 10 Marzo 2016 19 / 22
Preparazione dei dati
Lettura dei dati da file di testoGenerazione dei settori
Generazione di slot
Generazione dei voli
Generazione delle rotte
Ogni rotta è usabile soltanto da un voloNiente reroutingUna rotta sempre disponibile per garantire una soluzione
Compilazione delle matriciInizializzazione delle librerie
Matteo Buriola (UNITS) Algoritmo distribuito per traffico aereo 10 Marzo 2016 19 / 22
Preparazione dei dati
Lettura dei dati da file di testoGenerazione dei settori
Generazione di slot
Generazione dei voliGenerazione delle rotte
Ogni rotta è usabile soltanto da un voloNiente reroutingUna rotta sempre disponibile per garantire una soluzione
Compilazione delle matriciInizializzazione delle librerie
Matteo Buriola (UNITS) Algoritmo distribuito per traffico aereo 10 Marzo 2016 19 / 22
Preparazione dei dati
Lettura dei dati da file di testoGenerazione dei settori
Generazione di slot
Generazione dei voliGenerazione delle rotte
Ogni rotta è usabile soltanto da un voloNiente reroutingUna rotta sempre disponibile per garantire una soluzione
Compilazione delle matriciInizializzazione delle librerie
Matteo Buriola (UNITS) Algoritmo distribuito per traffico aereo 10 Marzo 2016 19 / 22
Preparazione dei dati
Lettura dei dati da file di testoGenerazione dei settori
Generazione di slot
Generazione dei voliGenerazione delle rotte
Ogni rotta è usabile soltanto da un voloNiente reroutingUna rotta sempre disponibile per garantire una soluzione
Compilazione delle matrici
Inizializzazione delle librerie
Matteo Buriola (UNITS) Algoritmo distribuito per traffico aereo 10 Marzo 2016 19 / 22
Preparazione dei dati
Lettura dei dati da file di testoGenerazione dei settori
Generazione di slot
Generazione dei voliGenerazione delle rotte
Ogni rotta è usabile soltanto da un voloNiente reroutingUna rotta sempre disponibile per garantire una soluzione
Compilazione delle matriciInizializzazione delle librerie
Matteo Buriola (UNITS) Algoritmo distribuito per traffico aereo 10 Marzo 2016 19 / 22
Esecuzione dell’algoritmo
Calcolo dei prezziIl Network Managercalcola il passo Φt e iprezzi degli slot λt
r e licomunica allecompagnie aeree.
=⇒
Ricerca delle rotteLe compagnie aereescelgono la rottamigliore per ogni volosulla base dei prezziappena calcolati
⇑ ⇓
Controllo deiparametriVengono valutati ilnumero di iterazioni eΦt per decidere seterminarel’esecuzione.
⇐=
Verifica dellasoluzioneSi controlla che lasoluzione trovata siaaccettabile e miglioredell’attuale.
Matteo Buriola (UNITS) Algoritmo distribuito per traffico aereo 10 Marzo 2016 20 / 22
Esecuzione dell’algoritmo
Calcolo dei prezziIl Network Managercalcola il passo Φt e iprezzi degli slot λt
r e licomunica allecompagnie aeree.
=⇒
Ricerca delle rotteLe compagnie aereescelgono la rottamigliore per ogni volosulla base dei prezziappena calcolati
⇑ ⇓
Controllo deiparametriVengono valutati ilnumero di iterazioni eΦt per decidere seterminarel’esecuzione.
⇐=
Verifica dellasoluzioneSi controlla che lasoluzione trovata siaaccettabile e miglioredell’attuale.
Matteo Buriola (UNITS) Algoritmo distribuito per traffico aereo 10 Marzo 2016 20 / 22
Esecuzione dell’algoritmo
Calcolo dei prezziIl Network Managercalcola il passo Φt e iprezzi degli slot λt
r e licomunica allecompagnie aeree.
=⇒
Ricerca delle rotteLe compagnie aereescelgono la rottamigliore per ogni volosulla base dei prezziappena calcolati
⇑ ⇓
Controllo deiparametriVengono valutati ilnumero di iterazioni eΦt per decidere seterminarel’esecuzione.
⇐=
Verifica dellasoluzioneSi controlla che lasoluzione trovata siaaccettabile e miglioredell’attuale.
Matteo Buriola (UNITS) Algoritmo distribuito per traffico aereo 10 Marzo 2016 20 / 22
Esecuzione dell’algoritmo
Calcolo dei prezziIl Network Managercalcola il passo Φt e iprezzi degli slot λt
r e licomunica allecompagnie aeree.
=⇒
Ricerca delle rotteLe compagnie aereescelgono la rottamigliore per ogni volosulla base dei prezziappena calcolati
⇑
⇓
Controllo deiparametriVengono valutati ilnumero di iterazioni eΦt per decidere seterminarel’esecuzione.
⇐=
Verifica dellasoluzioneSi controlla che lasoluzione trovata siaaccettabile e miglioredell’attuale.
Matteo Buriola (UNITS) Algoritmo distribuito per traffico aereo 10 Marzo 2016 20 / 22
Esecuzione dell’algoritmo
Calcolo dei prezziIl Network Managercalcola il passo Φt e iprezzi degli slot λt
r e licomunica allecompagnie aeree.
=⇒
Ricerca delle rotteLe compagnie aereescelgono la rottamigliore per ogni volosulla base dei prezziappena calcolati
⇑
⇓
Controllo deiparametriVengono valutati ilnumero di iterazioni eΦt per decidere seterminarel’esecuzione.
⇐=
Verifica dellasoluzioneSi controlla che lasoluzione trovata siaaccettabile e miglioredell’attuale.
Matteo Buriola (UNITS) Algoritmo distribuito per traffico aereo 10 Marzo 2016 20 / 22
Esecuzione dell’algoritmo
Calcolo dei prezziIl Network Managercalcola il passo Φt e iprezzi degli slot λt
r e licomunica allecompagnie aeree.
=⇒
Ricerca delle rotteLe compagnie aereescelgono la rottamigliore per ogni volosulla base dei prezziappena calcolati
⇑ ⇓
Controllo deiparametriVengono valutati ilnumero di iterazioni eΦt per decidere seterminarel’esecuzione.
⇐=
Verifica dellasoluzioneSi controlla che lasoluzione trovata siaaccettabile e miglioredell’attuale.
Matteo Buriola (UNITS) Algoritmo distribuito per traffico aereo 10 Marzo 2016 20 / 22
Valutazione dei risultati
Si confronta il valore ottenuto con quello ottimo.
Tabella: Regolamentazione di 2h 20m su 4 settori e 27 voli
Capacità Intervallo tra le rotteoraria 15 18 20 22
19% 4.3% 0% 3.5%4 18 1 1 1
31.2% 26.5% 0% 0%5 2 9 1 1
90.9% 7.4% 0% 29.3%6 56 1 1 1
0% 13.4% 3.8% 1.1%7 1 31 2 1
19116 16416 14904 14364UBZ ∗ iniziale
Matteo Buriola (UNITS) Algoritmo distribuito per traffico aereo 10 Marzo 2016 21 / 22
Valutazione dei risultati
Si confronta il valore ottenuto con quello ottimo.
Tabella: Regolamentazione di 2h 20m su 4 settori e 27 voli
Capacità Intervallo tra le rotteoraria 15 18 20 22
19% 4.3% 0% 3.5%4 18 1 1 1
31.2% 26.5% 0% 0%5 2 9 1 1
90.9% 7.4% 0% 29.3%6 56 1 1 1
0% 13.4% 3.8% 1.1%7 1 31 2 1
19116 16416 14904 14364UBZ ∗ iniziale
Matteo Buriola (UNITS) Algoritmo distribuito per traffico aereo 10 Marzo 2016 21 / 22