From 73e881dcd496b63d2ef59b8fe22fea2706732d75 Mon Sep 17 00:00:00 2001 From: Martin Mares Date: Tue, 23 Jan 2007 18:08:13 +0100 Subject: [PATCH] Revize analyzy Dinicova algoritmu a obrazku okolo. --- 2-dinic/2-dinic.tex | 81 ++++--- 2-dinic/dinic-vrcholrez.eps | 78 +++---- 2-dinic/dinic-zpetnahrana.eps | 426 ---------------------------------- 2-dinic/dinic.dia | Bin 11124 -> 11036 bytes 4 files changed, 80 insertions(+), 505 deletions(-) delete mode 100644 2-dinic/dinic-zpetnahrana.eps diff --git a/2-dinic/2-dinic.tex b/2-dinic/2-dinic.tex index 58cba61..1d3cb38 100644 --- a/2-dinic/2-dinic.tex +++ b/2-dinic/2-dinic.tex @@ -23,6 +23,7 @@ kdyby neuva \:Zaèneme s~libovolným tokem~$f$, napøíklad prázdným (v¹ude nulovým). \:Iterativnì vylep¹ujeme tok pomocí zlep¹ujících tokù: {\I (vnìj¹í cyklus)} \::Sestrojíme sí» rezerv: vrcholy a hrany jsou tyté¾, kapacity jsou urèeny rezervami v~pùvodní síti. +Dále budeme pracovat s~ní. \::Najdeme nejkrat¹í $st$-cestu. Kdy¾ ¾ádná neexistuje, skonèime. \::Proèistime sí», tj. ponecháme v ní pouze vrcholy a hrany na nejkrat¹ích $st$-cestách. \::Najdeme v~proèi¹tìné síti blokující tok $f_B$: @@ -56,30 +57,26 @@ Ozna \endlist Takto kroky 5 a 12 dohromady spotøebují èas $\O(m)$. \:Jeden prùchod vnìj¹ím cyklem tedy trvá $\O(mn)$. + \:Jak za chvíli doká¾eme, ka¾dým prùchodem vnìj¹ím cyklem $l$ vzroste, tak¾e prùchodù + bude maximálnì~$n$ a celý algoritmus tak pobì¾í v~èase $\O(n^2m)$. \endlist +\s{Korektnost algoritmu:} +Kdy¾ se Dinicùv algoritmus zastaví, nemù¾e u¾ existovat ¾ádná zlep¹ující cesta +(viz krok~4) a tehdy, jak u¾ víme z~analýzy F-F algoritmu, je nalezený tok maximální. + \s{Vìta:} V~ka¾dém prùchodu Dinicova algoritmu vzroste $l$ alespoò~o~1. -\s{Dùsledek:} -Vnìj¹ím cyklem projdeme $\O(n)$-krát, proto¾e nejdel¹í cesta bude mít -délku $\leq n$. Celková slo¾itost celého algoritmu proto bude $\O(n^2m)$ - -\s{Korektnost algoritmu} -plyne z korektnosti F-F algoritmu. Kdy¾ se Dinicùv -algoritmus zastaví, musí vydat maximální tok. Pokud ne, tak podle F-F algoritmu -existuje zlep¹ující cesta, ale to je ve sporu s~krokem~4, který po¾aduje, aby ¾ádná -taková cesta neexistovala. - -\s{Dùkaz vìty:} +\proof Podíváme se na~prùbìh jednoho prùchodu vnìj¹ím cyklem. Délku aktuálnì nejkrat¹í $st$-cesty oznaème~$l$. V¹echny pùvodní cesty délky~$l$ se bìhem prùchodu zaruèenì nasytí, proto¾e tok~$f_B$ je blokující. Musíme v¹ak dokázat, ¾e nemohou vzniknout ¾ádné nové cesty délky~$l$ nebo men¹í. V~síti rezerv toti¾ mohou hrany nejen ubývat, ale i pøibývat: pokud po¹leme tok po~hranì, po~které je¹tì nic -neteklo, mù¾e se stát, ¾e v~protismìru z~dosud nulové rezervy vyrobíme -nenulovou. Rozmysleme si tedy, jaké hrany mohou pøibývat: +neteklo, tak v~protismìru z~dosud nulové rezervy vyrobíme nenulovou. +Rozmysleme si tedy, jaké hrany mohou pøibývat: Vnìj¹í cyklus zaèíná s neproèi¹tìnou sítí. Pøíklad takové sítì je na~následujícím obrázku. Po~proèi¹tìní zùstanou v~síti jen èerné hrany, tedy hrany vedoucí z~$i$-té @@ -91,9 +88,6 @@ je barevn Nové hrany mohou vznikat výhradnì jako opaèné k~èerným hranám (hrany ostatních barev padly za obì» proèi¹tìní). Jsou to tedy v¾dy zpìtné hrany vedoucí z~$i$-té vrstvy do~$(i-1)$-ní. - -\figure{dinic-zpetnahrana.eps}{Vznik nové zpìtné hrany}{0.4\hsize} - Vznikem nových hran by proto mohly vzniknout nové $st$-cesty, které pou¾ívají zpìtné hrany. Jen¾e $st$-cesta, která pou¾ije zpìtnou hranu, musí alespoò jednou skoèit o~vrstvu zpìt a nikdy nemù¾e skoèit o~více ne¾ jednu vrstvu dopøedu, a~proto je její @@ -120,15 +114,25 @@ d \h{Speciální sítì (ubíráme na obecnosti)} -Dále se budeme vìnovat modifikacím Dinicova algoritmu na speciální druhy sítí, -kde je mo¾né dostat lep¹í èasovou slo¾itost ne¾ v~obecném pøípadì. +Pøi pøevodu rùzných úloh na~hledání maximálního toku èasto dostaneme sí» v~nìjakém +speciálním tvaru -- tøeba s~omezenými kapacitami èi stupni vrcholù. Podíváme se +proto podrobnìji na~chování Dinicova algoritmu v~takových pøípadech a uká¾eme, +¾e èasto pracuje pøekvapivì efektivnì. \s{Jednotkové kapacity:} -V¹echny rezervy jsou jen 0 nebo~1. Na $st$-cestì má v¹echno kapacitu/rezervu~1. -Mù¾eme poslat~1~a rovnou celou cestu zahodit -- není potøeba si pamatovat minimum z~rezerv. +Pokud sí» neobsahuje cykly délky~1 (dvojice navzájem opaèných hran), v¹echny rezervy +jsou jen 0 nebo~1. Pokud obsahuje, mohou rezervy být i dvojky, a~proto sí» upravíme tak, +¾e ke~ka¾dé hranì pøidáme hranu opaènou s~nulovou kapacitou a rezervu proti smìru +toku pøiøkneme jí. Vzniknou tím sice paralelní hrany, ale to tokovým algoritmùm +nikterak nevadí.% +\foot{Èasto se to implementuje tak, ¾e protismìrné hrany vùbec nevytvoøíme a kdy¾ +hranu nasytíme, tak v~síti rezerv prostì obrátíme její orientaci.} + +Pøi hledání blokujícího toku tedy budou mít v¹echny hrany na~nalezené $st$-cestì +stejnou, toti¾ jednotkovou, rezervu, tak¾e v¾dy z~grafu odstraníme celou cestu. Kdy¾ máme $m$ hran, poèet zlep¹ení po cestách délky $l$ bude maximálnì $m/l$. Proto slo¾itost podkrokù 9, 10 a 11 bude $m/l \cdot \O(l) = \O(m)$.% -\foot{Nebo by ¹lo argumentovat, ¾e ka¾dou hranu pou¾ijeme jen $1\times$.} +\foot{Nebo by ¹lo argumentovat, tím ¾e ka¾dou hranu pou¾ijeme jen $1\times$.} Tedy pro jednotkové kapacity dostáváme slo¾itost $\O(nm)$. \s{Jednotkové kapacity znovu a lépe:} @@ -145,40 +149,42 @@ Ka nejvý¹e $\vert f_R \vert$ iterací. Proto bychom chtìli omezit velikost toku $f_R$. Napøíklad øezem. -Najdeme v síti rezerv øez $C$. Kde ho vzít?\foot{Pøeci v øeznictví. Kdepak, spí¹e v cukrárnì. +Najdeme v síti rezerv nìjaký dost malý øez $C$. Kde ho vzít?\foot{Pøeci v øeznictví. Kdepak, spí¹e v cukrárnì. Myslíte, ¾e v cukrárnì mají Dinicovy øezy? Myslím, ¾e v cukrárnì je vìt¹ina øezù minimální. {\sl (odposlechnuto na~pøedná¹ce)}} Poèítejme jen hrany zleva doprava. Tìch je jistì nejvý¹e $m$ a tvoøí alespoò $k$ rozhraní mezi vrstvami. Tedy existuje rozhraní vrstev s~nejvý¹e $m/k$ hranami\foot{Princip holubníku a nìjaká ta $\pm1$.}. -Toto rozhraní je øez. Tedy existuje øez $C$, pro nìj¾ $\vert C\vert \leq m/k$, +Toto rozhraní je øez. Tedy existuje øez~$C$, pro nìj¾ $\vert C\vert \leq m/k$, a~algoritmu zbývá maximálnì $m/k$ dal¹ích krokù. Celkový poèet krokù je nejvý¹ $k + m/k$, tak¾e staèí zvolit $k = \sqrt{m}$ a získáme odhad na~poèet krokù $\O(\sqrt{m})$. -Celkovì slo¾itost Dinicova algoritmu pro jednotkové kapacity znovu a lépe -je $\O(\sqrt{m} \cdot m) = \O(m^{3/2})$. Pomohli jsme si pro øídké grafy. +Tím jsme dokázali, ¾e celková slo¾itost Dinicova algoritmu pro jednotkové +kapacity je $\O(m^{3/2})$. Tím jsme si pomohli pro øídké grafy. \s{Jednotkové kapacity a jeden ze stupòù roven 1:} Úlohu hledání maximálního párování v~bipartitním grafu, pøípadnì hledání vrcholovì disjunktních cest v~obecném grafu lze pøevést (viz pøedchozí kapitola) -na~hledání maximálního toku v~síti, v~ní¾ $\forall v \neq s,t: \min(\deg^-(v), \deg^+(v)) \leq 1$. -Pro takovou sí» mù¾eme odhad je¹tì tro¹ku upravit. My¹lenka je stejná jako minule. Pokusíme -se nalézt v síti po $k$ krocích nìjaký malý øez. Místo rozhraní budeme hledat jednu malou -vrstvu a z malé vrstvy vytvoøíme malý øez: Pro ka¾dý vrchol z vrstvy vezmeme tu hranu, +na~hledání maximálního toku v~síti, v~ní¾ má ka¾dý vrchol~$v\ne s,t$ buïto vstupní +nebo výstupní stupeò roven jedné. +Pro takovou sí» mù¾eme pøedchozí odhad je¹tì tro¹ku upravit. Pokusíme +se nalézt v síti po~$k$~krocích nìjaký malý øez. Místo rozhraní budeme hledat jednu malou +vrstvu a z malé vrstvy vytvoøíme malý øez tak, ¾e pro ka¾dý vrchol z vrstvy vezmeme tu hranu, která je ve svém smìru sama. \figure{dinic-vrcholrez.eps}{Øez podle vrcholù ve vrstvì}{0.2\hsize} -Po $k$ krocích máme alespoò $k$ vrstev. Tedy existuje vrstva $\delta$ s nejvý¹e $n/k$ vrcholy. +Po $k$ krocích máme alespoò $k$ vrstev, a~proto existuje vrstva $\delta$ s nejvý¹e $n/k$ vrcholy. Tedy existuje øez $C$ o~velikosti $\vert C\vert \leq n/k$ (získáme z vrstvy $\delta$ vý¹e popsaným postupem). -Algoritmu zbývá do konce $\leq n/k$ iterací vnìj¹ího cyklu, celkem tedy udìlá $k + n/k$ krokù. +Algoritmu zbývá do konce $\leq n/k$ iterací vnìj¹ího cyklu, celkem tedy udìlá $k + n/k$ iterací. Nyní staèí zvolit $k = \sqrt{n}$ a slo¾itost -celého algoritmu vyjde $\O(\sqrt{n}\cdot m)$\foot{Poèet iterací vnìj¹ího cyklu je $\O(\sqrt{n})$ a -vnitøní cyklus má $\O(m)$.}. +celého algoritmu vyjde $\O(\sqrt{n}\cdot m)$. \s{Tøetí pokus pro jednotkové kapacity bez omezení na stupnì vrcholù v síti:} Hlavní my¹lenkou je opìt po $k$ krocích najít nìjaký malý øez. Najdeme dvì malé sousední vrstvy a v¹echny hrany mezi nimi budou tvoøit námi hledaný malý øez. +Budeme tentokrát pøedpokládat, ¾e na¹e sí» není multigraf, pøípadnì ¾e +násobnost hran je alespoò omezena konstantou. Oznaème $s_i$ poèet vrcholù v $i$-té vrstvì. Souèet poètu vrcholù ve dvou sousedních vrstvách oznaèíme $t_i = s_i + s_{i+1}$. Bude tedy platit nerovnost: @@ -196,10 +202,10 @@ maxim Za jednu iteraci velkého cyklu projdeme malým cyklem maximálnì tolikrát, o kolik se v nìm zvedl tok, proto¾e ka¾dá zlep¹ující cesta ho zvedne alespoò o $1$. Zlep¹ující cesta se tedy hledá maximálnì $\vert f\vert$-krát za celou dobu bìhu algoritmu. -Cestu najedeme v èase $\O(n)$. Celkem na hledání +Cestu najedeme v èase $\O(n)$. Celkem na~hledání cest spotøebujeme $\O(\vert f\vert\cdot n)$ za celou dobu bìhu algoritmu. -Nesmíme ale zapomenout na cleanupy. V jedné iteraci velkého cyklu stojí cleanupy $\O(m)$ a velkých +Nesmíme ale zapomenout na èi¹tìní. V jedné iteraci velkého cyklu nás stojí èi¹tìní $\O(m)$ a velkých iterací je $\leq n$. Proto celková slo¾itost algoritmu èiní $\O(\vert f\vert n + nm)$ Pokud navíc budeme pøedpokládat, ¾e kapacita hran je nejvý¹e~$C$ a $G$ není multigraf, @@ -209,9 +215,8 @@ $\O(Cn^2 + nm)$. \h{Scaling kapacit} Základní my¹lenka je podobná, jako u algoritmu pro tøídìní dlouhých èísel postupnì po øádech pomocí -radix-sortu. Pro jistotu si ho pøipomeòme. Algoritmus nejprve setøídí èísla podle poslední% -\foot{Poslední cifrou myslíme nejménì významnou cifru.} -cifry, poté podle pøedposlední, pøedpøedposlední a tak dále. +radix-sortu. Pro jistotu si ho pøipomeòme. Algoritmus nejprve setøídí èísla podle poslední +(nejménì významné) cifry, poté podle pøedposlední, pøedpøedposlední a tak dále. \figure{dinic-sort.eps}{Kroky postupného tøídìní podle øádù}{0.4\hsize} diff --git a/2-dinic/dinic-vrcholrez.eps b/2-dinic/dinic-vrcholrez.eps index 4458215..a0d5bee 100644 --- a/2-dinic/dinic-vrcholrez.eps +++ b/2-dinic/dinic-vrcholrez.eps @@ -1,11 +1,11 @@ %!PS-Adobe-2.0 EPSF-2.0 -%%Title: Diagram1.dia +%%Title: Diagram2.dia %%Creator: Dia v0.94 -%%CreationDate: Sun Mar 26 18:47:25 2006 -%%For: bernard +%%CreationDate: Tue Jan 23 17:57:45 2007 +%%For: mares %%Orientation: Portrait %%Magnification: 1.0000 -%%BoundingBox: 0 0 195 210 +%%BoundingBox: 0 0 196 210 %%BeginSetup %%EndSetup %%EndComments @@ -118,109 +118,105 @@ putinterval /start_ol { gsave 1.1 dpi_x div dup scale} bind def /end_ol { closepath fill grestore } bind def 28.346000 -28.346000 scale --5.000000 -8.200000 translate +-2.500000 -9.400000 translate %%EndProlog 1.000000 1.000000 1.000000 srgb -n 7.862959 4.500000 0.950000 3.650000 0 360 ellipse f +n 5.392537 5.700000 0.950000 3.650000 0 360 ellipse f 0.100000 slw [] 0 sd [] 0 sd 0.000000 0.000000 0.000000 srgb -n 7.862959 4.500000 0.950000 3.650000 0 360 ellipse cp s +n 5.392537 5.700000 0.950000 3.650000 0 360 ellipse cp s 0.100000 slw [] 0 sd [] 0 sd 0 slc -n 5.070710 1.819060 m 7.498637 4.266877 l s +n 2.600247 3.019000 m 5.028223 5.466876 l s [] 0 sd 0 slj 0 slc -n 7.762718 4.533121 m 7.233114 4.354183 l 7.498637 4.266877 l 7.588106 4.002074 l ef -n 7.762718 4.533121 m 7.233114 4.354183 l 7.498637 4.266877 l 7.588106 4.002074 l cp s -0.100000 slw +n 5.292304 5.733121 m 4.762700 5.554181 l 5.028223 5.466876 l 5.117693 5.202074 l ef +n 5.292304 5.733121 m 4.762700 5.554181 l 5.028223 5.466876 l 5.117693 5.202074 l cp s +0.200000 slw [] 0 sd [] 0 sd 0 slc -1.000000 0.000000 0.000000 srgb -n 5.070710 6.980940 m 7.247257 6.986301 l s +n 2.600247 8.180900 m 4.665033 8.186017 l s [] 0 sd 0 slj 0 slc -n 7.622256 6.987225 m 7.121641 7.235992 l 7.247257 6.986301 l 7.122873 6.735994 l ef -n 7.622256 6.987225 m 7.121641 7.235992 l 7.247257 6.986301 l 7.122873 6.735994 l cp s -0.100000 slw +n 5.040031 8.186946 m 4.539413 8.435706 l 4.665033 8.186017 l 4.540652 7.935708 l ef +n 5.040031 8.186946 m 4.539413 8.435706 l 4.665033 8.186017 l 4.540652 7.935708 l cp s +0.200000 slw [] 0 sd [] 0 sd 0 slc -n 5.348959 4.400000 m 7.416489 2.400883 l s +n 2.878497 5.600000 m 4.865695 3.678595 l s [] 0 sd 0 slj 0 slc -n 7.686076 2.140216 m 7.500404 2.667498 l 7.416489 2.400883 l 7.152848 2.308047 l ef -n 7.686076 2.140216 m 7.500404 2.667498 l 7.416489 2.400883 l 7.152848 2.308047 l cp s +n 5.135285 3.417930 m 4.949608 3.945210 l 4.865695 3.678595 l 4.602055 3.585756 l ef +n 5.135285 3.417930 m 4.949608 3.945210 l 4.865695 3.678595 l 4.602055 3.585756 l cp s 0.100000 slw [] 0 sd [] 0 sd 0 slc -0.000000 0.000000 0.000000 srgb -n 7.905600 2.233600 m 11.130797 2.233600 l s +n 5.435137 3.433600 m 8.660334 3.433600 l s [] 0 sd 0 slj 0 slc -n 11.505797 2.233600 m 11.005797 2.483600 l 11.130797 2.233600 l 11.005797 1.983600 l ef -n 11.505797 2.233600 m 11.005797 2.483600 l 11.130797 2.233600 l 11.005797 1.983600 l cp s -0.100000 slw +n 9.035334 3.433600 m 8.535334 3.683600 l 8.660334 3.433600 l 8.535334 3.183600 l ef +n 9.035334 3.433600 m 8.535334 3.683600 l 8.660334 3.433600 l 8.535334 3.183600 l cp s +0.200000 slw [] 0 sd [] 0 sd 0 slc -1.000000 0.000000 0.000000 srgb -n 8.033600 4.601600 m 10.947342 4.546675 l s +n 5.563137 5.801600 m 8.365137 5.748782 l s [] 0 sd 0 slj 0 slc -n 11.322275 4.539607 m 10.827076 4.798986 l 10.947342 4.546675 l 10.817652 4.299075 l ef -n 11.322275 4.539607 m 10.827076 4.798986 l 10.947342 4.546675 l 10.817652 4.299075 l cp s +n 8.740070 5.741714 m 8.244871 6.001093 l 8.365137 5.748782 l 8.235448 5.501182 l ef +n 8.740070 5.741714 m 8.244871 6.001093 l 8.365137 5.748782 l 8.235448 5.501182 l cp s 0.100000 slw [] 0 sd [] 0 sd 0 slc -0.000000 0.000000 0.000000 srgb -n 8.097600 7.033600 m 11.322270 7.058710 l s +n 5.627137 8.233600 m 8.851849 8.258710 l s [] 0 sd 0 slj 0 slc -n 11.697259 7.061629 m 11.195327 7.307729 l 11.322270 7.058710 l 11.199220 6.807744 l ef -n 11.697259 7.061629 m 11.195327 7.307729 l 11.322270 7.058710 l 11.199220 6.807744 l cp s +n 9.226837 8.261629 m 8.724906 8.507729 l 8.851849 8.258710 l 8.728799 8.007744 l ef +n 9.226837 8.261629 m 8.724906 8.507729 l 8.851849 8.258710 l 8.728799 8.007744 l cp s 0.100000 slw [] 0 sd [] 0 sd 0 slc -n 8.033600 7.033600 m 10.999634 5.125842 l s +n 5.563137 8.233600 m 8.529212 6.325840 l s [] 0 sd 0 slj 0 slc -n 11.315027 4.922981 m 11.029744 5.403724 l 10.999634 5.125842 l 10.759263 4.983201 l ef -n 11.315027 4.922981 m 11.029744 5.403724 l 10.999634 5.125842 l 10.759263 4.983201 l cp s +n 8.844605 6.122981 m 8.559320 6.603722 l 8.529212 6.325840 l 8.288841 6.183197 l ef +n 8.844605 6.122981 m 8.559320 6.603722 l 8.529212 6.325840 l 8.288841 6.183197 l cp s 0.100000 slw [] 0 sd [] 0 sd 0 slc -n 7.905600 2.553600 m 8.001218 3.987875 l s +n 5.435137 3.753600 m 5.530756 5.187875 l s [] 0 sd 0 slj 0 slc -n 8.026163 4.362044 m 7.743457 3.879781 l 8.001218 3.987875 l 8.242350 3.846522 l ef -n 8.026163 4.362044 m 7.743457 3.879781 l 8.001218 3.987875 l 8.242350 3.846522 l cp s +n 5.555700 5.562044 m 5.272995 5.079781 l 5.530756 5.187875 l 5.771887 5.046522 l ef +n 5.555700 5.562044 m 5.272995 5.079781 l 5.530756 5.187875 l 5.771887 5.046522 l cp s 0.100000 slw [] 0 sd [] 0 sd 0 slc -n 5.281600 6.777600 m 7.401265 5.038387 l s +n 2.811137 7.977600 m 4.930803 6.238387 l s [] 0 sd 0 slj 0 slc -n 7.691168 4.800519 m 7.463210 5.310945 l 7.401265 5.038387 l 7.146052 4.924409 l ef -n 7.691168 4.800519 m 7.463210 5.310945 l 7.401265 5.038387 l 7.146052 4.924409 l cp s +n 5.220705 6.000519 m 4.992748 6.510945 l 4.930803 6.238387 l 4.675589 6.124409 l ef +n 5.220705 6.000519 m 4.992748 6.510945 l 4.930803 6.238387 l 4.675589 6.124409 l cp s showpage diff --git a/2-dinic/dinic-zpetnahrana.eps b/2-dinic/dinic-zpetnahrana.eps deleted file mode 100644 index 7c34ed3..0000000 --- a/2-dinic/dinic-zpetnahrana.eps +++ /dev/null @@ -1,426 +0,0 @@ -%!PS-Adobe-2.0 EPSF-2.0 -%%Title: Diagram1.dia -%%Creator: Dia v0.94 -%%CreationDate: Sun Mar 26 18:44:33 2006 -%%For: bernard -%%Orientation: Portrait -%%Magnification: 1.0000 -%%BoundingBox: 0 0 539 452 -%%BeginSetup -%%EndSetup -%%EndComments -%%BeginProlog -[ /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef -/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef -/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef -/.notdef /.notdef /space /exclam /quotedbl /numbersign /dollar /percent /ampersand /quoteright -/parenleft /parenright /asterisk /plus /comma /hyphen /period /slash /zero /one -/two /three /four /five /six /seven /eight /nine /colon /semicolon -/less /equal /greater /question /at /A /B /C /D /E -/F /G /H /I /J /K /L /M /N /O -/P /Q /R /S /T /U /V /W /X /Y -/Z /bracketleft /backslash /bracketright /asciicircum /underscore /quoteleft /a /b /c -/d /e /f /g /h /i /j /k /l /m -/n /o /p /q /r /s /t /u /v /w -/x /y /z /braceleft /bar /braceright /asciitilde /.notdef /.notdef /.notdef -/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef -/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef -/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef -/space /exclamdown /cent /sterling /currency /yen /brokenbar /section /dieresis /copyright -/ordfeminine /guillemotleft /logicalnot /hyphen /registered /macron /degree /plusminus /twosuperior /threesuperior -/acute /mu /paragraph /periodcentered /cedilla /onesuperior /ordmasculine /guillemotright /onequarter /onehalf -/threequarters /questiondown /Agrave /Aacute /Acircumflex /Atilde /Adieresis /Aring /AE /Ccedilla -/Egrave /Eacute /Ecircumflex /Edieresis /Igrave /Iacute /Icircumflex /Idieresis /Eth /Ntilde -/Ograve /Oacute /Ocircumflex /Otilde /Odieresis /multiply /Oslash /Ugrave /Uacute /Ucircumflex -/Udieresis /Yacute /Thorn /germandbls /agrave /aacute /acircumflex /atilde /adieresis /aring -/ae /ccedilla /egrave /eacute /ecircumflex /edieresis /igrave /iacute /icircumflex /idieresis -/eth /ntilde /ograve /oacute /ocircumflex /otilde /odieresis /divide /oslash /ugrave -/uacute /ucircumflex /udieresis /yacute /thorn /ydieresis] /isolatin1encoding exch def -/cp {closepath} bind def -/c {curveto} bind def -/f {fill} bind def -/a {arc} bind def -/ef {eofill} bind def -/ex {exch} bind def -/gr {grestore} bind def -/gs {gsave} bind def -/sa {save} bind def -/rs {restore} bind def -/l {lineto} bind def -/m {moveto} bind def -/rm {rmoveto} bind def -/n {newpath} bind def -/s {stroke} bind def -/sh {show} bind def -/slc {setlinecap} bind def -/slj {setlinejoin} bind def -/slw {setlinewidth} bind def -/srgb {setrgbcolor} bind def -/rot {rotate} bind def -/sc {scale} bind def -/sd {setdash} bind def -/ff {findfont} bind def -/sf {setfont} bind def -/scf {scalefont} bind def -/sw {stringwidth pop} bind def -/tr {translate} bind def - -/ellipsedict 8 dict def -ellipsedict /mtrx matrix put -/ellipse -{ ellipsedict begin - /endangle exch def - /startangle exch def - /yrad exch def - /xrad exch def - /y exch def - /x exch def /savematrix mtrx currentmatrix def - x y tr xrad yrad sc - 0 0 1 startangle endangle arc - savematrix setmatrix - end -} def - -/mergeprocs { -dup length -3 -1 roll -dup -length -dup -5 1 roll -3 -1 roll -add -array cvx -dup -3 -1 roll -0 exch -putinterval -dup -4 2 roll -putinterval -} bind def -/dpi_x 300 def -/dpi_y 300 def -/conicto { - /to_y exch def - /to_x exch def - /conic_cntrl_y exch def - /conic_cntrl_x exch def - currentpoint - /p0_y exch def - /p0_x exch def - /p1_x p0_x conic_cntrl_x p0_x sub 2 3 div mul add def - /p1_y p0_y conic_cntrl_y p0_y sub 2 3 div mul add def - /p2_x p1_x to_x p0_x sub 1 3 div mul add def - /p2_y p1_y to_y p0_y sub 1 3 div mul add def - p1_x p1_y p2_x p2_y to_x to_y curveto -} bind def -/start_ol { gsave 1.1 dpi_x div dup scale} bind def -/end_ol { closepath fill grestore } bind def -28.346000 -28.346000 scale --5.000000 -16.723001 translate -%%EndProlog - - -1.000000 1.000000 1.000000 srgb -n 9.362500 4.500000 0.950000 3.650000 0 360 ellipse f -0.100000 slw -[] 0 sd -[] 0 sd -0.000000 0.000000 0.000000 srgb -n 9.362500 4.500000 0.950000 3.650000 0 360 ellipse cp s -1.000000 1.000000 1.000000 srgb -n 12.962500 4.500000 0.950000 3.650000 0 360 ellipse f -0.100000 slw -[] 0 sd -[] 0 sd -0.000000 0.000000 0.000000 srgb -n 12.962500 4.500000 0.950000 3.650000 0 360 ellipse cp s -1.000000 1.000000 1.000000 srgb -n 16.362500 4.600000 0.950000 3.650000 0 360 ellipse f -0.100000 slw -[] 0 sd -[] 0 sd -0.000000 0.000000 0.000000 srgb -n 16.362500 4.600000 0.950000 3.650000 0 360 ellipse cp s -1.000000 1.000000 1.000000 srgb -n 20.016500 4.568000 0.950000 3.650000 0 360 ellipse f -0.100000 slw -[] 0 sd -[] 0 sd -0.000000 0.000000 0.000000 srgb -n 20.016500 4.568000 0.950000 3.650000 0 360 ellipse cp s -1.000000 1.000000 1.000000 srgb -n 5.587500 4.400000 0.462500 0.450000 0 360 ellipse f -0.100000 slw -[] 0 sd -[] 0 sd -0.000000 0.000000 0.000000 srgb -n 5.587500 4.400000 0.462500 0.450000 0 360 ellipse cp s -1.000000 1.000000 1.000000 srgb -n 23.497500 4.760000 0.450000 0.450000 0 360 ellipse f -0.100000 slw -[] 0 sd -[] 0 sd -0.000000 0.000000 0.000000 srgb -n 23.497500 4.760000 0.450000 0.450000 0 360 ellipse cp s -0.100000 slw -[] 0 sd -[] 0 sd -0 slc -n 6.050000 4.400000 m 8.875918 4.485311 l s -[] 0 sd -0 slj -0 slc -n 9.250748 4.496626 m 8.743431 4.731425 l 8.875918 4.485311 l 8.758519 4.231653 l ef -n 9.250748 4.496626 m 8.743431 4.731425 l 8.875918 4.485311 l 8.758519 4.231653 l cp s -0.100000 slw -[] 0 sd -[] 0 sd -0 slc -n 9.697600 4.601600 m 12.365524 2.397546 l s -[] 0 sd -0 slj -0 slc -n 12.654628 2.158708 m 12.428381 2.669895 l 12.365524 2.397546 l 12.109931 2.284422 l ef -n 12.654628 2.158708 m 12.428381 2.669895 l 12.365524 2.397546 l 12.109931 2.284422 l cp s -0.100000 slw -[] 0 sd -[] 0 sd -0 slc -n 12.833600 2.233600 m 16.005083 4.434923 l s -[] 0 sd -0 slj -0 slc -n 16.313146 4.648749 m 15.759844 4.569023 l 16.005083 4.434923 l 16.044946 4.158271 l ef -n 16.313146 4.648749 m 15.759844 4.569023 l 16.005083 4.434923 l 16.044946 4.158271 l cp s -0.100000 slw -[] 0 sd -[] 0 sd -0 slc -n 16.673600 4.665600 m 19.706797 4.665600 l s -[] 0 sd -0 slj -0 slc -n 20.081797 4.665600 m 19.581797 4.915600 l 19.706797 4.665600 l 19.581797 4.415600 l ef -n 20.081797 4.665600 m 19.581797 4.915600 l 19.706797 4.665600 l 19.581797 4.415600 l cp s -0.100000 slw -[] 0 sd -[] 0 sd -0 slc -n 20.513600 4.729600 m 22.560732 4.754160 l s -[] 0 sd -0 slj -0 slc -n 22.935705 4.758659 m 22.432742 5.002643 l 22.560732 4.754160 l 22.438740 4.502679 l ef -n 22.935705 4.758659 m 22.432742 5.002643 l 22.560732 4.754160 l 22.438740 4.502679 l cp s -gsave 5.000000 6.562500 translate 0.035278 -0.035278 scale -start_ol -5729 6016 moveto -5533 5056 lineto -5124 5280 4670 5392 conicto -4216 5504 3734 5504 conicto -2921 5504 2452 5229 conicto -1984 4954 1984 4482 conicto -1984 3933 3088 3639 conicto -3172 3617 3213 3606 conicto -3548 3506 lineto -4567 3221 4907 2908 conicto -5248 2595 5248 2053 conicto -5248 1059 4456 433 conicto -3665 -192 2384 -192 conicto -1886 -192 1338 -98 conicto -790 -5 130 192 conicto -331 1280 lineto -896 997 1444 850 conicto -1992 704 2496 704 conicto -3263 704 3743 1023 conicto -4224 1343 4224 1833 conicto -4224 2361 2963 2686 conicto -2854 2714 lineto -2496 2802 lineto -1700 3010 1330 3349 conicto -960 3689 960 4217 conicto -960 5221 1716 5810 conicto -2472 6400 3771 6400 conicto -4283 6400 4769 6304 conicto -5256 6208 5729 6016 conicto -end_ol grestore -gsave 23.440000 6.827500 translate 0.035278 -0.035278 scale -start_ol -4867 6272 moveto -4711 5440 lineto -2658 5440 lineto -1992 2036 lineto -1958 1846 1941 1717 conicto -1925 1589 1925 1516 conicto -1925 1157 2140 994 conicto -2356 832 2831 832 conicto -3872 832 lineto -3698 0 lineto -2714 0 lineto -1796 0 1346 353 conicto -896 706 896 1423 conicto -896 1551 912 1702 conicto -929 1854 963 2036 conicto -1628 5440 lineto -752 5440 lineto -918 6272 lineto -1774 6272 lineto -2121 8064 lineto -3150 8064 lineto -2809 6272 lineto -4867 6272 lineto -end_ol grestore -1.000000 1.000000 1.000000 srgb -n 9.362500 12.891001 0.950000 3.650000 0 360 ellipse f -0.100000 slw -[] 0 sd -[] 0 sd -0.000000 0.000000 0.000000 srgb -n 9.362500 12.891001 0.950000 3.650000 0 360 ellipse cp s -1.000000 1.000000 1.000000 srgb -n 12.962500 12.891001 0.950000 3.650000 0 360 ellipse f -0.100000 slw -[] 0 sd -[] 0 sd -0.000000 0.000000 0.000000 srgb -n 12.962500 12.891001 0.950000 3.650000 0 360 ellipse cp s -1.000000 1.000000 1.000000 srgb -n 16.362500 12.991001 0.950000 3.650000 0 360 ellipse f -0.100000 slw -[] 0 sd -[] 0 sd -0.000000 0.000000 0.000000 srgb -n 16.362500 12.991001 0.950000 3.650000 0 360 ellipse cp s -1.000000 1.000000 1.000000 srgb -n 20.080500 13.023001 0.950000 3.650000 0 360 ellipse f -0.100000 slw -[] 0 sd -[] 0 sd -0.000000 0.000000 0.000000 srgb -n 20.080500 13.023001 0.950000 3.650000 0 360 ellipse cp s -1.000000 1.000000 1.000000 srgb -n 5.587500 12.791001 0.462500 0.450000 0 360 ellipse f -0.100000 slw -[] 0 sd -[] 0 sd -0.000000 0.000000 0.000000 srgb -n 5.587500 12.791001 0.462500 0.450000 0 360 ellipse cp s -1.000000 1.000000 1.000000 srgb -n 23.497500 13.151001 0.450000 0.450000 0 360 ellipse f -0.100000 slw -[] 0 sd -[] 0 sd -0.000000 0.000000 0.000000 srgb -n 23.497500 13.151001 0.450000 0.450000 0 360 ellipse cp s -0.100000 slw -[] 0 sd -[] 0 sd -0 slc -n 6.050000 12.791001 m 8.875918 12.876311 l s -[] 0 sd -0 slj -0 slc -n 9.250748 12.887627 m 8.743431 13.122426 l 8.875918 12.876311 l 8.758519 12.622653 l ef -n 9.250748 12.887627 m 8.743431 13.122426 l 8.875918 12.876311 l 8.758519 12.622653 l cp s -0.100000 slw -[] 0 sd -[] 0 sd -0 slc -n 9.697600 12.992601 m 12.365524 10.788547 l s -[] 0 sd -0 slj -0 slc -n 12.654628 10.549708 m 12.428381 11.060896 l 12.365524 10.788547 l 12.109931 10.675423 l ef -n 12.654628 10.549708 m 12.428381 11.060896 l 12.365524 10.788547 l 12.109931 10.675423 l cp s -0.100000 slw -[] 0 sd -[] 0 sd -0 slc -n 16.545600 13.056601 m 19.593719 13.027628 l s -[] 0 sd -0 slj -0 slc -n 19.968702 13.024063 m 19.471100 13.278804 l 19.593719 13.027628 l 19.466348 12.778827 l ef -n 19.968702 13.024063 m 19.471100 13.278804 l 19.593719 13.027628 l 19.466348 12.778827 l cp s -0.100000 slw -[] 0 sd -[] 0 sd -0 slc -n 20.513600 13.120601 m 22.560732 13.145161 l s -[] 0 sd -0 slj -0 slc -n 22.935705 13.149659 m 22.432742 13.393643 l 22.560732 13.145161 l 22.438740 12.893679 l ef -n 22.935705 13.149659 m 22.432742 13.393643 l 22.560732 13.145161 l 22.438740 12.893679 l cp s -gsave 5.000000 14.953501 translate 0.035278 -0.035278 scale -start_ol -5729 6016 moveto -5533 5056 lineto -5124 5280 4670 5392 conicto -4216 5504 3734 5504 conicto -2921 5504 2452 5229 conicto -1984 4954 1984 4482 conicto -1984 3933 3088 3639 conicto -3172 3617 3213 3606 conicto -3548 3506 lineto -4567 3221 4907 2908 conicto -5248 2595 5248 2053 conicto -5248 1059 4456 433 conicto -3665 -192 2384 -192 conicto -1886 -192 1338 -98 conicto -790 -5 130 192 conicto -331 1280 lineto -896 997 1444 850 conicto -1992 704 2496 704 conicto -3263 704 3743 1023 conicto -4224 1343 4224 1833 conicto -4224 2361 2963 2686 conicto -2854 2714 lineto -2496 2802 lineto -1700 3010 1330 3349 conicto -960 3689 960 4217 conicto -960 5221 1716 5810 conicto -2472 6400 3771 6400 conicto -4283 6400 4769 6304 conicto -5256 6208 5729 6016 conicto -end_ol grestore -gsave 23.440000 15.218501 translate 0.035278 -0.035278 scale -start_ol -4867 6272 moveto -4711 5440 lineto -2658 5440 lineto -1992 2036 lineto -1958 1846 1941 1717 conicto -1925 1589 1925 1516 conicto -1925 1157 2140 994 conicto -2356 832 2831 832 conicto -3872 832 lineto -3698 0 lineto -2714 0 lineto -1796 0 1346 353 conicto -896 706 896 1423 conicto -896 1551 912 1702 conicto -929 1854 963 2036 conicto -1628 5440 lineto -752 5440 lineto -918 6272 lineto -1774 6272 lineto -2121 8064 lineto -3150 8064 lineto -2809 6272 lineto -4867 6272 lineto -end_ol grestore -0.100000 slw -[] 0 sd -[] 0 sd -0 slc -0.975875 0.112764 0.032090 srgb -n 16.163919 9.649882 3.439993 3.439993 87.657866 147.036577 ellipse s -[] 0 sd -0 slj -0 slc -n 13.132801 11.175720 m 13.556586 11.540284 l 13.277703 11.521594 l 13.095421 11.733486 l ef -n 13.132801 11.175720 m 13.556586 11.540284 l 13.277703 11.521594 l 13.095421 11.733486 l cp s -showpage diff --git a/2-dinic/dinic.dia b/2-dinic/dinic.dia index 2e5ec4493ad4768c8c0b8700085ea79a22e49629..95be1c0a80ccf8253d06ee669bffe9e4f7578eca 100644 GIT binary patch literal 11036 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 R_hHn35bYyHF)cWl{{yPD&aD6d literal 11124 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 GQv(2P+TD}@ -- 2.39.2