]> mj.ucw.cz Git - ads2.git/commitdiff
Toky: Cviceni
authorMartin Mares <mj@ucw.cz>
Mon, 16 Jan 2012 17:10:00 +0000 (18:10 +0100)
committerMartin Mares <mj@ucw.cz>
Mon, 16 Jan 2012 17:10:00 +0000 (18:10 +0100)
2-toky/2-toky.tex
3-dinic/3-dinic.tex

index 2345b84d46ca3d6683e15e2769019fe4ced3cbb3..b797d89f1233f35c51bccead4767c4b617a3e39c 100644 (file)
@@ -316,4 +316,46 @@ tok Fordov
 èase pøelo¾íme na~párování. V¹e dohromady trvá $\O(m'n') = \O(mn)$.
 \qed
 
+\exercises
+
+\ex{Najdìte pøíklad sítì s~nejvý¹e 10 vrcholy a 10 hranami, na ní¾ Fordùv-Fulkersonùv
+algoritmus provede více ne¾ milion iterací.}
+
+\exx{Najdìte sí» s~reálnými kapacitami, na ní¾ Fordùv-Fulkersonùv algoritmus nedobìhne.}
+
+\ex{Navrhnìte algoritmus, který pro zadaný orientovaný graf a jeho vrcholy $u$ a~$v$
+nalezne nejvìt¹í mo¾ný systém hranovì disjunktních cest z~$u$ do~$v$.}
+
+\ex{Upravte algoritmus z~pøedchozího cvièení, aby nalezené cesty byly vrcholovì
+disjunktní (a¾ na krajní vrcholy).}
+
+\ex{Mìjme ¹achovnici $R\times S$, z~ní¾ políèko¾rout se¾ral nìkterá políèka. Chceme na ni
+rozestavìt co nejvíce ¹achových vì¾í tak, aby se navzájem neohro¾ovaly. Vì¾ mù¾eme postavit
+na libovolné nese¾rané políèko a ohro¾uje v¹echny vì¾e v~tém¾e øádku èi sloupci. Navrhnìte
+efektivní algoritmus, který takové rozestavìní najde.}
+
+\ex{Situace stejná jako v~minulém cvièení, ale dvì vì¾e se neohro¾ují, pokud je na
+jejich pøímé spojnici alespoò jedno políèko se¾rané.}
+
+\ex{Opìt ¹achovnice po zásahu políèko¾routa. Chceme na nese¾raná políèka rozmístit kostky
+velikosti $1\times 2$ políèka tak, aby ka¾dé nese¾rané políèko bylo pokryto právì jednou kostkou.}
+
+\ex{Dopravní problém: Uva¾ujme továrny $T_1, \ldots, T_p$ a obchody $O_1, \ldots, O_q$. V¹ichni
+vyrábìjí a prodavají tentý¾ druh zbo¾í. Továrna $T_i$ ho dennì vyprodukuje $t_i$ kusù, obchod
+$O_j$ dennì spotøebuje $o_j$ kusù. Navíc máme bipartitní graf urèující, která továrna mù¾e
+dodávat zbo¾í kterému obchodu. Najdìte efektivní algoritmus, který zjistí, zda je po¾adavky
+obchodù mo¾né splnit, ani¾ by se pøekroèily výrobní kapacity továren, a~pokud je to mo¾né,
+vypí¹e, ze~které továrny se má pøepravit kolik zbo¾í do kterého obchodu.}
+
+\exxx{Uva¾ujeme o~vybudování dolù $D_1,\ldots,D_p$ a továren $T_1,\ldots,T_q$. Vybudování
+dolu~$D_i$ stojí cenu~$d_i$ a od té doby dùl zadarmo produkuje neomezené mno¾ství $i$-té
+suroviny. Továrna~$T_j$ potøebuje ke~své èinnosti zadanou mno¾inu surovin (pøiøazení
+surovin továrnám je dáno jako bipartitní graf na vstupu) a pokud jsou v~provozu v¹echny
+doly produkující tyto suroviny, vydìláme na továrnì zisk~$t_j$. Vymyslete algoritmus,
+který spoèítá, které doly postavit, abychom vydìlali co nejvíce.}
+
+%% FIXME: Zmínit permanent
+
+\endexercises
+
 \bye
index eac80f0fc1c643eecb685da936a967421cc2b87d..4dc6c115d41438bdbe536806bf34b54b87f76a1b 100644 (file)
@@ -245,4 +245,6 @@ jeden siln
 algoritmem z~minulé pøedná¹ky je slo¾itost Dinicova algoritmu omezena $\O(\sqrt
 n \cdot m)$.
 
+%% FIXME: Dinic pomocí DFS
+
 \bye