]> mj.ucw.cz Git - ga.git/commitdiff
Konverze obrázků: krok 1
authorMartin Mares <mj@ucw.cz>
Wed, 6 Jun 2018 13:57:54 +0000 (15:57 +0200)
committerMartin Mares <mj@ucw.cz>
Wed, 6 Jun 2018 13:57:54 +0000 (15:57 +0200)
1-toky/1-toky.tex
10-suffix/10-suffix.tex
11-planar/11-planar.tex
2-dinic/2-dinic.tex
4-ght/4-ght.tex
5-mst/5-mst.tex
8-qheap/8-qheap.tex
9-decomp/9-decomp.tex
all/ga.tex
sgr.tex

index 03f3ae18d9ec57f219c19b2f4002c8d444d58723..53ec7a81d6a68d88d151a62b4a477b843f1c10ca 100644 (file)
@@ -200,7 +200,7 @@ a přidáme novou hranu z~$v^+$ do~$v^-$. Všechny hrany budou mít jednotkové
 Toky nyní odpovídají vrcholově disjunktním cestám, řezy v~síti separátorům.
 \qed
 
-\figure{vertex-split.eps}{Rozdělení vrcholu}{\epsfxsize}
+\figure{vertex-split.epdf}{Rozdělení vrcholu}{\epsfxsize}
 
 Podobně dostaneme neorientované lokální věty (neorientovanou hranu nahradíme
 orientovanými v~obou směrech) a z~nich pak i globální varianty popisující
@@ -226,7 +226,7 @@ a navíc dva nové vrcholy $s$ a~$t$, dále pak všechny původní hrany oriento
 nové hrany z~$s$ do~všech vrcholů partity~$A$ a ze~všech vrcholů partity~$B$ do~$t$.
 Kapacity všech hran nastavíme na jedničky:
 
-\fig{bipartitni.eps}{0.4\hsize}
+\fig{bipartitni.epdf}{0.4\hsize}
 
 Nyní si všimneme, že párování v~původním grafu odpovídají celočíselným tokům v~této síti
 a že velikost toku je rovna velikosti párování. Stačí tedy nalézt maximální celočíselný
index ef391f4e1a401d5408ce769d243fe85c64f81ceb..fe2689373195eb50cbc61b39b8bafaffc2129a6a 100644 (file)
@@ -58,7 +58,7 @@ a žádný z~nich nemůže být vnořený. Takový suffixový strom budeme znač
 
 \s{Příklad:}
 
-\figure{baraba.eps}{Suffixy slova \uv{baraba}: trie, suffixový strom, ST s~dolarem}{\epsfxsize}
+\figure{baraba.epdf}{Suffixy slova \uv{baraba}: trie, suffixový strom, ST s~dolarem}{\epsfxsize}
 
 \>Nyní jak je to s~konstrukcí suffixových stromů:
 
index 66d9a4af4b3be77f6be37e22e1c7a770b059ac95..34573ecb75a3762d02b4f4abbe086c42b46bb99f 100644 (file)
@@ -100,8 +100,8 @@ rovinnost.
 
 \finalfix{
 \smallskip
-\figure{planar1.eps}{Před nakreslením zpětných hran \dots}{\epsfxsize}
-\figure{planar2.eps}{\dots\ po něm (čtverečky jsou externí vrcholy)}{\epsfxsize}
+\figure{planar1.epdf}{Před nakreslením zpětných hran \dots}{\epsfxsize}
+\figure{planar2.epdf}{\dots\ po něm (čtverečky jsou externí vrcholy)}{\epsfxsize}
 }
 
 Všimněme si, že pokud vede z~nějakého už nakresleného vrcholu ještě nenakreslená hrana,
@@ -120,8 +120,8 @@ po~okraji bloku touto hranou (tím vytvoří novou stěnu) a také může
 sloučit několik bloků do~jednoho, jak je vidět z~obrázků.
 
 \separatefix{
-\figure{planar1.eps}{Před nakreslením zpětných hran \dots}{\epsfxsize}
-\figure{planar2.eps}{\dots\ po něm (čtverečky jsou externí vrcholy)}{\epsfxsize}
+\figure{planar1.epdf}{Před nakreslením zpětných hran \dots}{\epsfxsize}
+\figure{planar2.epdf}{\dots\ po něm (čtverečky jsou externí vrcholy)}{\epsfxsize}
 }
 
 Bude se nám hodit, že čas potřebný na~tuto operaci je přímo úměrný počtu
@@ -327,7 +327,7 @@ z~následujících minorů (do~vrcholu~$u$ jsme kontrahovali celou dosud nenakre
 vybarvená část odpovídá vnitřku bloku; hranaté vrcholy jsou externí):
 
 \bigskip
-\centerline{\epsfbox{minor1.eps}\qquad\epsfbox{minor2.eps}}
+\centerline{\epsfbox{minor1.epdf}\qquad\epsfbox{minor2.eps}}
 \bigskip
 
 Minor~$M$ přitom odpovídá situaci, kdy $v$ neleží v~bloku~$B$. Tento případ
@@ -337,9 +337,9 @@ bloku brání nakreslení hrany~$vw$ dovnitř. Vždy pak dojdeme k~některému z
 nerovinných minorů ($N_1$ až $N_3$ jsou isomorfní s~$K_{3,3}$ a $N_4$ s~$K_5$):
 
 \bigskip
-\centerline{\epsfbox{minor3.eps}\qquad\epsfbox{minor4.eps}}
+\centerline{\epsfbox{minor3.epdf}\qquad\epsfbox{minor4.eps}}
 \bigskip
-\centerline{\epsfbox{minor5.eps}\qquad\epsfbox{minor6.eps}}
+\centerline{\epsfbox{minor5.epdf}\qquad\epsfbox{minor6.eps}}
 \bigskip
 
 \>Uvažme, jak bude $B$ vypadat po~odebrání vrcholu~$v$ a hran z~něj vedoucích:
index 86c7236a9164b562708d2bbffa3dc6ccb52cd71a..58d7936fef656a5a4a6c6de3e769637cdd27213f 100644 (file)
@@ -38,7 +38,7 @@ Dále budeme pracovat s~ní.
 \endalgo
 
 \finalfix{\vskip-3pt}
-\figure{dinic-cistasit.eps}{Pročištěná síť rozdělená do vrstev}{0.4\hsize}
+\figure{dinic-cistasit.epdf}{Pročištěná síť rozdělená do vrstev}{0.4\hsize}
 \finalfix{\vskip-6pt}
 
 \s{Složitost algoritmu:}
@@ -94,12 +94,12 @@ o~vrstvu zpět a nikdy nemůže skočit o~více než jednu vrstvu dopředu, a~pr
 délka alespoň $l+2$. Tím je věta dokázána. \qed
 
 % posunut dále, aby vyšla sazba
-\figure{dinic-neprocistenasit.eps}{Nepročištěná síť. Obsahuje zpětné hrany, hrany uvnitř vrstvy a slepé uličky.}{0.45\hsize}
+\figure{dinic-neprocistenasit.epdf}{Nepročištěná síť. Obsahuje zpětné hrany, hrany uvnitř vrstvy a slepé uličky.}{0.45\hsize}
 
 % HACK
 \vskip -10pt
 
-\figure{dinic-cestashranouzpet.eps}{Cesta užívající novou zpětnou hranu}{0.4\hsize}
+\figure{dinic-cestashranouzpet.epdf}{Cesta užívající novou zpětnou hranu}{0.4\hsize}
 
 \h{Poznámky}
 
@@ -169,7 +169,7 @@ 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.
 
 \vbox{
-\inlinefig{dinic-vrcholrez.eps}{0.2\hsize}
+\inlinefig{dinic-vrcholrez.epdf}{0.2\hsize}
 \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)
@@ -235,7 +235,7 @@ Jeho základní myšlenka je podobná, jako u~třídění čísel postupně po 
 radix-sortu neboli přihrádkového třídění. 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}
+%\figure{dinic-sort.epdf}{Kroky postupného třídění podle řádů}{0.4\hsize}
 
 V našem případě budeme postupně budovat sítě čím dál podobnější zadané
 síti a v~nich počítat toky, až nakonec získáme tok pro ni.
@@ -245,14 +245,14 @@ budeme zvětšovat kapacity bit po bitu v~binárním zápisu až k~jejich skute
 Přitom po~každém posunu zavoláme Dinicův algoritmus, aby dopočítal maximální tok.
 Pomocí předchozího odhadu ukážeme, že jeden takový krok nebude příliš drahý.
 
-\figure{dinic-scaling-original.eps}{Původní síť, na hranách jsou jejich kapacity v binárním zápisu}{0.3\hsize}
+\figure{dinic-scaling-original.epdf}{Původní síť, na hranách jsou jejich kapacity v binárním zápisu}{0.3\hsize}
 
 Označme $k$ index nejvyššího bitu v~zápisu kapacit v~zadané síti ($k = \lfloor \log_2C \rfloor$).
 Postupně budeme budovat sítě $G_i$ s~kapacitami $c_i(e) = \lfloor {c(e) / 2^{k-i}} \rfloor$.
 $G_0$ je nejořezanější síť, kde každá hrana má kapacitu rovnou nejvyššímu bitu v~binárním zápisu
 její skutečné kapacity, až $G_k$ je původní síť $G$.
 
-\figure{dinic-scaling-g.eps}{Sítě $G_0$, $G_1$ a $G_2$, jak vyjdou pro síť z~předchozího obrázku}{0.9\hsize}
+\figure{dinic-scaling-g.epdf}{Sítě $G_0$, $G_1$ a $G_2$, jak vyjdou pro síť z~předchozího obrázku}{0.9\hsize}
 
 \>Přitom pro kapacity v~jednotlivých sítích platí:
 
index 1aba6f59dc35fd9a385a8bcbdb8455080c31610e..55748161ff84bf3688b707c431b88345dc5b9fa5 100644 (file)
@@ -50,7 +50,7 @@ $$r(x,z) \ge \min(r(x,y),r(y,z)).$$
 
 \proof Buď $W$ minimální $xz$-řez.
 
-\fig{4-ght-rez.eps}{\epsfxsize}
+\fig{4-ght-rez.epdf}{\epsfxsize}
 
 \noindent Vrchol $y$ musí být v~jedné z~komponent, Pokud je v~komponentě s~$x$, pak $r(y,z) \le d(W)$,
 protože $\d(W)$ je také $yz$-řez. Pokud v~té druhé, analogicky platí $r(x,y) \le d(W)$.
@@ -87,7 +87,7 @@ Nejprve však budeme potřebovat jedno užitečné lemma s~hnusně technickým d
 vrcholy z~$U$. Pak existuje množina vrcholů $W \subseteq U$ taková, že $\d(W)$ je minimální $uv$-řez.
 \foot{To důležité a netriviální je, že celá $W$ leží v~$U$.}
 
-\fig{4-ght-htl.eps}{\epsfxsize}
+\fig{4-ght-htl.epdf}{\epsfxsize}
 
 \proof Nechť je $\d(X)$ minimální $uv$-řez.
 BÚNO můžeme předpokládat, že $s\in U$ a $t\not\in U$, $u\in X$ a $v\not\in X$ a $s\in X$.
@@ -96,7 +96,7 @@ Pokud by tomu tak nebylo, můžeme vrcholy přeznačit nebo některou z~množin
 \checkroom{40pt}
 
 Nyní mohou nastat následující dva případy:\numlist\nalpha
-\vbox to 0pt{\vskip 10pt\rightline{\epsfysize=2.5cm\epsfbox{4-ght-htl-a.eps}}\vss}\vskip-\baselineskip
+\vbox to 0pt{\vskip 10pt\rightline{\epsfysize=2.5cm\epsfbox{4-ght-htl-a.epdf}}\vss}\vskip-\baselineskip
 \:$t\not\in X$. Tehdy si všimneme, že platí:
 \hangindent=-14em\hangafter=-100
 $$\eqalignno{
@@ -126,7 +126,7 @@ $(2)$ tedy platí.
 Nyní stačí nerovnosti $(2)$ a $(1)$ odečíst, čímž získáme: $$d(U \cap X) \le d(X),$$
 což spolu s~obrázkem dokazuje, že $\d(U \cap X)$ je také minimální $uv$-řez.
 
-\vbox to 0pt{\vskip 20pt\rightline{\epsfysize=2.5cm\epsfbox{4-ght-htl-b.eps}}\vss}\vskip-\baselineskip
+\vbox to 0pt{\vskip 20pt\rightline{\epsfysize=2.5cm\epsfbox{4-ght-htl-b.epdf}}\vss}\vskip-\baselineskip
 \:$t\in X$. Postupovat budeme obdobně jako v~předchozím případě. Tentokrát se budou
 hodit tyto nerovnosti:
 \hangindent=-14em\hangafter=-100
@@ -180,8 +180,8 @@ hrany, které mají ve $W$ jeden konec. Tím {\I zajímavé} myslíme to, že z~
 do $v_1$ \<nejlevnější> hrana, která z~něj vedla do množiny $V\setminus W$, případně žádná, pokud
 do této množiny žádná hrana nevedla.}
 
-\fig{4-ght-g1g2-before.eps}{0.45\hsize}
-\fig{4-ght-g1g2-after.eps}{0.9\hsize}
+\fig{4-ght-g1g2-before.epdf}{0.45\hsize}
+\fig{4-ght-g1g2-after.epdf}{0.9\hsize}
 \finalfix{\bigskip}
 
 Dále vytvoříme množiny vrcholů $R_1=R \cap \overline W$ a $R_2=R \cap W$. Dle indukčního
@@ -230,7 +230,7 @@ Protože $\d(W)$ je minimální \st-řez a $\d(X)$ má menší kapacitu, $\d(X)$
 $s$ a $t$. Přitom ale separuje $r_1$ a $r_2$, takže musí separovat buď $s$ a $r_1$, nebo $t$ a $r_2$.
 BÚNO nechť $X$ separuje $s$ a $r_1$.
 
-\fig{4-ght-rezx.eps}{12cm}
+\fig{4-ght-rezx.epdf}{12cm}
 
 Podívejme se nyní na \PGHT{} $T_1$ (víme, že ten je korektní) a nalezněme v~něm nejlevnější hranu $e$ na cestě spojující $s$ a $r_1$.
 Tato hrana definuje řez $\d(U)$, což je minimální $sr_1$-řez, podle HTL i v~celém~$G$. Protože $\d(X)$ je $sr_1$-řez,
index 8e580ef3daea7b3a08dc041be9946b53e22f87c7..f9a8073a69ffbb02614e9c19eb958c972b060a97 100644 (file)
@@ -50,9 +50,9 @@ Pokud $e^\prime \not\in T$ a $e\in T[e^\prime]$, je $\<swap>(T,e,e^\prime)$ opě
 Stačí si uvědomit, že přidáním $e^\prime$ do~$T$ vznikne kružnice (konkrétně $T[e^\prime] + e^\prime$)
 a vynecháním libovolné hrany z~této kružnice získáme opět kostru.
 
-\figure{mst2.eps}{Kostra $T$, cesta $T[e]$ a výsledek operace $\<swap>(T,e',e)$}{\epsfxsize}
+\figure{mst2.epdf}{Kostra $T$, cesta $T[e]$ a výsledek operace $\<swap>(T,e',e)$}{\epsfxsize}
 
-\figure{mst1.eps}{Jeden krok důkazu swapovacího lemmatu}{\epsfxsize}
+\figure{mst1.epdf}{Jeden krok důkazu swapovacího lemmatu}{\epsfxsize}
 
 \s{Lemma o~swapování:}
 Máme-li libovolné kostry $T$ a $T'$, pak lze z~$T$ dostat $T'$ konečným počtem operací \<swap>.
@@ -151,7 +151,7 @@ hranu~$e'$ řezu~$C$. Jenže $e'$ je těžší než~$e$, takže operací $\<swap
 získáme ještě lehčí kostru, což není možné.
 \qed
 
-\figure{mst-rb.eps}{Situace v~důkazu Modrého a Červeného lemmatu}{\epsfxsize}
+\figure{mst-rb.epdf}{Situace v~důkazu Modrého a Červeného lemmatu}{\epsfxsize}
 
 \s{Červené lemma:} Je-li libovolná hrana~$e$ algoritmem kdykoliv obarvena na~červeno,
 pak $e\not\in \Tmin$.
@@ -175,7 +175,7 @@ do~nichž se lze z~$x$ dostat po~modrých hranách. Nyní mohou nastat dvě mož
 neexistují žádné lehké hrany, takže hrana $e$ je nejdražší na~cyklu tvořeném modrou cestou a~touto hranou
 a mohu na ni použít červené pravidlo.
 
-\figure{mst-bez.eps}{Situace v~důkazu Bezbarvého lemmatu}{\epsfxsize}
+\figure{mst-bez.epdf}{Situace v~důkazu Bezbarvého lemmatu}{\epsfxsize}
 
 \:$y \notin M$: Tehdy řez $\delta(M)$ neobsahuje žádné modré hrany, takže na~tento řez
 můžeme použít modré pravidlo.
index 23bec98d923b41e048ccd31999e1353b6133e185..2054177b996fe9cee434efb969f496e065c9b9f4 100644 (file)
@@ -95,7 +95,7 @@ prvku a z~ranků už odvodíme i ostatní operace.
 
 \s{Příklad:} Trie pro zadanou množinu čísel. Ohodnocení hran je pouze pro názornost, není
 součástí struktury.
-\fig{trie.eps}{\hsize}
+\fig{trie.epdf}{\hsize}
 
 \s{Lemma R:} $\rank_X(x)$ je určen jednoznačně kombinací:
 \numlist\pnromanp
index 9b6e53ec10b58948d97f370dec660453af11ff8c..7c0c5a49304081ce457349ddef50a531de32f83f 100644 (file)
@@ -191,7 +191,7 @@ ji nahradíme hranou, která bude vložena právě tehdy, když budou přítomny
 hrany komprimovaných cest tučně.
 
 \medskip
-\fig{mima.eps}{\epsfxsize}
+\fig{mima.epdf}{\epsfxsize}
 
 \s{Algoritmus pro cesty:} Cestu délky~$l$ rozdělíme na~úseky délky $\log n$, pro něž si uložíme
 množiny již přítomných hran (po~bitech jako čísla). Pak si ještě pamatujeme zkomprimovanou cestu (hrany
index c6fe00da81709a53a9a8f2f7c6e591e43d7bd8f5..a08cfa16f47fa430b43af716f9ec67019d45b0d6 100644 (file)
@@ -36,7 +36,7 @@
 \centerline{\large průvodce pro středně pokročilé}
 
 \vfill
-\centerline{\epsfxsize=0.7\hsize\epsfbox{krajina.eps}}
+\centerline{\epsfxsize=0.7\hsize\epsfbox{krajina.epdf}}
 \vfill
 
 \centerline{\large ITI \the\year}
diff --git a/sgr.tex b/sgr.tex
index 4726ed8ff8822e80f99cdc0981724b382314ae39..4af475e5285985c62fccd96bcfc6c58c1a21a9f8 100644 (file)
--- a/sgr.tex
+++ b/sgr.tex
@@ -1,7 +1,6 @@
 % Makra pro sazbu skripticek o grafovych algoritmech
 
 \input mjmac.tex
-\input epsf.tex
 \input btxmac.tex
 \input amssym.tex
 
 % Asymptoticke O-cko
 \def\O{{\cal O}}
 
-% Vlozeni obrazku {obrazek}{popisek}{sirka}
-\def\figure#1#2#3{\bigskip\vbox{\centerline{\epsfxsize=#3\epsfbox{#1}}\smallskip\centerline{#2}}\bigskip}
+% Vlozeni obrazku {obrazek}{popisek}{width sirka}
+\def\putepdf#1#2{\hbox{\pdfximage #1{#2}\pdfrefximage\pdflastximage}}
+\def\figure#1#2#3{\bigskip\vbox{\centerline{\putepdf{#3}{#1}}\smallskip\centerline{#2}}\bigskip}
 
 % Varianta bez popisku
-\def\fig#1#2{\medskip\centerline{\epsfxsize=#2\epsfbox{#1}}\medskip}
+\def\fig#1#2{\medskip\centerline{\putepdf{#2}{#1}}\medskip}
 
 % Dva obrazky vedle sebe s popiskami
 \def\twofigures#1#2#3#4#5#6{\bigskip\centerline{\vbox{\halign{\hfil##\hfil\hskip 4em&\hfil##\hfil\cr
-\epsfxsize=#3\epsfbox{#1}&\epsfxsize=#6\epsfbox{#4}\cr
+\putepdf{#3}{#1}&\putepdf{#6}{#4}\cr
 \noalign{\smallskip}
 #2&#5\cr}}}\bigskip}
 
 % Obrazek vlozeny do praveho okraje odstavce {obrazek}{sirka}
 % Pouzit na zacatku odstavce a nejlepe celou konstrukci zavrit do vboxu, aby se nerozlomila
 \def\inlinefig#1#2{
-\setbox0=\hbox{\epsfxsize=#2\epsfbox{#1}}
+\setbox0=\hbox{\putepdf{#2}{#1}}
 \hangindent=-\wd0
 \advance\hangindent by -3em
 \dimen0=\ht0