Kombinatorinen optimointi



Samankaltaiset tiedostot
Kokonaislukuoptimointi

Algoritmit 2. Luento 13 Ti Timo Männikkö

Algoritmit 2. Luento 12 Ke Timo Männikkö

Esimerkkejä kokonaislukuoptimointiongelmista

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

Algoritmit 2. Luento 12 To Timo Männikkö

Algoritmit 2. Luento 13 Ti Timo Männikkö

Algoritmit 2. Luento 11 Ti Timo Männikkö

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

Lineaarisen kokonaislukuoptimointitehtävän ratkaiseminen

Lineaarinen optimointitehtävä

Mat Lineaarinen ohjelmointi

Harjoitus 6 ( )

Kanta ja Kannan-vaihto

Optimoinnin sovellukset

TIEA382 Lineaarinen ja diskreetti optimointi

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

14. Luennon sisältö. Kuljetustehtävä. Verkkoteoria ja optimointi. esimerkki. verkkoteorian optimointitehtäviä verkon virittävä puu lyhimmät polut

Yhden muuttujan funktion minimointi

Algoritmit 1. Luento 10 Ke Timo Männikkö

Algoritmit 1. Luento 9 Ti Timo Männikkö

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

v 8 v 9 v 5 C v 3 v 4

Epädeterministisen Turingin koneen N laskentaa syötteellä x on usein hyödyllistä ajatella laskentapuuna

JYVÄSKYLÄN YLIOPISTO. 3. Luennon sisältö

Algoritmit 2. Luento 6 To Timo Männikkö

Malliratkaisut Demot

Harjoitus 6 ( )

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

Tarkennamme geneeristä painamiskorotusalgoritmia

Algoritmit 1. Luento 10 Ke Timo Männikkö

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

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

Kimppu-suodatus-menetelmä

Jälki- ja herkkyysanalyysi. Tutkitaan eri kertoimien ja vakioiden arvoissa tapahtuvien muutosten vaikutusta optimiratkaisuun

Algoritmit 2. Luento 6 Ke Timo Männikkö

Optimaalisuusehdot. Yleinen minimointitehtävä (NLP): min f(x) kun g i (x) 0 h j (x) = 0

4.5 Kaksivaiheinen menetelmä simplex algoritmin alustukseen

Algoritmit 2. Luento 14 Ke Timo Männikkö

Algoritmit 2. Luento 7 Ti Timo Männikkö

6. Luennon sisältö. Lineaarisen optimoinnin duaaliteoriaa

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

Laskennan vaativuus ja NP-täydelliset ongelmat

Esimerkkejä polynomisista ja ei-polynomisista ongelmista

1 Kertaus. Lineaarinen optimointitehtävä on muotoa:

Algoritmit 2. Luento 13 Ti Timo Männikkö

Algoritmit 1. Luento 1 Ti Timo Männikkö

Algoritmit 1. Luento 8 Ke Timo Männikkö

Mat Lineaarinen ohjelmointi

Malliratkaisut Demot

Algoritmit 2. Luento 2 To Timo Männikkö

3.4 Peruutus (backtracking)

Partikkelit pallon pinnalla

isomeerejä yhteensä yhdeksän kappaletta.

Lisätehtäviä. Rationaalifunktio. x 2. a b ab. 6u x x x. kx x

Jaetun muistin muuntaminen viestin välitykseksi. 15. lokakuuta 2007

Mat Sovellettu todennäköisyyslasku A

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

Monitavoiteoptimointi

Luentorunko keskiviikolle Hierarkkinen ryvästäminen

7.4 Sormenjälkitekniikka

Todellinen vuosikorko. Efektiivinen/sisäinen korkokanta. Huomioitavaa

A-osa. Ratkaise kaikki tämän osan tehtävät. Tehtävät arvostellaan pistein 0-6. Taulukkokirjaa saa käyttää apuna, laskinta ei.

BM20A5800 Funktiot, lineaarialgebra ja vektorit Harjoitus 4, Syksy 2016

B. 2 E. en tiedä C ovat luonnollisia lukuja?

Miten osoitetaan joukot samoiksi?

Mat Lineaarinen ohjelmointi

Muita vaativuusluokkia

Numeeriset menetelmät

Harjoitus 5 ( )

58131 Tietorakenteet ja algoritmit (kevät 2013) Kurssikoe 2, , vastauksia

Algoritmit. Ohjelman tekemisen hahmottamisessa käytetään

Algoritmit 2. Luento 14 To Timo Männikkö

Algoritmit 1. Luento 14 Ke Timo Männikkö

Monitavoitteiseen optimointiin soveltuvan evoluutioalgoritmin tarkastelu

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

Malliratkaisut Demo 1

4.1 Kaksi pistettä määrää suoran

Minimilatenssiongelman ratkaisualgoritmeja (valmiin työn esittely)

Geneettiset algoritmit

Algoritmit 1. Luento 2 Ke Timo Männikkö

Kenguru 2019 Student lukio

Pythagoraan polku

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

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

Kenguru 2014 Student sivu 1 / 8 (lukion 2. ja 3. vuosi)

811312A Tietorakenteet ja algoritmit , Harjoitus 2 ratkaisu

Helsingin, Itä-Suomen, Jyväskylän, Oulun, Tampereen ja Turun yliopisto Matematiikan valintakoe klo Ratkaisut ja pisteytysohjeet

13 Lyhimmät painotetut polut

Partikkelit pallon pinnalla

Helsingin, Itä-Suomen, Jyväskylän, Oulun, Tampereen ja Turun yliopisto Matematiikan valintakoe klo 10 13

58131 Tietorakenteet ja algoritmit (kevät 2014) Uusinta- ja erilliskoe, , vastauksia

Malliratkaisut Demo 4

Algoritmit 1. Luento 13 Ti Timo Männikkö

C C. x 2. x 3 x 3. Lause 3SAT p m VC Todistus. Olk. φ = C 1 C 2 C m 3-cnf-kaava, jossa esiintyvät muuttujat. φ toteutuva:

6. Approksimointialgoritmit

Dynaaminen optimointi

PARITUS KAKSIJAKOISESSA

Skedulointi, kuormituksen tasaus, robotin navigaatio

Transkriptio:

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 ratkaisua etsitään heuristisilla menetelmillä (eivät välttämättä löydä optimia, mutta yleensä hyvän ratkaisun) 1

Töidenjärjestelytehtävä Joukko töitä pitää suorittaa useammalla eri koneella Jokaisesta työstä tiedetään, missä järjestyksessä ne käsitellään eri koneissa ja mikä aika kuluu kullakin koneella Tavoite: Määrää töiden aikataulutus koneilla siten, että kaikkien töiden valmistumiseen kuluva kokonaisaika minimoituu 2

Optimiratkaisun löytäminen on hankalaa Eräs heuristinen ratkaisumenetelmä on SPT-sääntö (Shortest Processing Time): Kun jollakin koneella työ loppuu, valitaan seuraavaksi aina se mahdollinen työ, jonka vaatima aika tällä koneella on pienin 3

Esimerkki: Kahdeksan työtä, kolme konetta, jokaisella työllä kaksi tai kolme työvaihetta eri koneilla tietyssä järjestyksessä Työvaiheiden kestot kullekin työlle muotoa k:a, missä k on koneen numero ja a on aika kyseisellä koneella Työ 1 2 3 4 5 6 7 8 1:5 2:3 1:6 2:4 1:7 1:3 2:3 1:2 2:3 1:2 3:2 3:4 2:2 3:7 3:3 2:4 3:4 1:4 3:3 3:2 4

Asettelu järjestyksessä: K1 1 2 3 4 5 6 8 K2 2 4 1 7 5 8 K3 4 1 3 7 5 6 8 0 5 10 15 20 25 30 35 40 5

SPT-säännöllä: K1 8 6 2 1 3 5 4 K2 2 7 4 8 1 5 K3 6 7 8 4 3 1 5 0 5 10 15 20 25 30 35 40 6

Optimiratkaisu: K1 8 6 1 2 5 3 4 K2 7 2 8 1 4 5 K3 7 6 8 1 4 5 3 0 5 10 15 20 25 30 35 40 7

Asettelutehtävä Levystä leikataan suorakulmion tai suorakulmaisen kolmion muotoisia paloja Leikkaus on voitava tehdä siten, että levy leikataan suoraan kokonaan poikki jossain suunnassa Tavoite: Leikkaa palat siten, että hukkapaloja tulee mahdollisimman vähän Jos palat voivat olla muunkin muotoisia = vielä hankalampi tehtävä 8

Rautateiden aikataulutus Tavoite: Optimoi junien aikataulut siten, että junien kulkuajat vastaavat matkustajien tarpeita, ja että vaihtoajat risteysasemilla ovat mahdollisimman lyhyitä 9

Laskennallinen vaativuus eli kompleksisuus Ongelman laskennallinen vaativuus: Kertoo, miten ongelman ratkaisuun kuluva aika riippuu ongelman koosta Olkoon s ongelman koko Polynomiset ratkaisumenetelmät: Ratkaisuajan määrää jokin s:n polynomi, jolloin merkitään O(s n ), missä n on jokin vakio Eksponentiaaliset ratkaisumenetelmät: Ratkaisuaika riippuu koosta s eksponentiaalisesti, esimerkiksi O(n s ), O(s s ) tai O(s!) 10

Ongelmaluokka P: Polynomisessa ajassa ratkeavat ongelmat, tai ongelmat, jotka voidaan muuntaa sellaiseksi NP-täydelliset ongelmat: Joukko ongelmia, joista tiedetään, että ne ovat joko kaikki luokassa P tai kaikki luokan P ulkopuolella, mutta ei tiedetä, kumpi vaihtoehto on tosi Käytännössä voidaan tehokkaasti ratkaista vain luokkaan P kuuluvia ongelmia Esimerkki NP-täydellisistä ongelmista: Kauppamatkustajan ongelma 11

Heuristiset menetelmät Kertamenetelmät: Muodostetaan ratkaisu valmiiksi käyttäen tiettyjä sääntöjä Korjaavat menetelmät: Jollain tavalla löydettyä ratkaisua pyritään parantamaan pienillä muutoksilla Yhdistetyt menetelmät: Muodostetaan alkuratkaisu kertamenetelmällä, ja parannetaan sitä korjaavalla menetelmällä Toistetut menetelmät: Toistetaan yhdistettyä menetelmää eri alkuratkaisuilla 12

Kauppamatkustajan ongelma Olkoon n paikkakuntaa, joiden väliset etäisyydet tunnetaan Kauppamatkustaja lähtee joltain paikkakunnalta, käy kaikilla muilla paikkakunnilla ja palaa lähtöpaikkaansa Tavoite: Määrää paikkakuntien kiertojärjestys siten, että reitin kokonaispituus minimoituu 13

Töiden järjestely: Koneella on suoritettavana n työtä Kun vaihdetaan työstä i työhön j, kuluu vaihdossa aikaa d ij Tavoite: Määrää töiden järjestys siten, että vaihtoihin kuluva kokonaisaika minimoituu Tulkitaan työt paikkakunniksi ja ajat d ij etäisyyksiksi = Kauppamatkustajan ongelma 14

Kuljetusten järjestely: Suoritettavana on joukko kuljetuksia paikoista a i paikkoihin b i Edellisen kuljetuksen loppupaikan b i ja seuraavan kuljetuksen alkupaikan a j välinen etäisyys on d ij Tavoite: Määrää kuljetusten järjestys siten, siirtymät edellisen kuljetuksen loppupaikasta seuraavan kuljetuksen alkupaikkaan minimoituvat Yhdistetään kunkin kuljetuksen alku- ja loppupaikat a i ja b i yhdeksi paikkakunnaksi = Kauppamatkustajan ongelma 15

Euklidisessa tasossa optimaalinen kauppamatkustajan reitti ei leikkaa itseään Euklidisessa tasossa ne solmut, jotka ovat solmujen konveksin peitteen kärkipistesolmuina, ovat optimaalisella kauppamatkustajan reitillä toisiinsa nähden samassa järjestyksessä kuin kierrettäessä konveksia peitettä 16

Kertamenetelmiä Lähimmän naapurin menetelmä: Lisätään reittiin alkusolmu Lisätään reittiin aina se solmu, joka on lähinnä reitin viimeistä solmua ja joka ei vielä kuulu reittiin Solmu lisätään aina reitin viimeisen solmun perään 17

Väliinsijoitus satunnaisessa järjestyksessä: Lisätään reittiin alkusolmu Lisätään reittiin muut solmut jossain järjestyksessä Solmu lisätään sellaiseen väliin, että sen lisääminen kasvattaa reitin pituutta mahdollisimman vähän 18

Reitin pituuden minimilisäys: Lisätään reittiin alkusolmu Lisätään reittiin aina se solmu, jonka lisääminen kasvattaa reitin pituutta mahdollisimman vähän Solmu lisätään aina reitin parhaaseen väliin 19

Kaukaisimman solmun lisäys: Lisätään reittiin alkusolmu Lisätään reittiin aina se solmu, joka on kauimpana reitin solmuista ja joka ei vielä kuulu reittiin Solmu lisätään aina reitin parhaaseen väliin 20

Korjaavia menetelmiä 2-opt: (Sopii vain symmetrisille tehtäville, ts. on oltava d ij = d ji ) Muodostetaan reitti jollain kertamenetelmällä (tai satunnaisesti) Valitaan reitiltä kaksi peräkkäisten solmujen muodostamaa paria a b ja c d Muutetaan reittiä siten, että a c ja b d, jos se lyhentää reittiä Käydään läpi kaikki mahdolliset parit Jos reitti ei muutu yhden tällaisen kierroksen aikana, lopetetaan 21

3-opt: (Sopii myös epäsymmetrisille tehtäville, ts. voi olla d ij d ji ) Muodostetaan reitti jollain kertamenetelmällä (tai satunnaisesti) Valitaan reitiltä kolme peräkkäisten solmujen muodostamaa paria a b, c d ja e f (voi olla b = c ja d = e) Muutetaan reittiä siten, että a d, c f ja e b, jos se lyhentää reittiä Käydään läpi kaikki mahdolliset kolmikot Jos reitti ei muutu yhden tällaisen kierroksen aikana, lopetetaan 22

Or in menetelmä: Kuten 3-opt, paitsi että kokeillaan vain ne kolmikot, joissa solmujen d ja e etäisyys on korkeintaan k solmua (esimerkiksi k = 3) 23

Lämpökäsittely eli simulated annealing Periaate: Ratkaisua korjataan heuristisesti parempaan suuntaan aina, kun siihen tulee tilaisuus, mutta tietyllä todennäköisyydellä voidaan siirtyä myös huonompaan suuntaan Fysikaalinen analogia: Materiaalia ensin kuumennetaan ja sitten annetaan sen jäähtyä hitaasti = Muodostuu optimaalinen kiderakenne, joka vastaa energiaminimiä 24

Lämpökäsittely yleisesti: Olkoon V (i) objektifunktion arvo systeemin tilassa i ja olkoon k kierroslaskuri 1. Valitaan satunnainen alkuratkaisu 2. Siirretään systeemi nykyisestä tilasta i johonkin toiseen tilaan j, jos V (j) < V (i) tai jos V (j) V (i) ja r k < exp( (V (j) V (i))/t k ) missä r k (0,1) on satunnaisluku ja T k pienenee, kun k kasvaa 3. Toistetaan kohtaa 2 kunnes ratkaisu ei muutu 25

Lämpökäsittelyn soveltaminen kauppamatkustajan ongelmaan: Käytetään esimerkiksi 3-opt-menetelmää Kokeiltaessa uutta kolmikkoa, tehdään muutos aina silloin, kun se lyhentää reittiä Jos taas uusi reitti olisi pidempi, hyväksytään se silti, jos edellä mainittu satunnaislukutesti sen sallii 26