TIEP10002018 Tehtävän 4:2 ratkaisu

Dijkstran algoritmia käyttäen saadaan lyhin etäisyys solmusta 1 solmuihin 8 ja 9 siten, että kuvataan verkko ensin etäisyysmatriisina (vasemmalla). Aloitetaan Dijkstran algoritmi (oikeanpuoleinen kuva) solmusta 1 merkitsemällä sen pysyväksi tunnukseksi (alleviivattu 0) nolla ja ensimmäiselle riville etäisyydet muihin verkon solmuihin. Mikäli yhteyttä johonkin solmuun ei ole niin arvoksi merkitään ääretön (°). Seuraavalle riville valitaan uusi pysyvä tunnus, joksi tulee yksi ensimmäisen rivin pienimmistä luvuista. Tässä siis 2. Verkossa tämä tarkoittaa siirtymistä solmuun 2. Niitä solmuja, jotka ovat jo olleet pysyvinä tunnuksina ei enää käsitellä jatkossa. Jäljellä olevista solmuista on yhteys solmuun 2 matriisin (tai verkkokuvan) mukaan solmuilla 3 ja 7. Etäisyydet ovat 3 ja 4. Toisen rivin vaihtuvat tunnukset saadaan seuraavasti Valitsemalla pienempi lukuparista { (pysyvä tunnus) + (etäisyys), (ensimmäisen rivin arvo)}. Tässä tapauksessa 3:n vaihtuva tunnus pienenee 4:ksi koska

9 > 2 + 2 = 4 ja 7:n vaihtuva tunnus pienenee äärettömästä 7:ksi koska 2 + 5 = 7 < ääretön. Näin jatketaan kunnes kaikkien solmujen pysyvät tunnukset (alleviivatut luvut) on laskettu kuten oikeanpuoleisesta kuvasta näkyy. Kuvasta nähdään, että lyhimmän polun pituus solmuun 8 on 14 ja solmuun 9 on 12.

Mitä kautta nämä polut kulkevat saadaan laskemalla takaperoisesti kuten alla oleva kuva osoittaa. Aloitetaan solmusta 9 ja lasketaan pysyvien tunnusten erotus niihin solmuihin, joista siihen voi päästä. Siis erotus lasketaan solmuihin 7, 6 ja 8. Tätä erotusta verrataan solmujen väliseen etäisyyteen. Jos se on sama niin tämä naapurisolmu kuuluu lyhimpään polkuun, muutoin ei. Sitten jatketaan samalla tavoin niillä solmuilla, joiden kohdalla tulos oli myönteinen. Tässä tapauksessa tuo solmu on siis 6. Kuten kuvasta näkyy niin tällaisia solmuja voi olla useampiakin, jolloin polku haarautuu. Lyhin polku solmuun 8 on laskettu vain niin pitkälle kuin se yhtyy solmun 9 lyhimpään polkuun. Lopullisessa vastauksessa saadaan solmuun 9 polut 1-2-3-5-6-9 ja

1-4-5-6-9 sekä solmuun 8 polut 1-2-3-5-8 ja 1-4-5-8.

  

5.-6. x1 = 3 ja 4/7, x2 = 3 ja 6/7 ja z = 26 ja 3/7