bude omezena $\O(\log n)$.%
\foot{Mimochodem, Path compression samotná by také na~slo¾itost $\O(\log n)$ amortizovanì staèila.}
-\s{Vìta:} (Tarjan et al.) Kombinace Union by rank a Path compression vede k~amortizované
+\s{Vìta:} (Tarjan, van Leeuwen \cite{tarjan84setunion}) Kombinace Union by rank a Path compression vede k~amortizované
slo¾itosti obou operací $\O(\alpha(n))$, kde $\alpha$ je inverzní Ackermannova funkce.%
\foot{Existuje varianta tohoto algoritmu, která dosahuje stejné slo¾itosti i v~nejhor¹ím
pøípadì; té¾ je známo, ¾e asymptoticky lep¹í slo¾itosti nelze dosáhnout.}
Dále nás bude zajímat speciální varianta Union-Find problemu, v~ní¾ dopøedu známe
posloupnost unionù, èili strom, který spojováním komponent vznikne. Popí¹eme algoritmus,
který po~poèáteèním pøedzpracování v~èase $\O(n)$ zvládne \<Union> i \<Find> v~amortizovanì
-konstantním èase.
+konstantním èase. Tento algoritmus je kombinací dekompozic popsaných v~\cite{alstrup97optimal}
+a \cite{alstrup98marked}.
\s{Definice:} {\I (Microtree/Macrotree dekompozice)} Pro zakoøenìný strom $T$ o~$n$ vrcholech
definujeme:
\h{Fredericksonova clusterizace}
Mikro/makro-stromová dekompozice není jediný zpùsob, jak stromy rozkládat. Nìkdy
-se hodí napøíklad následující my¹lenka:
+se hodí napøíklad následující my¹lenka: \cite{frederickson91ambivalent}
\s{Definice:} (Fredericksonova clusterizace) Nech» $G$ je graf s~vrcholy stupòù nejvý¹e~3
a $c\ge 1$. Pak $c$-clusterizací grafu $G$ nazveme libovolný rozklad
\:\dots\ co dál?
\endlist
-Vìrni vtipùm o~matfyzácích pøevedeme radìji tento problém na~jiný:
+\>Vìrni vtipùm o~matfyzácích a èlánku \cite{bender00lca} pøevedeme radìji tento problém na~jiný.
\s{Problém:} {\I (Range Minimum Query alias RMQ)} Chceme pøedzpracovat posloupnost èísel
$a_1,\ldots a_n$ tak, abychom umìli rychle poèítat $\min_{x\le i\le y} a_i$.%
\s{Vìta:} Problémy LCA i RMQ je mo¾né øe¹it v~konstantním èase na~dotaz
po~pøedzpracování v~lineárním èase.
+\references
\bye
-%%%%%%%%%%%%
-% Zápisek tøetího semináre z grafových agoritmù - ze dne 20.3.2006
-% Zapsal Jiøí Peinlich - peinlich@seznam.cz a Michal Kùrka - michal.kurka@gmail.com
-%%%%%%%%%%%
-
\input ../sgr.tex
\prednaska{3}{Bipartitní párování a globální k-souvislost}{zapsali Jiøí Peinlich, Michal Kùrka}
a minimálního øezu. V~této si pøedvedeme dva algoritmy pro podobné problémy,
které se obejdou bez tokù.
-\h{Maximální párování v regulárním bipartitním grafu}
+\h{Maximální párování v regulárním bipartitním grafu \cite{alon:matching}}
Nejprve si nadefinujme operaci {\I Degree Split,} která dostane jako vstup libovolný
$2k$-regulární graf $G=(V,E)$ a rozdìlí ho na~podgrafy $G_1=(V,E_1)$ a $G_2=(V,E_2)$, které budou
Pro minimální øezy v~neorientovaných grafech ov¹em existuje následující rychlej¹í algoritmus:
-\h{Globálnì minimální øez (Nagamochi, Ibaraki)}
+\h{Globálnì minimální øez (Nagamochi, Ibaraki \cite{nagaiba:conn})}
Buï $G$ neorientovaný graf s~ohodnocením na~hranách. Oznaèíme si:
malý poèet pøihrádek, pøípadnì zalo¾ení nové pøihrádky na správném místì.
\<DeleteMax> i \<Increase> pak budou mít slo¾itost $\O(1)$ a celý algoritmus $\O(mn)$.
+\references
\bye
grafu v~èase $\tau=\O(n^{2/3}m)$ pro~jednotkové kapacity, $\O(n^2m)$ pro obecné.
Nalézt minimální \st-øez pro ka¾dou dvojici vrcholù
bychom tedy dokázali v~èase $\O(n^2\tau)$. Tento výsledek budeme
-chtít zlep¹it.
+chtít zlep¹it. \cite{gomoryhu}
\s{Znaèení:} Máme\li{} graf $(V,E)$ a $U\subseteq V$, $\d(U)$ znaèí hrany vedoucí
mezi $U$ a $\overline U$, formálnì tedy $\d(U)=E \cap ((U \times \overline U) \cup (\overline U \times U))$.
zpracujeme rekurzivnì. Celou výstavbu tedy zvládneme v~èase $\O(n\tau)$, èili $\O(n^{5/3}m)$
pro neohodnocené grafy.
+\todo{Odkazy na rychlej¹í algoritmy}
+
+\references
\bye
Ostatním hranám nele¾ícím v~kostøe budeme øíkat {\I tì¾ké.}
\endlist
-\s{Vìta:} Kostra~$T$ je minimální $\Leftrightarrow$ neexistuje hrana lehká vzhledem k~$T$.
+\s{Vìta:} (Tarjan \cite{tarjan:dsna}) Kostra~$T$ je minimální $\Leftrightarrow$ neexistuje hrana lehká vzhledem k~$T$.
Tato vìta nám dává pìknou alternativní definici MST, která místo sèítání vah váhy
pouze porovnává, èili jí místo èísel staèí (kvazi)uspoøádání na~hranách. Ne¾ se dostaneme
meta-algoritmu. Rozeberme si tedy rovnou ten. Formulujeme ho pro pøípad, kdy jsou v¹echny
váhy hran navzájem rùzné.
-\s{Meta-algoritmus:}
+\s{Meta-algoritmus:} (Tarjan \cite{tarjan:dsna})
\algo
\:Na poèátku jsou v¹echny hrany bezbarvé.
\s{Cvièení:}
Naleznìte algoritmus pro výpoèet MST v~grafech ohodnocených vahami $\{1,\ldots k\}$ se slo¾itostí $\O(mk)$.
+\references
\bye
expandováním kontrahovaných vrcholù, je ${\rm MST}(G)$.
To nás vede k následujícímu algoritmu:
-\s{Algoritmus: MST v rovinných grafech}
+\s{Algoritmus: MST v rovinných grafech} \cite{mm:mst}
\algo
\:Ke ka¾dému vrcholu najdeme nejlevnìj¹í incidentní hranu -- dostaneme mno¾inu hran $F \subseteq E$.
\:Graf zkontrahujeme podle $F$ následovnì:
mù¾eme pro odhad jejich hustoty pou¾ít pøedchozí vìtu a dostaneme lineární èasovou slo¾itost
dokonce pro ka¾dou netriviální minorovì uzavøenou tøídu grafù.
-%%%Tomas Gavenciak
-
\h{Jarníkùv algoritmus s Fibonacciho haldou}
Pùvodní Jarníkùv algoritmus s~haldou má díky ní slo¾itost $\O(m\log n)$, to zlep¹íme pou¾itím
Tyto trojice bude halda udr¾ovat uspoøádané podle vah.
\newcount\algcnt
-\s{Algoritmus: Jarníkùv algoritmus~\#2 (Fredman, Tarjan)}
+\s{Algoritmus: Jarníkùv algoritmus~\#2 (Fredman, Tarjan \cite{ft:fibonacci})}
\algo
\:Zaèneme libovolným vrcholem $v_0$: $T=\{v_0\}$.
\:Do~haldy $H$ umístíme v¹echny sousedy $v_0$ spolu s pøíslu¹nými hranami.
jednotlivé podkostøièky zastavené v rùstu pøeteèením haldy, podle kterých
graf následnì zkontrahujeme a budeme pokraèovat s mnohem men¹ím grafem.
-\s{Algoritmus: Jarníkùv algoritmus~\#4 (Fredman, Tarjan)}
+\s{Algoritmus: Jarníkùv algoritmus~\#4 (Fredman, Tarjan \cite{ft:fibonacci})}
\algo
\:Opakuji, dokud mám netriviální $G$ (s alespoò jednou hranou):
\::$t=\vert V_G\vert$.
\itemize\ibull
\:$\O(m\alpha(m,n))$, kde $\alpha(m,n)$ je obdoba inverzní
Ackermannovy funkce definovaná podobnì, jako je $\beta(m,n)$ obdobou $\log^*$.
- [Chazelle 2000]
+ \cite{chazelle:ackermann}, \cite{pettie:ackermann}
\:$\O({\cal T}(m,n))$, kde ${\cal T}(m,n)$ je hloubka optimálního rozhodovacího stromu
pro nalezení minimální kostry v~grafech s~patøièným poètem hran a vrcholù
- [Pettie, Ramachandran 2002].
+ \cite{pettie:optimal}.
Jeliko¾ ka¾dý deterministický algoritmus zalo¾ený na~porovnávání vah lze popsat rozhodovacím stromem,
je tento algoritmus zaruèenì optimální. Jen bohu¾el nevíme, optimální stromy vypadají, tak¾e
je stále otevøeno, zda lze MST nalézt v~lineárním èase. Nicménì jeliko¾ tento algoritmus
pracuje i na~Pointer Machine, víme, ¾e pokud je lineární slo¾itosti mo¾né dosáhnout, není k~tomu
potøeba výpoèetní síla RAMu.\foot{O výpoèetních modelech viz pøí¹tí kapitola.}
-\:$\O(m)$ pro grafy s~celoèíselnými vahami (na~RAMu) [Fredman, Willard 1990] -- uká¾eme v~jedné
+\:$\O(m)$ pro grafy s~celoèíselnými vahami (na~RAMu) \cite{fw90trans} -- uká¾eme v~jedné
z~následujících kapitol.
\:$\O(m)$, pokud u¾ máme hrany setøídìné podle vah: jeliko¾ víme, ¾e zále¾í jen na~uspoøádání,
mù¾eme váhy pøeèíslovat na~$1\ldots n$ a pou¾ít pøedchozí algoritmus.
-\:$\O(m)$ randomizovanì v~prùmìrném pøípadì [Karger, Klein, Tarjan 1995]
-\:Na~zji¹tìní, zda je zadaná kostra minimální, staèí $\O(m)$ porovnání [Komlós 1984] a dokonce
- lze v~lineárním èase zjistit, která to jsou [King 1995]. Z~toho ostatnì vychází pøedchozí
+\:$\O(m)$ randomizovanì v~prùmìrném pøípadì \cite{karger:randomized}.
+\:Na~zji¹tìní, zda je zadaná kostra minimální, staèí $\O(m)$ porovnání \cite{komlos:verify} a dokonce
+ lze v~lineárním èase zjistit, která to jsou \cite{king:verify}. Z~toho ostatnì vychází pøedchozí
randomizovaný algoritmus.
\endlist
+\references
\bye
Obvykle se pou¾ívají následující dva modely, které se li¹í zejména v~tom,
zda je mo¾né pamì» indexovat v~konstantním èase èi nikoliv.
-\s{Pointer Machine (PM)} pracuje se dvìma typy dat: {\I èísly} v~pevnì omezeném
+\s{Pointer Machine (PM)} \cite{benamram95what} pracuje se dvìma typy dat: {\I èísly} v~pevnì omezeném
rozsahu a {\I pointery,} které slou¾í k~odkazování na~data ulo¾ená v~pamìti.
Pamì» tohoto modelu je slo¾ená z pevného poètu registrù na~èísla a
na~pointery a z~neomezeného poètu {\I krabièek.} Ka¾dá krabièka má pevný
pøímoèaøe, ov¹em pole musíme reprezentovat stromem, tak¾e indexování stojí
$\O(\log n)$.
-\s{Random Access Machine (RAM)} je rodinka modelù, které mají spoleèné to, ¾e
+\s{Random Access Machine (RAM)} \cite{demaine} je rodinka modelù, které mají spoleèné to, ¾e
pracují výhradnì s~(pøirozenými) èísly a ukládají je do~pamìti indexované
opìt èísly. Instrukce v~programu (podobné assembleru) pracují s~operandy,
které jsou buï konstanty nebo buòky pamìti adresované pøímo (èíslem buòky),
\h{Van Emde-Boas Trees}
-VEBT jsou RAMová struktura, která si pamatuje mno¾inu prvkù $X$ z nìjakého
+VEBT \cite{boas77} jsou RAMová struktura, která si pamatuje mno¾inu prvkù $X$ z nìjakého
omezeného universa $X \subseteq \{0,\ldots,U-1\}$, a umí s~ní provádìt
\uv{stromové operace} (vkládání, mazání, nalezení následníka apod.) v~èase
$\O(\log\log U)$. Pomocí takové struktury pak napøíklad doká¾eme:
}}$$
\s{Definice:} VEBT($U$) pro universum velikosti $U$ (BÚNO $U=2^{2^k}$)
-obsahuje:
+obsahuje: (ekvivalentní formulace podle \cite{demaine})
\itemize\ibull
jestli je $M[i]$ ji¾ inicializovaná, a~jsme také schopni tuto informaci
v~tém¾e èase udr¾ovat.
\qed
+
+\todo{References}
}
\s{\uv{Minové pole}:} Neinicializované buòky není ani dovoleno èíst.
pøedpokládaly prostrkané nuly a ty tu nemáme. Mù¾eme si je ale snadno poøídit
a bity, které jsme nulami pøepsali, prostì zpracovat zvlá¹».}
+\references
\bye
Pøedchozí struktura má zajímavé vlastnosti, ale èasto je její pou¾ití
znemo¾nìno omezením na~velikost èísel. Popí¹eme tedy o~nìco slo¾itìj¹í
-konstrukci, která doká¾e toté¾, ale s~a¾ $w$-bitovými èísly.
+konstrukci \cite{fw90trans}, která doká¾e toté¾, ale s~a¾ $w$-bitovými èísly.
Tato struktura má spí¹e teoretický význam (konstrukce je znaènì komplikovaná
a skryté konstanty nemalé), ale pøekvapivì mnoho my¹lenek je pou¾itelných
i v~praxi.
\todo{Aplikace na~kostry.}
+\references
\bye
-
-% LocalWords: MSB Vlozeni
kde ${\rm Sort}(\ldots)$ je èas potøebný pro setøídìní $n$ symbolù z~abecedy~$\Sigma$. V~kombinaci s~pøedchozími
výsledky nám tedy dává lineární konstrukci ST($\sigma$) pro libovolnou fixní abecedu.
-\s{Algoritmus:} (Konstrukce $A$ a $L$ podle Kärkkäinena a Sanderse)
+\s{Algoritmus:} (Konstrukce $A$ a $L$ podle Kärkkäinena a Sanderse \cite{karkkainen03simple})
\algo
\:Redukujeme abecedu na~$1\ldots n$: ve~vstupním slovu je nejvý¹e $n$ rùzných znakù,
\h{Ukkonenova inkrementální konstrukce}
-\>Ukkonenùv algoritmus konstruuje suffixový strom bez dolarù inkrementálnì: zaène se stromem
+\>Ukkonenùv algoritmus \cite{ukkonen95line} konstruuje suffixový strom bez dolarù inkrementálnì: zaène se stromem
pro prázdné slovo (ten má jediný vrchol, a to koøen) a postupnì pøidává dal¹í znaky na~konec
slova. To zvládne v~èase $\O(1)$ amortizovanì na~pøidání jednoho znaku.
Pro slovo~$\sigma$ tedy doká¾e sestrojit ST v~èase $\O(\vert\sigma\vert)$.
stromu amortizovanì konstantní.
\qed
+\references
\bye
all: $P.ps
-%.dvi: %.tex ../sgr.tex
+%.dvi: %.tex ../sgr.tex ../ga.bib
csplain $<
+ bibtex $*
+ csplain $<
+ csplain $< # BibTeX requires 3 passes of TeXing!
%.pdf: %.tex ../sgr.tex
pdfcsplain $<
pstops '2:0L(212mm,0mm)+1L(212mm,150mm)' <$< | sed 's/^%%BoundingBox: .*/%%BoundingBox: 0 0 595 842/' >$@
mostlyclean:
- rm -f *.dvi *.log *~ core *.o *-700.tex *-a5.ps
+ rm -f *.dvi *.log *~ core *.o *-700.tex *-a5.ps *.aux *.bbl *.blg
clean:: mostlyclean
rm -f *.ps *.pdf
include ../Makerules
-ga.tex: $(X) preprocess
+ga.dvi: ga.tex body.tex
+
+body.tex: $(X) preprocess
./preprocess $(X) >$@
clean::
- rm -f ga.tex
+ rm -f body.tex
upload::
( cd .. && make clean )
--- /dev/null
+\input ../sgr.tex
+
+\def\chapterend{\bigbreak\bigbreak}
+
+\input body.tex
+
+\references
+\bye
use warnings;
use strict;
-print <<EOF ;
-\\input ../sgr.tex
-EOF
foreach my $f (@ARGV) {
my $d = $f;
$d =~ s@/[^/]*$@/@;
open X, $f or die;
while (<X>) {
/^\\input .*sgr\.tex/ && next;
+ /^\\references/ && next;
/^\\bye/ && last;
s@\\(figure|epsfbox){([^}]+)}@\\$1\{$d$2}@g;
print;
}
close X;
- print "\\bigbreak\\bigbreak\n";
+ print "\\chapterend\n";
}
-print <<EOF ;
-\\bye
-EOF
--- /dev/null
+@inproceedings{ alstrup98marked,
+ author = "Stephen Alstrup and Thore Husfeldt and Theis Rauhe",
+ title = "Marked Ancestor Problems",
+ booktitle = "{IEEE} Symposium on Foundations of Computer Science",
+ pages = "534--544",
+ year = "1998",
+ url = "citeseer.ist.psu.edu/alstrup98marked.html" }
+
+@inproceedings{ bender00lca,
+ author = "Michael A. Bender and Martin Farach-Colton",
+ title = "The {LCA} Problem Revisited",
+ booktitle = "Latin American Theoretical {INformatics}",
+ pages = "88-94",
+ year = "2000",
+ url = "citeseer.ist.psu.edu/bender00lca.html" }
+
+@inproceedings{ frederickson91ambivalent,
+ author = "Greg N. Frederickson",
+ title = "Ambivalent Data Structures for Dynamic 2-Edge-Connectivity and k Smallest Spanning Trees",
+ booktitle = "{IEEE} Symposium on Foundations of Computer Science",
+ pages = "632-641",
+ year = "1991",
+ url = "citeseer.ist.psu.edu/frederickson91ambivalent.html" }
+
+@article{ tarjan84setunion,
+ author = {Robert E. Tarjan and Jan van Leeuwen},
+ title = {Worst-case Analysis of Set Union Algorithms},
+ journal = {J. ACM},
+ volume = {31},
+ number = {2},
+ year = {1984},
+ issn = {0004-5411},
+ pages = {245--281},
+ doi = {http://doi.acm.org/10.1145/62.2160},
+ publisher = {ACM Press},
+ address = {New York, NY, USA},
+}
+
+@article{ alstrup97optimal,
+ author = "Stephen Alstrup and Jens P. Secher and Maz Spork",
+ title = "Optimal On-Line Decremental Connectivity in Trees",
+ journal = "Information Processing Letters",
+ volume = "64",
+ number = "4",
+ pages = "161-164",
+ year = "1997",
+ url = "citeseer.ist.psu.edu/alstrup97optimal.html" }
+
+@inproceedings{ karkkainen03simple,
+ author = "J. K{\"a}rkk{\"a}inen and P. Sanders",
+ title = "Simple linear work suffix array construction",
+ booktitle = "Proc. 13th International Conference on Automata, Languages and Programming",
+ publisher = "Springer",
+ year = "2003",
+ url = "citeseer.ist.psu.edu/arkk03simple.html" }
+
+@article{ ukkonen95line,
+ author = "Esko Ukkonen",
+ title = "On-Line Construction of Suffix Trees",
+ journal = "Algorithmica",
+ volume = "14",
+ number = "3",
+ pages = "249--260",
+ year = "1995",
+ url = "citeseer.ist.psu.edu/ukkonen95line.html" }
+
+@inproceedings { fw90trans,
+ author = "M. Fredman and D. E. Willard",
+ title = "{Trans-dichotomous algorithms for minimum spanning trees and shortest paths}",
+ booktitle = "{Proceedings of FOCS'90}",
+ pages = "719--725",
+ year = "1990"
+}
+
+@article{boas77,
+ author = {Peter van Emde Boas},
+ title = {Preserving Order in a Forest in Less Than Logarithmic Time
+ and Linear Space.},
+ journal = {Inf. Process. Lett.},
+ volume = {6},
+ number = {3},
+ year = {1977},
+ pages = {80-82},
+ bibsource = {DBLP, http://dblp.uni-trier.de}
+}
+
+@inproceedings{thorup03ac0,
+ author = {Mikkel Thorup},
+ title = {On AC0 implementations of fusion trees and atomic heaps},
+ booktitle = {SODA '03: Proceedings of the fourteenth annual ACM-SIAM symposium on Discrete algorithms},
+ year = {2003},
+ isbn = {0-89871-538-5},
+ pages = {699--707},
+ location = {Baltimore, Maryland},
+ publisher = {Society for Industrial and Applied Mathematics},
+ address = {Philadelphia, PA, USA},
+ }
+
+@article{ benamram95what,
+ author = "Ben-Amram",
+ title = "What is a ``Pointer Machine''?",
+ journal = "SIGACTN: SIGACT News (ACM Special Interest Group on Automata and Computability Theory)",
+ volume = "26",
+ year = "1995",
+ url = "citeseer.ist.psu.edu/ben-amram95what.html" }
+
+@unpublished { demaine,
+ author = "Erik Demaine",
+ title = "{Advanced Data Structures}",
+ note = "{MIT Lecture Notes}",
+ year = 2005
+}
+
+@article{ matsui:planar,
+ author = "Tomomi Matsui",
+ title = "{The Minimum Spanning tree Problem on a Planar Graph}",
+ journal = "Discrete Applied Mathematics",
+ volume = "58",
+ year = "1995",
+ pages = "91--94",
+ url = "citeseer.nj.nec.com/2319.html"
+}
+
+@article{ chazelle:ackermann,
+ author = "Bernard Chazelle",
+ title = "{A Minimum Spanning Tree Algorithm with Inverse-Ackermann Type Complexity}",
+ journal = jacm,
+ volume = "47",
+ pages = "1028--1047",
+ year = "2000"
+}
+
+@article{ nesetril:history,
+ author = "Jaroslav Ne{\v{s}}et{\v{r}}il",
+ title = "{Some remarks on the history of MST-problem}",
+ journal = "Archivum Mathematicum",
+ volume = "33",
+ pages = "15--22",
+ year = "1997"
+}
+
+@article{ nesetril:boruvka,
+ author = "Jaroslav Ne{\v{s}}et{\v{r}}il and E. Milkov{\'a} and H. Ne{\v{s}}et{\v{r}}ilov{\'a}",
+ title = "{Otakar Bor{\accent23u}vka on Minimum Spanning Tree Problem}",
+ journal = "Discrete Mathematics",
+ volume = "233(1--3)",
+ pages = "3--36",
+ year = "2001"
+}
+
+@unpublished { nesetril:minors,
+ author = "Jaroslav Ne{\v{s}}et{\v{r}}il and Patrice Ossona de Mendez",
+ title = "{Colorings and Homomorphism of Minor Closed Classes}",
+ note = "To appear in {\it Pollack-Goodman Festschrift,} Springer Verlag, 2002."
+}
+
+@article { boruvka:ojistem,
+ author = "Otakar Bor{\accent23u}vka",
+ title = "{O jist\'em probl\'emu minim\'aln\'\i{}m (About a Certain Minimal Problem)}",
+ journal = "Pr\'ace mor. p\v{r}\'\i{}rodov\v{e}d. spol. v~Brn\v{e}",
+ volume = "III",
+ year = "1926",
+ pages = "37--58",
+ note = "Czech with German summary"
+}
+
+@book { tarjan:dsna,
+ author = "Robert E. Tarjan",
+ title = "{Data structures and network algorithms}",
+ series = "{CMBS-NSF Regional Conf. Series in Appl. Math.}",
+ volume = 44,
+ year = "1983",
+ publisher = "SIAM"
+}
+
+@article { gh:history,
+ author = "R. L. Graham and P. Hell",
+ title = "{On the history of the minimum spanning tree problem}",
+ journal = "{Annals of the History of Computing}",
+ volume = "7",
+ year = "1985",
+ pages = "43--57"
+}
+
+@techreport { pettie:ackermann,
+ author = "Seth Pettie",
+ title = "{Finding minimum spanning trees in $O(m\alpha(m,n))$ time}",
+ institution = "Univ. of Texas at Austin",
+ year = "1999",
+ number = "TR99-23",
+ type = "Tech Report"
+}
+
+@inproceedings { pettie:optimal,
+ author = "Seth Pettie and Vijaya Ramachandran",
+ title = "{An Optimal Minimum Spanning Tree Algorithm}",
+ booktitle = "{Proceedings of ICALP'2000}",
+ year = "2000",
+ publisher = "Springer Verlag",
+ pages = "49--60"
+}
+
+@article { karger:randomized,
+ author = "D. R. Karger and P. N. Klein and R. E. Tarjan",
+ title = "{Linear expected-time algorithms for connectivity problems}",
+ journal = jacm,
+ volume = "42",
+ pages = "321--328",
+ year = "1995"
+}
+
+@article { frederickson:online,
+ author = "Greg N. Frederickson",
+ title = "{Data structures for on-line updating of minimum spanning trees}",
+ journal = "{SIAM Journal on Computing}",
+ volume = "14",
+ pages = "781--798",
+ year = "1985"
+}
+
+@article { mm:mst,
+ author = "Martin Mare\v{s}",
+ title = "{Two linear time algorithms for MST on minor closed graph classes}",
+ journal = "{Archivum Mathematicum}",
+ volume = "40",
+ pages = "315--320",
+ year = "2004"
+}
+
+@article{ ft:fibonacci,
+ author = {Michael L. Fredman and Robert Endre Tarjan},
+ title = {Fibonacci heaps and their uses in improved network optimization algorithms},
+ journal = {J. ACM},
+ volume = {34},
+ number = {3},
+ year = {1987},
+ issn = {0004-5411},
+ pages = {596--615},
+ doi = {http://doi.acm.org/10.1145/28869.28874},
+ publisher = {ACM Press},
+ address = {New York, NY, USA},
+ }
+
+@article{ komlos:verify,
+ author = {J{\'a}nos Koml{\'o}s},
+ title = {Linear verification for spanning trees.},
+ journal = {Combinatorica},
+ volume = {5},
+ number = {1},
+ year = {1985},
+ pages = {57--65},
+ bibsource = {DBLP, http://dblp.uni-trier.de}
+}
+
+@inproceedings{ king:verify,
+ author = "Valerie King",
+ title = "A Simpler Minimum Spanning Tree Verification Algorithm",
+ booktitle = "Workshop on Algorithms and Data Structures",
+ pages = "440--448",
+ year = "1995",
+ url = "citeseer.ist.psu.edu/king95simpler.html" }
+
+@article{ gomoryhu,
+ author = "R. E. Gomory and T. C. Hu",
+ title = "Multi-Terminal Network Flows",
+ journal = "{Journal of SIAM}",
+ volume = {9},
+ number = {4},
+ year = {1961},
+ pages = {551--570}
+}
+
+@article{ nagaiba:conn,
+ author = {Hiroshi Nagamochi and Toshihide Ibaraki},
+ title = {Computing edge-connectivity in multigraphs and capacitated graphs},
+ journal = {SIAM J. Discret. Math.},
+ volume = {5},
+ number = {1},
+ year = {1992},
+ issn = {0895-4801},
+ pages = {54--66},
+ doi = {http://dx.doi.org/10.1137/0405004},
+ publisher = {Society for Industrial and Applied Mathematics},
+ address = {Philadelphia, PA, USA},
+ }
+
+@article{ alon:matching,
+ author = {Noga Alon},
+ title = {A simple algorithm for edge-coloring bipartite multigraphs},
+ journal = {Inf. Process. Lett.},
+ volume = {85},
+ number = {6},
+ year = {2003},
+ issn = {0020-0190},
+ pages = {301--302},
+ doi = {http://dx.doi.org/10.1016/S0020-0190(02)00446-5},
+ publisher = {Elsevier North-Holland, Inc.},
+ address = {Amsterdam, The Netherlands, The Netherlands},
+ }
-% Makra pro sazbu poznamek ze Seminare z grafovych algoritmu
+% Makra pro sazbu skripticek o grafovych algoritmech
\input mjmac.tex
\input epsf.tex
+\input btxmac.tex
\language=\czech
\chyph
\def\figure#1#2#3{\bigskip\vbox{\centerline{\epsfxsize=#3\epsfbox{#1}}\smallskip\centerline{#2}}\bigskip}
% Todo
-\def\todo#1{\leftline{\bf TODO: \it #1}}
+\def\todo#1{{\bf TODO: \it #1}}
% Blackboard bold font
\newfam\bbfam
\font\bbten=bbold10
\textfont\bbfam=\bbten
\def\bb{\bbten\fam\bbfam}
+
+% Reference na konci kapitoly
+\bibliographystyle{abbrv}
+\def\references{
+\h{Literatura}
+\def\bblhook{\parskip=2pt plus 1pt minus 0.5pt}
+\bibliography{../ga}
+}