Tik-76.123 Algoritmien suunnittelu ja analyysi Tenttitehtävät 13.12.1995

1. Selvitä Fibonacci-keon (Fibonacci heap) rakenne ja keko-operaatioiden suoritus Fibonacci-keossa.

2. Tarkastellaan suunnatun verkon syvyyssuuntaista etsintää.

a) Määrittele käsitteet puukaari, etenevä kaari, takautuva kaari ja poikittaiskaari.

b) Kirjoita algoritmi, joka suorittaa verkon syvyyssuuntaisen etsinnän ja tulostaa kaikki takautuvat kaaret.

3. Union-Find -rakenteessa Union suoritetaan korkeuden mukaan ja Find suoravuvaisesti polkua tiivistämättä. Osoita, että Find vaatii pahimmassa tapauksessa ajan O(log n), missä n on rakenteessa olevien affloiden määrä.

4. a) Selvitä, mitä tarkoitetaan hajoita ja hallitse -periaatteella algoritmien suunnittelussa.

b) Anna algoritmi, joka määrää n-alkioisen lukujoukon maksimin ja minimin hajoita ja hallitse -periaatetta käyttäen. Kuinka monta vertailua algoritmi suorittaa (olettaen, että n on kahden potenssi)?

5. a) Selosta branch-and-bound etsintään perustuvan approksimointialgoritmin periaate.

b) Selosta esimerkin avulla branch-and-bound -tekniikan toiminta TSP:N (Traveling Salesman Problem) approksimointialgoritmina.