From: Martin Mares Date: Tue, 24 May 2011 12:59:51 +0000 (+0200) Subject: Oziveni starych prednasek o DFS+BFS a Dijkstrovi. Nutno predelat. X-Git-Url: http://mj.ucw.cz/gitweb/?a=commitdiff_plain;h=ff2a3c568eae2311a522a583aaa0922898393176;p=ads1.git Oziveni starych prednasek o DFS+BFS a Dijkstrovi. Nutno predelat. --- diff --git a/2007/11-dijkstra/11-dijkstra.tex b/2007/11-dijkstra/11-dijkstra.tex deleted file mode 100644 index 57558e7..0000000 --- a/2007/11-dijkstra/11-dijkstra.tex +++ /dev/null @@ -1,162 +0,0 @@ -\input ../lecnotes.tex - -\prednaska{11}{Nekrat¹í cesty podruhé}{(zapsali Du¹an Renát a Radek Tupec)} - -Na~této pøedná¹ce budeme studovat problém hledání nejkrat¹ích cest -v~grafech ohodnocených reálnými èísly. - -\s{Situace:} Máme orientovany graf~$G$ a funkce $l : E(G) \rightarrow {\bb R}$ -pøiøazující hranám jejich ohodnocení (délky). Pro vrcholy $u,v\in V(G)$ budeme -chtít spoèítat jejich vzdálenost $d(u,v)$, co¾ bude délka nejkrat¹í cesty z~$u$ -do~$v$ nebo $\infty$, pokud ¾ádná cesta neexistuje. - -Aby se vzdálenosti chovaly \uv{rozumnì} (tj. jako metrika), budeme chtít, aby platily -následující vlastnosti: - -\itemize\ibull -\:$d(u, u) = 0$, -\:$d(u, v) \leq d(u, w) + d(w, v)$ (trojúhelníková nerovnost). -\endlist - -To nemusí obecnì platit (kazí nám to záporné cykly), proto budeme studovat -pouze grafy, v~nich¾ záporné cykly neexistují. Pak u¾ budou obì vlastnosti -splnìny, jak plyne napøíklad z~následujícího lemmatu: - -\s{Lemma:} -V~grafu bez záporných cyklù existuje ke~ka¾dému nejkrat¹ímu sledu z~$u$ do~$v$ stejnì dlouhá $uv$-cesta. - -\proof -Máme-li nejkrat¹í $uv$-sled, který není cestou, opakuje se v~nìm nìjaký vrchol $w \in V(G)$. -Délka cyklu $l(c) \geq 0 \Rightarrow l(u\dots v\dots w) \leq l(pùvodní sled)$. Tento postup mù¾eme opakovat a po koneèném poètu krokù dostaneme cestu, tedy platí trojúhelníková nerovnost. -\qed - -Opakování: Dijkstrùv algoritmus -\itemize\ibull -\:$D(v)$ \dots doèasná vzdálenost z $s$ do $v$ -\:Znaèky $Z(v)$ \itemize\ibull -\::Nevidìn -\::Vidìn -\::Hotov -\endlist -\endlist - -%druha strana zapisku -\algo -\:$D(*) \leftarrow +\infty , D(s) \leftarrow 0$ -\:$Z(*) \leftarrow Neviden, Z(s) \leftarrow V$ -\:while $\exists v : Z(v) = V$ -\::vybereme $v : Z(v) = V, D(v) = min$ -\::$Z(v) = H$ -\::for $\forall w : (v, w) \in E(G)$ -\:::$D(w) \leftarrow min( D(w), D(w) + l(v, w))$ -\::if $Z(w) = N \Rightarrow Z(w) \leftarrow V$ -\endalgo - -\s{Vìta:} Pokud $G$ je nezápornì ohodnocený graf, pak se Dijkstrùv algoritmus zastaví a vydá $\forall v : D(v) = d(s, v)$ (tedy správné hodnoty). - -\proof Následující posloupností lemmat.\qed - -\s{Lemma 1:} Pokud $v_0,\dots,v_k$ je nejkrat¹í $v_0v_k$-cesta, pak $v_0,\dots,v_{k-1}$ je nejkrat¹í $v_0v_{k-1}$-cesta. - -\proof -Pokud by tomu tak nebylo, mù¾eme $v_0,\dots,v_{k-1}$ vymìnit za~krat¹í cestu, a~tím -získat krat¹í $v_0v_k$-cestu. -\qed - -\s{Lemma 2:} Algoritmus se zastaví po $\leq n$ prùchodech cyklem. - -\proof -Zøejmé z~toho, ¾e ka¾dý vrchol uzavøeme nejvý¹e jednou. -\qed - -\s{Lemma 3:} Po zastavení jsou hotovy právì vrcholy dosa¾itelné z $s$. - -\proof -Viz minulá pøedná¹ka. -\qed - -\s{Lemma 4:} $D(v)$ uzavíraných vrcholù tvoøí neklesající posloupnost. - -\proof -V okam¾iku, kdy uzavíráme $v$ platí $\forall w \notin H : D(w) \geq D(v)$, pøípadnì pøepoèítáme $D(w)$ na $D(v) - l(v, w) \geq D(v)$. -\qed - -\s{Lemma 5:} Pokud $v \in H$, pak $D(v)$ se u¾ nezmìní. - -\proof -Indukcí podle bìhu algoritmu. -\qed - -\s{Lemma 6:} Pro $\forall v D(v)$ je délka nejkrat¹í $sv$-cesty, její¾ vnitøní vrcholy le¾í v¹echny v $H$. - -\proof -\itemize\ibull -\:po 1. prùchodu OK -\:uzavíráme-li dal¹í vrchol $v$: -\itemize\relax -\:a) $D(w)$ pro $w \in H$ -Podle Lemma 5 se $D(w)$ nemìní. Musíme nahlédnout, ¾e se opravdu zmìnit nemá. -\:b) $D(w)$ pro $w \notin H$ -$D(w) = min{D(v) + l(v, w)}$ -\endlist -\endlist -\qed - -Existuje pomalej¹í algoritmus pro grafy se zápornými hranami bez záporných cyklù. -\s{Bellman-Fordùv algoritmus} -\algo -\:$D(*) \leftarrow \infty, D(s) \leftarrow 0$ -\:Opakuji -\::Pro $\forall v \in V$ -\:::$prozkoumej(v)$ -\:::(koukne se, jestli nejde vylep¹it cestu¨ -\:::do sousedù $v$) -\:dokud se nìjaké $D(\dots)$ mìní -\endalgo - -\s{Lemma 1:} Pokud $D(v) < \infty$, pak existuje sled z $s$ do $v$ délky $D(v)$. -(speciálnì z toho plyne $\forall v D(v) \geq d(s,v)$) - -\s{Lemma 2:} $\forall v D(v)$ nikdy neroste. -\s{Lemma 3:} Po $k$ fázích je $\forall v D(v) \leq$ délka nejkrat¹ího $sv$-sledu o $\leq k$ hranách. -%ctvrta stranka -\proof -Indukcí\dots pro $k \geq 0$ OK -Indukèní krok: Dobìhla $k-1$ fáze, pou¹tíme $k$-tou - -\qed -\s{Vìta:} Pro graf bez záporných cyklù se Bellman-Fordùv algoritmus zastaví po nejvý¹e $m$ fázích a vydá $D(v) = d(s, v)$ pro v¹echna $v$. (zøejmé z lemmat) - -\s{Lemma 4:} Pokud v grafu existuje záporný cyklus dosa¾itelný z $s$, algoritmus se nezastaví. (Zajímavý test na to, zda graf obsahuje záporný cyklus.) - -Èasová slo¾itost Bellman-Fordova algoritmu : $O(n*m)$ - -\s{Floyd-Warshallùv algoritmus} -$G$ je graf se záporným ohodnocením hran, bez záporných cyklù -$D_{i,j}^k$ = délka nejkrat¹í cesty z $v_i$ do $v_j$ pøes $v_1 \dots v_k$ -%pozorovani -$D_{ij}^0 = l(v_i, v_j)$, $D_{ii}^0 = 0$ -$D_{ij}^n = d(v_i, v_j)$ - skuteèná vzdálenost v grafu -\algo -\:$D_{i,j} \rightarrow l(v_i, v_j), D_{i,i} \rightarrow 0 \forall i, j$ -\:for $k = 1$ to n -\::for $i = 1$ to n -\:::for $j = 1$ to n -\::::$D_{i,j} = min(D_{i,j}, D_{i,k} + D_{k,j})$ -\endalgo - -\s{Vìta:} Floyd-Warshallùv algoritmus spoèítá $D_{i,j} = d(v_i, v_j)$ v èase $O(n^3)$. - -\>Shrnutí: - -\s{$s \rightarrow *$} -Dijkstrùv algoritmus $O(n^2)$ -\dots s haldou $O((n+m)\log m)$ -\dots s regulární haldou $O(n + m*log n)$ -\dots s Fibbonaciho haldou $O(n*log n + m)$ -Bellman-Ford $O(n*m)$ - -\s{$* \rightarrow *$} -Floyd-Warshall $O(n^3)$ - -\bye diff --git a/2007/11-dijkstra/Makefile b/2007/11-dijkstra/Makefile deleted file mode 100644 index a8acb25..0000000 --- a/2007/11-dijkstra/Makefile +++ /dev/null @@ -1,3 +0,0 @@ -P=11-dijkstra - -include ../Makerules diff --git a/2009/3-dfs/3-dfs.tex b/2009/3-dfs/3-dfs.tex deleted file mode 100644 index b183ac4..0000000 --- a/2009/3-dfs/3-dfs.tex +++ /dev/null @@ -1,249 +0,0 @@ -\input ../lecnotes.tex - -\prednaska{3}{Prohledání do~¹íøky a do~hloubky}{()} - -\h{Prohledání do~¹íøky (BFS) {\I Breadth-First Search} } - -Jde o grafový algoritmus, který postupnì prochází v¹echny vrcholy v~dané komponentì souvislosti. -Algoritmus nejprve projde v¹echny sousedy poèáteèního vrcholu, poté sousedy sousedù, atd\dots -Díky tomuto zpùsobu procházení se nìkdy té¾ nazývá \uv{\I algoritmus vlny }, nebo» se z~poèáteèního vrcholu ¹íøí pomyslná vlna, která v~ka¾dém kroku nalezne v¹echny uzly, které mají od~poèáteèního vrcholu stejnou vzdálenost. Algoritmus se tedy skvìle hodí napøíklad pro hledání nejkra¹í cesty mezi dvìma vrcholy v~grafu. -\figure{praseci-graf.eps}{Praseèí graf}{55mm} - - -\s{Popis algoritmu:} -Na zaèátku vlo¾íme do~fronty $Q$ poèáteèní vrchol $v_0$. Dále si v~poli $Z$ budeme pro ka¾dý vrchol pamatovat znaèku, zda jsme ho ji¾ nav¹tívili, èi nikoli. Pro vrchol $v_0$ si tedy dosazením jednièky zapamatujeme, ¾e je ji¾ nav¹tívený. V~dal¹ím kroku pak zkoumáme frontu $Q$: pokud není prázdná, vezmeme z~ní první vrchol a podíváme se na~v¹echny jeho sousedy $w$. Pokud je¹tì nejsou oznaèené (tedy $Z[w]=0$), tak je oznaèíme (zapamatujeme si, ¾e je pøedáváme ke zpracování a u¾ je nemáme znovu nav¹tìvovat) a pøidáme je do~fronty k~následnému zpracování. Takto cyklus opakujeme, dokud není fronta prázdná. - -\s{Poznámka:} -Nejprve se podívejme, jak algoritmus pracuje na orientovaném grafu. Pro neorientovaný graf funguje algoritmus analogicky, co¾ si uká¾eme pozdìji. - -\s{Algoritmus:} - -\algo -\:$Q \leftarrow \{v_0\}$. -\:$Z[*] \leftarrow 0, Z[v_0] \leftarrow 1$. -\:Dokud $Q \not= \emptyset $ opakujeme: -\::Vyzvedneme vrcholy $u$ z~$Q$. -\::$\forall w: (u,w)\in E$: -\:::Je-li $Z[w]=0 \Rightarrow Z[w] \leftarrow 1$, pøidáme $w$ do~$Q$. -\endalgo - - -\>{\I Pozorování:} {\I BFS} se zastaví. - -\proof Zpracováváme jen vrcholy, které byly ve~frontì. Ka¾dý vrchol se dostane do~fronty maximálnì jednou. (Ka¾dý je oznaèen max. jednou, znaèky neodstraòujeme.) - -\s{Lemma:} BFS($v_0$) oznaèí $v$ právì tehdy, kdy¾ existuje cesta z~$v_0$ do~$v$. - -\proof -\uv{$\Longrightarrow$}: -Platí jako invariant po celou dobu bìhu algoritmu. To doká¾eme indukcí dle doby bìhu algoritmu: - -První krok indukce je triviální, nebo» cesta z~$v_0$ do~$v_0$ existuje v¾dy. Nyní si pøedstavme, ¾e oznaèujeme vrchol~$v$ pøes hranu~$uv$. To znamená, ¾e vrchol~$u$ ji¾ musel být oznaèený. Dle indukèního pøedpokladu tedy existuje cesta z~$v_0$ do~$u$, a tudí¾ pokud k~této cestì \uv{pøilepíme} hranu~$uv$, dostáváme sled z~$v_0$ do~$v$, který lze v¾dy zredukovat na cestu. - -\uv{$\Longleftarrow$} Sporem: Nech» existuje neoznaèený vrchol $v$ dosa¾itelný po nìjaké cestì z~$v_0$. Uva¾me nejkrat¹í cestu $(v_0, v)$: $v_0, v_1 \dots, v_k = v$ a vezmìme minimální~$i$ takové, ¾e~$v_i$ není oznaèený. Víme, ¾e~$i>0$ (nebo»~$v_0$ je urèitì oznaèen u¾ na zaèátku algoritmu). Tudí¾~$v_{i-1}$ je oznaèený. Museli jsme tedy pou¾ít hranu~$v_{i-1}~v_i$ a oznaèit vrchol~$v_i$, co¾ je SPOR. \qed - -Nyní tedy víme, ¾e je algoritmus správný, a máme pøedstavu o tom, jak funguje. Podíváme-li se na~nìj podrobnìji, zjistíme, ¾e je hodnì závislý na~tom, jak si budeme graf pamatovat. Zanedlouho zároveò zjistíme, ¾e nám reprezentace grafu v~pamìti znatelnì ovlivní èasovou (i pamì»ovou) slo¾itost celého algoritmu. - -\h{Reprezentace grafu v~pamìti} - -Oznaème vrcholy grafu na~následujícím obrázku písmeny A, B, C, D. -Pokud bychom chtìli tento graf uchovat v~pamìti poèítaèe, máme na~výbìr -hned nìkolik zpùsobù, jak to udìlat. -\figure{imgn_o4.eps}{}{\epsfxsize} -\s{1. matice sousednosti} - -Matice sousednosti pro graf $G$ na~$n$ vrcholech je ètvercové pole $A$ o velikosti $n \times n$, jeho¾ prvky na -souøadnicích $i, j$ jsou dány následujícím pøedpisem: - -$$ A_{i,j} = \left\{ \matrix {1 \Leftrightarrow \{i,j\} \in E \cr - 0 \Leftrightarrow \{i,j\} \notin E \cr - } -\right.$$ - -Na~pozicích $i,j$ je jednièka, pokud v~grafu $G$ vede hrana z~vrcholu~$i$ do~vrcholu~$j$, jinak to je nula. -Ná¹ graf z~obrázku vý¹e by tedy v~maticové reprezentaci vypadal takto: - -$$\bordermatrix{ - & A & B & C & D\cr -A & 0 & 1 & 1 & 0\cr -B & 0 & 0 & 0 & 1\cr -C & 0 & 0 & 0 & 1\cr -D & 1 & 1 & 0 & 0\cr -}$$ - -S touto maticí se pracuje velmi snadno, napø. v¹echny sousedy $i$-tého vrcholu -zjistíme jednodu¹e tak, ¾e projdeme $i$-tý øádek matice. -Má ov¹em dvì zøejmé nevýhody: èasovou a pamì»ovou slo¾itost. Projití sousedù jednoho vrcholu trvá v¾dy $\Theta(n)$, projití sousedù pro v¹echny vrcholy (co¾ potøebujeme v~BFS) pak trvá $\Theta(n^2)$. Velikost matice je v¾dy $n \times n$, bez ohledu na~to, jak \uv{øídký} je graf. U grafu s mnoha vrcholy, ale s malým poètem hran, tedy budeme zbyteènì plýtvat místem v~pamìti. Tato reprezentace je tedy nevýhodná pøedev¹ím pro tøídy grafù jako jsou stromy, které mají $n-1$ hran, nebo rovinné grafy, které mají nejvý¹e $3n-6$ hran. - -\s{Pozorování:} BFS s reprezentací maticí sousednosti bì¾í v~èase: $\Theta(n^2)$. - -\proof -U¾ jsme si uvìdomili, ¾e ka¾dý vrchol se dostane do~fronty $Q$ nejvý¹e jednou. Pro ka¾dý vrchol ve~frontì potøebujeme projít jeho sousedy, co¾ nám trvá s~reprezentací maticí sousednosti $\Theta(n)$. Vrcholù je celkem $n$, tedy èasová slo¾itost je $\Theta(n^2)$. -\qed - -\s{2. seznam sousedù} - -V~matici sousednosti jsme museli procházet jak hrany, tak nehrany, co¾ bylo zbyteèné. Bylo by tedy výhodnìj¹í pamatovat si pro ka¾dý vrchol pouze jeho sousedy. To mù¾eme zaøídit napøíklad jedním ze~dvou následujících zpùsobù: - -Uchovávejme pole indexované vrcholy tak, ¾e v~ka¾dém prvku pole je ukazatel na~spojový seznam sousedù tohoto vrcholu. Tedy $L(v)=\{w: vw \in E(G)\}$. - -Pokud se nám nebude chtít pracovat se spojovými seznamy, mù¾eme vyu¾ít reprezentaci pomocí dvou polí. První pole~$V$ bude opìt indexované vrcholy. V~druhém poli~$E$ budou pro ka¾dý vrchol ulo¾eni jeho sousedé. V~poli~$V$ si pamatujeme pro ka¾dý vrchol~$i$ index do~pole~$E$, kde zaèínají jeho sousedé. K sousedùm vrcholu~$i$ se tedy dostaneme ji¾ snadno - nalezneme je na pozicích $V[i]~\dots~V[i+1]-1$. -\figure{imgn_nei.eps}{Znázornìní polí seznamu sousedù.}{\epsfxsize} - - -Na tuto reprezentaci u¾ staèí prostor $O(n + m)$, co¾ u¾ je, na~rozdíl od~pøedchozího kvadratického prostoru, docela pøíjemné. - -\s{Pozorování:} BFS bì¾í v~èase: $\Theta(n+m)$. - -\proof -Algoritmus vezme ka¾dý vrchol i ka¾dou hranu do~ruky nejvý¹e jednou. Èasová slo¾itost bude tedy: -$$\Theta\left(n+\sum_{v\in V(G)} {\rm deg}(v)\right) = \Theta(n+m).$$ -\qed - -\s{3. orákulum} - -Dal¹í mo¾ností reprezentace je pak jakési orákulum, které nám øekne (spoèítá), kam vedou hrany z~daného vrcholu\dots To se hodí napøíklad tehdy, pokud si nepotøebujeme pamatovat celý graf, ale staèí nám naleznout sousedy nìjakého vrcholu, které orákulum jednoznaènì výpoètem doká¾e urèit. Napøíklad pøi øe¹ení známé úlohy odmìøení daného mno¾ství vody za pomocí nádob rùzných objemù mù¾eme tento zpùsob reprezentace grafu pou¾ít. Problém pøevedeme na prohledávání grafu do~¹íøky, kde vrcholùm odpovídají jednotlivé stavy. Stav øíká, kolik vody je zrovna ve které nádobì. Potom nám ji¾ staèí ze zadaného poèáteèního vrcholu (stavu) najít cestu do~cílového. Orákulum je zde vlastnì funkce, které pøedáme vrchol a ona nám vrátí v¹echny vrcholy sousední -- tedy takové stavy, ke kterým dojde, kdy¾ vyzkou¹í v¹echny mo¾nosti pøelití kapaliny z jedné nádoby do~druhé. - -\h{Roz¹íøení algoritmu:} - -Abychom mohli vyu¾ít toho, ¾e algoritmus prochází vrcholy grafu ve~vlnì, a jiných hezkých vlastností, tak si dodefinujeme následující oznaèení: - -V~poli $D$ bude pro ka¾dý vrchol ulo¾ena vzdálenost od~poèáteèního vrcholu. -V~poli $P$ si budeme pro ka¾dý vrchol pamatovat jeho pøedchùdce. Dále budeme vyu¾ívat fáze bìhu algoritmu, které budou simulovat onu vlnu: - -\s{Definice: {\I Fáze bìhu algoritmu}:} Ve~fázi $F_0$ je zpracováván vrchol $v_0$. Ve~fázi $F_{i+1}$ jsou zpracovávány vrcholy ulo¾ené do~fronty $Q$ bìhem fáze $F_i$. - -\s{Roz¹íøený algoritmus:} -\algo -\:$Q \leftarrow \{v_0\}$. -\:$Z[*] \leftarrow 0, Z[v_0] \leftarrow 1$. -\:$D[*] \leftarrow \infty, D[v_0] \leftarrow 0$. -\:Dokud $Q \not= \emptyset $ opakujeme: -\::Vyzvedneme vrchol $u$ z~$Q$. -\::Pro ka¾dý vrchol $w$, který je sousedem vrcholu $u$: -\:::Je-li $Z[w]=0 \Rightarrow Z[w] \leftarrow 1, D[w] \leftarrow D[u]+1, P[w] \leftarrow u$ -\::::Pøidáme $w$ do~$Q$. -\endalgo - -\s{Lemma:} Na~konci BFS pro v¹echny vrcholy dosa¾itelné z~$v_0$ platí, ¾e vrchol $v$ byl zpracován ve~fázi $F_i$ právì tehdy, kdy¾ vzdálenost $v_0$ a $v$ (délka nejkrat¹í cesty z~$v_0$ do~$v$) je rovna $i$. Formálnì zapsáno: $v \in F_i \Leftrightarrow d(v_0,v) = i$. (Kde $d(x,y)$ je délka nejkrat¹í cesty z~$x$ do~$y$). - -\proof -\uv{$\Longrightarrow$}: -Dùkaz provedeme indukcí podle $i$ (èísla fáze bìhu algoritmu). - -První krok indukce je triviální, nebo» ve~fázi $F_0$ je oznaèen (dle definice) pouze vrchol $v_0$ a to je jediný vrchol vzdálený~0 od~$v_0$. - -Pokud je vrchol $v$ zpracováván ve~fázi $F_i$, pak musel být zaøazen do~fronty bìhem fáze $F_{i-1}$ jako soused nìjakého vrcholu $u$. Pro vrchol $u$ mù¾eme pou¾ít indukèní pøedpoklad, tedy ¾e délka nejkrat¹í cesty z~$v_0$ do~$u$ je $d(v_0,u)=i-1$. Pak tedy $d(v_0,v)\leq i$, nebo» je¹tì nevíme, zda cesta $v_0, \dots, u, v$ je nejkrat¹í. Kdyby ale existovala nìjaká krat¹í, tedy délky nejvý¹e $i-1$, tak by byl vrchol $v$ objeven u¾ døíve ne¾ ve fázi $F_i$. Proto $d(v_0,v) = i$. - - -\uv{$\Longleftarrow$}: Ka¾dý dosa¾itelný vrchol padne do~nìjaké fáze (viz. minulé lemma). -\qed - -Ji¾ tedy víme, ¾e vrchol $v_i$, jeho¾ vzdálenost od~vrcholu $v_0$ je $i$, bude zpracován v~$i$-té fázi. Jak ale po~skonèení algoritmu zjistíme, ve které fázi byl zpracován, neboli jak je vzdálený od~startovního vrcholu? Tato informace je právì ulo¾ena v~poli $D$ s indexem $i$ (v~$D[i]$). - -Zároveò nás mù¾e zajímat, jak bychom nejkrat¹í cestu z~$v_0$ do~$v_i$ rekonstruovali. Pro tento úèel jsme si zavedli pole $P$. Nejkrat¹í cesta z~$v_0$ do~$v_i$ bude v~obráceném poøadí vypadat: $v_i, P[v_i], P[P[v_i]], P[P[P[v_i]]], \dots, v_0$. - - -\s{Pozorování:} Pokud víme, ¾e $v_0, v_1, \dots, v_{k-1}, v_k$ je nejkrat¹í cesta z~$v_0$ do~$v_k$, pak $v_0,v_1,\dots,v_{k-1}$ je nejkrat¹í cesta z~$v_0$ do~$v_{k-1}$. Neboli prefix nejkrat¹í cesty je nejkrat¹í cesta. - -\proof -Kdyby existovala krat¹í cesta z~$v_0$ do~$v_{k-1}$, pak bychom mohli zkrátit i cestu z~$v_0$ do~$v_k$. - - -\s{Pozorování:} BFS u~neorientovaného grafu projde celou komponentu souvislosti. - -\proof -Víme, ¾e BFS($v_0$) oznaèí $v$ právì tehdy, kdy¾ existuje cesta z~$v_0$ do~$v$. V~neorientovaném grafu existuje cesta z~$v_0$ do~právì v¹ech vrcholù, které jsou ve~stejné komponentì souvislosti jako $v_0$. Pokud tedy spustíme BFS na~$v_0$, tak se postupnì projdou v¹echny vrcholy této komponenty souvislosti. -\qed - -\s{Pozorování:} Pokud BFS postupnì spou¹tíme na~dosud neobarvené vrcholy v~ neorientovaném grafu, nalezneme nakonec v~èase $\Theta(n+m)$ v¹echny komponenty souvislosti. - -\s{Algoritmus:} -\algo -\:Pro v¹echny vrcholy $v \in V(G)$ opakuj: -\::Pokud je vrchol $v$ neobarvený $ \Rightarrow \$. -\endalgo - -\proof -Ka¾dým spu¹tìním na~dosud neobarvený vrchol neorientovaného grafu obarvíme právì jednu komponentu souvislosti (tu, ve~které je tento vrchol). -Postupnì projdeme v¹echny vrcholy od prvního k poslednímu a v¾dy pokud je vrchol neobarvený, spustíme na nìj BFS. Tak nakonec obarvíme v¹echny komponenty souvislosti. Èasová slo¾itost bude stejná jako u~samotného BFS, tedy $\Theta(n + m)$. -\qed - -\s{Vìta:} $BFS(v_0)$ v~èase $\Theta(n + m)$ spoète: -\itemize\ibull -\:vrcholy dosa¾itelné z~$v_0$ -\:vzdálenosti tìchto vrcholù od~$v_0$ -\:strom nejkrat¹ích cest z~$v_0$ -\endlist - -\s{Poznámka:} Algoritmus na prohledávání do~¹íøky bude fungovat i na neorientovaném grafu. Mù¾eme si jednodu¹e pøedstavit, ¾e je to orientovaný graf, kde ka¾dá hrana má oboustrannou orientaci. - - -Prohledávání do~¹íøky ale není jediný algoritmus, který nìjak systematicky prochází graf. Jak u¾ název kapitoly napovídá, budeme se zabývat je¹tì druhým algoritmem, prohledáváním do~hloubky. Podívejme se, jak bude vypadat \dots - -\h{Prohledávání do~hloubky (DFS) {\I Depth-First Search} } - -Tento algoritmus neprochází graf ve~vlnì jako BFS, ale prochází ho rekurzivnì. V¾dy se zanoøí co nejhloubìji a¾ do~listu a pak se o~kus vrátí a opìt se sna¾í zanoøit. Vrcholy, ve kterých u¾ byl, ignoruje. - -Opìt uva¾me nejdøíve graf orientovaný. Následnì si uká¾eme, ¾e v~neorientovaném grafu budou pouze malé zmìny. - -Budeme pou¾ívat podobné znaèení jako u~BFS. V~poli $Z$ si budeme pamatovat, zda jsme vrchol ji¾ nav¹tívili (hodnota 1), nebo ne (hodnota 0). Navíc promìnná~$T$ bude znaèit dobu bìhu algoritmu - tedy jakési \uv{hodiny}. Pøi ka¾dém nalezení nového vrcholu èi jeho opu¹tìní tuto promìnnou zvý¹íme o~1. Do~polí $\$ a $\$ si budeme ukládat èas (prvního) nalezení a opu¹tìní vrcholu. - -\s{Algoritmus:} - -\algo -\: inicializace: $Z[*] \leftarrow 0, T \leftarrow 1, \[*] \leftarrow ?, \[*] \leftarrow ?$ -\: $DFS(v): Z[v] \leftarrow 1, \[v] \leftarrow T|++|$ -\:: Pro $w$: $vw \in E(G)$: -\::: Pokud $Z[w]=0 \Rightarrow DFS(w)$ -\:: $out[v] \leftarrow T|++|$ -\endalgo - -\s {Vìta:} DFS($v_0$) v~èase $\Theta(m+n)$ oznaèí právì v¹echny vrcholy dosa¾itelné z~$v_0$. - -\proof -Nejdøíve je potøeba dokázat, ¾e pokud je vrchol $v$ dosa¾itelný z~vrcholu $v_0$, tak jej DFS oznaèí. Dùkaz bude podobný jako u~BFS. - -V analýze èasové slo¾itosti si pak opìt uvìdomíme, ¾e algoritmus vezme ka¾dý vrchol i hranu do~ruky právì jednou, tak¾e èasová slo¾itost bude $\Theta(n + m)$. -\qed - -\figure{img5_dfso.eps}{Graf a znázornìní prùbìhu DFS s~jednotlivými hranami:}{\epsfxsize} - -Mù¾eme si v¹imnout, ¾e jak DFS prochází graf, rozdìluje hrany do~4 skupin: hrany {\I stromové, zpìtné, dopøedné a pøíèné}. - -Jedinì {\I stromové} hrany jsou takové, ¾e se po~nich DFS opravdu vydá. Vedou toti¾ do~vrcholu, který nebyl dosud objeven. V~ukázkovém grafu to jsou hrany: $\{(A \rightarrow B), (B \rightarrow C), (B \rightarrow D)\}$. - -Pokud algoritmus objeví z~vrcholu $v$ hranu do~ji¾ døíve nav¹tíveného vrcholu $w$ a zároveò platí, ¾e $w$ je ve~stejném podstromu jako $v$, tak nazveme hranu $vw$ {\I zpìtnou}. Pro rozpoznání je dùle¾ité, ¾e vrchol $w$ byl ji¾ objeven, ale je¹tì ne opu¹tìn. V~ukázkovém grafu se jedná o hranu: $(C \rightarrow A)$. - -Kdy¾ pøi prohledávání sousedù vrcholu $v$ narazíme na~vrchol $w$, který jsme ji¾ nav¹tívili, a to v~podstromì vrcholu $v$, tak nazveme hranu $vw$ {\I dopøednou}, nebo» vede z~$v$ do~jeho potomka. Platí tedy, ¾e jsme nejdøíve objevili vrchol $v$, potom vrchol $w$, pak jsme vrchol $w$ opustili a nyní jsme na~nìj znovu narazili po~dopøedné hranì. V~ukázkovém grafu hrana: $(A \rightarrow D)$. - -Posledním typem hran je {\I pøíèná} hrana. Ta vede do~vrcholu v~sousedním podstromì zprava doleva. V~tomto pøípadì jsme tedy nejdøíve objevili vrchol $w$, ten jsme následnì opustili a a¾ pak jsme objevili vrchol $v$. V~ukázkovém grafu to je hrana: $(D \rightarrow C)$. - -\s{K zamy¹lení:} Proè nemohou vést pøíèné hrany také zleva doprava? - -K~rozpoznávání typù hran se nám tedy velmi hodí pole $\$ a $\$, ve~kterých si pamatujeme èasy objevení a opu¹tìní vrcholu. Podle toho, jak se intervaly objevení a opu¹tìní obou vrcholù pøekrývají, mù¾eme jednoznaènì rozhodnout, o jaký typ hrany se jedná: - -U~zpìtných hran je poøadí: $\(w)$, $\(v)$, $\(v)$, $\(w)$. Intervaly do~sebe budou zanoøené takto: $<<>_v>_w$. - -U~dopøedných hran je poøadí: $\(v)$, $\(w)$, $\(w)$, $\(v)$. Intervaly do~sebe budou zanoøené takto: $<<>_w>_v$. - -U~pøíèných hran je poøadí: $\(w)$, $\(w)$, $\(v)$, $\(v)$. Intervaly do~sebe budou zanoøené takto: $<>_w<>_v$. - -Pozn: Pou¾íváme zde toto znaèení: $<>_v = $. Jedná se o interval objevení a opu¹tìní vrcholu $v$. - -\s{Typy hran ($v \rightarrow w$):} - -\itemize\ibull -\:Stromové hrany \dots po nich DFS pro¹lo. $\{(A \rightarrow B), (B \rightarrow C), (B \rightarrow D)\}$ -\:Zpìtné hrany $<<>_v>_w$\dots vedou do~pøedchùdce $v$ ve~stromu. $\{(C \rightarrow A)\}$ -\:Dopøedné hrany $<<>_w>_v$\dots vedou do~potomka. $v$ $\{(A \rightarrow D)\}$ -\:Pøíèné hrany $<>_w<>_v$\dots vedou do~vrcholu $v$ v~sousedním podstromì, v¾dy zprava doleva. $\{(D \rightarrow A)\}$ -\endlist - -\s{Pozorování:} Hrany, po~kterých DFS pro¹lo, tvoøí DFS strom. - -\s{Pozorování:} Intervaly ($\(v)$, $\(v)$) $\forall v \in V(G) $ tvoøí dobré uzávorkování. (Intervaly synù disjunktnì vyplòují otce $\Rightarrow$ intervaly se nemohou køí¾it). - -Nakonec si je¹tì uvìdomme, jak bude vypadat prohledávání do~hloubky na~neorientovaném grafu. Algortimus bude úplnì stejný, jenom se nám zredukuje poèet typù hran na~dvì: {\I stromové} a~{\I zpìtné}. Ani {\I dopøedné} ani {\I pøíèné} nebudou existovat, nebo» se z~{\I pøíèných} stanou {\I stromové} a z~{\I dopøedných zpìtné}. - -\bye diff --git a/2009/3-dfs/Makefile b/2009/3-dfs/Makefile deleted file mode 100644 index 62ff1bc..0000000 --- a/2009/3-dfs/Makefile +++ /dev/null @@ -1,3 +0,0 @@ -P=3-dfs - -include ../Makerules diff --git a/2009/3-dfs/img1_stvorec.eps b/2009/3-dfs/img1_stvorec.eps deleted file mode 100644 index 13e4481..0000000 --- a/2009/3-dfs/img1_stvorec.eps +++ /dev/null @@ -1,121 +0,0 @@ -%!PS-Adobe-2.0 EPSF-2.0 -%%Title: img1_stvorec.fig -%%Creator: fig2dev Version 3.2 Patchlevel 5-alpha7 -%%CreationDate: Fri May 11 19:04:04 2007 -%%For: onti@onti-laptop (Ondrej Tichy,,,) -%%BoundingBox: 0 0 70 90 -%Magnification: 0.8000 -%%EndComments -/$F2psDict 200 dict def -$F2psDict begin -$F2psDict /mtrx matrix put -/col-1 {0 setgray} bind def -/col0 {0.000 0.000 0.000 srgb} bind def -/col1 {0.000 0.000 1.000 srgb} bind def -/col2 {0.000 1.000 0.000 srgb} bind def -/col3 {0.000 1.000 1.000 srgb} bind def -/col4 {1.000 0.000 0.000 srgb} bind def -/col5 {1.000 0.000 1.000 srgb} bind def -/col6 {1.000 1.000 0.000 srgb} bind def -/col7 {1.000 1.000 1.000 srgb} bind def -/col8 {0.000 0.000 0.560 srgb} bind def -/col9 {0.000 0.000 0.690 srgb} bind def -/col10 {0.000 0.000 0.820 srgb} bind def -/col11 {0.530 0.810 1.000 srgb} bind def -/col12 {0.000 0.560 0.000 srgb} bind def -/col13 {0.000 0.690 0.000 srgb} bind def -/col14 {0.000 0.820 0.000 srgb} bind def -/col15 {0.000 0.560 0.560 srgb} bind def -/col16 {0.000 0.690 0.690 srgb} bind def -/col17 {0.000 0.820 0.820 srgb} bind def -/col18 {0.560 0.000 0.000 srgb} bind def -/col19 {0.690 0.000 0.000 srgb} bind def -/col20 {0.820 0.000 0.000 srgb} bind def -/col21 {0.560 0.000 0.560 srgb} bind def -/col22 {0.690 0.000 0.690 srgb} bind def -/col23 {0.820 0.000 0.820 srgb} bind def -/col24 {0.500 0.190 0.000 srgb} bind def -/col25 {0.630 0.250 0.000 srgb} bind def -/col26 {0.750 0.380 0.000 srgb} bind def -/col27 {1.000 0.500 0.500 srgb} bind def -/col28 {1.000 0.630 0.630 srgb} bind def -/col29 {1.000 0.750 0.750 srgb} bind def -/col30 {1.000 0.880 0.880 srgb} bind def -/col31 {1.000 0.840 0.000 srgb} bind def - -end -save -newpath 0 90 moveto 0 0 lineto 70 0 lineto 70 90 lineto closepath clip newpath --21.9 111.9 translate -1 -1 scale - -/cp {closepath} bind def -/ef {eofill} 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} bind def -/tr {translate} bind def -/tnt {dup dup currentrgbcolor - 4 -2 roll dup 1 exch sub 3 -1 roll mul add - 4 -2 roll dup 1 exch sub 3 -1 roll mul add - 4 -2 roll dup 1 exch sub 3 -1 roll mul add srgb} - bind def -/shd {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul - 4 -2 roll mul srgb} bind def -/$F2psBegin {$F2psDict begin /$F2psEnteredState save def} def -/$F2psEnd {$F2psEnteredState restore end} def - -$F2psBegin -10 setmiterlimit -0 slj 0 slc - 0.05039 0.05039 sc -% -% Fig objects follow -% -% -% here starts figure with depth 50 -% Polyline -0 slj -0 slc -7.500 slw -n 450 1980 m - 1800 630 l gs col0 s gr -% Polyline -n 450 630 m 1800 630 l 1800 1980 l 450 1980 l - cp gs col0 s gr -/Times-Roman ff 190.50 scf sf -1665 2205 m -gs 1 -1 sc (D) col0 sh gr -/Times-Roman ff 190.50 scf sf -1665 585 m -gs 1 -1 sc (B) col0 sh gr -/Times-Roman ff 190.50 scf sf -450 585 m -gs 1 -1 sc (A) col0 sh gr -/Times-Roman ff 190.50 scf sf -450 2205 m -gs 1 -1 sc (C) col0 sh gr -% here ends figure; -$F2psEnd -rs -showpage -%%Trailer -%EOF diff --git a/2009/3-dfs/img2_dfs.eps b/2009/3-dfs/img2_dfs.eps deleted file mode 100644 index deb80c2..0000000 --- a/2009/3-dfs/img2_dfs.eps +++ /dev/null @@ -1,211 +0,0 @@ -%!PS-Adobe-2.0 EPSF-2.0 -%%Title: img2_dfs.fig -%%Creator: fig2dev Version 3.2 Patchlevel 5-alpha7 -%%CreationDate: Tue May 1 13:14:51 2007 -%%For: onti@onti-laptop (Ondrej Tichy,,,) -%%BoundingBox: 0 0 186 130 -%Magnification: 1.0000 -%%EndComments -/$F2psDict 200 dict def -$F2psDict begin -$F2psDict /mtrx matrix put -/col-1 {0 setgray} bind def -/col0 {0.000 0.000 0.000 srgb} bind def -/col1 {0.000 0.000 1.000 srgb} bind def -/col2 {0.000 1.000 0.000 srgb} bind def -/col3 {0.000 1.000 1.000 srgb} bind def -/col4 {1.000 0.000 0.000 srgb} bind def -/col5 {1.000 0.000 1.000 srgb} bind def -/col6 {1.000 1.000 0.000 srgb} bind def -/col7 {1.000 1.000 1.000 srgb} bind def -/col8 {0.000 0.000 0.560 srgb} bind def -/col9 {0.000 0.000 0.690 srgb} bind def -/col10 {0.000 0.000 0.820 srgb} bind def -/col11 {0.530 0.810 1.000 srgb} bind def -/col12 {0.000 0.560 0.000 srgb} bind def -/col13 {0.000 0.690 0.000 srgb} bind def -/col14 {0.000 0.820 0.000 srgb} bind def -/col15 {0.000 0.560 0.560 srgb} bind def -/col16 {0.000 0.690 0.690 srgb} bind def -/col17 {0.000 0.820 0.820 srgb} bind def -/col18 {0.560 0.000 0.000 srgb} bind def -/col19 {0.690 0.000 0.000 srgb} bind def -/col20 {0.820 0.000 0.000 srgb} bind def -/col21 {0.560 0.000 0.560 srgb} bind def -/col22 {0.690 0.000 0.690 srgb} bind def -/col23 {0.820 0.000 0.820 srgb} bind def -/col24 {0.500 0.190 0.000 srgb} bind def -/col25 {0.630 0.250 0.000 srgb} bind def -/col26 {0.750 0.380 0.000 srgb} bind def -/col27 {1.000 0.500 0.500 srgb} bind def -/col28 {1.000 0.630 0.630 srgb} bind def -/col29 {1.000 0.750 0.750 srgb} bind def -/col30 {1.000 0.880 0.880 srgb} bind def -/col31 {1.000 0.840 0.000 srgb} bind def - -end -save -newpath 0 130 moveto 0 0 lineto 186 0 lineto 186 130 lineto closepath clip newpath --27.6 156.7 translate -1 -1 scale - -/cp {closepath} bind def -/ef {eofill} 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} bind def -/tr {translate} bind def -/tnt {dup dup currentrgbcolor - 4 -2 roll dup 1 exch sub 3 -1 roll mul add - 4 -2 roll dup 1 exch sub 3 -1 roll mul add - 4 -2 roll dup 1 exch sub 3 -1 roll mul add srgb} - bind def -/shd {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul - 4 -2 roll mul srgb} bind def -/$F2psBegin {$F2psDict begin /$F2psEnteredState save def} def -/$F2psEnd {$F2psEnteredState restore end} def - -$F2psBegin -10 setmiterlimit -0 slj 0 slc - 0.06299 0.06299 sc -% -% Fig objects follow -% -% -% here starts figure with depth 50 -% Polyline -0 slj -0 slc -7.500 slw -n 450 450 m 675 450 l 675 675 l 450 675 l - cp gs col0 s gr -% Polyline -n 1350 450 m 1575 450 l 1575 675 l 1350 675 l - cp gs col0 s gr -% Polyline -n 2250 450 m 2475 450 l 2475 675 l 2250 675 l - cp gs col0 s gr -% Polyline -n 450 1350 m 675 1350 l 675 1575 l 450 1575 l - cp gs col0 s gr -% Polyline -n 450 2250 m 675 2250 l 675 2475 l 450 2475 l - cp gs col0 s gr -% Polyline -n 1350 1350 m 1575 1350 l 1575 1575 l 1350 1575 l - cp gs col0 s gr -% Polyline -n 1350 2250 m 1575 2250 l 1575 2475 l 1350 2475 l - cp gs col0 s gr -% Polyline -n 2250 1350 m 2475 1350 l 2475 1575 l 2250 1575 l - cp gs col0 s gr -% Polyline -n 2250 2250 m 2475 2250 l 2475 2475 l 2250 2475 l - cp gs col0 s gr -% Polyline -n 3150 450 m 3375 450 l 3375 675 l 3150 675 l - cp gs col0 s gr -% Polyline -n 3150 1350 m 3375 1350 l 3375 1575 l 3150 1575 l - cp gs col0 s gr -% Polyline -n 3150 2250 m 3375 2250 l 3375 2475 l 3150 2475 l - cp gs col0 s gr -% Polyline -n 675 585 m - 1350 585 l gs col0 s gr -% Polyline -n 540 675 m - 540 1350 l gs col0 s gr -% Polyline -n 540 1575 m - 540 2250 l gs col0 s gr -% Polyline -n 675 2385 m - 1350 2385 l gs col0 s gr -% Polyline -n 675 1575 m - 1350 2250 l gs col0 s gr -% Polyline -n 2340 675 m - 2340 1350 l gs col0 s gr -% Polyline -n 2340 1575 m - 2340 2250 l gs col0 s gr -% Polyline -n 2475 1485 m - 3150 1485 l gs col0 s gr -% Polyline -n 2475 2250 m - 3150 1575 l gs col0 s gr -% Polyline -n 3150 1350 m - 2475 675 l gs col0 s gr -% Polyline -n 2475 585 m - 3150 585 l gs col0 s gr -% Polyline -n 3240 1575 m - 3240 2250 l gs col0 s gr -/Times-Roman ff 190.50 scf sf -495 630 m -gs 1 -1 sc (A) col0 sh gr -/Times-Roman ff 190.50 scf sf -1395 630 m -gs 1 -1 sc (B) col0 sh gr -/Times-Roman ff 190.50 scf sf -2295 630 m -gs 1 -1 sc (C) col0 sh gr -/Times-Roman ff 190.50 scf sf -3195 630 m -gs 1 -1 sc (D) col0 sh gr -/Times-Roman ff 190.50 scf sf -495 1530 m -gs 1 -1 sc (E) col0 sh gr -/Times-Roman ff 190.50 scf sf -1395 1530 m -gs 1 -1 sc (F) col0 sh gr -/Times-Roman ff 190.50 scf sf -2295 1530 m -gs 1 -1 sc (G) col0 sh gr -/Times-Roman ff 190.50 scf sf -3195 1530 m -gs 1 -1 sc (H) col0 sh gr -/Times-Roman ff 190.50 scf sf -540 2430 m -gs 1 -1 sc (I) col0 sh gr -/Times-Roman ff 190.50 scf sf -1395 2430 m -gs 1 -1 sc (J) col0 sh gr -/Times-Roman ff 190.50 scf sf -2295 2430 m -gs 1 -1 sc (K) col0 sh gr -/Times-Roman ff 190.50 scf sf -3195 2430 m -gs 1 -1 sc (L) col0 sh gr -% here ends figure; -$F2psEnd -rs -showpage -%%Trailer -%EOF diff --git a/2009/3-dfs/img3_dfs.eps b/2009/3-dfs/img3_dfs.eps deleted file mode 100644 index bbead7a..0000000 --- a/2009/3-dfs/img3_dfs.eps +++ /dev/null @@ -1,264 +0,0 @@ -%!PS-Adobe-2.0 EPSF-2.0 -%%Title: img3_dfs.fig -%%Creator: fig2dev Version 3.2 Patchlevel 5-alpha7 -%%CreationDate: Tue May 1 13:28:35 2007 -%%For: onti@onti-laptop (Ondrej Tichy,,,) -%%BoundingBox: 0 0 280 181 -%Magnification: 1.0000 -%%EndComments -/$F2psDict 200 dict def -$F2psDict begin -$F2psDict /mtrx matrix put -/col-1 {0 setgray} bind def -/col0 {0.000 0.000 0.000 srgb} bind def -/col1 {0.000 0.000 1.000 srgb} bind def -/col2 {0.000 1.000 0.000 srgb} bind def -/col3 {0.000 1.000 1.000 srgb} bind def -/col4 {1.000 0.000 0.000 srgb} bind def -/col5 {1.000 0.000 1.000 srgb} bind def -/col6 {1.000 1.000 0.000 srgb} bind def -/col7 {1.000 1.000 1.000 srgb} bind def -/col8 {0.000 0.000 0.560 srgb} bind def -/col9 {0.000 0.000 0.690 srgb} bind def -/col10 {0.000 0.000 0.820 srgb} bind def -/col11 {0.530 0.810 1.000 srgb} bind def -/col12 {0.000 0.560 0.000 srgb} bind def -/col13 {0.000 0.690 0.000 srgb} bind def -/col14 {0.000 0.820 0.000 srgb} bind def -/col15 {0.000 0.560 0.560 srgb} bind def -/col16 {0.000 0.690 0.690 srgb} bind def -/col17 {0.000 0.820 0.820 srgb} bind def -/col18 {0.560 0.000 0.000 srgb} bind def -/col19 {0.690 0.000 0.000 srgb} bind def -/col20 {0.820 0.000 0.000 srgb} bind def -/col21 {0.560 0.000 0.560 srgb} bind def -/col22 {0.690 0.000 0.690 srgb} bind def -/col23 {0.820 0.000 0.820 srgb} bind def -/col24 {0.500 0.190 0.000 srgb} bind def -/col25 {0.630 0.250 0.000 srgb} bind def -/col26 {0.750 0.380 0.000 srgb} bind def -/col27 {1.000 0.500 0.500 srgb} bind def -/col28 {1.000 0.630 0.630 srgb} bind def -/col29 {1.000 0.750 0.750 srgb} bind def -/col30 {1.000 0.880 0.880 srgb} bind def -/col31 {1.000 0.840 0.000 srgb} bind def - -end -save -newpath 0 181 moveto 0 0 lineto 280 0 lineto 280 181 lineto closepath clip newpath --41.8 213.4 translate -1 -1 scale - -/cp {closepath} bind def -/ef {eofill} 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} bind def -/tr {translate} bind def -/tnt {dup dup currentrgbcolor - 4 -2 roll dup 1 exch sub 3 -1 roll mul add - 4 -2 roll dup 1 exch sub 3 -1 roll mul add - 4 -2 roll dup 1 exch sub 3 -1 roll mul add srgb} - bind def -/shd {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul - 4 -2 roll mul srgb} bind def -/$F2psBegin {$F2psDict begin /$F2psEnteredState save def} def -/$F2psEnd {$F2psEnteredState restore end} def - -$F2psBegin -10 setmiterlimit -0 slj 0 slc - 0.06299 0.06299 sc -% -% Fig objects follow -% -% -% here starts figure with depth 50 -% Arc -7.500 slw -0 slc - [60] 0 sd -n 3262.5 2362.5 1466.8 147.5288 -147.5288 arc -gs col0 s gr - [] 0 sd -% Arc - [60] 0 sd -n 3712.5 1462.5 573.6 78.6901 -78.6901 arcn -gs col0 s gr - [] 0 sd -% Arc - [60] 0 sd -n 4556.2 2025.0 1476.5 162.2553 -130.3645 arc -gs col0 s gr - [] 0 sd -% Arc - [60] 0 sd -n 1882.5 2122.5 1812.0 34.5452 4.0349 arcn -gs col0 s gr - [] 0 sd -% Polyline -0 slj -n 1350 675 m 1575 675 l 1575 900 l 1350 900 l - cp gs col0 s gr -% Polyline -n 2025 1350 m 2250 1350 l 2250 1575 l 2025 1575 l - cp gs col0 s gr -% Polyline -n 2025 2250 m 2250 2250 l 2250 2475 l 2025 2475 l - cp gs col0 s gr -% Polyline -n 2025 3150 m 2250 3150 l 2250 3375 l 2025 3375 l - cp gs col0 s gr -% Polyline -n 675 1350 m 900 1350 l 900 1575 l 675 1575 l - cp gs col0 s gr -% Polyline -n 900 1350 m - 1350 900 l gs col0 s gr -% Polyline -n 1575 900 m - 2025 1350 l gs col0 s gr -% Polyline -n 2115 1575 m - 2115 2250 l gs col0 s gr -% Polyline -n 2115 2475 m - 2115 3150 l gs col0 s gr -% Polyline -n 3600 675 m 3825 675 l 3825 900 l 3600 900 l - cp gs col0 s gr -% Polyline -n 3600 675 m 3825 675 l 3825 900 l 3600 900 l - cp gs col0 s gr -% Polyline -n 3600 2025 m 3825 2025 l 3825 2250 l 3600 2250 l - cp gs col0 s gr -% Polyline -n 3150 3150 m 3375 3150 l 3375 3375 l 3150 3375 l - cp gs col0 s gr -% Polyline -n 4050 2475 m 4275 2475 l 4275 2700 l 4050 2700 l - cp gs col0 s gr -% Polyline -n 3600 1350 m 3825 1350 l 3825 1575 l 3600 1575 l - cp gs col0 s gr -% Polyline -n 3690 900 m - 3690 1350 l gs col0 s gr -% Polyline -n 3690 1575 m - 3690 2025 l gs col0 s gr -% Polyline -n 3690 1575 m - 3690 2025 l gs col0 s gr -% Polyline -n 3240 2700 m - 3240 3150 l gs col0 s gr -% Polyline -n 3375 2475 m - 3600 2250 l gs col0 s gr -% Polyline -n 3825 2250 m - 4050 2475 l gs col0 s gr -% Polyline -n 3150 2475 m 3375 2475 l 3375 2700 l 3150 2700 l - cp gs col0 s gr -% Polyline -n 4725 675 m 4950 675 l 4950 900 l 4725 900 l - cp gs col0 s gr -/Times-Roman ff 158.75 scf sf -1350 630 m -gs 1 -1 sc (1,10) col0 sh gr -/Times-Roman ff 190.50 scf sf -1395 855 m -gs 1 -1 sc (A) col0 sh gr -/Times-Roman ff 190.50 scf sf -2070 1530 m -gs 1 -1 sc (C) col0 sh gr -/Times-Roman ff 190.50 scf sf -2070 2430 m -gs 1 -1 sc (I) col0 sh gr -/Times-Roman ff 190.50 scf sf -2070 3330 m -gs 1 -1 sc (J) col0 sh gr -/Times-Roman ff 190.50 scf sf -720 1530 m -gs 1 -1 sc (B) col0 sh gr -/Times-Roman ff 158.75 scf sf -2295 2430 m -gs 1 -1 sc (5,8) col0 sh gr -/Times-Roman ff 158.75 scf sf -2295 3330 m -gs 1 -1 sc (6,7) col0 sh gr -/Times-Roman ff 158.75 scf sf -720 1305 m -gs 1 -1 sc (2,3) col0 sh gr -/Times-Roman ff 158.75 scf sf -2070 1305 m -gs 1 -1 sc (4,9) col0 sh gr -/Times-Roman ff 190.50 scf sf -3645 1530 m -gs 1 -1 sc (D) col0 sh gr -/Times-Roman ff 190.50 scf sf -3645 2205 m -gs 1 -1 sc (H) col0 sh gr -/Times-Roman ff 190.50 scf sf -3195 2655 m -gs 1 -1 sc (G) col0 sh gr -/Times-Roman ff 190.50 scf sf -4095 2655 m -gs 1 -1 sc (L) col0 sh gr -/Times-Roman ff 190.50 scf sf -3195 3330 m -gs 1 -1 sc (K) col0 sh gr -/Times-Roman ff 190.50 scf sf -3645 855 m -gs 1 -1 sc (C) col0 sh gr -/Times-Roman ff 158.75 scf sf -3600 630 m -gs 1 -1 sc (11,22) col0 sh gr -/Times-Roman ff 158.75 scf sf -3870 1530 m -gs 1 -1 sc (12,21) col0 sh gr -/Times-Roman ff 158.75 scf sf -3870 2205 m -gs 1 -1 sc (13,20) col0 sh gr -/Times-Roman ff 158.75 scf sf -4320 2655 m -gs 1 -1 sc (18,19) col0 sh gr -/Times-Roman ff 158.75 scf sf -2790 2655 m -gs 1 -1 sc (14,17) col0 sh gr -/Times-Roman ff 158.75 scf sf -2790 3330 m -gs 1 -1 sc (15,16) col0 sh gr -/Times-Roman ff 190.50 scf sf -4770 855 m -gs 1 -1 sc (F) col0 sh gr -/Times-Roman ff 158.75 scf sf -4725 630 m -gs 1 -1 sc (23,24) col0 sh gr -% here ends figure; -$F2psEnd -rs -showpage -%%Trailer -%EOF diff --git a/2009/3-dfs/img4_susedia.eps b/2009/3-dfs/img4_susedia.eps deleted file mode 100644 index c36d758..0000000 --- a/2009/3-dfs/img4_susedia.eps +++ /dev/null @@ -1,245 +0,0 @@ -%!PS-Adobe-2.0 EPSF-2.0 -%%Title: img4_susedia.fig -%%Creator: fig2dev Version 3.2 Patchlevel 5-alpha7 -%%CreationDate: Fri May 11 20:03:15 2007 -%%For: onti@onti-laptop (Ondrej Tichy,,,) -%%BoundingBox: 0 0 158 56 -%Magnification: 1.0000 -%%EndComments -/$F2psDict 200 dict def -$F2psDict begin -$F2psDict /mtrx matrix put -/col-1 {0 setgray} bind def -/col0 {0.000 0.000 0.000 srgb} bind def -/col1 {0.000 0.000 1.000 srgb} bind def -/col2 {0.000 1.000 0.000 srgb} bind def -/col3 {0.000 1.000 1.000 srgb} bind def -/col4 {1.000 0.000 0.000 srgb} bind def -/col5 {1.000 0.000 1.000 srgb} bind def -/col6 {1.000 1.000 0.000 srgb} bind def -/col7 {1.000 1.000 1.000 srgb} bind def -/col8 {0.000 0.000 0.560 srgb} bind def -/col9 {0.000 0.000 0.690 srgb} bind def -/col10 {0.000 0.000 0.820 srgb} bind def -/col11 {0.530 0.810 1.000 srgb} bind def -/col12 {0.000 0.560 0.000 srgb} bind def -/col13 {0.000 0.690 0.000 srgb} bind def -/col14 {0.000 0.820 0.000 srgb} bind def -/col15 {0.000 0.560 0.560 srgb} bind def -/col16 {0.000 0.690 0.690 srgb} bind def -/col17 {0.000 0.820 0.820 srgb} bind def -/col18 {0.560 0.000 0.000 srgb} bind def -/col19 {0.690 0.000 0.000 srgb} bind def -/col20 {0.820 0.000 0.000 srgb} bind def -/col21 {0.560 0.000 0.560 srgb} bind def -/col22 {0.690 0.000 0.690 srgb} bind def -/col23 {0.820 0.000 0.820 srgb} bind def -/col24 {0.500 0.190 0.000 srgb} bind def -/col25 {0.630 0.250 0.000 srgb} bind def -/col26 {0.750 0.380 0.000 srgb} bind def -/col27 {1.000 0.500 0.500 srgb} bind def -/col28 {1.000 0.630 0.630 srgb} bind def -/col29 {1.000 0.750 0.750 srgb} bind def -/col30 {1.000 0.880 0.880 srgb} bind def -/col31 {1.000 0.840 0.000 srgb} bind def - -end -save -newpath 0 56 moveto 0 0 lineto 158 0 lineto 158 56 lineto closepath clip newpath --13.2 71.8 translate -1 -1 scale - -/cp {closepath} bind def -/ef {eofill} 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} bind def -/tr {translate} bind def -/tnt {dup dup currentrgbcolor - 4 -2 roll dup 1 exch sub 3 -1 roll mul add - 4 -2 roll dup 1 exch sub 3 -1 roll mul add - 4 -2 roll dup 1 exch sub 3 -1 roll mul add srgb} - bind def -/shd {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul - 4 -2 roll mul srgb} bind def -/$F2psBegin {$F2psDict begin /$F2psEnteredState save def} def -/$F2psEnd {$F2psEnteredState restore end} def - -$F2psBegin -10 setmiterlimit -0 slj 0 slc - 0.06299 0.06299 sc -% -% Fig objects follow -% -% -% here starts figure with depth 50 -% Polyline -0 slj -0 slc -7.500 slw -n 1125 450 m 1350 450 l 1350 675 l 1125 675 l - cp gs col0 s gr -% Polyline -n 675 450 m 900 450 l 900 675 l 675 675 l - cp gs col0 s gr -% Polyline -n 900 450 m 1125 450 l 1125 675 l 900 675 l - cp gs col0 s gr -% Polyline -n 450 900 m 675 900 l 675 1125 l 450 1125 l - cp gs col0 s gr -% Polyline -n 675 900 m 900 900 l 900 1125 l 675 1125 l - cp gs col0 s gr -% Polyline -n 900 900 m 1125 900 l 1125 1125 l 900 1125 l - cp gs col0 s gr -% Polyline -n 1125 900 m 1350 900 l 1350 1125 l 1125 1125 l - cp gs col0 s gr -% Polyline -n 1350 900 m 1575 900 l 1575 1125 l 1350 1125 l - cp gs col0 s gr -% Polyline -n 1575 900 m 1800 900 l 1800 1125 l 1575 1125 l - cp gs col0 s gr -% Polyline -n 1800 900 m 2025 900 l 2025 1125 l 1800 1125 l - cp gs col0 s gr -% Polyline -n 2025 900 m 2250 900 l 2250 1125 l 2025 1125 l - cp gs col0 s gr -% Polyline -n 2250 900 m 2475 900 l 2475 1125 l 2250 1125 l - cp gs col0 s gr -% Polyline -n 2475 900 m 2700 900 l 2700 1125 l 2475 1125 l - cp gs col0 s gr -% Polyline - [60] 0 sd -gs clippath -2201 881 m 2343 933 l 2364 876 l 2222 824 l 2222 824 l 2325 894 l 2201 881 l cp -eoclip -n 1350 540 m - 2340 900 l gs col0 s gr gr - [] 0 sd -% arrowhead -n 2201 881 m 2325 894 l 2222 824 l 2201 881 l cp gs col7 1.00 shd ef gr col0 s -% Polyline - [60] 0 sd -gs clippath -1482 878 m 1623 933 l 1644 877 l 1503 822 l 1503 822 l 1605 894 l 1482 878 l cp -eoclip -n 1035 675 m - 1620 900 l gs col0 s gr gr - [] 0 sd -% arrowhead -n 1482 878 m 1605 894 l 1503 822 l 1482 878 l cp gs col7 1.00 shd ef gr col0 s -% Polyline - [60] 0 sd -gs clippath -881 812 m 975 930 l 1022 892 l 928 774 l 928 774 l 980 887 l 881 812 l cp -eoclip -n 810 675 m - 990 900 l gs col0 s gr gr - [] 0 sd -% arrowhead -n 881 812 m 980 887 l 928 774 l 881 812 l cp gs col7 1.00 shd ef gr col0 s -% Polyline - [60] 0 sd -gs clippath -510 764 m 510 915 l 570 915 l 570 764 l 570 764 l 540 884 l 510 764 l cp -eoclip -n 540 675 m - 540 900 l gs col0 s gr gr - [] 0 sd -% arrowhead -n 510 764 m 540 884 l 570 764 l 510 764 l cp gs col7 1.00 shd ef gr col0 s -% Polyline -n 450 450 m 675 450 l 675 675 l 450 675 l - cp gs col0 s gr -/Times-Roman ff 190.50 scf sf -495 630 m -gs 1 -1 sc (1) col0 sh gr -/Times-Roman ff 190.50 scf sf -720 630 m -gs 1 -1 sc (3) col0 sh gr -/Times-Roman ff 190.50 scf sf -945 630 m -gs 1 -1 sc (6) col0 sh gr -/Times-Roman ff 190.50 scf sf -1170 630 m -gs 1 -1 sc (9) col0 sh gr -/Times-Roman ff 190.50 scf sf -495 1080 m -gs 1 -1 sc (B) col0 sh gr -/Times-Roman ff 190.50 scf sf -720 1080 m -gs 1 -1 sc (C) col0 sh gr -/Times-Roman ff 190.50 scf sf -945 1080 m -gs 1 -1 sc (A) col0 sh gr -/Times-Roman ff 190.50 scf sf -1170 1080 m -gs 1 -1 sc (C) col0 sh gr -/Times-Roman ff 190.50 scf sf -1395 1080 m -gs 1 -1 sc (D) col0 sh gr -/Times-Roman ff 190.50 scf sf -1620 1080 m -gs 1 -1 sc (A) col0 sh gr -/Times-Roman ff 190.50 scf sf -1845 1080 m -gs 1 -1 sc (B) col0 sh gr -/Times-Roman ff 190.50 scf sf -2070 1080 m -gs 1 -1 sc (D) col0 sh gr -/Times-Roman ff 190.50 scf sf -2295 1080 m -gs 1 -1 sc (B) col0 sh gr -/Times-Roman ff 190.50 scf sf -2520 1080 m -gs 1 -1 sc (C) col0 sh gr -/Times-Roman ff 190.50 scf sf -225 675 m -gs 1 -1 sc (V:) col0 sh gr -/Times-Roman ff 190.50 scf sf -225 1125 m -gs 1 -1 sc (E:) col0 sh gr -/Times-Roman ff 190.50 scf sf -495 405 m -gs 1 -1 sc (A) col0 sh gr -/Times-Roman ff 190.50 scf sf -720 405 m -gs 1 -1 sc (B) col0 sh gr -/Times-Roman ff 190.50 scf sf -945 405 m -gs 1 -1 sc (C) col0 sh gr -/Times-Roman ff 190.50 scf sf -1170 405 m -gs 1 -1 sc (D) col0 sh gr -% here ends figure; -$F2psEnd -rs -showpage -%%Trailer -%EOF diff --git a/2009/3-dfs/img5_dfso.eps b/2009/3-dfs/img5_dfso.eps deleted file mode 100644 index dcacebe..0000000 --- a/2009/3-dfs/img5_dfso.eps +++ /dev/null @@ -1,259 +0,0 @@ -%!PS-Adobe-2.0 EPSF-2.0 -%%Title: img5_dfso.fig -%%Creator: fig2dev Version 3.2 Patchlevel 5-alpha7 -%%CreationDate: Fri May 4 09:22:50 2007 -%%For: onti@onti-laptop (Ondrej Tichy,,,) -%%BoundingBox: 0 0 187 104 -%Magnification: 1.0000 -%%EndComments -/$F2psDict 200 dict def -$F2psDict begin -$F2psDict /mtrx matrix put -/col-1 {0 setgray} bind def -/col0 {0.000 0.000 0.000 srgb} bind def -/col1 {0.000 0.000 1.000 srgb} bind def -/col2 {0.000 1.000 0.000 srgb} bind def -/col3 {0.000 1.000 1.000 srgb} bind def -/col4 {1.000 0.000 0.000 srgb} bind def -/col5 {1.000 0.000 1.000 srgb} bind def -/col6 {1.000 1.000 0.000 srgb} bind def -/col7 {1.000 1.000 1.000 srgb} bind def -/col8 {0.000 0.000 0.560 srgb} bind def -/col9 {0.000 0.000 0.690 srgb} bind def -/col10 {0.000 0.000 0.820 srgb} bind def -/col11 {0.530 0.810 1.000 srgb} bind def -/col12 {0.000 0.560 0.000 srgb} bind def -/col13 {0.000 0.690 0.000 srgb} bind def -/col14 {0.000 0.820 0.000 srgb} bind def -/col15 {0.000 0.560 0.560 srgb} bind def -/col16 {0.000 0.690 0.690 srgb} bind def -/col17 {0.000 0.820 0.820 srgb} bind def -/col18 {0.560 0.000 0.000 srgb} bind def -/col19 {0.690 0.000 0.000 srgb} bind def -/col20 {0.820 0.000 0.000 srgb} bind def -/col21 {0.560 0.000 0.560 srgb} bind def -/col22 {0.690 0.000 0.690 srgb} bind def -/col23 {0.820 0.000 0.820 srgb} bind def -/col24 {0.500 0.190 0.000 srgb} bind def -/col25 {0.630 0.250 0.000 srgb} bind def -/col26 {0.750 0.380 0.000 srgb} bind def -/col27 {1.000 0.500 0.500 srgb} bind def -/col28 {1.000 0.630 0.630 srgb} bind def -/col29 {1.000 0.750 0.750 srgb} bind def -/col30 {1.000 0.880 0.880 srgb} bind def -/col31 {1.000 0.840 0.000 srgb} bind def - -end -save -newpath 0 104 moveto 0 0 lineto 187 0 lineto 187 104 lineto closepath clip newpath --27.6 122.5 translate -1 -1 scale - -/cp {closepath} bind def -/ef {eofill} 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} bind def -/tr {translate} bind def -/tnt {dup dup currentrgbcolor - 4 -2 roll dup 1 exch sub 3 -1 roll mul add - 4 -2 roll dup 1 exch sub 3 -1 roll mul add - 4 -2 roll dup 1 exch sub 3 -1 roll mul add srgb} - bind def -/shd {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul - 4 -2 roll mul srgb} bind def -/$F2psBegin {$F2psDict begin /$F2psEnteredState save def} def -/$F2psEnd {$F2psEnteredState restore end} def - -$F2psBegin -10 setmiterlimit -0 slj 0 slc - 0.06299 0.06299 sc -% -% Fig objects follow -% -% -% here starts figure with depth 50 -% Arc -7.500 slw -0 slc -gs clippath -2343 721 m 2493 703 l 2486 643 l 2336 661 l 2336 661 l 2459 677 l 2343 721 l cp -eoclip - [60] 0 sd -n 2475.0 1237.5 562.5 143.1301 -90.0000 arc -gs col0 s gr - gr - [] 0 sd -% arrowhead -0 slj -n 2343 721 m 2459 677 l 2336 661 l 2343 721 l cp gs 0.00 setgray ef gr col0 s -% Arc -gs clippath -3025 1435 m 2981 1580 l 3039 1597 l 3082 1452 l 3082 1452 l 3020 1559 l 3025 1435 l cp -eoclip - [60] 0 sd -n 2343.2 1305.0 724.0 -60.4760 21.8959 arc -gs col0 s gr - gr - [] 0 sd -% arrowhead -n 3025 1435 m 3020 1559 l 3082 1452 l 3025 1435 l cp gs 0.00 setgray ef gr col0 s -% Arc -gs clippath -2377 1856 m 2255 1766 l 2220 1815 l 2342 1904 l 2342 1904 l 2263 1810 l 2377 1856 l cp -eoclip - [60] 0 sd -n 2587.5 1447.5 488.0 46.2454 133.7546 arc -gs col0 s gr - gr - [] 0 sd -% arrowhead -n 2377 1856 m 2263 1810 l 2342 1904 l 2377 1856 l cp gs 0.00 setgray ef gr col0 s -% Polyline -n 450 450 m 675 450 l 675 675 l 450 675 l - cp gs col0 s gr -% Polyline -n 1350 450 m 1575 450 l 1575 675 l 1350 675 l - cp gs col0 s gr -% Polyline -n 1350 1350 m 1575 1350 l 1575 1575 l 1350 1575 l - cp gs col0 s gr -% Polyline -n 450 1350 m 675 1350 l 675 1575 l 450 1575 l - cp gs col0 s gr -% Polyline -gs clippath -792 749 m 685 643 l 643 685 l 749 792 l 749 792 l 686 686 l 792 749 l cp -eoclip -n 1350 1350 m - 675 675 l gs col0 s gr gr - -% arrowhead -n 792 749 m 686 686 l 749 792 l 792 749 l cp gs 0.00 setgray ef gr col0 s -% Polyline -gs clippath -749 1232 m 643 1339 l 685 1381 l 792 1275 l 792 1275 l 686 1339 l 749 1232 l cp -eoclip -n 1350 675 m - 675 1350 l gs col0 s gr gr - -% arrowhead -n 749 1232 m 686 1339 l 792 1275 l 749 1232 l cp gs 0.00 setgray ef gr col0 s -% Polyline -gs clippath -1214 570 m 1365 570 l 1365 510 l 1214 510 l 1214 510 l 1334 540 l 1214 570 l cp -eoclip -n 675 540 m - 1350 540 l gs col0 s gr gr - -% arrowhead -n 1214 570 m 1334 540 l 1214 510 l 1214 570 l cp gs 0.00 setgray ef gr col0 s -% Polyline -gs clippath -1410 1214 m 1410 1365 l 1470 1365 l 1470 1214 l 1470 1214 l 1440 1334 l 1410 1214 l cp -eoclip -n 1440 675 m - 1440 1350 l gs col0 s gr gr - -% arrowhead -n 1410 1214 m 1440 1334 l 1470 1214 l 1410 1214 l cp gs 0.00 setgray ef gr col0 s -% Polyline -gs clippath -510 1214 m 510 1365 l 570 1365 l 570 1214 l 570 1214 l 540 1334 l 510 1214 l cp -eoclip -n 540 675 m - 540 1350 l gs col0 s gr gr - -% arrowhead -n 510 1214 m 540 1334 l 570 1214 l 510 1214 l cp gs 0.00 setgray ef gr col0 s -% Polyline -gs clippath -1214 1470 m 1365 1470 l 1365 1410 l 1214 1410 l 1214 1410 l 1334 1440 l 1214 1470 l cp -eoclip -n 675 1440 m - 1350 1440 l gs col0 s gr gr - -% arrowhead -n 1214 1470 m 1334 1440 l 1214 1410 l 1214 1470 l cp gs 0.00 setgray ef gr col0 s -% Polyline -n 2475 450 m 2700 450 l 2700 675 l 2475 675 l - cp gs col0 s gr -% Polyline -n 2475 1125 m 2700 1125 l 2700 1350 l 2475 1350 l - cp gs col0 s gr -% Polyline -n 2025 1575 m 2250 1575 l 2250 1800 l 2025 1800 l - cp gs col0 s gr -% Polyline -n 2925 1575 m 3150 1575 l 3150 1800 l 2925 1800 l - cp gs col0 s gr -% Polyline -n 2565 675 m - 2565 1125 l gs col0 s gr -% Polyline -n 2475 1350 m - 2250 1575 l gs col0 s gr -% Polyline -n 2700 1350 m - 2925 1575 l gs col0 s gr -/Times-Roman ff 190.50 scf sf -495 630 m -gs 1 -1 sc (A) col0 sh gr -/Times-Roman ff 190.50 scf sf -495 1530 m -gs 1 -1 sc (C) col0 sh gr -/Times-Roman ff 190.50 scf sf -1395 1530 m -gs 1 -1 sc (D) col0 sh gr -/Times-Roman ff 190.50 scf sf -1395 630 m -gs 1 -1 sc (B) col0 sh gr -/Times-Roman ff 190.50 scf sf -2520 630 m -gs 1 -1 sc (A) col0 sh gr -/Times-Roman ff 190.50 scf sf -2520 1305 m -gs 1 -1 sc (B) col0 sh gr -/Times-Roman ff 190.50 scf sf -2070 1755 m -gs 1 -1 sc (C) col0 sh gr -/Times-Roman ff 190.50 scf sf -2970 1755 m -gs 1 -1 sc (D) col0 sh gr -/Times-Roman ff 127.00 scf sf -2475 405 m -gs 1 -1 sc (1,8) col0 sh gr -/Times-Roman ff 127.00 scf sf -2745 1305 m -gs 1 -1 sc (2,7) col0 sh gr -/Times-Roman ff 127.00 scf sf -3195 1755 m -gs 1 -1 sc (5,6) col0 sh gr -/Times-Roman ff 127.00 scf sf -2295 1755 m -gs 1 -1 sc (3,4) col0 sh gr -% here ends figure; -$F2psEnd -rs -showpage -%%Trailer -%EOF diff --git a/2009/3-dfs/img7_hrany.eps b/2009/3-dfs/img7_hrany.eps deleted file mode 100644 index f65b7a9..0000000 --- a/2009/3-dfs/img7_hrany.eps +++ /dev/null @@ -1,179 +0,0 @@ -%!PS-Adobe-2.0 EPSF-2.0 -%%Title: img7_hrany.fig -%%Creator: fig2dev Version 3.2 Patchlevel 5-alpha7 -%%CreationDate: Fri May 11 18:48:47 2007 -%%For: onti@onti-laptop (Ondrej Tichy,,,) -%%BoundingBox: 0 0 173 87 -%Magnification: 1.0000 -%%EndComments -/$F2psDict 200 dict def -$F2psDict begin -$F2psDict /mtrx matrix put -/col-1 {0 setgray} bind def -/col0 {0.000 0.000 0.000 srgb} bind def -/col1 {0.000 0.000 1.000 srgb} bind def -/col2 {0.000 1.000 0.000 srgb} bind def -/col3 {0.000 1.000 1.000 srgb} bind def -/col4 {1.000 0.000 0.000 srgb} bind def -/col5 {1.000 0.000 1.000 srgb} bind def -/col6 {1.000 1.000 0.000 srgb} bind def -/col7 {1.000 1.000 1.000 srgb} bind def -/col8 {0.000 0.000 0.560 srgb} bind def -/col9 {0.000 0.000 0.690 srgb} bind def -/col10 {0.000 0.000 0.820 srgb} bind def -/col11 {0.530 0.810 1.000 srgb} bind def -/col12 {0.000 0.560 0.000 srgb} bind def -/col13 {0.000 0.690 0.000 srgb} bind def -/col14 {0.000 0.820 0.000 srgb} bind def -/col15 {0.000 0.560 0.560 srgb} bind def -/col16 {0.000 0.690 0.690 srgb} bind def -/col17 {0.000 0.820 0.820 srgb} bind def -/col18 {0.560 0.000 0.000 srgb} bind def -/col19 {0.690 0.000 0.000 srgb} bind def -/col20 {0.820 0.000 0.000 srgb} bind def -/col21 {0.560 0.000 0.560 srgb} bind def -/col22 {0.690 0.000 0.690 srgb} bind def -/col23 {0.820 0.000 0.820 srgb} bind def -/col24 {0.500 0.190 0.000 srgb} bind def -/col25 {0.630 0.250 0.000 srgb} bind def -/col26 {0.750 0.380 0.000 srgb} bind def -/col27 {1.000 0.500 0.500 srgb} bind def -/col28 {1.000 0.630 0.630 srgb} bind def -/col29 {1.000 0.750 0.750 srgb} bind def -/col30 {1.000 0.880 0.880 srgb} bind def -/col31 {1.000 0.840 0.000 srgb} bind def - -end -save -newpath 0 87 moveto 0 0 lineto 173 0 lineto 173 87 lineto closepath clip newpath --27.6 114.4 translate -1 -1 scale - -/cp {closepath} bind def -/ef {eofill} 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} bind def -/tr {translate} bind def -/tnt {dup dup currentrgbcolor - 4 -2 roll dup 1 exch sub 3 -1 roll mul add - 4 -2 roll dup 1 exch sub 3 -1 roll mul add - 4 -2 roll dup 1 exch sub 3 -1 roll mul add srgb} - bind def -/shd {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul - 4 -2 roll mul srgb} bind def -/$F2psBegin {$F2psDict begin /$F2psEnteredState save def} def -/$F2psEnd {$F2psEnteredState restore end} def - -$F2psBegin -10 setmiterlimit -0 slj 0 slc - 0.06299 0.06299 sc -% -% Fig objects follow -% -% -% here starts figure with depth 50 -% Arc -7.500 slw -0 slc -gs clippath -2135 534 m 2038 419 l 1992 457 l 2089 573 l 2089 573 l 2035 462 l 2135 534 l cp -eoclip - [60] 0 sd -n 1462.5 1012.5 795.5 98.1301 -45.0000 arcn -gs col0 s gr - gr - [] 0 sd -% arrowhead -0 slj -n 2135 534 m 2035 462 l 2089 573 l 2135 534 l cp gs col7 1.00 shd ef gr col0 s -% Arc -gs clippath -3044 522 m 2935 418 l 2893 461 l 3002 566 l 3002 566 l 2937 461 l 3044 522 l cp -eoclip - [60] 0 sd -n 2531.2 956.2 641.3 74.7449 -52.1250 arcn -gs col0 s gr - gr - [] 0 sd -% arrowhead -n 3044 522 m 2937 461 l 3002 566 l 3044 522 l cp gs col7 1.00 shd ef gr col0 s -% Polyline -gs clippath -782 1275 m 889 1381 l 931 1339 l 825 1232 l 825 1232 l 889 1339 l 782 1275 l cp -eoclip -n 450 900 m - 900 1350 l gs col0 s gr gr - -% arrowhead -n 782 1275 m 889 1339 l 825 1232 l 782 1275 l cp gs col7 1.00 shd ef gr col0 s -% Polyline -gs clippath -524 1682 m 418 1789 l 460 1831 l 567 1725 l 567 1725 l 461 1789 l 524 1682 l cp -eoclip -n 900 1350 m - 450 1800 l gs col0 s gr gr - -% arrowhead -n 524 1682 m 461 1789 l 567 1725 l 524 1682 l cp gs col7 1.00 shd ef gr col0 s -% Polyline -gs clippath -524 782 m 418 889 l 460 931 l 567 825 l 567 825 l 461 889 l 524 782 l cp -eoclip -n 900 450 m - 450 900 l gs col0 s gr gr - -% arrowhead -n 524 782 m 461 889 l 567 825 l 524 782 l cp gs col7 1.00 shd ef gr col0 s -% Polyline -gs clippath -1424 782 m 1318 889 l 1360 931 l 1467 825 l 1467 825 l 1361 889 l 1424 782 l cp -eoclip -n 1800 450 m - 1350 900 l gs col0 s gr gr - -% arrowhead -n 1424 782 m 1361 889 l 1467 825 l 1424 782 l cp gs col7 1.00 shd ef gr col0 s -% Polyline -gs clippath -1682 1275 m 1789 1381 l 1831 1339 l 1725 1232 l 1725 1232 l 1789 1339 l 1682 1275 l cp -eoclip -n 1350 900 m - 1800 1350 l gs col0 s gr gr - -% arrowhead -n 1682 1275 m 1789 1339 l 1725 1232 l 1682 1275 l cp gs col7 1.00 shd ef gr col0 s -% Polyline -gs clippath -1424 1682 m 1318 1789 l 1360 1831 l 1467 1725 l 1467 1725 l 1361 1789 l 1424 1682 l cp -eoclip -n 1800 1350 m - 1350 1800 l gs col0 s gr gr - -% arrowhead -n 1424 1682 m 1361 1789 l 1467 1725 l 1424 1682 l cp gs col7 1.00 shd ef gr col0 s -% here ends figure; -$F2psEnd -rs -showpage -%%Trailer -%EOF diff --git a/2009/3-dfs/imgn_nei.eps b/2009/3-dfs/imgn_nei.eps deleted file mode 100644 index 75ec44a..0000000 --- a/2009/3-dfs/imgn_nei.eps +++ /dev/null @@ -1,457 +0,0 @@ -%!PS-Adobe-3.0 EPSF-3.0 -%%Creator: Ipelib 60030 (Ipe 6.0 preview 30) -%%CreationDate: D:20090612221459 -%%LanguageLevel: 2 -%%BoundingBox: 49 297 147 360 -%%HiResBoundingBox: 49.5343 297.934 146.473 359.966 -%%DocumentSuppliedResources: font QPRPPC+CMR10 -%%EndComments -%%BeginProlog -%%BeginResource: procset ipe 6.0 60030 -/ipe 40 dict def ipe begin -/np { newpath } def -/m { moveto } def -/l { lineto } def -/c { curveto } def -/h { closepath } def -/re { 4 2 roll moveto 1 index 0 rlineto 0 exch rlineto - neg 0 rlineto closepath } def -/d { setdash } def -/w { setlinewidth } def -/J { setlinecap } def -/j { setlinejoin } def -/cm { [ 7 1 roll ] concat } def -/q { gsave } def -/Q { grestore } def -/g { setgray } def -/G { setgray } def -/rg { setrgbcolor } def -/RG { setrgbcolor } def -/S { stroke } def -/f* { eofill } def -/f { fill } def -/ipeMakeFont { - exch findfont - dup length dict begin - { 1 index /FID ne { def } { pop pop } ifelse } forall - /Encoding exch def - currentdict - end - definefont pop -} def -/ipeFontSize 0 def -/Tf { dup /ipeFontSize exch store selectfont } def -/Td { translate } def -/BT { gsave } def -/ET { grestore } def -/TJ { 0 0 moveto { dup type /stringtype eq - { show } { ipeFontSize mul -0.001 mul 0 rmoveto } ifelse -} forall } def -end -%%EndResource -%%EndProlog -%%BeginSetup -ipe begin -%%BeginResource: font QPRPPC+CMR10 -%!PS-AdobeFont-1.1: CMR10 1.00B -%%CreationDate: 1992 Feb 19 19:54:52 -% Copyright (C) 1997 American Mathematical Society. All Rights Reserved. -11 dict begin -/FontInfo 7 dict dup begin -/version (1.00B) readonly def -/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def -/FullName (CMR10) readonly def -/FamilyName (Computer Modern) readonly def -/Weight (Medium) readonly def -/ItalicAngle 0 def -/isFixedPitch false def -end readonly def -/FontName /QPRPPC+CMR10 def -/PaintType 0 def -/FontType 1 def -/FontMatrix [0.001 0 0 0.001 0 0] readonly def -/Encoding 256 array -0 1 255 {1 index exch /.notdef put} for -dup 65 /A put -dup 66 /B put -dup 67 /C put -dup 68 /D put -dup 69 /E put -dup 86 /V put -dup 58 /colon put -dup 53 /five put -dup 52 /four put -dup 49 /one put -dup 51 /three put -readonly def -/FontBBox{-251 -250 1009 969}readonly def -currentdict end -currentfile eexec -d9d66f633b846a97b686a97e45a3d0aa052a014267b7904eb3c0d3bd0b83d891 -016ca6ca4b712adeb258faab9a130ee605e61f77fc1b738abc7c51cd46ef8171 -9098d5fee67660e69a7ab91b58f29a4d79e57022f783eb0fbbb6d4f4ec35014f -d2decba99459a4c59df0c6eba150284454e707dc2100c15b76b4c19b84363758 -469a6c558785b226332152109871a9883487dd7710949204ddcf837e6a8708b8 -2bdbf16fbc7512faa308a093fe5cf7158f1163bc1f3352e22a1452e73feca8a4 -87100fb1ffc4c8af409b2067537220e605da0852ca49839e1386af9d7a1a455f -d1f017ce45884d76ef2cb9bc5821fd25365ddea6e45f332b5f68a44ad8a530f0 -92a36fac8d27f9087afeea2096f839a2bc4b937f24e080ef7c0f9374a18d565c -295a05210db96a23175ac59a9bd0147a310ef49c551a417e0a22703f94ff7b75 -409a5d417da6730a69e310fa6a4229fc7e4f620b0fc4c63c50e99e179eb51e4c -4bc45217722f1e8e40f1e1428e792eafe05c5a50d38c52114dfcd24d54027cbf -2512dd116f0463de4052a7ad53b641a27e81e481947884ce35661b49153fa19e -0a2a860c7b61558671303de6ae06a80e4e450e17067676e6bbb42a9a24acbc3e -b0ca7b7a3bfea84fed39ccfb6d545bb2bcc49e5e16976407ab9d94556cd4f008 -24ef579b6800b6dc3aaf840b3fc6822872368e3b4274dd06ca36af8f6346c11b -43c772cc242f3b212c4bd7018d71a1a74c9a94ed0093a5fb6557f4e0751047af -d72098eca301b8ae68110f983796e581f106144951df5b750432a230fda3b575 -5a38b5e7972aabc12306a01a99fcf8189d71b8dbf49550baea9cf1b97cbfc7cc -96498ecc938b1a1710b670657de923a659db8757147b140a48067328e7e3f9c3 -7d1888b284904301450ce0bc15eeea00e48ccd6388f3fc3a3b198747b4dc992e -839a610506453ba7b2a56b2c552fdbe23916074dd54d39ed27a52d90d5d74b07 -a5265e72e3f2e0acd9513e056f15e4bcbb9f409a6f39deae8d919c80ec13c56f -4864a6ccff1acfda3d992f46d45571fc760dff6ebfb011b6c123167ca96b77a0 -cfa8861be3814e002e0a571e62c497886a135acb53c0acf7fecceef3fa4dc436 -9115af71c9ca5e9e71caaf5a17d5598d8e8bb772ef73e44f07bfcea039dfb0f7 -e2c38f138ee0922fbdd3d7ba9cd9676102b0b9e22a4744edbf299db408b7b0b9 -b66dc8bdb8552ba01aee38e1205b077c2f2c646747c748125f1ccf350e3930ad -ae5249b3d5cae219454906c86eab1df73eec1e8afa68c7e230dad77d9a072873 -b96e9def3eaec6d5b9a045f9280d79ac9e0857ac916fc29db487a669486de827 -dfa3c487fbaebcbbcb9558497a66ce72491373354376aef7374ae1d709ec9ce1 -244e5cc8e7b40f9a2d36fbaa585e2265e0d4491f56166c30155a359ddb814235 -88d830822cf1827dd0b979e7f899a31e7570692e6a8eff1fbba5de09e2fc63c2 -934eda05d28cb4ed0a2804ca36d4619d88831a4ab00bdb2a8072edd1670ecd13 -87284ffdc14c464b15fefe5f5d17dd99a9c291a98fc3cd46a47764358d7d65d2 -da2a30960687f2dcf03e8ec3b3355440f87909ff158b8a851e1b210c3aab5a51 -451da27dd7da80feb166c3db5debd271270a478aed9640392137548da4060fa2 -2c764e0b6b9844980a089f0db4798087f2b4f9e15cbcc2b4b15da7f10d8dcf4a -96714fb8c4c3b8ec48d54aa658190a40ecbef817e6eff5db4181bf7dc7a13bf3 -f6a16435be39717749e237776b1cfbb090758a477f70be0c69b1ef937795fdbc -585fcdd4af78ae484b761bfc3661d687bb1a64f4ea8274af10dd73b7575d67e6 -78d78a9802fce8dd84d1006acdc3fdb82b18978ae78311ec7e57be059ce186c6 -e48830c45dac72f5f8661a57909384e6c4447b21340a4b05412f00865d53a4de -e0c47d4d3cb422399d88bf504f73094546c121fcfdf04fa7cb4962550134e3f6 -47eeea66e9dfd5998bf15055f858ed062d58ba72274ac6653317786f5e2042e5 -d4cd6fd151f7ad1d25517ed6d873a8bb4bf1789618bf224d3a3b2545982782bb -32e9c9b522abb351563d90f75154918a160bfcaae19ab1e61ce635a4004a912e -65ca0b2f3a4bd0207820edd437a307b7cfa74fc61e39283f38a8ad579fa4e5db -ce594480fb400b3a2aa034b9d2355e52e51f2dcd3c4809f0734ac964b93cc881 -c0c870304d83613d1f47f48b90d5b98538d08087144e573824a367e7d3efca97 -6bfd34799e6745358549b6fee54f708740b519578f21c667c0c381a89706c312 -a312ed8c10f96d2e8fae3b42313a09bdf601ea61373eff6e912dc93ba8ce55a9 -925ebbaa324e5c3c69e3ffebe71dc1c697bbc78c08f7981d03329cc648cd9289 -8c4e0a259895e741a5896b5c64468f95ddda059949e08dde8dcb8c937e8781c5 -683282986f90939e25fcab8db330bdd2db287554de19b78d8e9071256e1c5aff -8e21b522d852423cdaf38d1adce8482f076e6bc95f713d2e2637e2a192da02a1 -f677fcffaec9afff27e64e7d2e30aaa8a2ff2fb3b989da85c63a65bee2b05817 -4414dc2725db959992e4ffd3f9774c77e1b718eb56472bac7932eaef435a2f6f -e9c55380631a6c2c82666a5cc57219f679878349e7cfddfdb70f6b3c37ac95c3 -12c347be66e8aa46dbf239631922e4ac8fab0dac8a4553d73ee04ab3da50d44f -b2f39132ed5d8823017dd4a28c9140437ae367e1d20af64c350b4f1bb50ed4ba -6b7cbe3ee65a2ef32b0358cdd5b7ffa020306e64b3b2fbb3667b0c75a3a7a873 -4cfe41e347a658be4054c9d8423fa4019db27074ad2e0e8f6207cff81f7f82f0 -fb419014928396fa9a322f53c95dfa9261c5ea4865f3ee6d1ac0647accccdbe7 -25b8e918552e8381b87fc5c77986be2a77b36d17cd5bc23df8d6b0a7dfef62f5 -42f8fe68f17d9109e6148de69e1539d681964976be07e2f04685b9527cefca58 -9e9393089bd19aec57aa167c0ce1f497ae31c960ef1384a6d32249cab28b920c -1686978ccb1ba542e2c9087789aa35a189fb2593959033466cb1dd92469127a1 -d794ce4409803179f98a79501e1dad1038bbf3f6e81cb5523db5659b4dfdf080 -94a338deaa1b0697b0cac0fc91880437e832ca30f19c7170b0bb893f83c9ccc4 -e87eefce3098487fc5e87aad1765329b459f2d0658723a11f33e336b007f7f15 -6a397ec72cbe3712ba6d6bd42840ab45c34304fc39124a863efe6f361fc4d393 -7f0b28f11fc36f3ddb11f613481dea9b394aaceddce2bca659619d63495725ec -92bb5ecacc4c221125284d4fe04d41c57f6464206b8c83186f46b0df62fe5b24 -d3932aa11c4d79e45190d51ff66bb67492a7598ba18dde7d0425c27bcbabad06 -0863abeb53800e73945f001d439d582faaeb133d93dfe061137be3aa6a978002 -4134e128d0a061ce88a587be221168d10d8c949cc390a05d0fdc41d4b24a89b7 -d9bac2c2b884aa30cbab7b09689c8cedb68b0afb20631cb7305ca3260134a3e1 -9aa5bdf928d303183790ea6ff5b15df78a03a5aaaa74382721ceaa50c382d095 -6921e0e64a7cbc1b50ac285569c5efaa0aae56bf3755a36825d162e1649a77f6 -e6f7c41a5b281c43eadf2a90a743e3cd209ca0748716145fb87f57aa3b5ebf43 -96c5ce112c88956ae37ddae0bd254aba4f1f08d9a59934f2d4241732bd34b728 -10978c04d5dd04c20df81a2bff3d1befde4393382e7b99e364eab9702e0bd5f9 -47205de80f0d5d4156ae85c493a162124b76efeca55f33ca176baff8ea009c01 -ce30dfc9e54065321e0a862d825bc7c5d1d094599ade3cf94e9d7279953ff1d2 -fbd4b0f366d9a25634474ae202a5c14565f93b473e80cb09da4a16aeffeb4df5 -119b2aebdf8da0cf074f18d664d0188ec7e1c397dfa128b8c6c2168879c40da8 -3f4012ba83b665ab462c2f031b5cfe696647a3f8b718a1f6dfd226e8a464962a -da08dda0facd6f366b2c2ae6f8fbf35bac0e33574779a87f05f0a019460407d9 -bb357e58e5cbc8492aeff30f973fa4bf4dd36d2e78f68c3133df39d3502bd3b6 -92474c4d6cbbed6d3045713d9c4a43c644e0dcfee6e53e53f7b1abc99556af81 -f98b6b30d813f309883aa5d6da7f10bd3a1e4ee91ba1f83396fe036e8e87c26c -be6a9b016e7e5eadb64356c2086d8e150ce16ef4b3f4b1ae59b3ade1e5c66f9a -9d63de3ecb344346a99af40a851786fe6a2bd76b970179725de004784a0f4025 -b9eb1a0155c0dce68945b3a83137e354eaa48e0c0add1944fd77049fecba40c8 -6a01a75169b9efb433747f3f330423b58dcd98a6db30199e5e1b99cfba8c1176 -8a -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -cleartomark -%%EndResource -/F8 /QPRPPC+CMR10 findfont definefont pop -%%EndSetup -0 J 1 j -q 0.4 w -65.0001 338.434 m -78.5662 338.434 l -78.5662 352 l -65.0001 352 l -h S -Q -q 1 0 0 1 67 353 cm 1 0 0 1 0 0 cm 0 g -0 G - -1 0 0 1 0 -785.192 cm -BT -/F8 9.9626 Tf 0 785.192 Td [(A)]TJ -ET -Q -q 0.4 w -78.4961 338.434 m -92.0622 338.434 l -92.0622 352 l -78.4961 352 l -h S -Q -q 0.4 w -92.0721 338.434 m -105.638 338.434 l -105.638 352 l -92.0721 352 l -h S -Q -q 0.4 w -105.568 338.434 m -119.134 338.434 l -119.134 352 l -105.568 352 l -h S -Q -q 1 0 0 1 80.6523 353.157 cm 1 0 0 1 0 0 cm 0 g -0 G - -1 0 0 1 0 -785.192 cm -BT -/F8 9.9626 Tf 0 785.192 Td [(B)]TJ -ET -Q -q 1 0 0 1 94.5489 353.158 cm 1 0 0 1 0 0 cm 0 g -0 G - -1 0 0 1 0 -785.192 cm -BT -/F8 9.9626 Tf 0 785.192 Td [(C)]TJ -ET -Q -q 1 0 0 1 109.438 353.158 cm 1 0 0 1 0 0 cm 0 g -0 G - -1 0 0 1 0 -785.192 cm -BT -/F8 9.9626 Tf 0 785.192 Td [(D)]TJ -ET -Q -q 1 0 0 1 49.5343 341.845 cm 1 0 0 1 0 0 cm 0 g -0 G - -1 0 0 1 0 -785.192 cm -BT -/F8 9.9626 Tf 0 785.192 Td [(V:)]TJ -ET -Q -q 0.4 w -65.0001 298.334 m -78.5662 298.334 l -78.5662 311.9 l -65.0001 311.9 l -h S -Q -q 0.4 w -78.4961 298.334 m -92.0622 298.334 l -92.0622 311.9 l -78.4961 311.9 l -h S -Q -q 0.4 w -92.0721 298.334 m -105.638 298.334 l -105.638 311.9 l -92.0721 311.9 l -h S -Q -q 0.4 w -105.568 298.334 m -119.134 298.334 l -119.134 311.9 l -105.568 311.9 l -h S -Q -q 0.4 w -119.011 298.334 m -132.577 298.334 l -132.577 311.9 l -119.011 311.9 l -h S -Q -q 0.4 w -132.507 298.334 m -146.073 298.334 l -146.073 311.9 l -132.507 311.9 l -h S -Q -q 1 0 0 1 49.5343 301.746 cm 1 0 0 1 0 0 cm 0 g -0 G - -1 0 0 1 0 -785.192 cm -BT -/F8 9.9626 Tf 0 785.192 Td [(E:)]TJ -ET -Q -q 1 0 0 1 68.3803 342.51 cm 1 0 0 1 0 0 cm 0 g -0 G - -1 0 0 1 0 -785.58 cm -BT -/F8 9.9626 Tf 0 785.58 Td [(1)]TJ -ET -Q -q 1 0 0 1 68.3803 301.653 cm 1 0 0 1 0 0 cm 0 g -0 G - -1 0 0 1 0 -785.192 cm -BT -/F8 9.9626 Tf 0 785.192 Td [(B)]TJ -ET -Q -q 1 0 0 1 81.6312 301.653 cm 1 0 0 1 0 0 cm 0 g -0 G - -1 0 0 1 0 -785.192 cm -BT -/F8 9.9626 Tf 0 785.192 Td [(C)]TJ -ET -Q -q 1 0 0 1 94.0539 301.653 cm 1 0 0 1 0 0 cm 0 g -0 G - -1 0 0 1 0 -785.192 cm -BT -/F8 9.9626 Tf 0 785.192 Td [(D)]TJ -ET -Q -q 1 0 0 1 108.133 301.653 cm 1 0 0 1 0 0 cm 0 g -0 G - -1 0 0 1 0 -785.192 cm -BT -/F8 9.9626 Tf 0 785.192 Td [(D)]TJ -ET -Q -q 1 0 0 1 121.66 301.653 cm 1 0 0 1 0 0 cm 0 g -0 G - -1 0 0 1 0 -785.192 cm -BT -/F8 9.9626 Tf 0 785.192 Td [(A)]TJ -ET -Q -q 1 0 0 1 135.739 301.653 cm 1 0 0 1 0 0 cm 0 g -0 G - -1 0 0 1 0 -785.192 cm -BT -/F8 9.9626 Tf 0 785.192 Td [(B)]TJ -ET -Q -q 1 0 0 1 82.7354 342.51 cm 1 0 0 1 0 0 cm 0 g -0 G - -1 0 0 1 0 -785.58 cm -BT -/F8 9.9626 Tf 0 785.58 Td [(3)]TJ -ET -Q -q 1 0 0 1 95.7103 342.51 cm 1 0 0 1 0 0 cm 0 g -0 G - -1 0 0 1 0 -785.58 cm -BT -/F8 9.9626 Tf 0 785.58 Td [(4)]TJ -ET -Q -q 1 0 0 1 109.513 342.51 cm 1 0 0 1 0 0 cm 0 g -0 G - -1 0 0 1 0 -785.58 cm -BT -/F8 9.9626 Tf 0 785.58 Td [(5)]TJ -ET -Q -q [4] 0 d -0.4 w -71.1641 337.708 m -71.1641 313.414 l -S -q [] 0 d -71.1641 313.414 m -72.8308 318.414 l -69.4975 318.414 l -h q f* Q S -Q -Q -q [4] 0 d -0.4 w -84.887 336.958 m -97.768 313.596 l -S -q [] 0 d -97.768 313.596 m -96.8133 318.78 l -93.8942 317.17 l -h q f* Q S -Q -Q -q [4] 0 d -0.4 w -98.9661 336.958 m -111.847 313.596 l -S -q [] 0 d -111.847 313.596 m -110.892 318.78 l -107.973 317.17 l -h q f* Q S -Q -Q -q [4] 0 d -0.4 w -113.045 336.958 m -125.926 313.596 l -S -q [] 0 d -125.926 313.596 m -124.971 318.78 l -122.052 317.17 l -h q f* Q S -Q -Q -showpage -%%BeginIpeXml: /FlateDecode -%GhU]8?#SFN'Sc)R/$.N9r;BKX9&$q8rINcDE$8s=;%h9"^OE@Re#h)t8EiGg,iln`kOGh'H]GYZ -%X%7E=DXqg0b7%mDARnZYd$F>Uqh@j5)6)o2bMt`OkOleo^:c,mA)_Nph-:<,4>U4J/tJ:Gfp'\X -%2ZKOJE2@tPk4A.PQ7_C-66htsfrE]3O$uHXqHLQ=X%696^23?^EL+.G\-S/#-JPc@MbmC=cqVlL -%F^7`ARY4,!mp:sQ6G)*8H61SCFa8a.o-,aRJ0!?)#99MY3lrp]l-hj&7QkCSE%\,O-6lND_mX-i -%#mJt?-;k2V\T%F8d5?#\R(fiF$53VWgA'#9ZHkVMS4pR?$G00#=;Oc>E&b=TXRMDtb[Zctqg@)" -%B:5U=MN"WH^08"u7I$8`a>-eq'/SuAOfq#3%o"VGD8ajaVtTbTY,2N(pX12!84=7Opmq=m!BSYHN9q+gVg#&DX' -%-\hi*VcpVE@eK'K0OaLuC(;Wm_sE^h^K,Se6er.7;dp"UIiI=!6__2MkEs\2e9pF)Q,^@cLh#SX -%M1l9eW8KAJ0f,>S!Fn>JTY`<32UmHL -%%EndIpeXml -%%Trailer -end -%%EOF diff --git a/2009/3-dfs/imgn_o4.eps b/2009/3-dfs/imgn_o4.eps deleted file mode 100644 index 27fcbcf..0000000 --- a/2009/3-dfs/imgn_o4.eps +++ /dev/null @@ -1,253 +0,0 @@ -%!PS-Adobe-3.0 EPSF-3.0 -%%Creator: Ipelib 60030 (Ipe 6.0 preview 30) -%%CreationDate: D:20090612215531 -%%LanguageLevel: 2 -%%BoundingBox: 19 396 116 489 -%%HiResBoundingBox: 19.515 396.99 115.567 488.793 -%%DocumentSuppliedResources: font ONQNXF+CMR10 -%%EndComments -%%BeginProlog -%%BeginResource: procset ipe 6.0 60030 -/ipe 40 dict def ipe begin -/np { newpath } def -/m { moveto } def -/l { lineto } def -/c { curveto } def -/h { closepath } def -/re { 4 2 roll moveto 1 index 0 rlineto 0 exch rlineto - neg 0 rlineto closepath } def -/d { setdash } def -/w { setlinewidth } def -/J { setlinecap } def -/j { setlinejoin } def -/cm { [ 7 1 roll ] concat } def -/q { gsave } def -/Q { grestore } def -/g { setgray } def -/G { setgray } def -/rg { setrgbcolor } def -/RG { setrgbcolor } def -/S { stroke } def -/f* { eofill } def -/f { fill } def -/ipeMakeFont { - exch findfont - dup length dict begin - { 1 index /FID ne { def } { pop pop } ifelse } forall - /Encoding exch def - currentdict - end - definefont pop -} def -/ipeFontSize 0 def -/Tf { dup /ipeFontSize exch store selectfont } def -/Td { translate } def -/BT { gsave } def -/ET { grestore } def -/TJ { 0 0 moveto { dup type /stringtype eq - { show } { ipeFontSize mul -0.001 mul 0 rmoveto } ifelse -} forall } def -end -%%EndResource -%%EndProlog -%%BeginSetup -ipe begin -%%BeginResource: font ONQNXF+CMR10 -%!PS-AdobeFont-1.1: CMR10 1.00B -%%CreationDate: 1992 Feb 19 19:54:52 -% Copyright (C) 1997 American Mathematical Society. All Rights Reserved. -11 dict begin -/FontInfo 7 dict dup begin -/version (1.00B) readonly def -/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def -/FullName (CMR10) readonly def -/FamilyName (Computer Modern) readonly def -/Weight (Medium) readonly def -/ItalicAngle 0 def -/isFixedPitch false def -end readonly def -/FontName /ONQNXF+CMR10 def -/PaintType 0 def -/FontType 1 def -/FontMatrix [0.001 0 0 0.001 0 0] readonly def -/Encoding 256 array -0 1 255 {1 index exch /.notdef put} for -dup 65 /A put -dup 66 /B put -dup 67 /C put -dup 68 /D put -readonly def -/FontBBox{-251 -250 1009 969}readonly def -currentdict end -currentfile eexec -d9d66f633b846a97b686a97e45a3d0aa052a014267b7904eb3c0d3bd0b83d891 -016ca6ca4b712adeb258faab9a130ee605e61f77fc1b738abc7c51cd46ef8171 -9098d5fee67660e69a7ab91b58f29a4d79e57022f783eb0fbbb6d4f4ec35014f -d2decba99459a4c59df0c6eba150284454e707dc2100c15b76b4c19b84363758 -469a6c558785b226332152109871a9883487dd7710949204ddcf837e6a8708b8 -2bdbf16fbc7512faa308a093fe5cf7158f1163bc1f3352e22a1452e73feca8a4 -87100fb1ffc4c8af409b2067537220e605da0852ca49839e1386af9d7a1a455f -d1f017ce45884d76ef2cb9bc5821fd25365ddea6e45f332b5f68a44ad8a530f0 -92a36fac8d27f9087afeea2096f839a2bc4b937f24e080ef7c0f9374a18d565c -295a05210db96a23175ac59a9bd0147a310ef49c551a417e0a22703f94ff7b75 -409a5d417da6730a69e310fa6a4229fc7e4f620b0fc4c63c50e99e179eb51e4c -4bc45217722f1e8e40f1e1428e792eafe05c5a50d38c52114dfcd24d54027cbf -2512dd116f0463de4052a7ad53b641a27e81e481947884ce35661b49153fa19e -0a2a860c7b61558671303de6ae06a80e4e450e17067676e6bbb42a9a24acbc3e -b0ca7b7a3bfea84fed39ccfb6d545bb2bcc49e5e16976407ab9d94556cd4f008 -24ef579b6800b6dc3aaf840b3fc6822872368e3b4274dd06ca36af8f6346c11b -43c772cc242f3b212c4bd7018d71a1a74c9a94ed0093a5fb6557f4e0751047af -d72098eca301b8ae68110f983796e581f106144951df5b750432a230fda3b575 -5a38b5e7972aabc12306a01a99fcf8189d71b8dbf49550baea9cf1b97cbfc7cc -96498ecc938b1a1710b670657de923a659db8757147b140a48067328e7e3f9c3 -7d1888b284904301450ce0bc15eeea00e48ccd6388f3fc3a3b198747b4dc992e -839a610506453ba7b2a56b2c552fdbe23916074dd54d39ed27a52d90d5d74b07 -a5265e72e3f2e0acd9513e056f15e4bcbb9f409a6f39deae8d919c80ec13c56f -4864a6ccff1acfda3d992f46d45571fc760dff6ebfb011b6c123167ca96b77a0 -cfa8861be3814e002e0a571e62c497886a135acb53c0acf7fecceef3fa4dc436 -9115af71c9ca5e9e71caaf5a17d5598d8e8bb772ef73e44f07bfcea039dfb0f7 -e2c38f138ee0922fbdd3d7ba9cd9676102b0b9e22a4744edbf299db408b7b0b9 -b66dc8bdb8552ba01aee38e1205b077c2f2c646747c748125f1ccf350e3930ad -ae5249b3d5cae219454906c86eab1df73eec1e8afa68c7e230dad77d9a072873 -b96e9def3eaec6d5b9a045f9280d79ac9e0857ac916fc29db487a669486de827 -dfa3c487fbaebcbbcb9558497a66ce72491373354376aef7374ae1d709ec9a16 -4c369c237dd28fc4be2843036e872b2a008d0ddea0146e9e5f0ef49715bdcdab -d4efa0bd65c6822d70b0fbd115be7ebce816ab40d2ecdb17e15f2adb75a84589 -be79a66e6c29ace5156971c30e226b3fc1a7cbfe350c693b23476c3c77f0d214 -06751d2decca6d14a899c877a1f71cf5f205c8ff35460b3792108c17a29a339f -99a0be9fc33a702d808aab91fd490e6e8c0d59356d2b2cd44371d02d3d040d8f -121ce31ccece5ddae9c44e87f9139deb1ab6d393e6eadb7a3a33b4217523ec3f -fec90d8b22e6ccbe26b11e71f55ed334888ac82ad91c436891db5661343dfd21 -45312879ec8d7683212cde2995795e39d4675e000110da0432e48b67649a1b26 -4987a5eca0e6a22e78449eb3c8fd551c4e5e87a6054f1c5971ef8ff30f2783ee -a5ff2ea77e69b9941d2dbce8a5925612d11b11a7df8bd2f330b197b3dd86c24b -fc572da77bbfb6af2188ee8dd14cf4ade307fa46d9b8d22aeb35a43f06b5821b -9e482756623e2f0140d7098532257572404be051e8df6f02f84bfea203c615fa -fcecfeccb003b823def3067c1997219f65806a8773058cd3424d7c7cd0cf374a -e86fce217b3bf9aa401c2dd821dd46b39379c8b52c6036ec0f40f93a28c315e5 -ead19ea0801900ccd6ac97146e65ca89d2867893229462bf170182af3e77b420 -2bbb41906d120ed411c876185c41a0372b8ddfe0e8625fcd3e404f9c044620bd -71c507c4d00bcb084d603f7a14b080d45636acf5e6a650ee2085a677551c09dd -32c78015d76bb8f2f2da0eab87ee1a7d85c74b8b77f6ce17635a52c38156d333 -ab3d45276fe6e5b54ade0a1e88182b17520412533a15e7f589117836d5ab87ab -b39b71b7322990f215dbf76876266c309ddae6e644a9d8e5db424962962bd8a0 -d63f41db64526d791ba810a40c52c2f8c6824883c80adb7319a6a789a6284fe3 -8540c49bd012c615e9884a94e4cc8abed89c93bfc593e096f2d2a0503a517103 -59010b87a61e0cf19bcb639df479d7cd66bfc21e654d798eca1a2fe47a895b07 -16410efbe3e70dbed8059b584a7e3c7a1e8dd8b59f4b185715cd1a558a3fccd2 -f4f46d7eb073a7d5db4c302e25421cb49666e97660f8884c760ea1777df5b552 -a97193acae48bfaef59477bf56ef0a119fb48ab70e6d96edb07d71f731e0d4fe -3181d8d39ebec0da4dfc85cf47408ec49bc65bea2ca37a292d16c00955f12017 -76ea1f3e853813cbd0a712e3500da4072fd738087710abfded16c53d1beb6bc6 -cf4a09593a33440859d4689070b8edc1bd731ff68459036f51d4123f2032bd98 -9256c2d93db97af05aecd7b4b12455d6dd2aea6b7bd5bb94c0fb073523339505 -3ee6f692022ee5f56a29b65644b4d5603cc3a88423e127b23869a5623d55 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -cleartomark -%%EndResource -/F8 /ONQNXF+CMR10 findfont definefont pop -%%EndSetup -0 J 1 j -q 0.4 w -31.6395 407.552 m -103.142 407.574 l -S -q 103.142 407.574 m -93.141 410.904 l -93.143 404.238 l -h q f* Q S -Q -Q -q 1 0 0 1 19.515 481.985 cm 1 0 0 1 0 0 cm 0 g -0 G - -1 0 0 1 0 -785.192 cm -BT -/F8 9.9626 Tf 0 785.192 Td [(A)]TJ -ET -Q -q 1 0 0 1 108.51 481.985 cm 1 0 0 1 0 0 cm 0 g -0 G - -1 0 0 1 0 -785.192 cm -BT -/F8 9.9626 Tf 0 785.192 Td [(B)]TJ -ET -Q -q 1 0 0 1 19.516 396.99 cm 1 0 0 1 0 0 cm 0 g -0 G - -1 0 0 1 0 -785.192 cm -BT -/F8 9.9626 Tf 0 785.192 Td [(C)]TJ -ET -Q -q 1 0 0 1 106.511 396.99 cm 1 0 0 1 0 0 cm 0 g -0 G - -1 0 0 1 0 -785.192 cm -BT -/F8 9.9626 Tf 0 785.192 Td [(D)]TJ -ET -Q -q 0.4 w -31.6395 480.548 m -103.142 480.57 l -S -q 103.142 480.57 m -93.141 483.9 l -93.143 477.234 l -h q f* Q S -Q -Q -q 0.4 w -103.365 407.476 m -103.411 480.312 l -S -q 103.411 480.312 m -100.071 470.314 l -106.738 470.31 l -h q f* Q S -Q -q 103.365 407.476 m -106.705 417.474 l -100.038 417.478 l -h q f* Q S -Q -Q -q 0.4 w -31.369 407.81 m -31.4148 480.779 l -S -q 31.369 407.81 m -34.7086 417.808 l -28.0419 417.812 l -h q f* Q S -Q -Q -q 0.4 w -31.5722 480.31 m -103.217 407.863 l -S -q 31.5722 480.31 m -36.2337 470.856 l -40.9739 475.544 l -h q f* Q S -Q -Q -showpage -%%BeginIpeXml: /FlateDecode -%GhTRUgMRrR&-1)OI)Uncj5CK52cADCoJ<^GCm;>O`NG`,?f,:?Bi<&iUEm-U+U5hm@.5B7#nEpC -%\_B'e+t@--.OgB`C"Nq'>)psrFNE\Y.!U*FaSYl&3$taHG5"EL#.-]he.s?_?+8,Rq2^ms7L9:B -%AbX]YLh5[/7@)YUOi\jI`D[^+S3\k>Yh2GLR5ZIN,0k-J9(OcJ9%5@m7OD -%e]2ZV*-E,UN2:lo6-D0h*f(iWOpQm`;(J?!!p%@p5m&oX=[d[g;`%#I8g*lFJdRe_iu.KGEk(S\ -%0"+.rV0d#\)p9Q??5RR5Z(Qa._/%]Z#[;Xh)XDYS!a82]<>'IK:ZF=(!2P[+RD_-b!)\76""iD- -%!i2WG:kQ3>U6`Xjgo&:s-:0lXosek+j4_mHD,];-7lkh]One7lf-"@L6Yu@Kp9KWEC@aVdY,5,W -%mHsW5@U=ok.htA_O\GBflG=pJ4A).jWOX?Ej5(sXp,8o"Wb)]P9%9YCW)aL1JsMX:n#oSW0^kZ` -%Iq)BA,GKifZ`;haW\m?_&[T'__rN&A2>ulTA:t&t]N.2ccKbgAV:lEs?E+B'G`s -%%EndIpeXml -%%Trailer -end -%%EOF diff --git a/2009/3-dfs/praseci-graf.eps b/2009/3-dfs/praseci-graf.eps deleted file mode 100644 index e30f7e1..0000000 Binary files a/2009/3-dfs/praseci-graf.eps and /dev/null differ diff --git a/3-grafy/3-grafy.tex b/3-grafy/3-grafy.tex new file mode 100644 index 0000000..796f6a4 --- /dev/null +++ b/3-grafy/3-grafy.tex @@ -0,0 +1,249 @@ +\input ../lecnotes.tex + +\prednaska{3}{Prohledání do~¹íøky a do~hloubky}{} + +\h{Prohledání do~¹íøky (BFS) {\I Breadth-First Search} } + +Jde o grafový algoritmus, který postupnì prochází v¹echny vrcholy v~dané komponentì souvislosti. +Algoritmus nejprve projde v¹echny sousedy poèáteèního vrcholu, poté sousedy sousedù, atd\dots +Díky tomuto zpùsobu procházení se nìkdy té¾ nazývá \uv{\I algoritmus vlny}, nebo» se z~poèáteèního vrcholu ¹íøí pomyslná vlna, která v~ka¾dém kroku nalezne v¹echny uzly, které mají od~poèáteèního vrcholu stejnou vzdálenost. Algoritmus se tedy skvìle hodí napøíklad pro hledání nejkra¹í cesty mezi dvìma vrcholy v~grafu. +\figure{praseci-graf.eps}{Praseèí graf}{55mm} + + +\s{Popis algoritmu:} +Na zaèátku vlo¾íme do~fronty $Q$ poèáteèní vrchol $v_0$. Dále si v~poli $Z$ budeme pro ka¾dý vrchol pamatovat znaèku, zda jsme ho ji¾ nav¹tívili, èi nikoli. Pro vrchol $v_0$ si tedy dosazením jednièky zapamatujeme, ¾e je ji¾ nav¹tívený. V~dal¹ím kroku pak zkoumáme frontu $Q$: pokud není prázdná, vezmeme z~ní první vrchol a podíváme se na~v¹echny jeho sousedy $w$. Pokud je¹tì nejsou oznaèené (tedy $Z[w]=0$), tak je oznaèíme (zapamatujeme si, ¾e je pøedáváme ke zpracování a u¾ je nemáme znovu nav¹tìvovat) a pøidáme je do~fronty k~následnému zpracování. Takto cyklus opakujeme, dokud není fronta prázdná. + +\s{Poznámka:} +Nejprve se podívejme, jak algoritmus pracuje na orientovaném grafu. Pro neorientovaný graf funguje algoritmus analogicky, co¾ si uká¾eme pozdìji. + +\s{Algoritmus:} + +\algo +\:$Q \leftarrow \{v_0\}$. +\:$Z[*] \leftarrow 0, Z[v_0] \leftarrow 1$. +\:Dokud $Q \not= \emptyset $ opakujeme: +\::Vyzvedneme vrcholy $u$ z~$Q$. +\::$\forall w: (u,w)\in E$: +\:::Je-li $Z[w]=0 \Rightarrow Z[w] \leftarrow 1$, pøidáme $w$ do~$Q$. +\endalgo + + +\>{\I Pozorování:} {\I BFS} se zastaví. + +\proof Zpracováváme jen vrcholy, které byly ve~frontì. Ka¾dý vrchol se dostane do~fronty maximálnì jednou. (Ka¾dý je oznaèen max. jednou, znaèky neodstraòujeme.) + +\s{Lemma:} BFS($v_0$) oznaèí $v$ právì tehdy, kdy¾ existuje cesta z~$v_0$ do~$v$. + +\proof +\uv{$\Longrightarrow$}: +Platí jako invariant po celou dobu bìhu algoritmu. To doká¾eme indukcí dle doby bìhu algoritmu: + +První krok indukce je triviální, nebo» cesta z~$v_0$ do~$v_0$ existuje v¾dy. Nyní si pøedstavme, ¾e oznaèujeme vrchol~$v$ pøes hranu~$uv$. To znamená, ¾e vrchol~$u$ ji¾ musel být oznaèený. Dle indukèního pøedpokladu tedy existuje cesta z~$v_0$ do~$u$, a tudí¾ pokud k~této cestì \uv{pøilepíme} hranu~$uv$, dostáváme sled z~$v_0$ do~$v$, který lze v¾dy zredukovat na cestu. + +\uv{$\Longleftarrow$} Sporem: Nech» existuje neoznaèený vrchol $v$ dosa¾itelný po nìjaké cestì z~$v_0$. Uva¾me nejkrat¹í cestu $(v_0, v)$: $v_0, v_1 \dots, v_k = v$ a vezmìme minimální~$i$ takové, ¾e~$v_i$ není oznaèený. Víme, ¾e~$i>0$ (nebo»~$v_0$ je urèitì oznaèen u¾ na zaèátku algoritmu). Tudí¾~$v_{i-1}$ je oznaèený. Museli jsme tedy pou¾ít hranu~$v_{i-1}~v_i$ a oznaèit vrchol~$v_i$, co¾ je SPOR. \qed + +Nyní tedy víme, ¾e je algoritmus správný, a máme pøedstavu o tom, jak funguje. Podíváme-li se na~nìj podrobnìji, zjistíme, ¾e je hodnì závislý na~tom, jak si budeme graf pamatovat. Zanedlouho zároveò zjistíme, ¾e nám reprezentace grafu v~pamìti znatelnì ovlivní èasovou (i pamì»ovou) slo¾itost celého algoritmu. + +\h{Reprezentace grafu v~pamìti} + +Oznaème vrcholy grafu na~následujícím obrázku písmeny A, B, C, D. +Pokud bychom chtìli tento graf uchovat v~pamìti poèítaèe, máme na~výbìr +hned nìkolik zpùsobù, jak to udìlat. +\figure{imgn_o4.eps}{}{\epsfxsize} +\s{1. matice sousednosti} + +Matice sousednosti pro graf $G$ na~$n$ vrcholech je ètvercové pole $A$ o velikosti $n \times n$, jeho¾ prvky na +souøadnicích $i, j$ jsou dány následujícím pøedpisem: + +$$ A_{i,j} = \left\{ \matrix {1 \Leftrightarrow \{i,j\} \in E \cr + 0 \Leftrightarrow \{i,j\} \notin E \cr + } +\right.$$ + +Na~pozicích $i,j$ je jednièka, pokud v~grafu $G$ vede hrana z~vrcholu~$i$ do~vrcholu~$j$, jinak to je nula. +Ná¹ graf z~obrázku vý¹e by tedy v~maticové reprezentaci vypadal takto: + +$$\bordermatrix{ + & A & B & C & D\cr +A & 0 & 1 & 1 & 0\cr +B & 0 & 0 & 0 & 1\cr +C & 0 & 0 & 0 & 1\cr +D & 1 & 1 & 0 & 0\cr +}$$ + +S touto maticí se pracuje velmi snadno, napø. v¹echny sousedy $i$-tého vrcholu +zjistíme jednodu¹e tak, ¾e projdeme $i$-tý øádek matice. +Má ov¹em dvì zøejmé nevýhody: èasovou a pamì»ovou slo¾itost. Projití sousedù jednoho vrcholu trvá v¾dy $\Theta(n)$, projití sousedù pro v¹echny vrcholy (co¾ potøebujeme v~BFS) pak trvá $\Theta(n^2)$. Velikost matice je v¾dy $n \times n$, bez ohledu na~to, jak \uv{øídký} je graf. U grafu s mnoha vrcholy, ale s malým poètem hran, tedy budeme zbyteènì plýtvat místem v~pamìti. Tato reprezentace je tedy nevýhodná pøedev¹ím pro tøídy grafù jako jsou stromy, které mají $n-1$ hran, nebo rovinné grafy, které mají nejvý¹e $3n-6$ hran. + +\s{Pozorování:} BFS s reprezentací maticí sousednosti bì¾í v~èase: $\Theta(n^2)$. + +\proof +U¾ jsme si uvìdomili, ¾e ka¾dý vrchol se dostane do~fronty $Q$ nejvý¹e jednou. Pro ka¾dý vrchol ve~frontì potøebujeme projít jeho sousedy, co¾ nám trvá s~reprezentací maticí sousednosti $\Theta(n)$. Vrcholù je celkem $n$, tedy èasová slo¾itost je $\Theta(n^2)$. +\qed + +\s{2. seznam sousedù} + +V~matici sousednosti jsme museli procházet jak hrany, tak nehrany, co¾ bylo zbyteèné. Bylo by tedy výhodnìj¹í pamatovat si pro ka¾dý vrchol pouze jeho sousedy. To mù¾eme zaøídit napøíklad jedním ze~dvou následujících zpùsobù: + +Uchovávejme pole indexované vrcholy tak, ¾e v~ka¾dém prvku pole je ukazatel na~spojový seznam sousedù tohoto vrcholu. Tedy $L(v)=\{w: vw \in E(G)\}$. + +Pokud se nám nebude chtít pracovat se spojovými seznamy, mù¾eme vyu¾ít reprezentaci pomocí dvou polí. První pole~$V$ bude opìt indexované vrcholy. V~druhém poli~$E$ budou pro ka¾dý vrchol ulo¾eni jeho sousedé. V~poli~$V$ si pamatujeme pro ka¾dý vrchol~$i$ index do~pole~$E$, kde zaèínají jeho sousedé. K sousedùm vrcholu~$i$ se tedy dostaneme ji¾ snadno - nalezneme je na pozicích $V[i]~\dots~V[i+1]-1$. +\figure{imgn_nei.eps}{Znázornìní polí seznamu sousedù.}{\epsfxsize} + + +Na tuto reprezentaci u¾ staèí prostor $O(n + m)$, co¾ u¾ je, na~rozdíl od~pøedchozího kvadratického prostoru, docela pøíjemné. + +\s{Pozorování:} BFS bì¾í v~èase: $\Theta(n+m)$. + +\proof +Algoritmus vezme ka¾dý vrchol i ka¾dou hranu do~ruky nejvý¹e jednou. Èasová slo¾itost bude tedy: +$$\Theta\left(n+\sum_{v\in V(G)} {\rm deg}(v)\right) = \Theta(n+m).$$ +\qed + +\s{3. orákulum} + +Dal¹í mo¾ností reprezentace je pak jakési orákulum, které nám øekne (spoèítá), kam vedou hrany z~daného vrcholu\dots To se hodí napøíklad tehdy, pokud si nepotøebujeme pamatovat celý graf, ale staèí nám naleznout sousedy nìjakého vrcholu, které orákulum jednoznaènì výpoètem doká¾e urèit. Napøíklad pøi øe¹ení známé úlohy odmìøení daného mno¾ství vody za pomocí nádob rùzných objemù mù¾eme tento zpùsob reprezentace grafu pou¾ít. Problém pøevedeme na prohledávání grafu do~¹íøky, kde vrcholùm odpovídají jednotlivé stavy. Stav øíká, kolik vody je zrovna ve které nádobì. Potom nám ji¾ staèí ze zadaného poèáteèního vrcholu (stavu) najít cestu do~cílového. Orákulum je zde vlastnì funkce, které pøedáme vrchol a ona nám vrátí v¹echny vrcholy sousední -- tedy takové stavy, ke kterým dojde, kdy¾ vyzkou¹í v¹echny mo¾nosti pøelití kapaliny z jedné nádoby do~druhé. + +\h{Roz¹íøení algoritmu:} + +Abychom mohli vyu¾ít toho, ¾e algoritmus prochází vrcholy grafu ve~vlnì, a jiných hezkých vlastností, tak si dodefinujeme následující oznaèení: + +V~poli $D$ bude pro ka¾dý vrchol ulo¾ena vzdálenost od~poèáteèního vrcholu. +V~poli $P$ si budeme pro ka¾dý vrchol pamatovat jeho pøedchùdce. Dále budeme vyu¾ívat fáze bìhu algoritmu, které budou simulovat onu vlnu: + +\s{Definice: {\I Fáze bìhu algoritmu}:} Ve~fázi $F_0$ je zpracováván vrchol $v_0$. Ve~fázi $F_{i+1}$ jsou zpracovávány vrcholy ulo¾ené do~fronty $Q$ bìhem fáze $F_i$. + +\s{Roz¹íøený algoritmus:} +\algo +\:$Q \leftarrow \{v_0\}$. +\:$Z[*] \leftarrow 0, Z[v_0] \leftarrow 1$. +\:$D[*] \leftarrow \infty, D[v_0] \leftarrow 0$. +\:Dokud $Q \not= \emptyset $ opakujeme: +\::Vyzvedneme vrchol $u$ z~$Q$. +\::Pro ka¾dý vrchol $w$, který je sousedem vrcholu $u$: +\:::Je-li $Z[w]=0 \Rightarrow Z[w] \leftarrow 1, D[w] \leftarrow D[u]+1, P[w] \leftarrow u$ +\::::Pøidáme $w$ do~$Q$. +\endalgo + +\s{Lemma:} Na~konci BFS pro v¹echny vrcholy dosa¾itelné z~$v_0$ platí, ¾e vrchol $v$ byl zpracován ve~fázi $F_i$ právì tehdy, kdy¾ vzdálenost $v_0$ a $v$ (délka nejkrat¹í cesty z~$v_0$ do~$v$) je rovna $i$. Formálnì zapsáno: $v \in F_i \Leftrightarrow d(v_0,v) = i$. (Kde $d(x,y)$ je délka nejkrat¹í cesty z~$x$ do~$y$). + +\proof +\uv{$\Longrightarrow$}: +Dùkaz provedeme indukcí podle $i$ (èísla fáze bìhu algoritmu). + +První krok indukce je triviální, nebo» ve~fázi $F_0$ je oznaèen (dle definice) pouze vrchol $v_0$ a to je jediný vrchol vzdálený~0 od~$v_0$. + +Pokud je vrchol $v$ zpracováván ve~fázi $F_i$, pak musel být zaøazen do~fronty bìhem fáze $F_{i-1}$ jako soused nìjakého vrcholu $u$. Pro vrchol $u$ mù¾eme pou¾ít indukèní pøedpoklad, tedy ¾e délka nejkrat¹í cesty z~$v_0$ do~$u$ je $d(v_0,u)=i-1$. Pak tedy $d(v_0,v)\leq i$, nebo» je¹tì nevíme, zda cesta $v_0, \dots, u, v$ je nejkrat¹í. Kdyby ale existovala nìjaká krat¹í, tedy délky nejvý¹e $i-1$, tak by byl vrchol $v$ objeven u¾ døíve ne¾ ve fázi $F_i$. Proto $d(v_0,v) = i$. + + +\uv{$\Longleftarrow$}: Ka¾dý dosa¾itelný vrchol padne do~nìjaké fáze (viz. minulé lemma). +\qed + +Ji¾ tedy víme, ¾e vrchol $v_i$, jeho¾ vzdálenost od~vrcholu $v_0$ je $i$, bude zpracován v~$i$-té fázi. Jak ale po~skonèení algoritmu zjistíme, ve které fázi byl zpracován, neboli jak je vzdálený od~startovního vrcholu? Tato informace je právì ulo¾ena v~poli $D$ s indexem $i$ (v~$D[i]$). + +Zároveò nás mù¾e zajímat, jak bychom nejkrat¹í cestu z~$v_0$ do~$v_i$ rekonstruovali. Pro tento úèel jsme si zavedli pole $P$. Nejkrat¹í cesta z~$v_0$ do~$v_i$ bude v~obráceném poøadí vypadat: $v_i, P[v_i], P[P[v_i]], P[P[P[v_i]]], \dots, v_0$. + + +\s{Pozorování:} Pokud víme, ¾e $v_0, v_1, \dots, v_{k-1}, v_k$ je nejkrat¹í cesta z~$v_0$ do~$v_k$, pak $v_0,v_1,\dots,v_{k-1}$ je nejkrat¹í cesta z~$v_0$ do~$v_{k-1}$. Neboli prefix nejkrat¹í cesty je nejkrat¹í cesta. + +\proof +Kdyby existovala krat¹í cesta z~$v_0$ do~$v_{k-1}$, pak bychom mohli zkrátit i cestu z~$v_0$ do~$v_k$. + + +\s{Pozorování:} BFS u~neorientovaného grafu projde celou komponentu souvislosti. + +\proof +Víme, ¾e BFS($v_0$) oznaèí $v$ právì tehdy, kdy¾ existuje cesta z~$v_0$ do~$v$. V~neorientovaném grafu existuje cesta z~$v_0$ do~právì v¹ech vrcholù, které jsou ve~stejné komponentì souvislosti jako $v_0$. Pokud tedy spustíme BFS na~$v_0$, tak se postupnì projdou v¹echny vrcholy této komponenty souvislosti. +\qed + +\s{Pozorování:} Pokud BFS postupnì spou¹tíme na~dosud neobarvené vrcholy v~ neorientovaném grafu, nalezneme nakonec v~èase $\Theta(n+m)$ v¹echny komponenty souvislosti. + +\s{Algoritmus:} +\algo +\:Pro v¹echny vrcholy $v \in V(G)$ opakuj: +\::Pokud je vrchol $v$ neobarvený $ \Rightarrow \$. +\endalgo + +\proof +Ka¾dým spu¹tìním na~dosud neobarvený vrchol neorientovaného grafu obarvíme právì jednu komponentu souvislosti (tu, ve~které je tento vrchol). +Postupnì projdeme v¹echny vrcholy od prvního k poslednímu a v¾dy pokud je vrchol neobarvený, spustíme na nìj BFS. Tak nakonec obarvíme v¹echny komponenty souvislosti. Èasová slo¾itost bude stejná jako u~samotného BFS, tedy $\Theta(n + m)$. +\qed + +\s{Vìta:} $BFS(v_0)$ v~èase $\Theta(n + m)$ spoète: +\itemize\ibull +\:vrcholy dosa¾itelné z~$v_0$ +\:vzdálenosti tìchto vrcholù od~$v_0$ +\:strom nejkrat¹ích cest z~$v_0$ +\endlist + +\s{Poznámka:} Algoritmus na prohledávání do~¹íøky bude fungovat i na neorientovaném grafu. Mù¾eme si jednodu¹e pøedstavit, ¾e je to orientovaný graf, kde ka¾dá hrana má oboustrannou orientaci. + + +Prohledávání do~¹íøky ale není jediný algoritmus, který nìjak systematicky prochází graf. Jak u¾ název kapitoly napovídá, budeme se zabývat je¹tì druhým algoritmem, prohledáváním do~hloubky. Podívejme se, jak bude vypadat \dots + +\h{Prohledávání do~hloubky (DFS) {\I Depth-First Search} } + +Tento algoritmus neprochází graf ve~vlnì jako BFS, ale prochází ho rekurzivnì. V¾dy se zanoøí co nejhloubìji a¾ do~listu a pak se o~kus vrátí a opìt se sna¾í zanoøit. Vrcholy, ve kterých u¾ byl, ignoruje. + +Opìt uva¾me nejdøíve graf orientovaný. Následnì si uká¾eme, ¾e v~neorientovaném grafu budou pouze malé zmìny. + +Budeme pou¾ívat podobné znaèení jako u~BFS. V~poli $Z$ si budeme pamatovat, zda jsme vrchol ji¾ nav¹tívili (hodnota 1), nebo ne (hodnota 0). Navíc promìnná~$T$ bude znaèit dobu bìhu algoritmu - tedy jakési \uv{hodiny}. Pøi ka¾dém nalezení nového vrcholu èi jeho opu¹tìní tuto promìnnou zvý¹íme o~1. Do~polí $\$ a $\$ si budeme ukládat èas (prvního) nalezení a opu¹tìní vrcholu. + +\s{Algoritmus:} + +\algo +\: inicializace: $Z[*] \leftarrow 0, T \leftarrow 1, \[*] \leftarrow ?, \[*] \leftarrow ?$ +\: $DFS(v): Z[v] \leftarrow 1, \[v] \leftarrow T|++|$ +\:: Pro $w$: $vw \in E(G)$: +\::: Pokud $Z[w]=0 \Rightarrow DFS(w)$ +\:: $out[v] \leftarrow T|++|$ +\endalgo + +\s {Vìta:} DFS($v_0$) v~èase $\Theta(m+n)$ oznaèí právì v¹echny vrcholy dosa¾itelné z~$v_0$. + +\proof +Nejdøíve je potøeba dokázat, ¾e pokud je vrchol $v$ dosa¾itelný z~vrcholu $v_0$, tak jej DFS oznaèí. Dùkaz bude podobný jako u~BFS. + +V analýze èasové slo¾itosti si pak opìt uvìdomíme, ¾e algoritmus vezme ka¾dý vrchol i hranu do~ruky právì jednou, tak¾e èasová slo¾itost bude $\Theta(n + m)$. +\qed + +\figure{img5_dfso.eps}{Graf a znázornìní prùbìhu DFS s~jednotlivými hranami:}{\epsfxsize} + +Mù¾eme si v¹imnout, ¾e jak DFS prochází graf, rozdìluje hrany do~4 skupin: hrany {\I stromové, zpìtné, dopøedné a pøíèné}. + +Jedinì {\I stromové} hrany jsou takové, ¾e se po~nich DFS opravdu vydá. Vedou toti¾ do~vrcholu, který nebyl dosud objeven. V~ukázkovém grafu to jsou hrany: $\{(A \rightarrow B), (B \rightarrow C), (B \rightarrow D)\}$. + +Pokud algoritmus objeví z~vrcholu $v$ hranu do~ji¾ døíve nav¹tíveného vrcholu $w$ a zároveò platí, ¾e $w$ je ve~stejném podstromu jako $v$, tak nazveme hranu $vw$ {\I zpìtnou}. Pro rozpoznání je dùle¾ité, ¾e vrchol $w$ byl ji¾ objeven, ale je¹tì ne opu¹tìn. V~ukázkovém grafu se jedná o hranu: $(C \rightarrow A)$. + +Kdy¾ pøi prohledávání sousedù vrcholu $v$ narazíme na~vrchol $w$, který jsme ji¾ nav¹tívili, a to v~podstromì vrcholu $v$, tak nazveme hranu $vw$ {\I dopøednou}, nebo» vede z~$v$ do~jeho potomka. Platí tedy, ¾e jsme nejdøíve objevili vrchol $v$, potom vrchol $w$, pak jsme vrchol $w$ opustili a nyní jsme na~nìj znovu narazili po~dopøedné hranì. V~ukázkovém grafu hrana: $(A \rightarrow D)$. + +Posledním typem hran je {\I pøíèná} hrana. Ta vede do~vrcholu v~sousedním podstromì zprava doleva. V~tomto pøípadì jsme tedy nejdøíve objevili vrchol $w$, ten jsme následnì opustili a a¾ pak jsme objevili vrchol $v$. V~ukázkovém grafu to je hrana: $(D \rightarrow C)$. + +\s{K zamy¹lení:} Proè nemohou vést pøíèné hrany také zleva doprava? + +K~rozpoznávání typù hran se nám tedy velmi hodí pole $\$ a $\$, ve~kterých si pamatujeme èasy objevení a opu¹tìní vrcholu. Podle toho, jak se intervaly objevení a opu¹tìní obou vrcholù pøekrývají, mù¾eme jednoznaènì rozhodnout, o jaký typ hrany se jedná: + +U~zpìtných hran je poøadí: $\(w)$, $\(v)$, $\(v)$, $\(w)$. Intervaly do~sebe budou zanoøené takto: $<<>_v>_w$. + +U~dopøedných hran je poøadí: $\(v)$, $\(w)$, $\(w)$, $\(v)$. Intervaly do~sebe budou zanoøené takto: $<<>_w>_v$. + +U~pøíèných hran je poøadí: $\(w)$, $\(w)$, $\(v)$, $\(v)$. Intervaly do~sebe budou zanoøené takto: $<>_w<>_v$. + +Pozn: Pou¾íváme zde toto znaèení: $<>_v = $. Jedná se o interval objevení a opu¹tìní vrcholu $v$. + +\s{Typy hran ($v \rightarrow w$):} + +\itemize\ibull +\:Stromové hrany \dots po nich DFS pro¹lo. $\{(A \rightarrow B), (B \rightarrow C), (B \rightarrow D)\}$ +\:Zpìtné hrany $<<>_v>_w$\dots vedou do~pøedchùdce $v$ ve~stromu. $\{(C \rightarrow A)\}$ +\:Dopøedné hrany $<<>_w>_v$\dots vedou do~potomka. $v$ $\{(A \rightarrow D)\}$ +\:Pøíèné hrany $<>_w<>_v$\dots vedou do~vrcholu $v$ v~sousedním podstromì, v¾dy zprava doleva. $\{(D \rightarrow A)\}$ +\endlist + +\s{Pozorování:} Hrany, po~kterých DFS pro¹lo, tvoøí DFS strom. + +\s{Pozorování:} Intervaly ($\(v)$, $\(v)$) $\forall v \in V(G) $ tvoøí dobré uzávorkování. (Intervaly synù disjunktnì vyplòují otce $\Rightarrow$ intervaly se nemohou køí¾it). + +Nakonec si je¹tì uvìdomme, jak bude vypadat prohledávání do~hloubky na~neorientovaném grafu. Algortimus bude úplnì stejný, jenom se nám zredukuje poèet typù hran na~dvì: {\I stromové} a~{\I zpìtné}. Ani {\I dopøedné} ani {\I pøíèné} nebudou existovat, nebo» se z~{\I pøíèných} stanou {\I stromové} a z~{\I dopøedných zpìtné}. + +\bye diff --git a/3-grafy/Makefile b/3-grafy/Makefile new file mode 100644 index 0000000..6337daa --- /dev/null +++ b/3-grafy/Makefile @@ -0,0 +1,3 @@ +P=3-grafy + +include ../Makerules diff --git a/3-grafy/img1_stvorec.eps b/3-grafy/img1_stvorec.eps new file mode 100644 index 0000000..13e4481 --- /dev/null +++ b/3-grafy/img1_stvorec.eps @@ -0,0 +1,121 @@ +%!PS-Adobe-2.0 EPSF-2.0 +%%Title: img1_stvorec.fig +%%Creator: fig2dev Version 3.2 Patchlevel 5-alpha7 +%%CreationDate: Fri May 11 19:04:04 2007 +%%For: onti@onti-laptop (Ondrej Tichy,,,) +%%BoundingBox: 0 0 70 90 +%Magnification: 0.8000 +%%EndComments +/$F2psDict 200 dict def +$F2psDict begin +$F2psDict /mtrx matrix put +/col-1 {0 setgray} bind def +/col0 {0.000 0.000 0.000 srgb} bind def +/col1 {0.000 0.000 1.000 srgb} bind def +/col2 {0.000 1.000 0.000 srgb} bind def +/col3 {0.000 1.000 1.000 srgb} bind def +/col4 {1.000 0.000 0.000 srgb} bind def +/col5 {1.000 0.000 1.000 srgb} bind def +/col6 {1.000 1.000 0.000 srgb} bind def +/col7 {1.000 1.000 1.000 srgb} bind def +/col8 {0.000 0.000 0.560 srgb} bind def +/col9 {0.000 0.000 0.690 srgb} bind def +/col10 {0.000 0.000 0.820 srgb} bind def +/col11 {0.530 0.810 1.000 srgb} bind def +/col12 {0.000 0.560 0.000 srgb} bind def +/col13 {0.000 0.690 0.000 srgb} bind def +/col14 {0.000 0.820 0.000 srgb} bind def +/col15 {0.000 0.560 0.560 srgb} bind def +/col16 {0.000 0.690 0.690 srgb} bind def +/col17 {0.000 0.820 0.820 srgb} bind def +/col18 {0.560 0.000 0.000 srgb} bind def +/col19 {0.690 0.000 0.000 srgb} bind def +/col20 {0.820 0.000 0.000 srgb} bind def +/col21 {0.560 0.000 0.560 srgb} bind def +/col22 {0.690 0.000 0.690 srgb} bind def +/col23 {0.820 0.000 0.820 srgb} bind def +/col24 {0.500 0.190 0.000 srgb} bind def +/col25 {0.630 0.250 0.000 srgb} bind def +/col26 {0.750 0.380 0.000 srgb} bind def +/col27 {1.000 0.500 0.500 srgb} bind def +/col28 {1.000 0.630 0.630 srgb} bind def +/col29 {1.000 0.750 0.750 srgb} bind def +/col30 {1.000 0.880 0.880 srgb} bind def +/col31 {1.000 0.840 0.000 srgb} bind def + +end +save +newpath 0 90 moveto 0 0 lineto 70 0 lineto 70 90 lineto closepath clip newpath +-21.9 111.9 translate +1 -1 scale + +/cp {closepath} bind def +/ef {eofill} 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} bind def +/tr {translate} bind def +/tnt {dup dup currentrgbcolor + 4 -2 roll dup 1 exch sub 3 -1 roll mul add + 4 -2 roll dup 1 exch sub 3 -1 roll mul add + 4 -2 roll dup 1 exch sub 3 -1 roll mul add srgb} + bind def +/shd {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul + 4 -2 roll mul srgb} bind def +/$F2psBegin {$F2psDict begin /$F2psEnteredState save def} def +/$F2psEnd {$F2psEnteredState restore end} def + +$F2psBegin +10 setmiterlimit +0 slj 0 slc + 0.05039 0.05039 sc +% +% Fig objects follow +% +% +% here starts figure with depth 50 +% Polyline +0 slj +0 slc +7.500 slw +n 450 1980 m + 1800 630 l gs col0 s gr +% Polyline +n 450 630 m 1800 630 l 1800 1980 l 450 1980 l + cp gs col0 s gr +/Times-Roman ff 190.50 scf sf +1665 2205 m +gs 1 -1 sc (D) col0 sh gr +/Times-Roman ff 190.50 scf sf +1665 585 m +gs 1 -1 sc (B) col0 sh gr +/Times-Roman ff 190.50 scf sf +450 585 m +gs 1 -1 sc (A) col0 sh gr +/Times-Roman ff 190.50 scf sf +450 2205 m +gs 1 -1 sc (C) col0 sh gr +% here ends figure; +$F2psEnd +rs +showpage +%%Trailer +%EOF diff --git a/3-grafy/img2_dfs.eps b/3-grafy/img2_dfs.eps new file mode 100644 index 0000000..deb80c2 --- /dev/null +++ b/3-grafy/img2_dfs.eps @@ -0,0 +1,211 @@ +%!PS-Adobe-2.0 EPSF-2.0 +%%Title: img2_dfs.fig +%%Creator: fig2dev Version 3.2 Patchlevel 5-alpha7 +%%CreationDate: Tue May 1 13:14:51 2007 +%%For: onti@onti-laptop (Ondrej Tichy,,,) +%%BoundingBox: 0 0 186 130 +%Magnification: 1.0000 +%%EndComments +/$F2psDict 200 dict def +$F2psDict begin +$F2psDict /mtrx matrix put +/col-1 {0 setgray} bind def +/col0 {0.000 0.000 0.000 srgb} bind def +/col1 {0.000 0.000 1.000 srgb} bind def +/col2 {0.000 1.000 0.000 srgb} bind def +/col3 {0.000 1.000 1.000 srgb} bind def +/col4 {1.000 0.000 0.000 srgb} bind def +/col5 {1.000 0.000 1.000 srgb} bind def +/col6 {1.000 1.000 0.000 srgb} bind def +/col7 {1.000 1.000 1.000 srgb} bind def +/col8 {0.000 0.000 0.560 srgb} bind def +/col9 {0.000 0.000 0.690 srgb} bind def +/col10 {0.000 0.000 0.820 srgb} bind def +/col11 {0.530 0.810 1.000 srgb} bind def +/col12 {0.000 0.560 0.000 srgb} bind def +/col13 {0.000 0.690 0.000 srgb} bind def +/col14 {0.000 0.820 0.000 srgb} bind def +/col15 {0.000 0.560 0.560 srgb} bind def +/col16 {0.000 0.690 0.690 srgb} bind def +/col17 {0.000 0.820 0.820 srgb} bind def +/col18 {0.560 0.000 0.000 srgb} bind def +/col19 {0.690 0.000 0.000 srgb} bind def +/col20 {0.820 0.000 0.000 srgb} bind def +/col21 {0.560 0.000 0.560 srgb} bind def +/col22 {0.690 0.000 0.690 srgb} bind def +/col23 {0.820 0.000 0.820 srgb} bind def +/col24 {0.500 0.190 0.000 srgb} bind def +/col25 {0.630 0.250 0.000 srgb} bind def +/col26 {0.750 0.380 0.000 srgb} bind def +/col27 {1.000 0.500 0.500 srgb} bind def +/col28 {1.000 0.630 0.630 srgb} bind def +/col29 {1.000 0.750 0.750 srgb} bind def +/col30 {1.000 0.880 0.880 srgb} bind def +/col31 {1.000 0.840 0.000 srgb} bind def + +end +save +newpath 0 130 moveto 0 0 lineto 186 0 lineto 186 130 lineto closepath clip newpath +-27.6 156.7 translate +1 -1 scale + +/cp {closepath} bind def +/ef {eofill} 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} bind def +/tr {translate} bind def +/tnt {dup dup currentrgbcolor + 4 -2 roll dup 1 exch sub 3 -1 roll mul add + 4 -2 roll dup 1 exch sub 3 -1 roll mul add + 4 -2 roll dup 1 exch sub 3 -1 roll mul add srgb} + bind def +/shd {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul + 4 -2 roll mul srgb} bind def +/$F2psBegin {$F2psDict begin /$F2psEnteredState save def} def +/$F2psEnd {$F2psEnteredState restore end} def + +$F2psBegin +10 setmiterlimit +0 slj 0 slc + 0.06299 0.06299 sc +% +% Fig objects follow +% +% +% here starts figure with depth 50 +% Polyline +0 slj +0 slc +7.500 slw +n 450 450 m 675 450 l 675 675 l 450 675 l + cp gs col0 s gr +% Polyline +n 1350 450 m 1575 450 l 1575 675 l 1350 675 l + cp gs col0 s gr +% Polyline +n 2250 450 m 2475 450 l 2475 675 l 2250 675 l + cp gs col0 s gr +% Polyline +n 450 1350 m 675 1350 l 675 1575 l 450 1575 l + cp gs col0 s gr +% Polyline +n 450 2250 m 675 2250 l 675 2475 l 450 2475 l + cp gs col0 s gr +% Polyline +n 1350 1350 m 1575 1350 l 1575 1575 l 1350 1575 l + cp gs col0 s gr +% Polyline +n 1350 2250 m 1575 2250 l 1575 2475 l 1350 2475 l + cp gs col0 s gr +% Polyline +n 2250 1350 m 2475 1350 l 2475 1575 l 2250 1575 l + cp gs col0 s gr +% Polyline +n 2250 2250 m 2475 2250 l 2475 2475 l 2250 2475 l + cp gs col0 s gr +% Polyline +n 3150 450 m 3375 450 l 3375 675 l 3150 675 l + cp gs col0 s gr +% Polyline +n 3150 1350 m 3375 1350 l 3375 1575 l 3150 1575 l + cp gs col0 s gr +% Polyline +n 3150 2250 m 3375 2250 l 3375 2475 l 3150 2475 l + cp gs col0 s gr +% Polyline +n 675 585 m + 1350 585 l gs col0 s gr +% Polyline +n 540 675 m + 540 1350 l gs col0 s gr +% Polyline +n 540 1575 m + 540 2250 l gs col0 s gr +% Polyline +n 675 2385 m + 1350 2385 l gs col0 s gr +% Polyline +n 675 1575 m + 1350 2250 l gs col0 s gr +% Polyline +n 2340 675 m + 2340 1350 l gs col0 s gr +% Polyline +n 2340 1575 m + 2340 2250 l gs col0 s gr +% Polyline +n 2475 1485 m + 3150 1485 l gs col0 s gr +% Polyline +n 2475 2250 m + 3150 1575 l gs col0 s gr +% Polyline +n 3150 1350 m + 2475 675 l gs col0 s gr +% Polyline +n 2475 585 m + 3150 585 l gs col0 s gr +% Polyline +n 3240 1575 m + 3240 2250 l gs col0 s gr +/Times-Roman ff 190.50 scf sf +495 630 m +gs 1 -1 sc (A) col0 sh gr +/Times-Roman ff 190.50 scf sf +1395 630 m +gs 1 -1 sc (B) col0 sh gr +/Times-Roman ff 190.50 scf sf +2295 630 m +gs 1 -1 sc (C) col0 sh gr +/Times-Roman ff 190.50 scf sf +3195 630 m +gs 1 -1 sc (D) col0 sh gr +/Times-Roman ff 190.50 scf sf +495 1530 m +gs 1 -1 sc (E) col0 sh gr +/Times-Roman ff 190.50 scf sf +1395 1530 m +gs 1 -1 sc (F) col0 sh gr +/Times-Roman ff 190.50 scf sf +2295 1530 m +gs 1 -1 sc (G) col0 sh gr +/Times-Roman ff 190.50 scf sf +3195 1530 m +gs 1 -1 sc (H) col0 sh gr +/Times-Roman ff 190.50 scf sf +540 2430 m +gs 1 -1 sc (I) col0 sh gr +/Times-Roman ff 190.50 scf sf +1395 2430 m +gs 1 -1 sc (J) col0 sh gr +/Times-Roman ff 190.50 scf sf +2295 2430 m +gs 1 -1 sc (K) col0 sh gr +/Times-Roman ff 190.50 scf sf +3195 2430 m +gs 1 -1 sc (L) col0 sh gr +% here ends figure; +$F2psEnd +rs +showpage +%%Trailer +%EOF diff --git a/3-grafy/img3_dfs.eps b/3-grafy/img3_dfs.eps new file mode 100644 index 0000000..bbead7a --- /dev/null +++ b/3-grafy/img3_dfs.eps @@ -0,0 +1,264 @@ +%!PS-Adobe-2.0 EPSF-2.0 +%%Title: img3_dfs.fig +%%Creator: fig2dev Version 3.2 Patchlevel 5-alpha7 +%%CreationDate: Tue May 1 13:28:35 2007 +%%For: onti@onti-laptop (Ondrej Tichy,,,) +%%BoundingBox: 0 0 280 181 +%Magnification: 1.0000 +%%EndComments +/$F2psDict 200 dict def +$F2psDict begin +$F2psDict /mtrx matrix put +/col-1 {0 setgray} bind def +/col0 {0.000 0.000 0.000 srgb} bind def +/col1 {0.000 0.000 1.000 srgb} bind def +/col2 {0.000 1.000 0.000 srgb} bind def +/col3 {0.000 1.000 1.000 srgb} bind def +/col4 {1.000 0.000 0.000 srgb} bind def +/col5 {1.000 0.000 1.000 srgb} bind def +/col6 {1.000 1.000 0.000 srgb} bind def +/col7 {1.000 1.000 1.000 srgb} bind def +/col8 {0.000 0.000 0.560 srgb} bind def +/col9 {0.000 0.000 0.690 srgb} bind def +/col10 {0.000 0.000 0.820 srgb} bind def +/col11 {0.530 0.810 1.000 srgb} bind def +/col12 {0.000 0.560 0.000 srgb} bind def +/col13 {0.000 0.690 0.000 srgb} bind def +/col14 {0.000 0.820 0.000 srgb} bind def +/col15 {0.000 0.560 0.560 srgb} bind def +/col16 {0.000 0.690 0.690 srgb} bind def +/col17 {0.000 0.820 0.820 srgb} bind def +/col18 {0.560 0.000 0.000 srgb} bind def +/col19 {0.690 0.000 0.000 srgb} bind def +/col20 {0.820 0.000 0.000 srgb} bind def +/col21 {0.560 0.000 0.560 srgb} bind def +/col22 {0.690 0.000 0.690 srgb} bind def +/col23 {0.820 0.000 0.820 srgb} bind def +/col24 {0.500 0.190 0.000 srgb} bind def +/col25 {0.630 0.250 0.000 srgb} bind def +/col26 {0.750 0.380 0.000 srgb} bind def +/col27 {1.000 0.500 0.500 srgb} bind def +/col28 {1.000 0.630 0.630 srgb} bind def +/col29 {1.000 0.750 0.750 srgb} bind def +/col30 {1.000 0.880 0.880 srgb} bind def +/col31 {1.000 0.840 0.000 srgb} bind def + +end +save +newpath 0 181 moveto 0 0 lineto 280 0 lineto 280 181 lineto closepath clip newpath +-41.8 213.4 translate +1 -1 scale + +/cp {closepath} bind def +/ef {eofill} 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} bind def +/tr {translate} bind def +/tnt {dup dup currentrgbcolor + 4 -2 roll dup 1 exch sub 3 -1 roll mul add + 4 -2 roll dup 1 exch sub 3 -1 roll mul add + 4 -2 roll dup 1 exch sub 3 -1 roll mul add srgb} + bind def +/shd {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul + 4 -2 roll mul srgb} bind def +/$F2psBegin {$F2psDict begin /$F2psEnteredState save def} def +/$F2psEnd {$F2psEnteredState restore end} def + +$F2psBegin +10 setmiterlimit +0 slj 0 slc + 0.06299 0.06299 sc +% +% Fig objects follow +% +% +% here starts figure with depth 50 +% Arc +7.500 slw +0 slc + [60] 0 sd +n 3262.5 2362.5 1466.8 147.5288 -147.5288 arc +gs col0 s gr + [] 0 sd +% Arc + [60] 0 sd +n 3712.5 1462.5 573.6 78.6901 -78.6901 arcn +gs col0 s gr + [] 0 sd +% Arc + [60] 0 sd +n 4556.2 2025.0 1476.5 162.2553 -130.3645 arc +gs col0 s gr + [] 0 sd +% Arc + [60] 0 sd +n 1882.5 2122.5 1812.0 34.5452 4.0349 arcn +gs col0 s gr + [] 0 sd +% Polyline +0 slj +n 1350 675 m 1575 675 l 1575 900 l 1350 900 l + cp gs col0 s gr +% Polyline +n 2025 1350 m 2250 1350 l 2250 1575 l 2025 1575 l + cp gs col0 s gr +% Polyline +n 2025 2250 m 2250 2250 l 2250 2475 l 2025 2475 l + cp gs col0 s gr +% Polyline +n 2025 3150 m 2250 3150 l 2250 3375 l 2025 3375 l + cp gs col0 s gr +% Polyline +n 675 1350 m 900 1350 l 900 1575 l 675 1575 l + cp gs col0 s gr +% Polyline +n 900 1350 m + 1350 900 l gs col0 s gr +% Polyline +n 1575 900 m + 2025 1350 l gs col0 s gr +% Polyline +n 2115 1575 m + 2115 2250 l gs col0 s gr +% Polyline +n 2115 2475 m + 2115 3150 l gs col0 s gr +% Polyline +n 3600 675 m 3825 675 l 3825 900 l 3600 900 l + cp gs col0 s gr +% Polyline +n 3600 675 m 3825 675 l 3825 900 l 3600 900 l + cp gs col0 s gr +% Polyline +n 3600 2025 m 3825 2025 l 3825 2250 l 3600 2250 l + cp gs col0 s gr +% Polyline +n 3150 3150 m 3375 3150 l 3375 3375 l 3150 3375 l + cp gs col0 s gr +% Polyline +n 4050 2475 m 4275 2475 l 4275 2700 l 4050 2700 l + cp gs col0 s gr +% Polyline +n 3600 1350 m 3825 1350 l 3825 1575 l 3600 1575 l + cp gs col0 s gr +% Polyline +n 3690 900 m + 3690 1350 l gs col0 s gr +% Polyline +n 3690 1575 m + 3690 2025 l gs col0 s gr +% Polyline +n 3690 1575 m + 3690 2025 l gs col0 s gr +% Polyline +n 3240 2700 m + 3240 3150 l gs col0 s gr +% Polyline +n 3375 2475 m + 3600 2250 l gs col0 s gr +% Polyline +n 3825 2250 m + 4050 2475 l gs col0 s gr +% Polyline +n 3150 2475 m 3375 2475 l 3375 2700 l 3150 2700 l + cp gs col0 s gr +% Polyline +n 4725 675 m 4950 675 l 4950 900 l 4725 900 l + cp gs col0 s gr +/Times-Roman ff 158.75 scf sf +1350 630 m +gs 1 -1 sc (1,10) col0 sh gr +/Times-Roman ff 190.50 scf sf +1395 855 m +gs 1 -1 sc (A) col0 sh gr +/Times-Roman ff 190.50 scf sf +2070 1530 m +gs 1 -1 sc (C) col0 sh gr +/Times-Roman ff 190.50 scf sf +2070 2430 m +gs 1 -1 sc (I) col0 sh gr +/Times-Roman ff 190.50 scf sf +2070 3330 m +gs 1 -1 sc (J) col0 sh gr +/Times-Roman ff 190.50 scf sf +720 1530 m +gs 1 -1 sc (B) col0 sh gr +/Times-Roman ff 158.75 scf sf +2295 2430 m +gs 1 -1 sc (5,8) col0 sh gr +/Times-Roman ff 158.75 scf sf +2295 3330 m +gs 1 -1 sc (6,7) col0 sh gr +/Times-Roman ff 158.75 scf sf +720 1305 m +gs 1 -1 sc (2,3) col0 sh gr +/Times-Roman ff 158.75 scf sf +2070 1305 m +gs 1 -1 sc (4,9) col0 sh gr +/Times-Roman ff 190.50 scf sf +3645 1530 m +gs 1 -1 sc (D) col0 sh gr +/Times-Roman ff 190.50 scf sf +3645 2205 m +gs 1 -1 sc (H) col0 sh gr +/Times-Roman ff 190.50 scf sf +3195 2655 m +gs 1 -1 sc (G) col0 sh gr +/Times-Roman ff 190.50 scf sf +4095 2655 m +gs 1 -1 sc (L) col0 sh gr +/Times-Roman ff 190.50 scf sf +3195 3330 m +gs 1 -1 sc (K) col0 sh gr +/Times-Roman ff 190.50 scf sf +3645 855 m +gs 1 -1 sc (C) col0 sh gr +/Times-Roman ff 158.75 scf sf +3600 630 m +gs 1 -1 sc (11,22) col0 sh gr +/Times-Roman ff 158.75 scf sf +3870 1530 m +gs 1 -1 sc (12,21) col0 sh gr +/Times-Roman ff 158.75 scf sf +3870 2205 m +gs 1 -1 sc (13,20) col0 sh gr +/Times-Roman ff 158.75 scf sf +4320 2655 m +gs 1 -1 sc (18,19) col0 sh gr +/Times-Roman ff 158.75 scf sf +2790 2655 m +gs 1 -1 sc (14,17) col0 sh gr +/Times-Roman ff 158.75 scf sf +2790 3330 m +gs 1 -1 sc (15,16) col0 sh gr +/Times-Roman ff 190.50 scf sf +4770 855 m +gs 1 -1 sc (F) col0 sh gr +/Times-Roman ff 158.75 scf sf +4725 630 m +gs 1 -1 sc (23,24) col0 sh gr +% here ends figure; +$F2psEnd +rs +showpage +%%Trailer +%EOF diff --git a/3-grafy/img4_susedia.eps b/3-grafy/img4_susedia.eps new file mode 100644 index 0000000..c36d758 --- /dev/null +++ b/3-grafy/img4_susedia.eps @@ -0,0 +1,245 @@ +%!PS-Adobe-2.0 EPSF-2.0 +%%Title: img4_susedia.fig +%%Creator: fig2dev Version 3.2 Patchlevel 5-alpha7 +%%CreationDate: Fri May 11 20:03:15 2007 +%%For: onti@onti-laptop (Ondrej Tichy,,,) +%%BoundingBox: 0 0 158 56 +%Magnification: 1.0000 +%%EndComments +/$F2psDict 200 dict def +$F2psDict begin +$F2psDict /mtrx matrix put +/col-1 {0 setgray} bind def +/col0 {0.000 0.000 0.000 srgb} bind def +/col1 {0.000 0.000 1.000 srgb} bind def +/col2 {0.000 1.000 0.000 srgb} bind def +/col3 {0.000 1.000 1.000 srgb} bind def +/col4 {1.000 0.000 0.000 srgb} bind def +/col5 {1.000 0.000 1.000 srgb} bind def +/col6 {1.000 1.000 0.000 srgb} bind def +/col7 {1.000 1.000 1.000 srgb} bind def +/col8 {0.000 0.000 0.560 srgb} bind def +/col9 {0.000 0.000 0.690 srgb} bind def +/col10 {0.000 0.000 0.820 srgb} bind def +/col11 {0.530 0.810 1.000 srgb} bind def +/col12 {0.000 0.560 0.000 srgb} bind def +/col13 {0.000 0.690 0.000 srgb} bind def +/col14 {0.000 0.820 0.000 srgb} bind def +/col15 {0.000 0.560 0.560 srgb} bind def +/col16 {0.000 0.690 0.690 srgb} bind def +/col17 {0.000 0.820 0.820 srgb} bind def +/col18 {0.560 0.000 0.000 srgb} bind def +/col19 {0.690 0.000 0.000 srgb} bind def +/col20 {0.820 0.000 0.000 srgb} bind def +/col21 {0.560 0.000 0.560 srgb} bind def +/col22 {0.690 0.000 0.690 srgb} bind def +/col23 {0.820 0.000 0.820 srgb} bind def +/col24 {0.500 0.190 0.000 srgb} bind def +/col25 {0.630 0.250 0.000 srgb} bind def +/col26 {0.750 0.380 0.000 srgb} bind def +/col27 {1.000 0.500 0.500 srgb} bind def +/col28 {1.000 0.630 0.630 srgb} bind def +/col29 {1.000 0.750 0.750 srgb} bind def +/col30 {1.000 0.880 0.880 srgb} bind def +/col31 {1.000 0.840 0.000 srgb} bind def + +end +save +newpath 0 56 moveto 0 0 lineto 158 0 lineto 158 56 lineto closepath clip newpath +-13.2 71.8 translate +1 -1 scale + +/cp {closepath} bind def +/ef {eofill} 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} bind def +/tr {translate} bind def +/tnt {dup dup currentrgbcolor + 4 -2 roll dup 1 exch sub 3 -1 roll mul add + 4 -2 roll dup 1 exch sub 3 -1 roll mul add + 4 -2 roll dup 1 exch sub 3 -1 roll mul add srgb} + bind def +/shd {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul + 4 -2 roll mul srgb} bind def +/$F2psBegin {$F2psDict begin /$F2psEnteredState save def} def +/$F2psEnd {$F2psEnteredState restore end} def + +$F2psBegin +10 setmiterlimit +0 slj 0 slc + 0.06299 0.06299 sc +% +% Fig objects follow +% +% +% here starts figure with depth 50 +% Polyline +0 slj +0 slc +7.500 slw +n 1125 450 m 1350 450 l 1350 675 l 1125 675 l + cp gs col0 s gr +% Polyline +n 675 450 m 900 450 l 900 675 l 675 675 l + cp gs col0 s gr +% Polyline +n 900 450 m 1125 450 l 1125 675 l 900 675 l + cp gs col0 s gr +% Polyline +n 450 900 m 675 900 l 675 1125 l 450 1125 l + cp gs col0 s gr +% Polyline +n 675 900 m 900 900 l 900 1125 l 675 1125 l + cp gs col0 s gr +% Polyline +n 900 900 m 1125 900 l 1125 1125 l 900 1125 l + cp gs col0 s gr +% Polyline +n 1125 900 m 1350 900 l 1350 1125 l 1125 1125 l + cp gs col0 s gr +% Polyline +n 1350 900 m 1575 900 l 1575 1125 l 1350 1125 l + cp gs col0 s gr +% Polyline +n 1575 900 m 1800 900 l 1800 1125 l 1575 1125 l + cp gs col0 s gr +% Polyline +n 1800 900 m 2025 900 l 2025 1125 l 1800 1125 l + cp gs col0 s gr +% Polyline +n 2025 900 m 2250 900 l 2250 1125 l 2025 1125 l + cp gs col0 s gr +% Polyline +n 2250 900 m 2475 900 l 2475 1125 l 2250 1125 l + cp gs col0 s gr +% Polyline +n 2475 900 m 2700 900 l 2700 1125 l 2475 1125 l + cp gs col0 s gr +% Polyline + [60] 0 sd +gs clippath +2201 881 m 2343 933 l 2364 876 l 2222 824 l 2222 824 l 2325 894 l 2201 881 l cp +eoclip +n 1350 540 m + 2340 900 l gs col0 s gr gr + [] 0 sd +% arrowhead +n 2201 881 m 2325 894 l 2222 824 l 2201 881 l cp gs col7 1.00 shd ef gr col0 s +% Polyline + [60] 0 sd +gs clippath +1482 878 m 1623 933 l 1644 877 l 1503 822 l 1503 822 l 1605 894 l 1482 878 l cp +eoclip +n 1035 675 m + 1620 900 l gs col0 s gr gr + [] 0 sd +% arrowhead +n 1482 878 m 1605 894 l 1503 822 l 1482 878 l cp gs col7 1.00 shd ef gr col0 s +% Polyline + [60] 0 sd +gs clippath +881 812 m 975 930 l 1022 892 l 928 774 l 928 774 l 980 887 l 881 812 l cp +eoclip +n 810 675 m + 990 900 l gs col0 s gr gr + [] 0 sd +% arrowhead +n 881 812 m 980 887 l 928 774 l 881 812 l cp gs col7 1.00 shd ef gr col0 s +% Polyline + [60] 0 sd +gs clippath +510 764 m 510 915 l 570 915 l 570 764 l 570 764 l 540 884 l 510 764 l cp +eoclip +n 540 675 m + 540 900 l gs col0 s gr gr + [] 0 sd +% arrowhead +n 510 764 m 540 884 l 570 764 l 510 764 l cp gs col7 1.00 shd ef gr col0 s +% Polyline +n 450 450 m 675 450 l 675 675 l 450 675 l + cp gs col0 s gr +/Times-Roman ff 190.50 scf sf +495 630 m +gs 1 -1 sc (1) col0 sh gr +/Times-Roman ff 190.50 scf sf +720 630 m +gs 1 -1 sc (3) col0 sh gr +/Times-Roman ff 190.50 scf sf +945 630 m +gs 1 -1 sc (6) col0 sh gr +/Times-Roman ff 190.50 scf sf +1170 630 m +gs 1 -1 sc (9) col0 sh gr +/Times-Roman ff 190.50 scf sf +495 1080 m +gs 1 -1 sc (B) col0 sh gr +/Times-Roman ff 190.50 scf sf +720 1080 m +gs 1 -1 sc (C) col0 sh gr +/Times-Roman ff 190.50 scf sf +945 1080 m +gs 1 -1 sc (A) col0 sh gr +/Times-Roman ff 190.50 scf sf +1170 1080 m +gs 1 -1 sc (C) col0 sh gr +/Times-Roman ff 190.50 scf sf +1395 1080 m +gs 1 -1 sc (D) col0 sh gr +/Times-Roman ff 190.50 scf sf +1620 1080 m +gs 1 -1 sc (A) col0 sh gr +/Times-Roman ff 190.50 scf sf +1845 1080 m +gs 1 -1 sc (B) col0 sh gr +/Times-Roman ff 190.50 scf sf +2070 1080 m +gs 1 -1 sc (D) col0 sh gr +/Times-Roman ff 190.50 scf sf +2295 1080 m +gs 1 -1 sc (B) col0 sh gr +/Times-Roman ff 190.50 scf sf +2520 1080 m +gs 1 -1 sc (C) col0 sh gr +/Times-Roman ff 190.50 scf sf +225 675 m +gs 1 -1 sc (V:) col0 sh gr +/Times-Roman ff 190.50 scf sf +225 1125 m +gs 1 -1 sc (E:) col0 sh gr +/Times-Roman ff 190.50 scf sf +495 405 m +gs 1 -1 sc (A) col0 sh gr +/Times-Roman ff 190.50 scf sf +720 405 m +gs 1 -1 sc (B) col0 sh gr +/Times-Roman ff 190.50 scf sf +945 405 m +gs 1 -1 sc (C) col0 sh gr +/Times-Roman ff 190.50 scf sf +1170 405 m +gs 1 -1 sc (D) col0 sh gr +% here ends figure; +$F2psEnd +rs +showpage +%%Trailer +%EOF diff --git a/3-grafy/img5_dfso.eps b/3-grafy/img5_dfso.eps new file mode 100644 index 0000000..dcacebe --- /dev/null +++ b/3-grafy/img5_dfso.eps @@ -0,0 +1,259 @@ +%!PS-Adobe-2.0 EPSF-2.0 +%%Title: img5_dfso.fig +%%Creator: fig2dev Version 3.2 Patchlevel 5-alpha7 +%%CreationDate: Fri May 4 09:22:50 2007 +%%For: onti@onti-laptop (Ondrej Tichy,,,) +%%BoundingBox: 0 0 187 104 +%Magnification: 1.0000 +%%EndComments +/$F2psDict 200 dict def +$F2psDict begin +$F2psDict /mtrx matrix put +/col-1 {0 setgray} bind def +/col0 {0.000 0.000 0.000 srgb} bind def +/col1 {0.000 0.000 1.000 srgb} bind def +/col2 {0.000 1.000 0.000 srgb} bind def +/col3 {0.000 1.000 1.000 srgb} bind def +/col4 {1.000 0.000 0.000 srgb} bind def +/col5 {1.000 0.000 1.000 srgb} bind def +/col6 {1.000 1.000 0.000 srgb} bind def +/col7 {1.000 1.000 1.000 srgb} bind def +/col8 {0.000 0.000 0.560 srgb} bind def +/col9 {0.000 0.000 0.690 srgb} bind def +/col10 {0.000 0.000 0.820 srgb} bind def +/col11 {0.530 0.810 1.000 srgb} bind def +/col12 {0.000 0.560 0.000 srgb} bind def +/col13 {0.000 0.690 0.000 srgb} bind def +/col14 {0.000 0.820 0.000 srgb} bind def +/col15 {0.000 0.560 0.560 srgb} bind def +/col16 {0.000 0.690 0.690 srgb} bind def +/col17 {0.000 0.820 0.820 srgb} bind def +/col18 {0.560 0.000 0.000 srgb} bind def +/col19 {0.690 0.000 0.000 srgb} bind def +/col20 {0.820 0.000 0.000 srgb} bind def +/col21 {0.560 0.000 0.560 srgb} bind def +/col22 {0.690 0.000 0.690 srgb} bind def +/col23 {0.820 0.000 0.820 srgb} bind def +/col24 {0.500 0.190 0.000 srgb} bind def +/col25 {0.630 0.250 0.000 srgb} bind def +/col26 {0.750 0.380 0.000 srgb} bind def +/col27 {1.000 0.500 0.500 srgb} bind def +/col28 {1.000 0.630 0.630 srgb} bind def +/col29 {1.000 0.750 0.750 srgb} bind def +/col30 {1.000 0.880 0.880 srgb} bind def +/col31 {1.000 0.840 0.000 srgb} bind def + +end +save +newpath 0 104 moveto 0 0 lineto 187 0 lineto 187 104 lineto closepath clip newpath +-27.6 122.5 translate +1 -1 scale + +/cp {closepath} bind def +/ef {eofill} 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} bind def +/tr {translate} bind def +/tnt {dup dup currentrgbcolor + 4 -2 roll dup 1 exch sub 3 -1 roll mul add + 4 -2 roll dup 1 exch sub 3 -1 roll mul add + 4 -2 roll dup 1 exch sub 3 -1 roll mul add srgb} + bind def +/shd {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul + 4 -2 roll mul srgb} bind def +/$F2psBegin {$F2psDict begin /$F2psEnteredState save def} def +/$F2psEnd {$F2psEnteredState restore end} def + +$F2psBegin +10 setmiterlimit +0 slj 0 slc + 0.06299 0.06299 sc +% +% Fig objects follow +% +% +% here starts figure with depth 50 +% Arc +7.500 slw +0 slc +gs clippath +2343 721 m 2493 703 l 2486 643 l 2336 661 l 2336 661 l 2459 677 l 2343 721 l cp +eoclip + [60] 0 sd +n 2475.0 1237.5 562.5 143.1301 -90.0000 arc +gs col0 s gr + gr + [] 0 sd +% arrowhead +0 slj +n 2343 721 m 2459 677 l 2336 661 l 2343 721 l cp gs 0.00 setgray ef gr col0 s +% Arc +gs clippath +3025 1435 m 2981 1580 l 3039 1597 l 3082 1452 l 3082 1452 l 3020 1559 l 3025 1435 l cp +eoclip + [60] 0 sd +n 2343.2 1305.0 724.0 -60.4760 21.8959 arc +gs col0 s gr + gr + [] 0 sd +% arrowhead +n 3025 1435 m 3020 1559 l 3082 1452 l 3025 1435 l cp gs 0.00 setgray ef gr col0 s +% Arc +gs clippath +2377 1856 m 2255 1766 l 2220 1815 l 2342 1904 l 2342 1904 l 2263 1810 l 2377 1856 l cp +eoclip + [60] 0 sd +n 2587.5 1447.5 488.0 46.2454 133.7546 arc +gs col0 s gr + gr + [] 0 sd +% arrowhead +n 2377 1856 m 2263 1810 l 2342 1904 l 2377 1856 l cp gs 0.00 setgray ef gr col0 s +% Polyline +n 450 450 m 675 450 l 675 675 l 450 675 l + cp gs col0 s gr +% Polyline +n 1350 450 m 1575 450 l 1575 675 l 1350 675 l + cp gs col0 s gr +% Polyline +n 1350 1350 m 1575 1350 l 1575 1575 l 1350 1575 l + cp gs col0 s gr +% Polyline +n 450 1350 m 675 1350 l 675 1575 l 450 1575 l + cp gs col0 s gr +% Polyline +gs clippath +792 749 m 685 643 l 643 685 l 749 792 l 749 792 l 686 686 l 792 749 l cp +eoclip +n 1350 1350 m + 675 675 l gs col0 s gr gr + +% arrowhead +n 792 749 m 686 686 l 749 792 l 792 749 l cp gs 0.00 setgray ef gr col0 s +% Polyline +gs clippath +749 1232 m 643 1339 l 685 1381 l 792 1275 l 792 1275 l 686 1339 l 749 1232 l cp +eoclip +n 1350 675 m + 675 1350 l gs col0 s gr gr + +% arrowhead +n 749 1232 m 686 1339 l 792 1275 l 749 1232 l cp gs 0.00 setgray ef gr col0 s +% Polyline +gs clippath +1214 570 m 1365 570 l 1365 510 l 1214 510 l 1214 510 l 1334 540 l 1214 570 l cp +eoclip +n 675 540 m + 1350 540 l gs col0 s gr gr + +% arrowhead +n 1214 570 m 1334 540 l 1214 510 l 1214 570 l cp gs 0.00 setgray ef gr col0 s +% Polyline +gs clippath +1410 1214 m 1410 1365 l 1470 1365 l 1470 1214 l 1470 1214 l 1440 1334 l 1410 1214 l cp +eoclip +n 1440 675 m + 1440 1350 l gs col0 s gr gr + +% arrowhead +n 1410 1214 m 1440 1334 l 1470 1214 l 1410 1214 l cp gs 0.00 setgray ef gr col0 s +% Polyline +gs clippath +510 1214 m 510 1365 l 570 1365 l 570 1214 l 570 1214 l 540 1334 l 510 1214 l cp +eoclip +n 540 675 m + 540 1350 l gs col0 s gr gr + +% arrowhead +n 510 1214 m 540 1334 l 570 1214 l 510 1214 l cp gs 0.00 setgray ef gr col0 s +% Polyline +gs clippath +1214 1470 m 1365 1470 l 1365 1410 l 1214 1410 l 1214 1410 l 1334 1440 l 1214 1470 l cp +eoclip +n 675 1440 m + 1350 1440 l gs col0 s gr gr + +% arrowhead +n 1214 1470 m 1334 1440 l 1214 1410 l 1214 1470 l cp gs 0.00 setgray ef gr col0 s +% Polyline +n 2475 450 m 2700 450 l 2700 675 l 2475 675 l + cp gs col0 s gr +% Polyline +n 2475 1125 m 2700 1125 l 2700 1350 l 2475 1350 l + cp gs col0 s gr +% Polyline +n 2025 1575 m 2250 1575 l 2250 1800 l 2025 1800 l + cp gs col0 s gr +% Polyline +n 2925 1575 m 3150 1575 l 3150 1800 l 2925 1800 l + cp gs col0 s gr +% Polyline +n 2565 675 m + 2565 1125 l gs col0 s gr +% Polyline +n 2475 1350 m + 2250 1575 l gs col0 s gr +% Polyline +n 2700 1350 m + 2925 1575 l gs col0 s gr +/Times-Roman ff 190.50 scf sf +495 630 m +gs 1 -1 sc (A) col0 sh gr +/Times-Roman ff 190.50 scf sf +495 1530 m +gs 1 -1 sc (C) col0 sh gr +/Times-Roman ff 190.50 scf sf +1395 1530 m +gs 1 -1 sc (D) col0 sh gr +/Times-Roman ff 190.50 scf sf +1395 630 m +gs 1 -1 sc (B) col0 sh gr +/Times-Roman ff 190.50 scf sf +2520 630 m +gs 1 -1 sc (A) col0 sh gr +/Times-Roman ff 190.50 scf sf +2520 1305 m +gs 1 -1 sc (B) col0 sh gr +/Times-Roman ff 190.50 scf sf +2070 1755 m +gs 1 -1 sc (C) col0 sh gr +/Times-Roman ff 190.50 scf sf +2970 1755 m +gs 1 -1 sc (D) col0 sh gr +/Times-Roman ff 127.00 scf sf +2475 405 m +gs 1 -1 sc (1,8) col0 sh gr +/Times-Roman ff 127.00 scf sf +2745 1305 m +gs 1 -1 sc (2,7) col0 sh gr +/Times-Roman ff 127.00 scf sf +3195 1755 m +gs 1 -1 sc (5,6) col0 sh gr +/Times-Roman ff 127.00 scf sf +2295 1755 m +gs 1 -1 sc (3,4) col0 sh gr +% here ends figure; +$F2psEnd +rs +showpage +%%Trailer +%EOF diff --git a/3-grafy/img7_hrany.eps b/3-grafy/img7_hrany.eps new file mode 100644 index 0000000..f65b7a9 --- /dev/null +++ b/3-grafy/img7_hrany.eps @@ -0,0 +1,179 @@ +%!PS-Adobe-2.0 EPSF-2.0 +%%Title: img7_hrany.fig +%%Creator: fig2dev Version 3.2 Patchlevel 5-alpha7 +%%CreationDate: Fri May 11 18:48:47 2007 +%%For: onti@onti-laptop (Ondrej Tichy,,,) +%%BoundingBox: 0 0 173 87 +%Magnification: 1.0000 +%%EndComments +/$F2psDict 200 dict def +$F2psDict begin +$F2psDict /mtrx matrix put +/col-1 {0 setgray} bind def +/col0 {0.000 0.000 0.000 srgb} bind def +/col1 {0.000 0.000 1.000 srgb} bind def +/col2 {0.000 1.000 0.000 srgb} bind def +/col3 {0.000 1.000 1.000 srgb} bind def +/col4 {1.000 0.000 0.000 srgb} bind def +/col5 {1.000 0.000 1.000 srgb} bind def +/col6 {1.000 1.000 0.000 srgb} bind def +/col7 {1.000 1.000 1.000 srgb} bind def +/col8 {0.000 0.000 0.560 srgb} bind def +/col9 {0.000 0.000 0.690 srgb} bind def +/col10 {0.000 0.000 0.820 srgb} bind def +/col11 {0.530 0.810 1.000 srgb} bind def +/col12 {0.000 0.560 0.000 srgb} bind def +/col13 {0.000 0.690 0.000 srgb} bind def +/col14 {0.000 0.820 0.000 srgb} bind def +/col15 {0.000 0.560 0.560 srgb} bind def +/col16 {0.000 0.690 0.690 srgb} bind def +/col17 {0.000 0.820 0.820 srgb} bind def +/col18 {0.560 0.000 0.000 srgb} bind def +/col19 {0.690 0.000 0.000 srgb} bind def +/col20 {0.820 0.000 0.000 srgb} bind def +/col21 {0.560 0.000 0.560 srgb} bind def +/col22 {0.690 0.000 0.690 srgb} bind def +/col23 {0.820 0.000 0.820 srgb} bind def +/col24 {0.500 0.190 0.000 srgb} bind def +/col25 {0.630 0.250 0.000 srgb} bind def +/col26 {0.750 0.380 0.000 srgb} bind def +/col27 {1.000 0.500 0.500 srgb} bind def +/col28 {1.000 0.630 0.630 srgb} bind def +/col29 {1.000 0.750 0.750 srgb} bind def +/col30 {1.000 0.880 0.880 srgb} bind def +/col31 {1.000 0.840 0.000 srgb} bind def + +end +save +newpath 0 87 moveto 0 0 lineto 173 0 lineto 173 87 lineto closepath clip newpath +-27.6 114.4 translate +1 -1 scale + +/cp {closepath} bind def +/ef {eofill} 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} bind def +/tr {translate} bind def +/tnt {dup dup currentrgbcolor + 4 -2 roll dup 1 exch sub 3 -1 roll mul add + 4 -2 roll dup 1 exch sub 3 -1 roll mul add + 4 -2 roll dup 1 exch sub 3 -1 roll mul add srgb} + bind def +/shd {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul + 4 -2 roll mul srgb} bind def +/$F2psBegin {$F2psDict begin /$F2psEnteredState save def} def +/$F2psEnd {$F2psEnteredState restore end} def + +$F2psBegin +10 setmiterlimit +0 slj 0 slc + 0.06299 0.06299 sc +% +% Fig objects follow +% +% +% here starts figure with depth 50 +% Arc +7.500 slw +0 slc +gs clippath +2135 534 m 2038 419 l 1992 457 l 2089 573 l 2089 573 l 2035 462 l 2135 534 l cp +eoclip + [60] 0 sd +n 1462.5 1012.5 795.5 98.1301 -45.0000 arcn +gs col0 s gr + gr + [] 0 sd +% arrowhead +0 slj +n 2135 534 m 2035 462 l 2089 573 l 2135 534 l cp gs col7 1.00 shd ef gr col0 s +% Arc +gs clippath +3044 522 m 2935 418 l 2893 461 l 3002 566 l 3002 566 l 2937 461 l 3044 522 l cp +eoclip + [60] 0 sd +n 2531.2 956.2 641.3 74.7449 -52.1250 arcn +gs col0 s gr + gr + [] 0 sd +% arrowhead +n 3044 522 m 2937 461 l 3002 566 l 3044 522 l cp gs col7 1.00 shd ef gr col0 s +% Polyline +gs clippath +782 1275 m 889 1381 l 931 1339 l 825 1232 l 825 1232 l 889 1339 l 782 1275 l cp +eoclip +n 450 900 m + 900 1350 l gs col0 s gr gr + +% arrowhead +n 782 1275 m 889 1339 l 825 1232 l 782 1275 l cp gs col7 1.00 shd ef gr col0 s +% Polyline +gs clippath +524 1682 m 418 1789 l 460 1831 l 567 1725 l 567 1725 l 461 1789 l 524 1682 l cp +eoclip +n 900 1350 m + 450 1800 l gs col0 s gr gr + +% arrowhead +n 524 1682 m 461 1789 l 567 1725 l 524 1682 l cp gs col7 1.00 shd ef gr col0 s +% Polyline +gs clippath +524 782 m 418 889 l 460 931 l 567 825 l 567 825 l 461 889 l 524 782 l cp +eoclip +n 900 450 m + 450 900 l gs col0 s gr gr + +% arrowhead +n 524 782 m 461 889 l 567 825 l 524 782 l cp gs col7 1.00 shd ef gr col0 s +% Polyline +gs clippath +1424 782 m 1318 889 l 1360 931 l 1467 825 l 1467 825 l 1361 889 l 1424 782 l cp +eoclip +n 1800 450 m + 1350 900 l gs col0 s gr gr + +% arrowhead +n 1424 782 m 1361 889 l 1467 825 l 1424 782 l cp gs col7 1.00 shd ef gr col0 s +% Polyline +gs clippath +1682 1275 m 1789 1381 l 1831 1339 l 1725 1232 l 1725 1232 l 1789 1339 l 1682 1275 l cp +eoclip +n 1350 900 m + 1800 1350 l gs col0 s gr gr + +% arrowhead +n 1682 1275 m 1789 1339 l 1725 1232 l 1682 1275 l cp gs col7 1.00 shd ef gr col0 s +% Polyline +gs clippath +1424 1682 m 1318 1789 l 1360 1831 l 1467 1725 l 1467 1725 l 1361 1789 l 1424 1682 l cp +eoclip +n 1800 1350 m + 1350 1800 l gs col0 s gr gr + +% arrowhead +n 1424 1682 m 1361 1789 l 1467 1725 l 1424 1682 l cp gs col7 1.00 shd ef gr col0 s +% here ends figure; +$F2psEnd +rs +showpage +%%Trailer +%EOF diff --git a/3-grafy/imgn_nei.eps b/3-grafy/imgn_nei.eps new file mode 100644 index 0000000..75ec44a --- /dev/null +++ b/3-grafy/imgn_nei.eps @@ -0,0 +1,457 @@ +%!PS-Adobe-3.0 EPSF-3.0 +%%Creator: Ipelib 60030 (Ipe 6.0 preview 30) +%%CreationDate: D:20090612221459 +%%LanguageLevel: 2 +%%BoundingBox: 49 297 147 360 +%%HiResBoundingBox: 49.5343 297.934 146.473 359.966 +%%DocumentSuppliedResources: font QPRPPC+CMR10 +%%EndComments +%%BeginProlog +%%BeginResource: procset ipe 6.0 60030 +/ipe 40 dict def ipe begin +/np { newpath } def +/m { moveto } def +/l { lineto } def +/c { curveto } def +/h { closepath } def +/re { 4 2 roll moveto 1 index 0 rlineto 0 exch rlineto + neg 0 rlineto closepath } def +/d { setdash } def +/w { setlinewidth } def +/J { setlinecap } def +/j { setlinejoin } def +/cm { [ 7 1 roll ] concat } def +/q { gsave } def +/Q { grestore } def +/g { setgray } def +/G { setgray } def +/rg { setrgbcolor } def +/RG { setrgbcolor } def +/S { stroke } def +/f* { eofill } def +/f { fill } def +/ipeMakeFont { + exch findfont + dup length dict begin + { 1 index /FID ne { def } { pop pop } ifelse } forall + /Encoding exch def + currentdict + end + definefont pop +} def +/ipeFontSize 0 def +/Tf { dup /ipeFontSize exch store selectfont } def +/Td { translate } def +/BT { gsave } def +/ET { grestore } def +/TJ { 0 0 moveto { dup type /stringtype eq + { show } { ipeFontSize mul -0.001 mul 0 rmoveto } ifelse +} forall } def +end +%%EndResource +%%EndProlog +%%BeginSetup +ipe begin +%%BeginResource: font QPRPPC+CMR10 +%!PS-AdobeFont-1.1: CMR10 1.00B +%%CreationDate: 1992 Feb 19 19:54:52 +% Copyright (C) 1997 American Mathematical Society. All Rights Reserved. +11 dict begin +/FontInfo 7 dict dup begin +/version (1.00B) readonly def +/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def +/FullName (CMR10) readonly def +/FamilyName (Computer Modern) readonly def +/Weight (Medium) readonly def +/ItalicAngle 0 def +/isFixedPitch false def +end readonly def +/FontName /QPRPPC+CMR10 def +/PaintType 0 def +/FontType 1 def +/FontMatrix [0.001 0 0 0.001 0 0] readonly def +/Encoding 256 array +0 1 255 {1 index exch /.notdef put} for +dup 65 /A put +dup 66 /B put +dup 67 /C put +dup 68 /D put +dup 69 /E put +dup 86 /V put +dup 58 /colon put +dup 53 /five put +dup 52 /four put +dup 49 /one put +dup 51 /three put +readonly def +/FontBBox{-251 -250 1009 969}readonly def +currentdict end +currentfile eexec +d9d66f633b846a97b686a97e45a3d0aa052a014267b7904eb3c0d3bd0b83d891 +016ca6ca4b712adeb258faab9a130ee605e61f77fc1b738abc7c51cd46ef8171 +9098d5fee67660e69a7ab91b58f29a4d79e57022f783eb0fbbb6d4f4ec35014f +d2decba99459a4c59df0c6eba150284454e707dc2100c15b76b4c19b84363758 +469a6c558785b226332152109871a9883487dd7710949204ddcf837e6a8708b8 +2bdbf16fbc7512faa308a093fe5cf7158f1163bc1f3352e22a1452e73feca8a4 +87100fb1ffc4c8af409b2067537220e605da0852ca49839e1386af9d7a1a455f +d1f017ce45884d76ef2cb9bc5821fd25365ddea6e45f332b5f68a44ad8a530f0 +92a36fac8d27f9087afeea2096f839a2bc4b937f24e080ef7c0f9374a18d565c +295a05210db96a23175ac59a9bd0147a310ef49c551a417e0a22703f94ff7b75 +409a5d417da6730a69e310fa6a4229fc7e4f620b0fc4c63c50e99e179eb51e4c +4bc45217722f1e8e40f1e1428e792eafe05c5a50d38c52114dfcd24d54027cbf +2512dd116f0463de4052a7ad53b641a27e81e481947884ce35661b49153fa19e +0a2a860c7b61558671303de6ae06a80e4e450e17067676e6bbb42a9a24acbc3e +b0ca7b7a3bfea84fed39ccfb6d545bb2bcc49e5e16976407ab9d94556cd4f008 +24ef579b6800b6dc3aaf840b3fc6822872368e3b4274dd06ca36af8f6346c11b +43c772cc242f3b212c4bd7018d71a1a74c9a94ed0093a5fb6557f4e0751047af +d72098eca301b8ae68110f983796e581f106144951df5b750432a230fda3b575 +5a38b5e7972aabc12306a01a99fcf8189d71b8dbf49550baea9cf1b97cbfc7cc +96498ecc938b1a1710b670657de923a659db8757147b140a48067328e7e3f9c3 +7d1888b284904301450ce0bc15eeea00e48ccd6388f3fc3a3b198747b4dc992e +839a610506453ba7b2a56b2c552fdbe23916074dd54d39ed27a52d90d5d74b07 +a5265e72e3f2e0acd9513e056f15e4bcbb9f409a6f39deae8d919c80ec13c56f +4864a6ccff1acfda3d992f46d45571fc760dff6ebfb011b6c123167ca96b77a0 +cfa8861be3814e002e0a571e62c497886a135acb53c0acf7fecceef3fa4dc436 +9115af71c9ca5e9e71caaf5a17d5598d8e8bb772ef73e44f07bfcea039dfb0f7 +e2c38f138ee0922fbdd3d7ba9cd9676102b0b9e22a4744edbf299db408b7b0b9 +b66dc8bdb8552ba01aee38e1205b077c2f2c646747c748125f1ccf350e3930ad +ae5249b3d5cae219454906c86eab1df73eec1e8afa68c7e230dad77d9a072873 +b96e9def3eaec6d5b9a045f9280d79ac9e0857ac916fc29db487a669486de827 +dfa3c487fbaebcbbcb9558497a66ce72491373354376aef7374ae1d709ec9ce1 +244e5cc8e7b40f9a2d36fbaa585e2265e0d4491f56166c30155a359ddb814235 +88d830822cf1827dd0b979e7f899a31e7570692e6a8eff1fbba5de09e2fc63c2 +934eda05d28cb4ed0a2804ca36d4619d88831a4ab00bdb2a8072edd1670ecd13 +87284ffdc14c464b15fefe5f5d17dd99a9c291a98fc3cd46a47764358d7d65d2 +da2a30960687f2dcf03e8ec3b3355440f87909ff158b8a851e1b210c3aab5a51 +451da27dd7da80feb166c3db5debd271270a478aed9640392137548da4060fa2 +2c764e0b6b9844980a089f0db4798087f2b4f9e15cbcc2b4b15da7f10d8dcf4a +96714fb8c4c3b8ec48d54aa658190a40ecbef817e6eff5db4181bf7dc7a13bf3 +f6a16435be39717749e237776b1cfbb090758a477f70be0c69b1ef937795fdbc +585fcdd4af78ae484b761bfc3661d687bb1a64f4ea8274af10dd73b7575d67e6 +78d78a9802fce8dd84d1006acdc3fdb82b18978ae78311ec7e57be059ce186c6 +e48830c45dac72f5f8661a57909384e6c4447b21340a4b05412f00865d53a4de +e0c47d4d3cb422399d88bf504f73094546c121fcfdf04fa7cb4962550134e3f6 +47eeea66e9dfd5998bf15055f858ed062d58ba72274ac6653317786f5e2042e5 +d4cd6fd151f7ad1d25517ed6d873a8bb4bf1789618bf224d3a3b2545982782bb +32e9c9b522abb351563d90f75154918a160bfcaae19ab1e61ce635a4004a912e +65ca0b2f3a4bd0207820edd437a307b7cfa74fc61e39283f38a8ad579fa4e5db +ce594480fb400b3a2aa034b9d2355e52e51f2dcd3c4809f0734ac964b93cc881 +c0c870304d83613d1f47f48b90d5b98538d08087144e573824a367e7d3efca97 +6bfd34799e6745358549b6fee54f708740b519578f21c667c0c381a89706c312 +a312ed8c10f96d2e8fae3b42313a09bdf601ea61373eff6e912dc93ba8ce55a9 +925ebbaa324e5c3c69e3ffebe71dc1c697bbc78c08f7981d03329cc648cd9289 +8c4e0a259895e741a5896b5c64468f95ddda059949e08dde8dcb8c937e8781c5 +683282986f90939e25fcab8db330bdd2db287554de19b78d8e9071256e1c5aff +8e21b522d852423cdaf38d1adce8482f076e6bc95f713d2e2637e2a192da02a1 +f677fcffaec9afff27e64e7d2e30aaa8a2ff2fb3b989da85c63a65bee2b05817 +4414dc2725db959992e4ffd3f9774c77e1b718eb56472bac7932eaef435a2f6f +e9c55380631a6c2c82666a5cc57219f679878349e7cfddfdb70f6b3c37ac95c3 +12c347be66e8aa46dbf239631922e4ac8fab0dac8a4553d73ee04ab3da50d44f +b2f39132ed5d8823017dd4a28c9140437ae367e1d20af64c350b4f1bb50ed4ba +6b7cbe3ee65a2ef32b0358cdd5b7ffa020306e64b3b2fbb3667b0c75a3a7a873 +4cfe41e347a658be4054c9d8423fa4019db27074ad2e0e8f6207cff81f7f82f0 +fb419014928396fa9a322f53c95dfa9261c5ea4865f3ee6d1ac0647accccdbe7 +25b8e918552e8381b87fc5c77986be2a77b36d17cd5bc23df8d6b0a7dfef62f5 +42f8fe68f17d9109e6148de69e1539d681964976be07e2f04685b9527cefca58 +9e9393089bd19aec57aa167c0ce1f497ae31c960ef1384a6d32249cab28b920c +1686978ccb1ba542e2c9087789aa35a189fb2593959033466cb1dd92469127a1 +d794ce4409803179f98a79501e1dad1038bbf3f6e81cb5523db5659b4dfdf080 +94a338deaa1b0697b0cac0fc91880437e832ca30f19c7170b0bb893f83c9ccc4 +e87eefce3098487fc5e87aad1765329b459f2d0658723a11f33e336b007f7f15 +6a397ec72cbe3712ba6d6bd42840ab45c34304fc39124a863efe6f361fc4d393 +7f0b28f11fc36f3ddb11f613481dea9b394aaceddce2bca659619d63495725ec +92bb5ecacc4c221125284d4fe04d41c57f6464206b8c83186f46b0df62fe5b24 +d3932aa11c4d79e45190d51ff66bb67492a7598ba18dde7d0425c27bcbabad06 +0863abeb53800e73945f001d439d582faaeb133d93dfe061137be3aa6a978002 +4134e128d0a061ce88a587be221168d10d8c949cc390a05d0fdc41d4b24a89b7 +d9bac2c2b884aa30cbab7b09689c8cedb68b0afb20631cb7305ca3260134a3e1 +9aa5bdf928d303183790ea6ff5b15df78a03a5aaaa74382721ceaa50c382d095 +6921e0e64a7cbc1b50ac285569c5efaa0aae56bf3755a36825d162e1649a77f6 +e6f7c41a5b281c43eadf2a90a743e3cd209ca0748716145fb87f57aa3b5ebf43 +96c5ce112c88956ae37ddae0bd254aba4f1f08d9a59934f2d4241732bd34b728 +10978c04d5dd04c20df81a2bff3d1befde4393382e7b99e364eab9702e0bd5f9 +47205de80f0d5d4156ae85c493a162124b76efeca55f33ca176baff8ea009c01 +ce30dfc9e54065321e0a862d825bc7c5d1d094599ade3cf94e9d7279953ff1d2 +fbd4b0f366d9a25634474ae202a5c14565f93b473e80cb09da4a16aeffeb4df5 +119b2aebdf8da0cf074f18d664d0188ec7e1c397dfa128b8c6c2168879c40da8 +3f4012ba83b665ab462c2f031b5cfe696647a3f8b718a1f6dfd226e8a464962a +da08dda0facd6f366b2c2ae6f8fbf35bac0e33574779a87f05f0a019460407d9 +bb357e58e5cbc8492aeff30f973fa4bf4dd36d2e78f68c3133df39d3502bd3b6 +92474c4d6cbbed6d3045713d9c4a43c644e0dcfee6e53e53f7b1abc99556af81 +f98b6b30d813f309883aa5d6da7f10bd3a1e4ee91ba1f83396fe036e8e87c26c +be6a9b016e7e5eadb64356c2086d8e150ce16ef4b3f4b1ae59b3ade1e5c66f9a +9d63de3ecb344346a99af40a851786fe6a2bd76b970179725de004784a0f4025 +b9eb1a0155c0dce68945b3a83137e354eaa48e0c0add1944fd77049fecba40c8 +6a01a75169b9efb433747f3f330423b58dcd98a6db30199e5e1b99cfba8c1176 +8a +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +cleartomark +%%EndResource +/F8 /QPRPPC+CMR10 findfont definefont pop +%%EndSetup +0 J 1 j +q 0.4 w +65.0001 338.434 m +78.5662 338.434 l +78.5662 352 l +65.0001 352 l +h S +Q +q 1 0 0 1 67 353 cm 1 0 0 1 0 0 cm 0 g +0 G + +1 0 0 1 0 -785.192 cm +BT +/F8 9.9626 Tf 0 785.192 Td [(A)]TJ +ET +Q +q 0.4 w +78.4961 338.434 m +92.0622 338.434 l +92.0622 352 l +78.4961 352 l +h S +Q +q 0.4 w +92.0721 338.434 m +105.638 338.434 l +105.638 352 l +92.0721 352 l +h S +Q +q 0.4 w +105.568 338.434 m +119.134 338.434 l +119.134 352 l +105.568 352 l +h S +Q +q 1 0 0 1 80.6523 353.157 cm 1 0 0 1 0 0 cm 0 g +0 G + +1 0 0 1 0 -785.192 cm +BT +/F8 9.9626 Tf 0 785.192 Td [(B)]TJ +ET +Q +q 1 0 0 1 94.5489 353.158 cm 1 0 0 1 0 0 cm 0 g +0 G + +1 0 0 1 0 -785.192 cm +BT +/F8 9.9626 Tf 0 785.192 Td [(C)]TJ +ET +Q +q 1 0 0 1 109.438 353.158 cm 1 0 0 1 0 0 cm 0 g +0 G + +1 0 0 1 0 -785.192 cm +BT +/F8 9.9626 Tf 0 785.192 Td [(D)]TJ +ET +Q +q 1 0 0 1 49.5343 341.845 cm 1 0 0 1 0 0 cm 0 g +0 G + +1 0 0 1 0 -785.192 cm +BT +/F8 9.9626 Tf 0 785.192 Td [(V:)]TJ +ET +Q +q 0.4 w +65.0001 298.334 m +78.5662 298.334 l +78.5662 311.9 l +65.0001 311.9 l +h S +Q +q 0.4 w +78.4961 298.334 m +92.0622 298.334 l +92.0622 311.9 l +78.4961 311.9 l +h S +Q +q 0.4 w +92.0721 298.334 m +105.638 298.334 l +105.638 311.9 l +92.0721 311.9 l +h S +Q +q 0.4 w +105.568 298.334 m +119.134 298.334 l +119.134 311.9 l +105.568 311.9 l +h S +Q +q 0.4 w +119.011 298.334 m +132.577 298.334 l +132.577 311.9 l +119.011 311.9 l +h S +Q +q 0.4 w +132.507 298.334 m +146.073 298.334 l +146.073 311.9 l +132.507 311.9 l +h S +Q +q 1 0 0 1 49.5343 301.746 cm 1 0 0 1 0 0 cm 0 g +0 G + +1 0 0 1 0 -785.192 cm +BT +/F8 9.9626 Tf 0 785.192 Td [(E:)]TJ +ET +Q +q 1 0 0 1 68.3803 342.51 cm 1 0 0 1 0 0 cm 0 g +0 G + +1 0 0 1 0 -785.58 cm +BT +/F8 9.9626 Tf 0 785.58 Td [(1)]TJ +ET +Q +q 1 0 0 1 68.3803 301.653 cm 1 0 0 1 0 0 cm 0 g +0 G + +1 0 0 1 0 -785.192 cm +BT +/F8 9.9626 Tf 0 785.192 Td [(B)]TJ +ET +Q +q 1 0 0 1 81.6312 301.653 cm 1 0 0 1 0 0 cm 0 g +0 G + +1 0 0 1 0 -785.192 cm +BT +/F8 9.9626 Tf 0 785.192 Td [(C)]TJ +ET +Q +q 1 0 0 1 94.0539 301.653 cm 1 0 0 1 0 0 cm 0 g +0 G + +1 0 0 1 0 -785.192 cm +BT +/F8 9.9626 Tf 0 785.192 Td [(D)]TJ +ET +Q +q 1 0 0 1 108.133 301.653 cm 1 0 0 1 0 0 cm 0 g +0 G + +1 0 0 1 0 -785.192 cm +BT +/F8 9.9626 Tf 0 785.192 Td [(D)]TJ +ET +Q +q 1 0 0 1 121.66 301.653 cm 1 0 0 1 0 0 cm 0 g +0 G + +1 0 0 1 0 -785.192 cm +BT +/F8 9.9626 Tf 0 785.192 Td [(A)]TJ +ET +Q +q 1 0 0 1 135.739 301.653 cm 1 0 0 1 0 0 cm 0 g +0 G + +1 0 0 1 0 -785.192 cm +BT +/F8 9.9626 Tf 0 785.192 Td [(B)]TJ +ET +Q +q 1 0 0 1 82.7354 342.51 cm 1 0 0 1 0 0 cm 0 g +0 G + +1 0 0 1 0 -785.58 cm +BT +/F8 9.9626 Tf 0 785.58 Td [(3)]TJ +ET +Q +q 1 0 0 1 95.7103 342.51 cm 1 0 0 1 0 0 cm 0 g +0 G + +1 0 0 1 0 -785.58 cm +BT +/F8 9.9626 Tf 0 785.58 Td [(4)]TJ +ET +Q +q 1 0 0 1 109.513 342.51 cm 1 0 0 1 0 0 cm 0 g +0 G + +1 0 0 1 0 -785.58 cm +BT +/F8 9.9626 Tf 0 785.58 Td [(5)]TJ +ET +Q +q [4] 0 d +0.4 w +71.1641 337.708 m +71.1641 313.414 l +S +q [] 0 d +71.1641 313.414 m +72.8308 318.414 l +69.4975 318.414 l +h q f* Q S +Q +Q +q [4] 0 d +0.4 w +84.887 336.958 m +97.768 313.596 l +S +q [] 0 d +97.768 313.596 m +96.8133 318.78 l +93.8942 317.17 l +h q f* Q S +Q +Q +q [4] 0 d +0.4 w +98.9661 336.958 m +111.847 313.596 l +S +q [] 0 d +111.847 313.596 m +110.892 318.78 l +107.973 317.17 l +h q f* Q S +Q +Q +q [4] 0 d +0.4 w +113.045 336.958 m +125.926 313.596 l +S +q [] 0 d +125.926 313.596 m +124.971 318.78 l +122.052 317.17 l +h q f* Q S +Q +Q +showpage +%%BeginIpeXml: /FlateDecode +%GhU]8?#SFN'Sc)R/$.N9r;BKX9&$q8rINcDE$8s=;%h9"^OE@Re#h)t8EiGg,iln`kOGh'H]GYZ +%X%7E=DXqg0b7%mDARnZYd$F>Uqh@j5)6)o2bMt`OkOleo^:c,mA)_Nph-:<,4>U4J/tJ:Gfp'\X +%2ZKOJE2@tPk4A.PQ7_C-66htsfrE]3O$uHXqHLQ=X%696^23?^EL+.G\-S/#-JPc@MbmC=cqVlL +%F^7`ARY4,!mp:sQ6G)*8H61SCFa8a.o-,aRJ0!?)#99MY3lrp]l-hj&7QkCSE%\,O-6lND_mX-i +%#mJt?-;k2V\T%F8d5?#\R(fiF$53VWgA'#9ZHkVMS4pR?$G00#=;Oc>E&b=TXRMDtb[Zctqg@)" +%B:5U=MN"WH^08"u7I$8`a>-eq'/SuAOfq#3%o"VGD8ajaVtTbTY,2N(pX12!84=7Opmq=m!BSYHN9q+gVg#&DX' +%-\hi*VcpVE@eK'K0OaLuC(;Wm_sE^h^K,Se6er.7;dp"UIiI=!6__2MkEs\2e9pF)Q,^@cLh#SX +%M1l9eW8KAJ0f,>S!Fn>JTY`<32UmHL +%%EndIpeXml +%%Trailer +end +%%EOF diff --git a/3-grafy/imgn_o4.eps b/3-grafy/imgn_o4.eps new file mode 100644 index 0000000..27fcbcf --- /dev/null +++ b/3-grafy/imgn_o4.eps @@ -0,0 +1,253 @@ +%!PS-Adobe-3.0 EPSF-3.0 +%%Creator: Ipelib 60030 (Ipe 6.0 preview 30) +%%CreationDate: D:20090612215531 +%%LanguageLevel: 2 +%%BoundingBox: 19 396 116 489 +%%HiResBoundingBox: 19.515 396.99 115.567 488.793 +%%DocumentSuppliedResources: font ONQNXF+CMR10 +%%EndComments +%%BeginProlog +%%BeginResource: procset ipe 6.0 60030 +/ipe 40 dict def ipe begin +/np { newpath } def +/m { moveto } def +/l { lineto } def +/c { curveto } def +/h { closepath } def +/re { 4 2 roll moveto 1 index 0 rlineto 0 exch rlineto + neg 0 rlineto closepath } def +/d { setdash } def +/w { setlinewidth } def +/J { setlinecap } def +/j { setlinejoin } def +/cm { [ 7 1 roll ] concat } def +/q { gsave } def +/Q { grestore } def +/g { setgray } def +/G { setgray } def +/rg { setrgbcolor } def +/RG { setrgbcolor } def +/S { stroke } def +/f* { eofill } def +/f { fill } def +/ipeMakeFont { + exch findfont + dup length dict begin + { 1 index /FID ne { def } { pop pop } ifelse } forall + /Encoding exch def + currentdict + end + definefont pop +} def +/ipeFontSize 0 def +/Tf { dup /ipeFontSize exch store selectfont } def +/Td { translate } def +/BT { gsave } def +/ET { grestore } def +/TJ { 0 0 moveto { dup type /stringtype eq + { show } { ipeFontSize mul -0.001 mul 0 rmoveto } ifelse +} forall } def +end +%%EndResource +%%EndProlog +%%BeginSetup +ipe begin +%%BeginResource: font ONQNXF+CMR10 +%!PS-AdobeFont-1.1: CMR10 1.00B +%%CreationDate: 1992 Feb 19 19:54:52 +% Copyright (C) 1997 American Mathematical Society. All Rights Reserved. +11 dict begin +/FontInfo 7 dict dup begin +/version (1.00B) readonly def +/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def +/FullName (CMR10) readonly def +/FamilyName (Computer Modern) readonly def +/Weight (Medium) readonly def +/ItalicAngle 0 def +/isFixedPitch false def +end readonly def +/FontName /ONQNXF+CMR10 def +/PaintType 0 def +/FontType 1 def +/FontMatrix [0.001 0 0 0.001 0 0] readonly def +/Encoding 256 array +0 1 255 {1 index exch /.notdef put} for +dup 65 /A put +dup 66 /B put +dup 67 /C put +dup 68 /D put +readonly def +/FontBBox{-251 -250 1009 969}readonly def +currentdict end +currentfile eexec +d9d66f633b846a97b686a97e45a3d0aa052a014267b7904eb3c0d3bd0b83d891 +016ca6ca4b712adeb258faab9a130ee605e61f77fc1b738abc7c51cd46ef8171 +9098d5fee67660e69a7ab91b58f29a4d79e57022f783eb0fbbb6d4f4ec35014f +d2decba99459a4c59df0c6eba150284454e707dc2100c15b76b4c19b84363758 +469a6c558785b226332152109871a9883487dd7710949204ddcf837e6a8708b8 +2bdbf16fbc7512faa308a093fe5cf7158f1163bc1f3352e22a1452e73feca8a4 +87100fb1ffc4c8af409b2067537220e605da0852ca49839e1386af9d7a1a455f +d1f017ce45884d76ef2cb9bc5821fd25365ddea6e45f332b5f68a44ad8a530f0 +92a36fac8d27f9087afeea2096f839a2bc4b937f24e080ef7c0f9374a18d565c +295a05210db96a23175ac59a9bd0147a310ef49c551a417e0a22703f94ff7b75 +409a5d417da6730a69e310fa6a4229fc7e4f620b0fc4c63c50e99e179eb51e4c +4bc45217722f1e8e40f1e1428e792eafe05c5a50d38c52114dfcd24d54027cbf +2512dd116f0463de4052a7ad53b641a27e81e481947884ce35661b49153fa19e +0a2a860c7b61558671303de6ae06a80e4e450e17067676e6bbb42a9a24acbc3e +b0ca7b7a3bfea84fed39ccfb6d545bb2bcc49e5e16976407ab9d94556cd4f008 +24ef579b6800b6dc3aaf840b3fc6822872368e3b4274dd06ca36af8f6346c11b +43c772cc242f3b212c4bd7018d71a1a74c9a94ed0093a5fb6557f4e0751047af +d72098eca301b8ae68110f983796e581f106144951df5b750432a230fda3b575 +5a38b5e7972aabc12306a01a99fcf8189d71b8dbf49550baea9cf1b97cbfc7cc +96498ecc938b1a1710b670657de923a659db8757147b140a48067328e7e3f9c3 +7d1888b284904301450ce0bc15eeea00e48ccd6388f3fc3a3b198747b4dc992e +839a610506453ba7b2a56b2c552fdbe23916074dd54d39ed27a52d90d5d74b07 +a5265e72e3f2e0acd9513e056f15e4bcbb9f409a6f39deae8d919c80ec13c56f +4864a6ccff1acfda3d992f46d45571fc760dff6ebfb011b6c123167ca96b77a0 +cfa8861be3814e002e0a571e62c497886a135acb53c0acf7fecceef3fa4dc436 +9115af71c9ca5e9e71caaf5a17d5598d8e8bb772ef73e44f07bfcea039dfb0f7 +e2c38f138ee0922fbdd3d7ba9cd9676102b0b9e22a4744edbf299db408b7b0b9 +b66dc8bdb8552ba01aee38e1205b077c2f2c646747c748125f1ccf350e3930ad +ae5249b3d5cae219454906c86eab1df73eec1e8afa68c7e230dad77d9a072873 +b96e9def3eaec6d5b9a045f9280d79ac9e0857ac916fc29db487a669486de827 +dfa3c487fbaebcbbcb9558497a66ce72491373354376aef7374ae1d709ec9a16 +4c369c237dd28fc4be2843036e872b2a008d0ddea0146e9e5f0ef49715bdcdab +d4efa0bd65c6822d70b0fbd115be7ebce816ab40d2ecdb17e15f2adb75a84589 +be79a66e6c29ace5156971c30e226b3fc1a7cbfe350c693b23476c3c77f0d214 +06751d2decca6d14a899c877a1f71cf5f205c8ff35460b3792108c17a29a339f +99a0be9fc33a702d808aab91fd490e6e8c0d59356d2b2cd44371d02d3d040d8f +121ce31ccece5ddae9c44e87f9139deb1ab6d393e6eadb7a3a33b4217523ec3f +fec90d8b22e6ccbe26b11e71f55ed334888ac82ad91c436891db5661343dfd21 +45312879ec8d7683212cde2995795e39d4675e000110da0432e48b67649a1b26 +4987a5eca0e6a22e78449eb3c8fd551c4e5e87a6054f1c5971ef8ff30f2783ee +a5ff2ea77e69b9941d2dbce8a5925612d11b11a7df8bd2f330b197b3dd86c24b +fc572da77bbfb6af2188ee8dd14cf4ade307fa46d9b8d22aeb35a43f06b5821b +9e482756623e2f0140d7098532257572404be051e8df6f02f84bfea203c615fa +fcecfeccb003b823def3067c1997219f65806a8773058cd3424d7c7cd0cf374a +e86fce217b3bf9aa401c2dd821dd46b39379c8b52c6036ec0f40f93a28c315e5 +ead19ea0801900ccd6ac97146e65ca89d2867893229462bf170182af3e77b420 +2bbb41906d120ed411c876185c41a0372b8ddfe0e8625fcd3e404f9c044620bd +71c507c4d00bcb084d603f7a14b080d45636acf5e6a650ee2085a677551c09dd +32c78015d76bb8f2f2da0eab87ee1a7d85c74b8b77f6ce17635a52c38156d333 +ab3d45276fe6e5b54ade0a1e88182b17520412533a15e7f589117836d5ab87ab +b39b71b7322990f215dbf76876266c309ddae6e644a9d8e5db424962962bd8a0 +d63f41db64526d791ba810a40c52c2f8c6824883c80adb7319a6a789a6284fe3 +8540c49bd012c615e9884a94e4cc8abed89c93bfc593e096f2d2a0503a517103 +59010b87a61e0cf19bcb639df479d7cd66bfc21e654d798eca1a2fe47a895b07 +16410efbe3e70dbed8059b584a7e3c7a1e8dd8b59f4b185715cd1a558a3fccd2 +f4f46d7eb073a7d5db4c302e25421cb49666e97660f8884c760ea1777df5b552 +a97193acae48bfaef59477bf56ef0a119fb48ab70e6d96edb07d71f731e0d4fe +3181d8d39ebec0da4dfc85cf47408ec49bc65bea2ca37a292d16c00955f12017 +76ea1f3e853813cbd0a712e3500da4072fd738087710abfded16c53d1beb6bc6 +cf4a09593a33440859d4689070b8edc1bd731ff68459036f51d4123f2032bd98 +9256c2d93db97af05aecd7b4b12455d6dd2aea6b7bd5bb94c0fb073523339505 +3ee6f692022ee5f56a29b65644b4d5603cc3a88423e127b23869a5623d55 +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +cleartomark +%%EndResource +/F8 /ONQNXF+CMR10 findfont definefont pop +%%EndSetup +0 J 1 j +q 0.4 w +31.6395 407.552 m +103.142 407.574 l +S +q 103.142 407.574 m +93.141 410.904 l +93.143 404.238 l +h q f* Q S +Q +Q +q 1 0 0 1 19.515 481.985 cm 1 0 0 1 0 0 cm 0 g +0 G + +1 0 0 1 0 -785.192 cm +BT +/F8 9.9626 Tf 0 785.192 Td [(A)]TJ +ET +Q +q 1 0 0 1 108.51 481.985 cm 1 0 0 1 0 0 cm 0 g +0 G + +1 0 0 1 0 -785.192 cm +BT +/F8 9.9626 Tf 0 785.192 Td [(B)]TJ +ET +Q +q 1 0 0 1 19.516 396.99 cm 1 0 0 1 0 0 cm 0 g +0 G + +1 0 0 1 0 -785.192 cm +BT +/F8 9.9626 Tf 0 785.192 Td [(C)]TJ +ET +Q +q 1 0 0 1 106.511 396.99 cm 1 0 0 1 0 0 cm 0 g +0 G + +1 0 0 1 0 -785.192 cm +BT +/F8 9.9626 Tf 0 785.192 Td [(D)]TJ +ET +Q +q 0.4 w +31.6395 480.548 m +103.142 480.57 l +S +q 103.142 480.57 m +93.141 483.9 l +93.143 477.234 l +h q f* Q S +Q +Q +q 0.4 w +103.365 407.476 m +103.411 480.312 l +S +q 103.411 480.312 m +100.071 470.314 l +106.738 470.31 l +h q f* Q S +Q +q 103.365 407.476 m +106.705 417.474 l +100.038 417.478 l +h q f* Q S +Q +Q +q 0.4 w +31.369 407.81 m +31.4148 480.779 l +S +q 31.369 407.81 m +34.7086 417.808 l +28.0419 417.812 l +h q f* Q S +Q +Q +q 0.4 w +31.5722 480.31 m +103.217 407.863 l +S +q 31.5722 480.31 m +36.2337 470.856 l +40.9739 475.544 l +h q f* Q S +Q +Q +showpage +%%BeginIpeXml: /FlateDecode +%GhTRUgMRrR&-1)OI)Uncj5CK52cADCoJ<^GCm;>O`NG`,?f,:?Bi<&iUEm-U+U5hm@.5B7#nEpC +%\_B'e+t@--.OgB`C"Nq'>)psrFNE\Y.!U*FaSYl&3$taHG5"EL#.-]he.s?_?+8,Rq2^ms7L9:B +%AbX]YLh5[/7@)YUOi\jI`D[^+S3\k>Yh2GLR5ZIN,0k-J9(OcJ9%5@m7OD +%e]2ZV*-E,UN2:lo6-D0h*f(iWOpQm`;(J?!!p%@p5m&oX=[d[g;`%#I8g*lFJdRe_iu.KGEk(S\ +%0"+.rV0d#\)p9Q??5RR5Z(Qa._/%]Z#[;Xh)XDYS!a82]<>'IK:ZF=(!2P[+RD_-b!)\76""iD- +%!i2WG:kQ3>U6`Xjgo&:s-:0lXosek+j4_mHD,];-7lkh]One7lf-"@L6Yu@Kp9KWEC@aVdY,5,W +%mHsW5@U=ok.htA_O\GBflG=pJ4A).jWOX?Ej5(sXp,8o"Wb)]P9%9YCW)aL1JsMX:n#oSW0^kZ` +%Iq)BA,GKifZ`;haW\m?_&[T'__rN&A2>ulTA:t&t]N.2ccKbgAV:lEs?E+B'G`s +%%EndIpeXml +%%Trailer +end +%%EOF diff --git a/3-grafy/praseci-graf.eps b/3-grafy/praseci-graf.eps new file mode 100644 index 0000000..e30f7e1 Binary files /dev/null and b/3-grafy/praseci-graf.eps differ diff --git a/6-dijkstra/6-dijkstra.tex b/6-dijkstra/6-dijkstra.tex new file mode 100644 index 0000000..57558e7 --- /dev/null +++ b/6-dijkstra/6-dijkstra.tex @@ -0,0 +1,162 @@ +\input ../lecnotes.tex + +\prednaska{11}{Nekrat¹í cesty podruhé}{(zapsali Du¹an Renát a Radek Tupec)} + +Na~této pøedná¹ce budeme studovat problém hledání nejkrat¹ích cest +v~grafech ohodnocených reálnými èísly. + +\s{Situace:} Máme orientovany graf~$G$ a funkce $l : E(G) \rightarrow {\bb R}$ +pøiøazující hranám jejich ohodnocení (délky). Pro vrcholy $u,v\in V(G)$ budeme +chtít spoèítat jejich vzdálenost $d(u,v)$, co¾ bude délka nejkrat¹í cesty z~$u$ +do~$v$ nebo $\infty$, pokud ¾ádná cesta neexistuje. + +Aby se vzdálenosti chovaly \uv{rozumnì} (tj. jako metrika), budeme chtít, aby platily +následující vlastnosti: + +\itemize\ibull +\:$d(u, u) = 0$, +\:$d(u, v) \leq d(u, w) + d(w, v)$ (trojúhelníková nerovnost). +\endlist + +To nemusí obecnì platit (kazí nám to záporné cykly), proto budeme studovat +pouze grafy, v~nich¾ záporné cykly neexistují. Pak u¾ budou obì vlastnosti +splnìny, jak plyne napøíklad z~následujícího lemmatu: + +\s{Lemma:} +V~grafu bez záporných cyklù existuje ke~ka¾dému nejkrat¹ímu sledu z~$u$ do~$v$ stejnì dlouhá $uv$-cesta. + +\proof +Máme-li nejkrat¹í $uv$-sled, který není cestou, opakuje se v~nìm nìjaký vrchol $w \in V(G)$. +Délka cyklu $l(c) \geq 0 \Rightarrow l(u\dots v\dots w) \leq l(pùvodní sled)$. Tento postup mù¾eme opakovat a po koneèném poètu krokù dostaneme cestu, tedy platí trojúhelníková nerovnost. +\qed + +Opakování: Dijkstrùv algoritmus +\itemize\ibull +\:$D(v)$ \dots doèasná vzdálenost z $s$ do $v$ +\:Znaèky $Z(v)$ \itemize\ibull +\::Nevidìn +\::Vidìn +\::Hotov +\endlist +\endlist + +%druha strana zapisku +\algo +\:$D(*) \leftarrow +\infty , D(s) \leftarrow 0$ +\:$Z(*) \leftarrow Neviden, Z(s) \leftarrow V$ +\:while $\exists v : Z(v) = V$ +\::vybereme $v : Z(v) = V, D(v) = min$ +\::$Z(v) = H$ +\::for $\forall w : (v, w) \in E(G)$ +\:::$D(w) \leftarrow min( D(w), D(w) + l(v, w))$ +\::if $Z(w) = N \Rightarrow Z(w) \leftarrow V$ +\endalgo + +\s{Vìta:} Pokud $G$ je nezápornì ohodnocený graf, pak se Dijkstrùv algoritmus zastaví a vydá $\forall v : D(v) = d(s, v)$ (tedy správné hodnoty). + +\proof Následující posloupností lemmat.\qed + +\s{Lemma 1:} Pokud $v_0,\dots,v_k$ je nejkrat¹í $v_0v_k$-cesta, pak $v_0,\dots,v_{k-1}$ je nejkrat¹í $v_0v_{k-1}$-cesta. + +\proof +Pokud by tomu tak nebylo, mù¾eme $v_0,\dots,v_{k-1}$ vymìnit za~krat¹í cestu, a~tím +získat krat¹í $v_0v_k$-cestu. +\qed + +\s{Lemma 2:} Algoritmus se zastaví po $\leq n$ prùchodech cyklem. + +\proof +Zøejmé z~toho, ¾e ka¾dý vrchol uzavøeme nejvý¹e jednou. +\qed + +\s{Lemma 3:} Po zastavení jsou hotovy právì vrcholy dosa¾itelné z $s$. + +\proof +Viz minulá pøedná¹ka. +\qed + +\s{Lemma 4:} $D(v)$ uzavíraných vrcholù tvoøí neklesající posloupnost. + +\proof +V okam¾iku, kdy uzavíráme $v$ platí $\forall w \notin H : D(w) \geq D(v)$, pøípadnì pøepoèítáme $D(w)$ na $D(v) - l(v, w) \geq D(v)$. +\qed + +\s{Lemma 5:} Pokud $v \in H$, pak $D(v)$ se u¾ nezmìní. + +\proof +Indukcí podle bìhu algoritmu. +\qed + +\s{Lemma 6:} Pro $\forall v D(v)$ je délka nejkrat¹í $sv$-cesty, její¾ vnitøní vrcholy le¾í v¹echny v $H$. + +\proof +\itemize\ibull +\:po 1. prùchodu OK +\:uzavíráme-li dal¹í vrchol $v$: +\itemize\relax +\:a) $D(w)$ pro $w \in H$ +Podle Lemma 5 se $D(w)$ nemìní. Musíme nahlédnout, ¾e se opravdu zmìnit nemá. +\:b) $D(w)$ pro $w \notin H$ +$D(w) = min{D(v) + l(v, w)}$ +\endlist +\endlist +\qed + +Existuje pomalej¹í algoritmus pro grafy se zápornými hranami bez záporných cyklù. +\s{Bellman-Fordùv algoritmus} +\algo +\:$D(*) \leftarrow \infty, D(s) \leftarrow 0$ +\:Opakuji +\::Pro $\forall v \in V$ +\:::$prozkoumej(v)$ +\:::(koukne se, jestli nejde vylep¹it cestu¨ +\:::do sousedù $v$) +\:dokud se nìjaké $D(\dots)$ mìní +\endalgo + +\s{Lemma 1:} Pokud $D(v) < \infty$, pak existuje sled z $s$ do $v$ délky $D(v)$. +(speciálnì z toho plyne $\forall v D(v) \geq d(s,v)$) + +\s{Lemma 2:} $\forall v D(v)$ nikdy neroste. +\s{Lemma 3:} Po $k$ fázích je $\forall v D(v) \leq$ délka nejkrat¹ího $sv$-sledu o $\leq k$ hranách. +%ctvrta stranka +\proof +Indukcí\dots pro $k \geq 0$ OK +Indukèní krok: Dobìhla $k-1$ fáze, pou¹tíme $k$-tou + +\qed +\s{Vìta:} Pro graf bez záporných cyklù se Bellman-Fordùv algoritmus zastaví po nejvý¹e $m$ fázích a vydá $D(v) = d(s, v)$ pro v¹echna $v$. (zøejmé z lemmat) + +\s{Lemma 4:} Pokud v grafu existuje záporný cyklus dosa¾itelný z $s$, algoritmus se nezastaví. (Zajímavý test na to, zda graf obsahuje záporný cyklus.) + +Èasová slo¾itost Bellman-Fordova algoritmu : $O(n*m)$ + +\s{Floyd-Warshallùv algoritmus} +$G$ je graf se záporným ohodnocením hran, bez záporných cyklù +$D_{i,j}^k$ = délka nejkrat¹í cesty z $v_i$ do $v_j$ pøes $v_1 \dots v_k$ +%pozorovani +$D_{ij}^0 = l(v_i, v_j)$, $D_{ii}^0 = 0$ +$D_{ij}^n = d(v_i, v_j)$ - skuteèná vzdálenost v grafu +\algo +\:$D_{i,j} \rightarrow l(v_i, v_j), D_{i,i} \rightarrow 0 \forall i, j$ +\:for $k = 1$ to n +\::for $i = 1$ to n +\:::for $j = 1$ to n +\::::$D_{i,j} = min(D_{i,j}, D_{i,k} + D_{k,j})$ +\endalgo + +\s{Vìta:} Floyd-Warshallùv algoritmus spoèítá $D_{i,j} = d(v_i, v_j)$ v èase $O(n^3)$. + +\>Shrnutí: + +\s{$s \rightarrow *$} +Dijkstrùv algoritmus $O(n^2)$ +\dots s haldou $O((n+m)\log m)$ +\dots s regulární haldou $O(n + m*log n)$ +\dots s Fibbonaciho haldou $O(n*log n + m)$ +Bellman-Ford $O(n*m)$ + +\s{$* \rightarrow *$} +Floyd-Warshall $O(n^3)$ + +\bye diff --git a/6-dijkstra/Makefile b/6-dijkstra/Makefile new file mode 100644 index 0000000..31c4b79 --- /dev/null +++ b/6-dijkstra/Makefile @@ -0,0 +1,3 @@ +P=6-dijkstra + +include ../Makerules diff --git a/all/Makefile b/all/Makefile index c3b0fe3..9f596b5 100644 --- a/all/Makefile +++ b/all/Makefile @@ -1,5 +1,5 @@ P=ads -X:=$(shell for a in 1 2 5 7 8 9 ; do echo ../$$a-*/$$a-*.tex ; done) +X:=$(shell for a in 1 2 3 5 6 7 8 9 ; do echo ../$$a-*/$$a-*.tex ; done) %universe: all ChangeLog