CS-A1140 Tietorakenteet ja algoritmit

Samankaltaiset tiedostot
Kierros 8: Verkkoalgoritmeja (osa II)

Kierros 7: Verkkoalgoritmeja (osa I)

CS-A1140 Tietorakenteet ja algoritmit

S Laskennallinen systeemibiologia

12. Liikenteenhallinta verkkotasolla

Vastaa tehtäviin 1-4 ja valitse toinen tehtävistä 5 ja 6. Vastaat siis enintään viiteen tehtävään.

Matematiikan johdantokurssi, syksy 2017 Harjoitus 6, ratkaisuista. 1. Onko jokin demojen 5 tehtävän 3 relaatioista

Säännöllisestä lausekkeesta deterministiseksi tilakoneeksi: esimerkki

T Syksy 2002 Tietojenkäsittelyteorian perusteet Harjoitus 5 Demonstraatiotehtävien ratkaisut. ja kaikki a Σ ovat säännöllisiä lausekkeita.

Kuvausta f sanotaan tällöin isomorfismiksi.

Knauf Safeboard Säteilysuojalevy 03/2009. Knauf Safeboard Säteilysuojalevy. 0% lyijyä. 100% turvallisuus.

ICS-C2000 Tietojenkäsittelyteoria Kevät 2016

a) Määritä signaalin x[n] varianssi (keskimääräinen teho) σ x c) Määritä signaalikvantisointikohinasuhde SQNR, kun tiedetään, että

Diskreetin matematiikan perusteet Laskuharjoitus 6 / vko 13

Puolijohdekomponenttien perusteet A Ratkaisut 1, Kevät Tarvittava akseptoridouppaus p-tyypin kerrokseen saadaan kaavalla

ELEC-E8419 tentti joulukuu 2016

58131 Tietorakenteet ja algoritmit (kevät 2015) Toinen välikoe, malliratkaisut

Hakemus- ja ilmoituslomake LAPL, BPL, SPL, PPL, CPL, IR lupakirjoja varten vaadittava lentokoe- ja tarkastuslentolausunto

OSA 1: POLYNOMILASKENNAN KERTAUSTA, BINOMIN LASKUSÄÄNTÖJÄ JA YHTÄLÖNRATKAISUA

3 Integraali ja derivaatta

Koestusnormit: VDE 0660 osa 500/IEC Suoritettu koestus: Nimellinen virtapiikkien kestävyys I pk. Ip hetkellinen oikosulkuvirta [ka]

Integraalilaskentaa. 1. Mihin integraalilaskentaa tarvitaan? MÄNTÄN LUKIO

13 Lyhimmät painotetut polut

TKT20001 Tietorakenteet ja algoritmit Erilliskoe , malliratkaisut (Jyrki Kivinen)

Neliömatriisin A determinantti on luku, jota merkitään det(a) tai A. Se lasketaan seuraavasti: determinantti on

Kertymäfunktio. Kertymäfunktio. Kertymäfunktio: Mitä opimme? 2/2. Kertymäfunktio: Mitä opimme? 1/2. Kertymäfunktio: Esitiedot

Riemannin integraalista

Näytä tai jätä tarkistettavaksi tämän jakson tehtävät viimeistään tiistaina ylimääräisessä tapaamisessa.

A-Osio. Valitse seuraavista kolmesta tehtävästä kaksi, joihin vastaat. A-osiossa ei saa käyttää laskinta.

Reaalinen lukualue. Millainen on luku, jossa on päättymätön ja jaksoton desimaalikehitelmä?

3.3 KIELIOPPIEN JÄSENNYSONGELMA Ratkaistava tehtävä: Annettu yhteydetön kielioppi G ja merkkijono x. Onko

Asentajan viiteopas. Jaetut ilmastointilaitteet RZQG71L9V1B RZQG100L9V1B RZQG125L9V1B RZQG140L9V1B RZQG71L8Y1B RZQG100L8Y1B RZQG125L8Y1B RZQG140L7Y1B

Preliminäärikoe Pitkä Matematiikka

11. MÄÄRÄTTY INTEGRAALI JA TILAVUUS

12. Liikenteenhallinta verkkotasolla

T Kevät 2009 Logiikka tietotekniikassa: perusteet Laskuharjoitus 7 (Predikaattilogiikka )

6 Integraalilaskentaa

LIITE 8A: RAKENNELUVUN 137 YHTÄLÖITÄ

Diskreetin matematiikan perusteet Ratkaisut 4 / vko 11

12. Liikenteenhallinta verkkotasolla

Olkoon. M = (Q, Σ, δ, q 0, F)

Laskennan mallit Erilliskoe , ratkaisuja (Jyrki Kivinen)

811312A Tietorakenteet ja algoritmit V Verkkojen algoritmeja Osa 2 : Kruskalin ja Dijkstran algoritmit

Kieli, merkitys ja logiikka, kevät 2011 HY, Kognitiotiede. Vastaukset 2.

HAVAINNOINTI JA TUTKIMINEN

2.2 Automaattien minimointi

ICS-C2000 Tietojenkäsittelyteoria Kevät 2015

Lämmönsiirto (ei tenttialuetta)

Kertaustehtävien ratkaisut

Sähkömagneettinen induktio

Olkoon. äärellinen automaatti. Laajennetaan M:n siirtymäfunktio yksittäisistä syötemerkeistä merkkijonoihin: jos q Q, x Σ, merkitään

MS-A010{3,4} (ELEC*) Differentiaali- ja integraalilaskenta 1 Luento 7: Integraali ja analyysin peruslause

Algoritmi on periaatteellisella tasolla seuraava:

Algoritmit 1. Luento 13 Ti Timo Männikkö

2.4 Pienimmän neliösumman menetelmä

Tehtävä 1. Jatka loogisesti oheisia jonoja kahdella seuraavaksi tulevalla termillä. Perustele vastauksesi

R4 Harjoitustehtävien ratkaisut

VEKTOREILLA LASKEMINEN

1.3 Toispuoleiset ja epäoleelliset raja-arvot

Esimerkki 8.1 Määritellään operaattori A = x + d/dx. Laske Af, kun f = asin(bx). Tässä a ja b ovat vakioita.

Algoritmit 1. Luento 8 Ke Timo Männikkö

Suorat, käyrät ja kaarevuus

MS-A010{2,3,4,5} (SCI,ELEC*, ENG*) Differentiaali- ja integraalilaskenta 1 Luento 7: Integraali ja analyysin peruslause

Suorakaidekanavat. lindab suorakaidekanavat

exp(x) = e x x n n=0 v(x, y) = e x sin y

Asentajan viiteopas. Daikin Altherma - Matalan lämpötilan Split ERHQ BA ERLQ CA EHVH/X11+16S18CB EHVH/X11+16S26CB

x k 1 Riemannin summien käyttö integraalin approksimointiin ei ole erityisen tehokasta; jatkuvasti derivoituvalle funktiolle f virhe b

Riemannin integraali

7.lk matematiikka. Geometria 1

Pythagoraan lause. Pythagoras Samoslainen. Pythagoraan lause

10. MÄÄRÄTYN INTEGRAALIN KÄYTTÖ ERÄIDEN PINTA-ALOJEN LASKEMISESSA

Painopiste. josta edelleen. x i m i. (1) m L A TEX 1 ( ) x 1... x k µ x k+1... x n. m 1 g... m n g. Kuva 1. i=1. i=k+1. i=1

Johdatus graafiteoriaan

Rahoitusriskit ja johdannaiset Matti Estola Luento 5. Termiinihinnan määräytyminen

Koestusnormit: VDE 0660 osa 500/IEC Suoritettu koestus: Nimellinen virtapiikkien kestävyys I pk. Ip hetkellinen oikosulkuvirta [ka]

Käydään läpi: ääriarvo tarkastelua, L Hospital, integraalia ja sarjoja.

1. Derivaatan Testi. Jos funktio f on jatkuva avoimella välillä ]a, b[ ja x 0 ]a, b[ on kriit. tai singul. piste niin. { f (x) > 0, x ]a, x 0 [

Asentajan ja käyttäjän viiteopas

ILMAILUHALLINTO LUFTFARTSFÖRVALTNINGEN FINNISH CIVIL AVIATION AUTHORITY

811312A Tietorakenteet ja algoritmit Kertausta jälkiosasta

Syksyn 2015 Pitkän matematiikan YO-kokeen TI-Nspire CAS -ratkaisut

Digitaalinen videonkäsittely Harjoitus 5, vastaukset tehtäviin 25-30

TASORITILÄN ASENNUS SEKÄ ALUSVALUN SIISTIMINEN ANKKURIREIKIEN PORAUS POIKKILEIKKAUS REUNAPALKISTA KANNATTIMEN KOHDALLA ALUSVALU KANNATTIMEN ASENNUS

Rekursioyhtälön ratkaisutapa #1: iteratiivinen korvaus

TIEA241 Automaatit ja kieliopit, syksy Antti-Juhani Kaijanaho. 22. syyskuuta 2016

Teoriaa tähän jaksoon on talvikurssin luentomonisteessa luvussa 10. Siihen on linkki sivulta

OUML7421B3003. Jänniteohjattu venttiilimoottori KÄYTTÖKOHTEET TEKNISET TIEDOT OMINAISUUDET SOPIVAT VENTTIILIT TUOTETIEDOT. i OUV5049 i OUV5050

y 1 = f 1 (t,y 1,,y n ) y 2 = f 2 (t,y 1,,y n ) (1) y n = f n (t,y 1,,y n ) DY-ryhmään liittyvä alkuarvotehtävä muodostuu ryhmästä (1) ja alkuehdoista

θ 1 θ 2 γ γ = β ( n 2 α + n 2 β = l R α l s γ l s 22 LINSSIT JA LINSSIJÄRJESTELMÄT 22.1 Linssien kuvausyhtälö

II.1. Suppeneminen., kun x > 0. Tavallinen lasku

ICS-C2000 Tietojenkäsittelyteoria Kevät 2016

Lue tämä Pika-asennusopas ennen koneen käyttöä varmistuaksesi asetusten ja asennuksen oikeasta suorituksesta.

Numeeriset menetelmät TIEA381. Luento 9. Kirsi Valjus. Jyväskylän yliopisto. Luento 9 () Numeeriset menetelmät / 29

Juuri 10 Tehtävien ratkaisut Kustannusosakeyhtiö Otava päivitetty

solmujoukko V omassa säiliössä (sekvenssi) kaarijoukko E kaarialkio-säiliössä kussakin kaarialkiossa viite sen alku- ja loppusolmuun

Kertausosa. Kertausosa. Verrattuna lähtöarvoon kurssi oli laskenut. Kalliimman tukkuhinta 1,2 480 = 576 Kalliimman myyntihinta 1,3

1. Laske sivun 104 esimerkin tapaan sellainen likiarvo luvulle e, että virheen itseisarvo on pienempi kuin 10 5.

9 A I N. Alkuperäinen piiri. Nortonin ekvivalentti R T = R N + - U T = I N R N. Théveninin ekvivalentti DEE SÄHKÖTEKNIIKAN PERUSTEET

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

Differentiaali- ja integraalilaskenta 1 (CHEM) Laskuharjoitus 4 / vko 47, mallivastaukset

Transkriptio:

CS-A11 Titorkntt j lgoritmit Kirros 8: Vrkkolgoritmj (os II) Tommi Junttil Alto-yliopisto Prustitin korkkoulu Titotkniikn litos Syksy 1

Aiht: Pinottut vrkot Minimlist virittäjäpuut Lyhimmät polut Mtrili kirjss Introution to Algorithms, r. (onlin vi Alto li): Minimlist virittäjäpuut: Luku Lyhimmät polut: Luku CS-A11 Titorkntt j lgoritmit / Kirros 8 Alto-yliopisto / Titotkniikn litos /1

Linkkjä: MIT. OCW vio on singl-sour shortst pths MIT. OCW vio on Dijkstr s lgorithm MIT. OCW vio on Bllmn-For Krusklin lgoritmin visulisointi Primin lgoritmin visulisointi Dijkstrn lgoritmin visulisointi CS-A11 Titorkntt j lgoritmit / Kirros 8 Alto-yliopisto / Titotkniikn litos /1

Pinottut vrkot CS-A11 Titorkntt j lgoritmit / Kirros 8 Alto-yliopisto / Titotkniikn litos /1

Monss sovlluksss vrkon kriin liittyy jokin numrinn pino, pituus, kustnnus tms Esimrkiksi tistöä kuvvss vrkoss solmut ovt tin ristyksiä j päätpistitä, krt ovt näitä yhistäviä titä j jokisn krn on lisätty kysisn tin pituus (täisyys pistin välillä) Sosilist vrkosto kuvvss vrkoss krin pinot voisivt krto simrkiksi sn, kuink mont vistiä solmuihin liittyt hnkilöt ovt vihtnt ksknään viimisn kuukun ikn Mtmttisss trkstluss kutsutn kriin liitttyjä numrisi rvoj pinoiksi CS-A11 Titorkntt j lgoritmit / Kirros 8 Alto-yliopisto / Titotkniikn litos /1

Pinotttu suuntmton vrkko on kolmikko (V, E, w), missä V on joukko solmuj, E on joukko kri solmujn välillä li joukko -osjoukkoj muoto {u,v} sitn, ttä u,v V j u v, j w : E R liittää jokisn krn pinon. Esimrkki: Oikll on kuvttu vrkko (V, E, w), missä solmut ovt V = {,,,,,,g} j krt ovt E = {{,},{,},{, },{,}, {,},{, },{,},{,},{,g},{, }}. Pinot ts ovt w({,}) =, w({,}) = jn g Pinottut suunntut vrkot määritllään smll tvll pitsi ttä krt ovt prj muoto (u,v) V V ivn kutn pinottmttomin suunnttujn vrkkojn tpuksss (ks. llinn kirros) Polut, syklit j puut määritllään smoin kuin pinottmttomill vrkoill CS-A11 Titorkntt j lgoritmit / Kirros 8 Alto-yliopisto / Titotkniikn litos /1

Minimlist virittäjäpuut CS-A11 Titorkntt j lgoritmit / Kirros 8 Alto-yliopisto / Titotkniikn litos /1

Trkstlln yhtnäistä pinotttu suuntmtont vrkko G = (V,E,w) Vrkon G virittäjäpuu on yhtnäinn syklitön vrkko T = (V, A, w) missä A E. Puun pino on siinä siintyvin krtn yhtnlskttu pino {u,v} A w({u,v}). Vrkon G virittäjäpuu on minimlinn (ngl. minimum spnning tr, MST) jos sn pino on pinin kikist vrkon virittäjäpuist Esimrkki: Vrkoll voi oll usit minimlisi virittäjäpuit Trkstlln vsmmnpuolist vrkko. Korosttut krt khss muuss vrkoss kuvvt kht vrkon virittäjäpuut. Kskimmäisn puun pino on 1 j s i ol minimlinn. Oiknpuolisn pino on j s on minimlinn. g g g CS-A11 Titorkntt j lgoritmit / Kirros 8 Alto-yliopisto / Titotkniikn litos 8/1

Sovllussimrkkinä voisi oll vrkko, jok kuv piirilvyä: solmut ovt komponnttj j krt kuvvt tpoj yhistää kksi komponntti virt- ti kllosignlijohotuksll. Vrkon minimlinn virittäjäpuu kuv nyt tvn yhistää kikki komponntit toisiins pinimmällä määrällä johotust. Trkstlln vin yhtnäisiä vrkkoj: i-yhtnäisill vrkoill voitisiin lsk pinimmät virittäjäpuut jokisll komponntill riksn Trkstlln myöskin vin suuntmttomi vrkkoj: suunntuill vrkoill virittäjäpuit vstv käsit on nimltään optimlinn hrutuminn (ngl. spnning rorsn o minimum wight, optiml rnhing), ktso sim. tämä wikipi-sivu koskin Emonin lgoritmi. Nämä käsittt ivät kuulu kurssin sisältöön. CS-A11 Titorkntt j lgoritmit / Kirros 8 Alto-yliopisto / Titotkniikn litos /1

Ylinn hn rtkisu virittäjäpuin löytämisksi Vrkoll voi oll ksponntilinn määrä virittäjäpuit Niinpä niin läpikäyminn minimlisn löytämisksi i ol thoks lähstymistp Minimlisn virittäjäpuun löytämisksi on myös rittäin thokkit lgoritmj Krusklin lgoritmi Primin lgoritmi Molmmt ovt hnit lgoritmj (ks. kirros ) N muoostvt puun loittmll tyhjästä krijoukost j lisäävät siihn kri hnsti kunns krt muoostvt minimlisn virittäjäpuun Tämän krijoukon A rkntmisn ikn pitään voimss surv invrintti li ominisuus: Kooin uloimmisn silmukn luss A on jonkin minimlisn virittäjäpuun krin osjoukko CS-A11 Titorkntt j lgoritmit / Kirros 8 Alto-yliopisto / Titotkniikn litos 1/1

Invrintin voimsspitämisksi lgoritmin lisäävät krijoukkoon A vin turvllisi kri (ngl. s g or A) li kri {u,v} / A, joill pät, ttä A {{u,v}} on myös jonkin minimlisn virittäjäpuun krtn osjoukko Ainkin yksi turvllinn kri löytyy in kunns A on virittäjäpuu: kosk A on jonkin minimlisn virittäjäpuun krtn osjoukko, ko. puust löytyy yksi kri, jok i ol joukoss A Trkstltvt hnt lgoritmit käyttävät ri huristiikk tällisn turvllisn krn thokksn löytämisn Ylinn vrsio psuokooin: MST-Gnri(G = (V, E, w)): A / // Th gs in th MST whil A os not orm spnning tr: lt {u,v} s g or A A A {{u,v}} rturn A CS-A11 Titorkntt j lgoritmit / Kirros 8 Alto-yliopisto / Titotkniikn litos 11/1

Nyt pitää nää khittää (ylinn) tp löytää turvllisi kri thokksti Vrkon G = (V,E,w) likkus on solmujoukon V ositus (S,V \ S) Kri ylittää likkuksn (S, V \ S) jos sn toinn päätpist on joukoss S j toinn V \ S Likkuksn ylittävä kri on kvyt jos sn pino on pinin kikist likkuksn ylittävistä krist Esimrkki: Trkstlln oikll näkyvää vrkko Likkus ({,, },{,,,g}) on sittty punisll ktkoviivll Krt {,}, {, } j {,} ylittävät likkuksn g Näistä kvyitä ovt {, } j {,} CS-A11 Titorkntt j lgoritmit / Kirros 8 Alto-yliopisto / Titotkniikn litos 1/1

Surv torm trjo hnill lgoritmill tvn löytää surv turvllinn kri Sn prustll voin ott mikä thns likkus, jok i hlkis jo muoostttu osittist virittäjäpuut j vlit sn ylittävistä krist jokin pinimmän pinon omv kri lisättäväksi puuhun Trvitn yksi lisämäärittly: likkus (S, V \ S) on yhtnsopiv krijoukon A E knss jos mikään joukon A kri i ylitä likkust Torm Olkoot G = (V, E, w) yhtnäinn, pinotttu j suuntmton vrkko. Jos A on jonkin vrkon minimlisn virittäjäpuun krtn osjoukko, (S, V \ S) on krijoukon A knss yhtnsopiv vrkon likkus j {u, v} on likkuksn ylittävä kvyt kri, niin tällöin {u, v} on turvllinn kri lisättäväksi joukkoon A. CS-A11 Titorkntt j lgoritmit / Kirros 8 Alto-yliopisto / Titotkniikn litos 1/1

Esimrkki: Trkstlln oikll olv vrkko Likkus ({,, },{,,,g}) on kuvttu punisll ktkoviivll Krt {,}, {, } j {,} ylittävät likkuksn Kvyt likkuksn ylittävät krt ovt {, } j {, } Tkillä olvn minimlisn virittäjäpuun krijoukko A on sittty korostttun Nämä krt ovt tosin rään minimlisn virittäjäpuun krtn osjoukko Likkus on yhtnsopiv krijoukon knss Tormn mukn krijoukkoon voin lisätä kumpi thns (mutti molmpi!) kvyistä krist j tuloksn on krijoukko, jok on myös rään minimlisn virittäjäpuun krtn osjoukko g CS-A11 Titorkntt j lgoritmit / Kirros 8 Alto-yliopisto / Titotkniikn litos 1/1

Toistus Olkoon A jonkin sllisn minimlisn virityspuun T krtn joukko, joll pät A A. Jos kri {u,v} A, niin s on turvllinn j toistus on vlmis. Olttn siis, ttä {u,v} / A j ttä u S j v V \ S. Krijoukoss A on yksi yksinkrtinn polku solmust u solmuun v kosk kysssä on puu. Olkoot y nsimmäinn solmu polull, jok kuuluu joukkoon V \S j x tämän ltäjä polull, jok siis kuuluu vilä joukkoon S. Kri {x, y} i kuulu joukkoon A kosk likkus on yhtnsopiv joukon knss. Kosk kri {u,v} on kvyt j {x,y} ylittää myös likkuksn, pät w({u,v}) w({x,y}). Trkstlln puut T, jok sn puust T poistmll kri {x, y} (tuloksn on kksi rillistä puut, toinn sisältää solmun u j toinn solmun v) j lisäämällä kri {u,v}. Tämän puun T pino on korkintn puun T pino j kosk T oli minimlinn, myös T on j kri {u,v} on turvllist lisätä joukkoon A. CS-A11 Titorkntt j lgoritmit / Kirros 8 Alto-yliopisto / Titotkniikn litos 1/1

Krusklin lgoritmi Krusklin lgoritmi löytää survn turvllisn krn survll mnttlyllä: luss kikki krt järjsttään pinon suhtn nousvn järjstyksn j krt käyään läpi tässä järjstyksssä j lisätään kri krijoukkoon A jos s yhistää kksi puut krijoukon kovmss mtsässä Jott voin nopsti päättää, yhistääkö kri kksi puut, pitään puin solmujoukkoj rillistn joukkojn titorkntss ( union-in, kirros ) Kun kri lisätään, puut yhistyvät yhksi isommksi puuksi j yhisttään puin solmujoukot Likkust i vrsinissti muoostt missään vihss vn kksi puut yhistävän krn {u, v} oslt likkus voisi oll s, joss solmun u sisältävä puu on toisll puolll j kikki muut solmut toisll. Kosk krn pino on pinin niistä, jotk yhistävät kksi puut, kri on kvyt tässä likkuksss. CS-A11 Titorkntt j lgoritmit / Kirros 8 Alto-yliopisto / Titotkniikn litos 1/1

Psuokooin: MST-Kruskl(Q = (V, E, w)): A / or h vrtx v V: // All vrtis r initilly in thir own unit sts MAKE-SET(v) sort th gs E into nonrsing orr y thir wight or h g {u, v} E in nonrsing wight-orr: i FIND-SET(u) FIND-SET(v): // Ar u n v in irnt sts? A A {{u,v}} // Ror th mrg g UNION(u, v) // Mrg th sts rturn A Algoritmin phimmn tpuksn jojksi sn O( E log E ) jos totuttn rillistn joukkojn oprtiot kirroksn tspinottuill rillistn joukkojn mtsillä krtn järjstäminn on its siss lgoritmin ik vivin os symptoottisss trkstluss Kosk E V j tätn log E log V, voin phimmn tpuksn joik kirjoitt myös muooss O( E log V ) CS-A11 Titorkntt j lgoritmit / Kirros 8 Alto-yliopisto / Titotkniikn litos 1/1

CS-A11 Titorkntt j lgoritmit / Kirros 8 Alto-yliopisto / Titotkniikn litos 18/1 Esimrkki: Krusklin lgoritmin käyttäminn Trkstlln oiknpuolist vrkko Vrkot ll näyttävät (korosttut krt) muoostttvn virittäjäpuun jokisn union-oprtion kutsun jälkn Kolmnnn osittisn virittäjäpuun smisksi toisst likkus voisi oll ({,,,,g},{,}). Krn {, } sijn olisi voitu vlit myös kri {, } j s toisnlinn lopputulos. g g g g g g g

Primin lgoritmi Primin lgoritmi on myös hn mutt vlits survn lisättävän krn rilill S pitää yllä krn vlinnn prustlv likkust: nsimmäisllä puolll on koko sn htkinn osittinn virittäjäpuu j toisll ts puuhun vilä kuulumttomt solmut Algoritmi käynnisttään milivltisst lähtösolmust Jokisll sklll vlitn milivltinn likkuksn ylittävä kvyt kri j tätn sn likkuksn toisll puolll olv solmu yhistyy virittäjäpuuhun j siirtyy likkuksn nsimmäisn puoln Jott löyttäisiin tällinn kvyt kri nopsti, jokisn likkuksn toisn puoln solmuun on liittty minimiprioritttijonon vimn tito pinimmän pinon omvst krst, jok siihn tul nsimmäisltä puollt Kun solmu siirrtään likkuksn nsimmäisn puoln, sn npurin ttriuuttj päivittään CS-A11 Titorkntt j lgoritmit / Kirros 8 Alto-yliopisto / Titotkniikn litos 1/1

Psuokooin: MST-Prim(G = (V,E,w), root): or h vrtx v V: v.ky v.prnt NIL root.ky = Q V // Min-priority quu (w.r.t. th ky) o th vrtis not yt in th MST A / // Th gs in th MST whil Q /: lt u vrtx in Q with th smllst ky rmov u rom Q i u root: A A {{u.prnt,u}} or h vrtx v with n g {u,v} E: i v Q n w({u,v}) < v.ky: v.prnt u v.ky w({u,v}) rturn A CS-A11 Titorkntt j lgoritmit / Kirros 8 Alto-yliopisto / Titotkniikn litos /1

Esimrkki: Primin lgoritmin käyttäminn Trkstlln oiknpuolist vrkko Vrkot ll näyttävät muoostttvn virittäjäpuun (korosttut krt) jokisn whil-silmukn kooin suorittmisn jälkn; vihrät solmut ovt likkuksn nsimmäinn puoli li n, jotk ivät ol joukoss Q g g g g g g g g CS-A11 Titorkntt j lgoritmit / Kirros 8 Alto-yliopisto / Titotkniikn litos 1/1

Ajoik-nlyysiä: Olttn prioritttijonot tootuttuiksi koill (kirros ) Alustusvih, muknlukin prioritttijonon lustus, voin thä jss O( V ) whil-silmukk jtn V krt kosk yksi solmu poisttn jonost Q jokisll krrll Priorittijonon pinimmän lkion poistminn vi jn O(log V ) Joukko A voin totutt listn ti tulukkon, joss on V 1 lkiot krn lisääminn siihn vi vkiojn Jokist krt trkstlln khsti, krrn kumpkin päätpistttä käsitltässä Solmujn vimi päivittään siis yhtnsä korkintn E krt, jokisn päivityksn vissä jn O(log V ) Kokonisjoik on siis O( V log V + E log V ). Tämä on O( E log V ) kosk E V 1 yhtnäisill vrkoill CS-A11 Titorkntt j lgoritmit / Kirros 8 Alto-yliopisto / Titotkniikn litos /1

Pini sivupolku: Stinr-puut Kutn llä nähtiin, minimlisi virittäjäpuit voin löytää hyvin thokksti Mutt jos thään hyvin pini muutos onglmnkuvuksn, sn onglm, joll i titä mitään lgoritmi, jok toimisi phimmsskin tpuksss thokksti (li polynomisss jss). Its siss uskotn (mutti ol vilä voitu toist), tti sllist thokst lgoritmi ol s olmss. Trkstlln siis minimlistn virittäjäpuin tsimisn sijn minimlistn Stinr-puin tsimistä Annttun yhtnäinn, pinotttu suuntmton vrkko G = (V, E, w) j päätsolmujn osjoukko S V. Vrkon minimlinn Stinr-puu on syklitön livrkko G = (V,A,w), A E, missä (i) kikki päätsolmut ovt svutttviss toisistn j (ii) jonk krtn kumultiivinn pino {u,v} A w({u,w}) on mhollisimmn pini. Toisin snon tsitään minimlisn pinoist puut, jok yhistää kikki päätsolmut mutt jonk i trvits pittää kikki solmuj CS-A11 Titorkntt j lgoritmit / Kirros 8 Alto-yliopisto / Titotkniikn litos /1

Esimrkki: Trkstlln ll vsmll olv vrkko, missä vihrät solmut {,, h, k} ovt päätsolmuj. Sn oikll puolll on vrkon Stinrpuu (korosttut krt), jonk pino 1. 1 1 1 1 g 1 1 g h i j 1 k h i j 1 k Virittäjäpuin j Stinr-puin rovisuun sittämisksi ll olvn vrkon korosttut krt kuvvt smn vrkon minimlisn virittäjäpuun. 1 1 1 g h i j 1 k CS-A11 Titorkntt j lgoritmit / Kirros 8 Alto-yliopisto / Titotkniikn litos /1

Sovllussimrkkinä voisi toimi immn piirilvysimrkin muunnos. Nyt päätsolmut kuvvt komponnttj, muut solmut kuvvt piirilvyn muit välipistitä, join kutt johotus voin vtää, j krt kuvvt jälln mhollisuuksi yhistää solmujn kuvmi komponnttj j pistitä johotuksll Nyt thotn löytää minimlinn Stinr-puu virittäjäpuun sijn kosk thotn vin yhistää komponntit toisiins, mhollissti joinkin välipistin kutt, mutt kikkiin välipistisiin i trvits vtää johotust CS-A11 Titorkntt j lgoritmit / Kirros 8 Alto-yliopisto / Titotkniikn litos /1

Minimlisn Stinr-puun löytäminn on simrkki niin snotust NP-kovst onglmst Sllisill onglmill i titä lgoritmj, joill olisi in polynominn joik suhtss syöttn kokoon Minimlistn Stinr-puin lskmisn on olmss lgoritmj, join joik on (i) ksponntilinn päätsolmujn joukon S kokoon mutt (ii) polynominn suhtss vrkon kokoon. S on tätn ns. ix-prmtr trtl -onglm, ktso sim. nämä sitlmäklvot. Nämä ivät kuulu kurssin sisältöön. CS-A11 Titorkntt j lgoritmit / Kirros 8 Alto-yliopisto / Titotkniikn litos /1

Lyhimmät polut CS-A11 Titorkntt j lgoritmit / Kirros 8 Alto-yliopisto / Titotkniikn litos /1

Monss sovlluksss olln kiinnostunit lyhimmistä poluist khn solmun välillä Esimrkiksi: mikä on khn osoittn täisyys (ti lyhin joik) krtss kun krtn pinot ovt täisyyksiä (joikoj)? Pinottuiss vrkoiss puhutn himn hrhnjohtvsti lyhyimmistä poluist kun trkoittn oiksti polkuj, jonk pino on pinin (ikä siis polkuj, joiss on mhollisimmn vähän solmuj) (kuv: puli omin, läh) CS-A11 Titorkntt j lgoritmit / Kirros 8 Alto-yliopisto / Titotkniikn litos 8/1

Polun p = (v,v 1,...,v k ) pino on sn krtn pinojn summ: w(p) = k 1 i= w({v i,v i+1 }) Khn solmun, u j v, lyhimmän polun pino δ(u, v) on kikkin solmust u solmuun v johtvin polkujn pinojn minimi, ti kun solmust u i ol yhtään polku solmuun v Esimrkki: Trkstlln oiknpuolist vrkko Lyhyimmän polun pino δ(, ) solmust solmuun on polun (,,, ) pino δ(,) = 1 1 1 CS-A11 Titorkntt j lgoritmit / Kirros 8 Alto-yliopisto / Titotkniikn litos /1

Trkstlln survss yhstä lähtösolmust lähtvin lyhimpin polkujn (ngl. singl-sour shortst pths) onglm: Annttun pinotttu suunnttu vrkko j lähtosölmu s Etsi lyhin polku solmust s jokisn solmuun, jok on svutttviss solmust s Oltisiin voitu trkstll myös khn solmun välisn lyhimmän polun (ngl. singl-pir shortst pth) onglm: Annttun pinotttu suunnttu vrkko j kksi sn solmu u j v Etsi lyhin polku solmust u solmuun v Tunntuill jälkimmäisn onglmn rtkisvill lgoritmill on sm symptoottinn phimmn tpuksn ikvtivuus kuin prhill nsimmäisn onglmn rtkisvill lgoritmill Jtkoss sitttävät lgoritmit rovt pääsääntöissti jojltn j siinä, pystyvätkö n käsittlmään ngtiivisi pinoj krill CS-A11 Titorkntt j lgoritmit / Kirros 8 Alto-yliopisto / Titotkniikn litos /1

Joitin lyhimpin polkujn ominisuuksi Lyhimmillä poluill on optimlisn lirkntn ominisuus: lyhimpin polkujn ospolut ovt myös lyhimpiä polkuj Toisin snon: jos (v,v 1,...,v i,...,v k ) on lyhin (li pinimmän pinon omv) polku solmust v solmuun v k, niin (v,v 1,...,v i ) on lyhin polku solmust v solmuun v i j (vi,...,v k ) on lyhin polku solmust v i solmuun v k CS-A11 Titorkntt j lgoritmit / Kirros 8 Alto-yliopisto / Titotkniikn litos 1/1

Ngtiivist pinot krill Sykli p = (v,...,v k,v ) on ngtiisn pinon sykli jos w(p) < Jos mikä thns polku solmust u solmuun v sisältää ngtiivisn pinon syklin, niin lyhimmän polun pino solmust u solmuun v i ol hyvin määritlty j mrkitään δ(u,v) = Esimrkki: Oiknpuolisss vrkoss on ngtiivisn pinon sykli (,,,,) Lyhimmän polun pino solmust solmuun i ol hyvin määritlty kosk sykliä voin toist milivltinn määrä j vst sn jälkn suoritt lipolku (,, ) - 1-1 - CS-A11 Titorkntt j lgoritmit / Kirros 8 Alto-yliopisto / Titotkniikn litos /1

Lyhyimmän polun pinon ylärjt j löysääminn Jtkoss sitttävät lgoritmit pitävät jokisll solmull v muistiss lyhimmän polun pinon ylärj v.ist Tämä ylärj v.ist on in suurmpi kuin lyhimmän polun pino lähtösolmust s solmuun v: δ(s,v) v.ist j lgoritmin lopuss, jos vrkoss i ol ngtiivisn pinon sykljä, yhtnvä lyhimmän polun pinon knss:v.ist = δ(s, v) Lyhimmät polut muoostvt lähtösolmuun juurruttun lyhimpin polkujn puun: solmun v ltäjä tllttn ttriuttiin v.pr Aluss ylärjt ovt kikill solmuill pitsi lähtösolmull s rvo on ltäjättriuutit sttn rvoon NIL Alustus psuokooin: Initiliz-singl-sour(G, s): or h vrtx v V: v.ist = v.pr = NIL s.ist = CS-A11 Titorkntt j lgoritmit / Kirros 8 Alto-yliopisto / Titotkniikn litos /1

Jos krll (u, v) pät, ttä u.ist + w(u, v) < v.ist, niin jtlln krll olvn jännitystä j voin suoritt löysnnys (ngl. rlxtion) päivittämällä v.ist = u.ist + w(u, v) Muuttn smll ltäjättriuutin rvo kosk tunntuin lyhin polku solmuun v tul nyt solmust u Psuokooin: Rlx(u, v): i u.ist + w(u,v) < v.ist: v.ist = u.ist + w(u,v) v.pr = u Tämä on ino pikk, missä ylärjn rvo muuttn Esitttävät lgoritmit rovt siinä, missä järjstyksssä j kuink mont krt löysnnystä suorittn kunns ylärjt ovt trkkoj Slvästikin löysnnys säilyttää ylärjominisuun: Jos δ(s, v) v.ist pät kikill solmuill v nnn jonkin krn löysnnystä, niin sm pät myös löysnnyksn jälkn CS-A11 Titorkntt j lgoritmit / Kirros 8 Alto-yliopisto / Titotkniikn litos /1

Dijkstrn lgoritmi Ahn lgoritmi lähtösolmust lähtvin lyhimpin polkujn lskmisksi Huom: krin pinojn tul oll i-ngtiivisi I: Alusttn ylärj-rvot yllä minitull tvll: lähtösolmull s j muill solmuill Jokisll V itrtioll Trkstlln solmu u jot i oll vilä käsitlty j joll on pinin ylärj-rvo (jok on its siss jo trkk lyhimmän polun pino). Ensimmäisllä itrtioll trkstlln siis lähtösolmu s. Trkstlln jokist solmust lähtvää krt j löysnntään mikäli mhollist. Eli päivittään krn mlisolmun ylärj-rvo mikäli solmust u solmuun v kulkmll sn lyhympi polku kuin imp prst rittiä pitkin. CS-A11 Titorkntt j lgoritmit / Kirros 8 Alto-yliopisto / Titotkniikn litos /1

Psuokooin: Dijkstr(G = (V,E,w), s): Initiliz-singl-sour(G, s) lt S = / lt Q = V // Min-priority quu with th istn ttriut s th ky whil Q /: lt u vrtx with minimum u.ist in Q rmov u rom Q lt S = S {u} or h vrtx v with (u,v) E: Rlx(u, v) CS-A11 Titorkntt j lgoritmit / Kirros 8 Alto-yliopisto / Titotkniikn litos /1

Esimrkki: Dijkstrn lgoritmin käyttäminn Trkstlln oiknpuolist vrkko. Kuvn nnottiot ilmisvt ylärj-ttriuuttin rvot lustuksn jälkn. Lähtösolmu on All olvt vrkot näyttävät ylärj-rvot j rkntuvn lyhimpin polkujn puun (korosttut krt) jokisn whil-silmukn kooin suorituksn jälkn 1 1 1 1 1 1 8 1 1 1 1 1 1 1 8 1 1 1 1 8 1 1 8 1 1 8 1 1 1 CS-A11 Titorkntt j lgoritmit / Kirros 8 Alto-yliopisto / Titotkniikn litos /1

Phimmn tpuksn joik-nlyysiä: Olttn prioritttijonot totuttuiksi kkojn vull Alustusvih voin thä jss O( V ) Priorittijonon lustus vi suorviivisll tvll jn V log V mutt voitisiin hlposti thä myös jss O( V ) whil-silmukn kooi jtn korkintn V krt, krrn jokisll vrkon solmull u Pinimmän ylärjn omvn solmun u hku j poisto prioritttijonost vi jn O(log V ) Jokist krt solmust u trkstlln krrn Krn (u,v) löysnnys vi jn O(log V ): jos mlisolmun ylärjn rvo pinnntään, prioritttijono pitää päivittää kosk ylärj toimii sn vimn Kokonisjoik on siis O( V + V log V + V log V + E log V ) = O(( V + E )log V ). Vrkoill, joiss kikki solmut ovt svutttviss lähtösolmust, tämä on O( E log V ) kosk E V 1 tämänlisill vrkoill CS-A11 Titorkntt j lgoritmit / Kirros 8 Alto-yliopisto / Titotkniikn litos 8/1

Oikllisuun osoittmisksi riittää surv invrintti: jokisn itrtion jälkn pät, ttä jos lähtösolmust s on pulku solmuun t j t S, niin t.ist = δ(s,t) Tämä voin toist inuktioll joukon S koon suhtn: 1. Prustpus: kun S = 1, niin S = {s} j s.ist = δ(s,s) = (krn (s, s) solmust s itsnsä löysnnys i voi muutt rvo s.ist lähtörvost kosk krin pinot ovt i-ngtiivisi). Inuktiohypotsi: invrinnti pät kun S = k jollkin k 1. Inuktioskl: lkoon u jokin solmu, jok i kuulu joukkoon S j joll on pinin ylärj-rvo u.ist sllistn solmujn joukoss Jos u.ist =, niin mistään joukon S solmust x i ol krt mihinkään solmuun y / S kosk kikki joukon S solmuist lähtviä kri on jo löysnntty. Tätn δ(s, u) = j invrintti pät itrtion k + 1 jälkn kun S {u}. CS-A11 Titorkntt j lgoritmit / Kirros 8 Alto-yliopisto / Titotkniikn litos /1

Jtkuu: Muutoin u.ist. Nyt u.pr S j on olmss polku (s,..., u.pr, u) pinoll = u.ist = δ(s, u.pr) + w(u.pr, u) lähtösolmust s solmuun u. Tämä on lyhin polku lähtösolmust s solmuun u. Olttn nimittäin, ttä näin i olisi j ttä δ(s,u) < j lyhin polku on its siss (s,..., x, y,...u), missä y on nsimmäinn solmu polull jok i kuulu joukkoon S. Kosk (s,...,x,y,...u) on lyhin j kikki pinot krill ovt i-ngtiivisi, δ(s, y) < j δ(s,x) < w(x,y). Kosk x S, niin x.ist = δ(s,x) inuktiohypotsin prustll j krt (x)y on löysnntty jo immin; tätn y.ist = δ(s, y) <. Mutt tässä tpuksss u i ollutkn pinimmän ylärjn omv solmu joukkoon S kuulumttomin solmujn joukoss kutn luss vimm. Stiin ristiriit j tätn u.ist = δ(s, u) j (s,..., u.pr, u) on lyhin polku lähtösolmust s solmuun u. Kun solmu u on lisätty joukkoon S, krn (u,v) E jokklin v S i voi muutt ylärj-rvo v.ist kosk v.ist = δ(s, v) pät inuktiohypotsin tki. Tätn invrintti pät myös itrtion k + 1 jälkn kun S {u}. CS-A11 Titorkntt j lgoritmit / Kirros 8 Alto-yliopisto / Titotkniikn litos /1

Esimrkki: Ngtiivistn pinojn onglm Trkstlln ll olv vrkko, joss on ngtiivisn pinon kri Solmust lähtviä kri trkstlln vin krrn silloin kun solmu on juuri poistttu jonost Q Ngtiivistn pinojn tpuksss ylärj-rvo i nyt kuitnkn vilä täsmää lyhimmän polun pinon knss. Tätn solmujn j ylärjt ivät myöskään stu trkoiksi ikä niitä päivittä myöhmmin solmun ylärjn lskiss 1 1 8 1-8 1-8 1-8 1 8 1 8 1 8 1-8 1-8 1-8 CS-A11 Titorkntt j lgoritmit / Kirros 8 Alto-yliopisto / Titotkniikn litos 1/1

Bllmnin Forin lgoritmi Toinn lgoritmi nntust lähtösolmust lkvin lyhimpin polkujn lskmisksi Ngtiivist pinot krill ovt nyt sllittuj Huom, jos vrkoss on lähtösolmust svutttv ngtiivisn pinon sykli I: Löysnntään kikki kri V 1 krt Jos löysnnys olisi vilä tämän jälknkin mhollist, vrkoss on svutttv ngtiivisn pinon sykli. Muutoin ylärj-rvot ovt yhtnviä lyhimmän polun pinon knss j ltäjättriuutist sn lyhimpin polkujn puu Dijkstrn lgoritmin kohll nähty ngtiivistn pinojn onglm korjtn siis löysntämällä solmust lähtviä kri mont krt CS-A11 Titorkntt j lgoritmit / Kirros 8 Alto-yliopisto / Titotkniikn litos /1

Psuokooin: Bllmn-For(G, s): Initiliz-singl-sour(G, s) or i = 1 to V 1: or h g (u,v) E: Rlx(u, v) or h g (u,v) E: i u.ist + w(u,v) < v.ist: rturn "Th grph hs ngtiv-wight yl" rturn "No ngtiv-wight yls, shortst-pth wights ry" Opitmointi: jos nsimmäisn or-silmukn jonkin itrtiokrrn mikään krn löysnnysyritys i lsk ylärj-rvo, sm toistuu survillkin itrtioill j silmukn suoritus voin loptt. CS-A11 Titorkntt j lgoritmit / Kirros 8 Alto-yliopisto / Titotkniikn litos /1

Esimrkki: Bllmnin Forin lgoritmi, i ngtiivisi pinoj Trkstlln oiknpuolist vrkko; solmun ylärj-rvo lustuksn jälkn on sittty sn virssä 1 1 1 Vrkot ll näyttävät ylärj-rvot j muoostuvt lyhimmät polut (korosttut krt) jokisn nsimmäisn or-silmukn suorituksn jälkn 1 1 1 1 11 1 1 8 1 11 1 1 8 1 Ylärj-rvot vkiintuvt jo kolmnnn itrtion jälkn Tässä krt käyään läpi järjstyksssä (,), (,), (,), (, ), (,), (,), (, ), (,), (, ) Optimlisll järjstyksllä yksi itrtio riittäisi smn lopputilntn svuttmisksi: (,), (,), (,), (, ), (, ), (,), (, ), (,) CS-A11 Titorkntt j lgoritmit / Kirros 8 Alto-yliopisto / Titotkniikn litos /1

Esimrkki: Bllmnin Forin lgoritmi, ngtiivisi pinoj krill Trkstlln oiknpuolist vrkko, jonk krill on ngtiivisi pinoj mutt joss i ol ngtiivisn pinon sykliä 1-8 All olvt vrkot kuvvt jälln lgoritmin suoritust 1 8 1 1 1-8 1-8 1-8 Ylärj-rvot vkiintuvt jo kolmnnn itrtion jälkn Tässä krt käyään läpi järjstyksssä (,), (,), (,), (,), (,) Optimlisll järjstyksllä yksi itrtio riittäisi: (, ), (, ), (, ), (,), (,) CS-A11 Titorkntt j lgoritmit / Kirros 8 Alto-yliopisto / Titotkniikn litos /1

Esimrkki: Bllmnin Forin lgoritmi, ngtiivisn pinon sykljä Trkstlln oikpuolist vrkko, joss on ngtiivisn pinon sykli All olvt vrkot kuvvt jälln lgoritmin suoritust - 1 1-1 - - 1 8-1 - - 1-1 - - 1 8-1 - - 1-1 -1-1 1-1 - - 1 - - 1 - -1 - - Lopuss.ist + w(,) = + = 1 <.ist = j tätn huomtn vrkon sisältävän ngtiivisn pinon syklin CS-A11 Titorkntt j lgoritmit / Kirros 8 Alto-yliopisto / Titotkniikn litos /1

Phimmn tpuksn joik-nlyysiä: Alustusvih vi jn O( V ) Ensimmäisn or-silmukn kooi jtn V 1 krt, jokinn itrtio vi jn O( E ) Toisn or-silmukn kooi jtn korkintn E krt, jokinn itrtio vi vkiojn Kokonisjoik on O( V E ) CS-A11 Titorkntt j lgoritmit / Kirros 8 Alto-yliopisto / Titotkniikn litos /1

Esimrkki: vluuttkupp-ritrsin tsintä Annttun vihtokurssj ri vluuttojn välill Onko mhollist viht rh vluutst toisn niin, ttä lopuksi on stu nmmän sm vluutt kuin millä loitttiin? Eli onko vihtokurssj kuvvss vrkoss sykliä, jonk kripinojn tulo on suurmpi kuin 1? Tulon x 1 x x n rvo on suurmpi kuin 1 silloin kun sn logritmin rvo on suurmpi kuin USD log (x 1 x x n ) = log (x 1 )+log (x )+...+log (x n ) USD log (x 1 ) + log (x ) +... + log (x n ) > kun log (x 1 ) + log (x ) +... + log (x n ) <.8 EUR 1..1 1...1 SEK EUR. -.1. -.1 -.. SEK Korvtn jokinn vihtokurssi α siis rvoll log α j pyöristtään himn ylöspäin mitättömän pintn voittojn (j pyöristysvirhin) liminoimisksi Tuloksn stvss vrkoss on ngtiivisn pinon sykli jos lkupräisssä vihtokurssivrkoss on ritrsin mhollisuus Esimrkissä ngtiivisn pinon sykli vst prosntin tuotto (.8 1..1 = 1.) trjov vihtoskvnssiä CS-A11 Titorkntt j lgoritmit / Kirros 8 Alto-yliopisto / Titotkniikn litos 8/1

Lyhimmät polut syklittömissä vrkoiss Syklittömill pinottuill j suunntuill vrkoill voin löytää hlposti järjstys krill niin, ttä löysntäminn voin thä optimlissti Lyhimpin polkujn lgoritmi: Lsktn vrkoll topologinn järjstys llisllä kirroksll sittyllä mntlmällä (kripinoj i huomioi tässä vihss) Alusttn ylärj-rvot j ltäjättriuutit normliin tpn Alkn lähtösolmust s j jtkn topologisn järjstykn mukn, löysnntään vuorolln jokisst solmust lähtviä kri Kosk kikki solmut j krt millä thns polull lähtösolmust kulloisn trkstltvn solmuun u on jo trkstltu topologisn järjstyksn tki, pät u.ist = δ(s, u) kun solmust u lähtviä kri ltn trkstll Topologinn järjstys voin lsk jss O( V + E ) Kokonisjoik on myös O( V + E ) CS-A11 Titorkntt j lgoritmit / Kirros 8 Alto-yliopisto / Titotkniikn litos /1

Esimrkki: Trkstlln oiknpuolist syklitöntä vrkko Huom, ttä siinä on ngtiivisn pinon kri 1-8 Eräs topologinn järjstys sill on,,,, Aloittn lähtösolmust j löysnntään solmuist lähtviä kri topologisss järjstyksssä. Suoritus tn ll kuvtull tvll: 1 1 1-8 1-8 1-8 1 1 1 1-8 1-8 1-8 CS-A11 Titorkntt j lgoritmit / Kirros 8 Alto-yliopisto / Titotkniikn litos /1

Joitin lisälinkkjä All olvt ivät kuulu kurssin sisältöön Kirjn Introution to Algorithms, r. (onlin vi Alto li) luvuss sittään lgoritmj, joill voi lsk lyhimmät polut kikkin vrkon solmuprin välill Vikk sitttyjn lgoritmin symptoottist ikvtimukst ovt hyviä, lyhimpin polkujn lgoritmin optimointi on tärkää suurill vrkoill kutn krtoill MIT. OCW vio on sping up Dijkstr Googl thtlk on st rout plnning Dlling t l: Enginring Rout Plnning Algorithms Solmujn välistn polkujn tsimisn on myös muit hkustrtgioit kutn sim A*, prs-nsin hku jn; näitä voi trkstll vikkp tämän visulisointityöklun vull CS-A11 Titorkntt j lgoritmit / Kirros 8 Alto-yliopisto / Titotkniikn litos 1/1