Cvičenie - Polynomiálne algoritmy a \(O(f(n))\).

Ciele
  1. Zvládnuť základné definície.
  2. Rozlíšiť verzie optimalizačných problémov.
  3. Určiť výpočtovú zložitosť pomocou funkcie \(O(f(n))\).
Postup
  1. Príklad: Aká je výpočtová zložitosť jednotlivých krokov a celková výpočtová zložitosť popísaného algoritmu na výpočet súčinu dvoch štvorcových \(n\times n\) matíc \(A=(a_{ij}), B=(b_{ij})\)?
    Zobraziť riešenie
  2. Príklad: Aká je výpočtová zložitosť jednotlivých krokov a celková výpočtová zložitosť popísaného algoritmu na výpočet mocniny \(A^p\) štvorcovej \(n\times n\) matice \(A=(a_{ij})\) pre \(p\in N\)?
    Zobraziť riešenie
  3. Príklad: Aká je výpočtová zložitosť jednotlivých krokov a celková výpočtová zložitosť popísaného algoritmu 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 \(+\)?
    Zobraziť riešenie
  4. Príklad: Dokážte, že platí, resp. nájdite kontrapríklad, že neplatí rovnosť \[(\ln n)^k=O(n^\epsilon)\] pre všetky \(k\in N\) a pre všetky \(\varepsilon>0.\) Použite: \(g(n)=O(f(n))\) vtedy a len vtedy, ak existuje \(c>0\), že platí \(g(n)\leq c\cdot f(n)\).
    Zobraziť riešenie
  5. Príklad: Aká je veľkosť vstupu pre grafové problémy.
    Zobraziť riešenie
  6. Príklad: Nech \(f:N\rightarrow N\) a \(g:N\rightarrow N\) sú funkcie definované nasledovne \[f(n)=\left\{ \begin{array}{l} n^2\text{ ak } n \text{ je prvočíslo,} \\ n^3\text{ inak,} \end{array}\right. \quad \quad g(n)=\left\{ \begin{array}{l} n^2\quad \text{ ak } n \text{ je nepárne,} \\ n^3\quad \text{ inak.} \end{array}\right. \] Analyzujte, ktoré z rovností sú, kedy pravdivé: \[f(n)=O(g(n)),\ \text{resp. }\ g(n)=O(f(n)).\]
    Zobraziť riešenie
    Príklad: Analyzujte počet operácií Floydov-Warshallovho algoritmu.
    Zobraziť riešenie
Zdroje
  1. Algoritmy a zložitosť
Doplňujúce úlohy
    Úloha: Popíšte metódu na odčítanie decimálnych prirodzených čísel ako algoritmus.
    Úloha: Zostrojte algoritmus pre nasledujúci problém:
    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
    • \( u,v,w,z \) sú ľubovoľné vrcholy,
    • \(u,v,w,z \) sú pevne dané?
    Fixujte reprezentáciu vstupu a popíšte zložitosť navrhnutého algoritmu.
    Úloha: Zostrojte algoritmus pre nasledujúci problém:
    Pre dané \( p\in N \) rozhodnite, či \( p \) je prvočíslo.
    Fixujte reprezentáciu vstupu a popíšte zložitosť navrhnutého algoritmu.
    Úloha: Zostrojte algoritmus pre nasledujúci problém:
    Pre dané \( x,y,z \in N \) rozhodnite, či existuje \( n>0,\ n\in N \) také, že platí: \( x^n+y^n=z^n. \)
    Fixujte reprezentáciu vstupu a popíšte zložitosť navrhnutého algoritmu.
    Úloha: Zostrojte algoritmus pre nasledujúci problém: Daný je graf \( G=(V,E) \) a \( s,t\in V \). Existuje v \(G \) cesta z vrchola \( s \) do vrchola \( t \)?
    Fixujte reprezentáciu vstupu a popíšte zložitosť navrhnutého algoritmu.
comments powered by Disqus