Koko: px
Aloita esitys sivulta:

Download ""

Transkriptio

1 TEKNILLINEN KORKEAKOULU Teknillisen fysiikan ja matematiikan osasto Teknillisen fysiikan koulutusohjelma Marko Heino Verkkokapasiteetin optimaalinen allokointi Työn valvoja Työn ohjaajat professori Harri Ehtamo suunnittelupäällikkö Kauko Pulkkinen diplomi-insinööri Veikko Tahvanainen

2 TEKNILLINEN KORKEAKOULU DIPLOMITYÖN TIIVISTELMÄ Tekijä: Marko Heino Työn nimi: Verkkokapasiteetin optimaalinen allokointi Päivämäärä: Sivumäärä: 55 Osasto: Teknillisen fysiikan ja matematiikan osasto Professuuri: Mat-2 Systeemianalyysi ja operaatiotutkimus Työn valvoja: Työn ohjaajat: Professori Harri Ehtamo Suunnittelupäällikkö Kauko Pulkkinen, Sonera Oy Diplomi-insinööri Veikko Tahvanainen, Sonera Oy Tietoliikenneverkkojen kapasiteettitarve on viime vuosina kasvanut merkittävästi. Kasvua ovat saaneet aikaan muun muassa Internetin, matkapuhelinten ja laajakaistaisten liittymien yleistyminen. Tulevaisuudessa siirtokapasiteetin tarpeen odotetaan kasvavan entisestään. Tietoliikenneverkoista tulee kasvun mukana yhä monimutkaisempia, jolloin niiden suunnitteluun tarvitaan automaattisia työkaluja helpottamaan suunnittelutyötä. Tässä työssä muodostetaan SDH-verkon (Synchronous Digital Hierarchy) kustannusmalli ja kehitetään menetelmä verkkokapasiteetin optimaaliselle mitoitukselle. Menetelmän avulla voidaan suorittaa suunnitteluprosessissa eteentulevia toistuvia laskutoimituksia. Lähtökohtana on joukko tietoliikenneyhteyksiä, joille täytyy hakea reitti siirtoverkon yli alkusolmusta loppusolmuun. Menetelmässä otetaan huomioon myös liikenteen järjestelyistä, varmistuksista ja vioittumistodennäköisyyksistä syntyviä lisäehtoja. Menetelmällä saadaan muodostettua yksinkertainen ja selkeä verkkorakenne siten, että liikenteelle asetetut ehdot toteutuvat. Verkonmitoitustehtävä johtaa monihyödykeongelmaan, joka on yleistys tavallisista virtausongelmista. Tässä työssä esitellään monihyödykeongelmien formulointitapoja ja joitakin ongelmien ratkaisemiseen kelpaavia menetelmiä. Menetelmistä käsitellään tarkemmin Fordin ja Fulkersonin kehittämä implisiittinen polkujenmuodostusalgoritmi sekä tähän pohjautuvat primaalipartitiointi- jageneralized upperbounding -menetelmät. Menetelmä implementoitiin Microsoft Visual Basicilla ja liitettiin osaksi Sonera Oy:ssä kehitettyä transmissioverkkojen suunnitteluohjelmaa. Menetelmästä on saatu nopea ja käyttökelpoinen työkalu käytännön verkkotopologiatarkasteluihin. Avainsanat: SDH, verkkosuunnittelu, monihyödykevirtausongelmat i

3 HELSINKI UNIVERSITY OF TECHNOLOGY ABSTRACT OF MASTER'S THESIS Author: Marko Heino Title of thesis: Optimal allocation of transmission network capacity Finnish title: Verkkokapasiteetin optimaalinen allokointi Date: Pages: 55 Department: Department of Engineering Physics and Mathematics Chair: Mat-2 Systems Analysis and Operations Research Supervisor: Instructors: Professor Harri Ehtamo Network planning manager Kauko Pulkkinen, Sonera Ltd Master of Science Veikko Tahvanainen, Sonera Ltd Demand for telecommunication network capacity has recently grown signi- cantly. This growth has been caused, for example, by expanding of the Internet, mobile telephones and broadband services. It is expected that the need for transmission capacity will be even higher in the future. Therefore, networks are going to be so complicated that computer tools are needed in the network design process. To help the network planning, a method for dimensioning of a SDH-network (Synchronous Digital Hierarchy) is presented. In the method a predened group of logical connections is routed across the network from one node to another. Furthermore, some special conditions rosen from trac arrangements, dierent types of protections and failure probabilities are included in the model. Thus, the main task is to dimension the transmission capacity so that the requirements are fullled. Network dimensioning problem belongs to multicommodity network ow (MCNF) problems, which are generalizations of ordinary network ow problems. In this thesis some alternative formulations for the MCNF problems are presented. Several methods for solving the problem are introduced focusing on Implicit path generation, primal partitioning and generalized upperbounding. The two latter methods are strongly based on the rst one. The network dimensioning method presented in this thesis is included in a transmission network planning system developed in Sonera. In practice, the method has turn out to be quick and useful for network topology analyses. Keywords: SDH, network design, multicommodity network ow ii

4 Alkusanat Tämä työ on tehty Sonera Oy:n Verkkopalvelut-divisioonan Verkosto-yksikössä Helsingissä. Haluan kiittää työni valvojaa, professori Harri Ehtamoa, hänen esittämistään arvokkaista ehdotuksista. Työni ohjauksesta kiitän esimiestäni, suunnittelupäällikkö Kauko Pulkkista, sekä diplomi-insinööri Veikko Tahvanaista. Kiitän heitä myös kärsivällisyydestä lukemattomia kysymyksiäni kohtaan. Lisäksi haluan esittää kiitokseni kaikille muillekin työhöni vaikuttaneille työkavereilleni. Työni oikolukemisesta, neuvoista ja kannustuksesta haluan kiittää hyvää ystävääni Niko Tyniä. Lopuksi kiitän rakasta vaimoani Maria suuresta tuesta ja rohkaisusta, joka auttoi hankalimpien vaiheiden yli. Helsingissä 6. syyskuuta 1999 Marko Heino iii

5 Sisältö Tiivistelmä i Abstract Alkusanat Sisältö Lyhenneluettelo ii iii iv vii 1 Johdanto 1 2 Monihyödykevirtausongelmat Yhden hyödykkeen virtausongelmat Monen hyödykkeen virtausongelmat Formulointi Ratkaisutapoja Implisiittinen sarakkeenmuodostus Resurssiohjaava dekompositio Primaalipartitiointi iv

6 2.4.4 Generalized upperbounding Kokonaislukuoptimointimenetelmät Yleistä Branch and bound -menetelmät Dijkstran minimipolkualgoritmi Kapasiteetin allokointiongelma Taustaa SDH-verkon rakenne Verkkosuunnittelussa huomioitavia asioita SDH-verkon mitoitusmalli Vaihe I: SDH-ylätason muodostus Vaihe II: VC-4 -yhteyksille kiinteästi varattu kapasiteetti Vaihe III: Restoration-varmistuksen vaatima kapasiteetti Varmistuksen toteutus alemmalla tasolla Menetelmän toteutus ja tulokset 46 v

7 6 Johtopäätökset 53 Viitteet 56 Liitteet 58 A Revised simplex 58 B Dantzig-Wolfe -dekompositio 61 C Jälkimmäisen esimerkkiverkon liikennematriisi 63 vi

8 Lyhenneluettelo ATM GSM IP SDH STM UMTS VC Asynchronous Transfer Mode Global System for Mobile Communications Internet Protocol Synchronous Digital Hierarchy Synchronous Transport Module Universal Mobile Telecommunications System Virtual Container vii

9 1 Johdanto Viime vuosina tietoliikennekapasiteetin tarve on lisääntynyt huomattavasti. Tähän muutokseen on vaikuttanut muun muassa Internetin räjähdysmäinen kasvu. Internetin käyttäjämäärä on lähes kaksinkertaistunut joka vuosi. Lisäksi kapasiteettitarvetta on etenkin Suomessa lisännyt matkapuhelinten yleistyminen. Keskimäärin joka toisella suomalaisella on matkapuhelinliittymä ja liittymätiheys kasvaa koko ajan. Tulevaisuudessa tietoliikennekapasiteetin tarpeen ennustetaan kasvavan entisestään. Matkapuhelinliikenteessä GSM:n (Global System for Mobile Communications) rinnalle tulee kolmannen sukupolven laajakaistainen matkapuhelintekniikka, UMTS (Universal Mobile Telecommunications System). Täysin mahdottomalta ei tunnu myöskään ajatus, että tulevaisuudessa olisi jokaisessa kotitaloudessa kiinteä laajakaistainen tietoliikenneyhteys Teknillisen Korkeakoulun Ylioppilaskunnan opiskelija-asuntojen tapaan. Kapasiteettitarpeen lisääntyminen luo sekä mahdollisuuksia että tarvetta tarkempaan verkkokapasiteetin optimointiin. Pelkästään varmistustavoitteet täyttävän verkon muodostaminen on hankalaa, puhumattakaan siitä, että verkon tila olisi jollain tavalla optimaalinen. Kustannusten minimointi saattaa tuoda huomattavia säästöjä. Tämän työn tarkoituksena on rakentaa SDH-verkon (Synchronous Digital Hierarchy) siirtokapasiteetin kustannusmalli, jossa huomioidaan käytännön verkkosuunnittelussa eteentulevia seikkoja. Päätavoitteena on mitoittaa siirtojärjestelmäkapasiteetti siten, että ennustettu liikenne pystytään sekä välittämään että varmistamaan annettujen tavoitteiden mukaisesti. Työssä kehitetään siirtoverkon mitoitusmenetelmä, joka huomioi liikenteen erilaiset varmistus- ja järjestelyvaatimukset sekä yhteyksien vikaantumistodennäköisyydet ja epäkäytettävyysajat. Tavoitteena on luoda verkkosuunnittelijan työtä helpottava työkalu, joka mahdollistaa liikenne-ennusteisiin pohjautuvan verkon visualisoinnin ja jossa osa suunnitteluprosessista on automatisoitu. Työkalun avulla voi verkkosuunnittelija paremmin havaita verkossa eteentulevat ongelmakohdat ja pullonkaulat ja voi keskittyä tehokkaammin niiden eliminointiin. Kehitettävä menetelmä implementoidaan Microsoft Visual Basicila ja yhdistetään osaksi Sonera OY:ssä kehitettyä siirtoverkkojen suunnitteluohjelmaa. Jotta ohjelman sisäistä tietorakennetta voitaisiin hyödyntää mahdollisimman hyvin, koodataan kaikki algoritmit itse. Vaikka työssä tarkastellaankin SDH-verkon mitoitusta, voidaan samaa menetelmää soveltaa pienillä muutoksilla myös muiden verkkoarkkitehtuurien, esimerkiksi ATM- (Asynchronous Transfer Mode) ja IP-verkkojen (Internet Protocol) suunnitteluun. 1

10 SDH-verkko muodostuu useista tasoista. Alimmaisena on kaapeliverkko, johon sisältyvät laiteasemat, kaapelikaivannot (eli ojat, joissa voi kulkea yksi tai useampia kaapeleita) sekä itse kaapelit. Kaapeliverkko sekä sen päälle sijoittuva siirtolaiteverkko muodostavat verkon fyysiset tasot. Siirtolaitteita ovat verkon osuuksilla olevat siirtojärjestelmät, jotka kuljettavat nimensä mukaisesti liikennettä solmusta toiseen. Fyysisiä siirtolaitteita ovat myös solmut, joilla voi olla erilaisia vikaantumistodennäköisyyksiä ja epäkäytettävyysaikoja, kapasiteetteja sekä kykyjä kytkeä liikennettä. Myös solmujen hinnat voivat vaihdella. Tässä työssä ei solmujen ominaisuuksia kuitenkaan oteta huomioon. Siirtoverkon kuljettama liikenne koostuu solmusta toiseen kulkevista yhteyksistä. Alatason yhteydet yhdistetään suurempikapasiteettisiksi VC-4 -signaaleiksi (Virtual Container), jotka siirretään siirtojärjestelmässä viereiseen solmuun. Liikenteellisiä tasoja verkossa on siis kaksi: alemman tason yhteydet sekä VC-4 -yhteyksistä muodostuva ylätaso. Sekä ala- että ylätason yhteydet ovat verkko-operaattorin myytäviä tuotteita. Yhteyksiä voidaan käyttää joko suoraan kahden pisteen väliseen tiedonsiirtoon tai niiden avulla voidaan muodostaa erilaisia palveluverkkoja, esimerkiksi ATM-, IPtai yrityksen sisäisiä vaihdeverkkoja. Jokaiselle tasolle muodostuu oma verkkonsa kuvan 1 mukaisesti. Tässä työssä oletetaan sekä kaapeliverkko että alemman Palveluverkot Loogiset yhteydet Fyysinen siirtolaiteverkko Kaapeliverkko Kuva 1:Kaaviokuva SDH-verkon tasoista. tason liikenne tunnetuiksi ja mitoitetaan ylemmän tason liikenne ja siirtojärjestelmäverkko. 2

11 Loogiset yhteydet ovat yleensä jollakin tavalla varmistettuja. Yhteyden varmistuksella pyritään hoitamaan liikenne ilman suurempaa katkosta erilaisissa vikatilanteissa. Varmistuksen toteuttamiseen on kaksi periaatteeltaan erilaista tapaa varmistuksessa yhteydelle muodostetaan kaksi erillistä reittiä. Yhteyden tarvitsema kapasiteetti on varattu koko ajan molemmilta reiteiltä, jolloin liikenne voidaan varsinaisen reitin vikaantuessa siirtää nopeasti varatielle eli protection-varmistus voidaan toteuttaa joko alemmalla tai ylemmällä tasolla. Ylemmän tason yhteydet voidaan varmistaa myös dynaamisesti restorationvarmistuksella, jossa varatie haetaan vasta vian sattuessa. Verkkokapasiteetilla on siis kolme erilaista käyttötarkoitusta: 1. Yhteyden varsinaisen reitin vaatima kapasiteetti, varmistetun yhteyden varatien vaatima kapasiteetti ja 3. restoration-varmistukseen käytettävä varakapasiteetti. Restoration-varmistukseen käytettävä kapasiteetti on verkonhallintajärjestelmän vapaasti käytettävissä. Kapasiteettia voidaan käyttää useamman eri aikoihin sattuvan vian varmistamiseen. Yhteyksien varsinaisten reittien sekä 1+1 -varmistettujen yhteyksien varareittien vaatima kapasiteetti taas on koko ajan varattu etukäteen nimettyä yhteyttä varten. Tätä kapasiteettia ei voida käyttää muun liikenteen varmistamiseen, vaikka reitillä ei olisikaan liikennettä. Tässä työssä kehitettävässä menetelmässä mitoitetaan siirtojärjestelmäkapasiteetti kolmessa toisistaan erillisessä vaiheessa. Ensimmäisessä vaiheessa muodostetaan alemman tason yhteyksistä ylätaso. Toisessa vaiheessa lasketaan ylätason yhteyksille koko ajan varattuna olevakapasiteetti. Yhteyksille, jotka eivät ole 1+1 -varmistettuja, muodostetaan varsinainen reitti suoraan lyhintä yhteyden päätepisteet yhdistävää polkua pitkin varmistetuille yhteyksille taas haetaan kaksi eri kaapelikaivannoissa kulkevaa polkua siten, että polkujen yhteenlaskettu pituus on mahdollisimman pieni. Menetelmän kolmannessa vaiheessa määrätään tarvittava siirtojärjestelmäkapasiteetti, kun myös restoration-varmistus otetaan huomioon. Menetelmän kolmeen eri vaiheeseen jakamisella saadaan yhteyksille muodostettua mahdollisimman lyhyet reitit. Tällöin niiden vikaantumistodennäköisyys on mahdollisimman pieni. Haittapuolena on se, että tarvittava järjestelmäkapasiteetti ei välttämättä ole aivan minimissään. 3

12 Kolmannessa vaiheessa suoritettava restoration-varmistuksen vaatiman kapasiteetin haku toteutetaan simulointityyppisesti. Jokainen kaapelikaivanto asetetaan vuorollaan kelvottomaksi, ja haetaan kaivannossa kulkeneille liikennekimpuille uudet reitit. Mikäli vian restorointiin ei ole tarpeeksi verkkokapasiteettia, muodostetaan sitä lisää siten, että kapasiteetin kokonaiskustannus minimoituu. Tätä kapasiteettia voidaan käyttää hyväksi muiden kaivantojen restoroinnissa. Kaapelikaivannon restoration-ongelma kuuluu tehtävätyypiltään monihyödykevirtausongelmiin. Nämä eroavat tavallisista virtausongelmista siten, että niissä on monta toisiinsa sekoittumatonta virtausta, joilla kaikilla on omat virtausehtonsa. Virtaukset vuorovaikuttavat toistensa kanssa esimerkiksi kuluttamalla samaa siirtokapasiteettia tai materiaaliresursseja. Formuloimalla ongelma polkumuodossa voidaan yksittäiselle yhteydelle antaa helposti lisärajoituksia. Polkumuodossa formuloidut monen hyödykkeen virtausongelmat ratkaistaan yleensä joko Fordin ja Fulkersonin esittelemällä implisiittisellä sarakkeenmuodostusmenetelmällä [10] tai siitä kehitetyillä partitiointi- tai dekompositiomenetelmillä. Tässä työssä muodostettava optimointiongelma ratkaistaan suoraan implisiittistä sarakkeenmuodostusmenetelmää soveltaen. Restoration-ongelmassa on päätösmuuttujilla myös kokonaislukurajoitukset, joista osa ei toteudu automaattisesti. Kokonaislukurajoitusten toteutuminen varmistetaan branch and bound -algoritmilla [19]. Työn alussa kuvataan erilaisia monen hyödykkeen virtausongelman formulointitapoja ja esitetään joukko polkuformuloinnilla muodostetun ongelman ratkaisemiseen käytettäviä menetelmiä. Lisäksi käsitellään Branch and bound -algoritmi, jota käytetään optimointitehtävän kokonaislukuratkaisun hakemisessa. Työn keskivaiheella kuvataan SDH-verkon rakenne ja suunnittelussa huomioitavia asioita. Tämän jälkeen muodostetaan verkon mitoitusmalli sekä tälle ratkaisumenetelmä. Työn lopussa sovelletaan kehitettyä menetelmää kahteen yksinkertaiseen testiverkkoon. 4

13 2 Monihyödykevirtausongelmat Tässä luvussa tarkastellaan yhden tai useamman hyödykkeen kuljettamista verkon yli. Näitä hyödykkeiden siirto-ongelmia kutsutaan virtausongelmiksi, koska ne ovat analogisia vesijohtoverkon virtausproilin kanssa [13]. Aluksi esitellään yhden hyödykkeen ongelma, joka edustaa perinteistä virtaustehtävätyyppiä. Tämän jälkeen tarkastellaan laajennettua virtausongelmaa, jossa siirrettäviä hyödykkeitä on useita. Monen hyödykkeen virtausongelmalle esitetään kaksi formulointi- sekä useita ratkaisutapoja. Transmissioverkon tehtävänä on yhteyksien kuljetus verkon yli, jolloin jokaiselle yhteydelle on haettava reitti alku- ja loppusolmujen välille. Useamman yhteyden reititysten suunnittelu johtaa monen hyödykkeen virtausongelmaan, jossa voi kapasiteettirajoitusten lisäksi olla myös muita, esimerkiksi liikenteen järjestelyvaatimuksista johtuvia rajoituksia. Vastaavan tyyppisiä tehtäviä syntyy myös ATM-verkon mitoituksessa käytettävien virtuaalipolkujen reititysongelmissa [8]. 2.1 Yhden hyödykkeen virtausongelmat Tarkastellaan aluksi tehtäviä, joissa siirrettäviä hyödykkeitä on vain yksi. Tyypillisiä yhden hyödykkeen virtausongelmia ovat esimerkiksi virtapiiritarkastelut ja erilaiset tie- tai kuljetusverkostojen optimoinnit [15]. Tarkastellaan suunnistettua verkkoa G(N ; A), missä N on solmujen ja A osuuksien joukko. Mikäli verkko ei ole suunnistettu, voidaan se suunnistaa korvaamalla jokainen suunnistamattoman sivu kahdella suunnistetulla sivulla [12]. Esimerkiksi maantiet ovat yleensä kaksisuuntaisia, jolloin niistä muodostettava verkko on suunnistamaton. Verkon suunnistaminen vastaisi kahden vastakkaisiin suuntiin kulkevan kaistan tarkastelemista kaksisuuntaisen tien sijasta. Merkitään solmusta i solmuun j kulkevaa sivua solmuparilla (i; j), ja määritellään jokaiselle solmulle i 2N lähtevien ja tulevien sivujen joukot A(i) =fj 2N j (i; j) 2Agja B(i) =fj 2N j (j; i) 2Ag. Olkoon f ij 0 osuudella (i; j) 2Aoleva virtaus, ja F i solmussa i syntyvä virtaus. 5

14 Solmu on lähde, jos F i > 0 ja nielu, jos F i < 0. Jokaisessa solmussa vallitsee materiaalitasapaino, jonka mukaan solmuun tuleva ja solmusta lähtevä virtaus ovat yhtä suuret (vrt. Kirchon laki). Tällöin solmua i vastaavat virtausehdot (materiaalibalanssi) esitetään muodossa X X f ij, f ij = F i ; i 2N: (1) j2a(i) j2b(i) f f 54? f f f 1 2 Kuva 2: Esimerkkiverkko. Esimerkiksi kuvan 2 kaltaisessa verkossa solmujen ja osuuksien joukot ovat N = f1; 2; 3; 4; 5g, jaa = f(1; 5); (4; 5); (5; 2); (5; 3); (5; 4)g. Solmusta 5 lähtevien sivujen joukko on A(5) = f(5; 2); (5; 3); (5; 4)g ja solmuun tulevien sivujen joukko B(5) = f(1; 5); (4; 5)g, joten solmun 5 materiaalitasapaino on muotoa (f 52 + f 53 + f 54 ), (f 15 + f 45 )=F 5 : Olkoon N solmujen ja M sivujen lukumäärä. Indeksoidaan sivut yhdestä M:ään, jolloin verkon rakenne voidaan esittää N M -dimensioisella solmu-sivu -saavutettavuusmatriisilla E =[E ij ], missä E ij = 8 >< >: 1; jos osuus j alkaa solmusta i,1; jos osuus j päättyy solmuun i 0; muuten, Kuvan 2verkon solmu-osuus -matriisi on muotoa 2 1,1 E =, ,1,1 1 1,

15 Esitetään virtausproili vektorina f =(f 1 ::: f M ) T, missä f j on virtaus osuudella j 2A, ja määritellään vektori b = (F 1 ::: F M ) T. Virtausehdot (1) voidaan nyt esittää matriisimuodossa Ef = b; (2) Virtausehtojen (2) lisäksi tehtävässä on usein myös muita rajoitusehtoja, esimerkiksi kapasiteettirajoituksia. Virtausongelmissa on yleisesti kaksi erilaista tehtävätyyppiä. Maksimivirtausongelmassa pyritään maksimoimaan verkon yli kulkevaa virtausta. Minimikustannusongelmassa taas minimoidaan kiinteästä virtauksesta aiheutuvaa kustannusta. 2.2 Monen hyödykkeen virtausongelmat Mikäli tarkasteltavana on useita toisiinsa sekoittumattomia hyödykkeitä, puhutaan monihyödykevirtausongelmasta. Monen hyödykkeen virtausongelmissa on jokaisella hyödykkeellä oma virtausproilinsa, ja hyödykkeiden keskenäinen vuorovaikutus ilmenee esimerkiksi kilpailuna yhteisestä kapasiteetista tai resursseista. Esimerkiksi jakeluverkon suunnittelu yritykselle, jonka tuotteet viedään kuluttujan lähelle yhden jakeluverkoston avulla, johtaa monen hyödykkeen virtausongelmaan. F 2 F ) F 1 + F 2 F 2 -, 2, F 1 Kuva 3: Kahden lähteen yhdistäminen. Tässä työssä tarkasteltavan siirtoverkon suunnitteluongelman yksi osa on reittien hakeminen yhteyksille. Usean yhteyden reititysongelma on monen hyödykkeen virtaustehtävä, jossa yhteydet käyttävät yhteistä siirtokapasiteettia ja kullakin yhteydellä on täsmälleen yksi lähde ja yksi nielu. Vaikka jatkossa tarkastellaan 7

16 vain tällaisia tehtäviä, käyvät tarkastelut myös muillekin lähde- ja nieluyhdistelmille. Mikä tahansa yhdistelmä saadaan kyseiseen muotoon lisäämällä tehtävään kaksi apusolmua, joista toiseen kerätään kaikkiin lähdesolmuihin tulevat virtaukset ja toiseen nielusolmuista poistuvat virtaukset. Kuvassa 3 on esimerkki lähdesolmujen yhdistämisestä. Myös monihyödykevirtausongelmissa on tavallisten virtausongelmien tapaan kaksi tehtävätyyppiä. Maksimivirtausongelmissa pyritään maksimoimaan verkon yli kulkevaa kokonaisvirtausta, kun minimikustannusongelmissa halutaan toteuttaa annetut virtausvaatimukset mahdollisimman pienillä kokonaiskustannuksilla [2]. Tehtävätyypit eroavat toisistaan vain kohdefunktion suhteen, virtausehdot ovat molemmissa samat. Seuraavassa esitetään kaksi ekvivalenttia formulointia ongelmalle, jossa verkon sivuilla on äärellinen kapasiteetti. 2.3 Formulointi Tarkastellaan aluksi virtausformulointia, joka on edellä esitetyn yhden hyödykkeen ongelman yleistys. Olkoon K hyödykkeiden lukumäärä ja (s k ; t k ) hyödykkeen k lähde- ja nielusolmut, k =1;:::;K. Määritellään lisäksi muuttujat f k j = hyödykkeen k virtaus osuudella j 2A, fj k 0, F k = verkon läpi solmusta s k solmuun t k kuljetettava hyödykkeen k virtaus. Hyödykkeen k virtausehdot voidaan esittää yhtälöä (2) vastaavassa muodossa missä f k =[f k 1 ::: f k M ]T, b k =[b k 1 ::: b k M ]T ja b k i = 8 > < >: Ef k = b k ; (3) F k ; i = s k,f k ; i = t k 0; muuten. Olkoon d =[d 1 ::: d M ] T, missä d j 0 on osuuden j kapasiteetti. Olkoon lisäksi g k hyödykkeen k kuluttama kapasiteetti yhden yksikön virtausta kohden. Tällöin 8

17 kapasiteettirajoitus on muotoa KX g k f k d: (4) k=1 Tehtävä saadaan siis virtausformuloinnilla muotoon 8 >< KX g k f k d k=1 >: Ef k = b k ; k =1;:::;K: (5) Sama tehtävä voidaan formuloida myös toisin. Polkuformuloinnissa päätösmuuttujina ovat solmuja s k ja t k yhdistäville käyville poluille allokoidut virtaukset. Olkoon J(k) alku- ja loppusolmut yhdistävien käypien polkujen lukumäärä ja x k j 0 polulle j allokoitu virtaus, j =1;:::;J(k). Muodostetaan hyödykkeen k polku-osuus -matriisi A k siten, että ( A k ij = 1; jos polku j kulkee sivun i kautta 0; muuten. Muodostetaan lisäksi polkuvektori x k = [x k 1 ::: x k J(k) ]T, jolloin hyödykkeen virtausvektori on f k = A k x k : Vaatimus F k :n yksikön virtauksesta solmusta s k solmuun t k yksinkertaistuu muotoon J(k) X j=1 x k j = F k : Virtausongelma (5) voidaan esittää nyt muodossa KX k=1 g k A k x k d J(k) X j=1 x k j = F k ; k =1;:::;K: (6) Polkuformuloinnissa (6) ei oteta lainkaan kantaa verkon suunnistukseen. Verkko voi siis olla joko suunnistettu tai suunnistamaton. Suunnistus vaikuttaa polkujen lukumäärään ja polun etsimiseen, mutta formulointiin tai kohdassa 2.4 esitettävien ratkaisualgoritmien pääkohtiin se ei vaikuta. 9

18 Tarkastellaan esimerkin vuoksi yksinkertaista kuvan 4 mukaista verkkoa, jonka hyödykkeet on esitetty taulukossa Kuva 4: Esimerkkiverkon topologia. Taulukko 1: Esimerkkiongelman hyödykkeet. Hyödyke Solmu 1 Solmu 2 (lähde) (nielu) Käypien polkujen lukumäärät ovat J(1) = 3, J(2) = 4 ja J(3) = 3. Esimerkkiongelman rajoitusyhtälöiden kerroinmatriisiksi saadaan x 1 1 x 1 2 x 1 3 j x 2 1 x 2 2 x 2 3 x 2 4 j x 3 1 x 3 2 x 3 3 j s 1 s 2 s 3 s 4 s 5 1 j 1 1 j 1 1 j 1 1 j 1 1 j 1 j 1 1 j 1 1 j 1 j 1 1 j 1 1 j 1 j 1 1 j 1 1 j 1 j j j j j j j j j j ; (7) missä s 1 ;:::;s 5 ovat kapasiteettiehtoja vastaavat slack-muuttujat. Matriisin (7) kolme ensimmäistä saraketta vastaavat siis hyödykkeen 1, neljä seuraavaa hyödykkeen 2 ja seuraavat kolme hyödykkeen 3 polkumuuttujia. 10

19 Taulukossa 2 on vertailtu virtaus- ja polkuformuloinnilla saatavien ongelmien dimensioita. Polkuformuloinnissa rajoitusehtojen lukumäärä on pienempi kuin virtausformuloinnissa eli kanta vaatii vähemmän muistia, ja kannan käänteismatriisin päivitys tapahtuu nopeammin. Toisaalta muuttujien lukumäärä on paljon isompi, mutta kaikkia muuttujia ei tarvitse pitää eksplisiittisesti muistissa, vaan ne voidaan muodostaa kohdassa esitettävällä Fordin ja Fulkersonin ehdottamalla sarakkeenmuodostusmenetelmällä. Taulukko 2: Eri formuloinneilla muodostuvat optimointiongelmat. Rajoitusehtojen lkm Päätösmuuttujien lkm Virtausformulointi (M +1)K 2M KP Polkuformulointi M + K J(k) k=1 Polkuformulointi on hyvin käyttökelpoinen verkonmitoitustehtävissä, koska tehtävään voidaan helposti lisätä polkuihin kohdistuvia rajoituksia. Käytännön suunnittelussa saatetaan esimerkiksi vaatia, että polku ei saa kulkea yli kymmenen solmun läpi. Tällaisten ehtojen lisääminen virtausformuloinnilla muodostettuun tehtävään on hankalaa. 2.4 Ratkaisutapoja Monihyödykevirtausongelmien ratkaisutavat jaetaan kolmeen päätyyppiin [14]: 1. kustannusohjaavat dekompositiomenetelmät, 2. resurssiohjaavat dekompositiomenetelmät ja 3. partitiointimenetelmät. Tässä luvussa esitetään kustannusohjaavista menetelmistä Fordin ja Fulkersonin esittelemä implisiittinen sarakkeenmuodostusmenetelmä. Lisäksi esitetään resurssiohjaavien menetelmien käyttöön johtava formulointi. Partitiointimenetelmistä käydään läpi primaalipartitiointi sekä generalized upper bounding -menetelmä 11

20 (GUB), jotka ovat kumpikin implisiittisen sarakkeenmuodostusmenetelmän sovelluksia Implisiittinen sarakkeenmuodostus Tarkastellaan polkuformuloinnilla (6) muodostettua monen hyödykkeen virtausongelmaa. Ford ja Fulkerson suosittelivat tehtävän ratkaisussa käytettäväksi implisiittistä sarakkeenmuodostusmenetelmää [10], jossa sovelletaan liitteessä A esitettyä Revised Simplex -algoritmia ja hyödynnetään ongelman rakennetta. Kaikkia polkumuuttujia ei käsitellä eksplisiittisesti, vaan niitä muodostetaan vasta tarvittaessa. Menetelmästä on kehitetty kohdissa ja esitettävät partitiointimenetelmät ja se on antanut idean myös yleisempien tehtävien ratkaisussa käytettävälle Dantzig-Wolfe -dekompositiolle. Olkoon c i osuudelle i allokoidun yhden yksikön virtauksen aiheuttama kustannus. Oletetaan yksinkertaisuuden vuoksi, että tämä kustannus on sama kaikille hyödykkeille. Tällöin yhden yksikön virtaus polulla x k j aiheuttaa kustannuksen P M i=1 c i A k ij = ct A k j, missä c =[c 1 ::: c M ] T ja A k j =[Ak 1j ::: A k Mj ]T. Mimimikustannusongelma on standardimuodossaan KX J(k) X k=1 j=1 min z = A k j x k j + s = d J(k) X j=1 KP J(k) P k=1 j=1 c T A k j x k j x k j = F k ; k =1;:::;K; missä s =[s 1 ::: s M ] T on slack-vektori. Jaetaan tehtävän muuttujat K +1:een ryhmään, joista ensimmäinen koostuu slack-muuttujista ja loput K eri hyödykkeiden polkumuuttujista. Tarkastellaan Revised Simplex -algoritmissa (liite A) tarvittavan redusoidun kustannuksen määräämistä eri muuttujatyypeille. (8) 1. Slack-muuttujan s j sarake on muotoa P s j = e j(m + K); j =1;:::;M; 12

21 missä e j (M + K) on M + K-dimensioinen vektori, jonka j:s alkio on 1 ja loput nollia. Muuttujan s j kerroin kohdefunktiossa on nolla, joten muuttujaa vastaava redusoitu kustannus on missä Y =[Y 1 2. Polkumuuttujan x k j sarake on c s j = YPs j, 0=Y j ; ::: Y M+K ] on duaaliratkaisu. P k j = " A k j e k (K) jolloin muuttujan redusoitu kustannus on # ; c k j = YP k j, c T A k j = MX i=1 (Y i, c i )A k ij + Y M+k: Yleensä Revised Simplex -algoritmissa viedään kantaan lupaavin muuttuja eli se, jonka redusoitu kustannus on suurin. Implisiittisessä sarakkeenmuodostusmenetelmässä tarkastellaan ensiksi lupaavinta slack-muuttujaa s j, missä j = argmax j=1;:::;m n c s j o = argmax j=1;:::;m fy j g : Jos redusoitu kustannus c s > 0, viedään s kantaan. Jos j j cs j 0, tarkastellaan seuraavaksi ensimmäisen hyödykkeen lupaavinta polkua x 1 j. Tämän polun redusoitu kustannus on n o c 1 j = max c 1 j j=1;:::;j(1) ( MX ) = max j=1;:::;j(1) i=1 = Y M+1 + min j=1;:::;j(1) (Y i, c i )A 1 ij + Y M+1 ( MX i=1 (c i, Y i )A 1 ij Minimi määräätään etsimällä lyhin solmut s 1 ja t 1 yhdistävä polku verkosta, jossa sivun i kustannus on c i,y i.koska slack-muuttujaa ei voitu tuoda kantaan, pätee Y i 0; i =1;:::;M: 13 ) :

22 Toisaalta taas virtausten kustannukset ovat ei-negatiivisia, joten c i, Y i 0; i =1;:::;M: Tällöin minimipolku voidaan etsiä kohdassa 3.3 esitetyllä Dijkstran algoritmilla. Jos löydettyä minimipolkua vastaava redusoitu kustannus c 1 j > 0, viedään polku x 1 j kantaan. Muuten siirrytään tarkastelemaan seuraavaa hyödykettä. Tällä tavoin käydään läpi kaikki hyödykkeet, kunnes löytyy kohdefunktion arvoa parantava polku. Mikäli tällaista polkua ei ole olemassa, on tehtävän minimi löytynyt. Muut algoritmin vaiheet noudattavat täsmälleen revised simplex -algoritmin kohtia (liite A). Dijkstran sijasta voitaisiin myös hakea tehtävän alussa kaikille hyödykkeille lyhimmät polut. Tämän jälkeen lyhimpiä polkuja voitaisiin päivittää tarpeen vaatiessa sopivalla primaalisella lyhimmän polun hakualgoritmilla, kuten esimerkiksi tunnustenkorjausmenetelmällä [5]. Ford ja Fulkerson suosittelivat, että jos jollekin hyödykkeelle löydetään kohdefunktion arvoa parantava polku, viedään se heti kantaan. Vaihtoehtoinen mahdollisuus olisi etsiä ensiksi jokaiselle hyödykkeelle minimipolku ja valita näistä paras. Cremeans et al. käsittelevät tätä tapaa tarkemmin viitteessä [4]. Implisiittinen sarakkeenmuodostusmenetelmä on antanut idean myös Dantzig- Wolfe -dekompositiolle, jonka avulla voidaan ratkaista yleisempiä LP-ongelmia. Menetelmä soveltuu kuvan 5 kaltaisiin kulmalohkomuodossa oleviin systeemeihin, joissa on osassa rajoitusyhtälöistä lähes kaikki muuttujat mukana. Loput rajoitusyhtälöt taas ovat lohkomuotoisia ja eri lohkot keskenään riippumattomia. Yhteiset rajoitusyhtälöt Kuva 5: Lohkomuotoinen rajoitusyhtälöryhmä. Dantzig-Wolfe -dekompositiossa tehtävä jaetaan lähes riippumattomista lohkoista muodostettaviin aliongelmiin, jotka ratkaistaan itsenäisesti. Master-ongelmas- 14

23 sa valitaan kantaan tuleva muuttuja aliohjelmissa muodostetuista ääripisteistä huomioiden yhteiset rajoitusyhtälöt. Algoritmi on kuvattu liitteessä B Resurssiohjaava dekompositio Implisiittinen sarakkeenmuodostus ja Dantzig-Wolfe -dekompositio ovat kustannusohjaavia dekompositiomenetelmiä, joissa pääongelmassa määrätään aliongelmille kustannukset ja aliongelmissa haetaan toisistaan riippumattomasti ehdokkaita kantaan tulevaksi muuttujaksi. Myös resurssiohjaavassa dekompositiossa tehtävä jaetaan master-ongelmaan ja kutakin hyödykettä vastaaviin aliongelmiin. Masterongelmassa jaetaan käytettävissä olevat resurssit (kapasiteetti) aliongelmille. Tämän jälkeen aliongelmissa ratkotaan tavallisia yhden hyödykkeen minimikustannusvirtausongelmia. Näiden ratkaisujen perusteella päivitetään resurssien jakoa ja jatketaan iteraatiota [14]. Tarkastellaan virtausformuloinnilla muodostettua minimikustannustehtävää, joka on muotoa KP min z = c T f k k=1 Ef k = b k ; k =1;:::;K KX k=1 f k d: (9) Olkoon y k hyödykkeen k virtaukselle jaettu kapasiteetti. Tehtävä (9) voidaan esittää ekvivalentissa muodossa KP missä z k on aliongelman min z = KP k=1 y k d; zk k=1 (10) min z k = c T f k Ef k = b k (11) f k y k optimiratkaisu [2]. Aliongelmat (11) ovat tavallisia yhden hyödykkeen virtausongelmia. Hyödykkeille varattavia kapasiteetteja y k muutellaan masterongelmassa 15

24 (10). Aliongelman k ratkaisu z k on vektorin y k jatkuva funktio. Vastaavasti masterongelman kohdefunktio z = z(y 1 ; :::; y K ). Epälineaarinen optimointitehtävä (10-11) voidaan ratkaista monella eri tavalla. Tangentiaaliapproksimaatiossa muodostetaan lineaariset approksimaatiot funktioista z k (yk ). Approksimaatio on sitä parempi, mitä lähempänä ollaan aliongelman optimia. Optimissa esitys on tarkka. Tätä eksplisiittistä riippuvuutta käytetään hyväksi master-ongelmassa redusoitujen kustannusten laskemisessa. Käypien suuntien menetelmässä tarkastellaan ongelman käypää ratkaisua y. Menetelmässä haetaan lupaavin joka on käypä. Suunta on käypä, jos on olemassa 0 > 0 siten, että y on käypä kaikilla 0 0. Lupaavin suunta tarkoittaa sitä, minimoi kohdefunktion z(y 1 ;:::;y K ) suuntaderivaatan ottaen edellä mainitun käypyysehdon huomioon. Aligradienttioptimoinnin lähtökohtana on se, että lupaavimman käyvän suunnan etsiminen on liian raskas minimointiongelma. Aligradienttioptimoinnissa tyydytäänkin mihin suuntaan tahansa, joka parantaa kohdefunktion arvoa ja on käypä. Tässä mainitut ratkaisumenetelmät on kuvattu tarkemmin viitteissä [2] ja [14] Primaalipartitiointi Edellä esitetyssä implisiittisessä sarakkeenmuodostusmenetelmässä jaetaan muuttujat kahteen tyyppiin: polkumuuttujat ja slackit. Farvolden, Powell ja Lustig jakavat kannassa olevat muuttujat kolmeen ryhmään [9]: 1. polkumuuttujat, joita vastaavien hyödykkeiden virtaus on sijoitettu vain yhdelle polulle, 2. polkumuuttujat, joita vastaavien hyödykkeiden virtaus on jakautunut vähintään kahdelle eri polulle, 3. slack-muuttujat. 16

25 Olkoon yksinkertaisuuden vuoksi U ensimmäistä ja U toista polkutyyppiä vastaavien hyödykkeiden joukot. Olkoon lisäksi V saturoitumattomien ja V saturoituneiden sivujen joukko. Järjestetään muuttujat siten, että ensimmäisenä ovat joukon U ja toisena joukon U kannassa olevat polut. Viimeisenä ovat slackit. Rajoitusehdot järjestetään siten, että esimmäisenä ovat joukon U hyödykkeiden virtausehdot. Toisena ovat joukon U hyödykkeiden virtausehdot sekä joukon V sivuja vastaavat kapasiteettiehdot. Lopuksi tulevat joukon V sivuja vastaavat kapasiteettiehdot. Näiden järjestelyiden ansiosta voidaan kanta B esittää muodossa B = I U P I V missä I U ja I V ovat identiteettimatriiseja [9] ; (12) Palataan kohdassa 2.3 esitettyyn esimerkkiongelmaan. Tarkastellaan tilannetta, jossa polkumuuttujat x 1 3, x 2 1, x 3 1 ja x 3 2 ovat kannassa ja sivu 3 on saturoitunut. Hyödykejoukot ovat tällöin U = f1; 2g ja U = f3g. Sivujen joukot taas ovat V = f1; 2; 4; 5g ja V = f3g. Kanta B saadaan tällöin taulukossa 3 esitettyyn muotoon. Taulukko 3: Esimerkkiongelman kantamatriisi. B = x 1 3 x 2 1 j x 3 1 x 3 2 j s 1 s 2 s 4 s j 0 0 j j 0 0 j j 1 1 j j 1 0 j j 0 1 j j 0 0 j j 0 0 j j 0 1 j Revised simplex -algoritmissa ratkaistaan kantaan tulevalle muuttujalle rajoitusyhtälöiden kerroinvektori yhtälöstä B = P. Jaetaan ja P rajoitusyhtä- 17

26 löiden partitiointia vastaaviin osiin = P = Tällöin rajoitusyhtälöiden kertoimet saadaan ratkaistua yhtälöryhmästä (13): I 6 U P P = 4 P I V 3 P 3,, 8 >< >: 8 >< >: P 1 P 2 P : I U 1 = P P 2 = P I V 3 = P 3 1 = P 1 P 2 = P 2, = P 3, ( ): (13) Työskentelykanta P on ei-singulaarinen neliömatriisi, jonka dimensio on joukkoon U kuuluvien hyödykkeiden kannassa olevien polkujen lukumäärä [9]. Sivujen kapasiteetit ovat tyypillisesti suuria verrattuna yksittäisen hyödykkeen vaatimaan kapasiteettiin, jolloin suurin osa hyödykkeistä kuluu joukkoon U ja työskentelykannan dimensio pysyy suhteellisen pienenä. Kannasta voi lähteä vain sellainen muuttuja, jota vastaava vektorin alkio on positiivinen. Tähän perustuen voidaan pivotoinnit rajata yhdeksään eri tyyppiin [9]. Pivotointityypeissä nimetään ne muuttujat, jotka voivat poistua kannasta, kun kantaan tulevan muuttujan tyyppi tunnetaan. Olkoon esimerkiksi x k m hyödykkeen k 2Ukannassa oleva polku. Oletetaan, että kantaan tuleva muuttuja on x k j ja että kummankaan polun varrella ei ole yhtään saturoitunutta linkkiä. Tällöin kannasta voi poistua joko x k m tai slack-muuttuja, jota vastaava sivu ei kuulu polkuun x k m, mutta kuuluu polkuun x k j. Edellinen pivoitointityyppi ei vaikuta työskentelykantaan P mitenkään, ja jälkimmäisessäkin tyypissä kannan käänteismatriisin päivitys onnistuu ilman matriisioperaatioita. Suurin osa pivotoinneista on jompaa kumpaa edellä esitetyistä tyypeistä [9], joten kannan käänteismatriisin päivitys on pääsääntöisesti nopea ja yksinkertainen toimenpide. 18

27 2.4.4 Generalized upperbounding Generalized upperbounding -menetelmä (GUB) on suosittu partitiointitapa, joka on varsin samankaltainen edellä esitetyn primaalipartitioinnin kanssa [2, 9]. Siinä valitaan jokaiselle hyödykkeelle yksi avainpolku, jota vastaavaa rajoitusyhtälöiden saraketta kutsutaan avainsarakkeeksi. Muuttujat jaetaan kolmeen ryhmään: avainpolut, muut polut ja slack-muuttujat. Tällä tavoin saadaan kantamatriisista eristettyä mahdollisimman suuri identiteettimatriisi. Oletetaan, että tehtävälle on löydetty käypä kanta. Kanta voidaan tällöin esittää muodossa B = " # AK A N ~I t = I K C 0 1 " AK ^B ^C I K # ; (14) missä A K on avainpolkuja ja A N muita kannassa olevia polkuja vastaava kapasiteettiehtojen kerroinmatriisi. Kannassa olevien ei-avainpolkujen virtausehdot ovat matriisissa C, jonka sarake v on siis e s (K), jos matriisin A N sarake v vastaa hyödykkeen s polkua. Matriisin ~ I t sarakkeet ovat kannassa olevia slack-muuttujia vastaavia yksikkövektoreita. Avainpolut on järjestetty siten, että niiden virtausehdoista saadaan muodostettua K K-dimensioinen identiteettimatriisi I K. Yksinkertaisuuden vuoksi on merkitty ^B =[A N ~I t ] ja ^C =[C 0 1 ]. Järjestetään kantavektori X B muotoon X B = [x K x NK S] T, missä x K on avainpoluista, x NK muista kannassa olevista poluista ja S kannassa olevista slackmuuttujista koostuva vektori [16]. Tehdään seuraavaksi muuttujanvaihdos ~x K = x K + Cx NK, jossa hyödykkeen s uusi avainpolku on kaikkien hyödykkeen kannassa olevien polkujen summa. Olkoon uusi päätösmuuttujavektori muotoa X ~ B = [~x K x NK S] T, jolloin vanhojen ja uusien päätösmuuttujien välillä on yhteys " # IK ^C ~X B = X 0 I B = TX B ; (15) M missä I M on M M -identiteettimatriisi. Tehtävään saadaan uusi kanta vastaamaan muunnettuja muuttujia: BX B = BT,1 ~X B = ~ B ~ X B : Uusi kanta on muotoa ~B = BT,1 = " AK ^B ^C I K #" IK, ^C # 0 I M 19

28 = = " AK ^B, A K ^C I K 0 " AK P I K 0 # ; # missä P = ^B, A ^C. K Kannalle B ~ löydetään helposti käänteismatriisi: " # ~B,1 0 I K = ; P,1,P,1 A K jonka jälkeen saadaan alkuperäisen kannan käänteismatriisi muodossa ", ^CP B,1,1 I = K + ^CP #,1 A K : (16) P,1,P,1 A K Sen sijaan, että päivitettäisiin täyden kannan (M + K) (M + K) -dimensioista käänteismatriisia B,1, riittää M M -dimensioisen työskentelykannan P käänteismatriisin päivitys simplex-algoritmin toteuttamiseen. Tällöin käänteismatriisin tallentaminen vaatii vähemmän muistia ja päivitys on nopeampaa [16]. GUB ja kohdassa esitetty primaalipartitiointi ovat muuttujien järjestelyn osalta varsin lähellä toisiaan. Joukon U polkuja vastaa GUB:ssa avainpolut. Eiavainpolut taas kuuluisivat primaalipartitioinnissa joukkoon U. Erona on se, että osa avainpoluista kuuluisi primaalipartitioinnissa jaettujen hyödykkeiden joukkoon U. Primaalipartitiointi käyttää hyväkseen jakautuneiden hyödykkeiden ja saturoituneiden linkkien välistä yhteyttä, GUB:ssä taas saadaan kannasta eristettyä suurempidimensioinen identiteettimatriisi [9]. GUB-partitioinnissa saatetaan kantamatriisi muuttujanvaihdoksen avulla muodosta 2 3 ^B A 1 ::: A N I B = C muotoon 2 3 P A 1 ::: A N I ~B = : I N I N 20

29 Tästä syystä GUB-partitiointia voidaan soveltaa vastaavalla tavalla myös virtausformuloinnilla muodostettuun monihyödykevirtausongelmaan [2, 11]. Partitiointimenetelmissä siis eristetään kantamatriisista B työskentelykanta P, jonka käänteismatriisia päivitetään algoritmin aikana. Tavoitteena on saada työskentelykannan dimensio mahdollisimman pieneksi, jolloin käänteismatriisin päivitys nopeutuu. Vastaavaan tulokseen päästään myös kantamatriisin LU-hajotelmalla, jossa muodostetaan ala- ja yläkolmiomatriisit L ja U siten, että B = LU [2]. 21

30 3 Kokonaislukuoptimointimenetelmät 3.1 Yleistä Tässä luvussa tarkastellaan kokonaislukuongelmia sekä niiden ratkaisemista. Kokonaislukuongelmia ovat esimerkiksi optimointitehtävät, joissa päätösmuuttujat ovat lukumääriä tai digitaalisia muuttujia. Jos optimointitehtävän kaikki muuttujat ovat kokonaislukuja, kutsutaan tehtävää puhtaaksi kokonaislukuongelmaksi. Jos vain osalla muuttujista on kokonaislukurajoitus ja osalla ei, puhutaan sekalukuongelmasta. Kokonailukuongelmien ratkaisemisen tekee hankalaksi se, että yksittäisen pisteen optimaalisuutta ei voida päätellä suoraan alkuperäisen tehtävän avulla. Mikäli muuttujien vaihteluvälit ovat suuria, voidaan kokonaislukumuuttujia approksimoida jatkuvilla muuttujilla. Usein myös se, että lineaaristen tehtävien ratkaisu löytyy jostakin ratkaisuavaruuden ääripisteestä, riittää takaamaan kokonaislukuratkaisun. Tällöin ratkaisussa ei tarvitse välittää kokonaislukurajoituksista ja tehtävä voidaan ratkaista tavallisilla optimointimenetelmillä. Kokonaislukuongelmia ratkotaan yleensä jollain seuraavista menetelmistä [18, 21]: Branch and bound -menetelmillä, joissa käypää aluetta jaetaan osaongelmiin leikkausmenetelmillä, joissa käyvästä alueesta leikataan osia pois Lagrangen relaksaatiolla, jossa rajoitusehdot liitetään osaksi kustannusfunktiota SDH-verkon mitoitusmallissa on sekä polkumuuttujilla että järjestelmien lukumäärillä kokonaislukurajoitus. Polkumuuttujien kokonaislukuratkaisun takaamiseksi riittää kuitenkin se, että järjestelmälukumäärät ovat kokonaislukuja. Tällöin polkumuuttujien kokonaislukurajoitusta ei tarvitse huomioida tehtävää ratkaistessa. Polkuformuloinnilla muodostetussa tehtävässä kaikkia muuttujia ei tunneta eksplisiittisesti. Tästä syystä usein kokonaislukuongelmissa käytettävät leikkausmenetelmät ja Langrangen relaksaatio eivät sovellu tehtävän ratkaisemiseen. 22

31 Branch and bound-menetelmää sen sijaan voidaan käyttää vaikka kaikkia muuttujia ei ekplisiittisesti tunnetakaan. Koska kokonaislukurajoitukset huomioidaan vain järjestelmälukumäärien osalta, on kokonaislukumuuttujien määrä suhteellisen pieni, jolloin branch and bound-menetelmä toimii riittävällä nopeudella. Monen hyödykkeen virtausongelmien ratkaisemiseen käytettävässä implisiittisessä sarakkeenmuodostusalgoritmissa ja sen johdannaisissa on tehtävän aliongelmana lyhimmän polun haku. Lyhimmän polun haku on erikoistapaus kokonaislukuongelmista. Tässä luvussa kuvataan yleisen sekalukuongelman ratkaisussa käytettävät branch and bound-menetelmät. Lisäksi esitetään Dijkstran algoritmi, joka on tehokkain lyhimmän polun hakualgoritmi [7]. 3.2 Branch and bound -menetelmät Optimointitehtävän ratkaisuavaruutta voidaan pitää rajoitettuna, joten käypiä kokonaislukuratkaisuja on äärellinen määrä. Seuraavassa tarkastellaan branch and bound -menetelmiä, jotka perustuvat kokonaislukuratkaisujen luettelointiin. Luetteloinnilla pyritään hylkäämään ei-lupaavia pisteitä mahdollisimman tehokkaasti. Tarkastellaan yksinkertaisuuden vuoksi puhdasta, lineaarista kokonaislukuoptimointiongelmaa min z = c T x (17) ehdolla x 2 S; missä x = [x 1 ::: x N ] T ja S on käypien kokonaislukupisteiden joukko. Branch and bound -menetelmissä ei kokonaislukurajoituksia käsitellä suoraan, vaan niissä ratkotaan jatkuvia tehtäviä, joiden ratkaisuavaruutena on alkuperäisen tehtävän ratkaisuavaruuden osa [18]. Algoritmin alussa muodostetaan joukko T siten, että käypien pisteiden joukko S T. Yksinkertaisimmillaan tämä vastaa kokonaislukurajoituksen poistamista eli relaksoimista. Branch and bound -menetelmissä on kaksi perusoperaatiota [3]: Branching: Jaetaan T osajoukkoihin T 1 ;:::;T q ja ratkaistaan toisistaan riip- 23

32 pumattomasti aliongelmat min z i = c T x ehdolla x 2 T i ; i =1;:::;q: (18) Osajoukkojen ei tarvitse täyttää T :tä eli ei vaadita että T T 1 [ :::[ T q. Yhtään käypää kokonaislukuratkaisua ei kuitenkaan hylätä. Osajoukkot voivat myös mennä päällekäin. Jaon tavoitteena on rajata ratkaisuavaruudesta alkuperäisten kokonaislukurajoitusten suhteen ei-käypää aluetta mahdollisimman tehokkaasti pois. Bounding: Aliongelmien (18) optimiratkaisut zi ovat alarajoja alkuperäisen tehtävän minimille. Näitä rajoja hyväksikäyttäen saadaan aliongelmat järjestykseen, jossa lupaavin aliongelma on ensimmäisenä. Jos aiemmin löydetty kokonaislukuratkaisu z min zi, hylätään aliongelma. Jos aliongelman optimiratkaisu ei täytä alkuperäisen tehtävän kokonaislukuvaatimuksia, jaetaan se uusiin aliongelmiin. Tuloksena syntyy täten branch and bound -puu, jonka solmuja ovat aliongelmat. Sellaista solmua, jota ei olla vielä käsitelty, kutsutaan aktiiviseksi. Branch and bound -algoritmien tehokkuus riippuu sekä haarautumisen että alarajan määräämisen toteutuksesta. Eri algoritmit eroavat toisistaan juuri näissä toimenpiteissä. Ensimmäisen algoritmin kehittivät Land ja Doig vuonna 1960 [18]. Land-Doig -algoritmissa ratkaistaan aluksi alkuperäisestä tehtävästä (17) muodostettu jatkuva optimointitehtävä min z = c T x ehdolla x 2 T; (19) missä x = [x 1 ::: x N ] T. Jos tehtävällä on kokonaislukuratkaisu, on alkuperäiselle tehtävälle (17) löydetty ratkaisu. Muuten valitaan haarautumismuuttujaksi jokin kokonaislukurajoitusta rikkova muuttuja x k. Olkoon x k haarautumismuuttujan arvo optimissa ja [x k ] sen kokonaislukuosa. Seuraavaksi muodostetaan kaksi aliongelmaa, joista toiseen on lisätty rajoitus x k [x k ] ja toiseen rajoitus x k [x ]+1. Jaossa poistetaan siis ratkaisuavaruudesta väli k [x k ] <x k < [x ]+1, k johon ei voi kuulua yhtään kokonaislukuratkaisua. Jaossa rajataan kuitenkin alkuperäisen tehtävän optimipiste pois aliongelmien ratkaisuista. Tällä tavalla lisättyjä rajoitusehtoja ei tarvitse käsitellä erikseen omina rajoitusyhtälöinään, vaan ne voidaan huomioida suoraan muuttujien ala- ja ylärajoina. Tällöin voidaan alarajat poistaa muuttujanvaihdoksella aliongelmista ja ratkaista tehtävät liitteessä 24

33 A esitetyllä ylärajatekniikalla. Jos aliongelman optimiratkaisu ei ole kokonaisluku, suoritetaan jako uudestaan aliongelmalle. Menetelmässä on kaksi valintakohtaa: käsiteltävän solmun ja haarautumismuuttujan valinta. Lupaavin aktiivisista solmuista on se, jonka alaraja on pienin. Lupaavimman solmun valinnassa on kuitenkin aiempien optimikantojen käyttö hankalaa. Voidaan olettaa, että solmun aliongelmien ratkaisut ovat lähellä isä-ongelman ratkaisua. Tällöin kannattaisi optimikanta aina tallettaa, jotta sitä voitaisiin käyttää myöhemmin hyödyksi alisolmun ratkaisemisessa. Aktiivisten solmujen lukumäärä voi kuitenkin olla hyvin suuri, jolloin kantojen tallentelu vaatisi varsin paljon muistia. Valinta voidaan suorittaa myös LIFO-säännöllä (last-in rst-out), jossa käsittelyyn valitaan viimeksi muodostettu solmu. Toisin sanoen viimeiseksi käsitellyn solmun haaroista toinen talletetaan jatkokäsittelyä varten ja toinen ratkaistaan heti. Tällöin edellisessä osaongelmassa ratkaistu kanta on lähellä uuden solmun optimiratkaisua. Valitsemalla käsiteltävä solmu tällä tavoin päädytään myös mahdollisimman nopeasti käypään ratkaisuun, koska tällä tavoin tarkasteltavilla solmuilla on paljon kokonaislukuratkaisuun tähtääviä rajoituksia. Lisäksi solmun valinta saadaan suoritettua mahdollisimman nopeasti. Menetelmässä jää kuitenkin vielä kaksi valintatilannetta: haarautumismuuttujan ja haaran valinta. Kumpaankaan valintaan ei voida muodostaa yleispäteviä sääntöjä, vaan ne riippuvat tarkasteltavasta tehtävästä. Algoritmia voidaan parantaa tiukentamalla aliongelmien alarajoja. Tämä onnistuu siten, että lisätään optimikantaan aliongelmaan tuleva rajoitus ja suoritetaan yksi duaalisimplex-iteraatio. Tämän jälkeen kohdefunktion arvosta saadaan tiukempi alaraja aliongelman optimille [18]. Käsiteltäväksi solmuksi valitaan joko solmu, jolla on kaikista aktiivisista solmuista pienin alaraja, tai LIFO-sääntöä soveltaen viimeksi käsitellyn solmun aliongelmista se, jolla on pienempi alaraja. Isoissa tehtävissä ovat nämä alarajat kuitenkin liian optimistisia, koska niissä oletetaan, että yksi duaalisimplex-iteraatio riittäisi saattamaan kanta käyväksi. Jos tehtävässä on paljon muuttujia ja rajoitusyhtälöitä, on todennäköistä että iteraatioita tarvitaan useita. Isoja tehtäviä ratkaistaessa kannattaakin käyttää sekä haarautumismuuttujan että käsiteltävän solmun valinnassa erilaisia, tehtävätyypistä riippuvia heuristisia sääntöjä, joilla voidaan tehdä kohtuullisen hyviä valintoja nopeasti [18]. 25

34 3.3 Dijkstran minimipolkualgoritmi Lyhimmän polun haku on erityistapaus kokonaislukuongelmista. Verkon tuoma erityisrakenne voidaan ottaa huomioon, jolloin tehtävää ei kannata ratkaista yleisillä menetelmillä. Kun haetaan lyhintä polkua kahden annetun solmun välille, on Dijkstran algoritmi tehokkain algoritmi [7]. Algoritmissa haetaan verkolle virittäjäpuu, jota pitkin verkon solmusta s päästään solmuun t minimikustannuksella [12, 15]. Jos halutaan löytää lyhimmät polut jokaisesta solmusta kaikkiin muihin solmuihin, on olemassa tehokkampiakin algoritmeja [6]. Tässä työssä halutaan löytää vain yksi polku kerrallaan, joten Dijkstran algoritmi sopii tällöin parhaiten. Dijkstran algoritmi perustuu solmuille annettaviin tunnuksiin [12]. Solmu saa pysyvän tunnuksen, jos lyhin polku solmusta s on löytynyt. Olkoon PL niiden solmujen joukko, joilla on pysyvä tunnus. Olkoon vastaavasti PL(i) lyhimmän solmujen s ja i 2PLvälisen polun pituus. Seuraavaksi pysyvä tunnus annetaan sellaiselle solmulle k 62 PL, joka mimimoi summan PL(i) +l ik, missä i 2 PL ja l ik kustannus siirryttäessä solmusta i solmuun k. Virittäjäpuuhun lisättävä solmu saa tunnuksekseen PL(k) = PL(i) +l ik. Solmujen lisäämistä jatketaan niin kauan, kunnes solmu t saa pysyvän tunnuksen tai joukkoon PL ei voida enää lisätä yhtään solmua. Jos loppusolmu t 62 PL, ei solmujen s ja t välillä ole polkua. Solmun valinnan nopeuttamiseksi ylläpidetään myös väliaikaisia tunnuksia TL(i), joissa ilmoitetaan solmujen s ja i 62 PL välisen parhaan polkuehdokkaan pituus. Aputunnuksia käyttäen on algoritmi seuraavanlainen [15]: Algoritmi 1: Dijkstran minimipolkualgoritmi Step 0: [Alustus] PL = fsg, PL(s) = 0. Kaikille muille solmuille määrätään väliaikainen tunnus TL(j) = l sj (= 1, jos solmusta s ei ole sivua solmuun j). Step 1: [Tunnuksen kiinnittäminen] Virittäjäpuuhun lisätään solmu k, missä k = argmin j (TL(j) j j 62 PL): Jos T L(k) =1, ei solmujen s ja t välillä ole polkua. Muuten P L(k) = TL(k) ja PL = PL [ fkg. Jos k = t, on haluttu polku löytynyt ja algoritmi lopetetaan. 26

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.5 Kaksivaiheinen menetelmä simplex algoritmin alustukseen

4.5 Kaksivaiheinen menetelmä simplex algoritmin alustukseen 4.5 Kaksivaiheinen menetelmä simplex algoritmin alustukseen Käypä kantaratkaisu löytyy helposti, esimerkiksi tapauksessa Ax b, b 0 x 0 jolloin sen määräävät puutemuuttujat. Tällöin simplex-menetelmän alustus

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

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

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

Mat Lineaarinen ohjelmointi

Mat Lineaarinen ohjelmointi Mat-.34 Lineaarinen ohjelmointi 9..7 Luento Kokonaislukuoptimoinnin algoritmeja (kirja.-.) Lineaarinen ohjelmointi - Syksy 7 / Luentorunko Gomoryn leikkaava taso Branch & Bound Branch & Cut Muita menetelmiä

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

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

Kokonaislukuoptiomointi Leikkaustasomenetelmät

Kokonaislukuoptiomointi Leikkaustasomenetelmät Kokonaislukuoptiomointi Leikkaustasomenetelmät Systeemianalyysin Laboratorio 19.3.2008 Sisällys Leikkaustasomenetelmät yleisesti Leikkaustasomenetelmät generoivilla kokonaislukujoukoilla Gomoryn leikkaavat

Lisätiedot

Mat Lineaarinen ohjelmointi

Mat Lineaarinen ohjelmointi Mat-2.34 Lineaarinen ohjelmointi..27 Luento 5 Simplexin implementaatioita (kirja 3.2-3.5) Lineaarinen ohjelmointi - Syksy 27 / Luentorunko (/2) Simplexin implementaatiot Naiivi Revised Full tableau Syklisyys

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

Mat Lineaarinen ohjelmointi

Mat Lineaarinen ohjelmointi Mat-.34 Lineaarinen ohjelmointi 5..7 Luento Kertausta Lineaarinen ohjelmointi - Syksy 7 / LP ja Simplex Kurssin rakenne Duaalisuus ja herkkyysanalyysi Verkkotehtävät Kokonaislukutehtävät Lineaarinen ohjelmointi

Lisätiedot

Simplex-algoritmi. T Informaatiotekniikan seminaari , Susanna Moisala

Simplex-algoritmi. T Informaatiotekniikan seminaari , Susanna Moisala Simplex-algoritmi T-6.5 Informaatiotekniikan seminaari..8, Susanna Moisala Sisältö Simplex-algoritmi Lähtökohdat Miten ongelmasta muodostetaan ns. Simplextaulukko Miten haetaan käypä aloitusratkaisu Mitä

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

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

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

Lineaarinen optimointi. Harjoitus 6-7, Olkoon A R m n, x, c R ja b R m. Osoita, että LP-tehtävän. c T x = min!

Lineaarinen optimointi. Harjoitus 6-7, Olkoon A R m n, x, c R ja b R m. Osoita, että LP-tehtävän. c T x = min! Lineaarinen optimointi Harjoitus 6-7, 016. 1. Olkoon A R m n, x, c R ja b R m. Osoita, että LP-tehtävän c T x = min! (T) Ax b x 0 duaalitehtävän duaali on tehtävä (T). Ratkaisu. (P) c T x = min! Ax b x

Lisätiedot

Gaussin ja Jordanin eliminointimenetelmä

Gaussin ja Jordanin eliminointimenetelmä 1 / 25 : Se on menetelmä lineaarisen yhtälöryhmän ratkaisemiseksi. Sitä käytetään myöhemmin myös käänteismatriisin määräämisessä. Ideana on tiettyjä rivioperaatioita käyttäen muokata yhtälöryhmää niin,

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

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

Mat Lineaarinen ohjelmointi

Mat Lineaarinen ohjelmointi Mat-2.3140 Lineaarinen ohjelmointi 4.10.2007 Luento 4 Ekstreemipisteiden optimaalisuus ja Simplex (kirja 2.4-2.6, 3.1-3.2) Lineaarinen ohjelmointi - Syksy 2007 / 1 Luentorunko Degeneroituvuus Ekstreemipisteiden

Lisätiedot

Lineaarikombinaatio, lineaarinen riippuvuus/riippumattomuus

Lineaarikombinaatio, lineaarinen riippuvuus/riippumattomuus Lineaarikombinaatio, lineaarinen riippuvuus/riippumattomuus 1 / 51 Lineaarikombinaatio Johdattelua seuraavaan asiaan (ei tarkkoja määritelmiä): Millaisen kuvan muodostaa joukko {λv λ R, v R 3 }? Millaisen

Lisätiedot

Algoritmit 1. Luento 8 Ke Timo Männikkö

Algoritmit 1. Luento 8 Ke Timo Männikkö Algoritmit 1 Luento 8 Ke 1.2.2017 Timo Männikkö Luento 8 Järjestetty binääripuu Solmujen läpikäynti Binääripuun korkeus Binääripuun tasapainottaminen Graafit ja verkot Verkon lyhimmät polut Fordin ja Fulkersonin

Lisätiedot

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

3 Lineaariset yhtälöryhmät ja Gaussin eliminointimenetelmä 3 Lineaariset yhtälöryhmät ja Gaussin eliminointimenetelmä Lineaarinen m:n yhtälön yhtälöryhmä, jossa on n tuntematonta x 1,, x n on joukko yhtälöitä, jotka ovat muotoa a 11 x 1 + + a 1n x n = b 1 a 21

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

Mat Lineaarinen ohjelmointi

Mat Lineaarinen ohjelmointi Mat-.4 Lineaarinen ohjelmointi..7 Luento 7 Duaalisimple ja herkkyysanalyysi (kirja 4.5, 5., 5.5-5.6) Lineaarinen ohjelmointi - Syksy 7 / Duaalisimple Herkkyysanalyysi Luentorunko Parametrinen ohjelmointi

Lisätiedot

Lineaarinen yhtälöryhmä

Lineaarinen yhtälöryhmä Lineaarinen yhtälöryhmä 1 / 39 Lineaarinen yhtälö Määritelmä 1 Lineaarinen yhtälö on muotoa a 1 x 1 + a 2 x 2 + + a n x n = b, missä a i, b R, i = 1,..., n ovat tunnettuja ja x i R, i = 1,..., n ovat tuntemattomia.

Lisätiedot

Kokonaislukuoptimointi hissiryhmän ohjauksessa

Kokonaislukuoptimointi hissiryhmän ohjauksessa Kokonaislukuoptimointi hissiryhmän ohjauksessa Systeemianalyysin laboratorio Teknillinen Korkeakoulu, TKK 3 Maaliskuuta 2008 Sisällys 1 Johdanto Taustaa Ongelman kuvaus 2 PACE-graafi Graafin muodostaminen

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

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.) on voimassa

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

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

Demo 1: Branch & Bound

Demo 1: Branch & Bound MS-C05 Optimoinnin perusteet Malliratkaisut 7 Ehtamo Demo : Branch & Bound Ratkaise lineaarinen kokonaislukuoptimointitehtävä käyttämällä Branch & Boundalgoritmia. max x + x s.e. x + 4x 9 5x + x 9 x Z

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

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

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

3 Lineaariset yhtälöryhmät ja Gaussin eliminointimenetelmä 1 3 Lineaariset yhtälöryhmät ja Gaussin eliminointimenetelmä Lineaarinen m:n yhtälön yhtälöryhmä, jossa on n tuntematonta x 1,, x n on joukko yhtälöitä, jotka ovat muotoa a 11 x 1 + + a 1n x n = b 1 a

Lisätiedot

2.5. Matriisin avaruudet ja tunnusluvut

2.5. Matriisin avaruudet ja tunnusluvut 2.5. Matriisin avaruudet ja tunnusluvut m n-matriisi A Lineaarikuvaus A : V Z, missä V ja Z ovat sopivasti valittuja, dim V = n, dim Z = m (yleensä V = R n tai C n ja Z = R m tai C m ) Kuva-avaruus ja

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

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

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

Lisätiedot

Ennakkotehtävän ratkaisu

Ennakkotehtävän ratkaisu Ennakkotehtävän ratkaisu Ratkaisu [ ] [ ] 1 3 4 3 A = ja B =. 1 4 1 1 [ ] [ ] 4 3 12 12 1 0 a) BA = =. 1 + 1 3 + 4 0 1 [ ] [ ] [ ] 1 0 x1 x1 b) (BA)x = =. 0 1 x 2 x [ ] [ ] [ 2 ] [ ] 4 3 1 4 9 5 c) Bb

Lisätiedot

Malliratkaisut Demot

Malliratkaisut Demot Malliratkaisut Demot 5 10.4.2017 Tehtävä 1 x 2 7 0,7 9,8 6 5 4 x 1 x 2 7 x 1 x 2 1 3 2 x 1 0 4,3 x 1 9 1 0,0 x 2 0 9,0 1 2 3 4 5 6 7 8 9 x 1 Kuva 1: Tehtävän 1 sallittu joukko S Optimointitehtävän sallittu

Lisätiedot

Kokonaislukuoptimointi

Kokonaislukuoptimointi Kokonaislukuoptimointi Algebrallisen geometrian sovelluksia Sisältö Taustaa algebrallisesta geometriasta Gröbnerin kanta Buchbergerin algoritmi Kokonaislukuoptimointi Käypyysongelma Algoritmi ratkaisun

Lisätiedot

Ovatko seuraavat väittämät oikein vai väärin? Perustele vastauksesi.

Ovatko seuraavat väittämät oikein vai väärin? Perustele vastauksesi. 5..0 Tehtävä Ovatko seuraavat väittämät oikein vai väärin? Perustele vastauksesi. (c) (d) Arvostelu Kanta on degeneroitunut jos ja vain jos sitä vastaava kantamatriisi on singulaarinen. Optimissa muuttujan

Lisätiedot

Luento 3: Simplex-menetelmä

Luento 3: Simplex-menetelmä Luento 3: Simplex-menetelmä Kuten graafinen tarkastelu osoittaa, LP-tehtävän ratkaisu on aina käyvän alueen kulmapisteessä, eli ekstreemipisteessä (extreme point). Simplex-menetelmässä ekstreemipisteitä,

Lisätiedot

Luento 4: Lineaarisen tehtävän duaali

Luento 4: Lineaarisen tehtävän duaali Luento 4: Lineaarisen tehtävän duaali Käsittelemme seuraavaksi lineaarisen optimoinnin duaaliteoriaa. Kuten luennossa 2 esitettiin, kohdefunktion optimiarvon herkkyys z, kun rajoitusyhtälön i, 1 i m, oikea

Lisätiedot

min x x2 2 x 1 + x 2 1 = 0 (1) 2x1 1, h = f = 4x 2 2x1 + v = 0 4x 2 + v = 0 min x x3 2 x1 = ± v/3 = ±a x 2 = ± v/3 = ±a, a > 0 0 6x 2

min x x2 2 x 1 + x 2 1 = 0 (1) 2x1 1, h = f = 4x 2 2x1 + v = 0 4x 2 + v = 0 min x x3 2 x1 = ± v/3 = ±a x 2 = ± v/3 = ±a, a > 0 0 6x 2 TEKNILLINEN KORKEAKOULU Systeemianalyysin laboratorio Mat-39 Optimointioppi Kimmo Berg 6 harjoitus - ratkaisut min x + x x + x = () x f = 4x, h = x 4x + v = { { x + v = 4x + v = x = v/ x = v/4 () v/ v/4

Lisätiedot

Piiri K 1 K 2 K 3 K 4 R R

Piiri K 1 K 2 K 3 K 4 R R Lineaarinen optimointi vastaus, harj 1, Syksy 2016. 1. Teollisuuslaitos valmistaa piirejä R 1 ja R 2, joissa on neljää eri komponenttia seuraavat määrät: Piiri K 1 K 2 K 3 K 4 R 1 3 1 2 2 R 2 4 2 3 0 Päivittäistä

Lisätiedot

Käänteismatriisin ominaisuuksia

Käänteismatriisin ominaisuuksia Käänteismatriisin ominaisuuksia Lause 1.4. Jos A ja B ovat säännöllisiä ja luku λ 0, niin 1) (A 1 ) 1 = A 2) (λa) 1 = 1 λ A 1 3) (AB) 1 = B 1 A 1 4) (A T ) 1 = (A 1 ) T. Tod.... Ortogonaaliset matriisit

Lisätiedot

Lineaariset yhtälöryhmät ja matriisit

Lineaariset yhtälöryhmät ja matriisit Lineaariset yhtälöryhmät ja matriisit Lineaarinen yhtälöryhmä 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. a m1 x 1 + a m2 x 2 + + a mn x n = b m, (1) voidaan esittää

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

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

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

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

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

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

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 TEKNILLINEN KORKEAKOULU Tietoliikenne- ja tietoverkkotekniikan laitos S-38.115 Liikenneteorian perusteet, Kevät 2008 Demonstraatiot Luento 12 29.2.2008 D12/1 Tarkastellaan verkkoa, jossa on solmua ja linkkiä.

Lisätiedot

Tentissä on viisi tehtävää, jotka arvosteellaan asteikolla 0-6. Tehtävien alakohdat ovat keskenään samanarvoisia ellei toisin mainita.

Tentissä on viisi tehtävää, jotka arvosteellaan asteikolla 0-6. Tehtävien alakohdat ovat keskenään samanarvoisia ellei toisin mainita. Tentissä on viisi tehtävää, jotka arvosteellaan asteikolla 0-6. Tehtävien alakohdat ovat keskenään samanarvoisia ellei toisin mainita. Tehtävä 1 Mitä seuraavat käsitteet tarkoittavat? Monitahokas (polyhedron).

Lisätiedot

4. Kokonaislukutehtävän ja LP:n yhteyksiä

4. Kokonaislukutehtävän ja LP:n yhteyksiä 8 4. Kokonaislukutehtävän ja LP:n yhteyksiä Minkowskin esityslauseen avulla voidaan osoittaa, että jos P on rationaalinen monitahokas ja S sen sisällä olevien kokonaislukupisteiden joukko, niin co(s) on

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

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

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

Operatioanalyysi 2011, Harjoitus 3, viikko 39

Operatioanalyysi 2011, Harjoitus 3, viikko 39 Operatioanalyysi 2011, Harjoitus 3, viikko 39 H3t1, Exercise 3.1. H3t2, Exercise 3.2. H3t3, Exercise 3.3. H3t4, Exercise 3.4. H3t5 (Exercise 3.1.) 1 3.1. Find the (a) standard form, (b) slack form of the

Lisätiedot

Lineaariset kongruenssiyhtälöryhmät

Lineaariset kongruenssiyhtälöryhmät Lineaariset kongruenssiyhtälöryhmät LuK-tutkielma Jesse Salo 2309369 Matemaattisten tieteiden laitos Oulun yliopisto Sisältö Johdanto 2 1 Kongruensseista 3 1.1 Kongruenssin ominaisuuksia...................

Lisätiedot

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

4. Lasketaan transienttivirrat ja -jännitteet kuvan piiristä. Piirielimien arvot ovat C = BMA58 Funktiot, lineaarialgebra ja vektorit Harjoitus 6, Syksy 5. Olkoon [ 6 6 A =, B = 4 [ 3 4, C = 4 3 [ 5 Määritä matriisien A ja C ominaisarvot ja ominaisvektorit. Näytä lisäksi että matriisilla B

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

Luento 7: Kokonaislukuoptimointi

Luento 7: Kokonaislukuoptimointi Luento 7: Kokonaislukuoptimointi Lineaarisessa optimointitehtävässä (LP) kaikki muuttujat ovat jatkuvia. Kokonaislukuoptimoinnin (ILP = Integer LP) tehtävässä kaikilla muuttujilla on kokonaislukurajoitus

Lisätiedot

Totaalisesti unimodulaariset matriisit voidaan osoittaa olevan rakennettavissa oleellisesti verkkomalleihin liittyvistä matriiseista

Totaalisesti unimodulaariset matriisit voidaan osoittaa olevan rakennettavissa oleellisesti verkkomalleihin liittyvistä matriiseista 8. Verkkomallit Totaalisesti unimodulaariset matriisit voidaan osoittaa olevan rakennettavissa oleellisesti verkkomalleihin liittyvistä matriiseista (P. D. Seymour, Journal of Combinatorial Theory (B),

Lisätiedot

8. Ensimmäisen käyvän kantaratkaisun haku

8. Ensimmäisen käyvän kantaratkaisun haku 38 8. Ensimmäisen käyvän kantaratkaisun haku Edellä kuvattu simplex-algoritmi tarvitsee alkuratkaisuksi käyvän kantaratkaisun eli käyvän joukon kärkipisteen. Sellaisen voi konstruoida seuraavilla tavoilla:

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

Mat Lineaarinen ohjelmointi

Mat Lineaarinen ohjelmointi Mat-.40 Lineaarinen ohjelmointi 5..007 Luento 9 Verkkotehtävän erikoistapauksia (kirja 7., 7.5, 7.9, 7.0) Lineaarinen ohjelmointi - Syksy 007 / Luentorunko (/) Verkkotehtävän ominaisuuksia Kuljetustehtävä

Lisätiedot

Kuljetustehtävä. Materiaalia kuljetetaan m:stä lähtöpaikasta n:ään tarvepaikkaan. Kuljetuskustannukset lähtöpaikasta i tarvepaikkaan j ovat c ij

Kuljetustehtävä. Materiaalia kuljetetaan m:stä lähtöpaikasta n:ään tarvepaikkaan. Kuljetuskustannukset lähtöpaikasta i tarvepaikkaan j ovat c ij Kuljetustehtävä Materiaalia kuljetetaan m:stä lähtöpaikasta n:ään tarvepaikkaan Kuljetuskustannukset lähtöpaikasta i tarvepaikkaan j ovat c ij Lähtöpaikan i kapasiteetti on a i (oletetaan, että a i > 0

Lisätiedot

Harjoitus 1 (17.3.2015)

Harjoitus 1 (17.3.2015) Harjoitus 1 (17.3.2015) Tehtävä 1 Piirretään tilanteesta verkko, jossa kaupungeille on annetttu seuraavat numerot: 1 = Turku 2 = Tampere 3 = Helsinki 4 = Kuopio 5 = Joensuu. a) Tehtävänä on ratkaista Bellman

Lisätiedot

1 Komparatiivinen statiikka ja implisiittifunktiolause

1 Komparatiivinen statiikka ja implisiittifunktiolause Taloustieteen matemaattiset menetelmät 27 materiaali 4 Komparatiivinen statiikka ja implisiittifunktiolause. Johdanto Jo opiskeltu antaa nyt valmiu tutkia taloudellisia malleja Kiinnostava malli voi olla

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

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

Reiluus. Maxmin-reiluus. Tärkeä näkökohta best effort -tyyppisissä palveluissa. Reiluuden maxmin-määritelmä J. Virtamo 38.3141 Teleliikenneteoria / Reiluus 1 Reiluus Maxmin-reiluus Tärkeä näkökohta best effort -tyyppisissä palveluissa kenellekään ei anneta kvantitatiivisia QoS-takuita kaikkien pitää saada palvelua

Lisätiedot

Määritelmä Olkoon T i L (V i, W i ), 1 i m. Yksikäsitteisen lineaarikuvauksen h L (V 1 V 2 V m, W 1 W 2 W m )

Määritelmä Olkoon T i L (V i, W i ), 1 i m. Yksikäsitteisen lineaarikuvauksen h L (V 1 V 2 V m, W 1 W 2 W m ) Määritelmä 519 Olkoon T i L V i, W i, 1 i m Yksikäsitteisen lineaarikuvauksen h L V 1 V 2 V m, W 1 W 2 W m h v 1 v 2 v m T 1 v 1 T 2 v 2 T m v m 514 sanotaan olevan kuvausten T 1,, T m indusoima ja sitä

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

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

T : Max-flow / min-cut -ongelmat

T : Max-flow / min-cut -ongelmat T-61.152: -ongelmat 4.3.2008 Sisältö 1 Määritelmät Esimerkki 2 Max-flow Graafin leikkaus Min-cut Max-flow:n ja min-cut:n yhteys 3 Perusajatus Pseudokoodi Tarkastelu 4 T-61.152: -ongelmat Virtausverkko

Lisätiedot

Algoritmit 2. Luento 6 To Timo Männikkö

Algoritmit 2. Luento 6 To Timo Männikkö Algoritmit 2 Luento 6 To 28.3.2019 Timo Männikkö Luento 6 B-puun operaatiot Nelipuu Trie-rakenteet Standarditrie Pakattu trie Algoritmit 2 Kevät 2019 Luento 6 To 28.3.2019 2/30 B-puu 40 60 80 130 90 100

Lisätiedot

Harjoitus 5 ( )

Harjoitus 5 ( ) Harjoitus 5 (14.4.2015) Tehtävä 1 Figure 1: Tehtävän 1 sallittu joukko S. Optimointitehtävän sallittu alue S on pisteiden (0, 0), (0, 7), (4, 3), (9, 8) ja (9, 0) määräämä viisikulmio. Kyseinen alue saadaan

Lisätiedot

Matematiikka B2 - TUDI

Matematiikka B2 - TUDI Matematiikka B2 - TUDI Miika Tolonen 3. syyskuuta 2012 Miika Tolonen Matematiikka B2 - TUDI 1 Kurssin sisältö (1/2) Matriisit Laskutoimitukset Lineaariset yhtälöryhmät Gaussin eliminointi Lineaarinen riippumattomuus

Lisätiedot

MS-C1340 Lineaarialgebra ja

MS-C1340 Lineaarialgebra ja MS-C1340 Lineaarialgebra ja differentiaaliyhtälöt QR-hajotelma ja pienimmän neliösumman menetelmä Riikka Kangaslampi Kevät 2017 Matematiikan ja systeemianalyysin laitos Aalto-yliopisto PNS-ongelma PNS-ongelma

Lisätiedot

Kannan vektorit siis virittävät aliavaruuden, ja lisäksi kanta on vapaa. Lauseesta 7.6 saadaan seuraava hyvin käyttökelpoinen tulos:

Kannan vektorit siis virittävät aliavaruuden, ja lisäksi kanta on vapaa. Lauseesta 7.6 saadaan seuraava hyvin käyttökelpoinen tulos: 8 Kanta Tässä luvussa tarkastellaan aliavaruuden virittäjävektoreita, jotka muodostavat lineaarisesti riippumattoman jonon. Merkintöjen helpottamiseksi oletetaan luvussa koko ajan, että W on vektoreiden

Lisätiedot

Optimoinnin sovellukset

Optimoinnin sovellukset Optimoinnin sovellukset Timo Ranta Tutkijatohtori TTY Porin laitos OPTIMI 4.12.2014 Mitä optimointi on? Parhaan ratkaisun systemaattinen etsintä kaikkien mahdollisten ratkaisujen joukosta Tieteellinen

Lisätiedot

MS-C1340 Lineaarialgebra ja differentiaaliyhtälöt

MS-C1340 Lineaarialgebra ja differentiaaliyhtälöt MS-C1340 Lineaarialgebra ja differentiaaliyhtälöt ja pienimmän neliösumman menetelmä Riikka Kangaslampi Matematiikan ja systeemianalyysin laitos Aalto-yliopisto 2015 1 / 18 R. Kangaslampi QR ja PNS PNS-ongelma

Lisätiedot

Luento 7: Kokonaislukuoptimointi

Luento 7: Kokonaislukuoptimointi Luento 7: Kokonaislukuoptimointi Lineaarisessa optimointitehtävässä (LP) kaikki muuttujat ovat jatkuvia. Kokonaislukuoptimoinnin (ILP = Integer LP) tehtävässä kaikilla muuttujilla on kokonaislukurajoitus

Lisätiedot

OPERAATIOANALYYSI ORMS.1020

OPERAATIOANALYYSI ORMS.1020 VAASAN YLIOPISTO Talousmatematiikka Prof. Ilkka Virtanen OPERAATIOANALYYSI ORMS.1020 Tentti 2.2.2008 1. Yrityksen tavoitteena on minimoida tuotannosta ja varastoinnista aiheutuvat kustannukset 4 viikon

Lisätiedot

Malliratkaisut Demot

Malliratkaisut Demot Malliratkaisut Demot 5 2.2.28 Tehtävä a) Tehtävä voidaan sieventää muotoon max 5x + 9x 2 + x 3 s. t. 2x + x 2 + x 3 x 3 x 2 3 x 3 3 x, x 2, x 3 Tämä on tehtävän kanoninen muoto, n = 3 ja m =. b) Otetaan

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

1 Rajoittamaton optimointi

1 Rajoittamaton optimointi Taloustieteen matemaattiset menetelmät 7 materiaali 5 Rajoittamaton optimointi Yhden muuttujan tapaus f R! R Muistutetaan mieleen maksimin määritelmä. Funktiolla f on maksimi pisteessä x jos kaikille y

Lisätiedot

A = a b B = c d. d e f. g h i determinantti on det(c) = a(ei fh) b(di fg) + c(dh eg). Matriisin determinanttia voi merkitä myös pystyviivojen avulla:

A = a b B = c d. d e f. g h i determinantti on det(c) = a(ei fh) b(di fg) + c(dh eg). Matriisin determinanttia voi merkitä myös pystyviivojen avulla: 11 Determinantti Neliömatriisille voidaan laskea luku, joka kertoo muun muassa, onko matriisi kääntyvä vai ei Tätä lukua kutsutaan matriisin determinantiksi Determinantilla on muitakin sovelluksia, mutta

Lisätiedot

Malliratkaisut Demot

Malliratkaisut Demot Malliratkaisut Demot 1 12.3.2018 Tehtävä 1 Piirretään tilanteesta verkko, jossa kaupungeille on annetttu seuraavat numerot: 1 297 4 2 4 163 3 454 6 179 2 136 2 169 2 390 4 3 436 7 5 Kuva 1: Tehtävän 1

Lisätiedot

Insinöörimatematiikka D

Insinöörimatematiikka D Insinöörimatematiikka D M Hirvensalo mikhirve@utufi V Junnila viljun@utufi Matematiikan ja tilastotieteen laitos Turun yliopisto 2015 M Hirvensalo mikhirve@utufi V Junnila viljun@utufi Luentokalvot 5 1

Lisätiedot

5 Lineaariset yhtälöryhmät

5 Lineaariset yhtälöryhmät 5 Lineaariset yhtälöryhmät Edellisen luvun lopun esimerkissä päädyttiin yhtälöryhmään, jonka ratkaisemisesta riippui, kuuluuko tietty vektori eräiden toisten vektorien virittämään aliavaruuteen Tämäntyyppisiä

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

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

Kokonaislukuoptimointi

Kokonaislukuoptimointi Kokonaislukuoptimointi Optimointitehtävät, joissa muuttujat tai osa niistä voivat saada vain kokonaislukuarvoja Puhdas kokonaislukuoptimointitehtävä: Kaikki muuttujat kokonaislukuja Sekoitettu kokonaislukuoptimointitehtävä:

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

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

2 Konveksisuus ja ratkaisun olemassaolo

2 Konveksisuus ja ratkaisun olemassaolo 2 Konveksisuus ja ratkaisun olemassaolo Ratkaisun olemassaolon tutkimiseen tarvitaan perustietoja konvekseista joukoista ja lineaarialgebrasta. Niitä tarvitaan myös ratkaisualgoritmin ymmärtämiseen. Tutkitaan

Lisätiedot