Kuljetustehtävä - Jyväskylän...
Transcript of Kuljetustehtävä - Jyväskylän...
![Page 1: Kuljetustehtävä - Jyväskylän yliopistousers.jyu.fi/~jhaka/ldo/verkkoteoria_ja_optimointi2.pdfVerkkoteoria ja optimointi – verkkoteorian optimointitehtäviä – verkon virittävä](https://reader033.fdocuments.net/reader033/viewer/2022051902/5ff2abf8d143d473f5228c16/html5/thumbnails/1.jpg)
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ä](https://reader033.fdocuments.net/reader033/viewer/2022051902/5ff2abf8d143d473f5228c16/html5/thumbnails/2.jpg)
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ä](https://reader033.fdocuments.net/reader033/viewer/2022051902/5ff2abf8d143d473f5228c16/html5/thumbnails/3.jpg)
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ä](https://reader033.fdocuments.net/reader033/viewer/2022051902/5ff2abf8d143d473f5228c16/html5/thumbnails/4.jpg)
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ä](https://reader033.fdocuments.net/reader033/viewer/2022051902/5ff2abf8d143d473f5228c16/html5/thumbnails/5.jpg)
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ä](https://reader033.fdocuments.net/reader033/viewer/2022051902/5ff2abf8d143d473f5228c16/html5/thumbnails/6.jpg)
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ä](https://reader033.fdocuments.net/reader033/viewer/2022051902/5ff2abf8d143d473f5228c16/html5/thumbnails/7.jpg)
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ä](https://reader033.fdocuments.net/reader033/viewer/2022051902/5ff2abf8d143d473f5228c16/html5/thumbnails/8.jpg)
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ä](https://reader033.fdocuments.net/reader033/viewer/2022051902/5ff2abf8d143d473f5228c16/html5/thumbnails/9.jpg)
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ä](https://reader033.fdocuments.net/reader033/viewer/2022051902/5ff2abf8d143d473f5228c16/html5/thumbnails/10.jpg)
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ä](https://reader033.fdocuments.net/reader033/viewer/2022051902/5ff2abf8d143d473f5228c16/html5/thumbnails/11.jpg)
0&%'$
1&%'$
2&%'$
3&%'$
4&%'$
?
d1 + d2 + d3 + d4
��
��
��
��
��
��
��+
x1
��
��
��
���
x2
AAAAAAAAU
x3
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ä](https://reader033.fdocuments.net/reader033/viewer/2022051902/5ff2abf8d143d473f5228c16/html5/thumbnails/12.jpg)
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ä](https://reader033.fdocuments.net/reader033/viewer/2022051902/5ff2abf8d143d473f5228c16/html5/thumbnails/13.jpg)
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ä](https://reader033.fdocuments.net/reader033/viewer/2022051902/5ff2abf8d143d473f5228c16/html5/thumbnails/14.jpg)
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ä](https://reader033.fdocuments.net/reader033/viewer/2022051902/5ff2abf8d143d473f5228c16/html5/thumbnails/15.jpg)
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ä](https://reader033.fdocuments.net/reader033/viewer/2022051902/5ff2abf8d143d473f5228c16/html5/thumbnails/16.jpg)
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ä](https://reader033.fdocuments.net/reader033/viewer/2022051902/5ff2abf8d143d473f5228c16/html5/thumbnails/17.jpg)
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ä](https://reader033.fdocuments.net/reader033/viewer/2022051902/5ff2abf8d143d473f5228c16/html5/thumbnails/18.jpg)
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ä](https://reader033.fdocuments.net/reader033/viewer/2022051902/5ff2abf8d143d473f5228c16/html5/thumbnails/19.jpg)
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ä](https://reader033.fdocuments.net/reader033/viewer/2022051902/5ff2abf8d143d473f5228c16/html5/thumbnails/20.jpg)
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ä](https://reader033.fdocuments.net/reader033/viewer/2022051902/5ff2abf8d143d473f5228c16/html5/thumbnails/21.jpg)
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ä](https://reader033.fdocuments.net/reader033/viewer/2022051902/5ff2abf8d143d473f5228c16/html5/thumbnails/22.jpg)
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ä](https://reader033.fdocuments.net/reader033/viewer/2022051902/5ff2abf8d143d473f5228c16/html5/thumbnails/23.jpg)
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ä](https://reader033.fdocuments.net/reader033/viewer/2022051902/5ff2abf8d143d473f5228c16/html5/thumbnails/24.jpg)
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ä](https://reader033.fdocuments.net/reader033/viewer/2022051902/5ff2abf8d143d473f5228c16/html5/thumbnails/25.jpg)
1&%'$
2&%'$
3&%'$
4&%'$
5&%'$
��������
HHHHHHHH
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ä](https://reader033.fdocuments.net/reader033/viewer/2022051902/5ff2abf8d143d473f5228c16/html5/thumbnails/26.jpg)
1&%'$
2&%'$
3&%'$
4&%'$
5&%'$
��������*
HHHHHHHHj
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ä](https://reader033.fdocuments.net/reader033/viewer/2022051902/5ff2abf8d143d473f5228c16/html5/thumbnails/27.jpg)
1&%'$
2&%'$
3&%'$
4&%'$
5&%'$
��������
HHHHHHHH
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ä](https://reader033.fdocuments.net/reader033/viewer/2022051902/5ff2abf8d143d473f5228c16/html5/thumbnails/28.jpg)
1&%'$
2&%'$
3&%'$
4&%'$
5&%'$
��������*
HHHHHHHHj
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ä](https://reader033.fdocuments.net/reader033/viewer/2022051902/5ff2abf8d143d473f5228c16/html5/thumbnails/29.jpg)
1&%'$
2&%'$
3&%'$
4&%'$
5&%'$
��������6
HHHHHHHH
12
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ä](https://reader033.fdocuments.net/reader033/viewer/2022051902/5ff2abf8d143d473f5228c16/html5/thumbnails/30.jpg)
1&%'$
2&%'$
3&%'$
4&%'$
5&%'$
��������*6
HHHHHHHHj
12
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ä](https://reader033.fdocuments.net/reader033/viewer/2022051902/5ff2abf8d143d473f5228c16/html5/thumbnails/31.jpg)
1&%'$
2&%'$
3&%'$
4&%'$
5&%'$
��������
HHHHHHHH
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ä](https://reader033.fdocuments.net/reader033/viewer/2022051902/5ff2abf8d143d473f5228c16/html5/thumbnails/32.jpg)
1&%'$
2&%'$
3&%'$
4&%'$
5&%'$
��������*
HHHHHHHHj
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ä](https://reader033.fdocuments.net/reader033/viewer/2022051902/5ff2abf8d143d473f5228c16/html5/thumbnails/33.jpg)
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ä](https://reader033.fdocuments.net/reader033/viewer/2022051902/5ff2abf8d143d473f5228c16/html5/thumbnails/34.jpg)
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ä](https://reader033.fdocuments.net/reader033/viewer/2022051902/5ff2abf8d143d473f5228c16/html5/thumbnails/35.jpg)
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ä](https://reader033.fdocuments.net/reader033/viewer/2022051902/5ff2abf8d143d473f5228c16/html5/thumbnails/36.jpg)
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ä](https://reader033.fdocuments.net/reader033/viewer/2022051902/5ff2abf8d143d473f5228c16/html5/thumbnails/37.jpg)
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ä](https://reader033.fdocuments.net/reader033/viewer/2022051902/5ff2abf8d143d473f5228c16/html5/thumbnails/38.jpg)
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ä](https://reader033.fdocuments.net/reader033/viewer/2022051902/5ff2abf8d143d473f5228c16/html5/thumbnails/39.jpg)
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ä](https://reader033.fdocuments.net/reader033/viewer/2022051902/5ff2abf8d143d473f5228c16/html5/thumbnails/40.jpg)
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ä](https://reader033.fdocuments.net/reader033/viewer/2022051902/5ff2abf8d143d473f5228c16/html5/thumbnails/41.jpg)
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ä](https://reader033.fdocuments.net/reader033/viewer/2022051902/5ff2abf8d143d473f5228c16/html5/thumbnails/42.jpg)
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ä](https://reader033.fdocuments.net/reader033/viewer/2022051902/5ff2abf8d143d473f5228c16/html5/thumbnails/43.jpg)
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ä](https://reader033.fdocuments.net/reader033/viewer/2022051902/5ff2abf8d143d473f5228c16/html5/thumbnails/44.jpg)
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ä](https://reader033.fdocuments.net/reader033/viewer/2022051902/5ff2abf8d143d473f5228c16/html5/thumbnails/45.jpg)
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ä](https://reader033.fdocuments.net/reader033/viewer/2022051902/5ff2abf8d143d473f5228c16/html5/thumbnails/46.jpg)
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ä](https://reader033.fdocuments.net/reader033/viewer/2022051902/5ff2abf8d143d473f5228c16/html5/thumbnails/47.jpg)
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ä](https://reader033.fdocuments.net/reader033/viewer/2022051902/5ff2abf8d143d473f5228c16/html5/thumbnails/48.jpg)
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ä](https://reader033.fdocuments.net/reader033/viewer/2022051902/5ff2abf8d143d473f5228c16/html5/thumbnails/49.jpg)
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ä](https://reader033.fdocuments.net/reader033/viewer/2022051902/5ff2abf8d143d473f5228c16/html5/thumbnails/50.jpg)
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ä](https://reader033.fdocuments.net/reader033/viewer/2022051902/5ff2abf8d143d473f5228c16/html5/thumbnails/51.jpg)
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ä](https://reader033.fdocuments.net/reader033/viewer/2022051902/5ff2abf8d143d473f5228c16/html5/thumbnails/52.jpg)
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ä](https://reader033.fdocuments.net/reader033/viewer/2022051902/5ff2abf8d143d473f5228c16/html5/thumbnails/53.jpg)
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ä](https://reader033.fdocuments.net/reader033/viewer/2022051902/5ff2abf8d143d473f5228c16/html5/thumbnails/54.jpg)
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ä](https://reader033.fdocuments.net/reader033/viewer/2022051902/5ff2abf8d143d473f5228c16/html5/thumbnails/55.jpg)
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ä](https://reader033.fdocuments.net/reader033/viewer/2022051902/5ff2abf8d143d473f5228c16/html5/thumbnails/56.jpg)
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ä](https://reader033.fdocuments.net/reader033/viewer/2022051902/5ff2abf8d143d473f5228c16/html5/thumbnails/57.jpg)
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ä](https://reader033.fdocuments.net/reader033/viewer/2022051902/5ff2abf8d143d473f5228c16/html5/thumbnails/58.jpg)
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