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).

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

Rezultati ispita u roku septembar2

Rezultati praktičnog i teorijskog dela ispita u roku septembar2 se nalaze na sledećem linku: Molimo studente koji planiraju da usmeni deo ispita polažu u roku septembar2 da se upišu u narednu tabelu:

24. 09. 2024.

Raspored sedenja za sept2

Raspored sedenja za ispit u roku sept2 se nalazi na sledećem linku: raspored. Ispit se održava od 17:00 na Trgu.

18. 09. 2024.

Prijava ispita za sept2

Ukoliko izlazite na ispit u ispitnom roku sept2 popunite upitnik do 13:00, 18.09.2024.

14. 09. 2024.

Uvid u radove za sept1

Za uvid u radove u roku sept1 javiti se mejlom odgovarajućem asistentu:
1. zadatak - Strahinja
2. zadatak - Matija
3. zadatak - Andrija

03. 09. 2024.

Rezultati ispita u roku septembar1

Rezultati praktičnog i teorijskog dela ispita u roku septembar1 se nalaze na sledećem linku: Molimo studente koji planiraju da usmeni deo ispita polažu u roku sep1 da se upišu u narednu tabelu:

03. 07. 2024.

Raspored sedenja za sept1

Raspored sedenja za ispit u roku sept1 se nalazi na sledećem linku: raspored. Ispit se održava od 17:00 na Trgu.

29. 08. 2024.

Prijava ispita za sept1

Ukoliko izlazite na ispit u ispitnom roku sept1 popunite upitnik do 13:00, 29.8.2024.

26. 08. 2024.

Uvid u radove za jun2

Za uvid u radove u roku jun2 javiti se mejlom odgovarajućem asistentu:
1. zadatak - Andrija
2. zadatak - Matija
3. zadatak - Strahinja

04. 07. 2024.

Rezultati ispita u roku jun2

Rezultati praktičnog i teorijskog dela ispita u roku jun2 se nalaze na sledećem linku: Molimo studente koji planiraju da usmeni deo ispita polažu u roku jun2 da se upišu u narednu tabelu:

03. 07. 2024.

Raspored sedenja za jun2

Raspored sedenja za ispit u roku jun2 se nalazi na sledećem linku: raspored. Ispit se održava od 17:00 na Trgu.

26. 06. 2024.

Prijava ispita za jun2

Ukoliko izlazite na ispit u ispitnom roku jun2 popunite upitnik do 23:00, 25.6.2024.

22. 06. 2024.

Rezultati ispita u roku jun1

Rezultati praktičnog i teorijskog dela ispita u roku jun1 se nalaze na sledećem linku: Molimo studente koji planiraju da usmeni deo ispita polažu u roku jun1 da se upišu u narednu tabelu:

11. 06. 2024.

Raspored sedenja za jun1

Raspored sedenja za ispit u roku jun1 se nalazi na sledećem linku: raspored. Ispit se održava od 17:00 na Trgu.

05. 06. 2024.

Prijava ispita za jun1

Ukoliko izlazite na ispit u ispitnom roku jun1 popunite upitnik do 23:00, 4.6.2024.

01. 06. 2024.

Termin nadoknade za vežbe kod Matije

Nadoknada otkazanih vežbi za obe grupe biće u sredu 15.05.2024. u učionici N202, sa početkom u 10:00.

09. 05. 2024.

Otkazivanje vežbi kod Matije za sredu 24.04.2024.

Vežbe za obe grupe kod Matije u sredu 24.04.2024. se otkazuju zbog bolesti asistenta. Termin nadoknade biće određen u dogovoru sa studentima (najverovatije posle praznika).

23. 04. 2024.

Promena termina vežbi kod Matije

Vežbe koje su se održavale sredom od 14:00 do 16:00 u N202, održavaće se od 15:00 do 17:00 u istoj učionici.

10. 03. 2024.

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