From: Martin Mares Date: Mon, 21 Jan 2013 13:45:59 +0000 (+0100) Subject: Floyd: Drobne korektury X-Git-Url: http://mj.ucw.cz/gitweb/?a=commitdiff_plain;h=099ba2dbc6d4c0ce6ef170b4beab66acf2bd3ded;p=ga.git Floyd: Drobne korektury - U metody Rozdel a panuj byla chybne uvedena 3 rekurzivni volani namisto 2. - V predposlednim odstavci popisu Seidelova algoritmu se scitaji hodnoty D', nikoliv D. S diky Vlastovi Dortovi. --- diff --git a/14-floyd/14-floyd.tex b/14-floyd/14-floyd.tex index 9189746..45508a0 100644 --- a/14-floyd/14-floyd.tex +++ b/14-floyd/14-floyd.tex @@ -285,12 +285,12 @@ op \endlist \s{Algoritmus:} -Výpoèet matice~$A^*$ provedeme podle pøedchozí vìty. Spoèítáme 3~tranzitivní uzávìry +Výpoèet matice~$A^*$ provedeme podle pøedchozí vìty. Spoèítáme 2~tranzitivní uzávìry matic polovièní velikosti rekurzivním voláním, dále pak $\O(1)$ $(\lor,\land)$-souèinù a $\O(1)$ souètù matic. Èasová slo¾itost $t(n)$ tohoto algoritmu bude splòovat následující rekurenci: -$$t(1)=\Theta(1), \quad t(n) = 3t(n/2) + \Theta(1)\cdot\mu(n/2) + \Theta(n^2),$$ +$$t(1)=\Theta(1), \quad t(n) = 2t(n/2) + \Theta(1)\cdot\mu(n/2) + \Theta(n^2),$$ kde $\mu(k)$ znaèí èas potøebný na jeden $(\lor,\land)$-souèin matic $k\times k$. Jeliko¾ jistì platí $\mu(n/2)=\Omega(n^2)$, má tato rekurence podle kuchaøkové vìty øe¹ení $t(n) = \mu(n)$. @@ -337,7 +337,7 @@ $d'(u) < d(v)$ a pro v Prùmìry pøes sousedy pøitom mù¾eme spoèítat násobením matic: vynásobíme matici vzdáleností~$D'$ maticí sousednosti grafu~$G$. Na pozici~$i,j$ se objeví souèet -hodnot $D_{ik}$ pøes v¹echny sousedy~$k$ vrcholu~$j$. Ten staèí vydìlit stupòem +hodnot $D'_{ik}$ pøes v¹echny sousedy~$k$ vrcholu~$j$. Ten staèí vydìlit stupòem vrcholu~$j$ a hledaný prùmìr je na svìtì. Po~provedení jednoho násobení matic tedy dovedeme pro ka¾dou dvojici vrcholù