]> mj.ucw.cz Git - ads2.git/commitdiff
Merge with git+ssh://git.ucw.cz/home/mj/GIT/ads2.git
authorMartin Mares <mj@ucw.cz>
Tue, 8 Jan 2008 14:57:03 +0000 (15:57 +0100)
committerMartin Mares <mj@ucw.cz>
Tue, 8 Jan 2008 14:57:03 +0000 (15:57 +0100)
27 files changed:
10-prevody/10-prevody.tex
11-np/11-np.tex [new file with mode: 0644]
11-np/3d.eps [new file with mode: 0644]
11-np/3d.svg [new file with mode: 0644]
11-np/Makefile [new file with mode: 0644]
11-np/and.eps [new file with mode: 0644]
11-np/and.svg [new file with mode: 0644]
11-np/klauzule.eps [new file with mode: 0644]
11-np/klauzule.svg [new file with mode: 0644]
11-np/kobvod.eps [new file with mode: 0644]
11-np/kobvod.svg [new file with mode: 0644]
11-np/not.eps [new file with mode: 0644]
11-np/not.svg [new file with mode: 0644]
11-np/p-np.eps [new file with mode: 0644]
11-np/p-np.svg [new file with mode: 0644]
12-apx/12-apx.tex
2-toky/2-toky.tex
4-goldberg/4-goldberg.tex
5-sortnet/5-sortnet.tex
6-kmp/6-kmp.tex
7-ac/7-ac.tex
8-fft/8-fft.tex
9-geom/9-geom.tex
9-geom/mistni.eps
9-geom/mistni.svg
Makefile
all/Makefile

index b4fc61b8b31685be18b35ea20c0616ed4b3db878..53abdb2afc20c127c13b72bb8e8d1e8fe42be662 100644 (file)
@@ -62,7 +62,7 @@ $$ \phi(x, y, \ldots) = (x \lor \lnot y \lor \ldots) \land (\ldots\lor\ldots\lor
 \s{Definice:} 3-SAT je takový SAT, kde ka¾dá klauzule obsahuje nejvý¹e tøi literály.
 
 \s{Pøevod 3-SAT na SAT:}
-Platí identita, 3-SAT splòuje vlastnosti SATu, proto 3-SAT = SAT (3-SAT je alespoò tak tì¾ký, jako SAT)
+Platí identita, 3-SAT splòuje vlastnosti SATu, proto 3-SAT = SAT (3-SAT je alespoò tak tì¾ký jako SAT)
 
 \s {Pøevod SAT na 3-SAT:}
 Musíme formuli pøevést tak, abychom neporu¹ili splnitelnost.
diff --git a/11-np/11-np.tex b/11-np/11-np.tex
new file mode 100644 (file)
index 0000000..346be51
--- /dev/null
@@ -0,0 +1,153 @@
+\input lecnotes.tex
+
+\prednaska{11}{NP-úplné problémy}{(zapsali F. Kaèmarik, R. Krivák, D. Remi¹)}
+
+Dosud jsme zkoumali problémy, které se nás ptali na to, jestli nìco existuje. Napøíklad: dostali jsme formuli a problém splnitelnosti se nás ptal, zda existuje ohodnocení promìnných takové, ¾e formule platí? Nebo v~pøípade nezávislých mno¾in jsme dostali graf a èíslo $k$ a ptali jsme se, jestli v~grafu existuje nezávislá mno¾ina, která je veliká alespoò $k$? Tyto otázky mìli spoleèné to, ¾e kdy¾ nám nìkdo zadal nìjaký objekt, pak jsme umìli efektivnì øíci, zda je to objekt, který hledáme. Napøíklad: pokud dostaneme ohodnocení promìnných logické formule, staèí jen dosadit a spoèítat, ¾e formule je $true$ nebo $false$. Zjistit, ¾e nìjaký objekt je ten, který hledáme, umíme efektivnì. Tì¾ké na tom je takový objekt najít. Co¾ vede k~definici obecných vyhledávacích problémù, kterým se øíká tøída problémù NP. Definujme si ji poøádnì, ale nejdøíve zaèneme tro¹ièku jednodu¹¹í tøídou.
+
+\s{Definice:} P je {\I tøída rozhodovacích problémù}, které jsou øe¹itelné v~polynomiálním èase. Jinak øeèeno, problém
+$L \in \rm{P}  \Leftrightarrow  \exists $ polynom $f$ a~$\exists$ algoritmus $A$ takový, ¾e $\forall x: L(x)=A(x)$ a $A(x)$ dobìhne v~èase $\leq f(x)$
+
+Tøída P odpovídá tomu, o èem jsme se shodli, ¾e umíme efektivnì øe¹it. Nadefinujme tedy tøídu NP:
+
+\s{Definice:} NP je {\I tøída rozhodovacích problémù} takových, ¾e $L \in \rm{NP}$ právì tehdy, kdy¾ $\exists $ problém
+$K\in\rm{P}$ a $\exists$  polynom  $g$ takový, ¾e pro
+$\forall x$ platí $L(x)=1  \Leftrightarrow  \exists $ nápovìda $ y: \vert y \vert \leq g(\vert x \vert)$ a souèasnì $K(x,y)=1$.
+
+\s{Pozorování:} Splnitelnost logických formulí je v~NP.
+
+Máme-li lineárnì velké nápovìdy, co¾ jsou ohodnocení promìnných zadané formule, odpovíme ano, formule je splnitelná,  pokud nám nìkdo mù¾e odpovìdìt na splòující ohodnocení. Tak¾e $K$ nám ovìøí, èi dosazením ohodnocení je formule splnìna a ptáme se tedy, èi existuje nápovìda taková, ¾e existuje ohodnocení takové, ¾e formule je splnìna. Splnitelnost logických formulí je urèitì v~tøídì NP.
+V¹imneme si, ¾e celá tøída P le¾í uvnitø NP. v~podstatì øíkáme, ¾e kdy¾ máme problém, který umíme øe¹it v~polynomiálním èase bez nápovìdy, tak to zvládneme v~polynomiálním èase i s~nápovìdou.
+
+Nasbírali jsme problémy, které jsou v~NP, ale nevíme, jestli jsou v~P. Dokonce by se dalo øíct, ¾e jsou to nejtì¾¹í problémy v~NP.
+Nadefinujme si:
+
+\s{Definice:} Problém $L$ je NP-tì¾ký právì tehdy, kdy¾ je pøevoditelný:
+$\forall M \in \rm{NP}: M~\rightarrow~L$.
+Také platí, ¾e pokud umíme øe¹it nìjaký NP problém v~polynomiálním èase, pak umíme vyøe¹it v~polynomiálním èase v¹e v~NP,
+pokud nìjaké takové~$\in~\rm{P} \Rightarrow \rm{P}=\rm{NP} $.
+
+My se budeme zabývat problémy, které jsou NP tì¾ké a samotné jsou v~NP. Takovým problémùm se øíká NP-úplné.
+
+\s{Definice:} Problém $L$ je NP úplný právì tehdy, kdy¾ $L$ je NP-tì¾ký a $L \in \rm{NP}$.
+
+NP-úplné problémy jsou ve své podstatì nejtì¾¹í problémy, které le¾í v~NP. Proto¾e le¾í v~NP platí, ¾e libovolný problém z NP umíme pøevést na nì. Kdybychom umìli pøevést nìjaký NP-úplný problém, který je øe¹itelný v~polynomiálním èase, pak v¹echno v~NP je øe¹itelné v~polynomiálním èase. Bohu¾el, to se neví. Otázka jestli $\rm{P}=\rm{NP}$ je asi nejznámìj¹í otevøený problém v~celé teoretické informatice.
+
+Uká¾eme si nìjaký NP-úplný problém. Velmi se nám bude hodit následující vìta:
+
+\s{Vìta (Cookova):} SAT je NP-úplný.
+
+\>Dùkaz je pøíli¹ technický, jenom ho pøibli¾nì naznaèíme pozdìji. Pøímím dùsledkem je, ¾e cokoli v~NP je pøevoditelné na SAT.
+Dá se dokázat vìtièka:
+
+\s{Vìtièka:} $L$ je NP-úplný a $L$ se dá pøevést na $M$ ($L \rightarrow M$), $M \in \rm{NP} \Rightarrow M$ je také NP-úplný.
+
+\proof
+Tuto vìtièku staèí dokázat pro NP tì¾kost, NP-úplnost plyne okam¾itì z toho, ¾e problémy jsou NP tì¾ké a le¾í v~NP, podle pøedpokladu.
+Víme ¾e $L$ se dá pøevést na $M$ a také z toho, ¾e $L$ je NP-úplný plyne, ¾e ka¾dý problém $Q$ z $NP$ se $Q$ dá pøevést na $L$. $Q$ se dá pøevést na $L$, $L$ se dá pøevést na $M$. Z toho plyne, ¾e $Q$ se dá pøevést na $M$. Staèí tedy slo¾it funkci $f(Q \rightarrow L)$ s~funkcí $g(L \rightarrow M)$. To urèitì také spoèteme v~polynomiálním èase. Tak nahlédneme, ¾e v¹echny problémy z $NP$ se dají pøevést na problém $M$.
+\qed
+
+\s{Dùsledek:} Cokoliv, na co jsme umìli pøevést SAT je také NP-úplné. Napøíklad nezávislá mno¾ina, v¹echny varianty SATu, klika v~grafu...
+
+\figure{p-np.eps}{Obrázek 11.1}{2.5cm}
+
+\s{Katalog NP-úplných problémù:}
+\itemize\ibull
+\:{\I logické:}
+SAT, 3-SAT, 3,3-SAT, obvodový SAT, SAT pro obecné formule
+\:{\I grafové:}
+Nezávislá mno¾ina, klika v~grafu, 3D párování, 3-barvení, Hamiltonova cesta/kru¾nice
+\:{\I èíselné:}
+problém batohu, loupe¾níci, $Ax=b$, celoèíselné lineární programování
+\endlist
+
+\h { Pøevoditelnost 3,3-SAT na 3D-párování }
+
+Kdy¾ chceme ukázat, ¾e na nìco se dá pøevést SAT, potøebujeme obvykle dvì vìci. Konstrukci, která bude simulovat promìnné, nìco co nabývá dvou stavù $true$/$false$ a nìco co bude reprezentovat klauzule a umí zaøídit, aby ka¾dá klauzule byla splnìna alespoò jednou promìnnou.
+Jenom pro pøipomenutí, máme mno¾inu klukù, dìvèat, zvíøátek a nìjaké trojice, kdo se s~kým snese a chceme vybrat trojice tak, aby se v~nich ka¾dý kluk, holka, zvíøátko vyskytovalo právì jednou.
+Najdeme si takovouto konfiguraci:
+
+\figure{3d.eps}{Obrázek 11.2}{4cm}
+
+\>4 zvíøátka, 2 kluci, 2 dívky a~takové 4 trojice, které oznaèíme $A, B, C, D$. Je¹tì pøedpokládáme, ¾e zvíøátka se mohou úèastnit nìjakých jiných trojic, ale tito ètyøi lidé se vyskytují pouze v~tìchto ètyøech trojicích a~nikde jinde.
+V¹imneme si, ¾e existují právì dvì mo¾nosti, jak tento obrázek spárovat. Abychom spárovali kluka $k_1$, tak si musíme vybrat $A$ nebo $B$. Kdy¾ si vybereme $A$, $k_1$ i $d_2$ u¾ jsou spárovaní tak¾e si nesmíme vybrat $B$ ani $D$. Pak jediná mo¾nost, jak spárovat $d_1$ a~$k_2$ je $C$. Jedna mo¾nost je tedy vybrat si $A$ a $C$ a jeliko¾ je obrázek symetrický, tak kdy¾ vybereme místo $A$ trojici $B$, tak dostaneme $B$ a~$D$. V¾dy si vybereme dvì protìj¹í trojice v~obrázku. Takovýto obrázek budeme pou¾ívat k~reprezentaci promìnných. Pro ka¾dou promìnnou si nakreslíme takový obrázek a~to, ¾e $A$ bude spárované s~$C$ bude odpovídat tomu, ¾e $x=1$
+a~spárování $B$ a~$D$ odpovídá $x=0$. Pokud jsme pou¾ili $A$ a~$C$, zvíøata se sudými èísly ,tj. $z_2$ a~$z_4$, horní a~dolní jsou nespárovaná a~pokud jsme pou¾ili $B$ a~$D$, zvíøátka $z_1$ a~$z_3$ zùstala nespárovaná. Pøes tyto nespárovaná zvíøátka mù¾eme pøedávat informaci, jestli promìnná $x$ má hodnotu $true$ nebo $false$ do dal¹ích èástí grafu.
+Zbývá vymyslet, jak reprezentovat klauzule. Klauzule budou vypadat jako trojice literálù:
+$\kappa = (x \lor y \lor \lnot r) $
+Potøebujeme zajistit, aby $x$ bylo nastavené na $1$ nebo $y$ bylo nastavené na $1$ nebo $r$ na $0$.
+
+\figure{klauzule.eps}{Obrázek 11.3}{4cm}
+
+\>Pro takovouto klauzuli si poøídíme dvojici kluk-dívka, kteøí budou figurovat ve tøech trojicích se tøemi rùznými zvíøátky, co¾ mají být volná zvíøátka z~obrázku pro pøíslu¹né promìnné. A~zaøídíme to tak, aby ka¾dé zvíøátko bylo pou¾ité maximálnì v~jedné takové trojici, co¾ jde proto, ¾e ka¾dý literál se vyskytuje maximálnì dvakrát a~pro ka¾dý literál máme dvì volná zvíøátka,
+z~èeho¾ plyne, ¾e zvíøátek je dost pro v¹echny klauzule. Pak nám ale urèitì zbude $2p-k$ zvíøátek, kde $p$ je poèet promìnných, tak pøidáme je¹tì $2p-k$ párù kluk-dìvèe, kteøí milují v¹echna zvíøátka a~ti vytvoøí zbývající páry. Pokud formule byla splnitelná, pak ze splòujícího ohodnocení mù¾eme vyrobit párování s~na¹í konstrukcí. Obrázek pro ka¾dou promìnnou spárujeme podle ohodnocení, tj. promìnná je $0$ nebo $1$ a~pro ka¾dou klauzuli si vybereme nìkterou z~promìnných, kterými je ta klauzule splnìna. Funguje to také ale i~opaènì. Kdy¾ nám nìkdo dá párovaní v~na¹í konstrukci, pak z nìho doká¾eme vyrobit splòující ohodnocení dané formule. Podíváme se, v~jakém stavu je promìnná a~to je v¹echno. Z~toho, ¾e jsou správnì spárované klauzule u¾ okam¾itì víme, ¾e jsou v¹echny splnìné. Zbývá ovìøit, ¾e na¹e redukce funguje v~polynomiálním èase. Pro ka¾dou klauzuli spotøebujeme konstantnì mnoho èasu, $2p-k$ je také polynomiálnì mnoho a~kdy¾ to seèteme, pak máme polynomiální èas vzhledem k~velikosti vstupní formule. Tím je pøevod hotový a~mù¾eme 3D-párování zaøadit mezi NP-úplné problémy.
+
+
+%RK
+
+
+\h{Náznak dùkazu Cookovy vety}
+
+Abychom mohli budovat teorii NP-úplnosti, tak potøebujeme alespoò jeden problém, o kterém doká¾eme, ¾e je NP-úplný z definice. Cookova vìta øíká o NP-úplnosti SAT-u, ale nám se to hodí dokázat o tro¹ku jiném problému -- {\I obvodovém SAT-u}.
+
+\>{\I Obvodový SAT} je splnitelnost, která nepracuje s~formulemi, ale s~boolovskými obvody. Ka¾dá formule se dá pøepsat do boolovského obvodu, který ji poèítá, tak ¾e dává smysl zavést splnitelnost pro obvody. Na¹e obvody budou mít nìjaké vstupy a~jenom jeden výstup. Budeme se ptát, jestli se vstupy tohoto obvodu dají nastavit tak, abychom na výstupu dostali $1$.
+
+\>Nejprve doká¾eme NP-úplnost {\I obvodového SAT-u} a~pak uká¾eme, ¾e se dá pøevést na formulový SAT. Tím bude dùkaz Cookovy vìty hotový.
+
+\s{Vìta:} Obvodový SAT je NP-úplný.
+
+\proof
+Náznak. Na základì zku¹eností principu poèítaèù intuitivnì chápeme, ¾e pokud nìjaký problém $L \in \rm{P}$, pak existuje polynomiálnì velký boolovský obvod, který poèítá $L$.
+
+\>Dovolíme si drobnou úpravu v~definici tøídy NP. Budeme chtít, aby nápovìda byla pravì tak velká jako velikost vstupu (tedy: $\vert y \vert = g(\vert x \vert)$). Proè je taková úprava BÚNO? Jistì si dovedete pøedstavit, ¾e pùvodní nápovìdu doplníme
+na po¾adovanou délku nìjakými \uv{mezerami}, které program ignoruje. (Tedy upravíme program tak, aby mu nevadilo, ¾e dostane na konci nápovìdy nìjak kódované mezery.)
+
+\>Máme nìjaký problém $L$ z~NP a~chceme dokázat, ¾e $L$ se dá pøevést na obvodový SAT. Kdy¾ nám nìkdo pøedlo¾í nìjaký vstup $x$ (chápeme jako vektor $(x_1, x_2, \dots)$), spoèítáme velikost nápovìdy $g(\vert x\vert)$. Víme, ¾e kontrolní algoritmus $K$ (který kontroluje, zda nápovìda je správnì) je v~P. Vyu¾ijeme intuice v~obvodech, abychom získali obvod, který pro konkrétní velikost vstupu $x$ poèítá to, co kontrolní algoritmus $K$. Na vstupu tohoto obvodu bude $x$ (vstup problému $L$) a~nápovìda $y$.
+Na výstupu nám øekne, jestli je to nápovìda, která k~tomu patøí nebo nepatøí. Velikost vstupu tohoto obvodu bude tedy $\vert x\vert + g(\vert x\vert)$, co¾ je polynom.
+
+\figure{kobvod.eps}{Obrázek 11.4 - Obvod pro kontrolní algoritmus $K$}{2.3cm}
+
+\>V tomto obvodu zafixujeme vstup $x$ (na místa vstupu dosadíme konkrétní hodnoty z $x$). Tím získáme obvod, jeho¾ vstup je jen $y$ a~ptáme se, zda za $y$ mù¾eme dosadit nìjaké hodnoty tak, aby na výstupu byla 1. Jinými slovy, ptáme se, zda je tento obvod splnitelný.
+
+\>Pro libovolný problém z~NP tak doká¾eme vyrobit funkci, která pro ka¾dý vstup $x$ v~polynomiálním èase vytvoøí obvod, který je splnitelný pravì tehdy, kdy¾ odpovìï tohoto problému na vstup $x$ má být jedna. Tedy libovolný problém z~NP se dá
+v~polnomiálním èase pøevést na obvodový SAT.
+\qed
+
+\s{Lemma:} Obvodový SAT se dá pøevést na 3-SAT.
+
+\proof
+Budeme postupnì budovat formuli v~konjunktivní normální formì. Pro ka¾dé hradlo v~obvodu zavedeme novou promìnnou popisující jeho výstup. Pøidáme klauzule, které nám kontrolují, ¾e toto hradlo máme ohodnocené konzistentnì. Ka¾dý boolovský obvod se dá pøevést na ekvivalentní obvod, v~kterém se vyskytují jen hradla {\sc and} a {\sc not}, tak ¾e staèí najít klauzule odpovídající tìmto hradlùm.
+
+\>{\I Pøevod hradla \sc not}: na vstupu hradla budeme mít nìjakou promìnnou $x$ (která pøi¹la buïto pøímo ze~vstupu toho celého obvodu nebo je to promìnná, která vznikla na výstupu nìjakého hradla) a na výstupu promìnnou $y$. Pøidáme klauzule, které nám zaruèí, ¾e jedna promìnná bude negací té druhé:
+$$\matrix{ (x \lor y), \cr
+  (\neg{x} \lor \neg{y}). \cr }$$
+\figure{not.eps}{Obrázek 11.5 - Hradlo \sc not}{0.8cm}
+
+\>{\I Pøevod hradla \sc and}: Hradlo má vstupy $x, y$ a~výstup $z$. Potøebujeme pøidat klauzule, které nám popisují, jak se má hradlo {\sc and} chovat. Tyto vztahy pøepí¹eme do~konjunktivní normální formy:
+$$
+\left. \matrix{
+  x\ \&\ y \Rightarrow z \cr
+  \neg{x} \Rightarrow \neg{z} \cr
+  \neg{y} \Rightarrow \neg{z} \cr
+}
+\ \quad
+ \right\}
+\quad
+\matrix{
+ (z \lor \neg{x} \lor \neg{y}) \cr
+ (\neg{z} \lor x)              \cr
+ (\neg{z} \lor y)              \cr
+ } $$
+\figure{and.eps}{Obrázek 11.6 - Hradlo \sc and}{0.9cm}
+
+\>Kdy¾ chceme pøevádìt obvodový SAT na 3-SAT, tak ten obvod nejdøíve pøelo¾íme na obvod, v~kterém jsou jen hradla {\sc and} a~{\sc not} a~pak hradla tohoto obvodu pøelo¾íme na klauzule. Formule vzniklá z~takovýchto klauzulí je splnitelná pravì tehdy, kdy¾ je splnitelný daný obvod.
+\qed
+
+\s{Poznámka:}
+Kdy¾ jsme zavádìli SAT, omezili jsme se jen na formule, které jsou
+v~konjunktivní normální formì (CNF). Teï u¾ víme, ¾e splnitelnost obecné
+boolovské formule doká¾eme pøevést na obvodovou splnitelnost a tu pak
+pøevést na 3-SAT. SAT bychom si tedy mohli definovat i jako problém
+splnitelnosti obecných boolovských formulí.
+
+
+\bye
+
diff --git a/11-np/3d.eps b/11-np/3d.eps
new file mode 100644 (file)
index 0000000..755fbcc
--- /dev/null
@@ -0,0 +1,641 @@
+%!PS-Adobe-3.0 EPSF-3.0
+%%Creator: 0.45.1
+%%Pages: 1
+%%Orientation: Portrait
+%%BoundingBox: 1 1 234 233
+%%HiResBoundingBox: 1.5714774 1.6 233.87693 232.675
+%%EndComments
+%%Page: 1 1
+0 842 translate
+0.8 -0.8 scale
+0 0 0 setrgbcolor
+[] 0 setdash
+1 setlinewidth
+0 setlinejoin
+0 setlinecap
+gsave [1 0 0 1 0 0] concat
+gsave
+0 0 0 setrgbcolor
+newpath
+147.56738 996.36218 moveto
+142.78136 988.61727 lineto
+137.5 980.14292 lineto
+147.03962 980.12535 lineto
+157.5 980.0699 lineto
+152.7464 987.83238 lineto
+147.56738 996.36218 lineto
+closepath
+fill
+grestore
+gsave
+0 0 0 setrgbcolor
+newpath
+147.43262 812.0699 moveto
+152.21864 819.81481 lineto
+157.5 828.28916 lineto
+147.96038 828.30673 lineto
+137.5 828.36218 lineto
+142.2536 820.5997 lineto
+147.43262 812.0699 lineto
+closepath
+fill
+grestore
+gsave
+0 0 0 setrgbcolor
+newpath
+238.29228 904.7948 moveto
+230.54737 909.58082 lineto
+222.07302 914.86218 lineto
+222.05545 905.32256 lineto
+222 894.86218 lineto
+229.76248 899.61578 lineto
+238.29228 904.7948 lineto
+closepath
+fill
+grestore
+gsave
+0 0 0 setrgbcolor
+newpath
+56 904.92956 moveto
+63.74491 900.14354 lineto
+72.21926 894.86218 lineto
+72.23683 904.4018 lineto
+72.29228 914.86218 lineto
+64.5298 910.10858 lineto
+56 904.92956 lineto
+closepath
+fill
+grestore
+0 0 0 setrgbcolor
+[] 0 setdash
+1 setlinewidth
+0 setlinejoin
+0 setlinecap
+newpath
+87.5 827.86218 moveto
+207.5 827.86218 lineto
+stroke
+0 0 0 setrgbcolor
+[] 0 setdash
+1 setlinewidth
+0 setlinejoin
+0 setlinecap
+newpath
+222.5 964.86218 moveto
+222.5 844.86218 lineto
+stroke
+0 0 0 setrgbcolor
+[] 0 setdash
+1 setlinewidth
+0 setlinejoin
+0 setlinecap
+newpath
+87.5 980.5699 moveto
+207.5 980.5699 lineto
+stroke
+0 0 0 setrgbcolor
+[] 0 setdash
+1 setlinewidth
+0 setlinejoin
+0 setlinecap
+newpath
+71.79228 844.86218 moveto
+71.79228 964.86218 lineto
+stroke
+gsave [1.0140005 0 0 1 -39.553644 -91.24453] concat
+gsave
+0 0 0 setrgbcolor
+newpath
+108.04102 913.93093 moveto
+109.66699 913.93093 lineto
+109.66699 922.00807 lineto
+114.49219 917.76296 lineto
+116.55762 917.76296 lineto
+111.33691 922.36843 lineto
+116.77734 927.60671 lineto
+114.66797 927.60671 lineto
+109.66699 922.79909 lineto
+109.66699 927.60671 lineto
+108.04102 927.60671 lineto
+108.04102 913.93093 lineto
+closepath
+fill
+grestore
+grestore
+gsave
+0 0 0 setrgbcolor
+newpath
+81.619293 837.61511 moveto
+83.069489 837.61511 lineto
+83.069489 832.60974 lineto
+81.491852 832.92615 lineto
+81.491852 832.11755 lineto
+83.060699 831.80115 lineto
+83.948395 831.80115 lineto
+83.948395 837.61511 lineto
+85.39859 837.61511 lineto
+85.39859 838.36218 lineto
+81.619293 838.36218 lineto
+81.619293 837.61511 lineto
+closepath
+fill
+grestore
+gsave [1.0140005 0 0 1 105.09694 -91.24453] concat
+gsave
+0 0 0 setrgbcolor
+newpath
+114.58008 919.2571 moveto
+114.58008 913.93093 lineto
+116.19727 913.93093 lineto
+116.19727 927.60671 lineto
+114.58008 927.60671 lineto
+114.58008 926.13014 lineto
+114.24023 926.71608 113.81103 927.15114 113.29248 927.43532 curveto
+112.77392 927.7195 112.15136 927.86159 111.4248 927.86159 curveto
+110.23535 927.86159 109.26709 927.38698 108.52002 926.43776 curveto
+107.77295 925.48855 107.39941 924.2405 107.39941 922.69362 curveto
+107.39941 921.14675 107.77295 919.89871 108.52002 918.94948 curveto
+109.26709 918.00027 110.23535 917.52566 111.4248 917.52565 curveto
+112.15136 917.52566 112.77392 917.66775 113.29248 917.95192 curveto
+113.81103 918.23611 114.24023 918.67117 114.58008 919.2571 curveto
+114.58008 919.2571 lineto
+closepath
+109.06934 922.69362 moveto
+109.06933 923.88308 109.31396 924.81618 109.80322 925.49294 curveto
+110.29248 926.1697 110.96484 926.50808 111.82031 926.50807 curveto
+112.67577 926.50808 113.3496 926.1697 113.8418 925.49294 curveto
+114.33398 924.81618 114.58007 923.88308 114.58008 922.69362 curveto
+114.58007 921.50417 114.33398 920.57107 113.8418 919.8943 curveto
+113.3496 919.21756 112.67577 918.87918 111.82031 918.87917 curveto
+110.96484 918.87918 110.29248 919.21756 109.80322 919.8943 curveto
+109.31396 920.57107 109.06933 921.50417 109.06934 922.69362 curveto
+109.06934 922.69362 lineto
+closepath
+fill
+grestore
+grestore
+gsave
+0 0 0 setrgbcolor
+newpath
+226.26987 837.61511 moveto
+227.72006 837.61511 lineto
+227.72006 832.60974 lineto
+226.14243 832.92615 lineto
+226.14243 832.11755 lineto
+227.71127 831.80115 lineto
+228.59897 831.80115 lineto
+228.59897 837.61511 lineto
+230.04916 837.61511 lineto
+230.04916 838.36218 lineto
+226.26987 838.36218 lineto
+226.26987 837.61511 lineto
+closepath
+fill
+grestore
+gsave [1.0140005 0 0 1 112.44636 58.755473] concat
+gsave
+0 0 0 setrgbcolor
+newpath
+108.04102 913.93093 moveto
+109.66699 913.93093 lineto
+109.66699 922.00807 lineto
+114.49219 917.76296 lineto
+116.55762 917.76296 lineto
+111.33691 922.36843 lineto
+116.77734 927.60671 lineto
+114.66797 927.60671 lineto
+109.66699 922.79909 lineto
+109.66699 927.60671 lineto
+108.04102 927.60671 lineto
+108.04102 913.93093 lineto
+closepath
+fill
+grestore
+grestore
+gsave
+0 0 0 setrgbcolor
+newpath
+234.23013 987.61511 moveto
+237.32828 987.61511 lineto
+237.32828 988.36218 lineto
+233.16226 988.36218 lineto
+233.16226 987.61511 lineto
+233.49918 987.26648 233.9584 986.79846 234.53995 986.21106 curveto
+235.12149 985.62366 235.48697 985.245 235.63638 985.07507 curveto
+235.92056 984.75574 236.11905 984.48548 236.23184 984.26428 curveto
+236.34463 984.0431 236.40103 983.82557 236.40103 983.61169 curveto
+236.40103 983.26307 236.27871 982.97889 236.03409 982.75916 curveto
+235.78946 982.53943 235.47085 982.42957 235.07828 982.42957 curveto
+234.79995 982.42957 234.50625 982.47791 234.19717 982.57458 curveto
+233.88809 982.67127 233.55777 982.81775 233.20621 983.01404 curveto
+233.20621 982.11755 lineto
+233.56363 981.97401 233.89761 981.86561 234.20816 981.79236 curveto
+234.51871 981.71912 234.80288 981.6825 235.0607 981.6825 curveto
+235.74038 981.6825 236.28238 981.85242 236.68668 982.19226 curveto
+237.09097 982.53211 237.29312 982.98621 237.29312 983.55457 curveto
+237.29312 983.8241 237.24258 984.07972 237.14151 984.32141 curveto
+237.04043 984.56311 236.85659 984.84803 236.59 985.17615 curveto
+236.51675 985.26111 236.28384 985.50647 235.89127 985.91223 curveto
+235.49868 986.318 234.94497 986.88562 234.23013 987.61511 curveto
+234.23013 987.61511 lineto
+closepath
+fill
+grestore
+gsave [1.0140005 0 0 1 -44.90306 58.755473] concat
+gsave
+0 0 0 setrgbcolor
+newpath
+114.58008 919.2571 moveto
+114.58008 913.93093 lineto
+116.19727 913.93093 lineto
+116.19727 927.60671 lineto
+114.58008 927.60671 lineto
+114.58008 926.13014 lineto
+114.24023 926.71608 113.81103 927.15114 113.29248 927.43532 curveto
+112.77392 927.7195 112.15136 927.86159 111.4248 927.86159 curveto
+110.23535 927.86159 109.26709 927.38698 108.52002 926.43776 curveto
+107.77295 925.48855 107.39941 924.2405 107.39941 922.69362 curveto
+107.39941 921.14675 107.77295 919.89871 108.52002 918.94948 curveto
+109.26709 918.00027 110.23535 917.52566 111.4248 917.52565 curveto
+112.15136 917.52566 112.77392 917.66775 113.29248 917.95192 curveto
+113.81103 918.23611 114.24023 918.67117 114.58008 919.2571 curveto
+114.58008 919.2571 lineto
+closepath
+109.06934 922.69362 moveto
+109.06933 923.88308 109.31396 924.81618 109.80322 925.49294 curveto
+110.29248 926.1697 110.96484 926.50808 111.82031 926.50807 curveto
+112.67577 926.50808 113.3496 926.1697 113.8418 925.49294 curveto
+114.33398 924.81618 114.58007 923.88308 114.58008 922.69362 curveto
+114.58007 921.50417 114.33398 920.57107 113.8418 919.8943 curveto
+113.3496 919.21756 112.67577 918.87918 111.82031 918.87917 curveto
+110.96484 918.87918 110.29248 919.21756 109.80322 919.8943 curveto
+109.31396 920.57107 109.06933 921.50417 109.06934 922.69362 curveto
+109.06934 922.69362 lineto
+closepath
+fill
+grestore
+grestore
+gsave
+0 0 0 setrgbcolor
+newpath
+76.880722 987.61511 moveto
+79.978867 987.61511 lineto
+79.978867 988.36218 lineto
+75.812851 988.36218 lineto
+75.812851 987.61511 lineto
+76.149764 987.26648 76.608992 986.79846 77.190536 986.21106 curveto
+77.772077 985.62366 78.137555 985.245 78.286972 985.07507 curveto
+78.571148 984.75574 78.769634 984.48548 78.882431 984.26428 curveto
+78.99522 984.0431 79.051617 983.82557 79.05162 983.61169 curveto
+79.051617 983.26307 78.929302 982.97889 78.684677 982.75916 curveto
+78.440045 982.53943 78.121442 982.42957 77.728867 982.42957 curveto
+77.450544 982.42957 77.156843 982.47791 76.847763 982.57458 curveto
+76.53868 982.67127 76.208358 982.81775 75.856796 983.01404 curveto
+75.856796 982.11755 lineto
+76.214217 981.97401 76.548201 981.86561 76.858749 981.79236 curveto
+77.169294 981.71912 77.453474 981.6825 77.711288 981.6825 curveto
+78.390973 981.6825 78.932964 981.85242 79.337265 982.19226 curveto
+79.741557 982.53211 79.943706 982.98621 79.94371 983.55457 curveto
+79.943706 983.8241 79.893168 984.07972 79.792099 984.32141 curveto
+79.69102 984.56311 79.507183 984.84803 79.240585 985.17615 curveto
+79.167339 985.26111 78.934429 985.50647 78.541855 985.91223 curveto
+78.149274 986.318 77.595563 986.88562 76.880722 987.61511 curveto
+76.880722 987.61511 lineto
+closepath
+fill
+grestore
+0 0 0 setrgbcolor
+[] 0 setdash
+1 setlinewidth
+0 setlinejoin
+0 setlinecap
+newpath
+222.5 904.86218 moveto
+272.5 904.86218 lineto
+stroke
+0 0 0 setrgbcolor
+[] 0 setdash
+1 setlinewidth
+0 setlinejoin
+0 setlinecap
+newpath
+21.5 904.86218 moveto
+71.5 904.86218 lineto
+stroke
+0 0 0 setrgbcolor
+[] 0 setdash
+1 setlinewidth
+0 setlinejoin
+0 setlinecap
+newpath
+147.5 777.86218 moveto
+147.5 827.86218 lineto
+stroke
+0 0 0 setrgbcolor
+[] 0 setdash
+1 setlinewidth
+0 setlinejoin
+0 setlinecap
+newpath
+147.5 980.86218 moveto
+147.5 1030.8622 lineto
+stroke
+gsave [1.0140005 0 0 1 167.28409 -17.37197] concat
+gsave
+0 0 0 setrgbcolor
+newpath
+107.39941 917.76296 moveto
+115.08105 917.76296 lineto
+115.08105 919.23952 lineto
+108.99902 926.31472 lineto
+115.08105 926.31472 lineto
+115.08105 927.60671 lineto
+107.17969 927.60671 lineto
+107.17969 926.13014 lineto
+113.26172 919.05495 lineto
+107.39941 919.05495 lineto
+107.39941 917.76296 lineto
+closepath
+fill
+grestore
+grestore
+gsave
+0 0 0 setrgbcolor
+newpath
+290.99265 908.69714 moveto
+291.41745 908.78797 291.74923 908.97693 291.98801 909.26404 curveto
+292.22677 909.55115 292.34616 909.90564 292.34616 910.32751 curveto
+292.34616 910.97498 292.1235 911.47595 291.67819 911.83044 curveto
+291.23288 912.18494 290.60006 912.36218 289.77975 912.36218 curveto
+289.50436 912.36218 289.22091 912.33508 288.92941 912.28088 curveto
+288.63791 912.22668 288.33688 912.14539 288.02634 912.03699 curveto
+288.02634 911.18005 lineto
+288.27243 911.32361 288.54196 911.43201 288.83493 911.50525 curveto
+289.1279 911.57849 289.43405 911.61511 289.75339 911.61511 curveto
+290.31003 911.61511 290.7341 911.50525 291.0256 911.28552 curveto
+291.3171 911.0658 291.46286 910.74646 291.46286 910.32751 curveto
+291.46286 909.9408 291.32736 909.63831 291.05637 909.42004 curveto
+290.78537 909.20179 290.40817 909.09265 289.92477 909.09265 curveto
+289.16013 909.09265 lineto
+289.16013 908.36316 lineto
+289.95993 908.36316 lineto
+290.39645 908.36316 290.73043 908.276 290.96188 908.10168 curveto
+291.19333 907.92737 291.30905 907.67615 291.30905 907.34802 curveto
+291.30905 907.01111 291.18966 906.75257 290.9509 906.57239 curveto
+290.71212 906.39222 290.37008 906.30213 289.92477 906.30212 curveto
+289.68161 906.30213 289.42087 906.3285 289.14255 906.38123 curveto
+288.86423 906.43397 288.55807 906.516 288.22409 906.62732 curveto
+288.22409 905.8363 lineto
+288.561 905.74256 288.87668 905.67225 289.17111 905.62537 curveto
+289.46554 905.5785 289.74313 905.55506 290.00388 905.55505 curveto
+290.6777 905.55506 291.2109 905.70814 291.60349 906.01428 curveto
+291.99606 906.32044 292.19235 906.73426 292.19235 907.25574 curveto
+292.19235 907.61902 292.08834 907.92591 291.88034 908.17639 curveto
+291.67233 908.42688 291.37643 908.60047 290.99265 908.69714 curveto
+290.99265 908.69714 lineto
+closepath
+fill
+grestore
+gsave [1.0140005 0 0 1 32.28409 120.75547] concat
+gsave
+0 0 0 setrgbcolor
+newpath
+107.39941 917.76296 moveto
+115.08105 917.76296 lineto
+115.08105 919.23952 lineto
+108.99902 926.31472 lineto
+115.08105 926.31472 lineto
+115.08105 927.60671 lineto
+107.17969 927.60671 lineto
+107.17969 926.13014 lineto
+113.26172 919.05495 lineto
+107.39941 919.05495 lineto
+107.39941 917.76296 lineto
+closepath
+fill
+grestore
+grestore
+gsave
+0 0 0 setrgbcolor
+newpath
+155.74216 1044.5746 moveto
+153.50095 1048.077 lineto
+155.74216 1048.077 lineto
+155.74216 1044.5746 lineto
+closepath
+155.50925 1043.8011 moveto
+156.62546 1043.8011 lineto
+156.62546 1048.077 lineto
+157.56149 1048.077 lineto
+157.56149 1048.8153 lineto
+156.62546 1048.8153 lineto
+156.62546 1050.3622 lineto
+155.74216 1050.3622 lineto
+155.74216 1048.8153 lineto
+152.78024 1048.8153 lineto
+152.78024 1047.9584 lineto
+155.50925 1043.8011 lineto
+closepath
+fill
+grestore
+gsave [1.0140005 0 0 1 -106.71591 -17.24453] concat
+gsave
+0 0 0 setrgbcolor
+newpath
+107.39941 917.76296 moveto
+115.08105 917.76296 lineto
+115.08105 919.23952 lineto
+108.99902 926.31472 lineto
+115.08105 926.31472 lineto
+115.08105 927.60671 lineto
+107.17969 927.60671 lineto
+107.17969 926.13014 lineto
+113.26172 919.05495 lineto
+107.39941 919.05495 lineto
+107.39941 917.76296 lineto
+closepath
+fill
+grestore
+grestore
+gsave
+0 0 0 setrgbcolor
+newpath
+14.457024 911.61511 moveto
+15.907219 911.61511 lineto
+15.907219 906.60974 lineto
+14.329582 906.92615 lineto
+14.329582 906.11755 lineto
+15.89843 905.80115 lineto
+16.786125 905.80115 lineto
+16.786125 911.61511 lineto
+18.23632 911.61511 lineto
+18.23632 912.36218 lineto
+14.457024 912.36218 lineto
+14.457024 911.61511 lineto
+closepath
+fill
+grestore
+gsave [1.0140005 0 0 1 32.28409 -156.24453] concat
+gsave
+0 0 0 setrgbcolor
+newpath
+107.39941 917.76296 moveto
+115.08105 917.76296 lineto
+115.08105 919.23952 lineto
+108.99902 926.31472 lineto
+115.08105 926.31472 lineto
+115.08105 927.60671 lineto
+107.17969 927.60671 lineto
+107.17969 926.13014 lineto
+113.26172 919.05495 lineto
+107.39941 919.05495 lineto
+107.39941 917.76296 lineto
+closepath
+fill
+grestore
+grestore
+gsave
+0 0 0 setrgbcolor
+newpath
+154.06784 772.61511 moveto
+157.16599 772.61511 lineto
+157.16599 773.36218 lineto
+152.99997 773.36218 lineto
+152.99997 772.61511 lineto
+153.33688 772.26648 153.79611 771.79846 154.37766 771.21106 curveto
+154.9592 770.62366 155.32467 770.245 155.47409 770.07507 curveto
+155.75827 769.75574 155.95675 769.48548 156.06955 769.26428 curveto
+156.18234 769.0431 156.23874 768.82557 156.23874 768.61169 curveto
+156.23874 768.26307 156.11642 767.97889 155.8718 767.75916 curveto
+155.62716 767.53943 155.30856 767.42957 154.91599 767.42957 curveto
+154.63766 767.42957 154.34396 767.47791 154.03488 767.57458 curveto
+153.7258 767.67127 153.39548 767.81775 153.04391 768.01404 curveto
+153.04391 767.11755 lineto
+153.40134 766.97401 153.73532 766.86561 154.04587 766.79236 curveto
+154.35641 766.71912 154.64059 766.6825 154.89841 766.6825 curveto
+155.57809 766.6825 156.12008 766.85242 156.52438 767.19226 curveto
+156.92868 767.53211 157.13082 767.98621 157.13083 768.55457 curveto
+157.13082 768.8241 157.08029 769.07972 156.97922 769.32141 curveto
+156.87814 769.56311 156.6943 769.84803 156.4277 770.17615 curveto
+156.35446 770.26111 156.12155 770.50647 155.72897 770.91223 curveto
+155.33639 771.318 154.78268 771.88562 154.06784 772.61511 curveto
+154.06784 772.61511 lineto
+closepath
+fill
+grestore
+gsave [1.0140005 0 0 1 33.09371 -82.24452] concat
+gsave
+0 0 0 setrgbcolor
+newpath
+109.94824 921.34011 moveto
+109.94824 926.14772 lineto
+112.7959 926.14772 lineto
+113.75097 926.14772 114.45849 925.94997 114.91846 925.55446 curveto
+115.37841 925.15896 115.60839 924.55398 115.6084 923.73952 curveto
+115.60839 922.91921 115.37841 922.31423 114.91846 921.92458 curveto
+114.45849 921.53494 113.75097 921.34011 112.7959 921.34011 curveto
+109.94824 921.34011 lineto
+closepath
+109.94824 915.94362 moveto
+109.94824 919.8987 lineto
+112.57617 919.8987 lineto
+113.44335 919.89871 114.08935 919.73611 114.51416 919.41091 curveto
+114.93896 919.08572 115.15136 918.58914 115.15137 917.92116 curveto
+115.15136 917.25906 114.93896 916.76394 114.51416 916.43581 curveto
+114.08935 916.1077 113.44335 915.94363 112.57617 915.94362 curveto
+109.94824 915.94362 lineto
+closepath
+108.17285 914.48464 moveto
+112.70801 914.48464 lineto
+114.06152 914.48465 115.10448 914.7659 115.83691 915.32839 curveto
+116.56933 915.8909 116.93554 916.6907 116.93555 917.7278 curveto
+116.93554 918.53054 116.74804 919.16922 116.37305 919.64382 curveto
+115.99804 920.11843 115.44726 920.41433 114.7207 920.53151 curveto
+115.59374 920.71902 116.27196 921.11013 116.75537 921.70485 curveto
+117.23876 922.29958 117.48046 923.04226 117.48047 923.93288 curveto
+117.48046 925.10476 117.08202 926.01003 116.28516 926.6487 curveto
+115.48827 927.28737 114.35448 927.60671 112.88379 927.60671 curveto
+108.17285 927.60671 lineto
+108.17285 914.48464 lineto
+closepath
+fill
+grestore
+grestore
+gsave [1.0140005 0 0 1 97.07912 -16.19228] concat
+gsave
+0 0 0 setrgbcolor
+newpath
+117.99902 915.49538 moveto
+117.99902 917.36745 lineto
+117.40136 916.81082 116.76415 916.3948 116.0874 916.1194 curveto
+115.41064 915.84402 114.6914 915.70633 113.92969 915.70632 curveto
+112.42968 915.70633 111.28125 916.16482 110.48438 917.0818 curveto
+109.6875 917.99881 109.28906 919.32449 109.28906 921.05886 curveto
+109.28906 922.78738 109.6875 924.11013 110.48438 925.02712 curveto
+111.28125 925.94411 112.42968 926.40261 113.92969 926.40261 curveto
+114.6914 926.40261 115.41064 926.26491 116.0874 925.98952 curveto
+116.76415 925.71413 117.40136 925.29812 117.99902 924.74147 curveto
+117.99902 926.59597 lineto
+117.37792 927.01784 116.7202 927.33425 116.02588 927.54518 curveto
+115.33153 927.75612 114.59765 927.86159 113.82422 927.86159 curveto
+111.83789 927.86159 110.27343 927.25368 109.13086 926.03786 curveto
+107.98828 924.82204 107.41699 923.16238 107.41699 921.05886 curveto
+107.41699 918.94949 107.98828 917.28689 109.13086 916.07106 curveto
+110.27343 914.85526 111.83789 914.24735 113.82422 914.24733 curveto
+114.60937 914.24735 115.34911 914.35135 116.04346 914.55934 curveto
+116.73778 914.76736 117.38964 915.07938 117.99902 915.49538 curveto
+117.99902 915.49538 lineto
+closepath
+fill
+grestore
+grestore
+gsave [1.0140005 0 0 1 32.22032 47.755475] concat
+gsave
+0 0 0 setrgbcolor
+newpath
+109.94824 915.94362 moveto
+109.94824 926.14772 lineto
+112.09277 926.14772 lineto
+113.90331 926.14772 115.229 925.73757 116.06982 924.91725 curveto
+116.91063 924.09695 117.33104 922.80202 117.33105 921.03249 curveto
+117.33104 919.27468 116.91063 917.98709 116.06982 917.1697 curveto
+115.229 916.35232 113.90331 915.94363 112.09277 915.94362 curveto
+109.94824 915.94362 lineto
+closepath
+108.17285 914.48464 moveto
+111.82031 914.48464 lineto
+114.36327 914.48465 116.22948 915.01346 117.41895 916.07106 curveto
+118.60839 917.12869 119.20311 918.7825 119.20313 921.03249 curveto
+119.20311 923.29421 118.60546 924.95534 117.41016 926.01589 curveto
+116.21483 927.07643 114.35155 927.60671 111.82031 927.60671 curveto
+108.17285 927.60671 lineto
+108.17285 914.48464 lineto
+closepath
+fill
+grestore
+grestore
+gsave [1.0140005 0 0 1 -32.038585 -16.18349] concat
+gsave
+0 0 0 setrgbcolor
+newpath
+112.55859 916.23366 moveto
+110.15039 922.76393 lineto
+114.97559 922.76393 lineto
+112.55859 916.23366 lineto
+closepath
+111.55664 914.48464 moveto
+113.56934 914.48464 lineto
+118.57031 927.60671 lineto
+116.72461 927.60671 lineto
+115.5293 924.2405 lineto
+109.61426 924.2405 lineto
+108.41895 927.60671 lineto
+106.54688 927.60671 lineto
+111.55664 914.48464 lineto
+closepath
+fill
+grestore
+grestore
+grestore
+showpage
+%%EOF
diff --git a/11-np/3d.svg b/11-np/3d.svg
new file mode 100644 (file)
index 0000000..6719637
--- /dev/null
@@ -0,0 +1,314 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://web.resource.org/cc/"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   version="1.0"
+   width="744.09448"
+   height="1052.3622"
+   id="svg2"
+   sodipodi:version="0.32"
+   inkscape:version="0.45.1"
+   sodipodi:docname="3d.svg"
+   inkscape:output_extension="org.inkscape.output.svg.inkscape"
+   sodipodi:docbase="C:\_pict">
+  <metadata
+     id="metadata82">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <sodipodi:namedview
+     inkscape:window-height="712"
+     inkscape:window-width="1024"
+     inkscape:pageshadow="2"
+     inkscape:pageopacity="0.0"
+     guidetolerance="10.0"
+     gridtolerance="10.0"
+     objecttolerance="10.0"
+     borderopacity="1.0"
+     bordercolor="#666666"
+     pagecolor="#ffffff"
+     id="base"
+     inkscape:zoom="2"
+     inkscape:cx="193.34723"
+     inkscape:cy="246.18109"
+     inkscape:window-x="-4"
+     inkscape:window-y="-4"
+     inkscape:current-layer="svg2" />
+  <defs
+     id="defs2232" />
+  <g
+     id="layer1">
+    <path
+       d="M 147.56738,996.36218 L 142.78136,988.61727 L 137.5,980.14292 L 147.03962,980.12535 L 157.5,980.0699 L 152.7464,987.83238 L 147.56738,996.36218 z "
+       style="fill:#000000"
+       id="path2233" />
+    <path
+       d="M 147.43262,812.0699 L 152.21864,819.81481 L 157.5,828.28916 L 147.96038,828.30673 L 137.5,828.36218 L 142.2536,820.5997 L 147.43262,812.0699 z "
+       style="fill:#000000"
+       id="path2247" />
+    <path
+       d="M 238.29228,904.7948 L 230.54737,909.58082 L 222.07302,914.86218 L 222.05545,905.32256 L 222,894.86218 L 229.76248,899.61578 L 238.29228,904.7948 z "
+       style="fill:#000000"
+       id="path2249" />
+    <path
+       d="M 56,904.92956 L 63.74491,900.14354 L 72.21926,894.86218 L 72.23683,904.4018 L 72.29228,914.86218 L 64.5298,910.10858 L 56,904.92956 z "
+       style="fill:#000000"
+       id="path2251" />
+    <path
+       d="M 87.5,827.86218 L 207.5,827.86218"
+       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       id="path2263" />
+    <path
+       d="M 222.5,964.86218 L 222.5,844.86218"
+       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       id="path2265" />
+    <path
+       d="M 87.5,980.5699 L 207.5,980.5699"
+       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       id="path2267" />
+    <path
+       d="M 71.79228,844.86218 L 71.79228,964.86218"
+       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       id="path2269" />
+    <flowRoot
+       transform="matrix(1.0140005,0,0,1,-39.553644,-91.24453)"
+       id="flowRoot2271"
+       xml:space="preserve"><flowRegion
+         id="flowRegion2273"><rect
+           width="20.799999"
+           height="22.6"
+           x="106.4"
+           y="913.36218"
+           id="rect2275" /></flowRegion><flowPara
+         style="font-size:18px"
+         id="flowPara2277">k</flowPara></flowRoot>    <text
+       x="80.503082"
+       y="838.36218"
+       style="font-size:6px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans"
+       id="text2279"
+       xml:space="preserve"><tspan
+         x="80.503082"
+         y="838.36218"
+         style="font-size:9px"
+         id="tspan2281">1</tspan></text>
+    <flowRoot
+       transform="matrix(1.0140005,0,0,1,105.09694,-91.24453)"
+       id="flowRoot2283"
+       xml:space="preserve"><flowRegion
+         id="flowRegion2285"><rect
+           width="20.799999"
+           height="22.6"
+           x="106.4"
+           y="913.36218"
+           id="rect2287" /></flowRegion><flowPara
+         style="font-size:18px"
+         id="flowPara2289">d</flowPara></flowRoot>    <text
+       x="225.15366"
+       y="838.36218"
+       style="font-size:6px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans"
+       id="text2291"
+       xml:space="preserve"><tspan
+         x="225.15366"
+         y="838.36218"
+         style="font-size:9px"
+         id="tspan2293">1</tspan></text>
+    <flowRoot
+       transform="matrix(1.0140005,0,0,1,112.44636,58.755473)"
+       id="flowRoot2295"
+       xml:space="preserve"><flowRegion
+         id="flowRegion2297"><rect
+           width="20.799999"
+           height="22.6"
+           x="106.4"
+           y="913.36218"
+           id="rect2299" /></flowRegion><flowPara
+         style="font-size:18px"
+         id="flowPara2301">k</flowPara></flowRoot>    <text
+       x="232.50308"
+       y="988.36218"
+       style="font-size:6px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans"
+       id="text2303"
+       xml:space="preserve"><tspan
+         x="232.50308"
+         y="988.36218"
+         style="font-size:9px"
+         id="tspan2305">2</tspan></text>
+    <flowRoot
+       transform="matrix(1.0140005,0,0,1,-44.90306,58.755473)"
+       id="flowRoot2307"
+       xml:space="preserve"><flowRegion
+         id="flowRegion2309"><rect
+           width="20.799999"
+           height="22.6"
+           x="106.4"
+           y="913.36218"
+           id="rect2311" /></flowRegion><flowPara
+         style="font-size:18px"
+         id="flowPara2313">d</flowPara></flowRoot>    <text
+       x="75.153671"
+       y="988.36218"
+       style="font-size:6px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans"
+       id="text2315"
+       xml:space="preserve"><tspan
+         x="75.153671"
+         y="988.36218"
+         style="font-size:9px"
+         id="tspan2317">2</tspan></text>
+    <path
+       d="M 222.5,904.86218 L 272.5,904.86218"
+       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       id="path2319" />
+    <path
+       d="M 21.5,904.86218 L 71.5,904.86218"
+       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       id="path2321" />
+    <path
+       d="M 147.5,777.86218 L 147.5,827.86218"
+       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       id="path2323" />
+    <path
+       d="M 147.5,980.86218 L 147.5,1030.8622"
+       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       id="path2325" />
+    <flowRoot
+       transform="matrix(1.0140005,0,0,1,167.28409,-17.37197)"
+       id="flowRoot2327"
+       xml:space="preserve"><flowRegion
+         id="flowRegion2329"><rect
+           width="20.799999"
+           height="22.6"
+           x="106.4"
+           y="913.36218"
+           id="rect2331" /></flowRegion><flowPara
+         style="font-size:18px"
+         id="flowPara2333">z</flowPara></flowRoot>    <text
+       x="287.34079"
+       y="912.23474"
+       style="font-size:6px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans"
+       id="text2335"
+       xml:space="preserve"><tspan
+         x="287.34079"
+         y="912.23474"
+         style="font-size:9px"
+         id="tspan2337">3</tspan></text>
+    <flowRoot
+       transform="matrix(1.0140005,0,0,1,32.28409,120.75547)"
+       id="flowRoot2339"
+       xml:space="preserve"><flowRegion
+         id="flowRegion2341"><rect
+           width="20.799999"
+           height="22.6"
+           x="106.4"
+           y="913.36218"
+           id="rect2343" /></flowRegion><flowPara
+         style="font-size:18px"
+         id="flowPara2345">z</flowPara></flowRoot>    <text
+       x="152.34079"
+       y="1050.3622"
+       style="font-size:6px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans"
+       id="text2347"
+       xml:space="preserve"><tspan
+         x="152.34079"
+         y="1050.3622"
+         style="font-size:9px"
+         id="tspan2349">4</tspan></text>
+    <flowRoot
+       transform="matrix(1.0140005,0,0,1,-106.71591,-17.24453)"
+       id="flowRoot2351"
+       xml:space="preserve"><flowRegion
+         id="flowRegion2353"><rect
+           width="20.799999"
+           height="22.6"
+           x="106.4"
+           y="913.36218"
+           id="rect2355" /></flowRegion><flowPara
+         style="font-size:18px"
+         id="flowPara2357">z</flowPara></flowRoot>    <text
+       x="13.340813"
+       y="912.36218"
+       style="font-size:6px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans"
+       id="text2359"
+       xml:space="preserve"><tspan
+         x="13.340813"
+         y="912.36218"
+         style="font-size:9px"
+         id="tspan2361">1</tspan></text>
+    <flowRoot
+       transform="matrix(1.0140005,0,0,1,32.28409,-156.24453)"
+       id="flowRoot2363"
+       xml:space="preserve"><flowRegion
+         id="flowRegion2365"><rect
+           width="20.799999"
+           height="22.6"
+           x="106.4"
+           y="913.36218"
+           id="rect2367" /></flowRegion><flowPara
+         style="font-size:18px"
+         id="flowPara2369">z</flowPara></flowRoot>    <text
+       x="152.34079"
+       y="773.36218"
+       style="font-size:6px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans"
+       id="text2371"
+       xml:space="preserve"><tspan
+         x="152.34079"
+         y="773.36218"
+         style="font-size:9px"
+         id="tspan2373">2</tspan></text>
+    <flowRoot
+       transform="matrix(1.0140005,0,0,1,33.09371,-82.24452)"
+       id="flowRoot2375"
+       xml:space="preserve"><flowRegion
+         id="flowRegion2377"><rect
+           width="20.799999"
+           height="22.6"
+           x="106.4"
+           y="913.36218"
+           id="rect2379" /></flowRegion><flowPara
+         style="font-size:18px"
+         id="flowPara2381">B</flowPara></flowRoot>    <flowRoot
+       transform="matrix(1.0140005,0,0,1,97.07912,-16.19228)"
+       id="flowRoot2383"
+       xml:space="preserve"><flowRegion
+         id="flowRegion2385"><rect
+           width="20.799999"
+           height="22.6"
+           x="106.4"
+           y="913.36218"
+           id="rect2387" /></flowRegion><flowPara
+         style="font-size:18px"
+         id="flowPara2389">C</flowPara></flowRoot>    <flowRoot
+       transform="matrix(1.0140005,0,0,1,32.22032,47.755475)"
+       id="flowRoot2391"
+       xml:space="preserve"><flowRegion
+         id="flowRegion2393"><rect
+           width="20.799999"
+           height="22.6"
+           x="106.4"
+           y="913.36218"
+           id="rect2395" /></flowRegion><flowPara
+         style="font-size:18px"
+         id="flowPara2397">D</flowPara></flowRoot>    <flowRoot
+       transform="matrix(1.0140005,0,0,1,-32.038585,-16.18349)"
+       id="flowRoot2399"
+       xml:space="preserve"><flowRegion
+         id="flowRegion2401"><rect
+           width="20.799999"
+           height="22.6"
+           x="106.4"
+           y="913.36218"
+           id="rect2403" /></flowRegion><flowPara
+         style="font-size:18px"
+         id="flowPara2405">A</flowPara></flowRoot>  </g>
+</svg>
diff --git a/11-np/Makefile b/11-np/Makefile
new file mode 100644 (file)
index 0000000..e5d9652
--- /dev/null
@@ -0,0 +1,3 @@
+P=11-np
+
+include ../Makerules
diff --git a/11-np/and.eps b/11-np/and.eps
new file mode 100644 (file)
index 0000000..a167b6f
--- /dev/null
@@ -0,0 +1,266 @@
+%!PS-Adobe-3.0 EPSF-3.0
+%%Creator: 0.45.1
+%%Pages: 1
+%%Orientation: Portrait
+%%BoundingBox: 1 1 40 99
+%%HiResBoundingBox: 1.6 1.5999861 39.328186 98.400018
+%%EndComments
+%%Page: 1 1
+0 842 translate
+0.8 -0.8 scale
+0 0 0 setrgbcolor
+[] 0 setdash
+1 setlinewidth
+0 setlinejoin
+0 setlinecap
+gsave [1 0 0 1 0 0] concat
+gsave [1.0140005 0 0 1 -92.302418 67.48622] concat
+gsave
+0 0 0 setrgbcolor
+newpath
+115.59082 920.41209 moveto
+119.28223 920.41209 lineto
+119.28223 920.73729 lineto
+118.77245 920.77831 118.39598 920.8911 118.15283 921.07567 curveto
+117.90966 921.26024 117.53026 921.81835 117.01465 922.74998 curveto
+116.49901 923.68163 115.91894 924.55175 115.27441 925.36034 curveto
+115.79589 925.96971 116.26171 926.39598 116.67188 926.63914 curveto
+117.08202 926.88231 117.49511 927.00389 117.91113 927.00389 curveto
+118.31542 927.00389 118.65819 926.89403 118.93945 926.6743 curveto
+119.22069 926.45458 119.41991 926.13085 119.53711 925.70311 curveto
+119.8623 925.94041 lineto
+119.64549 926.76659 119.29686 927.37596 118.81641 927.76854 curveto
+118.33593 928.16112 117.77636 928.35741 117.1377 928.35741 curveto
+116.65722 928.35741 116.16942 928.22703 115.67432 927.96629 curveto
+115.17919 927.70555 114.63866 927.26463 114.05273 926.64354 curveto
+113.32616 927.28807 112.67138 927.73485 112.08838 927.98387 curveto
+111.50537 928.23289 110.88281 928.35741 110.2207 928.35741 curveto
+109.2539 928.35741 108.48633 928.09959 107.91797 927.58397 curveto
+107.34961 927.06834 107.06543 926.45311 107.06543 925.73827 curveto
+107.06543 925.02928 107.32031 924.32176 107.83008 923.61571 curveto
+108.33984 922.90966 109.29785 922.1787 110.7041 921.42284 curveto
+110.42871 920.81347 110.24121 920.31396 110.1416 919.9243 curveto
+110.04199 919.53466 109.99218 919.16113 109.99219 918.80369 curveto
+109.99218 917.80175 110.36132 917.0371 111.09961 916.50975 curveto
+111.67382 916.09961 112.32714 915.89453 113.05957 915.89452 curveto
+113.75683 915.89453 114.32519 916.10107 114.76465 916.51414 curveto
+115.20409 916.92724 115.42382 917.43554 115.42383 918.03905 curveto
+115.42382 918.66015 115.21142 919.20507 114.78662 919.67381 curveto
+114.36181 920.14257 113.61034 920.65526 112.53223 921.2119 curveto
+113.27636 922.53612 114.05273 923.74901 114.86133 924.85057 curveto
+115.89257 923.62011 116.40819 922.583 116.4082 921.73924 curveto
+116.40819 921.46972 116.3203 921.22948 116.14453 921.01854 curveto
+116.01562 920.86034 115.83105 920.76659 115.59082 920.73729 curveto
+115.59082 920.41209 lineto
+closepath
+112.2334 920.64061 moveto
+112.95995 920.29491 113.50341 919.90234 113.86377 919.46287 curveto
+114.22411 919.02343 114.40429 918.53417 114.4043 917.9951 curveto
+114.40429 917.57324 114.27392 917.2246 114.01318 916.9492 curveto
+113.75243 916.67382 113.4287 916.53613 113.04199 916.53612 curveto
+112.53222 916.53613 112.14697 916.71337 111.88623 917.06785 curveto
+111.62548 917.42236 111.49511 917.76953 111.49512 918.10936 curveto
+111.49511 918.39648 111.54492 918.71728 111.64453 919.07176 curveto
+111.74414 919.42626 111.94042 919.94921 112.2334 920.64061 curveto
+112.2334 920.64061 lineto
+closepath
+113.5957 926.13377 moveto
+112.82226 925.07909 112.28613 924.30858 111.9873 923.82225 curveto
+111.68847 923.33593 111.36035 922.73241 111.00293 922.0117 curveto
+110.2998 922.41601 109.77099 922.86132 109.4165 923.34764 curveto
+109.06201 923.83397 108.88476 924.36132 108.88477 924.92967 curveto
+108.88476 925.55663 109.08691 926.10741 109.49121 926.58202 curveto
+109.8955 927.05663 110.44043 927.29393 111.12598 927.29393 curveto
+111.49511 927.29393 111.85107 927.22069 112.19385 927.0742 curveto
+112.53661 926.92772 113.0039 926.61424 113.5957 926.13377 curveto
+113.5957 926.13377 lineto
+closepath
+fill
+grestore
+grestore
+0 0 0 setrgbcolor
+[] 0 setdash
+1 setlinewidth
+0 setlinejoin
+0 setlinecap
+newpath
+2.5 969.86216 moveto
+42.5 969.86216 lineto
+42.5 969.86216 lineto
+42.5 969.86216 lineto
+43 969.86216 lineto
+stroke
+0 0 0 setrgbcolor
+[] 0 setdash
+1 setlinewidth
+0 setlinejoin
+0 setlinecap
+newpath
+2.5 1009.8622 moveto
+42.5 1009.8622 lineto
+42.5 1009.8622 lineto
+42.5 1009.8622 lineto
+43 1009.8622 lineto
+stroke
+0 0 0 setrgbcolor
+[] 0 setdash
+1 setlinewidth
+0 setlinejoin
+0 setlinecap
+newpath
+42.625 969.36216 moveto
+42.625 1009.3622 lineto
+42.625 1009.3622 lineto
+42.625 1009.3622 lineto
+42.625 1009.8622 lineto
+stroke
+0 0 0 setrgbcolor
+[] 0 setdash
+1 setlinewidth
+0 setlinejoin
+0 setlinecap
+newpath
+2.625 969.36216 moveto
+2.625 1009.3622 lineto
+2.625 1009.3622 lineto
+2.625 1009.3622 lineto
+2.625 1009.8622 lineto
+stroke
+0 0 0 setrgbcolor
+[] 0 setdash
+1 setlinewidth
+0 setlinejoin
+0 setlinecap
+newpath
+35.0532 929.86216 moveto
+35.0532 969.86216 lineto
+stroke
+gsave [0 0.7113249 -0.7113249 0 704.66756 798.22153] concat
+gsave
+0 0 0 setrgbcolor
+newpath
+242 941.36218 moveto
+236 944.82628 lineto
+230 948.29039 lineto
+230 941.36218 lineto
+230 934.43398 lineto
+236 937.89808 lineto
+242 941.36218 lineto
+closepath
+fill
+grestore
+grestore
+0 0 0 setrgbcolor
+[] 0 setdash
+1 setlinewidth
+0 setlinejoin
+0 setlinecap
+newpath
+22.75 1009.8622 moveto
+22.75 1049.8622 lineto
+stroke
+gsave [0 0.7113249 -0.7113249 0 692.36436 878.22155] concat
+gsave
+0 0 0 setrgbcolor
+newpath
+242 941.36218 moveto
+236 944.82628 lineto
+230 948.29039 lineto
+230 941.36218 lineto
+230 934.43398 lineto
+236 937.89808 lineto
+242 941.36218 lineto
+closepath
+fill
+grestore
+grestore
+gsave [1.0140005 0 0 1 -68.993601 15.599206] concat
+gsave
+0 0 0 setrgbcolor
+newpath
+112.19824 928.52077 moveto
+111.74121 929.69264 111.29589 930.45729 110.8623 930.81472 curveto
+110.42871 931.17213 109.84863 931.35084 109.12207 931.35085 curveto
+107.83008 931.35085 lineto
+107.83008 929.99733 lineto
+108.7793 929.99733 lineto
+109.22461 929.99733 109.57031 929.89186 109.81641 929.68093 curveto
+110.0625 929.46999 110.33496 928.97194 110.63379 928.18679 curveto
+110.92383 927.4485 lineto
+106.94238 917.76296 lineto
+108.65625 917.76296 lineto
+111.73242 925.46218 lineto
+114.80859 917.76296 lineto
+116.52246 917.76296 lineto
+112.19824 928.52077 lineto
+closepath
+fill
+grestore
+grestore
+gsave [1.0140005 0 0 1 -81.31463 105.59921] concat
+gsave
+0 0 0 setrgbcolor
+newpath
+107.39941 917.76296 moveto
+115.08105 917.76296 lineto
+115.08105 919.23952 lineto
+108.99902 926.31472 lineto
+115.08105 926.31472 lineto
+115.08105 927.60671 lineto
+107.17969 927.60671 lineto
+107.17969 926.13014 lineto
+113.26172 919.05495 lineto
+107.39941 919.05495 lineto
+107.39941 917.76296 lineto
+closepath
+fill
+grestore
+grestore
+0 0 0 setrgbcolor
+[] 0 setdash
+1 setlinewidth
+0 setlinejoin
+0 setlinecap
+newpath
+11.053184 929.86216 moveto
+11.053184 969.86216 lineto
+stroke
+gsave [0 0.7113249 -0.7113249 0 680.66756 798.22153] concat
+gsave
+0 0 0 setrgbcolor
+newpath
+242 941.36218 moveto
+236 944.82628 lineto
+230 948.29039 lineto
+230 941.36218 lineto
+230 934.43398 lineto
+236 937.89808 lineto
+242 941.36218 lineto
+closepath
+fill
+grestore
+grestore
+gsave [1.0140005 0 0 1 -92.993616 15.599212] concat
+gsave
+0 0 0 setrgbcolor
+newpath
+116.28516 917.76296 moveto
+112.72559 922.553 lineto
+116.46973 927.60671 lineto
+114.5625 927.60671 lineto
+111.69727 923.73952 lineto
+108.83203 927.60671 lineto
+106.9248 927.60671 lineto
+110.74805 922.45632 lineto
+107.25 917.76296 lineto
+109.15723 917.76296 lineto
+111.76758 921.26979 lineto
+114.37793 917.76296 lineto
+116.28516 917.76296 lineto
+closepath
+fill
+grestore
+grestore
+grestore
+showpage
+%%EOF
diff --git a/11-np/and.svg b/11-np/and.svg
new file mode 100644 (file)
index 0000000..3ae8675
--- /dev/null
@@ -0,0 +1,141 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://web.resource.org/cc/"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   version="1.0"
+   width="744.09448"
+   height="1052.3622"
+   id="svg2"
+   sodipodi:version="0.32"
+   inkscape:version="0.45.1"
+   sodipodi:docname="and.svg"
+   inkscape:output_extension="org.inkscape.output.svg.inkscape"
+   sodipodi:docbase="C:\_pict">
+  <metadata
+     id="metadata32">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <sodipodi:namedview
+     inkscape:window-height="712"
+     inkscape:window-width="1024"
+     inkscape:pageshadow="2"
+     inkscape:pageopacity="0.0"
+     guidetolerance="10.0"
+     gridtolerance="10.0"
+     objecttolerance="10.0"
+     borderopacity="1.0"
+     bordercolor="#666666"
+     pagecolor="#ffffff"
+     id="base"
+     inkscape:zoom="2"
+     inkscape:cx="88.556804"
+     inkscape:cy="46.181091"
+     inkscape:window-x="-4"
+     inkscape:window-y="-4"
+     inkscape:current-layer="layer1" />
+  <defs
+     id="defs2227" />
+  <g
+     id="layer1">
+    <flowRoot
+       transform="matrix(1.0140005,0,0,1,-92.302418,67.48622)"
+       id="flowRoot2367"
+       xml:space="preserve"><flowRegion
+         id="flowRegion2369"><rect
+           width="20.799999"
+           height="22.6"
+           x="106.4"
+           y="913.36218"
+           id="rect2371" /></flowRegion><flowPara
+         style="font-size:18px;font-family:Times New Roman"
+         id="flowPara2373">&amp;</flowPara></flowRoot>    <path
+       d="M 2.5,969.86216 L 42.5,969.86216 L 42.5,969.86216 L 42.5,969.86216 L 43,969.86216"
+       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       id="path3210" />
+    <path
+       d="M 2.5,1009.8622 L 42.5,1009.8622 L 42.5,1009.8622 L 42.5,1009.8622 L 43,1009.8622"
+       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       id="path3212" />
+    <path
+       d="M 42.625,969.36216 L 42.625,1009.3622 L 42.625,1009.3622 L 42.625,1009.3622 L 42.625,1009.8622"
+       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       id="path3214" />
+    <path
+       d="M 2.625,969.36216 L 2.625,1009.3622 L 2.625,1009.3622 L 2.625,1009.3622 L 2.625,1009.8622"
+       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       id="path3216" />
+    <path
+       d="M 35.0532,929.86216 L 35.0532,969.86216"
+       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       id="path3218" />
+    <path
+       d="M 242,941.36218 L 236,944.82628 L 230,948.29039 L 230,941.36218 L 230,934.43398 L 236,937.89808 L 242,941.36218 z "
+       transform="matrix(0,0.7113249,-0.7113249,0,704.66756,798.22153)"
+       style="fill:#000000"
+       id="path3220" />
+    <path
+       d="M 22.75,1009.8622 L 22.75,1049.8622"
+       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       id="path3222" />
+    <path
+       d="M 242,941.36218 L 236,944.82628 L 230,948.29039 L 230,941.36218 L 230,934.43398 L 236,937.89808 L 242,941.36218 z "
+       transform="matrix(0,0.7113249,-0.7113249,0,692.36436,878.22155)"
+       style="fill:#000000"
+       id="path3224" />
+    <flowRoot
+       transform="matrix(1.0140005,0,0,1,-68.993601,15.599206)"
+       id="flowRoot3226"
+       xml:space="preserve"><flowRegion
+         id="flowRegion3228"><rect
+           width="20.799999"
+           height="22.6"
+           x="106.4"
+           y="913.36218"
+           id="rect3230" /></flowRegion><flowPara
+         style="font-size:18px"
+         id="flowPara3232">y</flowPara></flowRoot>    <flowRoot
+       transform="matrix(1.0140005,0,0,1,-81.31463,105.59921)"
+       id="flowRoot3234"
+       xml:space="preserve"><flowRegion
+         id="flowRegion3236"><rect
+           width="20.799999"
+           height="22.6"
+           x="106.4"
+           y="913.36218"
+           id="rect3238" /></flowRegion><flowPara
+         style="font-size:18px"
+         id="flowPara3240">z</flowPara></flowRoot>    <path
+       d="M 11.053184,929.86216 L 11.053184,969.86216"
+       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       id="path3242" />
+    <path
+       d="M 242,941.36218 L 236,944.82628 L 230,948.29039 L 230,941.36218 L 230,934.43398 L 236,937.89808 L 242,941.36218 z "
+       transform="matrix(0,0.7113249,-0.7113249,0,680.66756,798.22153)"
+       style="fill:#000000"
+       id="path3244" />
+    <flowRoot
+       transform="matrix(1.0140005,0,0,1,-92.993616,15.599212)"
+       id="flowRoot3246"
+       xml:space="preserve"><flowRegion
+         id="flowRegion3248"><rect
+           width="20.799999"
+           height="22.6"
+           x="106.4"
+           y="913.36218"
+           id="rect3250" /></flowRegion><flowPara
+         style="font-size:18px"
+         id="flowPara3252">x</flowPara></flowRoot>  </g>
+</svg>
diff --git a/11-np/klauzule.eps b/11-np/klauzule.eps
new file mode 100644 (file)
index 0000000..4dc848f
--- /dev/null
@@ -0,0 +1,483 @@
+%!PS-Adobe-3.0 EPSF-3.0
+%%Creator: 0.45.1
+%%Pages: 1
+%%Orientation: Portrait
+%%BoundingBox: 1 1 179 162
+%%HiResBoundingBox: 1.6 1.6 178.08 161.11924
+%%EndComments
+%%Page: 1 1
+0 842 translate
+0.8 -0.8 scale
+0 0 0 setrgbcolor
+[] 0 setdash
+1 setlinewidth
+0 setlinejoin
+0 setlinecap
+gsave [1 0 0 1 0 0] concat
+gsave [0.040720268 0 0 0.038217082 2.87536 946.2306] concat
+gsave
+0 0 0 setrgbcolor
+newpath
+233.1031 866.93117 moveto
+115.56895 664.27546 lineto
+-14.129498 442.533 lineto
+220.14257 442.0733 lineto
+477.0264 440.62238 lineto
+360.28848 643.73779 lineto
+233.1031 866.93117 lineto
+closepath
+fill
+grestore
+grestore
+gsave [0.040720268 0 0 0.038217082 102.87536 946.2306] concat
+gsave
+0 0 0 setrgbcolor
+newpath
+233.1031 866.93117 moveto
+115.56895 664.27546 lineto
+-14.129498 442.533 lineto
+220.14257 442.0733 lineto
+477.0264 440.62238 lineto
+360.28848 643.73779 lineto
+233.1031 866.93117 lineto
+closepath
+fill
+grestore
+grestore
+gsave [0.040720268 0 0 0.038217082 202.87536 946.2306] concat
+gsave
+0 0 0 setrgbcolor
+newpath
+233.1031 866.93117 moveto
+115.56895 664.27546 lineto
+-14.129498 442.533 lineto
+220.14257 442.0733 lineto
+477.0264 440.62238 lineto
+360.28848 643.73779 lineto
+233.1031 866.93117 lineto
+closepath
+fill
+grestore
+grestore
+gsave [0.1162791 0 0 0.1162791 43.11395 798.15726] concat
+gsave
+0 0 0 setrgbcolor
+newpath
+165 655.36218 moveto
+165 679.11042 145.74824 698.36218 122 698.36218 curveto
+98.251756 698.36218 79 679.11042 79 655.36218 curveto
+79 631.61394 98.251756 612.36218 122 612.36218 curveto
+145.74824 612.36218 165 631.61394 165 655.36218 curveto
+closepath
+fill
+grestore
+grestore
+gsave [0.1162791 0 0 0.1162791 153.11395 798.15726] concat
+gsave
+0 0 0 setrgbcolor
+newpath
+165 655.36218 moveto
+165 679.11042 145.74824 698.36218 122 698.36218 curveto
+98.251756 698.36218 79 679.11042 79 655.36218 curveto
+79 631.61394 98.251756 612.36218 122 612.36218 curveto
+145.74824 612.36218 165 631.61394 165 655.36218 curveto
+closepath
+fill
+grestore
+grestore
+0 0 0 setrgbcolor
+[] 0 setdash
+1 setlinewidth
+0 setlinejoin
+0 setlinecap
+newpath
+2.5 963.16218 moveto
+57.1 874.56218 lineto
+stroke
+0 0 0 setrgbcolor
+[] 0 setdash
+1 setlinewidth
+0 setlinejoin
+0 setlinecap
+newpath
+102.3 963.16218 moveto
+57.3 874.36218 lineto
+stroke
+0 0 0 setrgbcolor
+[] 0 setdash
+1 setlinewidth
+0 setlinejoin
+0 setlinecap
+newpath
+202.3 963.16218 moveto
+57.3 874.16218 lineto
+stroke
+0 0 0 setrgbcolor
+[] 0 setdash
+1 setlinewidth
+0 setlinejoin
+0 setlinecap
+newpath
+22.1 963.16218 moveto
+167.3 873.96218 lineto
+stroke
+0 0 0 setrgbcolor
+[] 0 setdash
+1 setlinewidth
+0 setlinejoin
+0 setlinecap
+newpath
+122.1 963.16218 moveto
+167.3 874.36218 lineto
+stroke
+0 0 0 setrgbcolor
+[] 0 setdash
+1 setlinewidth
+0 setlinejoin
+0 setlinecap
+newpath
+222.1 963.16218 moveto
+167.3 874.36218 lineto
+stroke
+0 0 0 setrgbcolor
+[] 0 setdash
+1 setlinewidth
+0 setlinejoin
+0 setlinecap
+newpath
+112.4 979.06218 moveto
+112.4 1029.0622 lineto
+stroke
+0 0 0 setrgbcolor
+[] 0 setdash
+1 setlinewidth
+0 setlinejoin
+0 setlinecap
+newpath
+212.4 979.16218 moveto
+212.4 1029.1622 lineto
+stroke
+0 0 0 setrgbcolor
+[] 0 setdash
+1 setlinewidth
+0 setlinejoin
+0 setlinecap
+newpath
+12.4 979.26218 moveto
+12.4 1029.2622 lineto
+stroke
+gsave [1.0140005 0 0 1 -103.41591 120.75547] concat
+gsave
+0 0 0 setrgbcolor
+newpath
+107.39941 917.76296 moveto
+115.08105 917.76296 lineto
+115.08105 919.23952 lineto
+108.99902 926.31472 lineto
+115.08105 926.31472 lineto
+115.08105 927.60671 lineto
+107.17969 927.60671 lineto
+107.17969 926.13014 lineto
+113.26172 919.05495 lineto
+107.39941 919.05495 lineto
+107.39941 917.76296 lineto
+closepath
+fill
+grestore
+grestore
+gsave
+0 0 0 setrgbcolor
+newpath
+21.980175 1033.4402 moveto
+20.20039 1035.8352 lineto
+22.07246 1038.3621 lineto
+21.118847 1038.3621 lineto
+19.68623 1036.4285 lineto
+18.253613 1038.3621 lineto
+17.299999 1038.3621 lineto
+19.21162 1035.7869 lineto
+17.462597 1033.4402 lineto
+18.41621 1033.4402 lineto
+19.721386 1035.1936 lineto
+21.026562 1033.4402 lineto
+21.980175 1033.4402 lineto
+closepath
+fill
+grestore
+gsave
+0 0 0 setrgbcolor
+newpath
+18.367872 1049.6151 moveto
+21.466017 1049.6151 lineto
+21.466017 1050.3622 lineto
+17.300001 1050.3622 lineto
+17.300001 1049.6151 lineto
+17.636914 1049.2665 18.096142 1048.7985 18.677687 1048.2111 curveto
+19.259227 1047.6237 19.624705 1047.245 19.774122 1047.0751 curveto
+20.058299 1046.7557 20.256785 1046.4855 20.369581 1046.2643 curveto
+20.48237 1046.0431 20.538767 1045.8256 20.538771 1045.6117 curveto
+20.538767 1045.2631 20.416452 1044.9789 20.171827 1044.7592 curveto
+19.927195 1044.5394 19.608592 1044.4296 19.216017 1044.4296 curveto
+18.937694 1044.4296 18.643993 1044.4779 18.334913 1044.5746 curveto
+18.02583 1044.6713 17.695508 1044.8178 17.343946 1045.014 curveto
+17.343946 1044.1176 lineto
+17.701367 1043.974 18.035351 1043.8656 18.3459 1043.7924 curveto
+18.656444 1043.7191 18.940624 1043.6825 19.198439 1043.6825 curveto
+19.878123 1043.6825 20.420115 1043.8524 20.824415 1044.1923 curveto
+21.228707 1044.5321 21.430856 1044.9862 21.430861 1045.5546 curveto
+21.430856 1045.8241 21.380319 1046.0797 21.279249 1046.3214 curveto
+21.17817 1046.5631 20.994333 1046.848 20.727736 1047.1761 curveto
+20.654489 1047.2611 20.421579 1047.5065 20.029005 1047.9122 curveto
+19.636424 1048.318 19.082714 1048.8856 18.367872 1049.6151 curveto
+18.367872 1049.6151 lineto
+closepath
+fill
+grestore
+gsave [1.0140005 0 0 1 96.99786 120.75547] concat
+gsave
+0 0 0 setrgbcolor
+newpath
+107.39941 917.76296 moveto
+115.08105 917.76296 lineto
+115.08105 919.23952 lineto
+108.99902 926.31472 lineto
+115.08105 926.31472 lineto
+115.08105 927.60671 lineto
+107.17969 927.60671 lineto
+107.17969 926.13014 lineto
+113.26172 919.05495 lineto
+107.39941 919.05495 lineto
+107.39941 917.76296 lineto
+closepath
+fill
+grestore
+grestore
+gsave
+0 0 0 setrgbcolor
+newpath
+221.15468 1034.196 moveto
+221.06385 1034.1433 220.96498 1034.1045 220.85805 1034.0796 curveto
+220.75111 1034.0547 220.63319 1034.0422 220.50429 1034.0422 curveto
+220.04725 1034.0422 219.69642 1034.1909 219.4518 1034.4883 curveto
+219.20717 1034.7856 219.08485 1035.2126 219.08485 1035.7693 curveto
+219.08485 1038.3621 lineto
+218.27187 1038.3621 lineto
+218.27187 1033.4402 lineto
+219.08485 1033.4402 lineto
+219.08485 1034.2048 lineto
+219.25477 1033.906 219.47597 1033.6841 219.74843 1033.5391 curveto
+220.02089 1033.394 220.35194 1033.3215 220.74159 1033.3215 curveto
+220.79725 1033.3215 220.85878 1033.3252 220.92616 1033.3325 curveto
+220.99354 1033.3398 221.06825 1033.3508 221.15028 1033.3655 curveto
+221.15468 1034.196 lineto
+closepath
+fill
+grestore
+gsave
+0 0 0 setrgbcolor
+newpath
+218.17079 1049.6151 moveto
+219.62099 1049.6151 lineto
+219.62099 1044.6097 lineto
+218.04335 1044.9261 lineto
+218.04335 1044.1176 lineto
+219.6122 1043.8011 lineto
+220.49989 1043.8011 lineto
+220.49989 1049.6151 lineto
+221.95009 1049.6151 lineto
+221.95009 1050.3622 lineto
+218.17079 1050.3622 lineto
+218.17079 1049.6151 lineto
+closepath
+fill
+grestore
+gsave [1.0140005 0 0 1 -3.415905 120.75551] concat
+gsave
+0 0 0 setrgbcolor
+newpath
+107.39941 917.76296 moveto
+115.08105 917.76296 lineto
+115.08105 919.23952 lineto
+108.99902 926.31472 lineto
+115.08105 926.31472 lineto
+115.08105 927.60671 lineto
+107.17969 927.60671 lineto
+107.17969 926.13014 lineto
+113.26172 919.05495 lineto
+107.39941 919.05495 lineto
+107.39941 917.76296 lineto
+closepath
+fill
+grestore
+grestore
+gsave
+0 0 0 setrgbcolor
+newpath
+119.93673 1038.8192 moveto
+119.70821 1039.4052 119.48556 1039.7875 119.26876 1039.9662 curveto
+119.05196 1040.1449 118.76192 1040.2343 118.39864 1040.2343 curveto
+117.75265 1040.2343 lineto
+117.75265 1039.5575 lineto
+118.22726 1039.5575 lineto
+118.44991 1039.5575 118.62276 1039.5048 118.74581 1039.3993 curveto
+118.86886 1039.2938 119.00509 1039.0448 119.1545 1038.6522 curveto
+119.29952 1038.2831 lineto
+117.3088 1033.4403 lineto
+118.16573 1033.4403 lineto
+119.70382 1037.2899 lineto
+121.24191 1033.4403 lineto
+122.09884 1033.4403 lineto
+119.93673 1038.8192 lineto
+closepath
+fill
+grestore
+gsave
+0 0 0 setrgbcolor
+newpath
+118.36787 1049.6151 moveto
+121.46602 1049.6151 lineto
+121.46602 1050.3622 lineto
+117.3 1050.3622 lineto
+117.3 1049.6151 lineto
+117.63692 1049.2665 118.09614 1048.7985 118.67769 1048.2111 curveto
+119.25923 1047.6237 119.62471 1047.245 119.77412 1047.0751 curveto
+120.0583 1046.7557 120.25679 1046.4855 120.36958 1046.2643 curveto
+120.48237 1046.0431 120.53877 1045.8256 120.53877 1045.6117 curveto
+120.53877 1045.2631 120.41645 1044.9789 120.17183 1044.7592 curveto
+119.9272 1044.5394 119.60859 1044.4296 119.21602 1044.4296 curveto
+118.9377 1044.4296 118.644 1044.4779 118.33492 1044.5746 curveto
+118.02583 1044.6713 117.69551 1044.8178 117.34395 1045.014 curveto
+117.34395 1044.1176 lineto
+117.70137 1043.974 118.03535 1043.8656 118.3459 1043.7924 curveto
+118.65645 1043.7191 118.94063 1043.6825 119.19844 1043.6825 curveto
+119.87812 1043.6825 120.42012 1043.8524 120.82442 1044.1923 curveto
+121.22871 1044.5321 121.43086 1044.9862 121.43086 1045.5546 curveto
+121.43086 1045.8241 121.38032 1046.0797 121.27925 1046.3214 curveto
+121.17817 1046.5631 120.99433 1046.848 120.72774 1047.1761 curveto
+120.65449 1047.2611 120.42158 1047.5065 120.02901 1047.9122 curveto
+119.63643 1048.318 119.08272 1048.8856 118.36787 1049.6151 curveto
+118.36787 1049.6151 lineto
+closepath
+fill
+grestore
+gsave [1.0140005 0 0 1 -56.415644 -62.244525] concat
+gsave
+0 0 0 setrgbcolor
+newpath
+108.04102 913.93093 moveto
+109.66699 913.93093 lineto
+109.66699 922.00807 lineto
+114.49219 917.76296 lineto
+116.55762 917.76296 lineto
+111.33691 922.36843 lineto
+116.77734 927.60671 lineto
+114.66797 927.60671 lineto
+109.66699 922.79909 lineto
+109.66699 927.60671 lineto
+108.04102 927.60671 lineto
+108.04102 913.93093 lineto
+closepath
+fill
+grestore
+grestore
+gsave
+0 0 0 setrgbcolor
+newpath
+65.539528 851.21802 moveto
+65.539528 853.13843 lineto
+66.682106 851.92993 lineto
+67.136204 851.45533 67.562474 851.21802 67.960915 851.21802 curveto
+68.116184 851.21802 68.241428 851.25464 68.336647 851.32788 curveto
+68.431857 851.40113 68.479465 851.49634 68.479469 851.61353 curveto
+68.479465 851.72779 68.442111 851.81861 68.367409 851.88599 curveto
+68.292697 851.95337 68.207004 851.98706 68.110329 851.98706 curveto
+68.025364 851.98706 67.912571 851.94898 67.77195 851.8728 curveto
+67.631321 851.79663 67.522923 851.75855 67.446754 851.75854 curveto
+67.294407 851.75855 67.125951 851.85816 66.941383 852.05737 curveto
+66.17234 852.88794 lineto
+67.622536 854.70728 lineto
+67.874485 855.02368 68.208469 855.18774 68.624489 855.19946 curveto
+68.624489 855.36206 lineto
+67.200661 855.36206 lineto
+65.539528 853.20435 lineto
+65.539528 855.36206 lineto
+64.810036 855.36206 lineto
+64.810036 852.90112 lineto
+64.810035 852.41773 64.790992 852.11377 64.752907 851.98926 curveto
+64.71482 851.86475 64.628394 851.80249 64.493629 851.80249 curveto
+64.411598 851.80249 64.311989 851.82447 64.194801 851.86841 curveto
+64.133278 851.71021 lineto
+65.346169 851.21802 lineto
+65.539528 851.21802 lineto
+closepath
+fill
+grestore
+gsave [1.0140005 0 0 1 53.58394 -62.499408] concat
+gsave
+0 0 0 setrgbcolor
+newpath
+114.58008 919.2571 moveto
+114.58008 913.93093 lineto
+116.19727 913.93093 lineto
+116.19727 927.60671 lineto
+114.58008 927.60671 lineto
+114.58008 926.13014 lineto
+114.24023 926.71608 113.81103 927.15114 113.29248 927.43532 curveto
+112.77392 927.7195 112.15136 927.86159 111.4248 927.86159 curveto
+110.23535 927.86159 109.26709 927.38698 108.52002 926.43776 curveto
+107.77295 925.48855 107.39941 924.2405 107.39941 922.69362 curveto
+107.39941 921.14675 107.77295 919.89871 108.52002 918.94948 curveto
+109.26709 918.00027 110.23535 917.52566 111.4248 917.52565 curveto
+112.15136 917.52566 112.77392 917.66775 113.29248 917.95192 curveto
+113.81103 918.23611 114.24023 918.67117 114.58008 919.2571 curveto
+114.58008 919.2571 lineto
+closepath
+109.06934 922.69362 moveto
+109.06933 923.88308 109.31396 924.81618 109.80322 925.49294 curveto
+110.29248 926.1697 110.96484 926.50808 111.82031 926.50807 curveto
+112.67577 926.50808 113.3496 926.1697 113.8418 925.49294 curveto
+114.33398 924.81618 114.58007 923.88308 114.58008 922.69362 curveto
+114.58007 921.50417 114.33398 920.57107 113.8418 919.8943 curveto
+113.3496 919.21756 112.67577 918.87918 111.82031 918.87917 curveto
+110.96484 918.87918 110.29248 919.21756 109.80322 919.8943 curveto
+109.31396 920.57107 109.06933 921.50417 109.06934 922.69362 curveto
+109.06934 922.69362 lineto
+closepath
+fill
+grestore
+grestore
+gsave
+0 0 0 setrgbcolor
+newpath
+175.53911 850.96313 moveto
+175.53911 852.88354 lineto
+176.68169 851.67505 lineto
+177.13578 851.20044 177.56205 850.96314 177.96049 850.96313 curveto
+178.11576 850.96314 178.24101 850.99976 178.33623 851.073 curveto
+178.43144 851.14624 178.47905 851.24146 178.47905 851.35864 curveto
+178.47905 851.4729 178.44169 851.56372 178.36699 851.6311 curveto
+178.29228 851.69849 178.20658 851.73218 178.10991 851.73218 curveto
+178.02494 851.73218 177.91215 851.6941 177.77153 851.61792 curveto
+177.6309 851.54175 177.5225 851.50367 177.44633 851.50366 curveto
+177.29399 851.50367 177.12553 851.60327 176.94096 851.80249 curveto
+176.17192 852.63306 lineto
+177.62212 854.45239 lineto
+177.87407 854.7688 178.20805 854.93286 178.62407 854.94458 curveto
+178.62407 855.10718 lineto
+177.20024 855.10718 lineto
+175.53911 852.94946 lineto
+175.53911 855.10718 lineto
+174.80962 855.10718 lineto
+174.80962 852.64624 lineto
+174.80962 852.16284 174.79057 851.85889 174.75249 851.73438 curveto
+174.7144 851.60987 174.62797 851.54761 174.49321 851.54761 curveto
+174.41118 851.54761 174.31157 851.56958 174.19438 851.61353 curveto
+174.13286 851.45532 lineto
+175.34575 850.96313 lineto
+175.53911 850.96313 lineto
+closepath
+fill
+grestore
+grestore
+showpage
+%%EOF
diff --git a/11-np/klauzule.svg b/11-np/klauzule.svg
new file mode 100644 (file)
index 0000000..3dd1f73
--- /dev/null
@@ -0,0 +1,250 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://web.resource.org/cc/"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   version="1.0"
+   width="744.09448"
+   height="1052.3622"
+   id="svg2"
+   sodipodi:version="0.32"
+   inkscape:version="0.45.1"
+   sodipodi:docname="klauzule.svg"
+   inkscape:output_extension="org.inkscape.output.svg.inkscape"
+   sodipodi:docbase="C:\_pict">
+  <metadata
+     id="metadata57">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <sodipodi:namedview
+     inkscape:window-height="712"
+     inkscape:window-width="1024"
+     inkscape:pageshadow="2"
+     inkscape:pageopacity="0.0"
+     guidetolerance="10.0"
+     gridtolerance="10.0"
+     objecttolerance="10.0"
+     borderopacity="1.0"
+     bordercolor="#666666"
+     pagecolor="#ffffff"
+     id="base"
+     inkscape:zoom="2"
+     inkscape:cx="141.22639"
+     inkscape:cy="247.45284"
+     inkscape:window-x="0"
+     inkscape:window-y="22"
+     inkscape:current-layer="layer1" />
+  <defs
+     id="defs2213" />
+  <g
+     id="layer1">
+    <path
+       d="M 233.1031,866.93117 L 115.56895,664.27546 L -14.129498,442.533 L 220.14257,442.0733 L 477.0264,440.62238 L 360.28848,643.73779 L 233.1031,866.93117 z "
+       transform="matrix(4.0720268e-2,0,0,3.8217082e-2,2.87536,946.2306)"
+       style="fill:#000000"
+       id="path2227" />
+    <path
+       d="M 233.1031,866.93117 L 115.56895,664.27546 L -14.129498,442.533 L 220.14257,442.0733 L 477.0264,440.62238 L 360.28848,643.73779 L 233.1031,866.93117 z "
+       transform="matrix(4.0720268e-2,0,0,3.8217082e-2,102.87536,946.2306)"
+       style="fill:#000000"
+       id="path2231" />
+    <path
+       d="M 233.1031,866.93117 L 115.56895,664.27546 L -14.129498,442.533 L 220.14257,442.0733 L 477.0264,440.62238 L 360.28848,643.73779 L 233.1031,866.93117 z "
+       transform="matrix(4.0720268e-2,0,0,3.8217082e-2,202.87536,946.2306)"
+       style="fill:#000000"
+       id="path2233" />
+    <path
+       d="M 165 655.36218 A 43 43 0 1 1  79,655.36218 A 43 43 0 1 1  165 655.36218 z"
+       transform="matrix(0.1162791,0,0,0.1162791,43.11395,798.15726)"
+       style="fill:#000000"
+       id="path2237" />
+    <path
+       d="M 165 655.36218 A 43 43 0 1 1  79,655.36218 A 43 43 0 1 1  165 655.36218 z"
+       transform="matrix(0.1162791,0,0,0.1162791,153.11395,798.15726)"
+       style="fill:#000000"
+       id="path2239" />
+    <path
+       d="M 2.5,963.16218 L 57.1,874.56218"
+       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       id="path2245" />
+    <path
+       d="M 102.3,963.16218 L 57.3,874.36218"
+       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       id="path2249" />
+    <path
+       d="M 202.3,963.16218 L 57.3,874.16218"
+       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       id="path2251" />
+    <path
+       d="M 22.1,963.16218 L 167.3,873.96218"
+       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       id="path2253" />
+    <path
+       d="M 122.1,963.16218 L 167.3,874.36218"
+       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       id="path2255" />
+    <path
+       d="M 222.1,963.16218 L 167.3,874.36218"
+       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       id="path2257" />
+    <path
+       d="M 112.4,979.06218 L 112.4,1029.0622"
+       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       id="path2263" />
+    <path
+       d="M 212.4,979.16218 L 212.4,1029.1622"
+       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       id="path2265" />
+    <path
+       d="M 12.4,979.26218 L 12.4,1029.2622"
+       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       id="path2267" />
+    <flowRoot
+       transform="matrix(1.0140005,0,0,1,-103.41591,120.75547)"
+       id="flowRoot2269"
+       xml:space="preserve"><flowRegion
+         id="flowRegion2271"><rect
+           width="20.799999"
+           height="22.6"
+           x="106.4"
+           y="913.36218"
+           id="rect2273" /></flowRegion><flowPara
+         style="font-size:18px"
+         id="flowPara2275">z</flowPara></flowRoot>    <text
+       x="17.040722"
+       y="1038.3621"
+       style="font-size:9px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans"
+       id="text2277"
+       xml:space="preserve"><tspan
+         x="17.040722"
+         y="1038.3621"
+         id="tspan2281">x</tspan></text>
+    <text
+       x="16.640821"
+       y="1050.3622"
+       style="font-size:6px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans"
+       id="text2289"
+       xml:space="preserve"><tspan
+         x="16.640821"
+         y="1050.3622"
+         style="font-size:9px"
+         id="tspan2293">2</tspan></text>
+    <flowRoot
+       transform="matrix(1.0140005,0,0,1,96.99786,120.75547)"
+       id="flowRoot2333"
+       xml:space="preserve"><flowRegion
+         id="flowRegion2335"><rect
+           width="20.799999"
+           height="22.6"
+           x="106.4"
+           y="913.36218"
+           id="rect2337" /></flowRegion><flowPara
+         style="font-size:18px"
+         id="flowPara2339">z</flowPara></flowRoot>    <text
+       x="217.45448"
+       y="1038.3621"
+       style="font-size:9px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans"
+       id="text2341"
+       xml:space="preserve"><tspan
+         x="217.45448"
+         y="1038.3621"
+         id="tspan2343">r</tspan></text>
+    <text
+       x="217.05458"
+       y="1050.3622"
+       style="font-size:6px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans"
+       id="text2345"
+       xml:space="preserve"><tspan
+         x="217.05458"
+         y="1050.3622"
+         style="font-size:9px"
+         id="tspan2347">1</tspan></text>
+    <flowRoot
+       transform="matrix(1.0140005,0,0,1,-3.415905,120.75551)"
+       id="flowRoot2349"
+       xml:space="preserve"><flowRegion
+         id="flowRegion2351"><rect
+           width="20.799999"
+           height="22.6"
+           x="106.4"
+           y="913.36218"
+           id="rect2353" /></flowRegion><flowPara
+         style="font-size:18px"
+         id="flowPara2355">z</flowPara></flowRoot>    <text
+       x="117.04073"
+       y="1038.3622"
+       style="font-size:9px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans"
+       id="text2357"
+       xml:space="preserve"><tspan
+         x="117.04073"
+         y="1038.3622"
+         id="tspan2359">y</tspan><tspan
+         x="117.04073"
+         y="1049.6122"
+         id="tspan2365" /></text>
+    <text
+       x="116.64082"
+       y="1050.3622"
+       style="font-size:6px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans"
+       id="text2361"
+       xml:space="preserve"><tspan
+         x="116.64082"
+         y="1050.3622"
+         style="font-size:9px"
+         id="tspan2363">2</tspan></text>
+    <flowRoot
+       transform="matrix(1.0140005,0,0,1,-56.415644,-62.244525)"
+       id="flowRoot2206"
+       xml:space="preserve"><flowRegion
+         id="flowRegion2208"><rect
+           width="20.799999"
+           height="22.6"
+           x="106.4"
+           y="913.36218"
+           id="rect2210" /></flowRegion><flowPara
+         style="font-size:18px"
+         id="flowPara2212">k</flowPara></flowRoot>    <text
+       x="64.040993"
+       y="855.36206"
+       style="font-size:9px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman"
+       id="text2214"
+       xml:space="preserve"><tspan
+         x="64.040993"
+         y="855.36206"
+         id="tspan2216"
+         style="font-family:Times New Roman">κ</tspan></text>
+    <flowRoot
+       transform="matrix(1.0140005,0,0,1,53.58394,-62.499408)"
+       id="flowRoot2222"
+       xml:space="preserve"><flowRegion
+         id="flowRegion2224"><rect
+           width="20.799999"
+           height="22.6"
+           x="106.4"
+           y="913.36218"
+           id="rect2226" /></flowRegion><flowPara
+         style="font-size:18px"
+         id="flowPara2228">d</flowPara></flowRoot>    <text
+       x="174.04057"
+       y="855.10718"
+       style="font-size:9px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman"
+       id="text2230"
+       xml:space="preserve"><tspan
+         x="174.04057"
+         y="855.10718"
+         id="tspan2232"
+         style="font-family:Times New Roman">κ</tspan></text>
+  </g>
+</svg>
diff --git a/11-np/kobvod.eps b/11-np/kobvod.eps
new file mode 100644 (file)
index 0000000..76d7815
--- /dev/null
@@ -0,0 +1,538 @@
+%!PS-Adobe-3.0 EPSF-3.0
+%%Creator: 0.45.1
+%%Pages: 1
+%%Orientation: Portrait
+%%BoundingBox: 1 1 104 103
+%%HiResBoundingBox: 1.6000036 1.5999861 103.78458 102.40005
+%%EndComments
+%%Page: 1 1
+0 842 translate
+0.8 -0.8 scale
+0 0 0 setrgbcolor
+[] 0 setdash
+1 setlinewidth
+0 setlinejoin
+0 setlinecap
+gsave [1 0 0 1 0 0] concat
+gsave [1 0 0 1 13.730725 16.499966] concat
+gsave
+0.80000001 0.80000001 0.80000001 setrgbcolor
+newpath
+116 968.86218 moveto
+116 982.66218 93.6 993.86218 66 993.86218 curveto
+38.4 993.86218 16 982.66218 16 968.86218 curveto
+16 955.06218 38.4 943.86218 66 943.86218 curveto
+93.6 943.86218 116 955.06218 116 968.86218 curveto
+closepath
+fill
+grestore
+grestore
+0 0 0 setrgbcolor
+[] 0 setdash
+1 setlinewidth
+0 setlinejoin
+0 setlinecap
+newpath
+109.73073 924.86212 moveto
+109.73073 964.86212 lineto
+stroke
+gsave
+0 0 0 setrgbcolor
+newpath
+109.73074 965.36212 moveto
+107.26664 961.09417 lineto
+104.80253 956.82622 lineto
+109.73074 956.82622 lineto
+114.65893 956.82622 lineto
+112.19484 961.09417 lineto
+109.73074 965.36212 lineto
+closepath
+fill
+grestore
+0 0 0 setrgbcolor
+[] 0 setdash
+1 setlinewidth
+0 setlinejoin
+0 setlinecap
+newpath
+79.730725 1009.8622 moveto
+79.730725 1049.8622 lineto
+stroke
+gsave
+0 0 0 setrgbcolor
+newpath
+79.730728 1050.3622 moveto
+77.266628 1046.0942 lineto
+74.80252 1041.8263 lineto
+79.730728 1041.8263 lineto
+84.65893 1041.8263 lineto
+82.194829 1046.0942 lineto
+79.730728 1050.3622 lineto
+closepath
+fill
+grestore
+gsave [1.0140005 0 0 1 4.7910955 10.599166] concat
+gsave
+0 0 0 setrgbcolor
+newpath
+112.19824 928.52077 moveto
+111.74121 929.69264 111.29589 930.45729 110.8623 930.81472 curveto
+110.42871 931.17213 109.84863 931.35084 109.12207 931.35085 curveto
+107.83008 931.35085 lineto
+107.83008 929.99733 lineto
+108.7793 929.99733 lineto
+109.22461 929.99733 109.57031 929.89186 109.81641 929.68093 curveto
+110.0625 929.46999 110.33496 928.97194 110.63379 928.18679 curveto
+110.92383 927.4485 lineto
+106.94238 917.76296 lineto
+108.65625 917.76296 lineto
+111.73242 925.46218 lineto
+114.80859 917.76296 lineto
+116.52246 917.76296 lineto
+112.19824 928.52077 lineto
+closepath
+fill
+grestore
+grestore
+0 0 0 setrgbcolor
+[] 0 setdash
+1 setlinewidth
+0 setlinejoin
+0 setlinecap
+newpath
+49.730816 924.86212 moveto
+49.730816 964.86212 lineto
+stroke
+gsave
+0 0 0 setrgbcolor
+newpath
+49.730833 965.36212 moveto
+47.266733 961.09417 lineto
+44.802625 956.82622 lineto
+49.730833 956.82622 lineto
+54.659035 956.82622 lineto
+52.194934 961.09417 lineto
+49.730833 965.36212 lineto
+closepath
+fill
+grestore
+gsave [1.0140005 0 0 1 -107.13477 14.431197] concat
+gsave
+0 0 0 setrgbcolor
+newpath
+115.01074 913.93093 moveto
+114.75586 915.27565 lineto
+113.20898 915.27565 lineto
+112.62304 915.27566 112.19677 915.39139 111.93018 915.62282 curveto
+111.66357 915.85428 111.46582 916.27762 111.33691 916.89284 curveto
+111.16113 917.76296 lineto
+113.82422 917.76296 lineto
+113.58691 919.01979 lineto
+110.92383 919.01979 lineto
+109.25391 927.60671 lineto
+107.62793 927.60671 lineto
+109.30664 919.01979 lineto
+107.75977 919.01979 lineto
+107.98828 917.76296 lineto
+109.53516 917.76296 lineto
+109.66699 917.07741 lineto
+109.88964 915.91727 110.28076 915.10281 110.84033 914.63405 curveto
+111.3999 914.16531 112.28027 913.93094 113.48145 913.93093 curveto
+115.01074 913.93093 lineto
+closepath
+fill
+grestore
+gsave
+0 0 0 setrgbcolor
+newpath
+116.03027 913.93093 moveto
+117.64746 913.93093 lineto
+117.25195 915.97878 lineto
+115.63477 915.97878 lineto
+116.03027 913.93093 lineto
+closepath
+115.29199 917.76296 moveto
+116.90918 917.76296 lineto
+114.98438 927.60671 lineto
+113.36719 927.60671 lineto
+115.29199 917.76296 lineto
+closepath
+fill
+grestore
+gsave
+0 0 0 setrgbcolor
+newpath
+128.52832 917.76296 moveto
+124.01074 922.58815 lineto
+126.7793 927.60671 lineto
+124.9248 927.60671 lineto
+122.8418 923.70436 lineto
+119.2207 927.60671 lineto
+117.26074 927.60671 lineto
+122.10352 922.42116 lineto
+119.52832 917.76296 lineto
+121.38281 917.76296 lineto
+123.27246 921.32253 lineto
+126.56836 917.76296 lineto
+128.52832 917.76296 lineto
+closepath
+fill
+grestore
+gsave
+0 0 0 setrgbcolor
+newpath
+136.06055 913.9485 moveto
+134.50781 915.88797 133.34912 917.72928 132.58447 919.47243 curveto
+131.81982 921.2156 131.4375 922.89577 131.4375 924.51296 curveto
+131.4375 925.43874 131.54882 926.3572 131.77148 927.26833 curveto
+131.99414 928.17946 132.32812 929.08327 132.77344 929.97975 curveto
+131.36719 929.97975 lineto
+130.82812 928.97194 130.42676 927.99196 130.16309 927.03981 curveto
+129.89941 926.08767 129.76758 925.15456 129.76758 924.2405 curveto
+129.76758 922.50027 130.17041 920.77615 130.97607 919.06813 curveto
+131.78173 917.36014 132.99902 915.65359 134.62793 913.9485 curveto
+136.06055 913.9485 lineto
+closepath
+fill
+grestore
+gsave
+0 0 0 setrgbcolor
+newpath
+145.28906 917.76296 moveto
+141.72949 922.553 lineto
+145.47363 927.60671 lineto
+143.56641 927.60671 lineto
+140.70117 923.73952 lineto
+137.83594 927.60671 lineto
+135.92871 927.60671 lineto
+139.75195 922.45632 lineto
+136.25391 917.76296 lineto
+138.16113 917.76296 lineto
+140.77148 921.26979 lineto
+143.38184 917.76296 lineto
+145.28906 917.76296 lineto
+closepath
+fill
+grestore
+gsave
+0 0 0 setrgbcolor
+newpath
+144.94629 929.97975 moveto
+146.50488 928.0403 147.66504 926.19899 148.42676 924.45583 curveto
+149.18847 922.71267 149.56933 921.0325 149.56934 919.4153 curveto
+149.56933 918.48953 149.45947 917.57107 149.23975 916.65993 curveto
+149.02002 915.74881 148.6875 914.845 148.24219 913.9485 curveto
+149.64844 913.9485 lineto
+150.1875 914.96219 150.58886 915.9407 150.85254 916.88405 curveto
+151.11621 917.82742 151.24804 918.75613 151.24805 919.67018 curveto
+151.24804 921.41628 150.84228 923.14919 150.03076 924.86891 curveto
+149.21924 926.58864 148.00488 928.29225 146.3877 929.97975 curveto
+144.94629 929.97975 lineto
+closepath
+fill
+grestore
+grestore
+gsave [1.0140005 0 0 1 0.443587 52.557702] concat
+grestore
+gsave [1.0140005 0 0 1 5.7032684 54.80528] concat
+grestore
+gsave [1 0 0 1 -86.775134 22.557937] concat
+gsave
+0 0 0 setrgbcolor
+newpath
+139.81055 954.05616 moveto
+139.23242 954.05617 138.77539 954.28176 138.43945 954.73292 curveto
+138.10351 955.1841 137.93555 955.80226 137.93555 956.58741 curveto
+137.93555 957.37257 138.10254 957.99074 138.43652 958.44191 curveto
+138.77051 958.89308 139.22851 959.11866 139.81055 959.11866 curveto
+140.38476 959.11866 140.83984 958.8921 141.17578 958.43898 curveto
+141.51171 957.98585 141.67968 957.36867 141.67969 956.58741 curveto
+141.67968 955.81007 141.51171 955.19386 141.17578 954.73878 curveto
+140.83984 954.28371 140.38476 954.05617 139.81055 954.05616 curveto
+139.81055 954.05616 lineto
+closepath
+139.81055 953.1421 moveto
+140.74804 953.14211 141.48437 953.4468 142.01953 954.05616 curveto
+142.55468 954.66554 142.82226 955.50929 142.82227 956.58741 curveto
+142.82226 957.66164 142.55468 958.50441 142.01953 959.11573 curveto
+141.48437 959.72706 140.74804 960.03273 139.81055 960.03273 curveto
+138.86914 960.03273 138.13183 959.72706 137.59863 959.11573 curveto
+137.06543 958.50441 136.79883 957.66164 136.79883 956.58741 curveto
+136.79883 955.50929 137.06543 954.66554 137.59863 954.05616 curveto
+138.13183 953.4468 138.86914 953.14211 139.81055 953.1421 curveto
+139.81055 953.1421 lineto
+closepath
+fill
+grestore
+gsave
+0 0 0 setrgbcolor
+newpath
+149.31445 956.58741 moveto
+149.31445 955.79445 149.15136 955.17238 148.8252 954.7212 curveto
+148.49902 954.27004 148.05078 954.04445 147.48047 954.04445 curveto
+146.91015 954.04445 146.46191 954.27004 146.13574 954.7212 curveto
+145.80957 955.17238 145.64648 955.79445 145.64648 956.58741 curveto
+145.64648 957.38039 145.80957 958.00246 146.13574 958.45363 curveto
+146.46191 958.9048 146.91015 959.13038 147.48047 959.13038 curveto
+148.05078 959.13038 148.49902 958.9048 148.8252 958.45363 curveto
+149.15136 958.00246 149.31445 957.38039 149.31445 956.58741 curveto
+149.31445 956.58741 lineto
+closepath
+145.64648 954.2964 moveto
+145.87304 953.90578 146.15918 953.61574 146.50488 953.42628 curveto
+146.85058 953.23683 147.26367 953.14211 147.74414 953.1421 curveto
+148.54101 953.14211 149.18847 953.45851 149.68652 954.09132 curveto
+150.18456 954.72414 150.43359 955.55617 150.43359 956.58741 curveto
+150.43359 957.61867 150.18456 958.4507 149.68652 959.08351 curveto
+149.18847 959.71632 148.54101 960.03273 147.74414 960.03273 curveto
+147.26367 960.03273 146.85058 959.938 146.50488 959.74855 curveto
+146.15918 959.55909 145.87304 959.26906 145.64648 958.87843 curveto
+145.64648 959.8628 lineto
+144.5625 959.8628 lineto
+144.5625 950.74562 lineto
+145.64648 950.74562 lineto
+145.64648 954.2964 lineto
+closepath
+fill
+grestore
+gsave
+0 0 0 setrgbcolor
+newpath
+151.44727 953.3003 moveto
+152.58984 953.3003 lineto
+154.64063 958.80812 lineto
+156.69141 953.3003 lineto
+157.83398 953.3003 lineto
+155.37305 959.8628 lineto
+153.9082 959.8628 lineto
+151.44727 953.3003 lineto
+closepath
+fill
+grestore
+gsave
+0 0 0 setrgbcolor
+newpath
+161.86523 954.05616 moveto
+161.28711 954.05617 160.83008 954.28176 160.49414 954.73292 curveto
+160.1582 955.1841 159.99023 955.80226 159.99023 956.58741 curveto
+159.99023 957.37257 160.15722 957.99074 160.49121 958.44191 curveto
+160.82519 958.89308 161.2832 959.11866 161.86523 959.11866 curveto
+162.43945 959.11866 162.89453 958.8921 163.23047 958.43898 curveto
+163.5664 957.98585 163.73437 957.36867 163.73438 956.58741 curveto
+163.73437 955.81007 163.5664 955.19386 163.23047 954.73878 curveto
+162.89453 954.28371 162.43945 954.05617 161.86523 954.05616 curveto
+161.86523 954.05616 lineto
+closepath
+161.86523 953.1421 moveto
+162.80273 953.14211 163.53906 953.4468 164.07422 954.05616 curveto
+164.60937 954.66554 164.87695 955.50929 164.87695 956.58741 curveto
+164.87695 957.66164 164.60937 958.50441 164.07422 959.11573 curveto
+163.53906 959.72706 162.80273 960.03273 161.86523 960.03273 curveto
+160.92383 960.03273 160.18652 959.72706 159.65332 959.11573 curveto
+159.12012 958.50441 158.85351 957.66164 158.85352 956.58741 curveto
+158.85351 955.50929 159.12012 954.66554 159.65332 954.05616 curveto
+160.18652 953.4468 160.92383 953.14211 161.86523 953.1421 curveto
+161.86523 953.1421 lineto
+closepath
+fill
+grestore
+gsave
+0 0 0 setrgbcolor
+newpath
+170.97656 954.2964 moveto
+170.97656 950.74562 lineto
+172.05469 950.74562 lineto
+172.05469 959.8628 lineto
+170.97656 959.8628 lineto
+170.97656 958.87843 lineto
+170.74999 959.26906 170.46386 959.55909 170.11816 959.74855 curveto
+169.77246 959.938 169.35742 960.03273 168.87305 960.03273 curveto
+168.08008 960.03273 167.43457 959.71632 166.93652 959.08351 curveto
+166.43848 958.4507 166.18945 957.61867 166.18945 956.58741 curveto
+166.18945 955.55617 166.43848 954.72414 166.93652 954.09132 curveto
+167.43457 953.45851 168.08008 953.14211 168.87305 953.1421 curveto
+169.35742 953.14211 169.77246 953.23683 170.11816 953.42628 curveto
+170.46386 953.61574 170.74999 953.90578 170.97656 954.2964 curveto
+170.97656 954.2964 lineto
+closepath
+167.30273 956.58741 moveto
+167.30273 957.38039 167.46582 958.00246 167.79199 958.45363 curveto
+168.11816 958.9048 168.5664 959.13038 169.13672 959.13038 curveto
+169.70703 959.13038 170.15625 958.9048 170.48438 958.45363 curveto
+170.81249 958.00246 170.97656 957.38039 170.97656 956.58741 curveto
+170.97656 955.79445 170.81249 955.17238 170.48438 954.7212 curveto
+170.15625 954.27004 169.70703 954.04445 169.13672 954.04445 curveto
+168.5664 954.04445 168.11816 954.27004 167.79199 954.7212 curveto
+167.46582 955.17238 167.30273 955.79445 167.30273 956.58741 curveto
+167.30273 956.58741 lineto
+closepath
+fill
+grestore
+gsave
+0 0 0 setrgbcolor
+newpath
+179.13867 958.87843 moveto
+179.13867 962.3589 lineto
+178.05469 962.3589 lineto
+178.05469 953.3003 lineto
+179.13867 953.3003 lineto
+179.13867 954.2964 lineto
+179.36523 953.90578 179.65136 953.61574 179.99707 953.42628 curveto
+180.34277 953.23683 180.75586 953.14211 181.23633 953.1421 curveto
+182.0332 953.14211 182.68066 953.45851 183.17871 954.09132 curveto
+183.67675 954.72414 183.92577 955.55617 183.92578 956.58741 curveto
+183.92577 957.61867 183.67675 958.4507 183.17871 959.08351 curveto
+182.68066 959.71632 182.0332 960.03273 181.23633 960.03273 curveto
+180.75586 960.03273 180.34277 959.938 179.99707 959.74855 curveto
+179.65136 959.55909 179.36523 959.26906 179.13867 958.87843 curveto
+179.13867 958.87843 lineto
+closepath
+182.80664 956.58741 moveto
+182.80663 955.79445 182.64355 955.17238 182.31738 954.7212 curveto
+181.99121 954.27004 181.54296 954.04445 180.97266 954.04445 curveto
+180.40234 954.04445 179.9541 954.27004 179.62793 954.7212 curveto
+179.30176 955.17238 179.13867 955.79445 179.13867 956.58741 curveto
+179.13867 957.38039 179.30176 958.00246 179.62793 958.45363 curveto
+179.9541 958.9048 180.40234 959.13038 180.97266 959.13038 curveto
+181.54296 959.13038 181.99121 958.9048 182.31738 958.45363 curveto
+182.64355 958.00246 182.80663 957.38039 182.80664 956.58741 curveto
+182.80664 956.58741 lineto
+closepath
+fill
+grestore
+gsave
+0 0 0 setrgbcolor
+newpath
+189.51563 954.30812 moveto
+189.39453 954.23781 189.26269 954.18605 189.12012 954.15284 curveto
+188.97753 954.11965 188.82031 954.10305 188.64844 954.10304 curveto
+188.03906 954.10305 187.57129 954.30129 187.24512 954.69777 curveto
+186.91894 955.09425 186.75586 955.66359 186.75586 956.40577 curveto
+186.75586 959.8628 lineto
+185.67188 959.8628 lineto
+185.67188 953.3003 lineto
+186.75586 953.3003 lineto
+186.75586 954.31984 lineto
+186.98242 953.9214 187.27734 953.62551 187.64063 953.43214 curveto
+188.0039 953.23879 188.44531 953.14211 188.96484 953.1421 curveto
+189.03906 953.14211 189.12109 953.14699 189.21094 953.15675 curveto
+189.30078 953.16652 189.40039 953.18117 189.50977 953.2007 curveto
+189.51563 954.30812 lineto
+closepath
+fill
+grestore
+gsave
+0 0 0 setrgbcolor
+newpath
+193.20117 954.05616 moveto
+192.62304 954.05617 192.16601 954.28176 191.83008 954.73292 curveto
+191.49414 955.1841 191.32617 955.80226 191.32617 956.58741 curveto
+191.32617 957.37257 191.49316 957.99074 191.82715 958.44191 curveto
+192.16113 958.89308 192.61914 959.11866 193.20117 959.11866 curveto
+193.77539 959.11866 194.23046 958.8921 194.56641 958.43898 curveto
+194.90234 957.98585 195.07031 957.36867 195.07031 956.58741 curveto
+195.07031 955.81007 194.90234 955.19386 194.56641 954.73878 curveto
+194.23046 954.28371 193.77539 954.05617 193.20117 954.05616 curveto
+193.20117 954.05616 lineto
+closepath
+193.20117 953.1421 moveto
+194.13867 953.14211 194.87499 953.4468 195.41016 954.05616 curveto
+195.94531 954.66554 196.21288 955.50929 196.21289 956.58741 curveto
+196.21288 957.66164 195.94531 958.50441 195.41016 959.11573 curveto
+194.87499 959.72706 194.13867 960.03273 193.20117 960.03273 curveto
+192.25976 960.03273 191.52246 959.72706 190.98926 959.11573 curveto
+190.45605 958.50441 190.18945 957.66164 190.18945 956.58741 curveto
+190.18945 955.50929 190.45605 954.66554 190.98926 954.05616 curveto
+191.52246 953.4468 192.25976 953.14211 193.20117 953.1421 curveto
+193.20117 953.1421 lineto
+closepath
+fill
+grestore
+gsave
+0 0 0 setrgbcolor
+newpath
+163.74023 966.11476 moveto
+164.92383 966.11476 lineto
+164.92383 969.81202 lineto
+168.84961 966.11476 lineto
+170.37305 966.11476 lineto
+166.03125 970.19288 lineto
+170.68359 974.8628 lineto
+169.125 974.8628 lineto
+164.92383 970.64991 lineto
+164.92383 974.8628 lineto
+163.74023 974.8628 lineto
+163.74023 966.11476 lineto
+closepath
+fill
+grestore
+grestore
+gsave [1.0140005 0 0 1 -25.259407 114.38609] concat
+gsave
+0 0 0 setrgbcolor
+newpath
+107.18555 921.86671 moveto
+109.11914 921.86671 lineto
+110.42578 915.13429 lineto
+108.24023 915.55616 lineto
+108.44531 914.53663 lineto
+110.61914 914.11476 lineto
+111.80859 914.11476 lineto
+110.29688 921.86671 lineto
+112.22461 921.86671 lineto
+112.03711 922.8628 lineto
+106.99219 922.8628 lineto
+107.18555 921.86671 lineto
+closepath
+fill
+grestore
+gsave
+0 0 0 setrgbcolor
+newpath
+118.125 914.11476 moveto
+119.16797 914.11476 lineto
+114.20508 923.97609 lineto
+113.16797 923.97609 lineto
+118.125 914.11476 lineto
+closepath
+fill
+grestore
+gsave
+0 0 0 setrgbcolor
+newpath
+122.68359 913.95655 moveto
+123.47656 913.95656 124.083 914.22024 124.50293 914.74757 curveto
+124.92284 915.27492 125.13281 916.03273 125.13281 917.02101 curveto
+125.13281 917.77101 125.03417 918.51613 124.83691 919.25636 curveto
+124.63964 919.9966 124.36327 920.65968 124.00781 921.24562 curveto
+123.64453 921.83156 123.21777 922.27589 122.72754 922.57863 curveto
+122.2373 922.88136 121.69531 923.03273 121.10156 923.03273 curveto
+120.33594 923.03273 119.74414 922.7671 119.32617 922.23585 curveto
+118.9082 921.7046 118.69922 920.94874 118.69922 919.96827 curveto
+118.69922 919.22609 118.7998 918.48293 119.00098 917.73878 curveto
+119.20215 916.99465 119.48242 916.33156 119.8418 915.74952 curveto
+120.20117 915.16359 120.62207 914.71828 121.10449 914.41359 curveto
+121.58691 914.10891 122.11328 913.95656 122.68359 913.95655 curveto
+122.68359 913.95655 lineto
+closepath
+122.61328 914.89405 moveto
+122.3164 914.89406 122.03418 914.97316 121.7666 915.13136 curveto
+121.49902 915.28957 121.25781 915.52297 121.04297 915.83155 curveto
+120.68359 916.34719 120.39746 916.99074 120.18457 917.76222 curveto
+119.97168 918.53371 119.86523 919.3257 119.86523 920.1382 curveto
+119.86523 920.78273 119.97949 921.27003 120.20801 921.60011 curveto
+120.43652 921.93019 120.77343 922.09523 121.21875 922.09523 curveto
+121.53125 922.09523 121.82031 922.01613 122.08594 921.85792 curveto
+122.35156 921.69972 122.59179 921.46632 122.80664 921.15773 curveto
+123.1621 920.64601 123.44433 920.00441 123.65332 919.23292 curveto
+123.8623 918.46144 123.96679 917.6675 123.9668 916.85109 curveto
+123.96679 916.20656 123.85253 915.71926 123.62402 915.38917 curveto
+123.3955 915.0591 123.05859 914.89406 122.61328 914.89405 curveto
+122.61328 914.89405 lineto
+closepath
+fill
+grestore
+grestore
+grestore
+showpage
+%%EOF
diff --git a/11-np/kobvod.svg b/11-np/kobvod.svg
new file mode 100644 (file)
index 0000000..3db0939
--- /dev/null
@@ -0,0 +1,162 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://web.resource.org/cc/"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   version="1.0"
+   width="744.09448"
+   height="1052.3622"
+   id="svg2"
+   sodipodi:version="0.32"
+   inkscape:version="0.45.1"
+   sodipodi:docname="kobvod.svg"
+   inkscape:output_extension="org.inkscape.output.svg.inkscape"
+   sodipodi:docbase="C:\_pict">
+  <metadata
+     id="metadata32">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <sodipodi:namedview
+     inkscape:window-height="712"
+     inkscape:window-width="1024"
+     inkscape:pageshadow="2"
+     inkscape:pageopacity="0.0"
+     guidetolerance="10.0"
+     gridtolerance="10.0"
+     objecttolerance="10.0"
+     borderopacity="1.0"
+     bordercolor="#666666"
+     pagecolor="#ffffff"
+     id="base"
+     inkscape:zoom="2"
+     inkscape:cx="126.33473"
+     inkscape:cy="91.52766"
+     inkscape:window-x="-4"
+     inkscape:window-y="-4"
+     inkscape:current-layer="layer1" />
+  <defs
+     id="defs2227" />
+  <g
+     id="layer1">
+    <path
+       sodipodi:type="arc"
+       style="fill:#cccccc"
+       id="path2184"
+       sodipodi:cx="66"
+       sodipodi:cy="968.86218"
+       sodipodi:rx="50"
+       sodipodi:ry="25"
+       d="M 116 968.86218 A 50 25 0 1 1  16,968.86218 A 50 25 0 1 1  116 968.86218 z"
+       transform="translate(13.730725,16.499966)" />
+    <path
+       d="M 109.73073,924.86212 L 109.73073,964.86212"
+       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       id="path3218" />
+    <path
+       d="M 109.73074,965.36212 L 107.26664,961.09417 L 104.80253,956.82622 L 109.73074,956.82622 L 114.65893,956.82622 L 112.19484,961.09417 L 109.73074,965.36212 z "
+       style="fill:#000000"
+       id="path3220" />
+    <path
+       d="M 79.730725,1009.8622 L 79.730725,1049.8622"
+       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       id="path3222" />
+    <path
+       d="M 79.730728,1050.3622 L 77.266628,1046.0942 L 74.80252,1041.8263 L 79.730728,1041.8263 L 84.65893,1041.8263 L 82.194829,1046.0942 L 79.730728,1050.3622 z "
+       style="fill:#000000"
+       id="path3224" />
+    <flowRoot
+       transform="matrix(1.0140005,0,0,1,4.7910955,10.599166)"
+       id="flowRoot3226"
+       xml:space="preserve"><flowRegion
+         id="flowRegion3228"><rect
+           width="20.799999"
+           height="22.6"
+           x="106.4"
+           y="913.36218"
+           id="rect3230" /></flowRegion><flowPara
+         style="font-size:18px"
+         id="flowPara3232">y</flowPara></flowRoot>    <path
+       d="M 49.730816,924.86212 L 49.730816,964.86212"
+       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       id="path3242" />
+    <path
+       d="M 49.730833,965.36212 L 47.266733,961.09417 L 44.802625,956.82622 L 49.730833,956.82622 L 54.659035,956.82622 L 52.194934,961.09417 L 49.730833,965.36212 z "
+       style="fill:#000000"
+       id="path3244" />
+    <flowRoot
+       transform="matrix(1.0140005,0,0,1,-107.13477,14.431197)"
+       id="flowRoot3246"
+       xml:space="preserve"><flowRegion
+         id="flowRegion3248"><rect
+           width="95.750656"
+           height="115.6"
+           x="106.4"
+           y="913.36218"
+           id="rect3250" /></flowRegion><flowPara
+         style="font-size:18px"
+         id="flowPara3252"><flowSpan
+   style="font-style:italic"
+   id="flowSpan2193">fix(</flowSpan>x<flowSpan
+   style="font-style:italic"
+   id="flowSpan2195">)</flowSpan></flowPara></flowRoot>    <flowRoot
+       transform="matrix(1.0140005,0,0,1,0.443587,52.557702)"
+       id="flowRoot2367"
+       xml:space="preserve"><flowRegion
+         id="flowRegion2369"><rect
+           width="20.799999"
+           height="22.6"
+           x="106.4"
+           y="913.36218"
+           id="rect2371" /></flowRegion><flowPara
+         style="font-size:18px"
+         id="flowPara2373">obvoddsfsad</flowPara></flowRoot>    <flowRoot
+       transform="matrix(1.0140005,0,0,1,5.7032684,54.80528)"
+       id="flowRoot2186"
+       xml:space="preserve"><flowRegion
+         id="flowRegion2188"><rect
+           width="20.799999"
+           height="22.6"
+           x="106.4"
+           y="913.36218"
+           id="rect2190" /></flowRegion><flowPara
+         style="font-size:18px"
+         id="flowPara2192">yo</flowPara></flowRoot>    <flowRoot
+       xml:space="preserve"
+       id="flowRoot2210"
+       style="text-align:center;text-anchor:middle"
+       transform="translate(-86.775134,22.557937)"><flowRegion
+         id="flowRegion2212"><rect
+           id="rect2214"
+           width="168"
+           height="110.5"
+           x="82.5"
+           y="950.36218"
+           style="text-align:center;text-anchor:middle" /></flowRegion><flowPara
+         id="flowPara2216"
+         style="font-size:12px">obvod pro</flowPara><flowPara
+         id="flowPara2218"
+         style="font-size:12px">K</flowPara></flowRoot>    <flowRoot
+       transform="matrix(1.0140005,0,0,1,-25.259407,114.38609)"
+       id="flowRoot2185"
+       xml:space="preserve"><flowRegion
+         id="flowRegion2187"><rect
+           width="95.750656"
+           height="85.099998"
+           x="106.4"
+           y="913.36218"
+           id="rect2189" /></flowRegion><flowPara
+         style="font-size:12px;font-style:italic"
+         id="flowPara2191">1/0</flowPara></flowRoot>  </g>
+</svg>
diff --git a/11-np/not.eps b/11-np/not.eps
new file mode 100644 (file)
index 0000000..7749942
--- /dev/null
@@ -0,0 +1,170 @@
+%!PS-Adobe-3.0 EPSF-3.0
+%%Creator: 0.45.1
+%%Pages: 1
+%%Orientation: Portrait
+%%BoundingBox: 1 1 35 99
+%%HiResBoundingBox: 1.6 1.5999861 34.8 98.400018
+%%EndComments
+%%Page: 1 1
+0 842 translate
+0.8 -0.8 scale
+0 0 0 setrgbcolor
+[] 0 setdash
+1 setlinewidth
+0 setlinejoin
+0 setlinecap
+gsave [1 0 0 1 0 0] concat
+0 0 0 setrgbcolor
+[] 0 setdash
+1 setlinewidth
+0 setlinejoin
+0 setlinecap
+newpath
+2.5 969.86216 moveto
+42.5 969.86216 lineto
+42.5 969.86216 lineto
+42.5 969.86216 lineto
+43 969.86216 lineto
+stroke
+0 0 0 setrgbcolor
+[] 0 setdash
+1 setlinewidth
+0 setlinejoin
+0 setlinecap
+newpath
+2.5 1009.8622 moveto
+42.5 1009.8622 lineto
+42.5 1009.8622 lineto
+42.5 1009.8622 lineto
+43 1009.8622 lineto
+stroke
+0 0 0 setrgbcolor
+[] 0 setdash
+1 setlinewidth
+0 setlinejoin
+0 setlinecap
+newpath
+42.625 969.36216 moveto
+42.625 1009.3622 lineto
+42.625 1009.3622 lineto
+42.625 1009.3622 lineto
+42.625 1009.8622 lineto
+stroke
+0 0 0 setrgbcolor
+[] 0 setdash
+1 setlinewidth
+0 setlinejoin
+0 setlinecap
+newpath
+2.625 969.36216 moveto
+2.625 1009.3622 lineto
+2.625 1009.3622 lineto
+2.625 1009.3622 lineto
+2.625 1009.8622 lineto
+stroke
+0 0 0 setrgbcolor
+[] 0 setdash
+1 setlinewidth
+0 setlinejoin
+0 setlinecap
+newpath
+22.75 1009.8622 moveto
+22.75 1049.8622 lineto
+stroke
+gsave
+0 0 0 setrgbcolor
+newpath
+22.750001 1050.3622 moveto
+20.285901 1046.0942 lineto
+17.821793 1041.8263 lineto
+22.750001 1041.8263 lineto
+27.678203 1041.8263 lineto
+25.214102 1046.0942 lineto
+22.750001 1050.3622 lineto
+closepath
+fill
+grestore
+gsave [1.0140005 0 0 1 -81.31463 105.59921] concat
+gsave
+0 0 0 setrgbcolor
+newpath
+112.19824 928.52077 moveto
+111.74121 929.69264 111.29589 930.45729 110.8623 930.81472 curveto
+110.42871 931.17213 109.84863 931.35084 109.12207 931.35085 curveto
+107.83008 931.35085 lineto
+107.83008 929.99733 lineto
+108.7793 929.99733 lineto
+109.22461 929.99733 109.57031 929.89186 109.81641 929.68093 curveto
+110.0625 929.46999 110.33496 928.97194 110.63379 928.18679 curveto
+110.92383 927.4485 lineto
+106.94238 917.76296 lineto
+108.65625 917.76296 lineto
+111.73242 925.46218 lineto
+114.80859 917.76296 lineto
+116.52246 917.76296 lineto
+112.19824 928.52077 lineto
+closepath
+fill
+grestore
+grestore
+0 0 0 setrgbcolor
+[] 0 setdash
+1 setlinewidth
+0 setlinejoin
+0 setlinecap
+newpath
+22.750191 929.86216 moveto
+22.750191 969.86216 lineto
+stroke
+gsave
+0 0 0 setrgbcolor
+newpath
+22.750208 970.36216 moveto
+20.286108 966.09421 lineto
+17.822 961.82626 lineto
+22.750208 961.82626 lineto
+27.678409 961.82626 lineto
+25.214309 966.09421 lineto
+22.750208 970.36216 lineto
+closepath
+fill
+grestore
+gsave [1.0140005 0 0 1 -81.296609 15.599212] concat
+gsave
+0 0 0 setrgbcolor
+newpath
+116.28516 917.76296 moveto
+112.72559 922.553 lineto
+116.46973 927.60671 lineto
+114.5625 927.60671 lineto
+111.69727 923.73952 lineto
+108.83203 927.60671 lineto
+106.9248 927.60671 lineto
+110.74805 922.45632 lineto
+107.25 917.76296 lineto
+109.15723 917.76296 lineto
+111.76758 921.26979 lineto
+114.37793 917.76296 lineto
+116.28516 917.76296 lineto
+closepath
+fill
+grestore
+grestore
+gsave [1.0140005 0 0 1 -92.084684 64.763572] concat
+gsave
+0 0 0 setrgbcolor
+newpath
+106.88339 922.20106 moveto
+119.61489 922.20106 lineto
+119.61489 927.49615 lineto
+118.11364 927.49615 lineto
+118.11364 923.6674 lineto
+106.88339 923.69067 lineto
+106.88339 922.20106 lineto
+closepath
+fill
+grestore
+grestore
+grestore
+showpage
+%%EOF
diff --git a/11-np/not.svg b/11-np/not.svg
new file mode 100644 (file)
index 0000000..18cc599
--- /dev/null
@@ -0,0 +1,121 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://web.resource.org/cc/"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   version="1.0"
+   width="744.09448"
+   height="1052.3622"
+   id="svg2"
+   sodipodi:version="0.32"
+   inkscape:version="0.45.1"
+   sodipodi:docname="not.svg"
+   inkscape:output_extension="org.inkscape.output.svg.inkscape"
+   sodipodi:docbase="C:\_pict">
+  <metadata
+     id="metadata32">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <sodipodi:namedview
+     inkscape:window-height="712"
+     inkscape:window-width="1024"
+     inkscape:pageshadow="2"
+     inkscape:pageopacity="0.0"
+     guidetolerance="10.0"
+     gridtolerance="10.0"
+     objecttolerance="10.0"
+     borderopacity="1.0"
+     bordercolor="#666666"
+     pagecolor="#ffffff"
+     id="base"
+     inkscape:zoom="2"
+     inkscape:cx="153.63612"
+     inkscape:cy="99.173437"
+     inkscape:window-x="0"
+     inkscape:window-y="22"
+     inkscape:current-layer="layer1" />
+  <defs
+     id="defs2227" />
+  <g
+     id="layer1">
+    <path
+       d="M 2.5,969.86216 L 42.5,969.86216 L 42.5,969.86216 L 42.5,969.86216 L 43,969.86216"
+       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       id="path3210" />
+    <path
+       d="M 2.5,1009.8622 L 42.5,1009.8622 L 42.5,1009.8622 L 42.5,1009.8622 L 43,1009.8622"
+       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       id="path3212" />
+    <path
+       d="M 42.625,969.36216 L 42.625,1009.3622 L 42.625,1009.3622 L 42.625,1009.3622 L 42.625,1009.8622"
+       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       id="path3214" />
+    <path
+       d="M 2.625,969.36216 L 2.625,1009.3622 L 2.625,1009.3622 L 2.625,1009.3622 L 2.625,1009.8622"
+       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       id="path3216" />
+    <path
+       d="M 22.75,1009.8622 L 22.75,1049.8622"
+       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       id="path3222" />
+    <path
+       d="M 22.750001,1050.3622 L 20.285901,1046.0942 L 17.821793,1041.8263 L 22.750001,1041.8263 L 27.678203,1041.8263 L 25.214102,1046.0942 L 22.750001,1050.3622 z "
+       style="fill:#000000"
+       id="path3224" />
+    <flowRoot
+       transform="matrix(1.0140005,0,0,1,-81.31463,105.59921)"
+       id="flowRoot3234"
+       xml:space="preserve"><flowRegion
+         id="flowRegion3236"><rect
+           width="20.799999"
+           height="22.6"
+           x="106.4"
+           y="913.36218"
+           id="rect3238" /></flowRegion><flowPara
+         style="font-size:18px"
+         id="flowPara2184">y</flowPara></flowRoot>    <path
+       d="M 22.750191,929.86216 L 22.750191,969.86216"
+       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       id="path3242" />
+    <path
+       d="M 22.750208,970.36216 L 20.286108,966.09421 L 17.822,961.82626 L 22.750208,961.82626 L 27.678409,961.82626 L 25.214309,966.09421 L 22.750208,970.36216 z "
+       style="fill:#000000"
+       id="path3244" />
+    <flowRoot
+       transform="matrix(1.0140005,0,0,1,-81.296609,15.599212)"
+       id="flowRoot3246"
+       xml:space="preserve"><flowRegion
+         id="flowRegion3248"><rect
+           width="20.799999"
+           height="22.6"
+           x="106.4"
+           y="913.36218"
+           id="rect3250" /></flowRegion><flowPara
+         style="font-size:18px"
+         id="flowPara3252">x</flowPara></flowRoot>    <flowRoot
+       transform="matrix(1.0140005,0,0,1,-92.084684,64.763572)"
+       id="flowRoot2174"
+       xml:space="preserve"
+       style="font-size:23.83373833px;font-weight:bold;font-family:Times New Roman"><flowRegion
+         id="flowRegion2176"><rect
+           width="65.178673"
+           height="46.599998"
+           x="106.4"
+           y="913.36218"
+           id="rect2178"
+           style="font-size:23.83373833px;font-weight:bold;font-family:Times New Roman" /></flowRegion><flowPara
+         style="font-size:23.83373833px;font-weight:bold;font-family:Times New Roman"
+         id="flowPara2180">¬</flowPara></flowRoot>  </g>
+</svg>
diff --git a/11-np/p-np.eps b/11-np/p-np.eps
new file mode 100644 (file)
index 0000000..0cd4e36
--- /dev/null
@@ -0,0 +1,350 @@
+%!PS-Adobe-3.0 EPSF-3.0
+%%Creator: 0.45.1
+%%Pages: 1
+%%Orientation: Portrait
+%%BoundingBox: 1 1 122 162
+%%HiResBoundingBox: 1.5999993 1.5999983 121.60003 161.59997
+%%EndComments
+%%Page: 1 1
+0 842 translate
+0.8 -0.8 scale
+0 0 0 setrgbcolor
+[] 0 setdash
+1 setlinewidth
+0 setlinejoin
+0 setlinecap
+gsave [1 0 0 1 0 0] concat
+gsave [1 0 0 1 2 -2.0000026] concat
+gsave
+1 1 1 setrgbcolor
+newpath
+149.85837 952.36221 moveto
+149.85837 1007.5124 116.34314 1052.2205 75.000013 1052.2205 curveto
+33.656885 1052.2205 0.14165707 1007.5124 0.14165707 952.36221 curveto
+0.14165707 897.21198 33.656885 852.50388 75.000013 852.50388 curveto
+116.34314 852.50388 149.85837 897.21198 149.85837 952.36221 curveto
+149.85837 952.36221 lineto
+closepath
+eofill
+grestore
+0 0 0 setrgbcolor
+[] 0 setdash
+0.28331581 setlinewidth
+0 setlinejoin
+0 setlinecap
+newpath
+149.85837 952.36221 moveto
+149.85837 1007.5124 116.34314 1052.2205 75.000013 1052.2205 curveto
+33.656885 1052.2205 0.14165707 1007.5124 0.14165707 952.36221 curveto
+0.14165707 897.21198 33.656885 852.50388 75.000013 852.50388 curveto
+116.34314 852.50388 149.85837 897.21198 149.85837 952.36221 curveto
+149.85837 952.36221 lineto
+closepath
+stroke
+gsave
+0.80000001 0.80000001 0.80000001 setrgbcolor
+newpath
+125.00001 902.36221 moveto
+125.00813 916.1722 102.61999 927.36955 75.000014 927.36955 curveto
+47.380038 927.36955 24.991899 916.1722 25.000015 902.36221 curveto
+24.991899 888.55223 47.380038 877.35487 75.000014 877.35487 curveto
+102.61999 877.35487 125.00813 888.55223 125.00001 902.36221 curveto
+closepath
+fill
+grestore
+gsave [1 0 0 1 -349.14842 218.39392] concat
+gsave
+0 0 0 setrgbcolor
+newpath
+395.02734 678.77101 moveto
+396.62109 678.77101 lineto
+399.03516 686.27101 lineto
+400.5 678.77101 lineto
+401.6543 678.77101 lineto
+399.94922 687.51905 lineto
+398.34961 687.51905 lineto
+395.94141 679.97218 lineto
+394.47656 687.51905 lineto
+393.32227 687.51905 lineto
+395.02734 678.77101 lineto
+closepath
+fill
+grestore
+gsave
+0 0 0 setrgbcolor
+newpath
+404.00391 678.77101 moveto
+406.74023 678.77101 lineto
+407.5371 678.77102 408.14453 678.95656 408.5625 679.32765 curveto
+408.98046 679.69875 409.18945 680.24172 409.18945 680.95655 curveto
+409.18945 681.9175 408.88085 682.66554 408.26367 683.2007 curveto
+407.64648 683.73586 406.77929 684.00343 405.66211 684.00343 curveto
+404.17383 684.00343 lineto
+403.48828 687.51905 lineto
+402.29883 687.51905 lineto
+404.00391 678.77101 lineto
+closepath
+405 679.74366 moveto
+404.36719 683.03077 lineto
+405.85547 683.03077 lineto
+406.52734 683.03078 407.04296 682.8589 407.40234 682.51515 curveto
+407.76171 682.1714 407.9414 681.67922 407.94141 681.03859 curveto
+407.9414 680.62844 407.81933 680.31008 407.5752 680.08351 curveto
+407.33105 679.85695 406.98828 679.74367 406.54688 679.74366 curveto
+405 679.74366 lineto
+closepath
+fill
+grestore
+gsave
+0 0 0 setrgbcolor
+newpath
+413.77148 683.75148 moveto
+416.92969 683.75148 lineto
+416.74805 684.71241 lineto
+413.57813 684.71241 lineto
+413.77148 683.75148 lineto
+closepath
+fill
+grestore
+gsave
+0 0 0 setrgbcolor
+newpath
+421.99805 684.91749 moveto
+422.76563 680.95655 lineto
+423.84961 680.95655 lineto
+423.08203 684.87648 lineto
+423.04297 685.06789 423.01465 685.23195 422.99707 685.36866 curveto
+422.97949 685.50539 422.9707 685.61867 422.9707 685.70851 curveto
+422.9707 686.04054 423.07226 686.29738 423.27539 686.47902 curveto
+423.47851 686.66066 423.76562 686.75148 424.13672 686.75148 curveto
+424.71484 686.75148 425.21484 686.55617 425.63672 686.16554 curveto
+426.05859 685.77492 426.33398 685.24953 426.46289 684.58937 curveto
+427.18359 680.95655 lineto
+428.26172 680.95655 lineto
+426.99023 687.51905 lineto
+425.91211 687.51905 lineto
+426.12891 686.4878 lineto
+425.82421 686.87062 425.46191 687.16652 425.04199 687.3755 curveto
+424.62207 687.58448 424.17578 687.68898 423.70313 687.68898 curveto
+423.1289 687.68898 422.68164 687.53175 422.36133 687.2173 curveto
+422.04101 686.90284 421.88086 686.46437 421.88086 685.90187 curveto
+421.88086 685.78468 421.89062 685.6382 421.91016 685.46241 curveto
+421.92969 685.28664 421.95898 685.10499 421.99805 684.91749 curveto
+421.99805 684.91749 lineto
+closepath
+426.92578 677.9214 moveto
+428.0918 677.9214 lineto
+425.75391 680.12452 lineto
+424.85156 680.12452 lineto
+426.92578 677.9214 lineto
+closepath
+fill
+grestore
+gsave
+0 0 0 setrgbcolor
+newpath
+434.76563 683.47609 moveto
+434.76562 682.90187 434.64062 682.46242 434.39063 682.15773 curveto
+434.14062 681.85304 433.78125 681.7007 433.3125 681.7007 curveto
+432.99218 681.7007 432.68652 681.78273 432.39551 681.94679 curveto
+432.10449 682.11086 431.8457 682.34914 431.61914 682.66163 curveto
+431.39648 682.97023 431.21875 683.34328 431.08594 683.78077 curveto
+430.95312 684.21828 430.88672 684.65187 430.88672 685.08155 curveto
+430.88672 685.62843 431.01172 686.04933 431.26172 686.34425 curveto
+431.51172 686.63917 431.86718 686.78663 432.32813 686.78663 curveto
+432.66796 686.78663 432.98339 686.70656 433.27441 686.5464 curveto
+433.56542 686.38624 433.81445 686.15382 434.02148 685.84913 curveto
+434.24414 685.52882 434.42382 685.15187 434.56055 684.71827 curveto
+434.69726 684.28468 434.76562 683.87062 434.76563 683.47609 curveto
+434.76563 683.47609 lineto
+closepath
+431.42578 681.95265 moveto
+431.71484 681.57375 432.05566 681.28664 432.44824 681.09132 curveto
+432.84082 680.89601 433.27734 680.79836 433.75781 680.79835 curveto
+434.42968 680.79836 434.95117 681.01808 435.32227 681.45753 curveto
+435.69335 681.89699 435.8789 682.5132 435.87891 683.30616 curveto
+435.8789 683.95461 435.76366 684.57277 435.5332 685.16066 curveto
+435.30273 685.74855 434.9707 686.27492 434.53711 686.73976 curveto
+434.24804 687.04835 433.92187 687.2837 433.55859 687.44581 curveto
+433.19531 687.60792 432.8125 687.68898 432.41016 687.68898 curveto
+431.94531 687.68898 431.55468 687.5923 431.23828 687.39894 curveto
+430.92187 687.20558 430.68555 686.91749 430.5293 686.53468 curveto
+429.85547 690.01515 lineto
+428.77734 690.01515 lineto
+430.54102 680.95655 lineto
+431.61914 680.95655 lineto
+431.42578 681.95265 lineto
+closepath
+fill
+grestore
+gsave
+0 0 0 setrgbcolor
+newpath
+438.62695 678.40187 moveto
+439.70508 678.40187 lineto
+437.92969 687.51905 lineto
+436.85156 687.51905 lineto
+438.62695 678.40187 lineto
+closepath
+fill
+grestore
+gsave
+0 0 0 setrgbcolor
+newpath
+446.44336 683.55812 moveto
+445.67578 687.51905 lineto
+444.5918 687.51905 lineto
+445.35938 683.59913 lineto
+445.39453 683.41554 445.42187 683.25343 445.44141 683.1128 curveto
+445.46093 682.97218 445.4707 682.86086 445.4707 682.77882 curveto
+445.4707 682.4507 445.36718 682.19484 445.16016 682.01124 curveto
+444.95312 681.82765 444.66406 681.73586 444.29297 681.73585 curveto
+443.71484 681.73586 443.21679 681.92824 442.79883 682.313 curveto
+442.38086 682.69777 442.10742 683.22023 441.97852 683.88038 curveto
+441.25781 687.51905 lineto
+440.17969 687.51905 lineto
+441.45117 680.95655 lineto
+442.5293 680.95655 lineto
+442.3125 681.9878 lineto
+442.61328 681.6089 442.97461 681.31594 443.39648 681.1089 curveto
+443.81836 680.90187 444.26171 680.79836 444.72656 680.79835 curveto
+445.30468 680.79836 445.75292 680.95461 446.07129 681.2671 curveto
+446.38964 681.57961 446.54882 682.01906 446.54883 682.58546 curveto
+446.54882 682.72609 446.54003 682.87648 446.52246 683.03663 curveto
+446.50488 683.19679 446.47851 683.37062 446.44336 683.55812 curveto
+446.44336 683.55812 lineto
+closepath
+fill
+grestore
+gsave
+0 0 0 setrgbcolor
+newpath
+453.14648 683.65187 moveto
+453.1582 683.58937 453.16699 683.52492 453.17285 683.45851 curveto
+453.17871 683.39211 453.18163 683.3257 453.18164 683.25929 curveto
+453.18163 682.78273 453.04199 682.40578 452.7627 682.12843 curveto
+452.48339 681.85109 452.10351 681.71242 451.62305 681.71241 curveto
+451.08789 681.71242 450.61523 681.88137 450.20508 682.21925 curveto
+449.79492 682.55715 449.48437 683.03664 449.27344 683.65773 curveto
+453.14648 683.65187 lineto
+closepath
+454.08398 684.49562 moveto
+449.06836 684.49562 lineto
+449.04492 684.64406 449.0293 684.76125 449.02148 684.84718 curveto
+449.01367 684.93312 449.00976 685.00734 449.00977 685.06984 curveto
+449.00976 685.61281 449.17676 686.03273 449.51074 686.3296 curveto
+449.84472 686.62648 450.3164 686.77491 450.92578 686.77491 curveto
+451.39453 686.77491 451.83789 686.72218 452.25586 686.61671 curveto
+452.67382 686.51124 453.06249 686.35695 453.42188 686.15382 curveto
+453.2168 687.22023 lineto
+452.83007 687.37648 452.43066 687.49366 452.01855 687.57179 curveto
+451.60644 687.64991 451.1875 687.68898 450.76172 687.68898 curveto
+449.85156 687.68898 449.15137 687.4712 448.66113 687.03566 curveto
+448.1709 686.60011 447.92578 685.98195 447.92578 685.18116 curveto
+447.92578 684.49757 448.04785 683.86183 448.29199 683.27394 curveto
+448.53613 682.68605 448.89453 682.16164 449.36719 681.7007 curveto
+449.67187 681.41164 450.03418 681.18898 450.4541 681.03273 curveto
+450.87402 680.87648 451.32031 680.79836 451.79297 680.79835 curveto
+452.53515 680.79836 453.12597 681.02101 453.56543 681.46632 curveto
+454.00488 681.91164 454.2246 682.50929 454.22461 683.25929 curveto
+454.2246 683.43898 454.21288 683.63136 454.18945 683.83644 curveto
+454.16601 684.04152 454.13085 684.26125 454.08398 684.49562 curveto
+454.08398 684.49562 lineto
+closepath
+453.12891 677.9214 moveto
+454.29492 677.9214 lineto
+451.95703 680.12452 lineto
+451.05469 680.12452 lineto
+453.12891 677.9214 lineto
+closepath
+fill
+grestore
+grestore
+gsave [1.0794981 0 0 1.1120691 -10.146435 2.3213619] concat
+gsave
+0.80000001 0.80000001 0.80000001 setrgbcolor
+newpath
+125.19378 899.26141 moveto
+125.2013 911.67969 104.4619 921.74863 78.87596 921.74863 curveto
+53.290018 921.74863 32.550621 911.67969 32.55814 899.26141 curveto
+32.550621 886.84313 53.290018 876.77419 78.87596 876.77419 curveto
+104.4619 876.77419 125.2013 886.84313 125.19378 899.26141 curveto
+closepath
+fill
+grestore
+grestore
+gsave [1 0 0 1 32.998062 -15.126589] concat
+gsave
+0 0 0 setrgbcolor
+newpath
+40.027344 1013.1148 moveto
+42.763672 1013.1148 lineto
+43.560541 1013.1148 44.167963 1013.3003 44.585938 1013.6714 curveto
+45.003899 1014.0425 45.212883 1014.5855 45.212891 1015.3003 curveto
+45.212883 1016.2612 44.90429 1017.0093 44.287109 1017.5444 curveto
+43.669916 1018.0796 42.80273 1018.3472 41.685547 1018.3472 curveto
+40.197266 1018.3472 lineto
+39.511719 1021.8628 lineto
+38.322266 1021.8628 lineto
+40.027344 1013.1148 lineto
+closepath
+41.023438 1014.0874 moveto
+40.390625 1017.3745 lineto
+41.878906 1017.3745 lineto
+42.550777 1017.3745 43.066401 1017.2027 43.425781 1016.8589 curveto
+43.78515 1016.5152 43.964838 1016.023 43.964844 1015.3823 curveto
+43.964838 1014.9722 43.842768 1014.6538 43.598633 1014.4273 curveto
+43.354487 1014.2007 43.011714 1014.0874 42.570313 1014.0874 curveto
+41.023438 1014.0874 lineto
+closepath
+fill
+grestore
+grestore
+gsave [1 0 0 1 108.07718 103.22423] concat
+gsave
+0 0 0 setrgbcolor
+newpath
+19.985352 936.01589 moveto
+22.375977 936.01589 lineto
+28.194336 946.99343 lineto
+28.194336 936.01589 lineto
+29.916992 936.01589 lineto
+29.916992 949.13796 lineto
+27.526367 949.13796 lineto
+21.708008 938.16042 lineto
+21.708008 949.13796 lineto
+19.985352 949.13796 lineto
+19.985352 936.01589 lineto
+closepath
+fill
+grestore
+gsave
+0 0 0 setrgbcolor
+newpath
+35.225586 937.47487 moveto
+35.225586 942.40554 lineto
+37.458008 942.40554 lineto
+38.284173 942.40554 38.922844 942.19168 39.374023 941.76393 curveto
+39.825187 941.33621 40.050773 940.72683 40.050781 939.93581 curveto
+40.050773 939.15066 39.825187 938.54422 39.374023 938.11647 curveto
+38.922844 937.68875 38.284173 937.47488 37.458008 937.47487 curveto
+35.225586 937.47487 lineto
+closepath
+33.450195 936.01589 moveto
+37.458008 936.01589 lineto
+38.928704 936.0159 40.040519 936.34842 40.793457 937.01345 curveto
+41.546377 937.6785 41.922841 938.65262 41.922852 939.93581 curveto
+41.922841 941.23074 41.546377 942.20925 40.793457 942.87136 curveto
+40.040519 943.53347 38.928704 943.86453 37.458008 943.86452 curveto
+35.225586 943.86452 lineto
+35.225586 949.13796 lineto
+33.450195 949.13796 lineto
+33.450195 936.01589 lineto
+closepath
+fill
+grestore
+grestore
+grestore
+grestore
+showpage
+%%EOF
diff --git a/11-np/p-np.svg b/11-np/p-np.svg
new file mode 100644 (file)
index 0000000..f2a44b9
--- /dev/null
@@ -0,0 +1,213 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://web.resource.org/cc/"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   version="1.0"
+   width="744.09448"
+   height="1052.3622"
+   id="svg2"
+   sodipodi:version="0.32"
+   inkscape:version="0.45.1"
+   sodipodi:docname="p-np.svg"
+   inkscape:output_extension="org.inkscape.output.svg.inkscape"
+   sodipodi:docbase="C:\_pict">
+  <metadata
+     id="metadata2237">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <sodipodi:namedview
+     inkscape:window-height="712"
+     inkscape:window-width="1024"
+     inkscape:pageshadow="2"
+     inkscape:pageopacity="0.0"
+     guidetolerance="10.0"
+     gridtolerance="10.0"
+     objecttolerance="10.0"
+     borderopacity="1.0"
+     bordercolor="#666666"
+     pagecolor="#ffffff"
+     id="base"
+     inkscape:zoom="3"
+     inkscape:cx="65.915632"
+     inkscape:cy="110.01628"
+     inkscape:window-x="-4"
+     inkscape:window-y="-4"
+     inkscape:current-layer="layer1" />
+  <defs
+     id="defs3" />
+  <g
+     id="layer1"
+     transform="translate(2,-2.0000026)">
+    <path
+       d="M 671.42856,485.21933 C 671.42856,711.65608 569.73324,895.21934 444.2857,895.21934 C 318.83817,895.21934 217.14285,711.65608 217.14285,485.21933 C 217.14285,258.78258 318.83817,75.219321 444.2857,75.219321 C 569.73324,75.219321 671.42856,258.78258 671.42856,485.21933 L 671.42856,485.21933 z "
+       transform="matrix(0.3295651,0,0,0.2435569,-71.421048,834.18368)"
+       style="fill:#ffffff;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       id="path2159" />
+    <path
+       d="M 125.19378,899.26141 C 125.2013,911.67969 104.4619,921.74863 78.87596,921.74863 C 53.290018,921.74863 32.550621,911.67969 32.55814,899.26141 C 32.550621,886.84313 53.290018,876.77419 78.87596,876.77419 C 104.4619,876.77419 125.2013,886.84313 125.19378,899.26141 z "
+       transform="matrix(1.0794981,0,0,1.1120691,-10.146435,-97.67864)"
+       style="fill:#cccccc"
+       id="path2267" />
+    <flowRoot
+       transform="translate(-349.14842,218.39392)"
+       style="font-size:12px"
+       id="flowRoot2185"
+       xml:space="preserve"><flowRegion
+         id="flowRegion2187"><rect
+           width="379.31131"
+           height="310.91092"
+           x="392.99139"
+           y="678.02545"
+           style="font-size:12px"
+           id="rect2189" /></flowRegion><flowPara
+         style="font-size:12px;font-style:normal;font-weight:normal"
+         id="flowPara2193">NP - úplné</flowPara></flowRoot>    <path
+       d="M 125.19378,899.26141 C 125.2013,911.67969 104.4619,921.74863 78.87596,921.74863 C 53.290018,921.74863 32.550621,911.67969 32.55814,899.26141 C 32.550621,886.84313 53.290018,876.77419 78.87596,876.77419 C 104.4619,876.77419 125.2013,886.84313 125.19378,899.26141 z "
+       transform="matrix(1.0794981,0,0,1.1120691,-10.146435,2.3213619)"
+       style="fill:#cccccc"
+       id="path2271" />
+    <flowRoot
+       transform="translate(32.998062,-15.126589)"
+       id="flowRoot2253"
+       xml:space="preserve"><flowRegion
+         id="flowRegion2255"><rect
+           width="69"
+           height="29"
+           x="38"
+           y="1012.3622"
+           id="rect2257" /></flowRegion><flowPara
+         id="flowPara2261">P</flowPara></flowRoot>    <flowRoot
+       transform="translate(44.045913,9.7852736)"
+       style="font-size:18px"
+       id="flowRoot2273"
+       xml:space="preserve"><flowRegion
+         id="flowRegion2275"><rect
+           width="113.95348"
+           height="32.558136"
+           x="18.217052"
+           y="934.92035"
+           style="font-size:18px"
+           id="rect2277" /></flowRegion><flowPara
+         id="flowPara2281">NP</flowPara><flowPara
+         id="flowPara2285" /></flowRoot>  </g>
+</svg>
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://web.resource.org/cc/"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   version="1.0"
+   width="744.09448"
+   height="1052.3622"
+   id="svg2"
+   sodipodi:version="0.32"
+   inkscape:version="0.45.1"
+   sodipodi:docname="p-np.svg"
+   inkscape:output_extension="org.inkscape.output.svg.inkscape"
+   sodipodi:docbase="C:\_pict">
+  <metadata
+     id="metadata2237">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <sodipodi:namedview
+     inkscape:window-height="712"
+     inkscape:window-width="1024"
+     inkscape:pageshadow="2"
+     inkscape:pageopacity="0.0"
+     guidetolerance="10.0"
+     gridtolerance="10.0"
+     objecttolerance="10.0"
+     borderopacity="1.0"
+     bordercolor="#666666"
+     pagecolor="#ffffff"
+     id="base"
+     inkscape:zoom="1"
+     inkscape:cx="65.915632"
+     inkscape:cy="71.428064"
+     inkscape:window-x="0"
+     inkscape:window-y="22"
+     inkscape:current-layer="layer1" />
+  <defs
+     id="defs3" />
+  <g
+     id="layer1"
+     transform="translate(2,-2.0000026)">
+    <path
+       d="M 149.85837,952.36221 C 149.85837,1007.5124 116.34314,1052.2205 75.000013,1052.2205 C 33.656885,1052.2205 0.14165707,1007.5124 0.14165707,952.36221 C 0.14165707,897.21198 33.656885,852.50388 75.000013,852.50388 C 116.34314,852.50388 149.85837,897.21198 149.85837,952.36221 L 149.85837,952.36221 z "
+       style="fill:#ffffff;fill-rule:evenodd;stroke:#000000;stroke-width:0.28331581px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       id="path2159" />
+    <path
+       d="M 125.00001,902.36221 C 125.00813,916.1722 102.61999,927.36955 75.000014,927.36955 C 47.380038,927.36955 24.991899,916.1722 25.000015,902.36221 C 24.991899,888.55223 47.380038,877.35487 75.000014,877.35487 C 102.61999,877.35487 125.00813,888.55223 125.00001,902.36221 z "
+       style="fill:#cccccc"
+       id="path2267" />
+    <flowRoot
+       transform="translate(-349.14842,218.39392)"
+       style="font-size:12px"
+       id="flowRoot2185"
+       xml:space="preserve"><flowRegion
+         id="flowRegion2187"><rect
+           width="379.31131"
+           height="310.91092"
+           x="392.99139"
+           y="678.02545"
+           style="font-size:12px"
+           id="rect2189" /></flowRegion><flowPara
+         style="font-size:12px;font-style:italic;font-weight:normal"
+         id="flowPara2193">NP - úplné</flowPara></flowRoot>    <path
+       d="M 125.19378,899.26141 C 125.2013,911.67969 104.4619,921.74863 78.87596,921.74863 C 53.290018,921.74863 32.550621,911.67969 32.55814,899.26141 C 32.550621,886.84313 53.290018,876.77419 78.87596,876.77419 C 104.4619,876.77419 125.2013,886.84313 125.19378,899.26141 z "
+       transform="matrix(1.0794981,0,0,1.1120691,-10.146435,2.3213619)"
+       style="fill:#cccccc"
+       id="path2271" />
+    <flowRoot
+       transform="translate(32.998062,-15.126589)"
+       id="flowRoot2253"
+       xml:space="preserve"><flowRegion
+         id="flowRegion2255"><rect
+           width="69"
+           height="29"
+           x="38"
+           y="1012.3622"
+           id="rect2257" /></flowRegion><flowPara
+         id="flowPara2261"
+         style="font-style:italic">P</flowPara></flowRoot>    <flowRoot
+       transform="translate(108.07718,103.22423)"
+       style="font-size:18px"
+       id="flowRoot2273"
+       xml:space="preserve"><flowRegion
+         id="flowRegion2275"><rect
+           width="113.95348"
+           height="32.558136"
+           x="18.217052"
+           y="934.92035"
+           style="font-size:18px"
+           id="rect2277" /></flowRegion><flowPara
+         id="flowPara2281"
+         style="font-weight:normal;font-style:normal">NP</flowPara><flowPara
+         id="flowPara2285"
+         style="font-style:normal;font-weight:normal" /></flowRoot>  </g>
+</svg>
index 2635b3d875e56b86eaa63def143fb6c27d6dba23..9a307fdc72ed8c86531d4c795477446ac5e8483b 100644 (file)
@@ -1,22 +1,46 @@
 \input lecnotes.tex
-\prednaska{12}{Aproximaèní algoritmy}{(???)}
+\prednaska{12}{Aproximaèné algoritmy}{(F. Ha¹ko, J. Menda)}
 
-\h{Pseudopolynomiální algoritmus pro problém batohu}
+\>Na~minulých predná¹kach sme sa zaoberali rôzne »a¾kými rozhodovacími problémami. Táto sa zaoberá postupmi ako sa v~praxi vysporiada» s~rie¹ením týchto problémov.
 
-\s{POZOR:} Na~pøedná¹ce byla jen verze bez cen, nauète se, prosím, obì. --M.M.
+\h{Prvý spôsob: ©peciálny prípad}
 
-\s{Problém batohu:} Je dána mno¾ina $n$~pøedmìtù s~hmotnostmi $h_1,\ldots,h_n$
-a cenami $c_1,\ldots,c_n$ a batoh, který unese hmotnost~$H$. Naleznìte takovou
-podmno¾inu pøedmìtù, jejich¾ celková hmotnost je nejvý¹e~$H$ a celková cena je
-maximální mo¾ná.
+\>Èasto si vystaèíme s~vyrie¹ením ¹peciálneho prípadu NP~problému, ktorý le¾í v~P. Napríklad, ak rie¹ime grafovú úlohu, tak nám mô¾e staèi» rie¹enie pre~¹peciálny graf (strom, bipartitný graf,$\ldots$). Farbenie grafu je µahké pre~nejaký malý poèet farieb. 2SAT, ako ¹peciálny prípad SAT-u sa dá rie¹i» v~lineárnom èase.
 
-Tento problém je zobecnìním problému batohu z~minulé pøedná¹ky dvìma smìry:
+\s{Problém: Maximálna nezávislá mno¾ina v strome (nie rozhodovacia)}
+
+\>{\I Vstup:} zakorenený strom~$T$
+\>{\I Vstup:} nezávislá mno¾ina vrcholov~$M$
+
+\>BUNV mô¾eme predpoklada», ¾e v~$M$ sú v¹etky listy~$T$. Ak by nejaký list $l$ nebol v~$M$, tak sa pozrieme na jeho otca:
+\itemize\ibull
+\:ak otec nie je v~$M$, tak vytvoríme novú nezávislú mno¾inu~$M'$ obsahujúcu aj~$l$ (veµkos» nezávislej mno¾iny stúpla o~1).
+\:ak tam otec je, tak ho z~$M$ vyjmeme a~namiesto neho vlo¾íme~$l$ (veµkos» nezávislej mno¾iny sa nezmen¹ila).
+\endlist
+\>Tieto listy aj ich otcov z~$T$ odstránime a~postup opakujeme. $T$ sa mô¾e rozpadnú» na~les; potom tento postup aplikujeme na~v¹etky stromy v~lese.
+
+\s{Algoritmus:}
+\algo
+\:Polo¾íme $M1:={listy stromu T}$.
+\:Polo¾íme $M2:={otcovia vrcholov z~M1}$.
+\:Vrátime $M1 \cup MaxNz(T\setminus(M1 \cup M2)$
+\endalgo
+\>{\I Poznámka:} toto doká¾eme naprogramova» v \O(n) (vrcholy máme vo fronte a prechádzame).
+
+\s{Problém: Batoh}
+
+\>Je daná mno¾ina $n$~predmetov s~hmotnos»ami $h_1,\ldots,h_n$
+a cenami $c_1,\ldots,c_n$ a~batoh, ktorý unesie hmotnos»~$H$. Nájdite takú
+podmno¾inu predmetov, ktorých celková hmotnos» je najviac~$H$ a~celková cena je
+maximálna mo¾ná.
+
+\>Tento problém je zobecnìním problému batohu z~minulé pøedná¹ky dvìma smìry:
 Jednak místo rozhodovacího problému øe¹íme optimalizaèní, jednak pøedmìty
 mají ceny (pøedchozí verze odpovídala tomu, ¾e ceny jsou rovny hmotnostem).
 Uká¾eme si algoritmus pro øe¹ení tohoto obecného problému, jeho¾ èasová
 slo¾itost bude polynomiální v~poètu pøedmìtù~$n$ a souètu v¹ech cen~$C=\sum_i c_i$.
 
-Pou¾ijeme dynamické programování. Pøedstavme si problém omezený na~prvních~$k$
+\>Pou¾ijeme dynamické programování. Pøedstavme si problém omezený na~prvních~$k$
 pøedmìtù. Oznaème si $A_k(c)$ (kde $0\le c\le C$) minimální hmotnost
 podmno¾iny, její¾ cena je právì~$c$. Tato $A_k$ spoèteme indukcí podle~$k$:
 Pro $k=0$ je urèitì $A_0(0)=0$, $A_0(c)=\infty$ pro $c>0$. Pokud ji¾ známe
@@ -30,18 +54,18 @@ A_k(c) = \min (A_{k-1}(c), A_{k-1}(c-c_k) + h_k).
 $$
 Tímto zpùsobem v~èase $\O(C)$ spoèteme jednu mno¾inu, v~èase $\O(nC)$ pak v¹echny.
 
-Podle $A_n$ snadno nalezneme maximální cenu mno¾iny, která se vejde do batohu. To bude
+\>Podle $A_n$ snadno nalezneme maximální cenu mno¾iny, která se vejde do batohu. To bude
 nejvìt¹í~$c^*$, pro nì¾ je $A_n(c^*) < \infty$. Jeho nalezení nás stojí èas $\O(C)$.
 
-A~jak zjistit, které pøedmìty do~nalezené mno¾iny patøí? Upravíme algoritmus,
+\>A~jak zjistit, které pøedmìty do~nalezené mno¾iny patøí? Upravíme algoritmus,
 aby si pro ka¾dé $A_k(c)$ pamatoval $B_k(c)$, co¾ bude index posledního pøedmìtu,
 který jsme do~pøíslu¹né mno¾iny pøidali. Pro nalezené $c^*$ tedy bude $i=B_n(c^*)$
 poslední pøedmìt v~nalezené mno¾inì, $i'=B_{i-1}(c^*-c_i)$ ten pøedposlední
 a tak dále. Takto v~èase $\O(n)$ rekonstruujeme celou mno¾inu od~posledního
 prvku k~prvnímu.
 
-Ukázali jsme tedy algoritmus s~èasovou slo¾itostí $\O(nC)$, který vyøe¹í
-problém batohu. Jeho slo¾itost není polynomem ve~velikosti vstupu ($C$~mu¾e být a¾ exponenciálnì
+\>Ukázali jsme tedy algoritmus s~èasovou slo¾itostí $\O(nC)$, který vyøe¹í
+problém batohu. Jeho slo¾itost není polynomem ve~velikosti vstupu ( $C$~mu¾e být a¾ exponenciálnì
 velké vzhledem k~velikosti vstupu), ale pouze ve~velikosti èísel na~vstupu.
 Takovým algoritmùm se øíká {\I pseudopolynomiální.}
 
@@ -52,6 +76,47 @@ n
 spoèteme ze~$Z_{k-1}$ a ze~$Z_n$ vyèteme výsledek. V¹echny tyto mno¾iny
 mají nejvý¹e $H$ prvkù, tak¾e celková èasová slo¾itost algoritmu je~$\O(nH)$.
 
+\h{Druhý spôsob: Aproximácia}
+
+\>V predchádzajúcich problémoch sme sa zamerali na ¹peciálne prípady. Obèas v¹ak také ¹tastie nemáme a~musíme vyrie¹i» NP-úplný problém. Mo¾eme ustúpi» tak, ¾e nebudeme rie¹i» nieèo, èo je úplne optimálne, ale je to nejaky pomer optimalnosti ({\I aproximácia}), t.j. vieme o~koµko maximálne je na¹e rie¹enie hor¹ie ako optimálne.
+
+\s{Problém: Obchodný cestujuci}
+
+\>{\I Vstup:} neorientovaný graf $G$, popisujúci nejaku krajinu a~ka¾dá hrana je ohodnotená funkciou $w: E(G)\rightarrow R^+_0$
+\>{\I Vystup:} Hamiltonovská kru¾nica (v¹etky vrcholy grafu), a~to tá najkrat¹ia (podµa ohodnotenia).
+
+\>Tento problém je hneï na~prvý pohµad nároèný - u¾ problém, èi existuje Hamiltonovská kru¾nica je NP-úplný. BUNV nech graf~$G$ je úplný (doplnime zvy¹né hrany ohodnotené $max(w)+1$ alebo viac, nie v¹ak nekoneènom, lebo by neplatila trojuholníková nerovnos»). Vyrie¹me tento problém najprv za~predpokladu, ¾e vrcholy grafu spåòajú trojuholníkovú nerovnos», potom bez nej.
+
+\>{\I a) trojuholníková nerovnos»:} $\forall x,y,z \in V: w(xz)\le w(xy)+w(yz)$
+
+\>Existuje pekný algoritmus, ktory nájde Hamiltonovsku kru¾nicu, èo je
+maximálne dvakrát tak veµká ako najoptimálnej¹ia.
+
+\>Nájdeme najmen¹iu kostru a~obchodnému cestujúcemu poradíme, nech ide po~nej (staèí zakoreni» a~prejs» do~håbky). Problémom v¹ak je, ¾e daný sled obsahuje ka¾dý vrchol viackrát a~preto musíme nahradi» nepovolené vracania sa, t.j.~pre ka¾dý vrchol nájs» e¹te nenav¹tívený vrchol v~na¹om slede a~ís» priamo naò. Keï¾e platí trojuholníková nerovnos», tak si týmito skratkami neu¹kodíme. Nech minimálna kostra má váhu~$T$. Váha obídeného sledu tak bude~$2T$. Skrátenia urèite nezväè¹ujú, tak¾e váha nájdene Hamiltonovskej kru¾nice bude nanajvý¹~$2T$.
+
+\>Ak máme Hamiltonovskú kru¾nicu~$C$ a~z~nej vy¹krtneme hranu, tak máme kostru grafu~$G$ s~váhou najviac~$w(C)$, teda to aspoò takú, aká je váha minimálnej kostry - $T$. To je optimálny prípad Hamiltonovskej kru¾nice. Ak to teda zlo¾íme dohromady, algoritmus nám vráti Hamiltonovskú kru¾nicu s~váhou najviac dvojnásobnou od~optimálnej Hamiltonovskej kru¾nice. Takéto algoritmy sa nazývajú {\I 2-aproximaèné}, keï¾e rie¹enie je maximálne dvojnásobné od~optimálneho.
+
+\>{\I b) bez~trojuholníkovej nerovnosti}
+\>Tu sa budeme naopak sna¾i» ukáza», ¾e ¾iaden polynomiálny aproximaèný algoritmus neexistuje.
+
+\s{Veta:} Ak existuje polynomiálny $(1+\varepsilon)$-aproximaèný algoritmus pre~algoritmus obchodného cestujúceho bez~trojuholníkovej nerovnosti pre~µubovoµné $\varepsilon>0$, potom $P~=~NP$.
+\>Dôkaz: Uká¾eme, ¾e v~tom prípade doká¾eme v~polynomiálnom èase nájs» Hamiltonovskú kru¾nicu.
+
+\>Dostali sme graf $G$, v~ktorom hµadáme Hamiltonovskú kru¾nicu. Doplníme $G$ na~uplný graf~$G'$ a~váhy hrán~$G'$
+\itemize\ibull
+\: $w(e) = 1$, ak $e \in E(G)$
+\: $w(e) = c \ll 1$, ak $e \in E(G)$
+\endlist
+\>Ak existuje Hamiltonovská kru¾nica v~$G'$ zlo¾ená iba z~hrán, ktoré boli pôvodne v~$G$, tak optimálné rie¹enie bude ma» váhu $n$, inak bude urèite minimálne $n-1+c$. Ak máme aproximaèný algoritmus s~pomerom $1+\varepsilon$, musí by»
+$$
+\eqalign{
+(1+\varepsilon)\cdot n < n-1+c
+c > \varepsilon\cdot n+1
+}
+$$
+\>Ak by taký algoritmus existoval, tak na~neho máme polynomiálny algoritmus
+na~Hamiltonovsku kru¾nicu. Inak neexistuje ani pseudo-polynomialny algoritmus.
+
 \h{Aproximaèní schéma pro problém batohu}
 
 \s{POZOR:} Verze algoritmu, kterou jsem øíkal na~pøedná¹ce, obsahovala jednu
index 1d3e840083740b4cfab0eeaba4f589761ccad3e8..31a572119f3298d40e1db917514502a9a967ae2b 100644 (file)
@@ -64,7 +64,7 @@ $S(A,B)$ pak bude tvo
 
 Nyní si v¹imneme, ¾e velikost toku mù¾eme mìøit pøes libovolný separátor: je to mno¾ství
 tekutiny, které teèe pøes separátor z~$A$ do~$B$ minus to, které se vrací zpátky
-(zatím jsme velikost mìøili u~zdroje, vlastnì na~triviálním separátoru $A=\{v\}$, $B=\overline A).$
+(zatím jsme velikost mìøili u~zdroje, vlastnì na~triviálním separátoru $A=\{z\}$, $B=\overline A).$
 
 \s{Lemma:} Nech» $A\subseteq V(G),z\in A,s\not\in A$ a $f$ je libovolný tok. Potom platí,
 ¾e: $$\vert f\vert=f(A,\overline A)-f(\overline A,A).$$
@@ -100,7 +100,7 @@ tedy proti sm
 \figure{cesta.eps}{Pøíklad zlep¹ující cesty.}{3in}
 
 \s{Definice:} {\I Zlep¹ující cesta} $P$ ze $z$ do $s$ je {\I nasycená}, pokud:
-$$\forall e \in P:\cases{
+$$\exists e \in P:\cases{
        f(e)=c(e) & \hbox{je-li $e$ orientovaná po smìru} \cr
        f(e)=0 & \hbox{je-li $e$ orientovaná proti smìru} \cr
 }$$
index 76e0fc3ff2a0b6d94c3c7e27ad5ca4db07971e7f..9d996b4a5c159520e765847fb100f080c7ae7301 100644 (file)
@@ -1,4 +1,4 @@
-%version 1.6
+%version 1.8
 
 \input lecnotes.tex
 
@@ -29,7 +29,7 @@ D
 Pokud platí, ¾e:
 \numlist \ndotted
        \:ve~vrcholu~$u$ je nenulový pøebytek, tj. $f^{\Delta}(u) > 0$,
-       \:vrchol~$u$ je vý¹ ne¾ vrchol~$v$, tj. $h(u) > h(v)$ a
+       \:vrchol~$u$ je vý¹ ne¾ vrchol~$v$, tj. $h(u) > h(v)$, a
        \:hrana $uv$ má nenulovou rezervu, tj. $r(uv)>0$,
 \endlist
 \noindent pøevedeme tok o~velikosti $\delta:=\min(f^{\Delta}(u),r(uv))$ z~$u$ do~$v$ tímto zpùsobem:
@@ -53,7 +53,7 @@ Pokud b
 \:$\forall e \in E: f(e)\leftarrow 0$ (po~hranách na~poèátku nenecháme protékat nic).
 \:$\forall zu \in E : f(zu)\leftarrow c(zu)$ (ze~zdroje pustíme maximální mo¾nou vlnu).
 \:Dokud $\exists u \in V \setminus \{z,s\}, f^{\Delta}(u)>0$: 
-\::Pokud $\exists uv \in E, r(uv)>0$ a $h(u)>h(v)$, pøevedeme pøebytek po~hranì $uv$.
+\::Pokud $\exists uv \in E, r(uv)>0$ a $h(u)>h(v)$: pøevedeme pøebytek po~hranì $uv$.
 \::V~opaèném pøípadì zvedneme $u$.
 \:Vrátíme tok $f$ jako výsledek.
 \endalgo
@@ -78,7 +78,7 @@ Pod
 \proof
 Nejprve uká¾eme, ¾e $f$ je tok, a pak jeho maximalitu. Vyjdìme z~toho, ¾e $f$ je vlna a algoritmus se mù¾e zastavit, jen pokud nastanou oba následující pøípady souèasnì:
 \itemize\ibull
-\:Ve~vrcholech grafu nejsou ¾ádné pøebytky (mimo $z$ a $s$), proto¾e jinak by se algoritmus nezastavil a pokraèoval dále ve~výpoètu. Tudí¾ $f$ je tok. %todo check ? mimo~ ?
+\:Ve~vrcholech grafu nejsou ¾ádné pøebytky (mimo $z$ a~$s$), proto¾e jinak by se algoritmus nezastavil a pokraèoval dále ve~výpoètu. Tudí¾ $f$ je tok.
 \:Neexistuje nenasycená cesta ze~zdroje do~stoku, èím¾ z~{\I Ford-Fulkersonovy vìty} okam¾itì vyplývá, ¾e $f$ je tok maximální. A jak tuto neexistenci nahlédneme? Pro~spor pøedpokládejme, ¾e nìjaká nenasycená cesta~$P$ ze~$z$ do~$s$ existuje. Tato cesta mù¾e mít maximálnì $N-1$ hran. O~nich víme, ¾e v¹echny mají kladnou rezervu, a dále víme, ¾e po~celou dobu výpoètu je vý¹ka zdroje $N$ a vý¹ka stoku $0$. Tak¾e celkový spád cesty $P$ je $N$, co¾ ale znamená, ¾e na cestì $P$ existuje hrana s~kladnou rezervou, která má spád alespoò $2$. To je v¹ak v~rozporu s~invariantem~S.
 \qeditem
 \endlist
index 01bf212d80dde126955580347e312e9928246176..19b3489e63bf836abe75b9894ecfc74b15851316 100644 (file)
@@ -121,7 +121,7 @@ $x_k,x_{k+1 \bmod n},\dots, x_{k+n-1 \bmod n}$ je 
 \s{Definice:} {\I Separátor $S_n$}
 je sí», ve které jsou v¾dy~$i$-tý a~$(i+{n/2})$-tý prvek vstupu
 (pro $i=0,\dots, {n/2}-1$) propojeny komparátorem, minimum bude~$i$-tým,
-maximum  $(i+1)$-ním prvkem výstupu.
+maximum  $(i+{n/2})$-ním prvkem výstupu.
 \figure{sortnet.3} 
 {$(y_i, y_{i+{n/2}}) = CMP(x_i, x_{i+{n/2}})$} {300pt}
 
@@ -139,7 +139,7 @@ posloupnost -- najdeme nejmen
 se prohodí. Pokud ho nenajdeme, separátor neudìlá vùbec nic a~obì
 tvrzení lemmatu zøejmì tedy platí. Øeknìme, ¾e $x_m$ je maximum
 vstupní posloupnosti. Pak~$k$ bude jistì men¹í ne¾~$m$
-a~$x_{k+{n/2}}$ bude vìt¹í ne¾~$m$, mezi~$k$ a~$m$ je tedy vstupní
+a~$k+{n/2}$ bude vìt¹í ne¾~$m$, mezi~$k$ a~$m$ je tedy vstupní
 posloupnost neklesající, mezi $k+{n/2}$ a~$n-1$ nerostoucí.
 Uvìdomíme si, ¾e pro ka¾dé~$i$, $k\leq i\leq {n/2}-1$ se prvky
 $x_i$ a~$x_{i+{n/2}}$ prohodí. Úsek mezi~$k$ a~${n/2}-1$ tedy
index 53041769c1b74ebe52d2322e3df89502d1903828..08f4edac1b00022e1addfc68ca33d5cc94e52aae 100644 (file)
@@ -30,7 +30,7 @@ znakem vzorov
 \itemize\ibull
 \s{Definice:}
 \itemize\ibull
-\:{\I Abeceda $\Sigma$} je koneèná mno¾ina znakù, ze kterých tvoøíme text, øetìzece, slova jako koneèné posloupnosti znakù ze $\Sigma$. Pøíkladem extrémních abeced je lineární abeceda slo¾ená z~nul a jednièek. Pøíklad s~druhého konce je abeceda, která má jako znaky slova èeského jazyka. V algoritmech nebudeme uva¾ovat velikost abecedy (poèet znakù).
+\:{\I Abeceda $\Sigma$} je koneèná mno¾ina znakù, ze kterých tvoøíme text, øetìzece, slova jako koneèné posloupnosti znakù ze $\Sigma$. Pøíkladem extrémních abeced je binární abeceda slo¾ená z~nul a jednièek. Pøíklad z~druhého konce je abeceda, která má jako znaky slova èeského jazyka. V algoritmech nebudeme uva¾ovat velikost abecedy (poèet znakù).
 \:{\I $\Sigma$*} je mno¾ina v¹ech slov nad abecedou $\Sigma$.
 \endlist
 \s{Znaèení:}
@@ -70,22 +70,22 @@ Vyhled
 \s{Vyhledávaní:}
 \algo
 \:$\alpha \leftarrow \varepsilon$.
-\:Pro $C\in\Sigma$ postupnì:
-\:$\indent$Dokud $\neg \exists d(\alpha , C) \wedge \alpha\neq\varepsilon : \alpha \leftarrow z(\alpha)$.
-\:$\indent$Jestli¾e $\exists d(\alpha , C) \Rightarrow \alpha \leftarrow d(\alpha , C)$.
-\:$\indent$Jestli¾e $\alpha = \iota \Rightarrow$ hledané slovo je v~textu.
+\:Pro $C\in\sigma$ postupnì:
+\::Dokud $\neg \exists d(\alpha , C) \wedge \alpha\neq\varepsilon$: $\alpha \leftarrow z(\alpha)$.
+\::Pokud $\exists d(\alpha , C)$: $\alpha \leftarrow d(\alpha , C)$.
+\::Pokud $\alpha = \iota$: vrátíme, ¾e hledané slovo je v~textu.
 \endalgo
 
 \s{Alternativa:}
 \algo
 \:$k \leftarrow 0$.
-\:Pro $C\in\Sigma$ postupnì:
-\:$\indent$Dokud $C\neq \iota[k] \wedge k>0: k \leftarrow z(k)$.
-\:$\indent$Jestli¾e $C=\iota[k] \Rightarrow k++$.
-\:$\indent$Jestli¾e $k = J \Rightarrow$ hledané slovo je v~textu.
+\:Pro $C\in\sigma$ postupnì:
+\::Dokud $C\neq \iota[k] \wedge k>0$: $k \leftarrow z(k)$.
+\::Pokud $C=\iota[k]$: $k \leftarrow k+1$.
+\::Pokud $k = J$: vrátíme, ¾e hledané slovo je v~textu.
 \endalgo
 
-\s{Invariant:} Stav po pøeètení vstupu $\beta$: $\alpha(\beta)$ $=$ nejdel¹í suffix $\beta$, který je prefixem $\iota$.
+\s{Invariant:} Stav po pøeètení vstupu $\beta$: $\alpha(\beta)$ je nejdel¹í suffix $\beta$, který je prefixem $\iota$.
 Z~invariantu vyplývá korektnost vyhledávací èásti algoritmu KMP.
 
 \proof
index 5030f062011959209be540243fe568a0078b4810..506a29e569657db70a98ac95e2d6f469e9c952b2 100644 (file)
@@ -2,92 +2,92 @@
 
 \prednaska{7}{Vyhledávání v textu}{(zapsali J. Kunèar, M. Demin a J. Chludil)}
 
-Na minulých predná¹kách jsme si ukázali, jak se v textu vyhledává slovo. Teï si ov¹em úlohu zobecníme a uká¾eme si, jak v kupce sena vyhledat více ne¾ jednu jehlu.
+Na minulých predná¹kách jsme si ukázali, jak se v~textu (senì) vyhledává slovo (jehlu). Teï si ov¹em úlohu zobecníme a uká¾eme si, jak v kupce sena hledat souèasnì více ne¾ jednu jehlu.
+
+\h{Hledání výskytu v¹ech slov}
 
-\h{Zopakujeme si základní znaèení}
 \itemize\ibull
-\:$\iota_1, \ldots, \iota_k$ -- vyhledávaná slova (jehly)
-\:$\sigma$ -- text, kde se hledá (seno)
+\:$\iota_1, \ldots, \iota_k$ -- vyhledávaná slova (jehly) délek $ J_i= \vert\iota_i\vert $
+\:$\sigma$ -- text (seno) délky $ S= \vert\sigma\vert $
 \endlist
+Nejprve si øekneme, jak chceme, aby vypadal výstup. Výstupem pro nás budou v¹echny uspoøádané dvojice $(i,j)$ ($i$ je index jehly, kterou jsme nalezli, a $j$ je poèáteèní pozice v senì, kde se jehla nachází) takové, ¾e $$\iota_i=\sigma[j:j+J_i].$$ Postavme si proto vyhledávací automat podobný tomu, který jsme vidìli na minulé pøedná¹ce. Tento automat nám v¹echny takové uspoøádané dvojice najde.
 
-\h{Hledání výskytu v¹ech slov}
-Nejprve si øekneme, jak chceme, aby vypadal výstup, a poté jak ho dosáhnout. Výstupem pro nás budou v¹echny uspoøádané dvojice $(i,j)$ takové, ¾e $$\iota_i=\sigma[j:j+\vert\iota_i\vert]$$ Postavme si proto vyhledávací automat, který najde v¹echny takové uspoøádané dvojice.
 
 \h{Vyhledávací automat}
-{\I Vyhledávací automat} je vlastnì strom\foot{http://en.wikipedia.org/wiki/Trie}, kde ka¾dý vrchol mù¾e mít stupeò a¾ do velikosti abecedy a kde jednotlivé hrany odpovídají písmenùm této abecedy. Vrcholy, ve kterých konèí slovo, jsou oznaèené (na obrazcích èernì). Dále si èasem do tohto vyhledávacího stromu pøidáme zpìtné hrany a \uv{zkratky}.
+Vyhledávací automat je strom\foot{http://en.wikipedia.org/wiki/Trie}, kde ka¾dý vrchol mù¾e mít stupeò a¾ do velikosti abecedy a kde jednotlivé hrany odpovídají písmenùm této abecedy. Vrcholy, ve kterých konèí slovo, jsou oznaèené (na obrazcích èernì). Dále si èasem do tohoto vyhledávacího stromu pøidáme zpìtné hrany a \uv{zkratky}.
 
-\s{Definice:} {\I Stav} je pozice ve stromì, která odpovídá nejdel¹ímu prefixu vyhovující jehly v senì (platí rovnì¾ stejný invariant z pøedchozí pøedná¹ky).
-
-\s{Definice:} {\I Zpìtná hrana} $z$($\alpha$) := nejdel¹í vlastní suffix\foot{definováno na 6. pøedná¹ce} slova $\alpha$, který je stavem.
+\s{\I{Stavy}} automatu jsou urèeny vrcholy stromu, pro které platí rovnì¾ stejný {\I{invariant}} z pøedchozí pøedná¹ky.\par
+\s{\I{Zpìtná hrana}} $z$($\alpha$) := nejdel¹í vlastní suffix\foot{definováno na minulé pøedná¹ce} slova $\alpha$, který je stavem.\par
 
 \figure{vyhl_automat_dopr.eps}{Vyhledávací automat}{1in}
 
 \h{Výstup z automatu}
 Pøi vypisování výsledkù mu¾eme narazit na urèité problémy, které jsou dobøe vidìt na následujícím obrázku. První problém urèitì nastane, proto¾e v automatu není pøesnì øeèeno, které slovo konèí v jakém vrcholu.
 Napøíklad ve stavu, kde konèí slovo BARBARA, konèí také slovo ARA, ale o tom nevíme.
-Druhý problém nastává, kdy¾ v automatu není zaznaèen konec slova. Pøíkladem je seno BARAB (jednoduché k~nahlédnutí, viz obrázek).
+Druhý problém nastává, kdy¾ v automatu není informace o~konci slova. Pøíkladem je seno BARAB (jednoduché k~nahlédnutí, viz obrázek).
 Teï nám nezbývá nic jiného, ne¾ najít øe¹ení tìchto záludných problémù. Øe¹e¹í se nám naskýtá hned nìkolik:
 \itemize\ibull
-\:Projdeme v¹echy zpìtné hrany a vypí¹eme slova, jen¾ v daných stavech konèí. Toto øe¹ení funguje, ale je pomalé, proto¾e procházíme v¹echny zpìtné hrany.
-\:Pøedpoèítání mno¾in. Najdeme mno¾inu slov tak, aby celková velikost slov byla vìt¹í ne¾ lineární. Funkèní, ale konstrukce je pomalá.
-\:$\<slovo>(s) =$ index slova $\iota$, které konèí ve stavu $s$, nebo 0, \par
-$\<out>(s) =$ nejbli¾¹í vrchol, do kterého se lze z $s$ dostat po zpìtných hranách a $\<slovo>(v) \ne 0$ (konèí tam slovo).
-\figure{Graphic2.eps}{Vyhledávací automat -- se zpìtnými hranami}{1.3in}
+\:Projdeme v¹echy zpìtné hrany a vypí¹eme slova, je¾ v daných stavech konèí. Toto øe¹ení funguje, ale je pomalé, proto¾e poka¾dé procházíme v¹echny zpìtné hrany.
+%\:Pøedpoèítání mno¾in slov. Najdeme mno¾inu slov tak, aby celková velikost slov byla vìt¹í ne¾ lineární. Funkèní, ale konstrukce je pomalá.
+\:Pro následující øe¹ení, jen¾ spoèívá v nalezení zkratek ve stromì, si zavedeme toto znaèení:\par 
+\s{\<slovo>($s$)} = index slova $\iota$, které konèí ve stavu $s$, nebo $\emptyset$ \par
+\s{\<out>($s$)} = nejbli¾¹í vrchol, do kterého se lze z $s$ dostat po zpìtných hranách a \<slovo(v)> $\ne 0$ (konèí tam slovo)
+\figure{Graphic2.eps}{Vyhledávací automat se zpìtnými hranami}{1.3in}
 \endlist
 
-\>Jako vhodné øe¹ení tohoto problému se naskýtá poslední bod. Podle nìho vytvoøíme algoritmus na vyhledávání \uv{jehel v senì}.
+\>Podle posledního bodu vytvoøíme algoritmus na vyhledávání \uv{jehel v senì}.
 \algo
-\:$s \leftarrow \<koøen>$ ($s$ je aktuální stav vyhledávacího automatu).
+\:$s \leftarrow$ \<koøen> ($s$ bude aktuální stav vyhledávacího automatu).
 \:Procházíme v¹echny písmena $c$ v senì $\sigma$:
 \::$s \leftarrow krok(s,c)$.
-\::Je-li $\<slovo>(s) \ne 0 \Rightarrow$ vypí¹eme $\<slovo>(s)$.
-\::$v \leftarrow out(s)$.
-\::Dokud $v \ne 0 $:
+\::Je-li $\<slovo>(s) \ne 0$, vypí¹eme $\<slovo>(s)$.
+\::$v \leftarrow \<out>(s)$.
+\::Dokud $v \ne 0$:
 \:::Vypí¹eme $\<slovo>(v)$.
 \:::$v \leftarrow \<out>(v)$.
 \endalgo
 
-\>$\<krok>(s,c) :=$ jeden krok ve vyhledávacím automatu:
+\s{\<krok(s,c)>}:= jeden \<krok> vyhledávacího automatu:
 \algo
-\:Dokud $\neg \exists f(s,c) \wedge s \ne$ koøen: $s \leftarrow \<z>(s)$.
-\:Pokud $\exists f(s,c)$: $s \leftarrow \<f>(s,c)$.
+\:Dokud $\not\exists f(s,c) \wedge s \ne$ \<koøen>: $s \leftarrow z(s)$.
+\:Pokud $\exists f(s,c)$: $s \leftarrow f(s,c)$.
 \:Vrátíme $s$.
 \endalgo
 
 \h{Reprezentace v pamìti}
-První mo¾nost jak reprezentovat vyhledávací automat je pole se seznamem synù. Je to jednoduchá varianta, ale má nevýhodu pro velké abecedy, proto¾e procházení seznamu synù mù¾e trvat neúmìrnì dlouho. Proto se nabízí druhá mo¾nost a to hashovací tabulka $(\<stav>,\<znak>) \rightarrow \<f>(\<stav>,\<znak>)$, kde se \uv{ztratí} pou¾ívání hashovací funkce.
+První mo¾nost, jak reprezentovat vyhledávací automat, je jednorozmìrné pole vrcholù stromu, v nìm¾ ukládáme seznam synù pro ka¾dý vrchol. Je to jednoduchá varianta, ale má nevýhodu pro velké abecedy, proto¾e procházení seznamu synù mù¾e trvat neúmìrnì dlouho. Proto se nabízí druhá mo¾nost a to hashovací tabulka $(\<stav>,\<znak>) \rightarrow f(\<stav>,\<znak>)$, kde se \uv{ztratí} pou¾ívání hashovací funkce.
 
 \h{Slo¾itost}
 \itemize\ibull
-\:Kroky 2--5 mají èasovou slo¾itost $\O(\vert \sigma \vert)$, kterou jednodu¹e doká¾eme pomocí potenciálu -- poèet krokù nahoru $ \leq $ poèet krokù dolù $ \leq \vert \sigma \vert$, kde  $\vert \sigma \vert$ je délka sena.
-\:Kroky 6--8 mají èasovou slo¾itost $\O(\<poèet výskytù>)$, proto¾e rychleji opravdu nelze v¹echny výskyty vypsat.
+\:Kroky 2.--5. mají èasovou slo¾itost $\O(\vert \sigma \vert)$, kterou jednodu¹e doká¾eme pomocí potenciálu -- poèet krokù nahoru je men¹í nebo roven poètu krokù dolù. A to je maximálnì $S$.
+\:Kroky 6.--8. mají èasovou slo¾itost $\O(\<poèet výskytù>)$, proto¾e rychleji doopravdy nelze v¹echny výskyty vypsat.
 \endlist
 
-\s{Konstrukce automatu (Aho, Corasicková)}
+\s{Konstrukce automatu} (Aho, Corasicková)
 \algo
 \:Postavíme strom dopøedných hran, $r \leftarrow$ koøen stromu.
-\:Spoèteme $\<slovo>(\ast)$ (spoèteme funkci \<slovo> pro v¹chny stavy).
-\:Spoèteme $z(\ast)$: $z(\beta)=\alpha(\beta[1:])$.
-\itemize\ibull
-\:$z(\beta) = \alpha(\beta[1:])$ -- v¹echny zpìtné hrany vedou do vy¹¹ích hladin
-\:$z(v) = \<krok>(z(u),c)$
-\endlist
+\:Spoèteme $\<slovo>(\ast)$ -- oznaèíme si stavy, kde konèí slova.
+\:Spoèteme $z(\ast)$: $z(\beta)=\alpha(\beta[1:])$:
+    {\parindent=6em \itemize\ibull
+    \:\>\>\>$z(\beta) = \alpha(\beta[1:])$ -- v¹echny zpìtné hrany vedou do vy¹¹ích hladin
+    \:$z(v) = \<krok>(z(u),c)$
+    \endlist}
 \figure{Graphic100.eps}{$\<z>(v) = \<krok>(z(u),c)$}{0.7in}
 \:$z(r) \leftarrow 0$, do fronty $Q$ pøiøadíme v¹echny syny $r$, pro v¹echny $v$ prvky $Q: z(v) \leftarrow r$.
 \:Dokud fronta $Q$ není prázdná:
-\::$u\leftarrow$ vybereme z $Q$.
+\::$u\leftarrow$ vybereme z~$Q$.
 \::Pro syny $v$ vrcholu $u$:
-\:::$R \leftarrow \<krok>(z(u)$, znak na hranì \<uv>).
+\:::$R \leftarrow \<krok>(z(u))$ [znak na hranì \<uv>].
 \:::$z(v)\leftarrow R$.
 
 \figure{Graphic101.eps}{}{0.7in}
-\:::Je-li $slovo(R) \not= 0 \Rightarrow out(v) \leftarrow R$, jinak $out(v) \leftarrow out(R)$.
+\:::Je-li $slovo(R) \not= 0 \Rightarrow \<out>(v) \leftarrow R$, jinak $\<out>(v) \leftarrow \<out>(R)$.
 \figure{Graphic102.eps}{}{0.7in}
 \endalgo
 \figure{vyhl_automat_full.eps}{Vyhledávací automat -- kompletní}{1in}
 
 \s{Vìta:}
-Algoritmus A-C najde v¹echny výskyty slov $\iota_1, \ldots, \iota_k$ ve slove $\sigma$ v èase: $$\O(\Sigma_i \vert \iota_i \vert + \vert \sigma \vert + \<poèet výskytù>).$$
+Algoritmus Aho-Corasicková najde v¹echny výskyty slov $\iota_1, \ldots, \iota_k$ ve~slovì $\sigma$ v~èase $\O(\sum_i \vert \iota_i \vert + \vert \sigma \vert + \<poèet výskytù>)$.
 
 \h{Polynomy a násobení}
 \>Mìjme dva polynomy definované jako:
@@ -102,7 +102,8 @@ ve~v
 \figure{polynom.eps}{Polynom}{2in}
 
 \ss{Plán:}
-\>Nech» $k=2n-1$, zvolíme $x_0, \ldots, x_k$  libolná, ale rùzná a spoèteme $P(x_0), \ldots, P(x_k)$ a $Q(x_0), \ldots, Q(x_k)$.
+
+\>Nech» $k=2^{n-1}$. Zvolíme èísla $x_0, \ldots, x_k$ libovolná, ale rùzná, a spoèteme $P(x_0)$, \dots, $P(x_k)$ a $Q(x_0), \ldots, Q(x_k)$.
 Poté $\forall j: y_j=P(x_j)Q(x_j)$
 musíme najít polynom $R$ stupnì $\leq k: \forall j: R(x_j)=y_j$.
 
@@ -110,19 +111,17 @@ mus
 
 \>BÚNO $n=2^m$. Uva¾me polynom:
 $$P(x) = p_0 x^0 + p_1 x^1 + \ldots + p_{n-1} x^{n-1}.$$
-Tento polynom si mu¾eme rozdìlit, na dvì èásti. V~levé budeme mít èleny se sudými exponenty a v~pravé budou èleny s exponenty lichými:
+Tento polynom si mu¾eme rozdìlit na dvì èasti. V levé budeme mít èleny se sudými exponenty a v~pravé budou èleny s~exponenty lichými:
 $$P(x) = (p_0 + p_2 x^2 + \ldots + p_{n-2}x^{n-2}) + (p_1 x^1 + p_3 x^3 + \ldots + p_{n-1} x^{n-1}).$$
 Z pravé strany mù¾eme vytknout $x$ a dostaneme:
-$$P(x) = (p_0 + p_2 x^2 + \ldots + p_{n-2}x^{n-2}) + x(p_1 + p_3 x^2 + \ldots + p_{n-1} x^{n-2})$$
+$$P(x) = (p_0 + p_2 x^2 + \ldots + p_{n-2}x^{n-2}) + x(p_1 + p_3 x^2 + \ldots + p_{n-1} x^{n-2}),$$
 $$ \vdots $$
 $$P(x) = L(x^2) + xN(x^2),$$
 $$P(-x) = L(x^2) - xN(x^2),$$
-kde $L(x)$ a $N(x)$ jsou polynomy stupnì $n/2$. Umocnìním $x^2$ se nám poru¹í párování $x$ a $-x$, proto musíme poèítat v $\bb{C}$.
-Musíme si ale uvìdomit, ¾e tyto vztahy platí pouze, kdy¾ existuje pár $-x$ a $x$ v tìlese, nad kterým poèítáme. V~tomto pøípadì jsme z~polynomu s~$n$ koeficienty v~$n$ bodech dostali $2$ polynomy s~$n/2$ koeficienty v~$n/2$ bodech. Z~toho vyplývá èasová slo¾itost definována vztahem:
+kde $L(x)$ a $N(x)$ jsou polynomy stupnì $n/2$. Umocnìním $x^2$ se nám poru¹í párování $x$ a $-x$, proto musíme poèítat v~$\bb{C}$ místo~$\bb{R}$.
+V~tomto pøípadì jsme z~polynomu s~$n$ koeficienty v~$n$ bodech dostali $2$ polynomy s~$n/2$ koeficienty v~$n/2$ bodech. Z~toho vyplývá èasová slo¾itost definována vztahem:
 $$T(n) = 2T(n/2) + \O(n).$$
 Ten mù¾eme vyøe¹it s pou¾itím Master Theoremu z~ADS~I a dostaneme:
 $$T(n) = \O(n \log n).$$
 
 \bye
-
-
index 9f182dccafc5abb446fc8a51fe03934dd49e4d40..8df8e2397828e21bf4c2dd755229ec25a80b3eea 100644 (file)
@@ -26,7 +26,7 @@ D
 
 \>Je asi vidìt, ¾e klíèové jsou kroky 2 a 4. Vybrání bodù jistì stihneme pohodlnì v~lineárním èase a vynásobení samotných hodnot té¾ (máme $2n+2$ bodù a $C(x_{k}) = A(x_{k}) \cdot B(x_{k}), k = 0,1,2, \ldots , 2n+1$, tak¾e na to nepotøebujeme více ne¾ $2n+2$ násobení).
 
-Celý trik spoèívá v~chytrém vybrání onìch bodù, ve kterých budeme polynomy vyhodnocovat. Je na to potøeba vìdìt pár zajímavostí o~komplexních èíslech, na stránce Matrina Mar¹e jsou k dispozici slajdy, zde to bude zapsáno o~trochu struènìji.
+Celý trik spoèívá v~chytrém vybrání onìch bodù, ve kterých budeme polynomy vyhodnocovat. Je na to potøeba vìdìt pár zajímavostí o~komplexních èíslech, na stránce Matrina Mare¹e jsou k dispozici slajdy, zde to bude zapsáno o~trochu struènìji.
 
 \ss{Vyhodnocení polynomu metodou rozdìl a panuj (algoritmus FFT):}
 Mìjme polynom $P$ øádu $n$ a chceme jej vyhodnotit v $n$ bodech. Vybereme si body tak, aby byly spárované, èili $\pm x_{0}, \pm x_{1}, \ldots , \pm x_{n/2-1} $. To nám výpoèet urychlí, proto¾e pak se druhé mocniny $x_{i}$ shodují s~druhými mocninami $-x_{i}$.
@@ -75,14 +75,14 @@ Te
 
 
 Máme tedy algoritmus, který \uv{pøevede} koeficienty polynomu na hodnoty tohoto polynomu v~námi zadaných bodech. Ale potøebujeme také algoritmus, který doká¾e reprezentaci polynomu pomocí hodnot pøevést zpìt na koeficienty polynomu. Tedy nìjaký inverzní algoitmus.
-Definuje me si algoritmus DFT, která vyu¾ívá maticovou reprezentaci a s~jeho¾ pomocí získáme hledaný algoritmus.
+Definujeme si algoritmus DFT, která vyu¾ívá maticovou reprezentaci a s~jeho¾ pomocí získáme hledaný algoritmus.
 
 \s{Definice:}
 \>{\I Diskretní Fourierova transformace} $(DFT)$
 je funkce $f:  { {\bb C} ^n} \rightarrow { {\bb C} ^n}$, kde  $y=f(x) \equiv \forall j \  y_{j} = \sum \limits ^{n-1}_{k=0} x_{k} . \omega ^{jk}$.
 
 \s{Poznámka:}
-Vezmeme polynom, který má $x_{kj}$ jako koeficienty a vyhodnotíme ho v~bodì $\omega ^{j} [y_{j} = x(\omega^{j})] \Rightarrow  {f}$  je linearní $\Rightarrow$ mù¾eme  napsat $f(x) = \Omega_{x} ,\  \Omega _{jk} =\omega ^{jk}$, kde $\Omega$ je matice.
+Vezmeme polynom, který má $x_{kj}$ jako koeficienty a vyhodnotíme ho v~bodì $\omega ^{j} [y_{j} = x(\omega^{j})] \Rightarrow  {f}$  je linearní $\Rightarrow$ mù¾eme  napsat $f(x) = \Omega x ,\  \Omega _{jk} =\omega ^{jk}$, kde $\Omega$ je matice.
 
 
 \s{Jak najít inverzní matici?} Víme, ¾e $\Omega =\Omega ^{T}$ proto¾e $\omega ^{jk} = \omega ^{kj}$.
index c91adbd54ee01a2b6f4d5f2ec42795088b9b0c90..bbad60dd1c02123e1399cf7d5333eec8370834c2 100644 (file)
@@ -8,11 +8,11 @@ Budeme se tedy zab
 
 \h{Hledání konvexního obalu}
 Ptáte se o co pùjde? Zkusme si to pøiblí¾it na problému ledních medvìdù :)
-{\I Lední medvìdi si po dlouhé dobì zmapovaly vody severního moøe a zjistili pøesnì místa, kde se nacházejí jejich oblíbené ryby. No a proto¾e to jsou medvìdi chytøí tak se rozhodli v¹echny tyto rybky pochytat najednou do jedné veliké sítì. A problém, který tady mají je takovýto: Jaký nejmen¹í obvod mù¾e mít taková sí», aby se dovnitø ve¹ly je¹tì v¹echny rybky?!}
+{\I Lední medvìdi si po dlouhé dobì zmapovali vody severního moøe a zjistili pøesnì místa, kde se nacházejí jejich oblíbené ryby. No a proto¾e to jsou medvìdi chytøí, rozhodli se v¹echny tyto rybky pochytat najednou do jedné velké sítì. A problém, který tady mají, je následující: jaký nejmen¹í obvod mù¾e mít taková sí», aby se dovnitø ve¹ly je¹tì v¹echny rybky?!}
 
 Neboli budeme øe¹it, jak nìjakou zadanou mno¾inu bodù v~rovinì obalit co nejkrat¹í uzavøenou køivkou, do které by se je¹tì v¹echny body ve¹ly.
 
-Intuice nám napovídá ¾e výsledek bude nìjaký konvexní\foot{Mno¾ina bodù v~rovinì je konvexní útvar, pokud platí ¾e pro ka¾dé dva body této mno¾iny je úseèka spojující tyto dva body také celá v~této mno¾inì} mnohouhelník, který bude mít vrcholy v~nìkterých uvedených bodech. Ostatní vrcholy pak budou buï nìkde na hranách mnohouhelníku, nebo uvnitø.
+Intuice nám napovídá ¾e výsledek bude nìjaký konvexní\foot{Mno¾ina bodù v~rovinì je konvexní útvar, pokud platí ¾e pro ka¾dé dva body této mno¾iny je úseèka spojující tyto dva body také celá v~této mno¾inì} mnohoúhelník, který bude mít vrcholy v~nìkterých uvedených bodech. Ostatní vrcholy pak budou buï nìkde na hranách mnohoúhelníku, nebo uvnitø.
 
 \>Mo¾ná by se teï hodilo pøedvést názornì jak vypadají nejmen¹í konvexní obaly:
 
@@ -20,10 +20,10 @@ Intuice n
 \:konvexní obal prázdné mno¾iny je prázdná mno¾ina
 \:konvexní obal 1 bodu je bod samotný
 \:konvexní obal 2 bodù je úseèka spojující tyto body
-\:konvexní obal 3 bodù je trojuhleník s vrcholy v~tìchto bodech
+\:konvexní obal 3 bodù je trojúhleník s vrcholy v~tìchto bodech
 \:konvexní obal 4 bodù \dots to u¾ je slo¾itìj¹í
 \endlist
-Konvexní obaly 4 a více bodù, jak si mù¾em v¹imnout, u¾ nejsou jednoznaèné. Pro $N$-prvkovou mno¾inu bude konvexní obal mnohouhelník se tøema a¾ $N$ vrcholy.
+Konvexní obaly 4 a více bodù, jak si mù¾em v¹imnout, u¾ nejsou jednoznaèné. Pro $N$-prvkovou mno¾inu bude konvexní obal mnohoúhelník se tøemi a¾ $N$ vrcholy.
 
 Jeden dobrý zpùsob jak tento konvexní obal sestrojit se nazývá {\I Zametání roviny.}
 
@@ -31,14 +31,14 @@ Algoritmus funguje tak 
 Budeme takto potkávat body které le¾í v~na¹í mno¾inì.
 v~ka¾dém okam¾iku budeme chtít, aby v~té èásti kterou jsme ji¾ zametli, jsme u¾ mìli spoèítaný konvexní obal. V¾dycky kdy¾ pak zametací pøímkou narazíme na  nový bod, tak si u¾ jen rozmyslíme jak ho do toho konvexního obalu pøidat.
 
-BÚNO tady v¹ude bereme body v~obecné poloze, tedy takové, ¾e ¾ádné tøi nele¾í na jedné pøímce. Dál taky budem pøedpokládat ¾e budeme zametat ve smìru $X$-ové osy a ¾e v¹echny body mají rùznou $X$-ovou souøadnici.
+BÚNO tady v¹ude bereme body v~obecné poloze, tedy takové, ¾e ¾ádné tøi nele¾í na~jedné pøímce. Dál taky budem pøedpokládat ¾e budeme zametat ve smìru $X$-ové osy a ¾e v¹echny body mají rùznou $X$-ovou souøadnici.
 
 Jde také vidìt ¾e bod s nejmen¹í a nejvìt¹í $X$-ovou souøadnicí bude le¾et v~konvexním obalu.
 
 \s{Algoritmus:}
 \algo
 \:Setøídíme body podle jejich $X$-ové souøadnice.
-\:Vezmem první tøi body a sestojíme jejich konvexní obal.
+\:Vezmem první tøi body a sestrojíme jejich konvexní obal.
 \:Opakuj: Najdeme dal¹í bod a podíváme se jestli ho mù¾eme do konvexního obalu rovnou pøidat:
 \::Pokud jej mù¾eme rovnou pøidat, tak jej pøidáme.
 \::Pokud jej pøidat rovnou nemù¾eme, pak je potøeba nejdøív~nìjaké body odzadu odebrat a pak teprv~pøipojit ná¹ nový bod .
@@ -73,7 +73,7 @@ Set
 
 \h{Voroného diagramy}
 
-Pøed tím, ne¾ vás vystra¹ím nìjakou definicí, si øekneme, co jsi pod tímto, na první pohled ne zøejmým pojmem, pøedstavit. Mìjme mno¾inu teèek T rozmístìných náhodnì po papíru. Ke ka¾dému bodu nakreslíme okraje tak, aby vniklá plo¹ka obsahovala body, které jsou nejblí¾e právì té na¹í vybrané teèce. Samozøejmì "sousední" teèky budou mít tyto hranice spoleèné. Výsledkem na¹eho dlouhého sna¾ení pak bude právì Voroného diagram. V dal¹ích odstavcích se budeme zajímat o to, jak takový útvar správnì popsat, jak ho sestrojit a jaké datové struktury k tomu pou¾ít.
+Pøed tím, ne¾ vás vystra¹ím nìjakou definicí, si øekneme, co jsi pod tímto, na první pohled ne zøejmým pojmem, pøedstavit. Mìjme mno¾inu teèek $T$ rozmístìných náhodnì po papíru. Ke ka¾dému bodu nakreslíme okraje tak, aby vniklá plo¹ka obsahovala body, které jsou nejblí¾e právì té na¹í vybrané teèce. Samozøejmì "sousední" teèky budou mít tyto hranice spoleèné. Výsledkem na¹eho dlouhého sna¾ení pak bude právì Voroného diagram. V dal¹ích odstavcích se budeme zajímat o to, jak takový útvar správnì popsat, jak ho sestrojit a jaké datové struktury k tomu pou¾ít.
 
 \s{Definice:} Voronoi diagram pro koneènou mno¾inu $M = \{m_1, \dots, m_n\} \in {\bb R}^2$ míst je systém mno¾in $1..M_n$ takových, ¾e pro v¹echny $i$ a $j$ a pro v¹echny $x \in M_i$ je vzdálenost $x$ a $m_i$ men¹í nebo rovna vzdálenosti $x$ a $m_j$ a zároveò sjednocení $M_i$ pøes v¹echna $i$ je celý prostor ${\bb R}^2$, neboli:
 
@@ -83,7 +83,7 @@ Voron
 
 \s{Pozorování:}
 \itemize\ibull
-\:Pro v¹echny $i$ je $M_i$ ohranièena konvexní lomenou èarou, tak¾e oblasti mají tvar konvexních mnohoúhelníkù, ale je mo¾né, ¾e jsou oteveøené do nekneèna.
+\:Pro v¹echny $i$ je $M_i$ ohranièena konvexní lomenou èarou, tak¾e oblasti mají tvar konvexních mnohoúhelníkù, ale je mo¾né, ¾e jsou otevøené do nekoneèna.
 \:Pro ka¾dou hranu $h$ ve Voroného diagramu existuje $i$ a $j$ takové, ¾e kdy¾ $x \in H$, pak vzdálenost $d(x,m_i) = d(x,m_j)$.
 
 Øekneme, ¾e vrchol je takové místo, kde se potkávají alespoò dvì hrany.
@@ -124,13 +124,13 @@ jin
 Shrneme-li na¹e úvahy, mù¾ou se dít celkem tøi vìci. Jedna z nich je posun pøímky.
 To se vlastnì dìje poøád. Nemìní se nám rif pobøe¾í a prùseèíky parabol nám kreslí
 hrany. To mù¾eme poèítat najednou. Navíc nejen ¾e bychom mohli s pøímkou skoèít
-o nìjaké epsilon, ale mi dokonce mù¾eme skoèit o poøádný kus a prostì pouze dopoèítat,
+o nìjaké epsilon, ale my dokonce mù¾eme skoèit o poøádný kus a prostì pouze dopoèítat,
 jak se nám zmìnilo pobøe¾í a co se nám vykreslilo.
 
 Pokud tedy narazíme na bod, tak musíme najít místo, kde to na¹e pobøe¾í rozetnou
 a kam vklínit dal¹í výbì¾ek (parabolu). Takovéto události budeme øíkat místní událost.
 Pokud se pohybujeme v obecné poloze, tak se nám nestane, ¾e bychom narazili na prùseèík.
-\figure{mistni.eps}{Místní událost.}{3in}
+\figure{mistni.eps}{Místní událost -- èervená kolmice se bude dále rozevírat a vytvoøí dal¹í parabolu.}{3in}
 
 Poslední situace, která tedy mù¾e nastat je, ¾e nám nìjaký parabola schová za jiné.
 Kouknìme se na obrázek, fialový bod le¾í na ka¾dé parabole. Speciálnì tedy ta tøi
@@ -178,9 +178,9 @@ sou
 \s{Slo¾itost:}
 Poèet místních událostí je roven $n$ a poèet kru¾nicových událostí není vìt¹í ne¾
 $n$ (s ka¾dou místní událostí zanikne kru¾nicová), neboli velikost $P$ není vìt¹í
-ne¾ $2n$ a tedy je v¾dy lineární. Zároveò velikost $H$ není vìt¹í ne¾ $2n$,
+ne¾ $2n$, a tedy je v¾dy lineární. Zároveò velikost $H$ není vìt¹í ne¾ $2n$,
 proto¾e aèkoliv~poèet místních událostí je $n$, tak v~$H$ je záznam pro ka¾dou
-trojici a tedy v~$H$ je maximálnì $2n$ událostí najednou. Zbývá nám tedy zjistit
+trojici, a tedy v~$H$ je maximálnì $2n$ událostí najednou. Zbývá nám tedy zjistit
 velikost diagramu $D$, ale ten se urèitì vejde do $\O(n)$ pamìti.
 
 Pokud tedy shrneme v¹echny na¹e odhady, pak èasová slo¾itost algoritmu je
index e1ba06419a69ad1b42238b363436f4525a551931..81c5a8740c7f843b39745d8a73c0b10080a8a6eb 100644 (file)
@@ -2,8 +2,8 @@
 %%Creator: 0.45.1
 %%Pages: 1
 %%Orientation: Portrait
-%%BoundingBox: 22 43 232 225
-%%HiResBoundingBox: 22.592188 43.579688 231.39688 224.4
+%%BoundingBox: 22 43 232 232
+%%HiResBoundingBox: 22.592188 43.579688 231.39688 232
 %%EndComments
 %%Page: 1 1
 0 240 translate
@@ -520,7 +520,7 @@ closepath
 fill
 grestore
 grestore
-0.86274511 0.23529412 0.78039217 setrgbcolor
+0.86274511 0 0.015686275 setrgbcolor
 [] 0 setdash
 1 setlinewidth
 0 setlinejoin
@@ -1743,6 +1743,46 @@ newpath
 closepath
 stroke
 grestore
+0 0.44705883 0 setrgbcolor
+[] 0 setdash
+1 setlinewidth
+0 setlinejoin
+0 setlinecap
+newpath
+111.30739 24.063457 moveto
+113.59067 24.210448 122.26472 25.536867 127.38521 25.289697 curveto
+129.04994 25.209339 130.71467 25.128982 132.3794 25.048624 curveto
+138.69659 24.743688 120.82435 30.37159 114.68962 31.909509 curveto
+stroke
+0 0.44705883 0 setrgbcolor
+[] 0 setdash
+1 setlinewidth
+0 setlinejoin
+0 setlinecap
+newpath
+133.42645 25.999246 moveto
+139.70846 25.696009 125.74727 15.983185 122.66665 10.5 curveto
+stroke
+0 0.44705883 0 setrgbcolor
+[] 0 setdash
+1 setlinewidth
+0 setlinejoin
+0 setlinecap
+newpath
+105.82689 143.5 moveto
+103.55336 143.24309 94.95335 141.5 89.82689 141.5 curveto
+88.16023 141.5 86.49356 141.5 84.82689 141.5 curveto
+78.50234 141.5 96.62515 136.74035 102.82689 135.5 curveto
+stroke
+0 0.44705883 0 setrgbcolor
+[] 0 setdash
+0.84081835 setlinewidth
+0 setlinejoin
+0 setlinecap
+newpath
+83.769889 140.42041 moveto
+77.394661 140.42041 91.055392 147.6562 93.906481 151.57959 curveto
+stroke
 grestore
 showpage
 %%EOF
index 1d2f800c96ca5cd1e02c8969448926205a5f1301..ee2446db9037ae8aeae13404b8eb227736a9ed39 100644 (file)
@@ -15,8 +15,8 @@
    sodipodi:version="0.32"
    inkscape:version="0.45.1"
    version="1.0"
-   sodipodi:docbase="C:\Documents and Settings\Santhos\Plocha\Zapis"
-   sodipodi:docname="prubeh.svg"
+   sodipodi:docbase="C:\Documents and Settings\Santhos\Plocha\zapis"
+   sodipodi:docname="mistni.svg"
    inkscape:output_extension="org.inkscape.output.svg.inkscape">
   <defs
      id="defs3" />
@@ -29,7 +29,7 @@
      inkscape:pageshadow="2"
      inkscape:zoom="1"
      inkscape:cx="115.5"
-     inkscape:cy="124.48133"
+     inkscape:cy="204.48133"
      inkscape:document-units="px"
      inkscape:current-layer="layer1"
      width="300px"
@@ -39,8 +39,8 @@
      inkscape:guide-bbox="true"
      inkscape:window-width="1024"
      inkscape:window-height="712"
-     inkscape:window-x="-4"
-     inkscape:window-y="-4" />
+     inkscape:window-x="0"
+     inkscape:window-y="22" />
   <metadata
      id="metadata6">
     <rdf:RDF>
        d="M 86 106.5 A 2.5 2.5 0 1 1  81,106.5 A 2.5 2.5 0 1 1  86 106.5 z"
        transform="translate(104.5,24.5)" />
     <path
-       style="fill:none;fill-rule:evenodd;stroke:#dc3cc7;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       style="fill:none;fill-rule:evenodd;stroke:#dc0004;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
        d="M 111,20 L 111,191"
        id="path2199" />
     <path
        sodipodi:ry="10"
        d="M 122 132 A 11.5 10 0 1 1  99,132 A 11.5 10 0 1 1  122 132 z"
        transform="matrix(0.2907897,0,0,0.3344081,78.86774,134.85813)" />
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#007200;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline"
+       d="M 111.30739,24.063457 C 113.59067,24.210448 122.26472,25.536867 127.38521,25.289697 C 129.04994,25.209339 130.71467,25.128982 132.3794,25.048624 C 138.69659,24.743688 120.82435,30.37159 114.68962,31.909509"
+       id="path2183" />
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#007200;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline"
+       d="M 133.42645,25.999246 C 139.70846,25.696009 125.74727,15.983185 122.66665,10.5"
+       id="path2185" />
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#007200;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline"
+       d="M 105.82689,143.5 C 103.55336,143.24309 94.95335,141.5 89.82689,141.5 C 88.16023,141.5 86.49356,141.5 84.82689,141.5 C 78.50234,141.5 96.62515,136.74035 102.82689,135.5"
+       id="path2191" />
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#007200;stroke-width:0.84081835px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline"
+       d="M 83.769889,140.42041 C 77.394661,140.42041 91.055392,147.6562 93.906481,151.57959"
+       id="path2193" />
   </g>
 </svg>
index 9d6901addf0933d5f341b5c55dde65583a514c8a..1f388b8bd48b02238c834e0553d7124a59d47243 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -1,7 +1,7 @@
 all:
 
 clean:
-       for a in *-* all ; do ( cd $$a && make clean ) ; done
+       for a in *-* all manual ; do ( cd $$a && make clean ) ; done
        rm -f *~
 
 .SECONDARY:
index bb45b0783a679b5cb7407f01d34ed6b42aa1198a..5ba7b89edfd080974383614013521911c4a9022d 100644 (file)
@@ -1,5 +1,5 @@
 P=ads2
-X:=$(shell for a in 1 2 3 4 5 6 7 8 9 10 12 ; do echo ../$$a-*/$$a-*.tex ; done)
+X:=$(shell for a in 1 2 3 4 5 6 7 8 9 10 11 12 ; do echo ../$$a-*/$$a-*.tex ; done)
 
 %universe: all ChangeLog