]> mj.ucw.cz Git - ga.git/commitdiff
Finalni strankovy zlom, titulni strana, obsah a tiraz.
authorMartin Mares <mj@ucw.cz>
Wed, 7 Mar 2007 18:57:41 +0000 (19:57 +0100)
committerMartin Mares <mj@ucw.cz>
Wed, 7 Mar 2007 18:57:41 +0000 (19:57 +0100)
10-suffix/10-suffix.tex
11-planar/11-planar.tex
3-bipcon/3-bipcon.tex
4-ght/4-ght.tex
5-mst/5-mst.tex
6-borjar/6-borjar.tex
7-ram/7-ram.tex
8-qheap/8-qheap.tex
Makerules
all/ga.tex
sgr.tex

index 9ebcbc1dc64b8bc968cb57917fc4a6ec0793ed1b..9249c8a129ebb87d9a7bf1fed0450ded209bf847 100644 (file)
@@ -176,7 +176,7 @@ $A_i$ zapamatujeme, kde se v~$A_{01}$ vyskytoval.
 a v¹echna $\sigma_0[i:{}]$ u¾ máme setøídìná, mù¾eme v¹echna $\sigma_2[i:{}]$ setøídit dvìma prùchody pøihrádkového tøídìní.
 
 \:Dopoèítáme $L_2$: Stejným trikem jako $A_2$ -- pokud jsou první písmena rùzná, je spoleèný prefix prázdný, jinak
-má délku $1+{\rm LCP}(\sigma_0[i+1:{}],\sigma_0[j+1:{}]) = 1+\min_{i+1\le k< j+1} L_0[k]$. Minimum zvládneme pro ka¾dou
+má délku $1+{\rm LCP}(\sigma_0[i+1:\nobreak{}],\sigma_0[j+1:{}]) = 1+\min_{i+1\le k< j+1} L_0[k]$. Minimum zvládneme pro ka¾dou
 dvojici $i,j$ spoèítat v~konstantním èase pomocí datové struktury pro intervalová minima.
 
 \:$A_0,A_1,A_2\buildrel merge\over\longrightarrow A$ -- sléváme tøi setøídìné posloupnosti,
@@ -310,6 +310,8 @@ bude hodit p
   a jeho funkce \<back>.
 \endalgo
 
+\goodbreak
+
 \s{Èasová slo¾itost:}
 
 Kanonikalizace pracuje v~amortizovanì konstantním èase, proto¾e ka¾dá její iterace
index 8967f2cad3dd29d0233fb7bdea8c646e49896c2b..307940fa29e7fc40a0131d8d13a79f69d95dc174 100644 (file)
@@ -1,6 +1,6 @@
 \input ../sgr.tex
 
-\prednaska{11}{Kreslení grafù do~roviny}{}
+\prednaska{11}{Kreslení grafù do roviny}{}
 
 Rovinné grafy se objevují v~nejrùznìj¹ích praktických aplikacích teorie grafù,
 a~tak okolo nich vyrostlo znaèné mno¾ství algoritmù. I~kdy¾ existují výjimky,
@@ -93,6 +93,11 @@ tak
 le¾ícími pod~ním pøeklopit podle koøenové artikulace, ani¾ bychom poru¹ili
 rovinnost.
 
+\finalfix{
+\figure{planar1.eps}{Pøed nakreslením zpìtných hran \dots}{\epsfxsize}
+\figure{planar2.eps}{\dots\ po nìm (ètvereèky jsou externì aktivní vrcholy)}{\epsfxsize}
+}
+
 V¹imnìme si, ¾e pokud vede z~nìjakého u¾ nakresleného vrcholu je¹tì nenakreslená hrana,
 lze pokraèovat po~nenakreslených hranách a¾ do~koøene DFS stromu. V¹echny vrcholy, ke~kterým
 je¹tì bude potøeba nìco pøipojit (takovým budeme øíkat {\I externì aktivní} a hranám
@@ -106,10 +111,12 @@ trivi
 zpìtnou hranou spojí s~jinými bloky. Zpìtné hrany byly a¾ donedávna
 externì aktivní, tak¾e pøidání jedné zpìtné hrany nahradí cestu
 po~okraji bloku touto hranou (tím vytvoøí novou stìnu) a také mù¾e
-slouèit nìkolik blokù do~jednoho:
+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ì aktivní vrcholy)}{\epsfxsize}
+}
 
 Bude se nám hodit, ¾e èas potøebný na~tuto operaci je pøímo úmìrný poètu
 hran, které ubyly z~vnìj¹í stìny, co¾ je amortizovanì konstanta.
@@ -197,6 +204,7 @@ zpracov
 tj. blok obsahující ¾ivý vrchol. Není-li ¾ivý vrchol èi blok externì aktivní,
 budeme mu øíkat {\I internì aktivní.} Pakli¾e není vrchol/blok ani ¾ivý, ani externì aktivní,
 budeme ho nazývat {\I neaktivní.}
+\finalfix{\looseness=1}
 
 Pøed procházením podstromù tedy nejprve probereme v¹echny zpìtné hrany vedoucí do~$v$
 a oznaèíme ¾ivé vrcholy. Pro ka¾dou zpìtnou hranu potøebujeme o¾ivit vrchol, z~nìj¾
@@ -329,6 +337,7 @@ nerovinn
 \:{\I pøestane být 2-souvislý} -- tehdy se zamìøíme na~bloky le¾ící na~cestì~$xy$:
 
 \numlist\nparen
+\finalfix{\rightskip=0.5\rightskip}
 \:{\I $w$ je artikulace} na této cestì -- BÚNO je taková artikulace v~DFS prohledána po~bloku obsahujícím~$x$,
 ale pøed~$y$. Tehdy nám jistì $x$ nezabránilo v~tom, abychom do~$w$ do¹li (mù¾e blokovat
 jenom jednu stranu hranice), tak¾e jsme se ve~$w$ museli rozhodnout, ¾e pøednostnì zpracujeme
@@ -346,6 +355,7 @@ hrana~$vw$, musela na~druh
 \:{\I zùstane 2-souvislý} a vznikne z~nìj nìjaký blok~$B'$ -- tehdy rozebereme, jaké hrany vedou mezi $v$ a $B'$:
 
 \numlist\nparen
+\finalfix{\rightskip=0.5\rightskip}
 \:{\I více ne¾ dvì hrany} -- minor~$N_2$.
 \:{\I alespoò jedna hrana na \uv{horní} cestu} (to jest na~tu, na~ni¾ nele¾í~$w$) -- minor~$N_3$.
 \:{\I dvì hrany do~$x,y$ nebo na \uv{dolní} cestu} -- a» u¾ jsme vstoupili na~hranici bloku~$B'$
index 2393c5f089d53e08c9f0d8f7e6a695df9c11792b..f5cf697395220cbdffbb3ceaaf8ad024ffa9ab1c 100644 (file)
@@ -73,7 +73,7 @@ Pro minim
 
 \h{Globálnì minimální øez (Nagamochi, Ibaraki \cite{nagaiba:conn})}
 
-Buï $G$ neorientovaný graf s~nezáporným ohodnocením na~hranách. Oznaèíme si:
+Buï $G$ neorientovaný graf s~nezáporným ohodnocením hran. Oznaèíme si:
 
 \s{Znaèení:}
 
index 313dc540b141dec21cd256e72f0eedc983c3724c..1aed5f7c302223e29cfe34daa3b7463d03d6b081 100644 (file)
@@ -84,8 +84,8 @@ Nyn
 Nejprve v¹ak budeme potøebovat jedno u¾iteèné lemma s~hnusnì technickým dùkazem:
 
 \s{Hnusnì technické lemma (HTL):} Buïte¾ $s,t$ vrcholy grafu $(V,E)$, $\d(U)$ minimální \st-øez a $u\ne v$ dva rùzné
-vrcholy z~$U$. Pak existuje mno¾ina vrcholù $W \subseteq U$ taková, ¾e $\d(W)$ je minimální  $uv$-øez.
-[To dùle¾ité a netriviální je, ¾e celá $W$ le¾í v~$U$.]
+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}
 
@@ -93,7 +93,7 @@ vrcholy z~$U$. Pak existuje mno
 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$.
 Pokud by tomu tak nebylo, mù¾eme vrcholy pøeznaèit nebo nìkterou z~mno¾in nahradit jejím doplòkem.
 
-Nyní mohou nastat dva pøípady:\numlist\nalpha
+Nyní mohou nastat následující dva pøípady:\numlist\nalpha
 \vbox to 0pt{\rightline{\epsfysize=2.5cm\epsfbox{4-ght-htl-a.eps}}\vss}\vskip-\baselineskip
 {\advance\hsize by -14em
 \:$t\not\in X$. Tehdy si v¹imneme, ¾e platí:
@@ -184,6 +184,7 @@ do t
 
 \fig{4-ght-g1g2-before.eps}{0.45\hsize}
 \fig{4-ght-g1g2-after.eps}{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
 pøedpokladu ($R_1$ i $R_2$ jsou men¹í ne¾ $R$) existuje \PGHT{} $T_1=((R_1,F_1),C_1)$
index 86b42184243ce721ba4fee1223a222ed3ff500a9..8c27cf3572414fce2b1c6710aef25ad10c6d3bb2 100644 (file)
@@ -52,6 +52,8 @@ a vynech
 
 \figure{mst2.eps}{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}
+
 \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>.
 
@@ -63,8 +65,6 @@ pro kterou $\vert \check{T} \symdiff T' \vert = \vert T \symdiff T' \vert -2$.
 Po~koneèném poètu tìchto krokù tedy musíme dojít k~$T'$.
 \qed
 
-\figure{mst1.eps}{Jeden krok dùkazu swapovacího lemmatu}{\epsfxsize}
-
 \s{Monotónní lemma o~swapování:}
 Je-li $T$ kostra, k~ní¾ neexistují ¾ádné lehké hrany, a~$T'$ libovolná kostra,
 pak lze od~$T$ k~$T'$ pøejít posloupností swapù, pøi které váha kostry neklesá.
index 139ba1d8f77f6799b9264f630ee554c64a957d2f..1c4e63edb7580ed3bd6ec556934fc4158d72ed90 100644 (file)
@@ -1,6 +1,6 @@
 \input ../sgr.tex
 
-\prednaska{6}{Rychlej¹í algoritmy na~minimální kostry}{}
+\prednaska{6}{Rychlej¹í algoritmy na minimální kostry}{}
 
 V~této kapitole popí¹eme nìkolik pokroèilej¹ích algoritmù pro problém minimální
 kostry. Vesmìs to budou rùzná vylep¹ení klasických algoritmù z~minulé kapitoly.
@@ -61,7 +61,6 @@ T
 Pokud je $\cal C$ minorovì uzavøená tøída grafù, existuje koneèná mno¾ina grafù $Z$ taková,
 ¾e pro ka¾dý graf $G$ platí:
 $$G \not\in {\cal C} \iff \exists H \in Z: H \preceq G.$$
-
 Jinými slovy, ka¾dou minorovì uzavøenou tøídu lze charakterizovat {\I koneèným} poètem zakázaných minorù.
 To není samo sebou, dokazuje se to dosti obtí¾nì (a~je to jedna z~nejslavnìj¹ích kombinatorických
 vìt za~posledních mnoho let), ale plyne z~toho spousta zajímavých dùsledkù.
index 717add95bc4d3000adfccf6ec0b3b8ed4c5e89d9..e66bbb6f40b3573e31afd81164f4e53eaf92232a 100644 (file)
@@ -198,7 +198,7 @@ aby programy 
 ale je definováno, ¾e neinicializovanou buòku mù¾eme pøeèíst a dostaneme
 nìjakou korektní, i kdy¾ libovolnou, hodnotu. Tehdy nám pomù¾e:
 
-{\narrower
+%{\narrower\medskip
 
 \s{Vìta:} Buï $P$ program pro Word-RAM s~nulami inicializovanou
 pamìtí, bì¾ící v èase $T(n)$. Pak existuje program~$P'$ pro Word-RAM
@@ -227,7 +227,7 @@ jestli je $M[i]$ ji
 v~tém¾e èase udr¾ovat.
 \qed
 
-}
+%\medskip}
 
 \s{\uv{Minové pole}:} Neinicializované buòky není ani dovoleno èíst.
 V~tomto pøípadì nejsme schopni deterministické redukce, ale alespoò
@@ -254,6 +254,8 @@ po
 Libovolný $n$-slo¾kový vektor, jeho¾ slo¾ky jsou $b$-bitová èísla
 ($n(b+1)\le w$), zakódujeme poskládáním jednotlivých slo¾ek vektoru za~sebe,
 prolo¾enì nulovými bity:
+
+\nobreak
 \alik{\0 x_{n-1} \0 x_{n-2} \9\9\9 \0 x_1\0 x_0  \cr}
 
 \>S~vektory budeme provádìt následující operace: (latinkou znaèíme vektory,
@@ -331,6 +333,8 @@ proh
 
 Staèí zvolit bitovou masku, která v~$i$-té slo¾ce ponechá právì $\varphi(i)$-tý bit.
 
+\finalfix{\goodbreak}
+
 \:$\<Pack>(x)$ -- dostane vektor nul a jednièek a vytvoøí èíslo, jeho¾ bity
 jsou právì slo¾ky vektoru (jinými slovy ¹krtne nuly mezi bity):
 
index 46ebdc5e19d2e50de93d6e9f2d60f746e010262a..325f702cdd4eecd5105473beab21d02e9278c07d 100644 (file)
@@ -93,9 +93,9 @@ nesouvisej
 pøekvapení v¹ak to, kam jsme se dostali, bude staèit ke~spoèítání ranku
 prvku a z~rankù u¾ odvodíme i ostatní operace.
 
-\ss{Pøíklad:}
-\figure{trie.eps}{Trie. Ohodnocení hran je pouze pro názornost, není
-souèástí struktury.}{\hsize}
+\s{Pøíklad:} Trie pro zadanou mno¾inu èísel. Ohodnocení hran je pouze pro názornost, není
+souèástí struktury.
+\fig{trie.eps}{\hsize}
 
 \s{Lemma R:} $\rank_X(x)$ je urèen jednoznaènì kombinací:
 \numlist\pnromanp
index 0877f11167701fb777b3f92f63e9b098de62fd60..f64ab7d55fdd7bc18497fbd961d8ed4b6132e265 100644 (file)
--- a/Makerules
+++ b/Makerules
@@ -16,7 +16,7 @@ all: $P.ps
        pstops '2:0L(210mm,0mm)+1L(210mm,148mm)' <$< | sed 's/^%%BoundingBox: .*/%%BoundingBox: 0 0 595 842/;s/^%%DocumentPaperSizes:.*/%%DocumentPaperSizes: a4\n%%Orientation: Landscape/' >$@
 
 mostlyclean:
-       rm -f *.dvi *.log *~ core *.o *.aux *.bbl *.blg
+       rm -f *.dvi *.log *~ core *.o *.aux *.bbl *.blg *.toc
 
 clean:: mostlyclean
        rm -f *.ps *.pdf
index bf8b460e52b024c00e2b97258ba2faf4022f8980..28a2d82b726b4386fe7f3fa49eb8e4b826e85836 100644 (file)
 \input ../sgr.tex
 
+\def\separatefix#1{}
+\def\finalfix#1{#1}
+
+% Sazba obsahu
+\newwrite\toc
+\immediate\openout\toc=ga.toc
+\def\writetoc#1#2{\write\toc{\string\tocentry{#1}{#2}{\the\count0}}}
+\def\tocout{
+\immediate\closeout\toc
+\immediate\openin\toc=ga.toc
+\ifeof\toc
+\else
+\input ga.toc
+\fi
+\immediate\closein\toc
+}
+
+% Ujisti se, ze na strance zbyva dost mista
+\def\prechapter#1#2{%
+\vskip 0pt plus 30pt
+\goodbreak
+\vskip 0pt plus -30pt
+\writetoc{#1}{#2}
+}
 \def\chapterend{\bigbreak\bigbreak}
 
+{\nopagenumbers
+\vglue 0pt
+
+\vfill
+\centerline{\big Martin Mare¹}
+\vskip 1in
+\centerline{\Big Krajinou grafových algoritmù}
+\bigskip
+\bigskip
+\centerline{\large prùvodce pro støednì pokroèilé}
+
+\vfill
+\vfill
+\centerline{\large ITI 2007}
+\vfill\eject
+
+\vglue 0pt plus 1fill
+\leftline{\copyright~2007~Martin Mare¹}
+\bigskip
+\leftline{\bo ISBN 12-34567-89-0}
+\bigskip
+\eject
+}
+
 \input body.tex
 
 \prednaska{L}{Literatura}{}
-
 \dumprefs
-\bye
+
+\vfill\eject
+
+~~~
+
+\vfill\eject
+
+\def\writetoc#1#2{}
+\prednaska{O}{Obsah}{}
+
+\def\tocentry#1#2#3{\line{\hbox to 1.5em{\hfil #1.} #2\dotfill #3}\vskip 2pt}
+\tocout
+\tocentry{O}{Obsah}{\the\count0}
+
+\vfill\eject
+\nopagenumbers
+{\obeylines\parskip=0pt\parindent=0pt
+\vglue 0pt plus 1fill
+
+{\large Mgr. Martin Mare¹}
+
+\medskip
+
+{\Large Krajinou grafových algoritmù}
+
+\bigskip
+
+Vydal Institut Teoretické Informatiky
+~~~Univerzita Karlova v Praze
+~~~Matematicko-Fyzikální Fakulta
+~~~Malostranské nám.~25
+~~~118 00 Praha 1
+~~~jako 999. publikaci v~ITI Series.
+
+\bigskip
+
+Sazbu písmem Computer Modern v~programu \TeX\ provedl autor.
+\medskip
+Vytisklo Reprostøedisko UK MFF.
+
+\bigskip
+
+Vydání první
+72 stran
+Náklad 100 výtiskù
+Praha 2007
+
+\bigskip
+
+{\bo ISBN 12-34567-89-0}
+}
+
+\eject\end
diff --git a/sgr.tex b/sgr.tex
index 9e8b25d44a145b5a44b6b2a594f8e78c811155bf..72bb2273c1af63357f31a10ec2e08eb390304670 100644 (file)
--- a/sgr.tex
+++ b/sgr.tex
 
 % Zacatek prednasky {cislo prednasky}{jmeno prednasky}{jmeno zapisovatele}
 \def\prednaska#1#2#3{%
+\prechapter{#1}{#2}
+\vbox{%
 \line{{\Large\bf #1. #2} \hfil {\it #3}}
 \vskip 4pt
-\hrule
+\hrule}
 \medskip
 }
+\def\prechapter#1#2{}
 
 % Nadpis {text}
 \def\h#1{\medbreak\leftline{\bf #1}\nobreak\smallskip\nobreak}
@@ -67,7 +70,7 @@
 \begingroup
 \let\:=\algoitem
 \let\*=\algohang
-\parskip=1pt plus 1pt minus 0.3pt
+\parskip=1pt plus 0.2pt minus 0.3pt
 \rightskip=2em
 \itemcount=0
 }
 \multiply\dimen0 by \count0
 \vbox to 0pt{}
 \nointerlineskip
-\vbox to 0pt{\vbox to \dimen0{\vss\rightline{\box0\hskip 1em}\vss}}
+\vbox to 0pt{\vbox to \dimen0{\vss\rightline{\box0\hskip 1em}\vss}\vss}
 \nointerlineskip
 }
 
 
 % Matematicke symboly
 \def\symdiff{\mathop{\Delta}}
+
+% Hacky pro finalni sazbu
+\def\separatefix#1{#1}
+\def\finalfix#1{}