Minimilatenssiongelman ratkaisualgoritmeja

Koko: px
Aloita esitys sivulta:

Download "Minimilatenssiongelman ratkaisualgoritmeja"

Transkriptio

1 Aalto-yliopisto Perustieteiden korkeakoulu Teknillisen fysiikan ja matematiikan tutkinto-ohjelma Antti Salmela Minimilatenssiongelman ratkaisualgoritmeja Kandidaatintyö Espoo Työn valvoja: Työn ohjaaja: Prof. Harri Ehtamo Prof. Harri Ehtamo Työn saa tallentaa ja julkistaa Aalto-yliopiston avoimilla verkkosivuilla. Muilta osin kaikki oikeudet pidätetään.

2 Sisällysluettelo 1.Johdanto Minimilatenssiongelman esittely Minimilatenssiongelman määrittely matkustavan kauppamiehen ongelman pohjalta Minimilatenssiongelman virtausmääritelmä Eksakteja ratkaisualgoritmeja joihinkin erikoistilanteisiin Puugraafi, jossa solmukohtien väliset etäisyydet ovat samat Puugraafi, jonka halkaisija on Kategorisempi hahmottelu tilanteille, joihin löytyy polynomiaikainen ratkaisu Ei-eksakteja ratkaisualgoritmeja Geneettinen algoritmi Kohennettu geneettinen algoritmi minimilatenssiongelmalle Kohennetun geneettisen algoritmin kokeelliset tulokset ja johtopäätökset niistä Tabualgoritmi ja minimilatenssiongelma, johon on lisätty palkkiot Palkkioihin pohjautuva minimilatenssiongelma Tabualgoritmi palkkioihin pohjautuvan minimilatenssiongelman ratkaisemiseksi Yhteenveto Lähteet Liite A Liite B Liite C

3 1. Johdanto Tarkastellaan korjausmiestä, joka lähtee liikkeelle toimipisteestänsä ja jonka tarkoitus on käydä määrättyjen asiakkaiden luona täsmälleen yhden kerran ja sitten palata takaisin toimipisteeseensä. Kunkin asiakkaan luona korjausmies korjaa epäkunnossa olevan laitteen. Kun minimoidaan yhteenlaskettua aikaa, jonka kukin laite ehtii olla epäkunnossa, puhutaan optimointiongelmasta nimeltään matkustavan korjausmiehen ongelma (travelling repairman problem). Toisin sanoen tarkoitus on summata saapumisajat eri asiakkaiden luokse ja minimoida tätä saapumisaikojen summaa. Yleisempi termi, jota tässä työssä jatkossa käytetään tästä samasta saapumisaikojen summaa minimoivasta optimointitehtävästä, on minimilatenssiongelma (minimum latency problem). Tämä kandidaatintyö on kriittinen kirjallisuustutkimus siitä, minkälaisilla algoritmeilla minimilatenssiongelmaa voidaan olemassaolevan kirjallisuuden perusteella muun muassa ratkoa. Työssä sivutaan alkuvaiheessa myös optimointitehtävää nimeltään matkustavan kauppamiehen ongelma (travelling salesman problem, TSP), koska minimilatenssiongelma voidaan määritellä matkustavan kauppamiehen ongelmaa apuna käyttäen. Matkustavan kauppamiehen ongelmassa on tarkoitus etsiä paikasta toiseen kulkevalle kauppamiehelle nopein reitti, joka käy kaikissa määrätyissä paikoissa ja palaa alkupisteeseensä, mutta kuten todettua minimilatenssiongelmassa summataan jokainen saapumisaika eri paikkoihin, ja minimoidaan tätä saapumisaikojen summaa. Minimilatenssiongelma on laskennallisesti huomattavasti raskaampi kuin matkustavan kauppamiehen ongelma, mutta sen olennainen meriitti on, että siinä voidaan huomioida jokaisen kaupungin asiakkaat erikseen, eivätkä minkään yksittäisen kaupungin asiakkaat joudu odottamaan kohtuuttoman pitkää aikaa. Lisäksi eri kaupunkien tärkeyttä voidaan korostaa painokertoimilla. Näitä asioita ei voida ottaa huomioon esimerkiksi matkustavan kauppamiehen ongelmassa sen perusmuodossaan. Työn alussa minimilatenssiongelma esitellään. Ongelman esittelyn jälkeen käydään läpi muutamia eksakteja sekä ei-eksakteja ratkaisualgoritmeja minimilatenssiongelmaan. Koska minimilatenssiongelma on monissa tapauksissa NP-kova [1,5], matemaattisia malleja voidaan muodostaa rajoitetusti. Kirjallisuudesta joka tapauksessa löytyy joitakin eksakteja polynomiaikaisia ratkaisualgoritmeja sellaisiin suppeisiin erikoistilanteisiin, joissa tehtävä kuuluu P-joukkoon. Aluksi esittelen näistä tilanteista sellaisen jossa ollaan samansuuruisten etäisyyksien muodostamassa puugraafissa (tree network) [1,2], sitten tilanteen jossa ollaan puugraafissa, jonka halkaisija on 3, ja lopuksi joitakin tapauksia painotetusta minimilatenssiongelmasta (minimum weighted latency problem, MWLP). Ei-eksakteista algoritmeista sivutaan hieman approksimaatioalgoritmeja (approximation alghorithm) ja sitten käydään läpi kaksi heuristisista algoritmia, jotka ovat tabualgoritmi (tabu search) [5] ja geneettinen algoritmi (genetic algorithm) [4]. 3

4 2. Minimilatenssiongelman esittely 2.1 Minimilatenssiongelman määrittely matkustavan kauppamiehen ongelman pohjalta Olkoon G verkosto, joka koostuu solmukohtien joukosta V ja niiden välisten etäisyyksien joukosta E. Verkostossa on n kappaletta solmukohtia. Ne voivat hyvin olla vaikkapa asiakkaiden epäkunnossa olevia koneita, kuten johdannossa kuvattiin, mutta tästä eteenpäin niitä kuvataan yleisemmillä graafitermeillä. Merkitään solmukohtien x ja y väliseen nopeimpaan mahdolliseen reittiin kulunutta aikaa merkinnällä d(x,y). Solmukohtien joukko {v 1, v 2,...v n } kuvaa sitä järjestystä, jossa solmukohdat vieraillaan, siten että i:ntenä vierailtu solmukohta on v i. Jos lähdetään liikkeelle solmukohdasta s ja palataan lopuksi samaan solmukohtaan, on viimeisin vierailtava solmukohta v n oltava sama kuin solmukohta s. Tavoitteena on tässä välissä käydä mahdollisimman nopeasti kaikissa muissa solmukohdissa, joita on n-1 kappaletta. Tällöin saadaan lyhimmäksi mahdolliseksi kierrokseen kuluvaksi ajaksi: Ylläolevaa minimointitehtävää kutsutaan nimellä matkustavan kauppamiehen ongelma (TSP). Se muistuttaa paljon minimilatenssiongelmaa, mutta osoittautuu olevan monilta osin yksinkertaisempi ongelma kuin minimilatenssiongelma. Minimilatenssiongelma on joka tapauksessa helppo määritellä TSP:n avulla. Nimittäin jos solmukohta s:stä kuljetaan johonkin kierroksella olevaan solmukohtaan j, saadaan tähän keskeneräiseen kierrokseen kulunut aika seuraavalla lausekkeella, (1), (2) joka on sama lauseke kuin matkustavan kauppamiehen ongelmassa sillä erotuksella, että ollaan vain laskettu aika, joka kului j:nnenteen kaupunkiin saapumiseen, sen sijaan että oltaisiin kuljettu koko kierros. Ja koska minimilatenssiongelmassa minimoidaan saapumisaikojen summaa, se voidaan kirjoittaa seuraavaan muotoon, jossa summataan TSP:n keskeneräisten kierrosten saapumisajat yksi kerrallaan ensimmäisestä solmukohdasta n:nteen solmukohtaan. Tälloin saadaan saapumisaikojen summa kaikkiin solmukohtiin, ja kun sitä minimoidaan, saadaan minimilatenssiongelmalle lauseke: min. (3) Tämän muotoilun samankaltaisuuden takia minimilatenssiongelmaa voidaan pitää yhtenä matkustavan kauppamiehen ongelman varianttina. Se vain on laskennallisesti perusmuotoa huomattavasti raskaampi, koska TSP:ssä perusmuodossaan minimoidaan vain viimeistä termiä tästä summalausekkeesta. 4

5 2.2 Minimilatenssiongelman virtausmääritelmä Minimilatenssiongelma voidaan määritellä myös suoraan ilman viittausta matkustavan kauppamiehen ongelmaan. Yksi tällainen määritelmä on niin sanottu virtausmääritelmä (flow formulation) [3], joka on matemaattisesti suorempi ja myös laskennallisesti tehokkaampi muotoilu minimilatenssiongelmalle. Virtausmääritelmä on seuraavanlainen: Määritellään G,E ja V kuten aiemminkin, ja lisäksi asetetaan joukko K=V, jossa kullekin solmukohdalle k K täytyy tehdä yksi vierailu, ja minimilatenssiongelmalle tyypilliseen tapaan tarkoitus on minimoida näihin solmukohtiin kohdistuvien saapumisaikojen summaa. Määritellään lisäksi: aika, joka kuluu kuljettaessa i:stä j:hin = summaus kuinka monta kertaa i:stä on kuljettu kokonaisuudessaan j:hin. Tätä kutsutaan myös virtaukseksi, josta kyseessä oleva minimilatenssiongelman muotoilu saa nimensä. Nyt minimoitava kohdefunktio on seuraava, min, (4) ja rajoitusehdot ovat: (5) (6) (7) (8) (9) (10) (11) (12) (13) (14) (15) 5

6 , (16) (17), (18) Nyt minimoitava kohdefunktio (4) summaa kokonaisajan, joka verkostossa tulee kulutettua. Lausekkeet (5) ja (6) seuraavat tehtävänannosta, jossa x on määritelty. Ne takaavat sen, ettei kuljettu reitti voi haarautua moneen eri suuntaan samanaikaisesti. Rajoitus (7) varmistaa sen, että kokonaisvirtaus aloituspisteestä on yhtäsuuruinen verkoston solmukohtien lukumäärän kanssa, joissa kaikissa pitää käydä. Rajoitus (8) kertoo, että kun kuhunkin solmukohtaan saapuvasta virtauksesta vähennetään kyseisestä solmukohdasta lähtevä virtaus, saadaan tulokseksi 1. Rajoitus (9) varmistaa, että kaikki verkoston virtaus summattuna on yhtäsuuruinen kuin. Rajoitus (10) puolestaan varmistaa, että kaiken eri solmukohtien välillä tapahtuvan virtauksen on pakko olla pienempää tai yhtäsuurta kuin solmukohtien lukumäärä, eli pienempää kuin aiemmin määritelty kokonaisvirtaus. Rajoitus (11) kertoo etteivät virtausta kuvaavat muuttujat ole negatiivisia, ja se että muuttujat x ovat binäärisiä varmistetaan rajoituksella (12). Rajoitukset (13)- (14) takaavat että kullakin i:llä ja j:llä on vain yksi i:nnes ja j:nnes solmukohta jossa käydään. Rajoitus (15) kertoo, että ennen ensimmäistä vierailtua solmukohtaa lähdetään liikkeelle lähtöpisteestä. Rajoitukset (16)-(17) liittävät yhteen p:n ja g:n, ja viimeinen rajoite (18) takaa sen, että p on binäärinen. Virtausmääritelmän hyödyt ovat lähteen [3] mukaan siinä, että tällä tavalla muotoiltua minimilatenssiongelmaa ratkaistaessa laskenta-aika on huomattavasti pienempi ja laskettavissa olevat tehtävät ovat selkeästi solmukohtien lukumääriltään suurempia, kuin esimerkiksi Fischettin [18] tai Eijln [19] muotoilemissa minimilatenssiongelmissa. Lisäksi GAP LR (linear relaxation gap) on virtausmääritelmässä selvästi pienempi verrokkeihinsa nähden. GAP LR tarkoittaa optimin ja alarajan suhteellista erotusta. Virtausmääritelmän tehokkuus verrattuna Fischettin ja Eijln muotoiluun sekä vaikkapa ylempänä esitettyyn matkustavan kauppamiehen ongelman pohjalta tehtyyn muotoiluun johtuu sen suuresta joukosta rajoitusehtoja, jotka parantavat mallin laskentakapasiteettia. Olennaisimpia rajoitusehtoja ovat (9) ja (13)-(18), joita ilman mallin ratkaisemistehokkuus palautuisi suurin piirtein samalle tasolle kuin se on Fischettin muotoilussa. 6

7 3. Eksakteja ratkaisualgoritmeja joihinkin erityistilanteisiin Minimilatenssiongelma on perusmuodossa NP-ongelma, joka tarkoittaa sitä, että sille ei tunneta polynomiaikaista algoritmia. On kuitenkin joitakin erityistapauksia, joissa ongelma kuuluu P- joukkoon ja sille löytyy polynomiaikainen algoritmi, mutta niitä ei ole erityisen montaa. Kirjallisuudessa parhaiten tunnettuja tapauksia, joissa eksakti ratkaisu löytyy, ovat puugraafi (tree network) jossa solmukohtien etäisyydet ovat samat [6], puugraafi jonka halkaisija on 3 [2], verkosto joka on polku [8], puugraafi jossa niin sanottujen lehtien lukumäärä on vakio [9] sekä eräät yleisluontoisemmat tilanteet painotetusta minimilatenssiongelmasta [7]. Käyn läpi tässä luvussa kaksi ensinmainittua tapausta ratkaisualgoritmeineen näistä erityistilanteista, joissa minimilatenssiongelmalla on polynomiaikainen ratkaisu. Lopuksi käydään yhteenvetona läpi minimilatenssiongelmaa yleisemällä tasolla ottamalla huomioon painokertoimet, ja lisäksi käydään läpi joitakin periaatteita, joihin perustuu se, että luvun alkupuolella esitetyille tapauksille on olemassa eksaktit ratkaisut. 3.1 Puugraafi, jossa solmukohtien väliset etäisyydet ovat samat Eräs yksinkertaisimmista minimilatenssiongelman ratkaisualgoritmeista löytyy lähteestä [6] ja koskee tapausta, jossa verkosto on puugraafi, ja kaikkien solmukohtien väliset etäisyydet ovat samat. Tällöin ratkaisualgoritmi mistä tahansa aloituspisteestä käsin on yksinkertaisesti mikä tahansa puugraafin syvyyssuuntainen läpikäynti (depth-first). Syvyyssuuntainen läpikäynti on käyty alla läpi lyhyesti. Syvyyssuuntainen läpikäynti 1. Lähdetään aloituspisteestä johonkin puun haaraan ja edetään koko haaran syvyyteen, kunnes tulee vastaan umpikuja. 2. Umpikujasta lähdetään takaisinpäin sen verran, että tulee vastaan mikä tahansa toinen haara, jossa ei ole vielä käyty, ja ensimmäisen vaiheen tapaan kuljetaan sitä haaraa mahdollisimman pitkälle. Toista vaihetta toistetaan niin kauan, että kaikki solmukohdat on käyty läpi, joihin on mahdollista päästä aloitussolmusta. Todistus tämän syvyyssuuntaisen läpikäynnin pätevyydestä tässä nimenomaisessa minimilatenssiongelman tapauksessa löytyy ainakin lähteistä [6] ja [2], joista esittelen lyhyesti jälkimmäisen lähteen todistuksen. Se seuraa suoraan kahdesta alla olevasta lauseesta 3.1 ja 3.2: 7

8 Lause 3.1. Tehdään mielivaltainen kierros puugraafissa, jossa solmukohtien väliset etäisyydet ovat samat. Merkitään etäisyyttä kaikkien solmukohtien välillä arvolla 1. Jos on mikä tahansa i:nnes ensimmäistä kertaa vierailtu solmukohta (, :hen tultaessa kuljettu matka M aloituspisteestä on aina enemmän tai yhtä suuri kuin -syvyys( ), missä syvyys( ) tarkoittaa solmukohdan etäisyyttä aloituspisteestä. Lause 3.2. Tehdään syvyyssuuntainen läpikäynti mielivaltaisesta aloituspisteestä liikkeelle lähtien puugraafissa, jossa solmukohtien väliset etäisyydet ovat samat. Jos on mikä tahansa i:nnes ensimmäistä kertaa vierailtu solmukohta (, :hen tultaessa kuljettu matka M on täsmälleen -syvyys( ). Todistus lauseille 3.1 ja 3.2. Astetaan i:lle jokin vakioarvo, jolloin lause 3.1. osoittautuu ilmeiseksi: Palattaessa alkupisteeseen i:nnen ensimmäistä kertaa vieraillun solmukohdan jälkeen, on selkeästi kuljettu matka tällaisissa tapauksissa vähintään 2i askelta. Se voi olla myös enemmän kuin sen verran, koska mielivaltaisella kierroksella on voitu kulkea takaisinpäinkin ennen alkupisteeseen palaamista. Lisäksi syvyyssuuntaisessa läpikäynnissä se on lauseen 3.2. mukaisesti täsmälleen sen verran, koska algoritmissa ei kuljeta minkään solmukohtien välistä etäisyyttä koskaan useammin kuin 2 kertaa, ja aina kun verkoston haaroista palataan alkupisteeseen, pitkittyy kierros arvolla syvyys( ), ja saapumisaika i:nnenteen solmukohdaan on täsmälleen 2i-syvyys( ). 3.2 Puugraafi, jonka halkaisija on 3 Puugraafilla, jonka halkaisija on 3, tarkoitetaan verkostoa, jossa on kaksi keskussolmukohtaa, joiden välillä on polku. Lisäksi molemmista keskussolmukohdista lähtee eri suuntiin muita polkuja, jotka päättyvät umpikujaan heti ensimmäiseen solmukohtaan tultaessa. Näin etäisyys verkoston toiselta laidalta toiselle laidalle on aina maksimissaan kolmen välimatkan mittainen. Esimerkkitapaus tällaisesta verkostosta on alla olevassa kuvassa 1. Kuva 1. Esimerkki puugraafista, jonka halkaisija on 3. 8

9 Lähde [2] kertoo, että tällaiseen verkostoon saadaan ratkaisualgoritmi dynaamisella optimoinnilla. Dynaamisen optimoinnin tilat koostuvat kahdesta kokonaisluvusta k L ja k R, jotka tarkoittavat vasemmasta ja oikeasta keskussolmukohdasta lähtevien vierailtujen haarojen lukumäärää. Näiden tilojen lukumäärä on muotoa O(n 2 ). Optimoinnin tuloksena saatu algoritmi toimii siten, että keskussolmukohdista lähdetään niistä haarautuviin polkuihin etäisyyksien mukaisesti järjestyksessä lyhyimmästä pisimpään. Aina kun toisesta keskussolmukohdasta kuljetaan toiseen, niiden välinen etäisyys huomioidaan määritettäessä keskussolmukohdista haarautuvien päätepisteiden etäisyyksiä. 3.3 Kategorisempi hahmottelu tilanteille, joihin löytyy polynomiaikainen ratkaisu Tämän alaotsakkeen alla käydään pääosin lähteen [7] pohjalta yleisluontoisemmin läpi sitä, mihin perustuu että minimilatenssiongelmia voidaan joissakin tapauksissa optimoida dynaamisella ohjelmoinnilla polynomisessa ajassa. Tässä kappaleessa tarkastellaan minimilatenssiongelman eri variaatioita aiempaa laajemmin huomioimalla minimilatenssiongelman painokertoimet, jolloin ongelmaa kutsutaan painotetuksi minimilatenssiongelmaksi (minimum weighted latency problem, MWLP). Lisäksi tässä kappaleessa sivutaan usean eri kauppamiehen minimilatenssiongelmaa. Näistä minimilatenssiongelman yleisluontoisemmista variaatioista käydään läpi tuloksia, jotka ovat myös välttämättömiä edellytyksiä aiemmin läpikäytyjen erikoistapausten ratkaisualgoritmien olemassaololle. Aiemmin läpikäydyt minimilatenssiongelman muotoilut ovat itse asiassa vain tasakertoiminen osajoukko painotetusta minimilatenssiongelmasta, ja tässä mielessä tämä kappale toimii myös eräänlaisena yhteenvetona luvun 3 eksakteille ratkaisualgoritmeille. Painotettu minimilatenssiongelma tarkoittaa sitä, että summataan saapumisaikoja, joilla kullakin on edessään erisuuruisia painokertoimia. Reaalimaailmassa tämä voisi tarkoittaa esimerkiksi tilannetta, jossa kiertelevällä kauppamiehellä on eriarvoisia asiakkaita, ja painokertoimet kuvaavat asiakkaiden erisuuruista rahallista arvoa. Määritellään painotettu minimilatenssiongelma formaalimmin: Olkoon, ja määritelty kuten aiemminkin. Nyt lisäksi jokaiseen solmukohtaan liittyy painokerroin, joka kuvaa kyseisen solmukohdan tärkeyttä. Olkoon kierros, joka alkaa aloituspisteestä s, käy läpi kaikki verkoston solmukohdat ja palaa aloituspisteeseen s. Solmukohtien lyhin etäisyys verkostossa ilmaistaan merkinnällä. Kun kierroksella P käydään ensimmäisen kerran :ssa ja sen jälkeen ensimmäisen kerran :ssä, näiden välillä kuljettua matkaa ilmaistaan merkinnällä. Painotettu latenssi kierrokselle on:. (19) Määritelmä 3.1. Verkostolle ja aloituspisteelle, painotettu minimilatenssiongelma on minimointitehtävä, jossa on tarkoitus löytää s:stä alkava kierros, joka minimoi lausekkeen (19). 9

10 Määritellään osakierrokseksi ja merkitään sen solmukohtia termillä. Merkitään lisäksi :n solmukohtien painokerrointen summaa termillä, koko verkoston solmukohtien painokerrointen summaa termillä ja osakierroksen pituutta termillä. Nyt voidaan kirjoittaa jatkoa ajatellen tarpeellinen lauseke:. (20) Lähteen [7] mukaan painotetut minimilatenssiongelmat voidaan eräissä tapauksissa ratkaista dynaamisella optimoinnilla. Pääperiaate, johon lähteen [7] tulokset nojaavat, on että mikäli jokin minimilatenssiongelmaan liittyvä verkosto voidaan jakaa osaverkostoiksi siten, että kussakin osaverkostossa kulkeva osareitti tai osaratkaisu kulkee kyseisen osaverkoston solmukohdat samassa keskinäisessä järjestyksessä kuin ne kuljetaan globaalissa ratkaisussa, voidaan kyseinen ongelma ratkaista dynaamisella ohjelmoinnilla.. Alla on esitetty tämä pääajatus hieman muodollisemmin ja yksityiskohtaisemmin lauseeksi kirjoitettuna. Määritelmä 3.2. Kun verkosto jaetaan osaverkostoiksi :ksi ja :ksi solmukohdan kohdalta, pätee ja :n ja :n unioni on. Ositus siis säilyttää kaikki solmukohdat. Lause 3.3. Oletetaan, että verkosto G voidaan jakaa k:ksi eri osaverkostoksi joissakin leikkauskohdissa. Mikäli osaverkostoissa kuljetuissa optimaalisissa osakierroksissa kuljetaan solmukohtien läpi samassa järjestyksessä kuin globaalissa ratkaisussa kuljetaan, ja osaratkaisut voidaan ratkaista ajassa, painotettu minimilatenssiongelma verkossa G voidaan ratkaista ajassa dynaamisella optimoinnilla. Todistus. Koska kunkin osaverkoston solmukohtien vierailujärjestys on ennaltamäärätty koko globaalin verkon käsittävällä optimikierroksella, voidaan :ssä ( ) solmukohdassa kulkevalle osareitille määrittää tilavektori, missä, ja jossa tilavektorin komponenttien summa on m. Tilavektorin komponentit tarkoittavat kussakin osaverkostossa vierailtujen solmukohtien lukumäärää, josta seuraa että niiden summa on m. on rajoitus sille, missä osaverkostossa osakierroksen täytyy pysähtyä. Määritellään, joka tarkoittaa kaikkien sellaisten osakierrosten minimiä, jonka tilat voidaan esittää aiemmin kuvatuilla muuttujilla ja. Olkoon viimeisin i:nnessä osaverkostossa vierailtu solmukohta jokaisella sellaisella osakierroksella jonka tila voidaan kuvata muuttujalla ja olkoon u se solmukohta jossa vieraillaan seuraavaksi osaverkostossa. Määritellään sellaiseksi vektoriksi, joka saadaan kun :n r:ttä komponenttia suurennetaan yhdellä. voidaan ilmaista seuraavasti:, (21) jossa tarkoittaa vierailtujen solmukohtien joukkoa osakierroksella, jota kuvataan muuttujalla. Oletetaan että solmukohta ei ole kierroksen alkupiste ja että ei ole viimeinen vierailtu solmukohta :nnellä osakierroksella. Määritellään myös, jos :n :nnes komponentti on nolla. Painotettu minimilatenssiongelma on yhtäsuuruinen lausekkeen kanssa, kun on koko verkon solmukohtajoukkoa kuvaava vektori. Koska tällaisia vektoreita on enintään 10

11 kappaletta, tilojen lukumäärä on voidaan ratkaista ajassa jokaista tilaa kohden.. Aikakompleksisuus seuraa siitä, että funktio T Lauseesta 3.3. seuraa se, että luvun 3 johdannossa mainitut kirjallisuudessa parhaiten tunnetut minimilatenssiongelman muodot ovat ratkaistavissa polynomisessa ajassa. Esimerkiksi luvun 3 johdannossa mainittu verkosto, joka on yksittäinen polku, on selkeästi tälläinen osaverkoiksi jaettavissa oleva reitti, jonka osaratkaisuissa käydään solmukohdat läpi samassa keskinäisessä järjestyksessä kuin ne käytäisiin koko verkon ratkaisussa. Luvun 3 johdannossa mainittiin myös puugraafi, jossa on k eri lehteä, ja sekin on tällainen verkosto: se voidaan jakaa origon kohdalta (josta lehdet lähtevät eri suuntiin) k:ksi eri osaverkostoksi, ja kun ongelma ratkaistaan erikseen kussakin eri osaverkostossa eli kussakin lehdessä, on vierailujärjestys kunkin lehden solmukohdissa sama kuin se on kokonaisratkaisussakin. Tämä sama periaate pätee myös kappaleessa 3.2 käsiteltyyn puugraafiin, jonka halkaisija on 3. Tämäkin kyseinen verkosto voidaan jakaa kahden keskussolmukohdan kohdalta kahteen osaverkostoon, joissa solmukohtien keskinäinen vierailujärjestys on sama kuin se on globaalilla koko verkon kattavalla reitillä. Lauseesta 3.3. seuraa myös, että minimilatenssiongelma on ratkaistavissa polynomisessa ajassa eräissä sellaisissa tilanteissa, joihin ei viitata kirjallisuudessa yhtä usein kuin yllä mainittuihin. Nämä tilanteet on listattu alle lauseiksi ja niistä johdetuiksi korollaareiksi. Lause 3.3. ei ole riittävä ehto kaikille näille tuloksille, mutta se on välttämätön ehto niille. Kukin tulos on todistettu tarkemmin lähteessä [7]. Lause 3.4. Oletetaan että on tähtiverkosto, jossa on yksi keskusssolmukohta, josta haarautuu eri suuntiin umpikujiin päättyviä polkuja. Jokaiselle H:n haaralle i ja j pätee: i:ssä käydään ennen j:tä optimaalisella kierroksella, jos, missä tarkoittaa minkä tahansa haaran solmukohtien yhteenlaskettuja painokertoimia ja tarkoittaa haaran x pituutta. Lauseesta 3.4. ja ja lauseesta 3.3. seuraavat korollaari 3.1. ja korollaari 3.2. Korollaari 3.1. Olkoon sellainen tähtiverkosto, joka on verkosta erilleen katkaistu osaverkosto. H:n solmukohtien vierailujärjestys :llä kulkevalla optimireitillä voidaan ratkaista ajassa Korollaari 3.2. Painotettu minimilatenssiongelma verkossa, jossa on k niin sanottua sisäistä solmukohtaa, voidaan ratkaista ajassa Lause 3.5. Minimilatenssiongelman optimaalisen reitin aloituspiste 1-ulotteisella polulla, jossa on n solmukohtaa, voidaan ratkaista ajassa Viimeiset tulokset koskevat sellaista painotettua minimilatenssiongelmaa, jossa verkostossa on k eri kiertävää tahoa. Muilta osin se on samanlainen kuin tavanomainenkin minimilatenssiongelma, mutta ero on se, että kaikkien kiertäjien ei tarvitse käydä kaikissa solmukohdissa. Riittää, että kussakin solmukohdassa käy vain jokin kiertäjistä. 11

12 Lause 3.6. Painotettu minimilatenssiongelma, jossa k kiertävää tahoa kulkee yksiulotteisen polun muodostamassa verkostossa, voidaan ratkaista ajassa kun, ja ajassa kun. Korollaari 3.3. Painotettu minimilatenssiongelma, jossa k kiertelevää tahoa kulkee ympyrän tai kehän muotoisessa verkostossa, voidaan ratkaista ajassa Luku 3 päättyy tähän. Tässä luvussa käytiin läpi kaikki tämän työn lähdeluettelosta löytyneet minimilatenssiongelman tapaukset, joissa polynomiaikainen ratkaisu tunnetaan. Seuraavassa luvussa käydään läpi joitakin approksimaatioalgoritmeja ja heuristisia algoritmeja minimilatenssiongelmaan. 4. Ei-eksakteja ratkaisualgoritmeja Eräs tapa ratkoa minimilatenssiongelmaa ei-eksaktilla tavalla ovat approksimaatioalgoritmit. Ensimmäiset tunnetut approksimaatioalgoritmit minimilatenssiongelmaan teki tiettävästi Blum et al. [2]. Kyseessä olivat 144-approksimaatio metriselle tapaukselle ja 8-approksimaatio puugraafeille. Molempia algoritmeja parantelivat Goemans ja Kleinberg [12]. Sittemmin erilaisia approksimaatioalgoritmeja minimilatenssiongelman eri tapauksiin ovat kehitelleet ainakin Grag [13], Arora ja Karakostas [14], ja Koutsopias, Papadimitriou sekä Yanakakis [9]. Toinen ei-eksakti tapa minimilatenssiongelman ratkaisuun, jota tässä työssä käydään läpi tarkemmin, ovat heuristiset ratkaisualgoritmit. Heuristiikka tarkoittaa yksinkertaistettuna yrityksen ja erehdyksen kautta tapahtuvaa ongelmanratkaisua, joka pohjautuu monesti iterointiin. Sekään ei anna eksaktia ratkaisua kuten eksaktit algoritmit antavat, mutta sen hyöty on siinä että sen avulla voidaan saada eksakteja algoritmeja pienemmällä vaivalla ja laskentateholla riittävän lähelle osuvia ratkaisuja. Heuristiset menetelmät eroavat siinä mielessä approksimaatioalgoritmeista, että niitä käytettäessä ei saada tietoa siitä, kuinka kauas jäädään optimiratkaisusta, kun taas approksimaatioalgoritmeja käytettäessä tiedetään kuinka kauas pahimmassa tapauksessa voidaan jäädä optimista. Tässä kappaleessa käyn läpi lähemmin kaksi hyvin yleistä heuristista algoritmia, joita voidaan käyttää minimilatenssiongelman ratkaisemiseen, ja jotka ovat paljon käytettyjä muissakin optimointitehtävissä. Toinen on geneettinen algoritmi, ja toinen on tabualgoritmi. Geneettisen algoritmin toiminta on referoitu lähteestä [4], ja tabualgoritmia käydään läpi lähteen [5] pohjalta. Aivan aluksi kuitenkin havainnollistetaan näiden algoritmien tarpeellisuutta esimerkillä 4.1. jossa yritetään ratkaista pientä malliverkostoa mielivaltaisiin kierroksiin perustuvalla Monte Carlo simulaatiolla. 12

13 Esimerkki 4.1. Tarkastellaan kuvan 2 esimerkkiverkostoa. Verkosto on peräisin lähteestä [3], jossa on myös kerrottu reitti, joka minimoi saapumisaikojen summan kyseisessä verkostossa. Ratkaisu on piirretty kuvaan 2, ja se on 9 + (9+10) + ( ) + ( ) + ( ) + ( ) = 259. Tässä esimerkissä on tarkoitus tutkia, kuinka lähelle kyseistä ratkaisua päästään Monte Carlo simulaatiolla. Kuva 2. Esimerkkiverkosto ja optimireitti joka minimoi saapumisaikojen summan. Monte Carlo- simulaatiota tehtiin siten, että verkostossa kuljettiin täysin satunnaisia kierroksia, jotka aloitettiin solmukohdasta 1. Kussakin verkoston haarassa arvottiin mielivaltaisesti, että mihin suuntaan lähdetään. Satunnaiskierrosta jatkettiin niin kauan, että kaikissa solmukohdissa oli käyty ja lisäksi palattu aloitussolmukohtaan 1. Aluksi satunnaiskierroksia tehtiin 1000 kappaletta, ja katsottiin missä reitissä oli pienin latenssi eli saapumisaikojen summa. Tätä 1000 kierroksen simulaatiota toistettiin 10 kertaa. Tämän jälkeen satunnaiskierroksia tehtiin ja etsittiin samaan tapaan pienilatenssisin reitti. Myös tämä simulaatio tehtiin 10 kertaa. Simulaatiot tehtiin numeeriseen matriisilaskentaan perustuvalla MATLAB 7.1 ohjelmistolla. Ohjelmistoa käytettiin koneella, jossa oli 3.17GHz-nopeuksinen prosessori. Koodi jota simulaatioissa käytettiin on nähtävissä liitteessä A. Kun 1000 satunnaiskierroksen simulaatiota toistettiin 10 kertaa, pienilatenssisimmat reitit kullekin simulaatiolle olivat 296, 259, 259, 269, 259, 271, 269, 259, 269 ja 281. Aika joka näihin kaikkiin simulaatiohin yhteensä kului oli sekuntia. Saaduista tuloksista nähdään, että 1000 satunnaiskierroksen simulaatiossa ei lähellekään aina löydetä optimireittiä, joka on 259. Tässä simulaatiossa se löydettiin neljässä tapauksessa kymmenestä. Kun puolestaan satunnaiskierrosta toistettiin 10 kertaa, pienilatenssisimmat kullekin simulaatiolle olivat 259, 259, 259, 259, 269, 259, 259, 259, 259, satunnaiskierroksen simulaatiossa optimireitti löydettiin yhdeksässä tapauksessa kymmenestä. Näihin 10 simulaatioon kului aikaa kokonaisuudessaan sekuntia. Kummassakaan tapauksessa ei löydetty kaikilla kerroilla optimaalista reittiä, ja etenkin jälkimmäiseen simulaatioon kulunut aika oli huomattavan pitkä. 13

14 Minimilatenssiongelma on siis hyvin raskas ongelma ratkaistavaksi näinkin pienessä verkostossa, ja kehittyneemmät algoritmit sen ratkaisemiseksi ovat tarpeellisia. Seuraavassa kappaleessa tarkastellaan geneettistä algoritmia ja sen tehokkuutta verrataan tämän esimerkin Monte Carlo iteraatioon, joka havaittiin jokseenkin tehottomaksi. 4.1 Geneettinen algoritmi Geneettinen algoritmi on viime vuosina suosituksi tullut optimointimenetelmä, joka ottaa nimikkeistöä genetiikasta ja luonnossa tapahtuvasta evoluutiosta. Siinä eri osaratkaisujen voidaan vertauskuvallisesti sanoa olevan selviytymistaistelussa ja evoluution alaisina kuten eliöyksilöt luonnossa. Osaratkaisuja yhdistellään toisiinsa tai muunnellaan satunnaisesti, ja epäsopivimmat ratkaisut putoavat prosessin aikana pois. Algoritmin suorittamista jatketaan, kunnes riittävän hyvä osaratkaisu on löytynyt. Geneettisen algoritmin analogiat vastaaviin evoluution käsitteisiin ovat selkeitä: osaratkaisujoukkoja kutsutaan populaatioiksi, joiden jäseniä eli bittijonoja kutsutaan usein kromosomeiksi. Nämä puolestaan koostuvat alkioista, joita kutsutaan geeneiksi. Geneettisen algoritmin hyvinä puolina pidetään sen tehokkuutta vaikeissa ja monia parametreja sisältävissä tehtävissä, joissa eksaktin ratkaisun löytäminen on haastavaa. Määritellään aluksi tarkemmin geneettisen algoritmin yleismuotoinen rakenne. Se on kirjoitettu alle koodikielissä usein käytetyn while-silmukan muotoon. Geneettinen algoritmi yleisessä muodossaan: Muodostetaan alkuperäinen osajoukkoratkaisu joillakin yksinkertaisemmilla algoritmeilla; While not (algoritmin lopettamiskriteeri on täytetty) Etsitään jokin määrä parhaita ratkaisuja osaratkaisujoukosta; Yhdistellään parhaimpien ratkaisujen ominaisuuksia toisiinsa; Muunnellaan osaratkaisuja satunnaisesti; Lisätään yhdistelmäratkaisut osaratkaisujoukkoon; poistetaan huonoimmat ratkaisut osaratkaisujoukosta; Algoritmin ulostulo: paras ratkaisu, joka osaratkaisujoukosta löytyy. Tämän algoritmin toimintaa on testattu eräillä parametreilla alla olevassa esimerkissä 4.2. Siinä käydään läpi simulaatioita, joissa geneettistä algoritmia testataan samassa verkostossa, jota tarkasteltiin aikaisemmin esimerkissä 4.1. Tällä tavoin geneettisen algoritmin tehokkuutta 14

15 päästään vertaamaan aikaisemman esimerkin Monte Carlo simulaatioon minimilatenssiongelman ratkaisemisessa. Esimerkki 4.2. Geneettistä algoritmia testattiin kuvan 2 verkostoon, jota tarkasteltiin jo aiemmin. Tarkoituksena oli jälleen etsiä reitti, joka ratkaisee minimilatenssiongelman eli minimoi saapumisaikojen summan. Yllä esitettyä geneettistä algoritmia testailtiin useilla eri parametreilla, ja tähän esimerkkiin on kirjattu eräs verrattain hyvin toiminut toteutus. Aluksi muodostettiin täysin satunnaisista kierroksista 15 osaratkaisun osaratkaisujoukko. Tämän jälkeen etsittiin kaksi parasta ratkaisua ja yhdistettiin ne toisiinsa, mikäli ne ristesivät jonkun solmukohdan kohdalta. Risteävistä solmukohdista poissuljettiin ensimmäinen ja toinen solmukohta, koska siinä vaiheessa kuljetut reitit olisivat vielä keskenään aivan samat. Lisäksi risteävistä solmukohdista poissuljettiin viimeinen solmukohta, koska kaikki minimilatenssiongelmaan käyvät ratkaisuyritelmät risteävät viimeisessä solmukohdassa joka tapauksessa. Mikäli reitit eivät ristenneet, ei kyseisen iteraation aikana yhdistelty ratkaisuja toisiinsa. Kunkin iteraation aikana 5 huonointa ratkaisuyritelmää poistettiin osaratkaisujoukosta ja muodostetiin uusia satunnaisratkaisuja, jotta osaratkaisujoukon koko pysyi samana. Simulaatiot tehtiin esimerkin 4.1. tapaan MATLAB 7.1 ohjelmistolla, jota ajettiin koneella, jossa oli 3.17GHz-nopeuksinen prosessori. Geneettiseen algoritmin simuloinnin Matlabkoodi on nähtävillä liitteessä B. Geneettinen algoritmi löysi kuvan 2 esimerkkiverkostoon optimiratkaisut verrattain nopeasti. Kymmeneen simulaatioon, joissa kussakin tapauksessa geneettinen algoritmi löysi optimiratkaisun 259, kului aikaa s. Iteraatioiden määrä kussakin simulaatiossa oli 184, 373, 426, 201, 20, 718, 491, 152, 161 ja 688. Verrattaessa iteraatioita Monte Carlo simulaatin iteraatiolukuihin, on luvut kerrottava viidellä, koska kullakin geneettisen algoritmin iteraatiokierroksella luotiin 5 uutta osaratkaisua. Vertailujen perusteella tämän esimerkin geneettinen algoritmi on tehokkaampi kuin esimerkin 4.1 Monte Carlo -simulaatio. Testattujen iteraatioiden lukumäärä Monte Carlo simulaatiossa oli 1000 ja , ja näilläkään iteraatiomäärillä ei aina löydetty optimiratkaisua. Tämän esimerkin simulaatiot antavat viitteitä siitä, että geneettinen algoritmi yleisessä muodossaan on toimiva työkalu minimilatenssiongelman ratkaisuun Kohennettu geneettinen algoritmi minimilatenssiongelmalle [4] Lähde [4] ehdottaa minimilatenssiongelman ratkaisuun alla olevaa muotoilua geneettisestä algoritmista. Se on kirjoitettu koodikielistä tuttujen while- ja for-silmukoiden muotoon. Kyseinen algoritmi esitellään siksi, että se on toistaiseksi paras kirjallisuudesta löytyvä geneettinen algoritmi minimilatenssiongelman ratkaisuun, ja lisäksi se havainnollistaa geneettistä algoritmia yleisemminkin. Algoritmin eri vaiheet on selostettu myöhemmin tässä kappaleessa tarkemmin, mutta itse algoritmi on seuraavanlainen: 15

16 Kohennettu geneettinen algoritmi: Muodostetaan alkuperäinen osaratkaisujoukko; While not (algoritmin lopettamiskriteeri on täytetty) If(osaratkaisujen samankaltaisuus ylittää määrätyn kriteerin) Säilytetään optimaalisin osaratkaisu ja muodostetaan muu osaratkaisujoukko uudelleen ; For (i=1; i=< osaratkaisujoukon koko; i++) Valitaan parhaimmat osaratkaisut valintaopetaattorilla; Yhdistellään parhaimpien ratkaisujen ominaisuuksia toisiinsa; Tehdään osaratkaisuihin satunnaisia muutoksia; Toteutetaan lokaalia optimia etsivä algoritmi; Lisätään yhdistelmäratkaisut osaratkaisujoukkoon; poistetaan ylimääräiset osaratkaisut osaratkaisujoukosta; Ulostulo: paras osaratkaisu, joka osaratkaisujoukosta löytyy. Lähteessä [4] on eritelty ylläolevan geneettisen algoritmin eri vaiheet täsmällisesti ja formaalisti, mutta niitä ei ole katsottu tarpeelliseksi kopioida aivan sellaisenaan kokonaisuudessaan tähän työhön. Sen sijaan alla on sanallisesti tiivistetty, kuinka kukin kohta algoritmissa toimii, ja mitä asiaa mikäkin termi tarkalleen ottaen tarkoittaa. Osaratkaisujoukon jäsenet ovat minimilatenssiongelman verkostojen solmukohdista koostuvia jonoja, joita voidaan kirjoittaa muotoon (v 1, v 2,..., v n ). Kukin jono tarkoittaa eri reittiä, jonka minimilatenssiongelman kauppamies voi valita, ja v i on i:nnes vierailtu solmukohta reitillä. Mitä suurempi on eri solmukohtiin tapahtuvien saapumisaikojen summa, sitä huonompi on osaratkaisujoukon yksilö, eli saapumisaikojen summa on kääntäen verrannollinen yksilön hyvyyteen. Tässä algoritmissa alkuperäinen osaratkaisujoukko muodostetaan seuraavasti: 70% muodostetaan siten, että arvotaan 70:30- painotuksella joko lähimmän naapurin algoritmilla [16] tai täysin satunnaisesti. Painotus tapahtuu niin, että ensin mainittu vaihtoehto on todennäköisempi, ja satunnaisyksilöt ovat epätodennäköisempiä. Loput 30% alkuperäispopulaatiosta luodaan Blum et al [2]- ja Goenmans & Kleinberg et al approksimaatioalgoritmeilla [12]. Valintaa näidenkin 16

17 algoritmien välillä painotetaan 70:30 suhdanteella. Erilaisuutta algoritmeihin on lähteen [4] mukaan haettu sen takia, että saataisiin osaratkaisujoukkoon mahdollisimman erilaisia jäseniä. Yhdistelmäratkaisujen tuottaminen keskenään ristetetyistä osaratkaisuista on minimilatenssiongelmaan tehdyissä geneettisissä algoritmeissa hankalampaa kuin sen esiasteessa matkustavan kauppamiehen ongelmassa. Matkustavan kauppamiehen ongelmassa solmukohtien optimaalisia järjestyksiä tietyissä solmukohtajonojen kohdissa voidaan kopioida sellaisenaan yhdistettävistä osaratkaisuista yhdistelmäratkaisuun, mutta minimilatenssiongelman tapauksessa tämä ei usein ole optimaalista, koska pienet muutokset jonon rakenteessa voivat aiheuttaa merkittäviä ei-lokaaleja muutoksia. Perusidea tässä minimilatenssiongelmaan kehitetyssä geneettisessä algoritmissa on se, että kaikista yhdisteltävien solmukohtajonojen alkioista käydään läpi vaihtoehdot sekä reitillä eteenpäin- että taaksepäin kulkemisen väliltä, ja yhdistelmäratkaisuun valitaan pienempilatenssisempi vaihtoehto. Tässäkin tapauksessa eri suuntien valintaa voidaan painottaa ennaltamäärättyjen todennäköisyyksien perusteella suuremman diversiteetin saamiseksi osaratkaisujoukkoon. Yhdistelmäratkaisuja tuottavan risteytysoperaattorin tarkka toiminta on kuvattu lähteessä [4] sivulla 11. Yhdistettävät osaratkaisut valitaan siten, että otetaan populaatiosta satunnaisotos osaratkaisuja ja niistä valitaan pienilatenssisimmat, jotka risteytetään. Yhdistettävien osaratkaisujen valintapaine kasvaa sitä enemmän, mitä enemmän ryhmässä on kelvollisuuseroja, ja tästä syystä valintapainetta voidaan haluttaessa lisätä valitsemalla odotusarvoisesti suurempia satunnaisotoksia, koska suuremmissa ryhmissä on suurempia latenssieroja. Algoritmin vaihe, jossa tehdään osaratkaisuihin satunnaisia muutoksia, tapahtuu siten että kukin satunnaisvaihtelun kohteena oleva osaratkaisu jaetaan kahteen osaan. Tämän jälkeen siirretään yksi kerrallaan toisen osan solmukohdat ensimmäiseen osayksilöön. Solmukohtien uudet sijainnit pyritään valitsemaan yksilön optimaalisuuden edesauttamiseksi. Tätä uudelleensijoittelua jatketaan niin kauan, että kaikki toisen osayksilön solmukohdat on sijoitettu ensimmäiseen osayksilöön. Myös tämän operaattorin tarkka ja eksakti kuvaus on lähteessä [4], ja se löytyy sivulta 11. For-silmukan kohta, jossa etsitään lokaalia algoritmia tarkoittaa 2-opt-node [17] tai 3-opt-nodealgoritmien [15] käyttöä lokaalin minimin paikallistamiseksi. Tässä tapauksessa näistä valitaan toinen algoritmi aina täysin satunnaisesti. Osaratkaisujoukon uudelleen luominen tarkoittaa geneettisessä algoritmissa toimintoa, jolla pyritään lisäämään osaratkaisujoukon jäsenten keskinäistä erilaisuutta ja näin välttämään lokaaliin optimiin päätymisen globaalin optimin sijaan. Kaikissa geneettisissä algoritmeissa ei ole tätä vaihetta, mutta tämän alaotsikon alla läpikäydyssä kohennetussa geneettisessä algoritmissa sitä käytetään, ja se on eräs tämän algoritmin ominaispiirteistä. Tässä algoritmissa se tarkoittaa sitä, että kun osaratkaisujoukon jäsenet on tarpeeksi paljon samanlaisia, vain kelvollisin osaratkaisu säilytetään, ja muut yksilöt muodostetaan uudelleen aiemmin kuvailluilla alkuperäisen osaratkaisujoukon muodostamiseen käytetyillä satunnaismenetelmillä jonkin määrätyn iteraatioiden lukumäärän jälkeen. 17

18 Algoritmi lopetetaan siihen, kun tietyn iteraatiokierrosmäärän jälkeen kelvollisin osaratkaisu ei ole kehittynyt lainkaan paremmaksi Kohennetun geneettisen algoritmin kokeelliset tulokset ja johtopäätökset niistä Lukuisat ylläolevan kohennetun geneettisen algoritmin parametrit ovat määrittelemättömiä ja ne täytyy määrittää kokeellisesti. Tällaisia ovat yhdistelmäratkaisujen muodostamiseen valittavan satunnaisotoksen koko, osaratkaisujoukon koko, satunnaisvaihteluiden todennäköisyys, yhdistelmäratkaisuissa käytettävät ennaltamäärätyt todennäköisyydet, iteraatioiden lukumäärä joka odotetaan ennen osaratkaisujoukon uudelleen luomista ja iteraatioiden määrä joiden jälkeen algoritmi lopetetaan mikäli kelvollisin yksilö ei ole kehittynyt. Nämä voidaan määrittää kokeellisesti siten, että pidetään aina muita parametreja vakioina ja vaihdellaan yhtä parametria, ja etsitään sille yrityksen ja erehdyksen kautta paras mahdollinen arvo. Lähteen [4] mukaan näitä parametreja on määritetty erilaisissa tapauksissa, joissa geneettistä algoritmia on sen jälkeen on testailtu TSLIB-tietopankista [20] löytyviin verkostoihin. Sitä on vertailtu Archerin, Levinin ja Williamsin usein käytettyyn approksimaatioalgoritmiin [11]. Vertailusuureena on käytetty suhdannetta joka tarkoittaa saadun ratkaisun suhdetta optimin alarajaan. Vertailujen perusteella yllä esitelty kohennettu geneettinen algoritmi antaa parempia tuloksia. Sille eri tapahtumista saadaan keskimäärin tulokseksi = 1,95 ± 0,10, ja vertailukohteena ollut algoritmi antoi vastaavissa tilanteissa keskimääräiseksi tulokseksi 3 ± 0,6. Sen lisäksi että tässä kappaleessa referoitu geneettinen algoritmi antaa parempia tuloksia, se on myös on stabiilimpi, koska sen tulokset ovat huonoimmissa ja parhaissa tapauksissa verrattain lähellä toisiaan. 4.2 Tabualgoritmi ja minimilatenssiongelma, johon on lisätty palkkiot Viimeisenä käydään läpi minimilatenssiongelman sellainen muunnelma, jossa jokaisesta vieraillusta solmukohdasta saa jonkun tietyn ajasta riippuvan tuoton tai palkkion, ja se kuinka tällaista ongelmaa ratkaistaan tabualgoritmilla. Tätä ongelmaa kutsutaan nimellä palkkioihin pohjautuva minimilatenssiongelma (travelling repairman problem with profits), ja se tarkoittaa muilta osin samankaltaista ongelman asettelua kuin tavallinen minimilatenssiongelma, mutta sen sijaan että minimoitaisiin solmukohtiin tapahtivien saapumisaikojen summaa, maksimoidaan verkoston solmukohdista saatavien palkkioiden summaa, joka on muotoa, missä p i kuvastavaa solmukohdan i tärkeyttä ja t i on saapumisaika solmukohtaan i. Olennainen ero aiempaan minimilatensisongelmaan on palkkioihin pohjautuvassa minimilatenssiongelmassa se, 18

19 ettei kaikissa solmukohdissa välttämättä käydä ollenkaan, koska vierailemattomien solmukohtien palkkiot menevät ennen pitkää nollaan kun aikaa kuluu tarpeeksi paljon. Tabualgoritmi, jonka käyttöä palkkioihin pohjautuvaan minimilatenssiongelmaan selostetaan alempana tässä kappaleessa, on heuristinen menetelmä, jossa kullakin askeleella siirrytään verkostossa siihen viereiseen solmukohtaan, jossa tuottofunktio saa suurimman arvon. Algoritmin nimi tulee siitä, että aina siirtymän jälkeen kirjataan niin sanottuun tabulistaan edellinen solmukohta, josta siirryttiin pois, ja tabulistan lopusta poistetaan vanhin siihen kirjattu solmukohta. Tabulistassa oleviin solmukohtiin ei ole luvallista siirtyä, ja tällä tavoin algoritmi takaa sen, ettei kuljeta liian pian takaisinpäin niihin solmukohtiin, joista ollaan tulossa pois päin. Ennen kuin siirrytään palkkioihin pohjautuvan minimilatenssiongelman ratkaisemiseen, tarkastellaan aluksi esimerkin 4.3 avulla yksinkertaisen tabualgoritmin toimintaa. Esimerkki 4.3. Tarkastellaan jälleen kuvan 2 esimerkkiverkostoa, johon sovellettiin aiemmin Monte Carlo simulaatiota esimerkissä 4.1 ja geneettistä algoritmia esimerkissä 4.2. Tähän samaan verkostoon sovellettiin vertailun vuoksi hyvin yksinkertaista tabualgoritmia, joka toimi muilta osin samalla tavalla kuin Monte Carlo simulaatio, mutta rajoituksena oli, ettei samaan solmukohtaan ollut luvallista siirtyä, josta oltiin tulossa. Tehtiin siis esimerkkiverkostossa mielivaltaisia kierroksia, mutta käytettiin tabulistaa, joka oli yhden solmukohdan mittainen. Tarkoituksena oli taas minimoida saapumisaikojen summa eri solmukohtiin, eli ratkaista minimilatenssiongelma. Kun 1000 kierroksen tabualgoritmisimulaatiota toistettiin 10 kertaa, pienilatenssisin reitti 259 löytyi yhdekssä tapauksessa kymmenestä. Ainoassa simulaatiossa, jossa optimia ei löytynyt, tulos oli 269. Aika joka kuhunkin simulaatioon kului oli välillä sekuntia. Esimerkkien ja tämän esimerkin perusteella tabualgoritmi on testatuista algoritmeista tehokkain laskentaajallisesti ja iteraatiokierrosten perusteella. Lisäksi saadut tulokset ovat suhteellisen luotettavat. Tabualgoritmin toteuttaminen ja koodaaminen oli myös huomattavasti vähemmän työlästä, kuin geneettisen algoritmin. Tämänkin esimerkin simulaatiot tehtiin MATLAB 7.1 ohjelmistolla, ja niihin liittyvä koodi on nähtävillä liitteessä C Palkkioihin pohjautuva minimilatenssiongelma Alla on selostettu lähteen [5] mukaisesti palkkioihin pohjautuvan minimilatenssiongelman matemaattinen malli. Tarkastellaan jälleen verkostoa, jossa on solmukohtien joukko ja on niiden välisten välimatkojen joukko. Kuten aiemmin mainittiin, kustakin solmukohdasta saadaan palkkio, joka riippuu solmukohdan antamasta ennaltamäärätystä tuotosta ja ajasta, jolloin kyseiseen solmukohtaan saavutaan. Tämän seurauksena ei sellaisiin solmukohtiin i mennä lainkaan, joissa, koska niistä ei saataisi mitään palkkiota. Joukko 19

20 tarkoittaa niitä solmukohtia, joiden palkkio kerätään, ja tarkoittaa aikaa, jonka kauppamies käyttää kulkiessaan matkan solmukohdasta solmukohtaan. Lisäksi tarkoittaa välimatkaa solmukohdan ja solmukohdan välillä. Määritellään binäärinen muuttuja : (19) Kun, on :nnes kuljettu välimatka ja on :nnes vierailtu solmukohta ja on :nnes vierailtu solmukohta. Jos, lasketaan kertaisesti kokonaisaikaan. Tästä seuraa: Nyt voidaan muodostaa kohdefunktio, jota tässä tehtävässä maksimoidaan. Kohdefunktio summaa kunkin vieraillun solmukohdan tuoton ja saapumisajan erotuksen: Rajoitusehdot ovat: Ensimmäinen rajoitusehto takaa sen, ettei missään solmukohdassa käydä useammin kuin kerran. Toinen takaa sen. että :ssa eri solmukohdassa aloituspisteen lisäksi on käytävä. Kolmas ehto takaa liitettävyyden ja neljäs sen, että lähdetään liikkeelle valitusta aloituspisteestä. Viimeinen rajoitusehto takaa, että on binäärinen. Määritellään kohdefunktion optimiksi, kun ollaan vierailtu :ssa solmukohdassa, ja olkoon globaali optimi, jolloin optimaalinen määrä vierailtuja solmukohtia on. Lähteen [5] mukaan ei ole unimodaalinen, ja solmukohtia lisäämällä n arvo saattaa laskea. (20) (21) (22) (23) (24) (25) (26) 20

21 4.2.2 Tabualgoritmi palkkioihin pohjautuvan minimilatenssiongelman ratkaisemiseksi Lähde [5] esittelee tabualgoritmin, jolla voidaan ratkoa palkkioihin pohjautuvaa minimilatenssiongelmaa. Tätä algoritmia pohjustetaan konstruktiovaiheella, jossa paikallistetaan triviaaliratkaisu ja etsitään sen pohjalta jokin ei-triviaali ratkaisu. Tämän jälkeen siirrytään varsinaiseen tabualgoritmiin, johon sisältyy intensifikaatiovaihe ja diversifikaatiovaihe. Nämä mainitut vaiheet on selostettu lyhyesti alla. Konstruktiovaiheessa osaratkaisuun lisätään vierailemattomia solmukohtia sen perusteella, kuinka paljon aikaa lisäykseen kuluu ja millainen tuotto lisäyksestä saadaan. Alkuperäinen osaratkaisu, jota lähdetään konstruoimaan voi olla esimerkiksi sellainen triviaaliratkaisu, jossa alkupisteestä ei olla lähdetty mihinkään. Määritellään ratio,. (27) Solmukohtien lukumäärä määrittää ajan vaikutusta ratioon. Konstruktiovaiheessa ratiota käytetään uusien solmukohtien lisäämiseen osaratkaisuun siten, että lisättävä solmukohta kullakin askeleella toteuttaa lausekkeen (28),, (28) missä on vierailemattomien solmukohtien joukko. Tabualgoritmia aletaan käyttää, kun konstruktiovaiheessa on saatu aikaiseksi osaratkaisu. Tabualgoritmi toimii siten, että sillä etsitään kussakin osaratkaisun reitillä olevassa solmukohdassa parasta siirtymävaihtoehtoa kyseisen solmukohdan naapurustosta. Paras siirtymä on sellainen, jossa kohdefunktio kasvaa eniten, tai jossa kohdefunktio vähenee vähiten. Reitillä kulkemista siis jatketaan, vaikka kohdefunktio alkaisi pienentyä, koska kyseessä saattaa olla vain lokaali optimi. Koska palkkioihin pohjautuvassa minimilatenssiongelmassa maksimoidaan solmukohdista saatavaa ajasta riippuvaa tuottoa, voidaan ratkaisua parantaa optimaalisemmaksi kahdella tavalla: muuttamalla vierailtujen solmukohtien määrää tai muuttamalla solmukohtien vierailujärjestystä. Näihin kahteen toimintoon perustuu kuvassa 3 olevat toimenpiteet, joita tätä ongelmaa ratkaiseva tabualgoritmi tekee. Kuvan järjestyksestä ilmenee myös se järjestys, jossa tabualgoritmi näitä toimenpiteitä tekee. Näitä toimintoja suoritetaan reitin solmukohdille yksi kerrallaan. Kuvan 3 Remove-insert toiminnossa katsotaan, mikä reitillä oleva solmukohta on kaikkein suurimman etäisyyden päässä tarkastelun kohteena olevasta solmukohdasta, ja lisätään se reitin viimeiseksi. Move-up ja down-toiminnoissa siirretään solmukohtaa reitillä ylös- tai alaspäin. Loput kuvan toiminnot ovat yleisemmin tunnettuja algoritmeja tai tarkoittavat suoraan sitä, mitä 21

22 niiden nimi antaa ymmärtää. Kukin toiminto kirjataan omaan tabulistaansa, jonka takia tulevilla iteraatiokierroksilla samoja toimintoja ei voi toistaa samoille solmukohdille uudelleen. Lisäksi algoritmin nopeuttamiseksi siihen on sisällytetty rajoitus, jonka mukaan move-up -, move-down -, swap-, 2-opt- ja or-opt toiminnot saavat lisätä maksimissaan solmukohtaa kuljetulle reitille, jos on suurin mahdollinen solmukohtamäärä, jonka ne muuten saisivat lisätä. Kuva 3. Järjestys, jossa algoritmeja suoritetaan tutkittaessa solmukohtien vierailujärjestyksen tai vierailtujen solmukohtien vaihtamisen vaikutusta kohdefunktioon. Kun yllämainittuja toimintoja käyttäen ollaan saavutettu lokaali optimi, alkaa intensifikaatiovaihe. Tässä vaiheessa muodostetaan matriisi, jonka alkioihin kirjataan se, kuinka monta kertaa reitti oli osana optimiratkaisua. Tämän jälkeen saatua ratkaisua aletaan käyttää uutena osaratkaisuna kuvan 3 mukaiselle algoritmille, joka ajetaan nyt ilman yllä olevia rajoituksia solmukohtamäärille ja ilman tabulistoja. Seuraava vaihe on diversifikaatiovaihe. Tässä vaiheessa tabulistat tyhjennetään, jonka jälkeen matriisia käytetään siten, että sakotetaan siihen kirjattujen usein käytettyjen reittien kulkemisesta. Maksimoitavasta kohdefunktiosta vähennetään ennaltamäärätty sakko kerrottuna matriisin alkiolla kullekin reitille. Tällä menetelmällä suositaan uudenlaisia reittejä. Tällaisella uudenlaisella alustuksella, johon mainitut sakot sisältyvät, tehdään 100 uutta iteraatiota, jonka aikana tabulistat muodostetaan uudestaan. Tästä vaiheesta saatua ratkaisua käytetään nyt uutena sisääntulona tabualgoritmille. Lopuksi ajetaan läpi sellainen variaatio diversifikaatiovaiheesta, jossa annetaan palkkiot :ään kirjatuista usein käytetyistä etäisyyksistä sen sijaan että niistä sakotettaisiin. Tällä tavoin taataan, että kaikki mahdollisimman erilaiset ratkaisut tulee kokeiltua. Algoritmi päättyy, kun ollaan saavutettu tietty määrä askelia, joiden aikana ratkaisu ei ole enää kehittynyt. Tämän askelmäärän määrittämisessä on tehtävä jonkunlainen kompromissi laskentatehon ja ratkaisun tarkkuuden välillä. Lähteen [5] lopussa esitellään algoritmin antamat tulokset ja tehdään yhteenveto. Tulokset on laskettu testaamalla algoritmia TSLIB-tietopankista [20] löytyviin satunnaisesti valittuihin verkostoihin, joihin on lisätty satunnaiset palkkiot. Tuloksiin sisältyy tabualgoritmin antamien ratkaisujen vertailua Cplex-ohjelman laskemiin eksakteihin ratkaisuihin, ja lisäksi tabualgoritmin antamien ratkaisujen vertailua pelkän konstruktiovaiheen ratkaisuihin. Ratkaisuissa on oletettu 22

Minimilatenssiongelman ratkaisualgoritmeja (valmiin työn esittely)

Minimilatenssiongelman ratkaisualgoritmeja (valmiin työn esittely) Minimilatenssiongelman ratkaisualgoritmeja (valmiin työn esittely) Antti Salmela 03.03.2014 Ohjaaja: Harri Ehtamo Valvoja: Harri Ehtamo Työn saa tallentaa ja julkistaa Aalto-yliopiston avoimilla verkkosivuilla.

Lisätiedot

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

Implementation of Selected Metaheuristics to the Travelling Salesman Problem (valmiin työn esittely) Implementation of Selected Metaheuristics to the Travelling Salesman Problem (valmiin työn esittely) Jari Hast xx.12.2013 Ohjaaja: Harri Ehtamo Valvoja: Hari Ehtamo Työn saa tallentaa ja julkistaa Aalto-yliopiston

Lisätiedot

Demo 1: Simplex-menetelmä

Demo 1: Simplex-menetelmä MS-C2105 Optimoinnin perusteet Malliratkaisut 3 Ehtamo Demo 1: Simplex-menetelmä Muodosta lineaarisen tehtävän standardimuoto ja ratkaise tehtävä taulukkomuotoisella Simplex-algoritmilla. max 5x 1 + 4x

Lisätiedot

Johdatus verkkoteoriaan 4. luento

Johdatus verkkoteoriaan 4. luento Johdatus verkkoteoriaan 4. luento 28.11.17 Viikolla 46 läpikäydyt käsitteet Viikolla 47 läpikäydyt käsitteet Verkko eli graafi, tasoverkko, solmut, välit, alueet, suunnatut verkot, isomorfiset verkot,

Lisätiedot

Search space traversal using metaheuristics

Search space traversal using metaheuristics Search space traversal using metaheuristics Mika Juuti 11.06.2012 Ohjaaja: Ville Mattila Valvoja: Harri Ehtamo Työn saa tallentaa ja julkistaa Aalto-yliopiston avoimilla verkkosivuilla. Muilta osin kaikki

Lisätiedot

Harjoitus 3 (3.4.2014)

Harjoitus 3 (3.4.2014) Harjoitus 3 (3..) Tehtävä Olkoon kaaren paino c ij suurin sallittu korkeus tieosuudella (i, j). Etsitään reitti solmusta s solmuun t siten, että reitin suurin sallittu korkeus pienimmillään olisi mahdollisimman

Lisätiedot

V. V. Vazirani: Approximation Algorithms, luvut 3-4 Matti Kääriäinen

V. V. Vazirani: Approximation Algorithms, luvut 3-4 Matti Kääriäinen V. V. Vazirani: Approximation Algorithms, luvut 3-4 Matti Kääriäinen Luento omatoimisen luennan tueksi algoritmiikan tutkimusseminaarissa 23.9.2002. 1 Sisältö Esitellään ongelmat Steiner-puu Kauppamatkustajan

Lisätiedot

Kombinatorinen optimointi

Kombinatorinen optimointi Kombinatorinen optimointi Sallittujen pisteiden lukumäärä on äärellinen Periaatteessa ratkaisu löydetään käymällä läpi kaikki pisteet Käytännössä lukumäärä on niin suuri, että tämä on mahdotonta Usein

Lisätiedot

Harjoitus 6 ( )

Harjoitus 6 ( ) Harjoitus 6 (30.4.2014) Tehtävä 1 Määritelmän (ks. luentomoniste s. 109) mukaan yleisen, muotoa min f(x) s.t. g(x) 0 h(x) = 0 x X (1) olevan optimointitehtävän Lagrangen duaali on max θ(u,v) s.t. u 0,

Lisätiedot

Harjoitus 3 (31.3.2015)

Harjoitus 3 (31.3.2015) Harjoitus (..05) Tehtävä Olkoon kaaren paino c ij suurin sallittu korkeus tieosuudella (i,j). Etsitään reitti solmusta s solmuun t siten, että reitin suurin sallittu korkeus pienimmillään olisi mahdollisimman

Lisätiedot

Harjoitus 6 ( )

Harjoitus 6 ( ) Harjoitus 6 (21.4.2015) Tehtävä 1 Määritelmän (ks. luentomoniste s. 109) mukaan yleisen, muotoa min f(x) s. t. g(x) 0 h(x) = 0 x X olevan optimointitehtävän Lagrangen duaali on missä max θ(u, v) s. t.

Lisätiedot

Osakesalkun optimointi. Anni Halkola Turun yliopisto 2016

Osakesalkun optimointi. Anni Halkola Turun yliopisto 2016 Osakesalkun optimointi Anni Halkola Turun yliopisto 2016 Artikkeli Gleb Beliakov & Adil Bagirov (2006) Non-smooth optimization methods for computation of the Conditional Value-at-risk and portfolio optimization.

Lisätiedot

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

A ja B pelaavat sarjan pelejä. Sarjan voittaja on se, joka ensin voittaa n peliä. Esimerkki otteluvoiton todennäköisyys A ja B pelaavat sarjan pelejä. Sarjan voittaja on se, joka ensin voittaa n peliä. Yksittäisessä pelissä A voittaa todennäköisyydellä p ja B todennäköisyydellä q =

Lisätiedot

Algoritmit 2. Luento 13 Ti Timo Männikkö

Algoritmit 2. Luento 13 Ti Timo Männikkö Algoritmit 2 Luento 13 Ti 30.4.2019 Timo Männikkö Luento 13 Simuloitu jäähdytys Merkkijonon sovitus Horspoolin algoritmi Ositus ja rekursio Rekursion toteutus Algoritmit 2 Kevät 2019 Luento 13 Ti 30.4.2019

Lisätiedot

Yhtälönratkaisusta. Johanna Rämö, Helsingin yliopisto. 22. syyskuuta 2014

Yhtälönratkaisusta. Johanna Rämö, Helsingin yliopisto. 22. syyskuuta 2014 Yhtälönratkaisusta Johanna Rämö, Helsingin yliopisto 22. syyskuuta 2014 Yhtälönratkaisu on koulusta tuttua, mutta usein sitä tehdään mekaanisesti sen kummempia ajattelematta. Jotta pystytään ratkaisemaan

Lisätiedot

v 8 v 9 v 5 C v 3 v 4

v 8 v 9 v 5 C v 3 v 4 Verkot Verkko on (äärellinen) matemaattinen malli, joka koostuu pisteistä ja pisteitä toisiinsa yhdistävistä viivoista. Jokainen viiva yhdistää kaksi pistettä, jotka ovat viivan päätepisteitä. Esimerkiksi

Lisätiedot

12. Hessen matriisi. Ääriarvoteoriaa

12. Hessen matriisi. Ääriarvoteoriaa 179 12. Hessen matriisi. Ääriarvoteoriaa Tarkastelemme tässä luvussa useamman muuttujan (eli vektorimuuttujan) n reaaliarvoisia unktioita : R R. Edellisessä luvussa todettiin, että riittävän säännöllisellä

Lisätiedot

Malliratkaisut Demot

Malliratkaisut Demot Malliratkaisut Demot 6 24.4.2017 Tehtävä 1 Määritelmän (ks. luentomonisteen s. 107) mukaan yleisen muotoa min f(x) s.t. g(x) 0 h(x) = 0 x X (1) olevan optimointitehtävän Lagrangen duaali on min θ(u,v)

Lisätiedot

Algoritmit 2. Luento 12 To Timo Männikkö

Algoritmit 2. Luento 12 To Timo Männikkö Algoritmit 2 Luento 12 To 3.5.2018 Timo Männikkö Luento 12 Geneettiset algoritmit Simuloitu jäähdytys Merkkijonon sovitus Horspoolin algoritmi Algoritmit 2 Kevät 2018 Luento 12 To 3.5.2018 2/35 Algoritmien

Lisätiedot

Algoritmit 1. Luento 10 Ke Timo Männikkö

Algoritmit 1. Luento 10 Ke Timo Männikkö Algoritmit 1 Luento 10 Ke 14.2.2018 Timo Männikkö Luento 10 Algoritminen ongelmanratkaisu Suunnittelumenetelmät Raaka voima Järjestäminen eli lajittelu Kuplalajittelu Lisäyslajittelu Valintalajittelu Permutaatiot

Lisätiedot

Induktiotodistus: Tapaus n = 0 selvä; ol. väite pätee kun n < m.

Induktiotodistus: Tapaus n = 0 selvä; ol. väite pätee kun n < m. Väite: T (n) (a + b)n 2 + a. Induktiotodistus: Tapaus n = 0 selvä; ol. väite pätee kun n < m. Huomaa että funktion x x 2 + (m 1 x) 2 kuvaaja on ylöspäin aukeava paraabeli, joten funktio saavuttaa suurimman

Lisätiedot

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

Joonas Haapala Ohjaaja: DI Heikki Puustinen Valvoja: Prof. Kai Virtanen Hävittäjälentokoneen reitin suunnittelussa käytettävän dynaamisen ja monitavoitteisen verkko-optimointitehtävän ratkaiseminen A*-algoritmilla (valmiin työn esittely) Joonas Haapala 8.6.2015 Ohjaaja: DI

Lisätiedot

Kimppu-suodatus-menetelmä

Kimppu-suodatus-menetelmä Kimppu-suodatus-menetelmä 2. toukokuuta 2016 Kimppu-suodatus-menetelmä on kehitetty epäsileiden optimointitehtävien ratkaisemista varten. Menetelmässä approksimoidaan epäsileitä funktioita aligradienttikimpulla.

Lisätiedot

Algoritmit 2. Luento 12 Ke Timo Männikkö

Algoritmit 2. Luento 12 Ke Timo Männikkö Algoritmit 2 Luento 12 Ke 26.4.2017 Timo Männikkö Luento 12 Rajoitehaku Kauppamatkustajan ongelma Lyhin virittävä puu Paikallinen etsintä Vaihtoalgoritmit Geneettiset algoritmit Simuloitu jäähdytys Algoritmit

Lisätiedot

Algoritmit 2. Luento 11 Ti Timo Männikkö

Algoritmit 2. Luento 11 Ti Timo Männikkö Algoritmit 2 Luento 11 Ti 24.4.2018 Timo Männikkö Luento 11 Rajoitehaku Kapsäkkiongelma Kauppamatkustajan ongelma Paikallinen etsintä Lyhin virittävä puu Vaihtoalgoritmit Algoritmit 2 Kevät 2018 Luento

Lisätiedot

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

TIES592 Monitavoiteoptimointi ja teollisten prosessien hallinta. Yliassistentti Jussi Hakanen syksy 2010 TIES592 Monitavoiteoptimointi ja teollisten prosessien hallinta Yliassistentti Jussi Hakanen jussi.hakanen@jyu.fi syksy 2010 Evoluutiopohjainen monitavoiteoptimointi MCDM ja EMO Monitavoiteoptimointi kuuluu

Lisätiedot

1 Kertaus. Lineaarinen optimointitehtävä on muotoa:

1 Kertaus. Lineaarinen optimointitehtävä on muotoa: 1 Kertaus Lineaarinen optimointitehtävä on muotoa: min c 1 x 1 + c 2 x 2 + + c n x n kun a 11 x 1 + a 12 x 2 + + a 1n x n b 1 a 21 x 1 + a 22 x 2 + + a 2n x n b 2 (11) a m1 x 1 + a m2 x 2 + + a mn x n

Lisätiedot

Geneettiset algoritmit

Geneettiset algoritmit Geneettiset algoritmit Evoluution piirteitä laskennassa Optimoinnin perusteet - Kevät 2002 / 1 Sisältö Geneettisten algoritmien sovelluskenttä Peruskäsitteitä Esimerkkejä funktion ääriarvon etsintä vangin

Lisätiedot

isomeerejä yhteensä yhdeksän kappaletta.

isomeerejä yhteensä yhdeksän kappaletta. Tehtävä 2 : 1 Esitetään aluksi eräitä havaintoja. Jokaisella n Z + symbolilla H (n) merkitään kaikkien niiden verkkojen joukkoa, jotka vastaavat jotakin tehtävänannon ehtojen mukaista alkaanin hiiliketjua

Lisätiedot

Osakesalkun optimointi

Osakesalkun optimointi Osakesalkun optimointi Anni Halkola Epäsileä optimointi Turun yliopisto Huhtikuu 2016 Sisältö 1 Johdanto 1 2 Taustatietoja 2 3 Laskumetodit 3 3.1 Optimointiongelmat........................ 4 4 Epäsileän

Lisätiedot

Algoritmit 2. Luento 13 Ti Timo Männikkö

Algoritmit 2. Luento 13 Ti Timo Männikkö Algoritmit 2 Luento 13 Ti 2.5.2017 Timo Männikkö Luento 13 Merkkijonon sovitus Horspoolin algoritmi Laskennallinen vaativuus Päätösongelmat Epädeterministinen algoritmi Vaativuusluokat NP-täydellisyys

Lisätiedot

Algoritmit 1. Luento 1 Ti Timo Männikkö

Algoritmit 1. Luento 1 Ti Timo Männikkö Algoritmit 1 Luento 1 Ti 10.1.2017 Timo Männikkö Luento 1 Algoritmi Algoritmin toteutus Ongelman ratkaiseminen Algoritmin tehokkuus Algoritmin suoritusaika Algoritmin analysointi Algoritmit 1 Kevät 2017

Lisätiedot

Königsbergin sillat. Königsberg 1700-luvulla. Leonhard Euler ( )

Königsbergin sillat. Königsberg 1700-luvulla. Leonhard Euler ( ) Königsbergin sillat 1700-luvun Königsbergin (nykyisen Kaliningradin) läpi virtasi joki, jonka ylitti seitsemän siltaa. Sanotaan, että kaupungin asukkaat yrittivät löytää reittiä, joka lähtisi heidän kotoaan,

Lisätiedot

Lineaarinen optimointitehtävä

Lineaarinen optimointitehtävä Lineaarinen optimointitehtävä Minimointitehtävä yhtälörajoittein: min kun n j=1 n j=1 c j x j a ij x j = b i x j 0 j = 1,..., n i = 1,..., m Merkitään: z = alkuperäisen objektifunktion arvo käsiteltävänä

Lisätiedot

Malliratkaisut Demot

Malliratkaisut Demot Malliratkaisut Demot 3 7.3.07 Tehtävä Olkoon tilamuuttujat Tällöin saadaan rekursioyhtälö f n (x n ) = max yn {0,} ynwn xn f 0 ( ) = 0. x n = vaiheessa n jäljellä oleva paino, n =,...,N, esine n pakataan

Lisätiedot

58131 Tietorakenteet (kevät 2009) Harjoitus 11, ratkaisuja (Topi Musto)

58131 Tietorakenteet (kevät 2009) Harjoitus 11, ratkaisuja (Topi Musto) 811 Tietorakenteet (kevät 9) Harjoitus 11, ratkaisuja (Topi Musto) 1. Bellmanin-Fordin algoritmin alustusvaiheen jälkeen aloitussolmussa on arvo ja muissa solmuissa on arvo ääretön. Kunkin solmun arvo

Lisätiedot

Tuotantoprosessin optimaalinen aikataulutus (valmiin työn esittely)

Tuotantoprosessin optimaalinen aikataulutus (valmiin työn esittely) Tuotantoprosessin optimaalinen aikataulutus (valmiin työn esittely) Joona Kaivosoja 01.12.2014 Ohjaaja: DI Ville Mäkelä Valvoja: Prof. Ahti Salo Työn saa tallentaa ja julkistaa Aalto-yliopiston avoimilla

Lisätiedot

Malliratkaisut Demot

Malliratkaisut Demot Malliratkaisut Demot 4 3.4.017 Tehtävä 1 Tarkastellaan harjoituksen 1 nopeimman reitin ongelmaa ja etsitään sille lyhin virittävä puu käyttämällä kahta eri algoritmia. a) (Primin algoritmi) Lähtemällä

Lisätiedot

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

Satunnaisalgoritmit. Topi Paavilainen. Laskennan teorian opintopiiri HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos Satunnaisalgoritmit Topi Paavilainen Laskennan teorian opintopiiri HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos Helsinki, 23. helmikuuta 2014 1 Johdanto Satunnaisalgoritmit ovat algoritmeja, joiden

Lisätiedot

10. Painotetut graafit

10. Painotetut graafit 10. Painotetut graafit Esiintyy monesti sovelluksia, joita on kätevä esittää graafeina. Tällaisia ovat esim. tietoverkko tai maantieverkko. Näihin liittyy erinäisiä tekijöitä. Tietoverkkoja käytettäessä

Lisätiedot

Olkoon seuraavaksi G 2 sellainen tasan n solmua sisältävä suunnattu verkko,

Olkoon seuraavaksi G 2 sellainen tasan n solmua sisältävä suunnattu verkko, Tehtävä 1 : 1 a) Olkoon G heikosti yhtenäinen suunnattu verkko, jossa on yhteensä n solmua. Määritelmän nojalla verkko G S on yhtenäinen, jolloin verkoksi T voidaan valita jokin verkon G S virittävä alipuu.

Lisätiedot

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

Luetteloivat ja heuristiset menetelmät. Mat , Sovelletun matematiikan tutkijaseminaari, kevät 2008, Janne Karimäki Luetteloivat ja heuristiset menetelmät Mat-2.4191, Sovelletun matematiikan tutkijaseminaari, kevät 2008, Janne Karimäki Sisältö Branch and Bound sekä sen variaatiot (Branch and Cut, Lemken menetelmä) Optimointiin

Lisätiedot

1 + b t (i, j). Olkoon b t (i, j) todennäköisyys, että B t (i, j) = 1. Siis operaation access(j) odotusarvoinen kustannus ajanhetkellä t olisi.

1 + b t (i, j). Olkoon b t (i, j) todennäköisyys, että B t (i, j) = 1. Siis operaation access(j) odotusarvoinen kustannus ajanhetkellä t olisi. Algoritmien DP ja MF vertaileminen tapahtuu suoraviivaisesti kirjoittamalla kummankin leskimääräinen kustannus eksplisiittisesti todennäköisyyksien avulla. Lause T MF ave = 1 + 2 1 i

Lisätiedot

Duaalisuus kokonaislukuoptimoinnissa. Mat , Sovelletun matematiikan tutkijaseminaari, kevät 2008, Janne Karimäki

Duaalisuus kokonaislukuoptimoinnissa. Mat , Sovelletun matematiikan tutkijaseminaari, kevät 2008, Janne Karimäki Duaalisuus kokonaislukuoptimoinnissa Mat-2.4191, Sovelletun matematiikan tutkijaseminaari, kevät 2008, Janne Karimäki Sisältö Duaalisuus binäärisissä optimointitehtävissä Lagrangen duaalisuus Lagrangen

Lisätiedot

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

Ellipsoidimenetelmä. Samuli Leppänen Kokonaislukuoptimointi. S ysteemianalyysin Laboratorio Ellipsoidimenetelmä Kokonaislukuoptimointi Sovelletun matematiikan lisensiaattiseminaari Kevät 2008 / 1 Sisällys Ellipsoidimenetelmän geometrinen perusta ja menetelmän idea Formaali ellipsoidimenetelmä

Lisätiedot

Luento 12: Duaalitehtävä. Tarkennuksia Lagrangen kertoimen tulkintaan. Hajautettu optimointi.

Luento 12: Duaalitehtävä. Tarkennuksia Lagrangen kertoimen tulkintaan. Hajautettu optimointi. Luento 12: Duaalitehtävä. Tarkennuksia Lagrangen kertoimen tulkintaan. Hajautettu optimointi. Konveksisuus Muista. + αd, α 0, on pisteessä R n alkava puolisuora, joka on vektorin d suuntainen. Samoin 2

Lisätiedot

Luento 11: Rajoitusehdot. Ulkopistemenetelmät

Luento 11: Rajoitusehdot. Ulkopistemenetelmät Luento 11: Rajoitusehdot. Ulkopistemenetelmät ja sisäpistemenetelmät Lagrangen välttämättömien ehtojen ratkaiseminen Newtonin menetelmällä Jos tehtävässä on vain yhtälörajoituksia, voidaan minimipistekandidaatteja

Lisätiedot

1 Kannat ja kannanvaihto

1 Kannat ja kannanvaihto 1 Kannat ja kannanvaihto 1.1 Koordinaattivektori Oletetaan, että V on K-vektoriavaruus, jolla on kanta S = (v 1, v 2,..., v n ). Avaruuden V vektori v voidaan kirjoittaa kannan vektorien lineaarikombinaationa:

Lisätiedot

verkkojen G ja H välinen isomorfismi. Nyt kuvaus f on bijektio, joka säilyttää kyseisissä verkoissa esiintyvät särmät, joten pari

verkkojen G ja H välinen isomorfismi. Nyt kuvaus f on bijektio, joka säilyttää kyseisissä verkoissa esiintyvät särmät, joten pari Tehtävä 9 : 1 Merkitään kirjaimella G tehtäväpaperin kuvan vasemmanpuoleista verkkoa sekä kirjaimella H tehtäväpaperin kuvan oikeanpuoleista verkkoa. Kuvan perusteella voidaan havaita, että verkko G on

Lisätiedot

Vektorien pistetulo on aina reaaliluku. Esimerkiksi vektorien v = (3, 2, 0) ja w = (1, 2, 3) pistetulo on

Vektorien pistetulo on aina reaaliluku. Esimerkiksi vektorien v = (3, 2, 0) ja w = (1, 2, 3) pistetulo on 13 Pistetulo Avaruuksissa R 2 ja R 3 on totuttu puhumaan vektorien pituuksista ja vektoreiden välisistä kulmista. Kuten tavallista, näiden käsitteiden yleistäminen korkeampiulotteisiin avaruuksiin ei onnistu

Lisätiedot

1. Osoita, että joukon X osajoukoille A ja B on voimassa toinen ns. de Morganin laki (A B) = A B.

1. Osoita, että joukon X osajoukoille A ja B on voimassa toinen ns. de Morganin laki (A B) = A B. HY / Avoin yliopisto Johdatus yliopistomatematiikkaan, kesä 2015 Harjoitus 3 Ratkaisuehdotuksia Tehtäväsarja I Seuraavissa tehtävissä harjoitellaan muun muassa kahden joukon osoittamista samaksi sekä joukon

Lisätiedot

Matematiikan tukikurssi

Matematiikan tukikurssi Matematiikan tukikurssi Kurssikerta 10 1 Funktion monotonisuus Derivoituva funktio f on aidosti kasvava, jos sen derivaatta on positiivinen eli jos f (x) > 0. Funktio on aidosti vähenevä jos sen derivaatta

Lisätiedot

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

Graafit ja verkot. Joukko solmuja ja joukko järjestämättömiä solmupareja. eli haaroja. Joukko solmuja ja joukko järjestettyjä solmupareja eli kaaria Graafit ja verkot Suuntamaton graafi: eli haaroja Joukko solmuja ja joukko järjestämättömiä solmupareja Suunnattu graafi: Joukko solmuja ja joukko järjestettyjä solmupareja eli kaaria Haaran päätesolmut:

Lisätiedot

2. Seuraavassa kuvassa on verkon solmujen topologinen järjestys: x t v q z u s y w r. Kuva 1: Tehtävän 2 solmut järjestettynä topologisesti.

2. Seuraavassa kuvassa on verkon solmujen topologinen järjestys: x t v q z u s y w r. Kuva 1: Tehtävän 2 solmut järjestettynä topologisesti. Tietorakenteet, laskuharjoitus 11, ratkaisuja 1. Leveyssuuntaisen läpikäynnin voi toteuttaa rekursiivisesti käsittelemällä jokaisella rekursiivisella kutsulla kaikki tietyllä tasolla olevat solmut. Rekursiivinen

Lisätiedot

13 Lyhimmät painotetut polut

13 Lyhimmät painotetut polut TIE-20100 Tietorakenteet ja algoritmit 297 13 Lyhimmät painotetut polut BFS löytää lyhimmän polun lähtösolmusta graafin saavutettaviin solmuihin. Se ei kuitenkaan enää suoriudu tehtävästä, jos kaarien

Lisätiedot

Lineaarisen kokonaislukuoptimointitehtävän ratkaiseminen

Lineaarisen kokonaislukuoptimointitehtävän ratkaiseminen Lineaarisen kokonaislukuoptimointitehtävän ratkaiseminen Jos sallittuja kokonaislukuratkaisuja ei ole kovin paljon, ne voidaan käydä kaikki läpi yksitellen Käytännössä tämä ei kuitenkaan ole yleensä mahdollista

Lisätiedot

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

4. Luennon sisältö. Lineaarisen optimointitehtävän ratkaiseminen Simplex-menetelmä JYVÄSKYLÄN YLIOPISTO 4. Luennon sisältö Lineaarisen optimointitehtävän ratkaiseminen Simplex-menetelmä kevät 2012 TIEA382 Lineaarinen ja diskreetti optimointi Lineaarinen optimointitehtävä Minimointitehtävä

Lisätiedot

3 Suorat ja tasot. 3.1 Suora. Tässä luvussa käsitellään avaruuksien R 2 ja R 3 suoria ja tasoja vektoreiden näkökulmasta.

3 Suorat ja tasot. 3.1 Suora. Tässä luvussa käsitellään avaruuksien R 2 ja R 3 suoria ja tasoja vektoreiden näkökulmasta. 3 Suorat ja tasot Tässä luvussa käsitellään avaruuksien R 2 ja R 3 suoria ja tasoja vektoreiden näkökulmasta. 3.1 Suora Havaitsimme skalaarikertolaskun tulkinnan yhteydessä, että jos on mikä tahansa nollasta

Lisätiedot

Lineaarialgebra ja matriisilaskenta I, HY Kurssikoe Ratkaisuehdotus. 1. (35 pistettä)

Lineaarialgebra ja matriisilaskenta I, HY Kurssikoe Ratkaisuehdotus. 1. (35 pistettä) Lineaarialgebra ja matriisilaskenta I, HY Kurssikoe 26.10.2017 Ratkaisuehdotus 1. (35 pistettä) (a) Seuraavat matriisit on saatu eräistä yhtälöryhmistä alkeisrivitoimituksilla. Kuinka monta ratkaisua yhtälöryhmällä

Lisätiedot

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

ja λ 2 = 2x 1r 0 x 2 + 2x 1r 0 x 2 Johdatus diskreettiin matematiikkaan Harjoitus 4, 7.10.2015 1. Olkoot c 0, c 1 R siten, että polynomilla r 2 c 1 r c 0 on kaksinkertainen juuri. Määritä rekursioyhtälön x n+2 = c 1 x n+1 + c 0 x n, n N,

Lisätiedot

4.3. Matemaattinen induktio

4.3. Matemaattinen induktio 4.3. Matemaattinen induktio Matemaattinen induktio: Deduktion laji Soveltuu, kun ominaisuus on osoitettava olevan voimassa luonnollisilla luvuilla. Suppea muoto P(n) : Ominaisuus, joka joka riippuu luvusta

Lisätiedot

Lineaaristen monitavoiteoptimointitehtävien ratkaiseminen Bensonin algoritmilla

Lineaaristen monitavoiteoptimointitehtävien ratkaiseminen Bensonin algoritmilla Lineaaristen monitavoiteoptimointitehtävien ratkaiseminen Bensonin algoritmilla Juho Andelmin 21.01.2013 Ohjaaja: TkT Juuso Liesiö Valvoja: Prof. Raimo P. Hämäläinen Työn saa tallentaa ja julkistaa Aalto-yliopiston

Lisätiedot

Konsensusongelma hajautetuissa järjestelmissä. Niko Välimäki Hajautetut algoritmit -seminaari

Konsensusongelma hajautetuissa järjestelmissä. Niko Välimäki Hajautetut algoritmit -seminaari Konsensusongelma hajautetuissa järjestelmissä Niko Välimäki 30.11.2007 Hajautetut algoritmit -seminaari Konsensusongelma Päätöksen muodostaminen hajautetussa järjestelmässä Prosessien välinen viestintä

Lisätiedot

Tietorakenteet ja algoritmit

Tietorakenteet ja algoritmit Tietorakenteet ja algoritmit Rekursio Rekursion käyttötapauksia Rekursio määritelmissä Rekursio ongelmanratkaisussa ja ohjelmointitekniikkana Esimerkkejä taulukolla Esimerkkejä linkatulla listalla Hanoin

Lisätiedot

Algoritmit 1. Luento 10 Ke 11.2.2015. Timo Männikkö

Algoritmit 1. Luento 10 Ke 11.2.2015. Timo Männikkö Algoritmit 1 Luento 10 Ke 11.2.2015 Timo Männikkö Luento 10 Algoritminen ongelman ratkaisu Suunnittelumenetelmät Raaka voima Järjestäminen eli lajittelu Kuplalajittelu Väliinsijoituslajittelu Valintalajittelu

Lisätiedot

Matematiikan tukikurssi

Matematiikan tukikurssi Matematiikan tukikurssi Kurssikerta 6 Sarjojen suppeneminen Kiinnostuksen kohteena on edelleen sarja a k = a + a 2 + a 3 + a 4 +... k= Tämä summa on mahdollisesti äärellisenä olemassa, jolloin sanotaan

Lisätiedot

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

Yhtälöryhmä matriisimuodossa. MS-A0004/A0006 Matriisilaskenta. Tarkastellaan esimerkkinä lineaarista yhtälöparia. 2x1 x 2 = 1 x 1 + x 2 = 5. 2. MS-A4/A6 Matriisilaskenta 2. Nuutti Hyvönen, c Riikka Kangaslampi Matematiikan ja systeemianalyysin laitos Aalto-yliopisto 5.9.25 Tarkastellaan esimerkkinä lineaarista yhtälöparia { 2x x 2 = x + x 2

Lisätiedot

Malliratkaisut Demot

Malliratkaisut Demot Malliratkaisut Demot 3.2.27 Tehtävä. Valmisohjelmistolla voidaan ratkaista tehtävä min c T x s. t. Ax b x, missä x, c ja b R n ja A R m n. Muunnetaan tehtävä max x + 2x 2 + 3x 3 + x s. t. x + 3x 2 + 2x

Lisätiedot

Lineaarialgebra ja matriisilaskenta II Syksy 2009 Laskuharjoitus 1 ( ) Ratkaisuehdotuksia Vesa Ala-Mattila

Lineaarialgebra ja matriisilaskenta II Syksy 2009 Laskuharjoitus 1 ( ) Ratkaisuehdotuksia Vesa Ala-Mattila Lineaarialgebra ja matriisilaskenta II Syksy 29 Laskuharjoitus (9. - 3..29) Ratkaisuehdotuksia Vesa Ala-Mattila Tehtävä. Olkoon V vektoriavaruus. Todistettava: jos U V ja W V ovat V :n aliavaruuksia, niin

Lisätiedot

Luento 6: Monitavoiteoptimointi

Luento 6: Monitavoiteoptimointi Luento 6: Monitavoiteoptimointi Monitavoiteoptimointitehtävässä on useita optimoitavia kohdefunktioita eli ns kriteereitä: f 1,, f m Esimerkiksi opiskelija haluaa oppia mahdollisimman hyvin ja paljon mahdollisimman

Lisätiedot

Matematiikan tukikurssi, kurssikerta 3

Matematiikan tukikurssi, kurssikerta 3 Matematiikan tukikurssi, kurssikerta 3 1 Epäyhtälöitä Aivan aluksi lienee syytä esittää luvun itseisarvon määritelmä: { x kun x 0 x = x kun x < 0 Siispä esimerkiksi 10 = 10 ja 10 = 10. Seuraavaksi listaus

Lisätiedot

Algoritmit 1. Demot Timo Männikkö

Algoritmit 1. Demot Timo Männikkö Algoritmit 1 Demot 1 25.-26.1.2017 Timo Männikkö Tehtävä 1 (a) Algoritmi, joka laskee kahden kokonaisluvun välisen jakojäännöksen käyttämättä lainkaan jakolaskuja Jaettava m, jakaja n Vähennetään luku

Lisätiedot

Algoritmit 1. Demot Timo Männikkö

Algoritmit 1. Demot Timo Männikkö Algoritmit 1 Demot 1 31.1.-1.2.2018 Timo Männikkö Tehtävä 1 (a) Algoritmi, joka tutkii onko kokonaisluku tasan jaollinen jollain toisella kokonaisluvulla siten, että ei käytetä lainkaan jakolaskuja Jaettava

Lisätiedot

Diplomi-insinööri- ja arkkitehtikoulutuksen yhteisvalinta 2017 Insinöörivalinnan matematiikan koe , Ratkaisut (Sarja A)

Diplomi-insinööri- ja arkkitehtikoulutuksen yhteisvalinta 2017 Insinöörivalinnan matematiikan koe , Ratkaisut (Sarja A) Diplomi-insinööri- ja arkkitehtikoulutuksen yhteisvalinta 017 Insinöörivalinnan matematiikan koe 30..017, Ratkaisut (Sarja A) 1. a) Lukujen 9, 0, 3 ja x keskiarvo on. Määritä x. (1 p.) b) Mitkä reaaliluvut

Lisätiedot

C.C. McGeoch, Toward an experimental method for algorithm simulation. algorithm simulation = algoritmin testaus, experimental algorithmics

C.C. McGeoch, Toward an experimental method for algorithm simulation. algorithm simulation = algoritmin testaus, experimental algorithmics C.C. McGeoch, Toward an experimental method for algorithm simulation algorithm simulation = algoritmin testaus, experimental algorithmics testiparametrit, esim. tapauksen koko, erilaiset tietorakennevaihtoehdot,

Lisätiedot

Luento 1: Optimointimallin muodostaminen; optimointitehtävien luokittelu

Luento 1: Optimointimallin muodostaminen; optimointitehtävien luokittelu Luento 1: Optimointimallin muodostaminen; optimointitehtävien luokittelu Merkintöjä := vasen puoli määritellään oikean puolen lausekkeella s.e. ehdolla; siten että (engl. subject to, s.t.) vasemman puolen

Lisätiedot

Yhtälöryhmät 1/6 Sisältö ESITIEDOT: yhtälöt

Yhtälöryhmät 1/6 Sisältö ESITIEDOT: yhtälöt Yhtälöryhmät 1/6 Sisältö Yhtälöryhmä Yhtälöryhmässä on useita yhtälöitä ja yleensä myös useita tuntemattomia. Tavoitteena on löytää tuntemattomille sellaiset arvot, että kaikki yhtälöt toteutuvat samanaikaisesti.

Lisätiedot

Luento 12: Duaalitehtävä. Tarkennuksia Lagrangen kertoimen tulkintaan. Hajautettu optimointi.

Luento 12: Duaalitehtävä. Tarkennuksia Lagrangen kertoimen tulkintaan. Hajautettu optimointi. Luento 12: Duaalitehtävä. Tarkennuksia Lagrangen kertoimen tulkintaan. Hajautettu optimointi. Konveksisuus Muista x + αd, α 0, on pisteestä x R n alkava puolisuora, joka on vektorin d suuntainen. Samoin

Lisätiedot

Algoritmit 1. Luento 9 Ti Timo Männikkö

Algoritmit 1. Luento 9 Ti Timo Männikkö Algoritmit 1 Luento 9 Ti 7.2.2017 Timo Männikkö Luento 9 Graafit ja verkot Kaaritaulukko, bittimatriisi, pituusmatriisi Verkon lyhimmät polut Floydin menetelmä Lähtevien ja tulevien kaarien listat Forward

Lisätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 11.2.2009 T-106.1208 Ohjelmoinnin perusteet Y 11.2.2009 1 / 33 Kertausta: listat Tyhjä uusi lista luodaan kirjoittamalla esimerkiksi lampotilat = [] (jolloin

Lisätiedot

Kustannustehokkaat riskienhallintatoimenpiteet kuljetusverkostossa (Valmiin työn esittely)

Kustannustehokkaat riskienhallintatoimenpiteet kuljetusverkostossa (Valmiin työn esittely) Kustannustehokkaat riskienhallintatoimenpiteet kuljetusverkostossa (Valmiin työn esittely) Joonas Lanne 23.2.2015 Ohjaaja: Eeva Vilkkumaa Valvoja: Ahti Salo Työn saa tallentaa ja julkistaa Aalto-yliopiston

Lisätiedot

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

Arkkitehtuurien tutkimus Outi Räihä. OHJ-3200 Ohjelmistoarkkitehtuurit. Darwin-projekti. Johdanto OHJ-3200 Ohjelmistoarkkitehtuurit 1 Arkkitehtuurien tutkimus Outi Räihä 2 Darwin-projekti Darwin-projekti: Akatemian rahoitus 2009-2011 Arkkitehtuurisuunnittelu etsintäongelmana Geneettiset algoritmit

Lisätiedot

Mat-2.148 Dynaaminen optimointi, mallivastaukset, kierros 5

Mat-2.148 Dynaaminen optimointi, mallivastaukset, kierros 5 Mat-2.148 Dynaaminen optimointi, mallivastaukset, kierros 5 1. Kotitehtävä. 2. Lasketaan aluksi korkoa korolle. Jos korkoprosentti on r, ja korko maksetaan n kertaa vuodessa t vuoden ajan, niin kokonaisvuosikorko

Lisätiedot

Talousmatematiikan perusteet: Luento 12. Lineaarinen optimointitehtävä Graafinen ratkaisu Ratkaisu Excel Solverilla

Talousmatematiikan perusteet: Luento 12. Lineaarinen optimointitehtävä Graafinen ratkaisu Ratkaisu Excel Solverilla Talousmatematiikan perusteet: Luento 12 Lineaarinen optimointitehtävä Graafinen ratkaisu Ratkaisu Excel Solverilla Esimerkki Esim. Yritys tekee kahta elintarviketeollisuuden käyttämää puolivalmistetta,

Lisätiedot

Luento 6: Monitavoitteinen optimointi

Luento 6: Monitavoitteinen optimointi Luento 6: Monitavoitteinen optimointi Monitavoitteisessa optimointitehtävässä on useita optimoitavia kohdefunktioita eli ns kriteereitä: f,,f m Esimerkki ortfolion eli arvopaperijoukon optimoinnissa: f

Lisätiedot

, on säännöllinen 2-ulotteinen pinta. Määrää T x0 pisteessä x 0 = (0, 1, 1).

, on säännöllinen 2-ulotteinen pinta. Määrää T x0 pisteessä x 0 = (0, 1, 1). HY / Matematiikan ja tilastotieteen laitos Vektorianalyysi II, syksy 017 Harjoitus 4 Ratkaisuehdotukset 4.1. Osoita, että tasa-arvojoukko S F (0), F : R 3 R, F (x) = 3x 1 x 3 + e x + x e x 3, on säännöllinen

Lisätiedot

7 Vapaus. 7.1 Vapauden määritelmä

7 Vapaus. 7.1 Vapauden määritelmä 7 Vapaus Kuten edellisen luvun lopussa mainittiin, seuraavaksi pyritään ratkaisemaan, onko annetussa aliavaruuden virittäjäjoukossa tarpeettomia vektoreita Jos tällaisia ei ole, virittäjäjoukkoa kutsutaan

Lisätiedot

ax + y + 2z = 0 2x + y + az = b 2. Kuvassa alla on esitetty nesteen virtaus eräässä putkistossa.

ax + y + 2z = 0 2x + y + az = b 2. Kuvassa alla on esitetty nesteen virtaus eräässä putkistossa. BM20A5800 Funktiot, lineaarialgebra ja vektorit Harjoitus 7, Syksy 206 Tutkitaan yhtälöryhmää x + y + z 0 2x + y + az b ax + y + 2z 0 (a) Jos a 0 ja b 0 niin mikä on yhtälöryhmän ratkaisu? Tulkitse ratkaisu

Lisätiedot

Harjoitus 4: Matlab - Optimization Toolbox

Harjoitus 4: Matlab - Optimization Toolbox Harjoitus 4: Matlab - Optimization Toolbox Mat-2.2107 Sovelletun matematiikan tietokonetyöt Syksy 2006 Mat-2.2107 Sovelletun matematiikan tietokonetyöt 1 Harjoituksen aiheita Optimointimallin muodostaminen

Lisätiedot

Tietorakenteet, laskuharjoitus 7, ratkaisuja

Tietorakenteet, laskuharjoitus 7, ratkaisuja Tietorakenteet, laskuharjoitus, ratkaisuja. Seuraava kuvasarja näyttää B + -puun muutokset lisäysten jälkeen. Avaimet ja 5 mahtuvat lehtisolmuihin, joten niiden lisäys ei muuta puun rakennetta. Avain 9

Lisätiedot

MS-A0004/A0006 Matriisilaskenta

MS-A0004/A0006 Matriisilaskenta 4. MS-A4/A6 Matriisilaskenta 4. Nuutti Hyvönen, c Riikka Kangaslampi Matematiikan ja systeemianalyysin laitos Aalto-yliopisto..25 Tarkastellaan neliömatriiseja. Kun matriisilla kerrotaan vektoria, vektorin

Lisätiedot

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

Valitaan alkio x 1 A B ja merkitään A 1 = A { x 1 }. Perinnöllisyyden nojalla A 1 I. Vaihto-ominaisuudella on seuraava intuition kannalta keskeinen seuraus: Olkoot A I ja B I samankokoisia riippumattomia joukkoja: A = B = m jollain m > 0. Olkoon vielä n = m A B, jolloin A B = B A = n.

Lisätiedot

Johdatus verkkoteoriaan luento Netspace

Johdatus verkkoteoriaan luento Netspace Johdatus verkkoteoriaan luento 3.4.18 Netspace Matriisioperaatio suunnatuissa verkoissa Taustoitusta verkkoteorian ulkopuolelta ennen kuljetusalgoritmia LP-ongelma yleisesti LP = linear programming =

Lisätiedot

Algoritmit 1. Luento 14 Ke 25.2.2015. Timo Männikkö

Algoritmit 1. Luento 14 Ke 25.2.2015. Timo Männikkö Algoritmit 1 Luento 14 Ke 25.2.2015 Timo Männikkö Luento 14 Heuristiset menetelmät Heuristiikkoja kapsäkkiongelmalle Kauppamatkustajan ongelma Lähimmän naapurin menetelmä Kertaus ja tenttivinkit Algoritmit

Lisätiedot

. Kun p = 1, jono suppenee raja-arvoon 1. Jos p = 2, jono hajaantuu. Jono suppenee siis lineaarisesti. Vastaavasti jonolle r k+1 = r k, suhde on r k+1

. Kun p = 1, jono suppenee raja-arvoon 1. Jos p = 2, jono hajaantuu. Jono suppenee siis lineaarisesti. Vastaavasti jonolle r k+1 = r k, suhde on r k+1 TEKNILLINEN KORKEAKOULU Systeemianalyysin laboratorio Mat-.39 Optimointioppi Kimmo Berg 8. harjoitus - ratkaisut. a)huomataan ensinnäkin että kummankin jonon raja-arvo r on nolla. Oletetaan lisäksi että

Lisätiedot

Algoritmit 1. Luento 7 Ti Timo Männikkö

Algoritmit 1. Luento 7 Ti Timo Männikkö Algoritmit 1 Luento 7 Ti 31.1.2017 Timo Männikkö Luento 7 Järjestetty binääripuu Binääripuiden termejä Binääripuiden operaatiot Solmun haku, lisäys, poisto Algoritmit 1 Kevät 2017 Luento 7 Ti 31.1.2017

Lisätiedot

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

TIES592 Monitavoiteoptimointi ja teollisten prosessien hallinta. Yliassistentti Jussi Hakanen syksy 2010 TIES592 Monitavoiteoptimointi ja teollisten prosessien hallinta Yliassistentti Jussi Hakanen jussi.hakanen@jyu.fi syksy 2010 Optimaalisuus: objektiavaruus f 2 min Z = f(s) Parhaat arvot alhaalla ja vasemmalla

Lisätiedot

Algoritmit. Ohjelman tekemisen hahmottamisessa käytetään

Algoritmit. Ohjelman tekemisen hahmottamisessa käytetään Ohjelmointi Ohjelmoinnissa koneelle annetaan tarkkoja käskyjä siitä, mitä koneen tulisi tehdä. Ohjelmointikieliä on olemassa useita satoja. Ohjelmoinnissa on oleellista asioiden hyvä suunnittelu etukäteen.

Lisätiedot

Matematiikan tukikurssi

Matematiikan tukikurssi Matematiikan tukikurssi Kurssikerta 8 Väliarvolause Oletetaan, että funktio f on jatkuva jollain reaalilukuvälillä [a, b] ja derivoituva avoimella välillä (a, b). Funktion muutos tällä välillä on luonnollisesti

Lisätiedot

Trimmitysongelman LP-relaksaation ratkaiseminen sarakkeita generoivalla algoritmilla ja brute-force-menetelmällä

Trimmitysongelman LP-relaksaation ratkaiseminen sarakkeita generoivalla algoritmilla ja brute-force-menetelmällä Trimmitysongelman LP-relaksaation ratkaiseminen sarakkeita generoivalla algoritmilla ja brute-force-menetelmällä Vesa Husgafvel 19.11.2012 Ohjaaja: DI Mirko Ruokokoski Valvoja: Prof. Harri Ehtamo Työn

Lisätiedot