290 likes | 401 Views
Lentokoneiden reititys ja skedulointi. Esitelmä 23 – Olli Kaplas. Lentokoneiden reititys ja skedulointi. Ongelmana 1 päivän aikataulun luominen laivueelle Koneet voivat olla erilaisia
E N D
Lentokoneiden reititys ja skedulointi Esitelmä 23 – Olli Kaplas
Lentokoneiden reititys ja skedulointi • Ongelmana 1 päivän aikataulun luominen laivueelle • Koneet voivat olla erilaisia • Aikataulu koostuu lentoreiteistä (legs), jotka täytyy lentää tiettyissä aikaikkunoissa, joilla on kestot ja kustannukset/voitot lentokonetyyppiä kohden • Ensimmäinen ongelma on reititysongelma, eli missä järjestyksessä lennetään mitkäkin reitit • Toinen ongelma on skedulointiongelma, jossa yritetään löytää tarkat lentoajat, kun kysyntä tiedetään eri aikoina
Lentokoneiden reititys ja skedulointi • Jokaiselta lentokentältä täytyy lähteä joka päivä yhtäpaljon lentokoneita samaa tyyppiä olevia lentokoneita kuin sinne tulee takaisin, jotta päivittäinen aikataulu voi rullata uudestaan.
Määritelmiä (1/3) • Jokaisella lentoreitillä (leg) on määritetty kysyntä eri aikaväleillä, jonka aikana se voidaan lentää • Reitti j • Lentokonetyypit i=1,...., T • mi konetta tyyppia i ja koneita yhteensä, • Käyvät aikataulutl ϵ Si lentokonetyypille l, sisältävät lentoreittejä • Liniiden lentoreittien joukko, jotka voidaan lentää lentokonetyypillä i
Määritelmiä (2/3) • Vakio aijlon 1 jos aikataulu l sisältää reitin j konetyypillä i ja 0 muuten • πijvoitto, jos lentoreitti j lennetään i tyypin koneella • Odotettavissa oleva voitto lentokonetyypille i aikataululla l: • πi0jos lentokone ei ole missään aikataulussa voidaan antaa positiivinen tai negatiivinen ”voitto/tappio” • P kaikkien lentokenttien joukko ja Pi, tyyppin i lentokoneille sopivien lentokenttien joukko
Määritelmiä (3/3) • Vakio oipl on 1 jos aikataulun l ϵ Si lähtökenttä on p ja 0 muuten • Vakio diplon 1, jos aikataulun l saapumiskenttä on lentokenttä p ja 0 muuten • Päätösmuuttuja xilsaa arvon 1, jos lentoaika l lennetään koneella tyyppiä i • Päätösmuuttuja xiomerkitsee käyttämättömien i tyypin koneiden määrän
Optimointimalli Maksimoidaan voittoa • Jokainen reitti i kuljetaan vain kerran • Jokaista konetyyppiä i on maksimissaan mikpl • Aikataulun päätteeksi ja lopetuksesi määritetyt kentät täytyy täsmätä
3. Rajoitusehto • Selkeämpi muoto 3. rajoituksesta: • Jokaisella kentällä pitää alkaa yhtä monta lentoa kuin sinne loppuu niillä lentoaikatauluilla, jotka valitaan
Branch & Bound: branch-and-price • Idea on, että jaetaan ongelma pää- ja aliongelmiin. • Ylärajat (UB) saadaan relaksoimalla kokonaislukurajoite ja korvaamalle se xil≥ 0 (1. rajoitus takaa, että xil≤ 1) • Kutsutaan myös sarakkeiden generointi proseduuriksi, koska huomiotta jätetyt päätösmuuttujat oletaan nolliksi.(Ne muodostavat sarakkeita alkup. ongelman yhtälöihin)
Branch & price : Pää- ja aliongelmat • Pääongelma: • Generoidaan alijoukko kaikista mahdollisista lentoaikatauluista • Ratkaistaan linaariseksi relaksoitu ongelma tällä verrattain pienellä määrällä päätösmuuttujia (eli lentoaikatauluja) • Lasketaan ratkaisun duaali-muuttujien arvot; ne edustavat ”resurssien”, kuten lentoreittien, lentokoneiden ja lentokenttien yksikkökustannuksia. • Aliongelma: • Tehtävä on testata onko pääongelman (kuitenkin lineerisen) tämänhetkinen ratkaisu optimaalinen kaikilla mahdollisilla aikatauluilla, käyttäen duaalimuuttujia • Duaali-muuttujia käytetään muiden kandidaattaikataulujen potentiaalisten voittojen laskemiseen,
Branch & price : Pää- ja aliongelmat • Aliongelma jatkuu... • Aliongelma vastaa pisimmän polun ongelmaa aikaikkunoiden kanssa. Tämä voidaan ratkaista dynaamisella ohjelmoinnilla. • Ratkaisu pää-ongelmaan ei ole optimaalinen jos löytyy sellaisia aikatauluja, joilla on positiivinen potentiaalinen voitto • Tällöin täytyy generoida lisää kandidaattiaikatauluja aikataulujen joukkoon pääongelmaan
Aliongelman kuvaaminen graafilla • Viisi erilaista kaarta: • Lähdekaari menee lähdesolmusta lähtölentokenttäsolmuun • Nielukaari menee päätelentokenttäsolmusta nielusolmuun • Aikataulun aloituskaari lähtee lähtölentokenttäsolmusta ja menee lentoreittisolmuun (aikataulun täytyy alkaa näistä solmuista) • Aikataulun lopetuskaari menee päätelentokenttä solmuun (aikataulun täytyy loppua joihinkin näistä solmuista) • Käännöskaaria (turnarc) eri lentoreittisolmujen välillä. Kahden lentosolmun välillä oleva kaari on olemassa vain silloin, kun aikaikkuna vaatimukset täyttyvät (ottaen huomioon kääntymisaika lentokentällä) ja lennot voidaan lentää peräkkäin samalla koneella
Aliongelman kuvaaminen graafilla jatkuu... • eij on aikaisin mahdollinen lähtemisaika reitillä j ja lentokonetyypillä i • lij on myöhäisin mahdollinen lähtemisaika reitillä j lentokonetyypillä i • τij on lentoreitin j lentoaika, konetyypillä i • δijkon lentoreitin j ja lentoreitin k välinen ”kääntymisaika” (turnaround time) • Kääntymiskaari reittejen j ja k välillä on olemassa jos
Aliongelman kuvaaminen graafilla Graafilla Gi(Ni,Bi) voidaan etsiä käypiä aikatauluja lentokoneille.
Aliongelma jatkuu... • Jokaiseen kääntymiskaareen liitetään siihen liittyvä voitto πij(nämä vakiot tunnetaan) • Merkataan αj,βijaγiprajoitteisiin 1,2 ja 3 liittyviä duaalimuuttujien arvoja. • Duaalimuuttujat kuvaavat voittoa siitä että näiden rajoitusten oikeapuolta kasvatetaan yhdellä ( relaksoidussa pää-ongelmassa) • Potentiaalinen voitto aikataululle l suhteessa tämänhetkiseen ratkaisuun voidaan laskea:
Graafin polkujen potentiaalisen voiton tulkinta • Jokaisen graafin Gi polun (aikataulun) potentiaalinen voitto voidaan laskea kaariin liitettyvien voittojen summana • Kun ajatellaan voittoja ”matkoina” voidaan käyttää pisimmän polun algoritmia löytämään suurimman potentiaalisen voiton polku graafista Gi
Aliongelma jatkuu... • Jos suurin potentiaalinen voitto positiivinen, lisätään aikataulu pää-ongelmaan, joka ratkaistaan uudestaan ja saadaan uusi UB. (Myös muita positiivisen potentiaalisen voiton omaavia aikatauluja voidaan lisätä) • Jos minkään polun potentiaalinen voitto ei ole positiivinen, on nykyinen ratkaisu optimaalinen
Aliongelma loppuu • Branchaamisstrategia pitää myös päättää • esim vanha kunnon 1-0 branchaaminen • Lopuksi täytyy vielä päättää mitkä sarakkeet, eli päätösmuuttujat (aikataulut) pidetään mukana. • Voidaan pitää kaikki generoidut • Voidaan myös jollain algoritmilla karsia vanhoja pois
Esimerkki: Lentokoneiden reititys ja skedulointi • 2 eri tyyppistä lentokoneetta T=2, m1=2 ja m2=2 • 4 lentokenttää: p=1: San Francisco (SFO) p=2: Los Angeles (LAX) p=3: New York (NYC) p=4: Seattle (SEA) • Kummallakin konetyypillä voidaan lentää mikä tahansa reitti, vain voittojen määrä on eri • a.m lennon täytyy lähteä 05:00 jälkeen ja laskeutua ennen klo 14:00, p.m täytyy lähteä 14:00 jälkeen ja laskeutua viim. 05:00 seuraavana päivänä
Ensimmäisten kandidaatti-aikataulujen luominen 1/2 Aikataulut tyypin 1 koneille: 3. 3. 3. 10 12 12 10 11 9 4. 4. 4. 7 5 6 Aikataulu 7 Aikataulu 8 Aikataulu 2 1. 1. 1. 7 2 4 2. 2. 2.
Ensimmäisten kandidaatti-aikataulujen luominen 2/2 Aikataulut tyypin 2 koneille vastaavasti:
Potentiaalisten voittojen laskeminen eri lentoaikatauluille • Lentoreittien pot. voitot • 1 tyypin koneiden aikataulujen pot. voitot • 2 tyypin koneiden aikataulujen pot.voitot
Duaalimuutujien arvot: • Aliongelma täytyy muodostaa, jotta voidaan löytää käyvät aikataulut, joilla on potentiaalisia voittoja • β1 = -16.67 ja β2= 0 (x11 =1 eli 1 tyypin kone on käyttämättä)
Graafi G1aikataulujen 11 ja 12 kanssa Generoidaan ”pitkiä” ja käypiä ratkaisuja Käypyysehto reitin lentämiselle:
Potentiaaliset voitot generoiduille uusille aikatauluille tyyppiä 1 • G1generoidut aikataulut • Nyt otetaan mukaan aikataulut 11, 14 ja 15 koska niillä on positiiviset potentiaaliset voitot
Potentiaaliset voitot generoiduille uusille aikatauluille tyyppiä 2 • G2generoidut aikataulut • Nyt otetaan mukaan aikataulut 10, 13 ja 14 koska niillä on positiiviset potentiaaliset voitot
Pää-ongelman ratkaisu uudelleen • Opitimi löydetään kun x110=x111=x21= x22 =1 • Kaikki potentiaaliset voitot ovat ei-positiivia
Kotitehtävä • Miettikää miten lentokoneiden aikataulun ja reitityksen optimointimallia voisi parantaa, mitä se ei ota huomioon. • Palautus 18.1.2010 ? (Tenttiviikoilla ja joululomalla ei voi olla palautuksia) Ei kotitehtävää