Skip to content

Commit

Permalink
Merge pull request #23 from kuklinistvan/master
Browse files Browse the repository at this point in the history
2018-as vizsga aktualizálás
  • Loading branch information
martonbognar authored Jun 3, 2018
2 parents 7831f45 + 35bd29a commit a599c15
Show file tree
Hide file tree
Showing 23 changed files with 596 additions and 539 deletions.
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -7,3 +7,6 @@
*~
\#*\#
dockercmd.sh
*.fdb_latexmk
*.fls
*.xdv
6 changes: 5 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,7 @@
# [Bevezetés a Számításelméletbe 2. jegyzet](https://bme-notes.github.io/#bsz2)

[![Build Status](https://travis-ci.org/bme-notes/bsz2.svg?branch=master)](https://travis-ci.org/bme-notes/bsz2)
[Forrás tároló](https://github.com/bme-notes/bsz2) CI build állapot: [![Build Status](https://travis-ci.org/bme-notes/bsz2.svg?branch=master)](https://travis-ci.org/bme-notes/bsz2)

## Aktualizálva a 2018-as tételsorra

[[Eredeti tételsor](http://cs.bme.hu/bsz2/bsz2_tetelsor_2018tavasz.pdf)] [[Tárgyhonlap](http://cs.bme.hu/bsz2/)] [[Forrás tároló](https://github.com/bme-notes/bsz2)]
11 changes: 4 additions & 7 deletions bsz2.tex
Original file line number Diff line number Diff line change
Expand Up @@ -11,9 +11,9 @@
%%%% Ezeket változtasd meg!

\cim{Bevezetés a Számításelméletbe 2.}
\datum{2017. január 13.}
\datum{2018. május 2.}
\szerzo{Hegyi Zsolt}
\segitettek{Bálint Ádám, Bereczki Márk, Bognár Márton, Bokros Bálint, Braun Márton, a CrySyS labor munkatársai, Hanusch Róbert, az IRC-s baráti társaságom, Kormány Zsolt, a KSZK reszort tagjai, Müller András, Nagy ``Sid'' Jenő, Rostás Balázs.}
\segitettek{Bálint Ádám, Bereczki Márk, Bognár Márton, Bokros Bálint, Braun Márton, a CrySyS labor munkatársai, Hanusch Róbert, az IRC-s baráti társaságom, Kormány Zsolt, a KSZK reszort tagjai, Müller András, Nagy ``Sid'' Jenő, Rostás Balázs, Szabó Csongor, Kuklin István.}

%%%%
%%%%%%%
Expand All @@ -40,7 +40,7 @@
\tableofcontents{}

\section{Előszó}
A tételsor Fleiner Tamás jegyzetei, a ``Számítástudomány alapjai'' című könyv (Katona Gyula Y., Recski András), valamint Szeszlér Dávid fantasztikus előadásai alapján készült.
A tételsor Fleiner Tamás jegyzetei, a ``Számítástudomány alapjai'' című könyv (Katona Gyula Y., Recski András), valamint Szeszlér Dávid fantasztikus előadásai alapján készült. A későbbiek során a jegyzetbe belekerültek egyéb kiegészítések is.

%%%%
%%%%%%%
Expand All @@ -61,9 +61,6 @@ \section{Előszó}
\ujfejezet{12_tetel}
\ujfejezet{13_tetel}
\ujfejezet{14_tetel}
\ujfejezet{15_tetel}
\ujfejezet{16_tetel}
\ujfejezet{17_tetel}

\ujfejezet{spare}

\end{document}
22 changes: 6 additions & 16 deletions fejezetek/01_tetel.tex
Original file line number Diff line number Diff line change
@@ -1,16 +1,16 @@
\section{1. tétel}
\section{1. tétel: Kombinatorika}

\begin{definicio}{FAKTORIÁLIS}
Az $n(n-1)(n-2)...\cdot2\cdot1$ szorzatot n \textbf{faktoriálisának} nevezzük. Definíció szerint $0! = 1$.\\
Jel: $n!$
\end{definicio}

\begin{definicio}{PERMUTÁCIÓ}
Az n elem összes lehetséges sorrendjének a száma $n!$ és ezt hívjük \textbf{permutációnak}.
Az n elem összes lehetséges sorrendjének a száma $n!$ és ezt hívjuk \textbf{permutációnak}.
\end{definicio}

\begin{definicio}{ISMÉTLÉSES PERMUTÁCIÓ}
$k_1$ darab első típusú elem, ..., $k_n$ darab n-edik típusú elem lehetséges sorbarendezésének a száma a $k_1 + k_2 + ... + k_n$ \textbf{ismétléses permutációi}. Számuk:
$k_1$ darab első típusú elem, ..., $k_n$ darab n-edik típusú elem lehetséges sorba rendezésének a száma a $k_1 + k_2 + ... + k_n$ \textbf{ismétléses permutációi}. Számuk:
$$\frac{(k_1+k_2+...+k_n)!}{k_1!\cdot k_2!\cdot...\cdot k_n!}$$
\end{definicio}

Expand Down Expand Up @@ -42,18 +42,8 @@ \section{1. tétel}
\end{definicio}

\begin{tetel}{BINOMIÁLIS TÉTEL}
Tetszőleges valós x, y-ra és nemnegatív egész n-re:$$
(x+y)^n = \begin{pmatrix}
n\\0
\end{pmatrix} x^n + \begin{pmatrix}
n\\1
\end{pmatrix} x^{n-1}y + \begin{pmatrix}
n\\2
\end{pmatrix} x^{n-2}y^2 + ... + \begin{pmatrix}
n\\k
\end{pmatrix} x^{n-k}y^k + ... + \begin{pmatrix}
n\\n
\end{pmatrix} y^n$$
Tetszőleges valós x, y-ra és nemnegatív egész n-re:
\[ (x+y)^n = \sum_{k=0}^{n} \binom{n}{k} x^{n-k}y^{k} {\color{gray} = \binom{n}{0}x^n + \binom{n}{1}x^{n-1}y^1 + \binom{n}{2}x^{n-2}y^2 + \dots + \binom{n}{n}y^n } \]
\end{tetel}

\begin{definicio}{PASCAL HÁROMSZÖG}
Expand All @@ -72,7 +62,7 @@ \section{1. tétel}
\end{pmatrix}$, $\begin{pmatrix}
k\\k
\end{pmatrix}$ együtthatók. A legutóbbi állítás alapján a Pascal-háromszög minden sorának a sorösszege:
$2^{i-1}$. Ez abból is belátható, hogy minden sor összege kétszerese az előzőnek, ugyanis az együtthatókat úgy is meg lehet kapni, hogy az új elem a felette álló két együttható összegéből áll össze.
$2^{k-1}$. Ez abból is belátható, hogy minden sor összege kétszerese az előzőnek, ugyanis az együtthatókat úgy is meg lehet kapni, hogy az új elem a felette álló két együttható összegéből áll össze.
\end{definicio}

\begin{tetel}{BINOMIÁLIS ÖSSZEG}
Expand Down
6 changes: 3 additions & 3 deletions fejezetek/02_tetel.tex
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
\section{2. tétel}
\section{2. tétel: Gráfelméleti alapfogalmak}

% a kommentezett reszek allitolag nem a tetel reszei, ha valaki jobban tudja, nyugodtan allitsa oket vissza vagy torolje

Expand Down Expand Up @@ -43,7 +43,7 @@ \section{2. tétel}
\end{definicio}

\begin{definicio}{ÉLSOROZAT, ÚT, KÖR}
Egy $(v_0, e_1, v_1 ... v_{k-1}, e_k, v_k)$ sorozatot \textbf{élsorozatnak} nevezzük, ha $e_i$ a $v_{i-1}$-et és $v_i$-t összekötő él. Ha $v_0 = v_k$, akkor az élsorozat zárt. Ha a csúcsok mind különbözőek, akkor egy \textbf{útról} beszélünk. Ha a csúcsok mind különbözőek és az élsorozat zárt, akkor pedig egy \textbf{körről}.
Egy $(v_0, e_1, v_1 ... v_{k-1}, e_k, v_k)$ sorozatot \textbf{élsorozatnak} vagy \textbf{sétának} nevezünk, ha $e_i$ a $v_{i-1}$-et és $v_i$-t összekötő él. Ha $v_0 = v_k$, akkor az élsorozat zárt. Ha a csúcsok mind különbözőek, akkor egy \textbf{útról} beszélünk. Ha a csúcsok mind különbözőek és az élsorozat zárt, akkor pedig egy \textbf{körről}.
\end{definicio}

%\begin{tetel}{EKVIVALENCIA RELÁCIÓ}
Expand Down Expand Up @@ -79,7 +79,7 @@ \section{2. tétel}
\end{tetel}

\begin{bizonyitas}{}
Teljes indukcióval. n = 2-re az állítás triviálisan teljesül. T.f.h. az állítás igaz minden $n < n_0$-ra. Az előző tétel szerint minden $n_0$ fában van egy fokszámú pont, ezt hagyjuk el. Ha elhagyjuk ezt a pontot és a hozzá tartozó élet, akkor mivel a maradék $n_0 - 1$ fára már igaz az állítás, látható, hogy az $n_0$ pontú eredeti fának $n_0 - 1$ éle van.
Teljes indukcióval. $n=2$ csúcsú fára triviálisan teljesül az állítás ($2-1=1$ éle van). Tegyük fel, hogy minden $n$ csúcsú fára is, azaz minden $n$ csúcsú fának $n-1$ éle van. Tekintsünk minden $n+1$ csúcsú fát, amiknek az előző tétel miatt legkevesebb kettő levele van. Ha elhagyjuk az egyik levelet és a hozzátartozó élet, akkor megkapunk egyet az előbb tárgyalt $n$ csúcsú fák közül, amikre feltettük, hogy $n-1$ élük van. Ez esetben, ha az imént leválasztott levelet ``visszatesszük'', eggyel nő az élek és a csúcsok száma is, azaz lesz egy $n+1$ csúcsú fánk, aminek $n$ éle van. Tehát, ha $n$ csúcsú fára teljesül az állítás, akkor $n+1$ csúcsúra is. Ezzel és a kezdeti triviális megállapítással teljes indukcióval beláttuk az állítást.
\end{bizonyitas}

\begin{definicio}{FESZÍTŐFA}
Expand Down
121 changes: 68 additions & 53 deletions fejezetek/03_tetel.tex
Original file line number Diff line number Diff line change
@@ -1,67 +1,82 @@
\section{3. tétel}

\url{http://cs.bme.hu/bsz2/bfs.pdf}

\begin{tetel}{A BFS-algoritmus futása során a következőket tartjuk nyilván}
\begin{itemize}
\item $b(i) (i = 1,2,3,...)$: az i-edikként bejárt csúcs
\item $t(v) (v \in V)$: v távolsága s-től
\item $m(v) (v \in V, v \neq s)$: v-t megelőző csúcs az algoritmus által megtalált, s-ből v-be vezető legrövidebb úton
\item j: az eddig bejárt csúcsok száma
\item k: a jelenleg aktív csúcs sorszáma a $b(1), b(2),...$ sorozatban.
\end{itemize}
\section{3. tétel: Síkbarajzolhatóság}

\begin{definicio}{SÍKBARAJZOLHATÓSÁG}
G \textbf{síkbarajzolható} gráf, ha lerajzolható úgy (a síkba), hogy az élei a csúcsokon kívül sehol máshol ne keresztezzék egymást.
\end{definicio}

\begin{definicio}{TARTOMÁNYOK}
G síkbarajzolt gráf \textbf{tartományain} azon síkrészeket értjük, melyeket közrefognak az élek. Csak síkbarajzolt gráfok esetén beszélhetünk ezekről!
\end{definicio}

\begin{tetel}{GÖMBRE RAJZOLHATÓSÁG}
G gráf pontosan akkor síkbrajzolható, ha gömbre rajzolható.
\end{tetel}

\begin{tetel}{BFS Algoritmus}
Bemenete a BFS algoritmusnak: Egy G gráf és egy $s \in V$ csúcs.
\\
\textbf{Az algoritmus:}
\begin{itemize}
\item{\textbf{0.}} $j = 1$, $k = 1$, $b(1) = s$, $t(s) = 0$, minden $v \neq s$-re $t(v) = *$
\item{\textbf{1.}} HA a b(k) csúcsnak van olyan v szomszédja, amelyre $t(v) = *$, AKKOR:
\begin{itemize}
\item $j = j + 1$
\item $b(j) = v$
\item $t(v) = t(b(k)) + 1$
\item $m(v) = b(k)$
\item Vissza az \textbf{1.} lépéshez.
\end{itemize}
\item{\textbf{2.}}
\begin{itemize}
\item Ha $k = j$, akkor \textbf{STOP}.
\item $k = k + 1$
\item Vissza az \textbf{1.} lépéshez.
\end{itemize}
\end{itemize}
Az algoritmus lineáris futásidejű, tehát $c \cdot e$ lépésszámú.
\begin{bizonyitas}{}
Egy síkban lévő gráf leképezhető gömbfelületre oly módon, hogy ezt a gömbfelületet valamelyik pontjával a síkra helyezzük, ezt a pontot tekintjük a déli pólusként, és az északi pólusból egyeneseket húzunk a gráf pontjaiba. Ezeknek a vonalaknak van metszéspontja a gömbön, ezek szolgáltatják a kívánt vetítést. Ez az ú.n. sztereografikus projekció. Ezt visszafele is meg lehet ismételni.
\end{bizonyitas}

\begin{tetel}{EULER-FORMULA}
Ha egy összefüggő síkbeli gráfnak n csúcsa, e éle és t tartománya van (beleértve a külső tartományt is), akkor eleget tesz az Euler-formulának:
$$n + t = e + 2$$
\end{tetel}

\begin{definicio}{BFS-FA}
A BFS algoritmus futtatása után kapott F feszítőfát nevezzük \textbf{BFS fának}. F összefüggő, ha az eredeti bemeneti gráf is összefüggő volt, valamint F nem tartalmaz kört (a fa definíciója miatt). Az is megfigyelhető, hogy bármely $v \in V$ csúcsra az s-et v-vel összekötő F-beli út a legrövidebbek egyike az s-ből a v-be vezető G-beli utak közül.
\end{definicio}
\begin{bizonyitas}{}
Tekintsük a gráf egy C körét (ha van) és ennek egy $a$ élét. A C kör a síkot két részre osztja. Ezeket egyéb élek további tartományokra oszthatják, de mindkét részben van egy olyan tartomány, melynek $a$ a határa. Ha a-t elhagyjuk, a két tartomány egyesül, azaz a tartományok száma eggyel csökken. A csúcsok száma nem változik, tehát $a$ elhagyásával az $n - e + t$ érték nem változik. Ezt az eljárást addig folytassuk, amíg a gráfban nem marad kör. Ekkor viszont már csak egy feszítőfa maradt. Elég az állítást erre belátni, ami triviális, hiszen $t = 1$ és $e = n - 1$.
\end{bizonyitas}

\begin{tetel}{Kruskal Algoritmus}
Bemenet: G gráf és az élekhez tartozó w súlyfüggvény. Az éleket rendezzük sorba úgy, hogy a legalacsonyabb költségűek legyenek először a sorban. A sorban kezdjünk előre haladni. Ha az él bevétele esetén a kapott gráf körmentes marad, akkor vegyük be. Ezt addig ismételjük, amíg van izolált pont, vagy amíg az élsorozat végére nem érünk. A kapott gráf a G gráf minimális költségű feszítőfája.
\\
\\
Ezt az eljárást \textbf{mohó algoritmusnak} nevezzük, mivel a végrehajtás során minden lépésben az éppen akkor a legjobbnak tűnő lehetőséget választjuk ki.
\begin{tetel}{BECSLÉS AZ ÉLEK SZÁMÁRA}
Ha G egyszerű, síkbarajzolható gráf és pontjainak a száma legalább 3, akkor az előbbi jelölésekkel:
$$e \leq 3n - 6$$
\end{tetel}

\begin{definicio}{MINIMÁLIS SÚLYÚ FESZÍTŐFA}
Legyen G gráf és annak éleihez rendelt $w: E \rightarrow \mathbb{R}$ súlyfüggvény. A gráfnak azon feszítőfáját, melyre ez a súlyfüggvény minimális, a gráf \textbf{minimális súlyú feszítőfájának} nevezzük.
\end{definicio}
\begin{bizonyitas}{}
Vegyük G tetszőleges síkbarajzolását és jelöljük az egyes tartományokat határoló élek számát $c_1, c_2...c_t$-vel. Mivel a gráf egyszerű, ezért minden tartományát legalább 3 él határolja, tehát $c_i \geq 3$. Nyilvánvaló, hogy egy élhez legfeljebb 2 tartomány tartozik, tehát ha összegezzük a tartományokat határoló élek számát minden tartományra, akkor legfeljebb $2e$-t kaphatunk. Tehát:
$$3t \leq c_1 + c_2 + ... + c_t = \sum_{i=1}^{t} c_i \leq 2e$$
Az Euler-formulát felhasználva:
$$3(e - n + 2) \leq 2e$$
Ebből átrendezéssel megkapjuk az eredményt.
\end{bizonyitas}

\begin{tetel}{BECSLÉS AZ ÉLEK SZÁMÁRA}
Ha G egyszerű, síkbarajzolható gráf és minden köre legalább 4 hosszú, valamint legalább 4 pontja van, akkor:
$$e \leq 2n - 4$$
\end{tetel}

\begin{bizonyitas}{}
Minden tartományt legalább 4 él határol. Az előző biz. gondolatmenete alapján $4t \leq 2e$ és ez alapján megkapjuk a képletet.
\end{bizonyitas}

\begin{tetel}{}
A Kruskal-algoritmus minimális súlyú feszítőfát talál.
\begin{tetel}{BECSLÉS MINIMÁLIS FOKSZÁMRA}
Ha G egyszerű, síkbarajzolható gráf, akkor $$\delta = min\, d(v) \leq 5$$ azaz a minimális fokszám legfeljebb 5.
\end{tetel}

\begin{bizonyitas}{}
Két állítást kell bizonyítanunk - azt, hogy feszítőfát ad az algoritmus, és azt, hogy az minimális. Kezdjük az elsővel. Legyen G egy összefüggő, súlyozott gráf (tehát van súlyfüggvény hozzárendelve) és F legyen egy részgráfja, amit az algoritmus produkál. F-ben nem lehet kör, mivel az algoritmus egy fát épít. F nem lehet nem összefüggő sem, mivel az első él (amit az algoritmus talál), ami összeköt két független komponenst F-ben még nem hozhat létre kört. Tehát F feszítőgráf.
\\
A következő állítást teljes indukcióval bizonyítjuk be. Legyen H egy élhalmaz, amit az algoritmus a futása során generál, a minimális súlyú feszítőfának ezt a H élhalmazt tartalmaznia kell, hiszen ebben vannak minimális súlyú élek.
Az első lépésnél az állítás igaz, hiszen H üres, és minden gráfnak részgráfja az üres gráf. A k-adik lépésnél vegyük az állítást igaznak és legyen T a minimális súlyú feszítőfa, ami tartalmazza H-t. Ha az algoritmus által kiválasztott következő él, e, szintúgy benne van a T-ben, akkor az állítás szintúgy igaz a $H + {e}$ élhalmazra. Különben $T + {e}$ élhalmazban létezik egy C kör, és ezen kívül még létezik egy olyan f él, ami befejezi a C kört, de nem része H-nak. (Ha nem létezne f, akkor e-t már nem vehettük volna be, mivel kört produkált volna $H + f$-ben). Ekkor $T - {f} + {e}$ szintúgy egy fa, és azonos az összsúlya T-jével, hiszen T-nek minimális az összsúlya, és f-nek a súlya nem lehet kisebb, mint e-nek, hiszen akkor e helyett az f élet választotta volna az algoritmus. Tehát $T - {f} + {e}$ egy minimális súlyú feszítőfa. Ezek alapján az indukciós feltevést bebizonyítottuk, és az állítás igaz, amikor H egy feszítőfává válik, ami csak akkor igaz, ha H egy minimális súlyú feszítőfa.
Feltehetjük, hogy a gráf pontjainak a száma legalább 3. T.f.h. $\delta \geq 6$. Mivel a fokszámok összege egyenlő az élszámok kétszeresével, $6n \leq 2e$. Az élszám-becslés alapján azonban $2e \leq 6n - 12$, ezzel ellentmondásra jutottunk, mivel $6n \not\leq 6n - 12$.
\end{bizonyitas}

\begin{tetel}{Alkalmazás}
Pontok - városok, élek - utak, súly - hossz; Villamos hálózatok, Kirchhoff-törvények, áramköri elemekhez súlyokat párosítunk
\begin{tetel}{KURATOWSKI-GRÁFOK}
A Kuratowski-gráfok, tehát a $K_5$ és a $K_{3,3}$ nem rajzolhatóak síkba.
\end{tetel}

\begin{bizonyitas}{}
Ha $K_5$ síkbarajzolható volna, akkor teljesülne rá az élbecslés tétel. Azonban $K_5$ pontjainak száma 5, éleinek száma 10 és $10 \not\leq 3 \cdot 5 -6 = 9$, tehát $K_5$ nem síkbarajzolható.
A $K_{3,3}$ minden körének hossza legalább 4. Ha volna 3 hosszú kör, legalább 2 ``kút'' vagy ``ház'' között kellene annak mennie, ami nem lehetséges. Így tehát a 2. élbecslés alkalmazható. $K_{3,3}$ pontjainak a száma 6, éleinek száma 9 és $9 \not\leq 2 \cdot 6 - 4 = 8$, tehát $K_{3,3}$ nem síkbarajzolható.
\end{bizonyitas}

Érdemes megjegyezni, hogy ezeknek a topologikus izomorf megfelelőit (tehát ha egy él helyett 2 hosszú út van) se lehet síkba lerajzolni. Ezeket úgy tudjuk konstruálni, hogy egy él helyett vagy egy új, 2-fokú csúccsal helyettesítünk, vagy egy 2-fokú csúcsot egy éllel.

\begin{definicio}{TOPOLOGIKUS IZOMORFIA}
A G és H gráfok \textbf{topologikusan izomorfak}, ha a fentebb említett transzformációk ismételt alkalmazásával izomorf gráfokba transzformálhatóak.
\end{definicio}

\begin{tetel}{KURATOWSKI-TÉTEL}
Egy gráf akkor és csak akkor síkbarajzolható, ha nem tartalmaz olyan részgráfot, amely topologikusan izomorf lenne $K_{3,3}$-al vagy $K_5$-el. \textbf{A bizonyítás a szükségességre fentebb található.}
\end{tetel}

\begin{definicio}{DUÁLIS}
Egy G gráf \textbf{duálisát} úgy kapjuk meg, hogy G tartományaihoz rendelünk pontokat (G* pontjai) és G*-ban akkor kötünk össze két pontot, ha a megfelelő G-beli tartományoknak van közös határvonala.
\end{definicio}

A duális gráfban tehát $n* = t$ és $t* = n$, valamint $e* = e$.
A párhuzamos élekből ``soros élek'', hurokélekből pedig elvágó élek lesznek.
Loading

0 comments on commit a599c15

Please sign in to comment.