Geneettiset algoritmit joukkoliikennelinjastojen suunnittelussa

Samankaltaiset tiedostot
Geneettiset algoritmit

Algoritmit 2. Luento 12 Ke Timo Männikkö

Algoritmit 2. Luento 12 To Timo Männikkö

TIES592 Monitavoiteoptimointi ja teollisten prosessien hallinta. Yliassistentti Jussi Hakanen syksy 2010

Kombinatorinen optimointi

GA & robot path planning. Janne Haapsaari AUTO Geneettiset algoritmit

Implementation of Selected Metaheuristics to the Travelling Salesman Problem (valmiin työn esittely)

Harjoitus 3 ( )

Algoritmit 1. Luento 9 Ti Timo Männikkö

Algoritmit 2. Luento 13 Ti Timo Männikkö

Harjoitus 3 ( )

Malliratkaisut Demot

Malliratkaisut Demot

Luento 13: Geneettiset Algoritmit

1 Kertaus. Lineaarinen optimointitehtävä on muotoa:

Joonas Haapala Ohjaaja: DI Heikki Puustinen Valvoja: Prof. Kai Virtanen

Harjoitus 6 ( )

Osakesalkun optimointi. Anni Halkola Turun yliopisto 2016

Harjoitus 6 ( )

Optimoinnin sovellukset

Search space traversal using metaheuristics

Demo 1: Simplex-menetelmä

ja λ 2 = 2x 1r 0 x 2 + 2x 1r 0 x 2

Ellipsoidimenetelmä. Samuli Leppänen Kokonaislukuoptimointi. S ysteemianalyysin Laboratorio

Etsintä verkosta (Searching from the Web) T Datasta tietoon Heikki Mannila, Jouni Seppänen

Mat Investointiteoria Laskuharjoitus 4/2008, Ratkaisut

Algoritmit 1. Luento 1 Ti Timo Männikkö

Johdatus verkkoteoriaan 4. luento

TIE Tietorakenteet ja algoritmit 1. TIE Tietorakenteet ja algoritmit

Harjoitus 4: Matlab - Optimization Toolbox

Kokonaislukuoptimointi hissiryhmän ohjauksessa

Algoritmit 1. Luento 8 Ke Timo Männikkö

j n j a b a c a d b c c d m j b a c a d a c b d c c j

A ja B pelaavat sarjan pelejä. Sarjan voittaja on se, joka ensin voittaa n peliä.

Algoritmit 2. Luento 11 Ti Timo Männikkö

Arkkitehtuurien tutkimus Outi Räihä. OHJ-3200 Ohjelmistoarkkitehtuurit. Darwin-projekti. Johdanto

Harjoitus 5 ( )

Algoritmit 2. Luento 6 To Timo Männikkö

Minimilatenssiongelman ratkaisualgoritmeja (valmiin työn esittely)

Lineaarisen kokonaislukuoptimointitehtävän ratkaiseminen

4.5 Kaksivaiheinen menetelmä simplex algoritmin alustukseen

Harjoitus 5 ( )

Mat Lineaarinen ohjelmointi

Luetteloivat ja heuristiset menetelmät. Mat , Sovelletun matematiikan tutkijaseminaari, kevät 2008, Janne Karimäki

Vuorovaikutusmateriaali Herttoniemen linjastosuunnitelma

Malliratkaisut Demot

Kimppu-suodatus-menetelmä

Malliratkaisut Demot

Luento 1: Optimointimallin muodostaminen; optimointitehtävien luokittelu

4. Lasketaan transienttivirrat ja -jännitteet kuvan piiristä. Piirielimien arvot ovat C =

Algoritmit 2. Luento 14 Ke Timo Männikkö

Yhtälöryhmä matriisimuodossa. MS-A0004/A0006 Matriisilaskenta. Tarkastellaan esimerkkinä lineaarista yhtälöparia. 2x1 x 2 = 1 x 1 + x 2 = 5.

Monitavoitteiseen optimointiin soveltuvan evoluutioalgoritmin tarkastelu

Malliratkaisut Demot

Algoritmit 1. Luento 12 Ti Timo Männikkö

Malliratkaisut Demo 1

Tietorakenteet ja algoritmit - syksy

(p j b (i, j) + p i b (j, i)) (p j b (i, j) + p i (1 b (i, j)) p i. tähän. Palaamme sanakirjaongelmaan vielä tasoitetun analyysin yhteydessä.

1 Rajoittamaton optimointi

Katkonnanohjaus evoluutiolaskennan keinoin

Liikennejärjestelmämallit ja niiden käyttö poliittisessa päätöksenteossa ja suunnittelussa. Ville Koskinen,

Graafit ja verkot. Joukko solmuja ja joukko järjestämättömiä solmupareja. eli haaroja. Joukko solmuja ja joukko järjestettyjä solmupareja eli kaaria

5 Lineaariset yhtälöryhmät

Ongelma 1: Onko datassa tai informaatiossa päällekkäisyyttä?

Hennan liityntäliikenteen vaihtoehdot. Orimattilan kaupunginhallitus Katja Suhonen Joukkoliikennesuunnittelija

Luku 8. Aluekyselyt. 8.1 Summataulukko

4. Luennon sisältö. Lineaarisen optimointitehtävän ratkaiseminen Simplex-menetelmä

Satunnaisalgoritmit. Topi Paavilainen. Laskennan teorian opintopiiri HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

Valitaan alkio x 1 A B ja merkitään A 1 = A { x 1 }. Perinnöllisyyden nojalla A 1 I.

Matematiikan tukikurssi, kurssikerta 3

Pisteen x lähistö koostuu kaikista ratkaisuista, jotka on saatu x:stä tekemällä siihen yksi siirto:

Sekalaiset tehtävät, 11. syyskuuta 2005, sivu 1 / 13. Tehtäviä

Algoritmit 2. Luento 13 Ti Timo Männikkö

1 2 x2 + 1 dx. (2p) x + 2dx. Kummankin integraalin laskeminen oikein (vastaukset 12 ja 20 ) antaa erikseen (2p) (integraalifunktiot

PARITUS KAKSIJAKOISESSA

Demonstraatiot Luento

3 Lineaariset yhtälöryhmät ja Gaussin eliminointimenetelmä

TAMPEREEN TEKNILLINEN YLIOPISTO

Tietorakenteet ja algoritmit Johdanto Lauri Malmi / Ari Korhonen

Vapaus. Määritelmä. jos c 1 v 1 + c 2 v c k v k = 0 joillakin c 1,..., c k R, niin c 1 = 0, c 2 = 0,..., c k = 0.

Numeeriset menetelmät

Fibonaccin luvut ja kultainen leikkaus

Malliratkaisut Demot

Harjoitus 1 ( )

Haitallinen valikoituminen: yleinen malli ja sen ratkaisu

Bussi-Jokerin ennustetarkasteluja

Osakesalkun optimointi

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin peruskurssi Y1

Yhtälöryhmä matriisimuodossa. MS-A0007 Matriisilaskenta. Tarkastellaan esimerkkinä lineaarista yhtälöparia. 2x1 x 2 = 1 x 1 + x 2 = 5.

Harjoitus 1 ( )

Reiluus. Maxmin-reiluus. Tärkeä näkökohta best effort -tyyppisissä palveluissa. Reiluuden maxmin-määritelmä

Lineaarinen optimointitehtävä

Evolutiivisesti stabiilin strategian oppiminen

Malliratkaisut Demot

Esimerkkejä vaativuusluokista

Jatkuvat satunnaismuuttujat

Ei välttämättä, se voi olla esimerkiksi Reuleaux n kolmio:

Talousmatematiikan perusteet: Luento 14. Rajoittamaton optimointi Hessen matriisi Ominaisarvot Ääriarvon laadun tarkastelu

MS-A0003/A0005 Matriisilaskenta Malliratkaisut 5 / vko 48

Transkriptio:

Mat-2.4108 Sovelletun matematiikan erikoistyöt Geneettiset algoritmit joukkoliikennelinjastojen suunnittelussa Osmo Salomaa 58584J 3. tammikuuta 2008

Sisältö 1 Johdanto 2 2 Optimointitehtävän kuvaus 3 2.1 Lähtötiedot............................ 3 2.2 Kohdefunktio........................... 4 2.3 Rajoitukset............................ 5 3 Ratkaisuvaiheet 5 4 Hyvyysfunktio 6 5 Geneettiset mallit 6 5.1 Pattnaik et al............................ 7 5.2 Chakroborty ja Dwivedi..................... 9 5.3 Tom ja Mohan.......................... 10 5.4 Ngamchai ja Lovell........................ 13 6 Tulokset 15 7 Erityiskysymykset 15 8 Yhteenveto 16

1 Johdanto Liikenne aiheuttaa ympäristölleen merkittäviä haittoja, kuten melua ja päästöjä. Lisäksi liikenteen vaatima infrastruktuuri vie merkittävän määrän tilaa kaupungeissa haitaten muuta elämää. Liikenteen haittavaikutuksia on mahdollista tehokkaasti pienentää vähentämällä yksityisautojen määrää liikenteessä ja vastaavasti lisäämällä joukkoliikenteen käyttöä. Suurissa kaupungeissa joukkoliikenteen laajamittainen käyttö on jo suuren liikenteen kysynnän ja tiekapasiteetin rajoitteiden vuoksi välttämätöntä. Joukkoliikenteen houkuttelevuuden ja myös liikennöitsijän kustannusten kannalta yksi olennaisimmista tekijöistä on joukkoliikennelinjaston, eli linjojen lukumäärän, niiden reittien ja liikennöintitiheyden, suunnittelu. Kohdistamalla tarjontaa vastaamaan paremmin kysyntää voidaan saavuttaa merkittäviä säästöjä liikennöitsijän operointikustannuksissa ja matkustajien aikakustannuksissa. Suurehkon kaupungin tieverkolle joukkoliikennelinjaston suunnittelu on diskreetti, kombinatorinen ja NP-vaikea tehtävä, jota ei voi perinteisillä optimointimenetelmillä ratkaista. [1] Tehtävän ratkaisemiseen on kehitetty sekä analyyttisiä että heuristisia matemaattisia menetelmiä. Analyyttisillä menetelmillä on ratkaistu yksinkertaistetulle tieverkolle linjaston tunnuslukuja, kuten linjojen ja pysäkkien välisiä etäisyyksiä. Heuristisilla menetelmillä on pystytty ratkaisemaan suoraan linjojen reittejä suurille tieverkoille, mutta tulokset eivät ole olleet täysin tyydyttäviä ja ovat olleet usein vaikeasti yleistettäviä eri tieverkkoihin ja suunnittelumalleihin. [9] Geneettiset algoritmit ovat luonnon evoluutiota jäljitteleviä algoritmeja, erityisen soveltuvia suuren ratkaisuavaruuden tehtävien optimointiin. Geneettisiä algoritmeja on viime vuosikymmeninä käytetty menestyksekkäästi monilla eri aloilla ja menetelmä on havaittu sekä teoreettisesti että empiirisesti toimivaksi. [5] Tässä työssä tutkitaan kirjallisuutta geneettisten algoritmien soveltamisesta yhden kaupungin tai vastaavan työssäkäyntialueen joukkoliikennelinjaston suunnitteluun. Joukkoliikennelinjoilla tarkoitetaan bussilinjoja tai tieverkkoa käyttäviä raidelinjoja, joskin päähuomio on bussilinjojen suunnittelussa niiden vähempien käytännön rajoitusten ja helpon uu- 2

delleenjärjesteltävyyden vuoksi. Geneettisten algoritmien pääperiaatteiden ja terminologian oletetaan olevat lukijalle tuttuja, muussa tapauksessa voi tutustua aiheeseen esimerkiksi Goldbergin teoksen [5] kautta. Kappaleessa 2 ensin formuloidaan joukkoliikennelinjastojen suunnittelu optimointitehtävänä ja kappaleessa 3 hahmotellaan geneettisten algoritmien ratkaisu tehtävälle, jota tarkennetaan kappaleessa 5 esittelemällä kirjallisuudessa esiintyvät erilaiset geneettiset mallit. Lopuksi käsitellään menetelmällä saatuja tuloksia kappaleessa 6 ja joitain huomionarvoisia erityiskysymyksiä kappaleessa 7. 2 Optimointitehtävän kuvaus Tehtävänä on joukkoliikennelinjojen määrän, reittien ja liikennöintitiheyden määrääminen siten, että kokonaiskustannuksista muodostuva kohdefunktio minimoituu annetuilla rajoituksilla. Tarkastelun kohteena on ainoastaan ruuhkahuipun hetkellinen tilanne. Lähtötietoina vaaditaan kaupungin tieverkon kuvaus, tieto joukkoliikenteen kysynnästä ja matkustajien reitinvalinnan malli. Kohdefunktion ja matkustajien reitinvalinnan mallin valinnat ovat arvottamistehtäviä, joihin ei ole yhtä oikeaa ratkaisua. Tärkeää lopputuloksen kannalta on kuitenkin, että ne vastaavat matkustajien todellista käyttäytymistä mahdollisimman hyvin. 2.1 Lähtötiedot Tieverkko on kuvattu solmujen eli risteysten ja linkkien eli teiden avulla. Kullekin linkille on tiedossa vakioksi oletettu matka-aika. Kysyntä on annettu symmetrisenä matriisina, jossa riveinä on lähtösolmut, sarakkeina määränpääsolmut ja alkioina matkustajien määrä aikayksikössä. Kysynnän kohdentamisen myötä myös pysäkkien oletetaan sijaitsevan solmuissa, mikä on kaupunkien tiheille tieverkoille hyväksyttävissä oleva oletus. Yksinkertaisuuden vuoksi kysynnän oletetaan yleensä olevan vakio, eli oletetaan että joukkoliikenteen palvelutaso ei vaikuta sen kysyntään. Vaihtelevaa kysyntää käsitel- 3

lään erikseen kappaleessa 7. Matkustajien reitinvalintaa koskevissa oletuksissa esiintyy kirjallisuudessa paljon hajontaa: Pattnaik et al. [8] olettaa matkustajien valitsevan ensimmäisen bussin, joka vie oikeaan suuntaan, Ngamchai ja Lovell [7] olettaa matkustajien valitsevan nopeimman reitin, Tom ja Mohan [9] taas painottaa ensisijaisesti vaihtojen vähyyttä. Kaikki nämä ovat melko yksinkertaistavia ja jättävät huomioimatta, että eri matkustajilla on erilaisia preferenssejä. Monipuolisimmin asiaa käsittelee Fan ja Machemehl [4], joka määrittelee joukon päättelysääntöjä vaihtojen määrän, kävelymatkojen pituuden ja matkaaikojen perusteella. Huomattavaa on, että mallin on sovittava matkustajien todelliseen käyttäytymiseen, mikä voi myös tarkoittaa, että mallissa matkustajat eivät aina valitse optimaalista reittiä. 2.2 Kohdefunktio Kohdefunktiossa on tapana ottaa huomioon sekä liikennöitsijän suorat rahalliset kustannukset että matkustajien rahaksi muutettavat aikakustannukset. Liikennöitsijä pyrkii minimoimaan lähinnä palkka- ja polttoainekustannuksiaan, jotka riippuvat melko suoraan ajetusta kilometrimäärästä. Matkustaja pyrkii minimoimaan odotus- ja matka-aikoja sekä vaihtojen määrää. Systeemikustannus voidaan laskea näiden kahden kustannuksen painotettuna summana. Kirjallisuudessa käytetyt kohdefunktiot vaihtelevat, mutta noudattavat edellä mainittuja periaatteita, esimerkkinä Pattnaik et al. [8] n min O = c 1 d ij t ij + c 2 f k t k, (1) i,j=1 k R missä c 1 on kerroin, joka muuntaa matkustajan matka-ajan kustannukseksi, n on solmujen kokonaismäärä, d ij on kysyntä solmusta i solmuun j, t ij on kokonaismatka-aika solmusta i solmuun j (sisältää odotusajan, matka-ajan ja mahdolliset vaihtosakot), c 2 on kerroin, joka muuntaa ajetut kilometrit kustannukseksi, R on ratkaisun reittijoukko, f k on reitin k liikennöintitiheys ja t k on reitin k meno-paluu matka-aika. 4

2.3 Rajoitukset Rajoituksissa huomioon otettuja asioita ovat kaluston W maksimimäärä W max sekä ajoneuvojen kuormituksen L k maksimi L max, reitin pituuden D k maksimi D max ja liikennöintitiheyden f k minimi f min kullekin reitille k. Saadaan siis W W max L k L max k R D k D max k R f k f min k R, missä [4, 8] W = k R f k t k ja L k = Qmax k f k C, missä Q max k on maksimivirtaus millä tahansa reitin k linkillä ja C on ajoneuvon kapasiteetti. Reitin pituutta halutaan rajoittaa, koska pitkiä reittejä on vaikea liikennöidä aikataulussa pysyen. Liikennöintitiheyden minimin tarkoitus on taata kohtuullinen palvelutaso vähäisen kysynnän alueilla, mutta sen merkitys ruuhka-aikaan kaupunkialueella on vähäinen. Lisäksi voidaan vaatia, että vähintään tietty osuus kysynnästä tulee täytettyä. Kysynnän täyttäminen voidaan ottaa huomioon myös ylimääräisenä terminä kohdefunktiossa [4] tai määrittää kyseisten matkustajien odotusajan pituudeksi tarkasteluajanjakson pituus [9]. 3 Ratkaisuvaiheet Tehtävän ratkaisu geneettisillä algoritmeilla noudattaa seuraavia vaiheita: 1. Generoi satunnainen alkupopulaatio. 2. Laske hyvyysfunktion arvo. Lopeta, jos lopetusehto toteutuu. 3. Luo uusi sukupolvi geneettisillä operaattoreilla. Palaa kohtaan 2. 5

Vaiheessa kolme varmistetaan lisäksi, että uuden sukupolven yksilöt eivät riko mitään määriteltyjä rajoituksia. Populaatio on tässä joukko linjastoja ja kussakin yksilössä eli linjastossa on useita linjoja. Ennen ratkaisuvaiheiden suorittamista on määrättävä hyvyysfunktio, geneettinen koodaus, populaation koko, geneettiset operaattorit ja lopetusehto. Lopetusehtona on yleensä iteraatiokierrosten lukumäärän täyttyminen. 4 Hyvyysfunktio Hyvyysfunktio johdetaan suoraan muuttamalla kohdefunktio (1) muotoon, jossa sen kaikki mahdolliset arvot ovat positiivisia ja minimointi on käännetty maksimoinniksi, eli F (i) = V O(i) P P j=1 O(j), missä F (i) on hyvyysfunktion arvo yksilölle i, V on riittävän iso luku (esimerkiksi yhtälön jälkimmäisen termin maksimi), O(i) on kohdefunktion arvo yksilölle i ja P on populaation koko. 5 Geneettiset mallit Kirjallisuudessa esiintyvät geneettiset mallit eroavat sen suhteen mitä otetaan koodaukseen mukaan ja mitä lasketaan erikseen. Valtaosa ratkaisun työstä on linjojen reittien käsittelyä; linjojen määrän ja liikennöintitiheyden käsittelytapa riippuu geneettisen koodauksen valinnasta. Liikennöintitiheys on täysin mahdollista jättää geneettisestä koodauksesta kokonaan pois, jolloin se pitää laskea iteroiden kysynnän perusteella, niin että tietty osuus, usein kaikki, kysynnästä täytetään. Tässä iteroinnissa ensin sijoitetaan kysyntä eri linjoille alustavien liikennöintitiheyksien perusteella ja sen jälkeen liikennöintitiheyksiä korjataan iteroiden kysyntään paremmin sopiviksi. Geneettisessä koodauksessa esiintyy merkittäviä eroja ja nämä erot myös vaikuttavat olennaisesti geneettisten operaattorien toimintamahdollisuuksiin 6

ja siten algoritmin etenemiseen ratkaisuavaruudessa. Yleisesti käytettyjä geneettisiä operaattoreita ovat uudelleenvalinta, risteytys ja mutaatio, mutta myös erityisesti tätä tehtävää varten kehitettyjä operaattoreita esiintyy. Seuraavassa esitellään kirjallisuudessa esiintyvät geneettiset mallit ja niiden ominaispiirteet. 5.1 Pattnaik et al. Pattnaik et al. [8] lähtee liikkeelle ensin generoimalla suuren joukon ehdokasreittejä, joista geneettisillä algoritmeilla valitaan optimaalinen alijoukko linjastoksi. Ehdokasreitit generoidaan yhdistelemällä asiantuntijoiden määrittämiä terminaalisolmuja tietyin rajoituksin ja kysynnän ohjaamana. Terminaalisolmujen tiheys jää epäselväksi, mutta olennaisesti niiden määrä on tieverkon solmuja selvästi vähäisempi ja jo niiden määrittely yksinkertaistaa tehtävää. Terminaalisolmujen sijaintien määrittelyn jälkeen kunkin terminaalisolmuparin välille etsitään nopein reitti Dijikstran lyhimmän polun algoritmilla (ks. esim. [3]). Reitti hyväksytään, jos se ei riko minimi- tai maksimireitinpituuden rajoituksia. Näiden reittien pohjalta generoidaan vielä vaihtoehtoisia reittejä terminaalisolmujen välille poistamalla nopeimmalta reitiltä joku linkki käytöstä ja etsimällä nopein kiertotie. Vaihtoehtoisille reiteille tarkastetaan rajoitukset koskien reittien samankaltaisuutta ja pituutta. Lopuksi ehdokasreitit asetetaan järjestykseen ja numeroidaan jonkin suoritusindeksin suhteen. Tämä voi olla esimerkiksi tyydytetty kysyntä linjastossa, jossa on olemassa ainoana reittinä tarkasteltava reitti. Alkupopulaatio generoidaan satunnaisena ennalta määrätyn kokoisena alijoukkona ehdokasreittien joukosta. Geneettisessä koodauksessa reittejä käsitellään muuttujina, joihin kuhunkin liittyy laskettu suoritusindeksi. Esitettyjä koodausmenetelmiä on kaksi: kiinnitetyn- ja muuttuvanpituisen merkkijonon koodaus. Kiinnitetyn pituisen merkkijonon koodauksessa linjojen määrää ei sisällytetä koodaukseen, vaan se pidetään vakiona ja kullekin mahdollisena pidetylle linjojen määrälle joudutaan tehtävä ratkaisemaan erikseen. Yhden linjaston merkkijono koos- 7

tuu yksittäisistä vakiopituisista alimerkkijonoista. Alimerkkijonot ovat binäärimuotoisia, joista kukin vastaa yhden ehdokasreitin järjestyslukua kaikkien ehdokasreittien joukossa. Ehdokasreittien ollessa järjestetty suoritusindeksin mukaan koodaus tuottaa suoritusindeksiltään samankaltaisille reiteille samankaltaisia binäärimerkkijonoja. Esimerkiksi yksi linjasto, joka sisältää kolme reittiä, esitetään muodossa 10101 }{{} 11001 }{{} 01110 }{{}. #11 #22 #12 Muuttuvanpituisessa merkkijonokoodauksessa reittien määrä sisällytetään koodaukseen mukaan asettamalla alkupopulaation kullekin linjastolle reittien määrä satunnaisesti. Reittien määrän muuttamista varten otetaan käyttöön lisäys- ja poisto-operaattorit. Liikennöintitiheys lasketaan evaluointivaiheessa kullekin linjalle kysynnän perusteella. Geneettisinä operaattoreina on käytössä uudelleenvalinta, risteytys ja mutaatio. Uudelleenvalinta valitsee uuteen populaatioon parhaimpia yksilöitä hyvyysfunktion arvojen avulla. Risteytyksenä käytetään kahden kohdan risteytystä, jolloin niiden väliset bitit merkkijonossa vaihdetaan keskenään. Tällöin kahden vanhemman geenien yhdistelyn lisäksi tulee molempiin katkaisukohtiin luotua uusi binäärimerkkijono, eli käytännössä linjastoon saadaan kaksi uutta, satunnaista reittiä. Sama pätee myös mutaatiolle, eli yhden bitin arvon muuttaminen käytännössä korvaa yhden kokonaisen reitin toisella satunnaisesti valitulla reitillä. Lisäys-operaattori lisää yhden satunnaisesti valitun reitin populaatioon ja poisto-operaattori poistaa satunnaisen reitin. Tulosten perusteella kiinnitetyn pituisen merkkijonon menetelmä saavuttaa hieman pienempiä kohdefunktion arvoja, luokkaa 5 %, mutta toimii paljon hitaammin. Laskenta-aika on seitsenkertainen muuttuvanpituisen merkkijonon menetelmään verrattuna, kokeillulla verkolla, jossa reittien määrää iteroitiin seitsemän ja kahdenkymmenen välillä. Ehdokasreitteihin perustuva toimintaperiaate nojaa vahvasti asiantuntijoiden apuun ehdokasreittejä generoitaessa eikä olennaisena puutteena salli ollenkaan geneettisten operaattorien muokata reittejä mielivaltaisesti. Lisäksi 8

esitetty ehdokasreittien generointi on lähtökohtana outo suuren ratkaisuavaruuden tehtävään varsinkin, jos haluaa universaalin menetelmän, joka skaalautuu mielivaltaisen kokoiselle tieverkolle. Skaalautuvuuden kannalta myös kiinnitetyn pituisen merkkijonon koodauksen vaatima iteraatio reittien määrän yli on laskenta-ajan suhteen ongelmallinen. Käytetty geneettinen koodaus ei ollenkaan huomioi minkä solmujen kautta reitit kulkevat, joten geneettisten operaattorien muokatessa merkkijonoa ei suoraan muokata itse reittejä, vaan ainoastaan reitin järjestyslukua ehdokasreittien joukossa. Tällöin yhden bitin muokkaaminen merkkijonossa ei korvaa yhtä reittiä samankaltaisella, vaan satunnaisesti vaihtaa yhden kokonaisen reitin, mikä tekee koko algoritmista vahvasti satunnaisohjatun. 5.2 Chakroborty ja Dwivedi Chakroborty ja Dwivedi [1] generoi alkupopulaation solmuja satunnaisesti yhdistelemällä kysynnän ohjaamana. Kullekin solmulle lasketaan aktiviteetti eli lähtevien ja saapuvien matkojen summa. Korkeimpien aktiviteettien solmut valitaan reittien lähtösolmuiksi. Kullekin reitille valitaan seuraavia solmuja satunnaisesti ympäröivien solmujen joukosta V N S kaavalla p k = d k a k i V NS d ia i, missä p k on solmun k valintatodennäköisyys, a k solmun k aktiviteetti ja d k solmun k vastustekijä, jonka arvojen perusteella voidaan estää reitin peruutus ja ympyröityminen. Reitin lopetusehtona toimii reitin pituus tai sen sisältämien solmujen määrä. Geneettinen koodaus on määritelty listaamalla peräkkäin solmujen tunnistenumerot, joiden kautta reitit kulkevat. Yksittäiset reitit on erotettu merkkijonossa erotusviivoilla. Eli yleisesti n 1 1n 1 2 n 1 k n 2 1n 2 2 n 2 l n p 1n p 2 n p m, missä n j i on reitin j i:nnen solmun tunnistenumero. 9

Geneettisinä operaattoreina on käytössä uudelleenvalinta, risteytys ja mutaatio. Uudelleenvalintana käytetään standardimuotoista turnajaisvalintaa. Risteytys on jaettu reittien väliseen (kuva 1) ja reittien sisäiseen (kuva 2), joista edellinen vaihtaa reittejä linjastojen välillä ja jälkimmäinen reitinpätkiä saman linjaston reittien välillä. Reittien sisäinen risteytys vaatii toteutuakseen, että linjastosta löytyy kaksi risteävää reittiä. Ennen reittien sisäistä risteytystä merkkijonoista tehdään kopioita, jotta sama reitti voi osallistua useaan eri ristetykseen eli eri reittien kanssa ja saman reitin kanssa eri risteämäkohdista. Mutaatio-operaattori vaihtaa yhden reitin yhden solmun satunnaisesti toiseen vieressä olevaan solmuun. Kaiken kaikkiaan Chakrobortyn ja Dwivedin lähestymistapa vaikuttaa tehtävään sopivalta. Geneettiseen koodaukseen on valittu muoto, joka sisältää tehtävän kannalta olennaista informaatiota, eli yksittäisten reittien solmut. Myös risteytys-operaattorin toiminnassa on osattu ottaa huomioon tehtävän luonne eli jokaisen populaation yksilön koostuminen erillisistä reiteistä, joiden on myös syytä olla muokattavissa. Varjopuolena on linjojen määrän poisjättö koodauksesta, mikä lisää laskenta-aikaa, kun tehtävää ratkaistaessa joudutaan iteroimaan kaikkien mahdollisena pidettyjen reittien määrien yli. 5.3 Tom ja Mohan Tom ja Mohan [9] laajentaa aiempaa Pattnaik et al.:n geneettistä mallia (ks. kappale 5.1) lisäämällä geneettiseen koodaukseen mukaan liikennöintitiheyden. Tällä vältytään liikennöintitiheyden laskemisesta erikseen iteroiden kysynnän perusteella. Liikennöintitiheys koodataan binäärimerkkijonona kuten reititkin ja siihen sovelletaan samoja geneettisiä operaattoreita samaan tapaan. Liikennöintitiheydelle määritellään minimi- ja maksimiarvot ja binäärikoodausta purettaessa kaikille näitä rajoituksia rikkoville reiteille asetetaan liikennöintitiheydeksi nolla, jolloin niitä ei myöskään tule ratkaisujoukkoon mukaan. Tulosten perusteella uusi koodaustapa saavuttaa noin 3 % pienempiä kohdefunktion arvoja kuin kiinnitetyn pituisen merkkijonon koodaus ja noin 7 % 10

Kuva 1: Reittien välinen risteytys. Yllä vanhempien reitit ja alla risteytyksen tuloksena syntyvien lasten reitit. [1] 11

Kuva 2: Reittien sisäinen risteytys. Yllä reitit ennen risteytystä ja alla sen jälkeen. [1] 12

pienempiä kuin muuttuvan pituisen merkkijonon koodaus. 5.4 Ngamchai ja Lovell Ngamchai ja Lovell [7] generoi alkupopulaation satunnaisesti yhdistelemällä solmuja reiteiksi. Reitin ensimmäinen solmu valitaan jonkun olemassa olevan reitin vierestä, kuitenkin niin, ettei solmu ole vielä millään reitillä. Seuraava solmu valitaan olemassa olevalta reitiltä niin että varmistetaan vaihtopysäkin syntyminen reittien risteämäkohtaan. Loput solmut lisätään reitin kumpaan tahansa päähän täysin satunnaisesti. Reitin generointi päättyy satunnaisesti ja koko reitistön generointi päättyy, kun kaikki solmut ovat jo jollain reitillä. Geneettisenä koodauksena käytetään solmujen tunnistenumeroiden listaamista reiteittäin, esimerkiksi kolmen reitin linjasto voidaan esittää muodossa [1, 2, 3, 4] [1, 5, 6, 9, 11] [4, 7, 8, 9, 12, 13]. Muotoa, jolla tämä koodaus tarkalleen esitetään tietokoneella ei pidetä olennaisena, koska kaikki käytettävät operaattorit ovat tehtäväkohtaisia ja toimivat tiedostavammin kuin esimerkiksi binäärimerkkijonoja sokeasti muokkaavat standardioperaattorit. Geneettisiä operaattoreita on käytössä seitsemän, joista kaikki ovat suunniteltu erityisesti tätä tehtävää varten: Reittien yhdistämisoperaattori pyrkii yhdistämään reittejä, joilla on yhteinen päätepysäkki, mutta ei päällekkäistä reittiä. Tämä poistaa osan vaihtoviivytyksistä kyseisellä pysäkillä. Reittien pilkkomisoperaattori pyrkii pilkkomaan osiin reitin, jonka varrella kysyntä vaihtelee suuresti. Tällöin näillä eri pätkillä voidaan liikennöidä eri liikennöintitiheyksillä, jolloin säästetään kustannuksissa alhaisen kysynnän pätkillä. Reitin versomisoperaattori toimii edellisen tavoin, mutta pitää alkuperäisen reitin sellaisenaan ja lisää korkean kysynnän osuudelle uuden reitin. 13

Linkin lisäysoperaattori etsii linkin, joka ei ole millään reitillä mukana, mutta jonka liikenteelle löytyy kysyntää. Operaattori luo uuden reitin, jonka ytimenä toimii tämä linkki. Linkin poisto-operaattori pyrkii poistamaan vähäisesti liikennöidyn linkin reitiltään, jos se on mahdollista tehdä eristämättä viereistä solmua tai jakamatta reitistöä kahteen erilliseen osaan. Reittien risteytysoperaattori pyrkii pilkkomaan kaksi reittiä yhteisen solmun kohdalta ja vaihtamaan nämä osat keskenään. Tämä voi johtaa säännöllisemmän kysynnän reitteihin ja vähempiin vaihtokustannuksiin. Vaihtopysäkin sijainnin muutosoperaattori pyrkii siirtämään kahden reitin risteämiskohdan toiseen solmuun, mikäli sopiva solmu löytyy vierestä. Tämä voi pienentää vaihtokustannuksia. Käytettyjen operaattorien toimintatodennäköisyydet on määrätty riippuvaisiksi kysynnästä. Esimerkiksi, jos reitin voi yhdistää kahden muun reitin kanssa, niin näistä kahdesta vaihtoehdosta todennäköisempi on se, jonka yhdistämisen tuloksena syntyvälle reitille on enemmän kysyntää. Geneettisten operaattorien valinta on varsin mielenkiintoinen. Uudelleenvalinta ja mutaatio on ilmeisesti jätetty kokonaan pois ja turvauduttu vain tehtäväkohtaisiin operaattoreihin, joiden motivaatio on perusteltu hyvin. Merkittävänä puutteena käytetyissä operaattoreissa on, että ne kaikki toimivat reittitasolla, jolloin linjastojen välillä ei lainkaan vaihdeta informaatiota. Tällöin, itse asiassa, ei geneettisten algoritmien periaatetta täysin hyödynnetä. Tämä yksilöiden välisen informaation vaihdon puute, mutaation poisjättö ja operaattorien vahva kysyntäohjautuvuus saattaa vaikeuttaa algoritmin kykyä selvitä pois lokaaleista optimeista. 14

6 Tulokset Esitettyjen geneettisten mallien toimintaa on kokeiltu pienillä esimerkinomaisilla tieverkoilla. Osa näistä on ollut todellisia, jonkun olemassa olevan kaupungin tieverkkoja, mutta suurille tieverkoille geneettisiä algoritmeja ei ole sovellettu. Ratkaisun yhteydessä on myös ollut tapana suorittaa herkkyysanalyysia käytetyille parametreille, kuten populaation koolle, sukupolvien määrälle ja geneettisten operaattorien toimintatodennäköisyyksille. Tässä keskitytään kahteen sovellukseen, jossa geneettisiä algoritmeja on verrattu muihin menetelmiin. Chakroborty ja Dwivedi [1] on käyttänyt sveitsiläistä tieverkkoa, jota on aiemmin käytetty useassa muussa tutkimuksessa (ks. lista näistä [1]). Tehtävä ratkaistiin erikseen neljän, kuuden, seitsemän ja kahdeksan reitin linjastoille. Tuloksina tarkasteltiin tyydytetyn kysynnän osuuksia ilman vaihtoja, yhdellä vaihdolla, kahdella vaihdolla, tyydyttämätöntä kysyntää, keskimääräistä matkustusaikaa ja kokonaisaikasäästöjä. Kaikilla käytetyillä mittareilla esitetty ratkaisu oli selkeästi aiempia parempi. Fan ja Machemehl [4] on verrannut saman tehtävän ratkaisuun geneettisiä algoritmeja, lokaalihakua, simuloitua jäähdytystä, satunnaishakua, tabuhakua ja tyhjentävää hakua. Geneettisten algoritmien toteutus on kappaleessa 5.1 esitetty, kiinnitetyn pituisen merkkijonon koodauksella. Tuloksista havaitaan, että lokaalihaku toimii heikosti. Muiden menetelmien suhteelliset erot kutistuvat mitättömän pieneksi tieverkon koon kasvaessa. Tällöin toteutuksen helppous ja joustavuus sekä laskenta-aika nousevat olennaisiksi tekijöiksi, mutta näitä ei työssä ole vertailtu. 7 Erityiskysymykset Tässä kappaleessa esitellään lyhyesti kolme huomionarvoista erityiskysymystä, joihin ei tähän mennessä ole kiinnitetty huomiota: syöttöliikenne, joka on tämän tehtävän eräs erikoistapaus, vuorovälien koordinointi sekä vaihteleva kysyntä, jotka on tapana tehtävää yksinkertaistaessa jättää pois. 15

Syöttöliikennettä kaupungin keskustaan tai jollekin joukkoliikenneasemalle ovat tutkineet mm. Chien et al. [2] ja Kuan et al. [6]. Tällöin kaikilla reiteillä on yhteinen päätepysäkki ja tehtävä yksinkertaistuu merkittävästi. Tavallisen kaupungin työssäkäyntiliikenteen tehtävään syöttöliikenneratkaisu on vanhanmallinen ja yksipuolinen, mutta esimerkiksi bussiliikenteen järjestämiseen raideliikenneasemalle menetelmä on varsin kelpo. Vuorovälien koordinointi on Ngamchai ja Lovellin [7] esittämä menetelmä laskea eri reiteille yhteensopivia vuorovälejä, jotta vaihtoajat pysyvät lyhyinä. Tätä sovelletaan risteäville reiteille, joilla on paljon matkustajia. Tulosten perusteella tällä voidaan saavuttaa jopa 10 %:n pudotus kohdefunktiossa. Nämä luvut kuitenkin edellyttävät, että kaikkia koordinoituja linjoja liikennöidään tasan aikataulussaan. Todellisuudessa ruuhka-aikaan myöhästely voi olla hyvinkin tavallista ja toisekseen vuorovälit ovat sen verran lyhyet, että todelliset säästöt jäänevät pienemmiksi. Yleisesti käytetyn oletuksen kysynnän vakiona pysymisestä kyseenalaistaa Fan ja Machemehl [4], joka esittää kysynnän muutoksien huomioimista. Kysynnän muutokset voidaan jakaa kahteen: kokonaismatkustuksen määrän muutokset ja kulkutavan valinnan muutokset, joista vain jälkimmäistä tarkastellaan. Tällöin matkustajille määritellään hyötyfunktio ja kulkutavan valinta lasketaan logittimallilla, jonka antamaan tulokseen vaikuttaa joukkoliikenteen palvelutaso. Kysynnän muutosten mallintaminen on hankalaa tiedettä ja esimerkiksi aikataulutuksen vuosittainen muuttaminen saattaa olla hyvinkin riittävä tapa sopeutua mahdollisiin kysynnän muutoksiin sen jälkeen kun niitä havaitaan. 8 Yhteenveto Olemme nyt formuloineet joukkoliikennelinjastojen suunnittelun optimointitehtävänä ja käsitelleet siihen esitettyjä geneettisiä algoritmeja käyttäviä ratkaisumenetelmiä. Olemme havainneet alkupopulaation generoinnissa kaksi eri menetelmää: ehdokasreittien- sekä täysin mielivaltaisten reittien ge- 16

neroinnin. Myös geneettisessä koodauksessa ja -operaattoreissa olemme havainneet kaksi suuntausta: binäärimerkkijonojen samankaltaisuutta hyödyntäviin teoreettisiin ominaisuuksiin luottavan ja standardimuotoisia geneettisiä operaattoreita käyttävän- sekä tehtäväkohtaista informaatiota sisällyttämään pyrkivän ja tehtäväkohtaisia operaattoreita kehittämään pyrkivän suuntauksen. Olemme havainneet tehtävän olevan laskennallisesti vaativa ja moniin muihin monimutkaisiin malleihin, kuten matkustajien reitinvalintaan, kytketyn. Geneettisiä algoritmeja on sovellettu tehtävään vasta kymmenisen vuotta ja tulevaisuudessa voidaan odottaa mallinnuksen edelleen kehittyvän ja menetelmää sovellettavan suuren kaupungin mittakaavaan, jolloin nähdään miten hyvin menetelmä sekä tuloksellisesti että laskennallisesti skaalautuu todellisessa tilanteessa. 17

Viitteet [1] Partha Chakroborty and Tathagat Dwiwedi. Optimal route network design for transit systems using genetic algorithms. Engineering Optimization, 34(1):83 100, 2002. [2] Steven Chien, Zhaowei Yang, and Edwin Hou. Genetic algorithm approach for transit route planning and design. Journal of Transportation Engineering, 127(3):200 207, 2001. [3] Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, and Clifford Stein. Introduction to Algorithms, Second Edition. The MIT Press, 2001. [4] Wei Fan and Randy B. Machemehl. Optimal transit route network design problem: Algorithms, implementations, and numerical results. Technical Report SWUTC/04/167244-1, Center for Transportation Research, University of Texas at Austin, May 2004. [5] David E. Goldberg. Genetic Algorithms in Search, Optimization, and Machine Learning. Addison-Wesley, 1989. [6] S. N. Kuan, H. L. Ong, and K. M. Ng. Solving the feeder bus network design problem by genetic algorithms and ant colony optimization. Advances in Engineering Software, 37:351 359, 2005. [7] Somnuk Ngamchai and David J. Lovell. Optimal time transfer in bus transit route network design using a genetic algorithm. Journal of Transportation Engineering, 129(5):510 521, 2003. [8] S. B. Pattnaik, S. Mohan, and V. M. Tom. Urban bus transit route network design using genetic algorithm. Journal of Transportation Engineering, 124(4):368 375, 1998. [9] V. M. Tom and S. Mohan. Transit route network design using frequency coded genetic algorithm. Journal of Transportation Engineering, 129(2):186 195, 2003. 18