KONSTRUKCIJA I ANALIZA ALGORITAMA

I smer

Kurs Konstrukcija i analiza algoritama je kurs na drugoj godini I smera. Cilj ovog predmeta je produbljivanje znanja o strukturama podataka i strategijama konstrukcije algoritama i upoznavanje sa fundamentalnim algoritmima u različitim domenima. U okviru kursa se proučavaju sledeće algoritamske oblasti:

  • napredne strukture podataka
  • grafovski algoritmi
  • algebarski algoritmi
  • algoritmi za obradu teksta
  • geometrijski algoritmi

Predmetni nastavnici:

Asistenti:

Obavezan predmet

  • 6 ESPB bodova
  • 3 časa predavanja
  • 2 časa vežbi

Ispitne obaveze (100 poena):

  • praktični ispit: 50 poena
  • teorijski test: 10 poena
  • usmeni ispit: 40 poena

Pragovi:

  • bar 25 poena na praktičnom delu ispita
  • bar 7 poena na teorijskom testu

Predavanja po časovima

1. čas
Prefiksno drvo. Strukture podataka za predstavljanje disjunktnih skupova (poglavlja 1.1 i 1.3 udžbenika).
Pitanja za obnavljanje gradiva sa 1. časa
2. čas
Statički upiti raspona. Dinamički upiti raspona. Segmentno drvo (poglavlja 1.4.1 i 1.4.2.1).
Grafovi: osnovni pojmovi, predstavljanje grafa (poglavlja 2.1 i 2.2).
Pitanja za obnavljanje gradiva sa 2. časa
3. čas
Pretraga grafa u dubinu. Pretraga grafa u širinu (poglavlje 2.3).
Pitanja za obnavljanje gradiva sa 3. časa
4. čas
Topološko sortiranje grafa. Mostovi i artikulacione tačke u neusmerenom grafu (poglavlja 2.4 i 2.5).
Pitanja za obnavljanje gradiva sa 4. časa
5. čas
Komponente jake povezanosti (poglavlja 2.6.1 i 2.6.2 ili 2.6.3). Ojlerovi i Hamiltonovi putevi i ciklusi (poglavlje 2.7.1 i 2.7.2). Hirholcerov algoritam za određivanje Ojlerovih ciklusa (poglavlje 2.7.1.1).
Pitanja za obnavljanje gradiva sa 5. časa
6. čas
Težinski grafovi. Najkraći putevi iz zadatog čvora: aciklički grafovi, grafovi sa nenegativnim granama: Dajkstrin algoritam, grafovi koji mogu imati negativne grane: Belman-Fordov algoritam (poglavlja 2.8 i 2.9). Konstrukcija minimalnog povezujućeg drveta: Primov, Kraskelov algoritam (poglavlje 2.10).
7. čas
Svi najkraći putevi: Flojd-Varšalov algoritam. Tranzitivno zatvorenje grafa (poglavlje 2.11). Osnovni i prošireni Euklidov algoritam. Rešavanje linearnih Diofantovih jednačina (poglavlje 3.1). Faktorizacija broja (poglavlje 3.2.1 i 3.2.3).
8. čas
Multiplikativne funkcije: Ojlerova funkcija, funkcije delilaca (poglavlje 3.3.1 i 3.3.2). Modularna aritmetika, Ojlerova i mala Fermaova teorema. Modularni multiplikativni inverz. Kineska teorema o ostacima (poglavlje 3.4). RSA kriptografija (poglavlje 3.5).
9. čas
Brza Furijeova transformacija (poglavlja 3.6.1, 3.6.2, 3.6.3). Heširanje niski (poglavlje 4.1).
10. čas
z-niz (poglavlje 4.2). Algoritam KMP. Ispitivanje periodičnosti niske (poglavlje 4.3).
11. čas
Osnovni geometrijski algoritmi (poglavlje 5.1). Preseci horizontalnih i vertikalnih duži (poglavlje 5.2). Konstrukcija prostog mnogougla (poglavlje 5.3).
12. čas
Pripadnost tačke unutrašnjosti mnogougla (poglavlje 5.4). Algoritmi za konstrukciju konveksnog omotača: direktni algoritam, uvijanje poklona, Grejemov algoritam, brzi algoritam (poglavlje 5.5).

Literatura

Zadaci po časovima

1. čas
Uvod u napredne strukture podataka. Opisi problema.
2. čas
Prefiksna drveta. Disjunktni skupovi.
3. čas
Segmentna drveta. Fenvikova drveta
4. čas
Reprezentacije grafa. Pretraga u dubinu. Pretraga u širinu.
5. čas
Mostovi. Artikulacione tačke. Pretraga.
6. čas
Topološko sortiranje. Komponente jake povezanosti.
7. čas
Najkraći putevi od zadatog čvora.
8. čas
Ojlerovi ciklusi. Najkraći putevi između svaka dva čvora. Minimalno povezujuće drvo.
9. čas
Prosti brojevi. Faktorizacija. Ojlerova funkcija. Euklidov algoritam.
10. čas
Euklidov algoritam. Prošireni Euklidov algoritam. RSA kriptosistem.
11. čas
Kineska teorema o ostacima. Niske. Rabin-Karpov algoritam.
12. čas
Algoritmi za obradu teksta. KMP algoritam. Z algoritam. Manačerov algoritam.
13. čas
Geometrijski algoritmi. Pripadnost tačke mnogouglu. Konstrukcija konveksnog omotača.
Primer ispita

Literatura za predavanja

Literatura za vežbe

Dodatno

  • Miodrag Živković: Algoritmi
  • Thomas H Cormen, Charles E Leiserson, Ronald L Rivest, Clifford Stein: Introduction to Algorithms

Prijava za polaganje ispita - jun 2

Anketa koja sadrži prijavu za polaganje praktičnog dela ispita u roku jun 2 se nalazi na sledećem linku. Anketa će biti aktivna do 28.9.2025. u podne.
Mole se svi studenti da popune anketu samo ukoliko su sigurni da će polagati ispit u ovom roku. Ukoliko se predomislite i odlučite da ne izađete, javite se na mejl matija.lojovic@matf.bg.ac.rs.

26. 9. 2024.

Rezultati ispita - jun 1

Rezultati praktičnog ispita u roku jun 1 se nalaze na sledećem linku. Uvid u radove mejlom do 21.9.2025. u podne.
Za prvi zadatak javite se Andriji, za drugi Strahinji, i za treći Matiji.

19. 9. 2024.

Prijava za polaganje ispita - jun 1

Anketa koja sadrži prijavu za polaganje praktičnog dela ispita u roku jun 1 se nalazi na sledećem linku. Anketa će biti aktivna do 15.8.2025. u podne.
Mole se svi studenti da popune anketu samo ukoliko su sigurni da će polagati ispit u ovom roku. Ukoliko se predomislite i odlučite da ne izađete, javite se na mejl matija.lojovic@matf.bg.ac.rs.

11. 9. 2024.

Rezultati ispita - januar 2

Rezultati praktičnog ispita u roku januar 2 se nalaze na sledećem linku. Uvid u radove mejlom do 30.8.2025. u podne.
Za prvi zadatak javite se Strahinji, za drugi Matiji, i za treći Andriji.

28. 8. 2024.

Prijava za polaganje ispita - januar 2

Anketa koja sadrži prijavu za polaganje praktičnog dela ispita u roku januar 2 se nalazi na sledećem linku. Anketa će biti aktivna do 26.8.2025. u podne.
Mole se svi studenti da popune anketu samo ukoliko su sigurni da će polagati ispit u ovom roku. Ukoliko se predomislite i odlučite da ne izađete, javite se na mejl matija.lojovic@matf.bg.ac.rs.

10. 8. 2024.

Rezultati ispita - januar 1

Rezultati praktičnog ispita u roku januar 1 se nalaze na sledećem linku. Uvid u radove mejlom do 20.8.2025. u podne.
Za prvi zadatak javite se Matiji, za drugi Strahinji, i za treći Andriji.

18. 8. 2024.

Prijava za polaganje ispita - januar 1

Anketa koja sadrži prijavu za polaganje praktičnog dela ispita u roku januar 1 se nalazi na sledećem linku. Anketa će biti aktivna do 13.8.2025. u podne.
Mole se svi studenti da popune anketu samo ukoliko su sigurni da će polagati ispit u ovom roku. Ukoliko se predomislite i odlučite da ne izađete, javite se na mejl matija.lojovic@matf.bg.ac.rs.

10. 8. 2024.

Termini usmenog dela ispita u rokovima jan1 i jan2 za prvi i drugi tok (prof. Vesna Marinković)

U narednoj tabeli nalaze se termini za usmeni deo ispita u ispitnim rokovima januar1 i januar2. Molimo studente koji polože pismeni deo ispita i planiraju da usmeni deo ispita polažu u ovim rokovima da se upišu u tabelu

09. 08. 2025.

Termini usmenog dela ispita u rokovima jan1 i jan2 za treći tok (prof. Filip Marić)

U narednoj tabeli nalaze se termini za usmeni deo ispita. Molimo studente koji polože pismeni deo ispita i planiraju da usmeni deo ispita polažu u ovim rokovima da se upišu u tabelu

11. 08. 2025.

Matematički fakultet, Univerzitet u Beogradu
školska 2023/24. godina