kuljetustehtävä - jyväskylän...

58
JYVÄSKYLÄN YLIOPISTO 14. Luennon sisältö Kuljetustehtävä – esimerkki Verkkoteoria ja optimointi – verkkoteorian optimointitehtäviä – verkon virittävä puu – lyhimmät polut kevät 2012 TIEA382 Lineaarinen ja diskreetti optimointi

Upload: others

Post on 14-Sep-2020

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Kuljetustehtävä - Jyväskylän yliopistousers.jyu.fi/~jhaka/ldo/verkkoteoria_ja_optimointi2.pdfVerkkoteoria ja optimointi – verkkoteorian optimointitehtäviä – verkon virittävä

JYVÄSKYLÄN YLIOPISTO

14. Luennon sisältö

Kuljetustehtävä – esimerkki

Verkkoteoria ja optimointi – verkkoteorian optimointitehtäviä – verkon virittävä puu – lyhimmät polut

kevät 2012 TIEA382 Lineaarinen ja diskreetti optimointi

Page 2: Kuljetustehtävä - Jyväskylän yliopistousers.jyu.fi/~jhaka/ldo/verkkoteoria_ja_optimointi2.pdfVerkkoteoria ja optimointi – verkkoteorian optimointitehtäviä – verkon virittävä

JYVÄSKYLÄN YLIOPISTO

Esimerkki kuljetustehtävän ratkaisemisesta

http://www.optimalon.com/examples/transport.htm

kevät 2012 TIEA382 Lineaarinen ja diskreetti optimointi

Page 3: Kuljetustehtävä - Jyväskylän yliopistousers.jyu.fi/~jhaka/ldo/verkkoteoria_ja_optimointi2.pdfVerkkoteoria ja optimointi – verkkoteorian optimointitehtäviä – verkon virittävä

Graafit ja verkot

Suuntamaton graafi: Joukko solmuja ja joukko järjestämättömiä solmuparejaeli haaroja

Suunnattu graafi: Joukko solmuja ja joukko järjestettyjä solmupareja eli kaaria

Haaran päätesolmut: Haaraan liittyvät solmut

Kaaren alku- ja loppusolmut: Kaareen liittyvät solmut

Solmun aste: Solmuun liittyvien haarojen lukumäärä

1

Page 4: Kuljetustehtävä - Jyväskylän yliopistousers.jyu.fi/~jhaka/ldo/verkkoteoria_ja_optimointi2.pdfVerkkoteoria ja optimointi – verkkoteorian optimointitehtäviä – verkon virittävä

1&%'$

2&%'$

3&%'$

4&%'$

5&%'$

a

��

��

��

���

b@

@@

@@

@@

@@

c

d

e

f

Suuntaamaton graafi G(N, A)

Solmut N = {1,2,3,4,5}

Haarat A = {a, b, c, d, e, f} = {(1,4), (1,2), (1,3), (2,3), (2,3), (3,5)}

2

Page 5: Kuljetustehtävä - Jyväskylän yliopistousers.jyu.fi/~jhaka/ldo/verkkoteoria_ja_optimointi2.pdfVerkkoteoria ja optimointi – verkkoteorian optimointitehtäviä – verkon virittävä

1&%'$

2&%'$

3&%'$

4&%'$

5&%'$

-a

��

��

��

����

b@

@@

@@

@@

@@R

c

-d

e

�f

Suunnattu graafi G(N, A)

Solmut N = {1,2,3,4,5}

Kaaret A = {a, b, c, d, e, f} = {(1,4), (2,1), (1,3), (2,3), (3,2), (5,3)}

3

Page 6: Kuljetustehtävä - Jyväskylän yliopistousers.jyu.fi/~jhaka/ldo/verkkoteoria_ja_optimointi2.pdfVerkkoteoria ja optimointi – verkkoteorian optimointitehtäviä – verkon virittävä

Polku: Katkeamaton jono solmuja ja haaroja/kaaria

Silmukka: Polku, jonka alku- ja loppusolmut ovat samat

Yksinkertainen polku: Solmu esiintyy polussa vain kerran

Yhdistetyt solmut: Solmujen välillä on ainakin yksi polku

4

Page 7: Kuljetustehtävä - Jyväskylän yliopistousers.jyu.fi/~jhaka/ldo/verkkoteoria_ja_optimointi2.pdfVerkkoteoria ja optimointi – verkkoteorian optimointitehtäviä – verkon virittävä

Yhtenäinen (yhdistetty) graafi: Kaikki solmuparit ovat yhdistettyjä

Renkaaton graafi: Ei yhtään silmukkaa

Puu: Graafi, joka on yhtenäinen ja renkaaton

5

Page 8: Kuljetustehtävä - Jyväskylän yliopistousers.jyu.fi/~jhaka/ldo/verkkoteoria_ja_optimointi2.pdfVerkkoteoria ja optimointi – verkkoteorian optimointitehtäviä – verkon virittävä

Verkko: Graafi, jonka solmuihin ja haaroihin/kaariin liittyy numeerisia arvoja(esimerkiksi pituus, kustannus tai kapasiteetti)

Virtaus: Tavara tms. kulkee solmusta toiseen kaaria/haaroja pitkin

Lähdesolmu: Solmu, josta tulee lisää tavaraa verkkoon

Viemärisolmu: Solmu, josta tavaraa poistuu verkosta

Virtauksen säilyvyys: Solmuun saapuva ja siitä lähtevä virtaus ovat samat(paitsi lähde- ja viemärisolmuissa)

6

Page 9: Kuljetustehtävä - Jyväskylän yliopistousers.jyu.fi/~jhaka/ldo/verkkoteoria_ja_optimointi2.pdfVerkkoteoria ja optimointi – verkkoteorian optimointitehtäviä – verkon virittävä

Tuotannon ajoitus

Tuotetta valmistetaan usean tuotantokauden aikana

Tuotteen tarve kaudella i on di

Tuotetta voidaan valmistaa myös varastoon

Valmistuksesta ja varastoinnista aiheutuvat tietyt kustannukset

Tavoite: Määrää tuotteen valmistusmäärät kullakin kaudella siten, ettäkokonaiskustannukset minimoituvat

7

Page 10: Kuljetustehtävä - Jyväskylän yliopistousers.jyu.fi/~jhaka/ldo/verkkoteoria_ja_optimointi2.pdfVerkkoteoria ja optimointi – verkkoteorian optimointitehtäviä – verkon virittävä

xi = valmistusmäärä kaudella i

vi = varaston koko kaudelta i kaudelle i + 1

Solmut kuvaavat kausia, solmu 0 kuvaa alkutilannetta

Kaaret kuvaavat tuotteen ”kulkeutumista” kaudelta toiselle

Jokaiseen kaareen liittyy joko valmistuskustannus tai varastointikustannus

8

Page 11: Kuljetustehtävä - Jyväskylän yliopistousers.jyu.fi/~jhaka/ldo/verkkoteoria_ja_optimointi2.pdfVerkkoteoria ja optimointi – verkkoteorian optimointitehtäviä – verkon virittävä

0&%'$

1&%'$

2&%'$

3&%'$

4&%'$

?

d1 + d2 + d3 + d4

��

��

��

��

��

��

��+

x1

��

��

��

���

x2

AAAAAAAAU

x3

QQ

QQ

QQ

QQ

QQ

QQ

QQs

x4

-v1

-v2

-v3

?

d1

?

d2

?

d3

?

d4

Tehtävä: Etsi minimihintainen virtaus verkon läpi

9

Page 12: Kuljetustehtävä - Jyväskylän yliopistousers.jyu.fi/~jhaka/ldo/verkkoteoria_ja_optimointi2.pdfVerkkoteoria ja optimointi – verkkoteorian optimointitehtäviä – verkon virittävä

Lukujärjestysongelma

Seminaarissa kuusi tunnin esitelmää

Seminaarin kokonaiskesto neljä tuntia

Esitelmän 1 kanssa ei samanaikaisesti esitelmää 3Esitelmän 3 kanssa ei samanaikaisesti esitelmiä 1, 4, 5, 6Esitelmän 4 kanssa ei samanaikaisesti esitelmiä 3, 5, 6Esitelmän 5 kanssa ei samanaikaisesti esitelmiä 3, 4, 6Esitelmän 6 kanssa ei samanaikaisesti esitelmiä 3, 4, 5

Tavoite: Järjestä esitelmät siten, että rajoitteet toteutuvat

10

Page 13: Kuljetustehtävä - Jyväskylän yliopistousers.jyu.fi/~jhaka/ldo/verkkoteoria_ja_optimointi2.pdfVerkkoteoria ja optimointi – verkkoteorian optimointitehtäviä – verkon virittävä

Solmut kuvaavat esitelmiä

Solmut yhdistetään haaralla, jos vastaavat esitelmät eivät saa ollasamanaikaisesti

Neljä eri tunnusta, yksi kullekin seminaarin tunnille

11

Page 14: Kuljetustehtävä - Jyväskylän yliopistousers.jyu.fi/~jhaka/ldo/verkkoteoria_ja_optimointi2.pdfVerkkoteoria ja optimointi – verkkoteorian optimointitehtäviä – verkon virittävä

1&%'$

2&%'$

3&%'$

4&%'$

5&%'$

6&%'$

@@

@@

@@

@@@

��

��

��

���

Tehtävä: Liitä jokaiseen solmuun yksi tunnus siten, että kahdella solmulla ei saaolla sama tunnus, jos niiden välillä on haara

12

Page 15: Kuljetustehtävä - Jyväskylän yliopistousers.jyu.fi/~jhaka/ldo/verkkoteoria_ja_optimointi2.pdfVerkkoteoria ja optimointi – verkkoteorian optimointitehtäviä – verkon virittävä

Jakeluongelma

Pizzerialla on kotiinkuljetusta varten käytössä n autoa

Tavoite: Toimita pizzat asiakkaille siten, että toimituksille luvattu aikaraja ei ylity

13

Page 16: Kuljetustehtävä - Jyväskylän yliopistousers.jyu.fi/~jhaka/ldo/verkkoteoria_ja_optimointi2.pdfVerkkoteoria ja optimointi – verkkoteorian optimointitehtäviä – verkon virittävä

Solmut kuvaavat pizzeriaa ja eri asiakkaita

Haarat kuvaavat lyhimpiä reittejä eri solmujen välillä

Jokaiseen haaraan liitetään ajoaika kyseisellä reitillä (= haaran pituus)

Tehtävä: Muodosta n silmukkaa siten, että— pizzeriasolmu on mukana jokaisessa silmukassa— jokainen asiakassolmu on mukana jossain silmukassa— jokaisen silmukan pituus viimeiseen asiakassolmuun asti ei ylitä aikarajaa

14

Page 17: Kuljetustehtävä - Jyväskylän yliopistousers.jyu.fi/~jhaka/ldo/verkkoteoria_ja_optimointi2.pdfVerkkoteoria ja optimointi – verkkoteorian optimointitehtäviä – verkon virittävä

Koneen vaihto-ongelma

Tarkastellaan n:ää aikaperiodia

Jokaisen periodin alussa vanha kone voidaan vaihtaa uuteen tai säilyttäävanha kone

Kun hankitaan uusi kone periodin i alussa ja myydään se periodin j alussa,siitä aiheutuu kustannus cij

Tavoite: Määrää, milloin kone vaihdetaan, jotta kokonaiskustannuksetminimoituvat

15

Page 18: Kuljetustehtävä - Jyväskylän yliopistousers.jyu.fi/~jhaka/ldo/verkkoteoria_ja_optimointi2.pdfVerkkoteoria ja optimointi – verkkoteorian optimointitehtäviä – verkon virittävä

Solmut kuvaavat periodeja 1, . . . , n + 1

Kaari (i, j) tarkoittaa, että kone hankitaan periodin i alussa ja myydäänperiodin j alussa

Jokaiseen kaareen (i, j) liitetään vastaava kustannus cij (= kaaren pituus)

16

Page 19: Kuljetustehtävä - Jyväskylän yliopistousers.jyu.fi/~jhaka/ldo/verkkoteoria_ja_optimointi2.pdfVerkkoteoria ja optimointi – verkkoteorian optimointitehtäviä – verkon virittävä

1&%'$

2&%'$

3&%'$

4&%'$

5&%'$

- - - -����������HHHHHHHHHHj����������HHHHHHHHHHj����������HHHHHHHHHHj

PPPPPPPPPPPPPPPP����������������1PPPPPPPPPPPPPPPP����������������1

��

��

��

��� @

@@

@@

@@

@@R

Tehtävä: Etsi lyhin reitti solmusta 1 solmuun n + 1

17

Page 20: Kuljetustehtävä - Jyväskylän yliopistousers.jyu.fi/~jhaka/ldo/verkkoteoria_ja_optimointi2.pdfVerkkoteoria ja optimointi – verkkoteorian optimointitehtäviä – verkon virittävä

Toimintaverkko

Projektissa on n osatehtävää

Osatehtävät on suoritettava tiettyjen sääntöjen mukaisessa järjestyksessä

Osatehtävän i suoritusaika on ti

Tavoite: Määrää osatehtävien suoritusjärjestys siten, että kokonaissuoritusaikaminimoituu

18

Page 21: Kuljetustehtävä - Jyväskylän yliopistousers.jyu.fi/~jhaka/ldo/verkkoteoria_ja_optimointi2.pdfVerkkoteoria ja optimointi – verkkoteorian optimointitehtäviä – verkon virittävä

si = osatehtävän i aloitusaika

Solmut kuvaavat osatehtäviä

Solmu 0 on projektin aloitusosatehtävä, solmu n + 1 lopetusosatehtävä

Kaari (i, j) tarkoittaa, että osatehtävä i on saatava valmiiksi ennenosatehtävän j aloittamista

Jokaiseen kaareen (i, j) liitetään rajoite sj ≥ si + ti

19

Page 22: Kuljetustehtävä - Jyväskylän yliopistousers.jyu.fi/~jhaka/ldo/verkkoteoria_ja_optimointi2.pdfVerkkoteoria ja optimointi – verkkoteorian optimointitehtäviä – verkon virittävä

0&%'$

1&%'$

2&%'$

3&%'$

4&%'$

5&%'$

6&%'$

��������*

HHHHHHHHj

HHHHHHHHj

-

6

��������*

-

��������*

HHHHHHHHj

HHHHHHHHj

��������*

Tehtävä: Ratkaise

min sn+1 − s0

kun sj ≥ si + ti (i, j) ∈ A

20

Page 23: Kuljetustehtävä - Jyväskylän yliopistousers.jyu.fi/~jhaka/ldo/verkkoteoria_ja_optimointi2.pdfVerkkoteoria ja optimointi – verkkoteorian optimointitehtäviä – verkon virittävä

Tavallisesti kuitenkin toimintaverkko kuvataan seuraava sti:

Solmut kuvaavat osatehtävien alku- ja lopputapahtumia

Kaaret kuvaavat osatehtäviä

Jokaiseen kaareen liitetään osatehtävän kesto (= kaaren pituus)

Kaikkien tiettyyn solmuun päättyvien osatehtävien täytyy olla suoritettu ennenkuin mikään kyseisestä solmusta alkava osatehtävä voidaan aloittaa

Tehtävä: Etsi pisin polku ensimmäisestä solmusta viimeiseen solmuun

21

Page 24: Kuljetustehtävä - Jyväskylän yliopistousers.jyu.fi/~jhaka/ldo/verkkoteoria_ja_optimointi2.pdfVerkkoteoria ja optimointi – verkkoteorian optimointitehtäviä – verkon virittävä

Graafien ja verkkojen tietorakenteita

— Naapurimatriisit

— Insidenssimatriisit

— Haara- ja kaarilistat

— Naapurilistat

22

Page 25: Kuljetustehtävä - Jyväskylän yliopistousers.jyu.fi/~jhaka/ldo/verkkoteoria_ja_optimointi2.pdfVerkkoteoria ja optimointi – verkkoteorian optimointitehtäviä – verkon virittävä

1&%'$

2&%'$

3&%'$

4&%'$

5&%'$

��������

HHHHHHHH

QQ

QQ

QQ

QQ

QQ

QQ

QQ��

��

��

��

��

��

��

Naapurimatriisi, suuntaamaton graafi:

1 2 3 4 51 0 1 1 0 02 1 0 0 1 13 1 0 0 1 14 0 1 1 0 15 0 1 1 1 0

HUOM: Symmetrinen

23

Page 26: Kuljetustehtävä - Jyväskylän yliopistousers.jyu.fi/~jhaka/ldo/verkkoteoria_ja_optimointi2.pdfVerkkoteoria ja optimointi – verkkoteorian optimointitehtäviä – verkon virittävä

1&%'$

2&%'$

3&%'$

4&%'$

5&%'$

��������*

HHHHHHHHj

QQ

QQ

QQ

QQ

QQ

QQ

QQs��

��

��

��

��

��

��3

?

Naapurimatriisi, suunnattu graafi:

1 2 3 4 51 0 1 1 0 02 0 0 0 0 13 0 0 0 1 04 0 1 0 0 15 0 0 1 0 0

24

Page 27: Kuljetustehtävä - Jyväskylän yliopistousers.jyu.fi/~jhaka/ldo/verkkoteoria_ja_optimointi2.pdfVerkkoteoria ja optimointi – verkkoteorian optimointitehtäviä – verkon virittävä

1&%'$

2&%'$

3&%'$

4&%'$

5&%'$

��������

HHHHHHHH

QQ

QQ

QQ

QQ

QQ

QQ

QQ��

��

��

��

��

��

��

Insidenssimatriisi, suuntaamaton graafi:

(1,2) (1,3) (2,4) (2,5) (3,4) (3,5) (4,5)1 1 1 0 0 0 0 02 1 0 1 1 0 0 03 0 1 0 0 1 1 04 0 0 1 0 1 0 15 0 0 0 1 0 1 1

HUOM: Täysin unimodulaarinen

25

Page 28: Kuljetustehtävä - Jyväskylän yliopistousers.jyu.fi/~jhaka/ldo/verkkoteoria_ja_optimointi2.pdfVerkkoteoria ja optimointi – verkkoteorian optimointitehtäviä – verkon virittävä

1&%'$

2&%'$

3&%'$

4&%'$

5&%'$

��������*

HHHHHHHHj

QQ

QQ

QQ

QQ

QQ

QQ

QQs��

��

��

��

��

��

��3

?

Insidenssimatriisi, suunnattu graafi:

(1,2) (1,3) (2,5) (3,4) (4,2) (4,5) (5,3)1 1 1 0 0 0 0 02 −1 0 1 0 −1 0 03 0 −1 0 1 0 0 −14 0 0 0 −1 1 1 05 0 0 −1 0 0 −1 1

HUOM: Täysin unimodulaarinen

26

Page 29: Kuljetustehtävä - Jyväskylän yliopistousers.jyu.fi/~jhaka/ldo/verkkoteoria_ja_optimointi2.pdfVerkkoteoria ja optimointi – verkkoteorian optimointitehtäviä – verkon virittävä

1&%'$

2&%'$

3&%'$

4&%'$

5&%'$

��������6

HHHHHHHH

12

QQ

QQ

QQ

QQ

QQ

QQ

QQ

4

��

��

��

��

��

��

��

2

2

7

5

Haaralista, suuntaamaton verkko:

Päätesolmu Päätesolmu Pituus(1,2) 1 2 6(1,3) 1 3 12(2,4) 2 4 2(2,5) 2 5 4(3,4) 3 4 2(3,5) 3 5 5(4,5) 4 5 7

27

Page 30: Kuljetustehtävä - Jyväskylän yliopistousers.jyu.fi/~jhaka/ldo/verkkoteoria_ja_optimointi2.pdfVerkkoteoria ja optimointi – verkkoteorian optimointitehtäviä – verkon virittävä

1&%'$

2&%'$

3&%'$

4&%'$

5&%'$

��������*6

HHHHHHHHj

12

QQ

QQ

QQ

QQ

QQ

QQ

QQs

4

��

��

��

��

��

��

��3

2

� 2

?

7

� 5

Kaarilista, suunnattu verkko:

Alkusolmu Loppusolmu Pituus(1,2) 1 2 6(1,3) 1 3 12(2,5) 2 5 4(3,4) 3 4 2(4,2) 4 2 2(4,5) 4 5 7(5,3) 5 3 5

28

Page 31: Kuljetustehtävä - Jyväskylän yliopistousers.jyu.fi/~jhaka/ldo/verkkoteoria_ja_optimointi2.pdfVerkkoteoria ja optimointi – verkkoteorian optimointitehtäviä – verkon virittävä

1&%'$

2&%'$

3&%'$

4&%'$

5&%'$

��������

HHHHHHHH

QQ

QQ

QQ

QQ

QQ

QQ

QQ��

��

��

��

��

��

��

Naapurilista, suuntaamaton graafi:

Naapurisolmut1 2 32 1 4 53 1 4 54 2 3 55 2 3 4

29

Page 32: Kuljetustehtävä - Jyväskylän yliopistousers.jyu.fi/~jhaka/ldo/verkkoteoria_ja_optimointi2.pdfVerkkoteoria ja optimointi – verkkoteorian optimointitehtäviä – verkon virittävä

1&%'$

2&%'$

3&%'$

4&%'$

5&%'$

��������*

HHHHHHHHj

QQ

QQ

QQ

QQ

QQ

QQ

QQs��

��

��

��

��

��

��3

?

Naapurilista, suunnattu graafi:

Naapurisolmut(lähtevät kaaret)

1 2 32 53 44 2 55 3

Naapurisolmut(tulevat kaaret)

1 −2 1 43 1 54 35 2 4

30

Page 33: Kuljetustehtävä - Jyväskylän yliopistousers.jyu.fi/~jhaka/ldo/verkkoteoria_ja_optimointi2.pdfVerkkoteoria ja optimointi – verkkoteorian optimointitehtäviä – verkon virittävä

Graafin tai verkon virittävä puu

Aligraafi: Graafi, jossa on mukana osa (tai kaikki) solmuista jaosa (tai kaikki) haaroista

Virittävä aligraafi: Aligraafi, jossa on mukana kaikki solmut

Yhtenäinen virittävä aligraafi: Virittävä aligraafi, joka on yhtenäinen

Minimaalinen yhtenäinen virittävä aligraafi: Yhtenäinen virittävä aligraafi, jossaon mukana mahdollisimman vähän haaroja

31

Page 34: Kuljetustehtävä - Jyväskylän yliopistousers.jyu.fi/~jhaka/ldo/verkkoteoria_ja_optimointi2.pdfVerkkoteoria ja optimointi – verkkoteorian optimointitehtäviä – verkon virittävä

Puu: Graafi, joka on yhtenäinen ja renkaaton

Yhtenäisen graafin minimaalinen yhtenäinen virittävä aligraafi on puu= Graafin virittävä puu

(Verkon virittävä puu vastaavasti)

Graafi on yhtenäinen, jos sillä on olemassa virittävä puu

32

Page 35: Kuljetustehtävä - Jyväskylän yliopistousers.jyu.fi/~jhaka/ldo/verkkoteoria_ja_optimointi2.pdfVerkkoteoria ja optimointi – verkkoteorian optimointitehtäviä – verkon virittävä

Esimerkki

Tiedetään, ketkä kylän asukkaista keskustelevat keskenään

Tavoite: Selvitä, saavuttaako juoru kaikki kylän asukkaat

Solmut kuvaavat asukkaita

Haara (i, j) tarkoittaa, että asukkaat i ja j keskustelevat keskenään

Tehtävä: Tutki, onko graafilla virittävää puuta

33

Page 36: Kuljetustehtävä - Jyväskylän yliopistousers.jyu.fi/~jhaka/ldo/verkkoteoria_ja_optimointi2.pdfVerkkoteoria ja optimointi – verkkoteorian optimointitehtäviä – verkon virittävä

Esimerkki

Rakennetaan kaapeliyhteyksiä eri kaupunkien välille

Jokaisen kaupungin on oltava mukana kaapeliverkossa

Kun rakennetaan yhteys kaupunkien i ja j välille, siitä aiheutuu kustannus cij

Tavoite: Määrää rakennettavat kaapeliyhteydet siten, että kokonaiskustannuksetminimoituvat

34

Page 37: Kuljetustehtävä - Jyväskylän yliopistousers.jyu.fi/~jhaka/ldo/verkkoteoria_ja_optimointi2.pdfVerkkoteoria ja optimointi – verkkoteorian optimointitehtäviä – verkon virittävä

Solmut kuvaavat kaupunkeja

Haara (i, j) tarkoittaa, että kaupunkien i ja j välille voitaisiin rakentaakaapeliyhteys

Jokaiseen haaraan (i, j) liitetään vastaava kustannus cij (= haaran pituus)

Tehtävä: Etsi verkon virittävä puu, jonka kokonaispituus on mahdollisimman pieni

35

Page 38: Kuljetustehtävä - Jyväskylän yliopistousers.jyu.fi/~jhaka/ldo/verkkoteoria_ja_optimointi2.pdfVerkkoteoria ja optimointi – verkkoteorian optimointitehtäviä – verkon virittävä

Virittävän puun etsiminen

Aluksi puu on tyhjä, jokainen solmu muodostaa oman komponenttinsa jakaikki haarat (tai kaaret) ovat tutkimattomia.

1. Jos tutkimattomia haaroja ei ole jäljellä, niin lopeta. Muuten valitse jokin haaraja merkitse se tutkituksi.

2. Jos valitun haaran molemmat päätesolmut kuuluvat samaan komponenttiin,jatka kohdasta 1. Muuten lisää haara puuhun ja yhdistä päätesolmujenkomponentit samaksi komponentiksi.

3. Jos jäljellä on vain yksi komponentti, niin lopeta. Muuten jatka kohdasta 1.

36

Page 39: Kuljetustehtävä - Jyväskylän yliopistousers.jyu.fi/~jhaka/ldo/verkkoteoria_ja_optimointi2.pdfVerkkoteoria ja optimointi – verkkoteorian optimointitehtäviä – verkon virittävä

Jos algoritmin päättyessä jäljellä on vain yksi komponentti, virittävä puuon löytynyt

Jos halutaan löytää verkon lyhin virittävä puu, niin haarat valitaan pituudenmukaan kasvavassa järjestyksessä

Jos halutaan löytää verkon pisin virittävä puu, niin haarat valitaan pituudenmukaan laskevassa järjestyksessä

37

Page 40: Kuljetustehtävä - Jyväskylän yliopistousers.jyu.fi/~jhaka/ldo/verkkoteoria_ja_optimointi2.pdfVerkkoteoria ja optimointi – verkkoteorian optimointitehtäviä – verkon virittävä

Lyhimmät polut

Lyhimpien polkujen tehtäviä:

— Etsi lyhin polku kahden solmun välillä

— Etsi lyhimmät polut jostain solmusta verkon kaikkiin muihin solmuihin

— Etsi lyhimmät polut verkon kaikkien solmujen välillä

Seuraavassa oletetaan, että verkko on suunnattu, yhdistetty jakaarien pituudet ovat kokonaislukuja

38

Page 41: Kuljetustehtävä - Jyväskylän yliopistousers.jyu.fi/~jhaka/ldo/verkkoteoria_ja_optimointi2.pdfVerkkoteoria ja optimointi – verkkoteorian optimointitehtäviä – verkon virittävä

Esimerkki

Pakkausongelma:

max a1x1 + · · ·+ anxn

kun w1x1 + · · ·+ wnxn ≤W

x1, . . . , xn ∈ N

Vastaava lyhimmän polun tehtävä:— Solmut 0,1, . . . , W

— Jokaista tavaraa j kohti kaaret (i, i + wj), i = 0,1, . . . , W − wj,joiden pituus on −aj

— Lisäksi kaaret (i, i + 1), i = 0,1, . . . , W − 1, joiden pituus on 0

(vastaavat puutemuuttujaa)— Tehtävä: Etsi lyhin polku solmusta 0 solmuun W

39

Page 42: Kuljetustehtävä - Jyväskylän yliopistousers.jyu.fi/~jhaka/ldo/verkkoteoria_ja_optimointi2.pdfVerkkoteoria ja optimointi – verkkoteorian optimointitehtäviä – verkon virittävä

Lyhimpien etäisyyksien puu

Lyhimpien etäisyyksien puu: Sellainen verkon virittävä puu, jossapolut juurisolmusta s puun muihin solmuihin ovat samat kuinverkon lyhimmän etäisyyden polut solmusta s verkon muihin solmuihin

Olkoon s = i1 → i2 → · · · → ip = t lyhin polku solmusta s solmuun t

=⇒ s = i1 → i2 → · · · → ij on lyhin polku solmusta s solmuun ijkaikilla j = 2, . . . , p− 1

=⇒ On aina olemassa lyhimpien etäisyyksien puu

40

Page 43: Kuljetustehtävä - Jyväskylän yliopistousers.jyu.fi/~jhaka/ldo/verkkoteoria_ja_optimointi2.pdfVerkkoteoria ja optimointi – verkkoteorian optimointitehtäviä – verkon virittävä

Lyhimmät polut yhdestä lähtösolmusta alkaen

Solmuihin liitetään tunnuksia (etäisyys lähtösolmusta, solmunedeltäjäsolmu, jne.)

Tunnukset voivat olla väliaikaisia tai lopullisia

Väliaikaisia tunnuksia muutetaan iteratiivisesti

Tunnuksen asettavat menetelmät: Joka iteraatiolla yksi väliaikainen tunnuskiinnitetään lopulliseksi

Tunnusta korjaavat menetelmät: Kaikki väliaikaiset tunnukset kiinnitetäänkerralla lopullisiksi sitten, kun muutoksia ei enää voi tehdä

41

Page 44: Kuljetustehtävä - Jyväskylän yliopistousers.jyu.fi/~jhaka/ldo/verkkoteoria_ja_optimointi2.pdfVerkkoteoria ja optimointi – verkkoteorian optimointitehtäviä – verkon virittävä

Dijkstran menetelmä

Tunnuksen asettava menetelmä

Oletus: Kaarien pituudet dij ovat ei-negatiivisia

Tunnukset:

d(i) = jonkin polun pituus lähtösolmusta s solmuun i

e(i) = solmun i edeltäjäsolmu kyseisellä polulla

Solmut jaetaan kahteen ryhmään:

P = {solmut, joiden tunnukset ovat lopullisia}T = {solmut, joiden tunnukset ovat väliaikaisia}

42

Page 45: Kuljetustehtävä - Jyväskylän yliopistousers.jyu.fi/~jhaka/ldo/verkkoteoria_ja_optimointi2.pdfVerkkoteoria ja optimointi – verkkoteorian optimointitehtäviä – verkon virittävä

1. Aluksi P = ∅, T = N , d(s) = 0 ja d(i) =∞ kaikilla i ∈ T \ {s}.

2. Jos P = N , niin lopeta. Muuten valitse jokin solmu i ∈ T siten, että

d(i) = min{d(j) | j ∈ T}.

Kaikilla j ∈ T siten, että on olemassa (i, j) ∈ A tee seuraavaa:

Jos d(i) + dij < d(j), niin aseta d(j) = d(i) + dij ja e(j) = i.

3. Kiinnitä solmun i tunnukset lopullisiksi, ts. aseta P = P ∪ {i} ja T = T \ {i}.Jatka kohdasta 2.

43

Page 46: Kuljetustehtävä - Jyväskylän yliopistousers.jyu.fi/~jhaka/ldo/verkkoteoria_ja_optimointi2.pdfVerkkoteoria ja optimointi – verkkoteorian optimointitehtäviä – verkon virittävä

Algoritmin päätyttyä:— Lyhin etäisyys lähtösolmusta s solmuun i on d(i)

— Vastaava polku on i← e(i)← e(e(i))← · · · ← s

Jos halutaan löytää lyhin polku lähtösolmusta s johonkin tiettyyn solmuun t,algoritmi voidaan lopettaa, kun solmun t tunnukset on kiinnitetty lopullisiksi

44

Page 47: Kuljetustehtävä - Jyväskylän yliopistousers.jyu.fi/~jhaka/ldo/verkkoteoria_ja_optimointi2.pdfVerkkoteoria ja optimointi – verkkoteorian optimointitehtäviä – verkon virittävä

Solmuja n kpl

Yhdellä iteraatiolla valitaan yksi solmu, jonka tunnukset ovat väliaikaisia=⇒ ∼ n operaatiota

Yhdellä iteraatiolla kiinnitetään yhden solmun tunnukset lopullisiksi=⇒ n iteraatiota

=⇒ Algoritmin suoritusaika (laskennallinen vaativuus) on O(n2)

45

Page 48: Kuljetustehtävä - Jyväskylän yliopistousers.jyu.fi/~jhaka/ldo/verkkoteoria_ja_optimointi2.pdfVerkkoteoria ja optimointi – verkkoteorian optimointitehtäviä – verkon virittävä

Dialin toteutustapa:

Solmun valintaan kuluvaa aikaa pienennetään pitämällä joukon T solmutlajiteltuina väliaikaisten tunnusten d(i) mukaan kasvavassa järjestyksessä

Käytössä on joukko lokeroita, jotka on numeroitu 0,1,2, . . .

Lokeroon k tallennetaan ne joukon T solmut, joilla d(i) = k

(jos d(i) =∞, solmua ei tarvitse tallentaa)

=⇒ Valittava solmu löytyy ensimmäisestä epätyhjästä lokerosta

46

Page 49: Kuljetustehtävä - Jyväskylän yliopistousers.jyu.fi/~jhaka/ldo/verkkoteoria_ja_optimointi2.pdfVerkkoteoria ja optimointi – verkkoteorian optimointitehtäviä – verkon virittävä

Olkoon C pisimmän kaaren pituus

=⇒ Jokaisen solmun lopullinen d(i) on pienempi kuin nC

=⇒ nC + 1 lokeroa riittää varmasti

Jokaisella iteraatiokierroksella on d(i) ≤ d(j) ≤ d(i) + C

kaikilla j ∈ T siten, että d(j) 6=∞

=⇒ Vain lokerot d(i), d(i) + 1, . . . , d(i) + C ovat epätyhjiä

=⇒ C + 1 lokeroa riittää

47

Page 50: Kuljetustehtävä - Jyväskylän yliopistousers.jyu.fi/~jhaka/ldo/verkkoteoria_ja_optimointi2.pdfVerkkoteoria ja optimointi – verkkoteorian optimointitehtäviä – verkon virittävä

Optimaalisuusehdot

Olkoot dij kaarien (i, j) ∈ A pituudet (voivat olla myös negatiivisia)

Oletetaan, että verkossa ei ole silmukkaa, jonka pituus on negatiivinen

Etäisyystunnukset d(i) ovat lyhimpien polkujen etäisyyksiälähtösolmusta s solmuihin i, jos ja vain jos

d(j) ≤ d(i) + dij ∀(i, j) ∈ A

48

Page 51: Kuljetustehtävä - Jyväskylän yliopistousers.jyu.fi/~jhaka/ldo/verkkoteoria_ja_optimointi2.pdfVerkkoteoria ja optimointi – verkkoteorian optimointitehtäviä – verkon virittävä

Silmukka, jonka pituus on negatiivinen:

Olkoon C = {silmukan kaaret} ja∑

(i,j)∈C dij < 0

Oletetaan, että optimaalisuusehdot ovat voimassa

=⇒ d(j) ≤ d(i) + dij ∀(i, j) ∈ C

=⇒ d(i)− d(j) + dij ≥ 0 ∀(i, j) ∈ C

=⇒

(i,j)∈C

(d(i)− d(j) + dij) ≥ 0

=⇒

(i,j)∈C

dij ≥ 0 =⇒ Ristiriita

=⇒ Optimaalisuusehdot eivät voi olla voimassa

49

Page 52: Kuljetustehtävä - Jyväskylän yliopistousers.jyu.fi/~jhaka/ldo/verkkoteoria_ja_optimointi2.pdfVerkkoteoria ja optimointi – verkkoteorian optimointitehtäviä – verkon virittävä

Optimaalisuusehtoihin perustuva menetelmä

Tunnusta korjaava menetelmä

Oletus: Verkossa ei ole silmukkaa, jonka pituus on negatiivinen

Tunnukset:

d(i) = jonkin polun pituus lähtösolmusta s solmuun i

e(i) = solmun i edeltäjäsolmu kyseisellä polulla

Tunnukset kiinnitetään lopullisiksi vasta, kun algoritmi on päättynyt

50

Page 53: Kuljetustehtävä - Jyväskylän yliopistousers.jyu.fi/~jhaka/ldo/verkkoteoria_ja_optimointi2.pdfVerkkoteoria ja optimointi – verkkoteorian optimointitehtäviä – verkon virittävä

1. Aluksi d(s) = 0 ja d(i) =∞ kaikilla i ∈ N \ {s}.

2. Jos d(j) ≤ d(i) + dij kaikilla (i, j) ∈ A, niin lopeta. Muuten valitse jokinkaari (i, j) siten, että d(j) > d(i) + dij ja tee seuraavaa:

Aseta d(j) = d(i) + dij ja e(j) = i.

3. Jatka kohdasta 2.

Algoritmin päätyttyä:— Lyhin etäisyys lähtösolmusta s solmuun i on d(i)

— Vastaava polku on i← e(i)← e(e(i))← · · · ← s

51

Page 54: Kuljetustehtävä - Jyväskylän yliopistousers.jyu.fi/~jhaka/ldo/verkkoteoria_ja_optimointi2.pdfVerkkoteoria ja optimointi – verkkoteorian optimointitehtäviä – verkon virittävä

Järjestys, jossa kaaret käydään läpi kullakin iteraatiolla,vaikuttaa algoritmin suoritusaikaan

”Huono” järjestys (esim. satunnainen)=⇒ Suoritusaika voi olla eksponentiaalinen

”Järkevä” järjestys (esim. aina samassa järjestyksessä)=⇒ Suoritusaika saadaan polynomiseksi

52

Page 55: Kuljetustehtävä - Jyväskylän yliopistousers.jyu.fi/~jhaka/ldo/verkkoteoria_ja_optimointi2.pdfVerkkoteoria ja optimointi – verkkoteorian optimointitehtäviä – verkon virittävä

Algoritmin nopeuttaminen:

Käydään kaaret läpi aina samassa järjestyksessä, siten ettäsamasta solmusta lähtevät kaaret ovat aina peräkkäin

Olkoon solmu i siten, että jollain iteraatiolla ehdot

d(j) ≤ d(i) + dij ∀j siten että (i, j) ∈ A

ovat voimassa

Jos solmun i tunnukset eivät muutu kyseisellä iteraatiolla=⇒ Samat ehdot ovat voimassa myös seuraavalla iteraatiolla=⇒ Kaaria (i, j) ∈ A ei tarvitse tutkia seuraavalla iteraatiolla

53

Page 56: Kuljetustehtävä - Jyväskylän yliopistousers.jyu.fi/~jhaka/ldo/verkkoteoria_ja_optimointi2.pdfVerkkoteoria ja optimointi – verkkoteorian optimointitehtäviä – verkon virittävä

Lyhimmät polut kaikkien solmuparien välillä

Käytetään edellisiä menetelmiä n kertaa:— Määrätään lyhimmät polut jostain lähtösolmusta s kaikkiin muihin solmuihin— Vaihdetaan lähtösolmuksi s jokin muu solmu ja toistetaan

Jos kaikki kaarien pituudet ei-negatiivisia, voidaan käyttää Dijkstranmenetelmää; muuten täytyy käyttää (esimerkiksi) optimaalisuusehtoihinperustuvaa menetelmää

54

Page 57: Kuljetustehtävä - Jyväskylän yliopistousers.jyu.fi/~jhaka/ldo/verkkoteoria_ja_optimointi2.pdfVerkkoteoria ja optimointi – verkkoteorian optimointitehtäviä – verkon virittävä

Kaarien pituuksien muuntaminen

Olkoon osa kaarien pituuksista negatiivisia, mutta verkossa ei ole silmukkaa,jonka pituus on negatiivinen

Määrätään lyhimmät polut jostain lähtösolmusta s kaikkiin muihin solmuihinoptimaalisuusehtoihin perustuvalla menetelmällä=⇒ d(j) ≤ d(i) + dij kaikilla (i, j) ∈ A

Asetetaan jokaiselle kaarelle uusi pituus d′ij = dij + d(i)− d(j)

=⇒ d′ij ≥ 0 kaikilla (i, j) ∈ A

55

Page 58: Kuljetustehtävä - Jyväskylän yliopistousers.jyu.fi/~jhaka/ldo/verkkoteoria_ja_optimointi2.pdfVerkkoteoria ja optimointi – verkkoteorian optimointitehtäviä – verkon virittävä

Olkoon k = i0 → i1→ · · · → ip = ` jokin polku ja P = {polun kaaret}=⇒

(i,j)∈P

d′ij =∑

(i,j)∈P

(dij + d(i)− d(j)) =∑

(i,j)∈P

dij + d(k)− d(`)

=⇒ Polun pituus muuttuu vakiolla d(k)− d(`)

=⇒ Kaikki solmujen k ja ` väliset polut muuttuvat samalla vakiolla

=⇒ Lyhimmät polut säilyvät muunnoksessa

=⇒ Lyhimmät polut kaikista muista solmuista N \ {s} alkaenvoidaan määrätä Dijkstran menetelmällä

56