111
Implementazione di un algoritmo distribuito per l’assegnazione del traffico aereo Matteo Buriola Dipartimento di matematica e geoscienze Università degli Studi di Trieste 10 Marzo 2016 - Tesi di Laurea Magistrale Matteo Buriola (UNITS) Algoritmo distribuito per traffico aereo 10 Marzo 2016 1 / 22

Implementazione di un algoritmo distribuito per l'assegnazione del traffico aereo slides

Embed Size (px)

Citation preview

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

Ringraziamenti

Grazie per l’attenzione.

Matteo Buriola (UNITS) Algoritmo distribuito per traffico aereo 10 Marzo 2016 22 / 22