Kurssiaiheet 10, 11 ja 12

Kurssiaihe 10

Itseopiskelu

Viikon aiheet: (i) Graafit (ii) Leveys-ensin-haku (BFS), (iii) Syvyys-ensin-haku (DFS), (iv) Graafien toteuttaminen

Aiheiden opetusvideot ja kalvot:

Leveys-ensin-haku (BFS)

Syvyys-ensin-haku (DFS)

Graafien toteuttaminen

Mitkä seuraavista väitteistä ovat totta?
Mitkä seuraavista väitteistä yhtenäisestä graafista ovat totta?
Kun tutkitaan suunnattua graafia, missä seuraavista tilanteista leveys-ensin-haku (BFS) olisi hyödyllinen?
Oletetaan, että suunnatulla graafilla on 4 solmua, \(s\), \(a\), \(b\) ja \(c\). Oletetaan myös, että graafilla on kaikki mahdolliset kaaret paitsi 2, kaari solmusta \(s\) solmuun \(a\) ja kaari solmusta \(a\) solmuun \(b\). Mitkä ovat etäisyydet solmusta \(s\) kaikkiin muihin solmuihin?
Oletetaan, että BFS-algoritmi aloittaa solmusta \(s\). Oletetaan, että \(x\) on toinen solmu ja on olemassa reitti solmusta \(s\) solmuun \(x\). Miksi BFS-algoritmi määrittää eri värejä solmulle \(x\)?
Oletetaan, että suunnattu graafi syötetään BFS-algoritmiin. Oletetaan myös, että BFS-algoritmi aloittaa solmusta \(s\) ja on olemassa reitti solmusta \(s\) jokaiseen muuhun solmuun. Kun BFS-algoritmi on lopettanut, mitkä seuraavista ovat totta? (Huomaa: useampi kuin yksi väite voi olla totta.)
Kun tutkitaan suunnattua graafia, missä seuraavista tilanteista syvyys-ensin-haku (DFS) olisi hyödyllinen?
DFS-algoritmissa käytetään pinoa. Oletetaan, että \(x\) ja \(y\) ovat kaksi eri solmua suunnatussa graafissa. Minkä säännön mukaan DFS-pino toimii?
Oletetaan, että graafi tallennetaan C++:ssa. Oletetaan, että solmun tiedot tallennetaan struct:ssa, jossa solmun naapurisolmut tallennetaan joko vector-säiliössä tai unordered_set-säiliössä. Missä tilanneessa on järkevämpi käyttää unordered_set-säiliötä?
Kun tallennetaan graafi C++:ssa, mikä seuraavista väitteistä on totta?

Lisäinformaatiota aiheesta:

Viikko10 - Sanasto

Viikkoharjoitusten palautettavat kotitehtävät

Tällä viikolla palautettavat tehtävät

Itseopiskelu

Viikon aiheet: (i) Painotetut graafit (ii) Halvimmat reitit: Dijkstran algoritmi (iii) Halvimmat reitit: A-tähti ja heuristiikat (iv) Graafihakujen tehokkuus

Aiheiden opetusvideot ja kalvot:

Painotetut graafit ja niiden toteuttaminen

Halvimmat reitit: Dijkstran algoritmi

Halvimmat reitit: A-tähti ja heuristiikat

Painotetut graafit ja niiden toteuttaminen

Painotettu graafi eroaa tavallisesta graafista siinä, että …

Oletetaan, että C++:ssa jokaiselle solmulle \(x\) yhtenäisessä painotetussa graafissa käytämme seuraavaa vektoria naapurisolmujen ja kunkin kaaren painon tallentamiseen.

std::vector< std:pair<Node*,Weight>> to_neighbours;

Oletetaan, että käytämme solmun \(N\) vektoria to_neighbours. Mitä a sisältää sen jälkeen, kun seuraava rivi on laskettu?

auto a = to_neighbours[0].second;

Dijkstran algoritmi

Dijkstran algoritmi muistuttaa eniten mitä seuraavista algoritmeista?
Oletetaan, että Dijkstran algoritmi käyttää solmua \(s\) lähtösolmuna. Kun Dijkstran algoritmin prioriteettijonosta poimitaan solmu \(v\), jolla on prioriteetti \(v.prior\), mikä on prioriteetin \(v.prior\) merkitys?
Oletetaan, että Dijkstran algoritmi käyttää solmua \(s\) lähtösolmuna. Mikä on proseduurin Relax tehtävä?
Dijkstran algoritmissa jokaiseen solmuun \(x\) liittyy monia suureita tai muuttujia. Mikä seuraavista ei muutu Dijkstran algoritmin suorittamisen aikana?

A-tähti algoritmi

Oletetaan, että on olemassa suunnattu painotettu graafi ja lähtösolmu \(s\). Mikä seuraavista kuvaa yhtä tapaa, jolla A-tähden algoritmi ja Dijkstran algoritmi eroavat toisistaan?
A-tähti algoritmissa lasketaan jotain, jota ei lasketa Dijkstran algoritmissa. Mikä se on?
Muotoile kurssin kannalta keskeinen kysymys, johon tämän viikon videot antavat vastauksen.
Minkä videon aiheesta pitäisi erityisesti keskustella keskustelutilaisuudessa?
Oliko videoiden sisällössä jotain erityisen vaikeaa? Entä mielenkiintoista? Jotain josta haluaisit oppia lisää?

Lisäinformaatiota aiheesta:

Verkkosivu, jossa voit visualisoida eri graafihakualgoritmien edistymistä

Viikko11 - Sanasto

Kurssiaiheiden palautettavat kotitehtävät

Tällä viikolla palautettavat tehtävät