You are on page 1of 2

Teorijska pitanja za predmet

“Analiza i sinteza algoritama”

A. Grafovski algoritmi (prva skupnina pitanja)


1. Osnovni pojmovi iz grafova (definicija, vrste grafova, pojam puta, ciklusa itd…)
2. Reprezentacije grafova u memoriji sa prednostima i nedostacima svake od tih
reprezentacija
3. Primjene teorije grafova (barem 5 primjera iz prakse iz različitih oblasti)
4. BFS (opis, analiza složenosti i primjene)
5. DFS (opis, analiza složenosti i primjene)
6. Topološko sortiranje (pojam, algoritmi, analiza složenosti i primjene)
7. Stroge komponenet povezanosti (definicija, algoritam, analiz složenosti i primjene)
8. Minimalno razapinjujuće stablo i Kruskalov algoritam (pojam minimalnog razapinjujućeg
stable, opis algoritma, analiza složenosti i primjene)
9. Minimalno razapinjujuće stablo i Primov algoritam (pojam minimalnog razapinjujućeg
stable, opis algoritma, analiza složenosti i primjene MST)
10. Najkraći put u grafu, reprezentacija najkraćeg puta,
11. Pojam relaksacije u grafu i veza sa najkraćim putem u grafu
12. Dijkstrin algoritam (opis, primjene, dokaz korektnosti i način implementacije i analiza
složenosti)
13. Bellman-Fordov algoritam (opis, primjene, dokaz korektnosti i način implementacije i
analiza složenosti)
14. Algoritmi za određivanje najkraćeg puta u DAGu sa jednim izvorom (opis, dokaz
korektnosti i analiza složenosti).
15. Disjoint sets (opis apstraktnog tipa podataka i načini za implementaciju)

B. Brute-force i Dinamičko programiranje (druga skupina pitanja)


1. Općenito o strategijama za dizajn algoritama (Brute-force, Divide-and-conquer, Dynamic
programming, Greedy techniques)
2. Brute-force strategija (metod grube sile-općenito o strategiji i primjena na konkretnim
problemima koji su razmatrani na ovom predmetu)
3. Exhaustive Search (metod iscrpne pretrage - općenito o strategiji i primjena na
konkretnim problemima koji su razmatrani na ovom predmetu)
4. Dinamičko programiranje (opis tehnike, optimalna podstruktura, preklapanje
podproblema, memoizacija)
5. Dinamičko programiranje i divide-and-conquer (sličnosti i razlike)
6. 0-1 problem ruksaka opis problema, optimalna podstruktura, rekurzovno rješenje, način
računanje optimalnog rješenja)
7. Cjelobroji problem ruksaka (opis problema, optimalna podstruktura, rekurzovno rješenje,
način računanje optimalnog rješenja)
8. Matrix–chain multiplication problem (opis problema, optimalna podstruktura, rekurzovno
rješenje, način računanje optimalnog rješenja)
9. Longest common subsequence problem (opis problema, optimalna podstruktura,
rekurzovno rješenje, način računanje optimalnog rješenja)
10. Problem određivanja optimalnog binarnog stabla pretrage (opis problema, optimalna
podstruktura, rekurzovno rješenje, način računanje optimalnog rješenja)
11. Problem određivanja svih najkraćih puteva u grafu (optimalna podstruktura, rekurzovno
rješenje, način računanje optimalnog rješenja)
12. Rod cutting problem (opis problema, optimalna podstruktura, rekurzovno rješenje, način
računanje optimalnog rješenja)

C. Greedy i Bactracking algoritmi (treća skupina pitanja)


1. Greedy strategija (opis tehnike, greedy izbor, optimalna podstruktura)
2. Opis generalnog metoda dokazivanja korektnosti greedy algoritma
3. Backtrack strategije (osnovne ideje)
4. Poređenje između greedy strategija i dinamičkog programiranja
5. Backtracking (općenito o implementaciji ove strategije)
6. Activity-selection problem (opis problema, greedy algoritma, dokaz korektnosti)
7. Backtrack i konstrukcija podskupova (opis implementacija)
8. Huffman Codes (opis problema, greedy algoritma, dokaz korektnosti)
9. Fractional Knapsack problem (opis problema, greedy algoritma, dokaz korektnosti)
10. Backtrack i ispis svih permutacija (opis implementacija)
11. Dokaz korektnosti algoritama pomoću invarijanti petlje
12. Tehnika za uklanjanje rekurzije za funkcije koje ne vraćaju vrijednost
13. Backtrack i problem osam kraljica (opis implementacija)
14. Tehnika za uklanjanje rekurzije za funkcije koje vraćaju vrijednost

You might also like