Ciele
- Oboznámiť sa s organizáciou predmetu Algoritmy a zložitosť.
- Zvládnuť základné definície z oblasti výpočtovej zložitosti.
- Naučiť sa vyhľadávať zdroje, oboznámiť sa so štruktúrou algoritmov a používať kurzový materiál pri softvérovej implementácii aplikačných úloh. % . %
- Rozlíšiť typy zložitosti algoritmov.
Úvod
- Predmet Algoritmy a zložitosť je predmetom zameraným na výpočtovú zložitosť algoritmov, triedy P, NP, NPC, heuristiky a pseudopolynomiálne algoritmy.
- Oboznámte sa s organizáciou predmetu % Algoritmy a zložitosť a podmienkami udelenia zápočtu. V prípade nejasností sa opýtajte cvičiaceho.
- Na každom cvičení musí byť študent schopný prezentovať aktuálne zadanie. Bez aktuálnych zdrojových textov je jeho účasť na cvičení zbytočná. Hlavný dôraz je na cvičeniach kladený na prezentáciu zadania a konzultáciu s cvičiacim.
- Študijné materiály sú v systéme Moodle - predmet % Algoritmy a zložitosť . Prihlasovací kľúč
- Študent si môže zvoliť režim práce "Samostatné zadanie", pričom voľbu zadania prekonzultuje s cvičiacim, ktorý určí jeho vhodnosť. Body za zadanie môže cvičiaci prideľovať aj postupne podľa vlastného uváženia s ohľadom na aktivitu študenta. Režim priebežných kontrol napredovania študenta pri vypracovávaní zadania je preferovaný.
Postup
-
Príklad: Koľko operácií je potrebných na výpočet súčinu dvoch štvorcových \(n\times n\) matíc \(A=(a_{ij}), B=(b_{ij})\)?
-
Príklad: Koľko operácií je potrebných na výpočet mocniny \(A^p\) štvorcovej \(n\times n\) matice \(A=(a_{ij})\) pre \(p\in N\)?
-
Príklad: Koľko operácií je potrebných na výpočet metrickej matice \[\Gamma(A)=A\oplus A^2\oplus\dots\oplus A^n,\] kde \(A=(a_{ij})\) je \(n\times n\) matica a operácia \(\oplus\) reprezentuje maximum a operácia \(\otimes\) reprezentuje \(+\)?
-
Príklad: Problém obchodného cestujúceho (Traveling Salesman Problem -- TSP) V individuálnej úlohe TSP je dané prirodzené číslo \( n>0 \) a matica vzdialeností medzi každou dvojicou \( n \) miest vo forme \( n\times n \) matice \( (d_{ij}) \), \( d_{ij}\in Z^+ \) (\( Z^+ \) je označenie pre kladné celé čísla). Problém: Nájsť uzavretú cestu, ktorá prechádza každým mestom práve raz, a pritom zo všetkých takýchto ciest má minimálny súčet ohodnotení hrán.
-
Úloha: Oboznámte sa s ďalšími algoritmami pre TSP problém.
-
Úloha: Aký je rozdiel medzi nimi?
Zdroje
Doplňujúce úlohy
Úloha:
Popíšte aspoň jeden efektívny algoritmus na riešenie
sústavy lineárnych rovníc.
Úloha:
Popíšte aspoň jeden neefektívny algoritmus na riešenie sústavy lineárnych rovníc.
Úloha:
Popíšte aspoň jeden efektívny algoritmus na výpočet
determinantu matice.
Úloha:
Popíšte aspoň jeden neefektívny algoritmus na výpočet determinantu matice.
Úloha:
Navrhnite efektívny algoritmus na usporiadanie \( n \) čísel
podľa veľkosti.
Úloha:
Navrhnite efektívny algoritmus na testovanie súvislosti grafu.
Úloha:
Navrhnite aspoň jeden algoritmus na nájdenie aspoň jednej
kostry grafu.
Úloha:
Navrhnite algoritmus na hľadanie všetkých kostier grafu.
Úloha:
Formulujte nasledujúci optimalizačný problém ako inštanciu,
pričom je treba definovať množinu prípustných riešení \( F \) a
cenovú funkciu \( c \).\\
Nájdite najkratšiu cestu medzi dvoma vrcholmi ohodnoteného
grafu.
Úloha:
Popíšte metódu na odčítanie decimálnych
prirodzených čísel ako algoritmus.
Úloha:
Zostrojte algoritmus pre nasledujúci problém: Fixujte
reprezentáciu vstupu a popíšte zložitosť navrhnutého algoritmu.\\
Je daný graf \( G=(V,E) \). Existuje v \( G \) cyklus \( (u,v,w,z,u) \)
taký,
že \( (v,z),\ (u,w)\not\in E \), pričom\\
(i) \( u,v,w,z \) sú ľubovoľné vrcholy\\
(ii) \(u,v,w,z \) sú pevne dané?
Úloha:
Zostrojte algoritmus pre nasledujúci problém: Fixujte
reprezentáciu vstupu a popíšte zložitosť navrhnutého algoritmu.\\
Pre dané \( p\in N \) rozhodnite, či \( p \) je prvočíslo.
Úloha:
Zostrojte algoritmus pre nasledujúci problém: Fixujte
reprezentáciu vstupu a popíšte zložitosť navrhnutého algoritmu.\\
Pre dané \( x,y,z \in N \) rozhodnite, či existuje \( n>0,\ n\in N \)
také, že platí:
\( x^n+y^n=z^n. \)
Úloha:
Zostrojte algoritmus pre nasledujúci problém: Fixujte
reprezentáciu vstupu a popíšte zložitosť navrhnutého algoritmu.
Daný je graf \( G=(V,E) \) a \( s,t\in V \). Existuje v \(G \) cesta z
vrchola \( s \) do vrchola \( t \)?