<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="hu">
	<id>https://vik.wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Bartos+Bence</id>
	<title>VIK Wiki - Felhasználó közreműködései [hu]</title>
	<link rel="self" type="application/atom+xml" href="https://vik.wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Bartos+Bence"/>
	<link rel="alternate" type="text/html" href="https://vik.wiki/Speci%C3%A1lis:Szerkeszt%C5%91_k%C3%B6zrem%C5%B1k%C3%B6d%C3%A9sei/Bartos_Bence"/>
	<updated>2026-05-03T20:11:18Z</updated>
	<subtitle>Felhasználó közreműködései</subtitle>
	<generator>MediaWiki 1.43.8</generator>
	<entry>
		<id>https://vik.wiki/index.php?title=Algoritmuselm%C3%A9let_-_Vizsga,_2013.05.30.&amp;diff=186400</id>
		<title>Algoritmuselmélet - Vizsga, 2013.05.30.</title>
		<link rel="alternate" type="text/html" href="https://vik.wiki/index.php?title=Algoritmuselm%C3%A9let_-_Vizsga,_2013.05.30.&amp;diff=186400"/>
		<updated>2015-06-18T17:22:55Z</updated>

		<summary type="html">&lt;p&gt;Bartos Bence: /* 2. Feladat (Van megoldás) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Vissza|Algoritmuselmélet}}&lt;br /&gt;
&lt;br /&gt;
==2013.06.06. vizsga megoldásai==&lt;br /&gt;
===1. Feladat===&lt;br /&gt;
Ebben a feladatban a Floyd algoritmussal kapcsolatos kérdésekre kell válaszolnia. (A Floyd-algoritmus egy grában minden pontpárra meghatározza a köztük levő legrövidebb út hosszát.)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;(a)&#039;&#039;&#039; Mit jelöl az &amp;lt;math&amp;gt; F_k &amp;lt;/math&amp;gt; mátrix &amp;lt;math&amp;gt; F_k[i,j] &amp;lt;/math&amp;gt; eleme?&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;(b)&#039;&#039;&#039; Hogyan kell kiszámolni az &amp;lt;math&amp;gt; F_{k-1} &amp;lt;/math&amp;gt; mátrixból az &amp;lt;math&amp;gt; F_k &amp;lt;/math&amp;gt; mátrixot?&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;(c)&#039;&#039;&#039; Igazolja, hogy ez a kiszámítási mód helyes!&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;(d)&#039;&#039;&#039; Mennyi a lépésszáma a &#039;&#039;&#039;(b)&#039;&#039;&#039; lépés egyszeri végrehajtásának? (A lépésszámot nem kell igazolni.)&lt;br /&gt;
{{Rejtett&lt;br /&gt;
|mutatott=&amp;lt;big&amp;gt;&#039;&#039;&#039;Megoldás&#039;&#039;&#039;&amp;lt;/big&amp;gt;&lt;br /&gt;
|szöveg=&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;a)&#039;&#039;&#039; &amp;lt;math&amp;gt; F_k[i,j] &amp;lt;/math&amp;gt; azon &amp;lt;math&amp;gt; i \rightarrow j &amp;lt;/math&amp;gt; utak legrövidebbjeinek a hosszát tartalmazza, amelyek közbülső pontjai &amp;lt;math&amp;gt;k&amp;lt;/math&amp;gt;-nál nem nagyobb sorszámúak. &#039;&#039;(Magyarul: Az &amp;lt;math&amp;gt; F_k[i,j] &amp;lt;/math&amp;gt; azt mondja meg, hogy &amp;lt;math&amp;gt;i&amp;lt;/math&amp;gt;-ből &amp;lt;math&amp;gt;j&amp;lt;/math&amp;gt;-be mennyi a legrövidebb út összsúlya, ha csak az első &amp;lt;math&amp;gt;k&amp;lt;/math&amp;gt; darab csúcsot használtuk.)&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;b)&#039;&#039;&#039; &amp;lt;math&amp;gt; F_k[i,j]:=min\left \{ F_{k-1}[i,k]+F_{k-1}[k,j],F_{k-1}[i,j]\right \} &amp;lt;/math&amp;gt; &#039;&#039;&amp;lt;math&amp;gt;(&amp;lt;/math&amp;gt;Vagyis vagy az &amp;lt;math&amp;gt; i \rightarrow k \rightarrow j &amp;lt;/math&amp;gt; lesz a legrövidebb út, vagy &amp;quot;marad a régi&amp;quot; &amp;lt;math&amp;gt; i \rightarrow j .)&amp;lt;/math&amp;gt;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;c)&#039;&#039;&#039; Tulajdonképpen az előzőből következik. Hiszen vagy nem változik az új csúccsal a legrövidebb út a 2 pont között &amp;lt;math&amp;gt; (i \rightarrow j) &amp;lt;/math&amp;gt;, vagy ha igen, akkor az a &amp;lt;math&amp;gt; (i \rightarrow k) + (k \rightarrow j) &amp;lt;/math&amp;gt; lesz az.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;d)&#039;&#039;&#039; &amp;lt;math&amp;gt; O(n^2) &amp;lt;/math&amp;gt;. &#039;&#039;&amp;lt;math&amp;gt;(&amp;lt;/math&amp;gt;Maga az algoritmus &amp;lt;math&amp;gt;O(n^3)&amp;lt;/math&amp;gt;, de csúcsonként &amp;lt;math&amp;gt; O(n^2) &amp;lt;/math&amp;gt;, vagyis &amp;lt;math&amp;gt; n \cdot O(n^2) = O(n^3) ).&amp;lt;/math&amp;gt;&#039;&#039;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
===2. Feladat (Van megoldás)===&lt;br /&gt;
Adja meg a 2-3 fa definícióját! Adjon felső becslést a fa szintszámára n tárolt elem esetén, állítását bizonyítsa is!&lt;br /&gt;
{{Rejtett&lt;br /&gt;
|mutatott=&amp;lt;big&amp;gt;&#039;&#039;&#039;Megoldás&#039;&#039;&#039;&amp;lt;/big&amp;gt;&lt;br /&gt;
|szöveg=&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Adja meg a 2-3 fa definícióját!&#039;&#039;&#039;&lt;br /&gt;
*Elemeket csak a levelekben tárolunk.&lt;br /&gt;
*Az elemek balról jobbra növekvő sorrendben állnak. &lt;br /&gt;
*Minden belső csúcsnak 2, vagy 3 fia lehet, se több, se kevesebb. &#039;&#039;(Kivéve, ha csak 1 elemet tárolunk a fában, mert akkor a gyökérnek csak 1 fia van.)&#039;&#039;&lt;br /&gt;
*A fa levelei a gyökértől egyenlő távolságra vannak (vagyis a levelek 1 szinten vannak).&lt;br /&gt;
*A belső csúcsokban mutatókat (M) és 1, vagy 2 kulcsot (S) tárolunk.&lt;br /&gt;
**Ha a csúcsnak 2 fia van, akkor 2 mutatót, és egy kulcsot tárol. [[File:Algel vizsga 2013tavasz V1 2 2fia.png|300px]]&lt;br /&gt;
***A bal részfában az elemek kisebbek, mint S1.&lt;br /&gt;
***A jobb részfában az elemek nagyobb-egyenlőek, mint S1 (vagyis az 1. elem S1).&lt;br /&gt;
**Ha a csúcsnak 3 fia van, akkor 3 mutatót, és 2 kulcsot tárol. [[File:Algel_vizsga_2013tavasz_V1_2_3fia.png|400px]]&lt;br /&gt;
***A bal részfában az elemek kisebbek, mint S1.&lt;br /&gt;
***A középső részfában az elemek nagyobb-egyenlőek, mint S1 (vagyis az 1. elem S1), de kisebbek, mint S2.&lt;br /&gt;
***A jobb részfában az elemek nagyobb-egyenlőek, mint S2 (vagyis az 1. elem S2). &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Adjon felső becslést a fa szintszámára n tárolt elem esetén, állítását bizonyítsa is!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;log_2n+1\leq m \leq log_3n+1&amp;lt;/math&amp;gt;, ahol &amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt; a fa szintszáma.&lt;br /&gt;
&lt;br /&gt;
$$$ Ez nem pont fordítva van a dián? $$$&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Bizonyítás:&#039;&#039;&lt;br /&gt;
*&amp;lt;math&amp;gt;log_2n+1\leq m&amp;lt;/math&amp;gt;&lt;br /&gt;
**Minden belső csúcsnak legalább 2 fia van, így az &amp;lt;math&amp;gt;i.&amp;lt;/math&amp;gt; szinten legalább &amp;lt;math&amp;gt;2^{i-1}&amp;lt;/math&amp;gt; csúcs van, tehát: &amp;lt;math&amp;gt;2^{m-1} \geq n \Rightarrow m-1 \geq log_2n \Rightarrow m \geq log_2n+1&amp;lt;/math&amp;gt;&lt;br /&gt;
*&amp;lt;math&amp;gt;m\leq log_3n+1&amp;lt;/math&amp;gt;&lt;br /&gt;
**Minden belső csúcsnak maximum 3 fia van, így az &amp;lt;math&amp;gt;i.&amp;lt;/math&amp;gt; szinten maximum &amp;lt;math&amp;gt;3^{i-1}&amp;lt;/math&amp;gt; csúcs van, tehát: &amp;lt;math&amp;gt;3^{m-1} \leq n \Rightarrow m-1 \leq log_3n \Rightarrow m \leq log_3n+1&amp;lt;/math&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
===3. Feladat===&lt;br /&gt;
TODO&lt;br /&gt;
{{Rejtett&lt;br /&gt;
|mutatott=&amp;lt;big&amp;gt;&#039;&#039;&#039;Megoldás&#039;&#039;&#039;&amp;lt;/big&amp;gt;&lt;br /&gt;
|szöveg=&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
===4. Feladat (Van megoldás)===&lt;br /&gt;
Van egy tábla &amp;lt;math&amp;gt; (n&amp;lt;/math&amp;gt; &amp;lt;big&amp;gt;x&amp;lt;/big&amp;gt; &amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt; kockákból álló&amp;lt;math&amp;gt; ) &amp;lt;/math&amp;gt;. Az &amp;lt;math&amp;gt; A &amp;lt;/math&amp;gt; &amp;lt;math&amp;gt; n&amp;lt;/math&amp;gt; &amp;lt;big&amp;gt;x&amp;lt;/big&amp;gt; &amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt;-es mátrixban adott, hogy az egyes kockákban hány mogyoró van (a mogyorók nem lógnak át egyik kockából a másikba). Két gyerek akar osztozkodni a csokin, úgy, hogy a csokit kéfelé törik (egyenes vonal mentén, párhuzamosan a tábla valamelyik szélével). Egy osztkozkodás igazságtalansági faktorát a következőképpen kaphatjuk: ha az egyik darabban &amp;lt;math&amp;gt; k_1 &amp;lt;/math&amp;gt; kocka csoki, és &amp;lt;math&amp;gt; m_1 &amp;lt;/math&amp;gt; darab mogyoró van, a másikban pedig &amp;lt;math&amp;gt; k_2 &amp;lt;/math&amp;gt; kocka csoki és &amp;lt;math&amp;gt; m_2 &amp;lt;/math&amp;gt; darab mogyoró, akkor az igazságtalansági faktor &amp;lt;math&amp;gt; \left | \left ( k_1+m_1 \right ) -(k_2+m_2)\right | &amp;lt;/math&amp;gt;. Adjon &amp;lt;math&amp;gt; O(nm) &amp;lt;/math&amp;gt; lépést használó algoritmust, ami eldönti, hogy melyik szétosztásnak a legkisebb az igazságtalansági faktora. (Egy lépésnek számít, ha kiolvasunk egy értéket az &amp;lt;math&amp;gt; A &amp;lt;/math&amp;gt; mátrixból vagy ha összeadást, illetve kivonást hajtunk végre két számon.)&lt;br /&gt;
&lt;br /&gt;
{{Rejtett&lt;br /&gt;
|mutatott=&amp;lt;big&amp;gt;&#039;&#039;&#039;Megoldás&#039;&#039;&#039;&amp;lt;/big&amp;gt;&lt;br /&gt;
|szöveg=&lt;br /&gt;
[[File:algel_vizsga1_2013tavasz_4_csoki.PNG|200px]]&lt;br /&gt;
*Hozzunk létre egy &amp;lt;math&amp;gt; n &amp;lt;/math&amp;gt; elemű &amp;lt;math&amp;gt; TN &amp;lt;/math&amp;gt; tömböt, ahol az &amp;lt;math&amp;gt; i. &amp;lt;/math&amp;gt; cellában az szerepel, hogy az &amp;lt;math&amp;gt; A &amp;lt;/math&amp;gt; mátrix annyiadik oszlopában mennyi a &amp;lt;math&amp;gt; k+m &amp;lt;/math&amp;gt;. &#039;&#039;(ez &amp;lt;math&amp;gt; n*m &amp;lt;/math&amp;gt; kiolvasás, és &amp;lt;math&amp;gt; n*(m-1) &amp;lt;/math&amp;gt; összeadás, vagyis &amp;lt;math&amp;gt; \Rightarrow O(nm) &amp;lt;/math&amp;gt;.&lt;br /&gt;
*Hozzunk létre egy &amp;lt;math&amp;gt; m &amp;lt;/math&amp;gt; elemű &amp;lt;math&amp;gt; TM &amp;lt;/math&amp;gt; tömböt, ahol az &amp;lt;math&amp;gt; i. &amp;lt;/math&amp;gt; cellában az szerepel, hogy az &amp;lt;math&amp;gt; A &amp;lt;/math&amp;gt; mátrix annyiadik sorában mennyi a &amp;lt;math&amp;gt; k+m &amp;lt;/math&amp;gt;. &#039;&#039;(ez &amp;lt;math&amp;gt; m*n &amp;lt;/math&amp;gt; kiolvasás, és &amp;lt;math&amp;gt; m*(n-1) &amp;lt;/math&amp;gt; összeadás, vagyis &amp;lt;math&amp;gt; \Rightarrow O(nm) &amp;lt;/math&amp;gt;.&lt;br /&gt;
[[File:algel_vizsga1_2013tavasz_4_tn_tm.PNG|200px]]&lt;br /&gt;
*Hozzunk létre egy &amp;lt;math&amp;gt; (n-1) &amp;lt;/math&amp;gt; x &amp;lt;math&amp;gt; 2 &amp;lt;/math&amp;gt;-es &amp;lt;math&amp;gt; N &amp;lt;/math&amp;gt; tömböt, ahol az 1. sorban balról jobbra nézzük, mennyi a &amp;lt;math&amp;gt; k+m &amp;lt;/math&amp;gt;, a 2. sorban pedig jobbról balra. &#039;&#039;&amp;lt;math&amp;gt;(&amp;lt;/math&amp;gt;1. sor a &amp;lt;math&amp;gt; (k_1+m_1) &amp;lt;/math&amp;gt;, 2. sor pedig a hozzá tartozó  &amp;lt;math&amp;gt; (k_2+m_2) .)&amp;lt;/math&amp;gt;&lt;br /&gt;
**&amp;lt;math&amp;gt;N[1,1]= TN[1] &amp;lt;/math&amp;gt; majd &amp;lt;math&amp;gt;N[i,1]= N[i-1,1]+TN[i] , i=2...(n-1)&amp;lt;/math&amp;gt;.&lt;br /&gt;
**&amp;lt;math&amp;gt;N[1,2]= \sum_{i=2}^{n}TN[i] &amp;lt;/math&amp;gt; majd &amp;lt;math&amp;gt;N[i,2]= N[i-1,2]-TN[i] , i=2...(n-1)&amp;lt;/math&amp;gt;.&lt;br /&gt;
*Hozzunk létre egy &amp;lt;math&amp;gt; (m-1) &amp;lt;/math&amp;gt; x &amp;lt;math&amp;gt; 2 &amp;lt;/math&amp;gt;-es &amp;lt;math&amp;gt; M &amp;lt;/math&amp;gt; tömböt, ahol az 1. sorban fentről lefele nézzük, mennyi a &amp;lt;math&amp;gt; k+m &amp;lt;/math&amp;gt;, a 2. sorban pedig alulról felfele. &#039;&#039;&amp;lt;math&amp;gt;(&amp;lt;/math&amp;gt;1. sor a &amp;lt;math&amp;gt; (k_1+m_1) &amp;lt;/math&amp;gt;, 2. sor pedig a hozzá tartozó &amp;lt;math&amp;gt; (k_2+m_2) .)&amp;lt;/math&amp;gt;&lt;br /&gt;
**&amp;lt;math&amp;gt;M[1,1]= TM[1] &amp;lt;/math&amp;gt; majd &amp;lt;math&amp;gt;M[i,1]= M[i-1,1]+TM[i] , i=2...(m-1)&amp;lt;/math&amp;gt;.&lt;br /&gt;
**&amp;lt;math&amp;gt;M[1,2]= \sum_{i=2}^{m}TM[i] &amp;lt;/math&amp;gt; majd &amp;lt;math&amp;gt;M[i,2]= M[i-1,2]-TM[i] , i=2...(m-1)&amp;lt;/math&amp;gt;.&lt;br /&gt;
[[File:algel_vizsga1_2013tavasz_4_N_M.PNG|200px]]&lt;br /&gt;
*Az &amp;lt;math&amp;gt; N &amp;lt;/math&amp;gt; és &amp;lt;math&amp;gt; M &amp;lt;/math&amp;gt; tömbök létrehozása &amp;lt;math&amp;gt; O(n) &amp;lt;/math&amp;gt; és &amp;lt;math&amp;gt; O(m) &amp;lt;/math&amp;gt; lépést igényel.&lt;br /&gt;
*Nincs is más dolgunk, mint végigmenni az &amp;lt;math&amp;gt; N &amp;lt;/math&amp;gt; és &amp;lt;math&amp;gt; M &amp;lt;/math&amp;gt; tömbökön úgy, hogy az &amp;lt;math&amp;gt; i. &amp;lt;/math&amp;gt; oszlopban vesszük a 2 szám különbségének abszolút értékét, vagyis az igazságtalansági faktort számoljuk, és mindig elmentjük egy változóba a minimumot, és a ehhez tartozó törésvonalat. Ez is &amp;lt;math&amp;gt; O(n) &amp;lt;/math&amp;gt; és &amp;lt;math&amp;gt; O(m) &amp;lt;/math&amp;gt; lépés.&lt;br /&gt;
*Összesen tehát &amp;lt;math&amp;gt; O(nm)+O(nm)+O(n)+O(m)+O(n)+O(m)=O(nm) &amp;lt;/math&amp;gt; lépéssel megoldottuk a feladatot.&lt;br /&gt;
:::::[[File:algel_vizsga1_2013tavasz_4_1.PNG|400px]]              [[File:algel_vizsga1_2013tavasz_4_2.PNG|400px]]&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
===5. Feladat (Van megoldás)===&lt;br /&gt;
Egy algoritmus lépésszámáról tudjuk, hogy &amp;lt;math&amp;gt; T(n) = T\left(\left \lfloor  \frac{n}{4} \right \rfloor\right) + O(n^2)&amp;lt;/math&amp;gt; és tudjuk azt is, hogy &amp;lt;math&amp;gt; T(1)=T(2)=T(3)=1&amp;lt;/math&amp;gt;. Bizonyítsa be, hogy &amp;lt;math&amp;gt; T(n)=O(n^2)&amp;lt;/math&amp;gt;.&lt;br /&gt;
{{Rejtett&lt;br /&gt;
|mutatott=&amp;lt;big&amp;gt;&#039;&#039;&#039;Megoldás&#039;&#039;&#039;&amp;lt;/big&amp;gt;&lt;br /&gt;
|szöveg=&lt;br /&gt;
&lt;br /&gt;
Van olyan &amp;lt;math&amp;gt; c &amp;gt; 0&amp;lt;/math&amp;gt; és &amp;lt;math&amp;gt; n_0&amp;lt;/math&amp;gt;, hogy &amp;lt;math&amp;gt; n&amp;gt;n_0&amp;lt;/math&amp;gt; esetén &lt;br /&gt;
&amp;lt;math&amp;gt; T(n)=T\left(\left \lfloor  \frac{n}{4} \right \rfloor\right)+O(n^2) \leq T\left(\left \lfloor  \frac{n}{4} \right \rfloor\right)+cn^2 \leq T\left(\left \lfloor  \frac{n}{16} \right \rfloor\right)+c\left(n^2+\left(\frac{n^2}{4^2} \right)\right) \leq T\left(\left \lfloor  \frac{n}{64} \right \rfloor\right) + c\left(n^2+\left(\frac{n^2}{4^2} \right)+\left(\frac{n^2}{16^2} \right)\right) \leq \dots &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt; \dots \leq 1+cn^2\cdot\left(\sum_{i=0}^{\left \lfloor log_4n \right \rfloor} \left (\frac{1}{16}  \right )^i\right)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Azt kell észrevennünk, hogy ez tulajdonképpen egy mértani sor, amire van képletünk:&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;\sum_{i=0}^{k} r^i = \frac{1-r^{k+1}} {1-r} &amp;lt;/math&amp;gt;, ahol &amp;lt;math&amp;gt; k = \left \lfloor log_4n \right \rfloor, r = \frac{1}{16}&amp;lt;/math&amp;gt;, vagyis &amp;lt;math&amp;gt;\frac{1-\frac{1}{16}^{\left \lfloor log_4n \right \rfloor+1}} {1-\frac{1}{16}}&amp;lt;/math&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{1-\frac{1}{16}^{\left \lfloor log_4n \right \rfloor+1}} {1-\frac{1}{16}} &amp;lt; 2 ,&amp;lt;/math&amp;gt;&amp;lt;big&amp;gt;ha&amp;lt;/big&amp;gt; &amp;lt;math&amp;gt; n \geq 1&amp;lt;/math&amp;gt; &#039;&#039;(A lényeg, hogy felülről becsüljük!)&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Tehát &amp;lt;math&amp;gt; T(n) = \dots \leq 1+2 \cdot cn^2=O(n^2)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
===6. Feladat (Van megoldás)===&lt;br /&gt;
Egy ország &#039;&#039;n&#039;&#039; kis szigetből áll. Szeretnénk néhány hajójáratot indítani a szigetek között úgy, hogy bárhonnan bárhova el lehessen jutni (esetleg átszállással). Ehhez ismerjük bármely két szigetre, hogy mennyibe kerül egy évben a hajójárat fenntartása közöttük, illetve azt, hogy mekkora az itt várható éves bevétel. Adjon algoritmust, ami ezen adatok ismeretében &amp;lt;math&amp;gt;O(n^2)&amp;lt;/math&amp;gt; időben meghatározza, hogy hol indítsuk el a hajójáratokat, ha a lehető legnagyobb várható éves hasznot (vagy a lehető legkisebb veszteséget) szeretnénk elérni. (Egy szigeten egy hajóállomás van csak).&lt;br /&gt;
{{Rejtett&lt;br /&gt;
|mutatott=&amp;lt;big&amp;gt;&#039;&#039;&#039;Megoldás&#039;&#039;&#039;&amp;lt;/big&amp;gt;&lt;br /&gt;
|szöveg=&lt;br /&gt;
&lt;br /&gt;
*Első lépésben az élsúly legyen a &amp;lt;math&amp;gt; Profit = -(Bevetel - Kiadas) .&amp;lt;/math&amp;gt;&lt;br /&gt;
*Vegyük fel az összes profitot termelő, vagy legalábbis veszteséget nem termelő éleket &amp;lt;math&amp;gt; (Profit \geq 0 )&amp;lt;/math&amp;gt; &amp;lt;math&amp;gt; \Rightarrow O(n^2) &amp;lt;/math&amp;gt; lépés. Ez legyen mondjuk a G gráf.&lt;br /&gt;
*Két eshetőség áll fenn:&lt;br /&gt;
**Ha a G gráf összefüggő, akkor jók is vagyunk, nincs további teendőnk, meg is vagyunk.&lt;br /&gt;
**Ha nem összefüggő, akkor:&lt;br /&gt;
***Az egyes komponenseket tekintsük egy pontnak. Minden olyan él, ami ebbe a komponensbe megy, menjen ebbe a pontba. Így kapunk egy F gráfot.&lt;br /&gt;
***Erre az F gráfra hívunk meg egy Prim-algoritmust, ami &amp;lt;math&amp;gt; O(n^2) &amp;lt;/math&amp;gt; időben keres az F gráfban egy minimális feszítőfát &#039;&#039;(vagyis a komponenseket - ami most jelenleg 1-1 pont a gráfban - a lehető legkisebb költségű élekkel köti össze)&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
*Tehát Prim-algoritmussal, vagy anélkül &amp;lt;math&amp;gt; O(n^2) &amp;lt;/math&amp;gt; időben megmondjuk, hogy mely hajójáratok indításával lesz az évi bevétel a legmagasabb.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
===7. Feladat===&lt;br /&gt;
TODO&lt;br /&gt;
{{Rejtett&lt;br /&gt;
|mutatott=&amp;lt;big&amp;gt;&#039;&#039;&#039;Megoldás&#039;&#039;&#039;&amp;lt;/big&amp;gt;&lt;br /&gt;
|szöveg=&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
===8. Feladat===&lt;br /&gt;
TODO&lt;br /&gt;
{{Rejtett&lt;br /&gt;
|mutatott=&amp;lt;big&amp;gt;&#039;&#039;&#039;Megoldás&#039;&#039;&#039;&amp;lt;/big&amp;gt;&lt;br /&gt;
|szöveg=&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[Kategória:Infoalap]]&lt;/div&gt;</summary>
		<author><name>Bartos Bence</name></author>
	</entry>
	<entry>
		<id>https://vik.wiki/index.php?title=Algoritmuselm%C3%A9let_-_Vizsga,_2013.06.06.&amp;diff=186398</id>
		<title>Algoritmuselmélet - Vizsga, 2013.06.06.</title>
		<link rel="alternate" type="text/html" href="https://vik.wiki/index.php?title=Algoritmuselm%C3%A9let_-_Vizsga,_2013.06.06.&amp;diff=186398"/>
		<updated>2015-06-18T14:11:07Z</updated>

		<summary type="html">&lt;p&gt;Bartos Bence: /* 6. Feladat (Van megoldás) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Vissza|Algoritmuselmélet}}&lt;br /&gt;
&lt;br /&gt;
==2013.06.06. vizsga megoldásai==&lt;br /&gt;
===1. Feladat (Van megoldás) ===&lt;br /&gt;
Ebben a feladatban a mélységi bejárással kapcsolatos kérdésekre kell válaszolni.&lt;br /&gt;
* &#039;&#039;&#039;(a)&#039;&#039;&#039; Adja meg a keresztél definícióját!&lt;br /&gt;
* &#039;&#039;&#039;(b)&#039;&#039;&#039; A mélységi bejárás során hogyan lehet a mélységi és a befejezési számok alapján felismerni a keresztéleket? &#039;&#039;Vizsgán megjegyzést fűztek hozzá: irányított gráfokra kell gondolni.&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;(c)&#039;&#039;&#039; Bizonyítsa be, hogy irányítatlan gráf mélységi bejárásánál nincsenek keresztélek!&lt;br /&gt;
{{Rejtett&lt;br /&gt;
|mutatott=&amp;lt;big&amp;gt;&#039;&#039;&#039;Megoldás&#039;&#039;&#039;&amp;lt;/big&amp;gt;&lt;br /&gt;
|szöveg=&lt;br /&gt;
&#039;&#039;&#039;a)&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
Tekintsük a G irányított gráf egy mélységi bejárását és a kapott T mélységi feszítő erdőt. Ezen bejárás szerint G egy x → y éle keresztél, ha x és y nem leszármazottjai egymásnak.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;b)&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
msz - mélységi szám&amp;lt;br&amp;gt;&lt;br /&gt;
bsz - befejezési szám&amp;lt;br&amp;gt;&lt;br /&gt;
Ha &amp;lt;math&amp;gt; (msz[y] &amp;lt; msz[x]) &amp;lt;/math&amp;gt; és &amp;lt;math&amp;gt;(bsz[y] &amp;gt; 0) &amp;lt;/math&amp;gt;, akkor az x →  y egy keresztél.&amp;lt;br&amp;gt;&lt;br /&gt;
[[Fájl:Algel vizsga 2013tavasz Keresztel 1.png]]&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;c)&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
A &#039;&#039;&#039;b)&#039;&#039;&#039; rész alapján könnyen belátható. Ha lenne keresztél, az azt jelentené, hogy van olyan x → y él, amire fennáll, hogy &amp;lt;math&amp;gt; (msz[y] &amp;lt; msz[x]) &amp;lt;/math&amp;gt; és &amp;lt;math&amp;gt;(bsz[y] &amp;gt; 0) &amp;lt;/math&amp;gt;, vagyis y-ban előbb jártunk, mint x-ben, és y-nak van befejezési száma. Ennél fogva nem lehet keresztél, hiszen ha lenne, akkor y-ból eljuthattunk volna még x-be, mielőtt befejeztük volna.&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Másképpen mondva:&#039;&#039;&#039; Nem fejezhettük volna be y-t anélkül, hogy ne jártunk volna x-ben.&amp;lt;br&amp;gt;&lt;br /&gt;
[[Fájl:Algel vizsga 2013tavasz Keresztel 2.PNG]]&amp;lt;br&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
===2. Feladat (Van megoldás)===&lt;br /&gt;
Milyen műveletek vannak a nyitott címzésű hash-elésnél? Hogyan kell megvalósítani a keresést, ha a nyitott címzésű hashelésnél kvadratikus maradék próbát használunk? &lt;br /&gt;
&lt;br /&gt;
{{Rejtett&lt;br /&gt;
|mutatott=&amp;lt;big&amp;gt;&#039;&#039;&#039;Megoldás&#039;&#039;&#039;&amp;lt;/big&amp;gt;&lt;br /&gt;
|szöveg=&lt;br /&gt;
&lt;br /&gt;
{{Rejtett&lt;br /&gt;
|mutatott=&amp;lt;big&amp;gt;&#039;&#039;&#039;Kiegészítések a feladat megértéséhez&#039;&#039;&#039;&amp;lt;/big&amp;gt;&lt;br /&gt;
|szöveg=&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Mi az a nyitott címzésű hash-elés?&#039;&#039;&#039;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
lásd: [[Hash_tömb]] &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Mi az a kvadratikus maradék próba, nyitott címzésű hash-elésnél?&#039;&#039;&#039;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
todo &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&#039;&#039;&#039;Nyitott címzésű hash-elés műveletei:&#039;&#039;&#039;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Új elem beszúrása, elem keresése, elem törlése.&amp;lt;br&amp;gt;&lt;br /&gt;
A törlés speciális jelzéssel történik.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Keresés megvalósítása nyitott címzésű hash-elés esetén kvadratikus maradék próbánál:&#039;&#039;&#039;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
A kvadratikus maradék próba egy álvéletlen próba, ezért másodlagos csomósodáshoz vezethet.&amp;lt;br&amp;gt;&lt;br /&gt;
Legyen M egy 4k + 3 alakú prímszám, ahol k egy pozitív egész.&amp;lt;br&amp;gt;&lt;br /&gt;
Ekkor a próbasorozat legyen&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt; 0,1^2,(-1)^2, 2^2,(-2)^2,..,\left ( \frac{M-1}{2} \right )^{2}, -\left ( \frac{M-1}{2} \right )^{2} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
===3. Feladat (Van megoldás)===&lt;br /&gt;
Adja meg az UNIÓ-HOLVAN adatszerkezet definícióját! (A fákkal való implementálást nem kell leírnia.) Mutassa meg, hogy mikor és hogyan használjuk az UNIÓ és a HOLVAN műveleteket a Kruskal algoritmusban! &lt;br /&gt;
&lt;br /&gt;
{{Rejtett&lt;br /&gt;
|mutatott=&amp;lt;big&amp;gt;&#039;&#039;&#039;Megoldás&#039;&#039;&#039;&amp;lt;/big&amp;gt;&lt;br /&gt;
|szöveg=&lt;br /&gt;
&lt;br /&gt;
{{Rejtett&lt;br /&gt;
|mutatott=&amp;lt;big&amp;gt;&#039;&#039;&#039;Kiegészítések a feladat megértéséhez&#039;&#039;&#039;&amp;lt;/big&amp;gt;&lt;br /&gt;
|szöveg=&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Mi az a Kruskal algoritmus?&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
A Kruskal algoritmust minimális költségű feszítőfák meghatározására használjuk. A piros-kék algoritmus egyik implementációja. &amp;lt;br&amp;gt;&lt;br /&gt;
Lényege, hogy a gráf éleit súlyuk szerint nem csökkenő sorrendbe állítja, majd sorban megpróbálja kékre színezni őket. &amp;lt;br&amp;gt;&lt;br /&gt;
Ennek az a feltétele, hogy az újonnan kékre színezendő él beszínezése után se legyen kör a kékre színezett élek által alkotott gráfban. &amp;lt;br&amp;gt;&lt;br /&gt;
Ha ez mégis kört eredményezne, úgy az él nem kék, hanem piros lesz.&amp;lt;br&amp;gt;&lt;br /&gt;
A kékre színezett élek egy minimális összsúlyú feszítőfát adnak.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&#039;&#039;&#039;UNIÓ-HOLVAN adatszerkezet definíciója: &#039;&#039;&#039;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Adott egy véges S halmaz, amelynek egy felosztását (partícióját) akarjuk tárolni. &amp;lt;br&amp;gt;&lt;br /&gt;
2 műveletünk van:&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
UNIÓ(U, V halmazok, amelyek S részhalmazai): S-ből kivesszük az U-t és a V-t, majd hozzáadjuk (unió) U és V unióját. &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
HOLVAN(v pont, v benne van S-ben): Azt az U halmazt adja meg, amelynek v eleme.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Mikor és hogyan használjuk az UNIÓ és a HOLVAN műveleteket a Kruskal algoritmusban:&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
A Kruskal algoritmus lelke az UNIÓ-HOLVAN adatszerkezet. &amp;lt;br&amp;gt;&lt;br /&gt;
Kezdetben a gráf minden pontja másik &amp;lt;math&amp;gt;U_i&amp;lt;/math&amp;gt; részhalmazban van, tehát minden &amp;lt;math&amp;gt;U_i&amp;lt;/math&amp;gt; egy pontot tartalmaz.&amp;lt;br&amp;gt;&lt;br /&gt;
Az algoritmus elindul a legkisebb súlyú éleken. &amp;lt;br&amp;gt;&lt;br /&gt;
Az élek két végpontjára (v és w) megvizsgálja, hogy HOLVAN(v) egyenlő-e HOLVAN(w)-vel. &amp;lt;br&amp;gt;&lt;br /&gt;
Ha igen, akkor egy részhalmazban vannak, kört okoznának =&amp;gt; piros él lesz.&amp;lt;br&amp;gt;&lt;br /&gt;
Ha nem áll fenn az egyenlőség, akkor a (v,w) kék lesz, a két részhalmazt pedig nyugodtan egyesíthetjük (hozzávehetjük az új élet a kék gráfhoz):&amp;lt;br&amp;gt;&lt;br /&gt;
UNIÓ(&amp;lt;math&amp;gt;U_v&amp;lt;/math&amp;gt;,&amp;lt;math&amp;gt;U_w&amp;lt;/math&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
===4. Feladat===&lt;br /&gt;
Pista bácsi fel akar ugrálni egy n hosszú, fekete illetve fehér fokokból álló csigalépcsőn. Legfeljebb k fokot tud ugrani, de arra vigyáznia kell, hogy páros (&amp;gt;=2) sok foknyi ugrás után páratlan sokat és páratlan sok után mindig páros (&amp;gt;=2) sokat ugorjon. Adjon O(nk) lépésszámú algoritmust, amely megmondja, hogy fel tud-e úgy ugrálni a csigalépcső tetejére, hogy csak egyféle színű lépcsőfokot használ. (A lépcső fokai rendszertelenül vannak színezve, a színezést ismerjük.) &lt;br /&gt;
&#039;&#039;Vizsgán megjegyzést fűztek hozzá: a talaj és a legteteje nem színes, csak a lépcsők; csak fölfele (előrefele) ugrál, visszafele nem. &#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{Rejtett&lt;br /&gt;
|mutatott=&amp;lt;big&amp;gt;&#039;&#039;&#039;Megoldás&#039;&#039;&#039;&amp;lt;/big&amp;gt;&lt;br /&gt;
|szöveg=&lt;br /&gt;
&lt;br /&gt;
todo&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
===5. Feladat (Van megoldás)=== &lt;br /&gt;
A hátizsák probléma órán tanult algoritmusát futtattuk egy konkrét inputon, melyben 3 tárgy szerepel. Mi lehetett ez a konkrét input, ha az alábbi táblázat keletkezett?&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! &lt;br /&gt;
! 0 &lt;br /&gt;
! 1 &lt;br /&gt;
! 2 &lt;br /&gt;
! 3 &lt;br /&gt;
! 4 &lt;br /&gt;
! 5 &lt;br /&gt;
! 6 &lt;br /&gt;
! 7 &lt;br /&gt;
|-&lt;br /&gt;
| 1 &lt;br /&gt;
| 0 &lt;br /&gt;
| 0 &lt;br /&gt;
| 0 &lt;br /&gt;
| 0 &lt;br /&gt;
| 10 &lt;br /&gt;
| 10 &lt;br /&gt;
| 10 &lt;br /&gt;
| 10 &lt;br /&gt;
|-&lt;br /&gt;
| 2 &lt;br /&gt;
| 0 &lt;br /&gt;
| 0 &lt;br /&gt;
| 5 &lt;br /&gt;
| 5 &lt;br /&gt;
| 10 &lt;br /&gt;
| 10 &lt;br /&gt;
| 15 &lt;br /&gt;
| 15 &lt;br /&gt;
|-&lt;br /&gt;
| 3 &lt;br /&gt;
| 0 &lt;br /&gt;
| 0 &lt;br /&gt;
| 5 &lt;br /&gt;
| 5 &lt;br /&gt;
| 13 &lt;br /&gt;
| 13 &lt;br /&gt;
| 18 &lt;br /&gt;
| 18 &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{{Rejtett&lt;br /&gt;
|mutatott=&amp;lt;big&amp;gt;&#039;&#039;&#039;Megoldás&#039;&#039;&#039;&amp;lt;/big&amp;gt;&lt;br /&gt;
|szöveg=&lt;br /&gt;
&lt;br /&gt;
Az egyszerűség kedvéért a súly legyen kg, az érték pedig €.&lt;br /&gt;
&lt;br /&gt;
#Az első sor alapján az 1-es csomag értéke €10, súlya 4kg.&lt;br /&gt;
#A második sor alapján a 2-es csomag értéke €5, súlya 2kg.&lt;br /&gt;
#A 3. lépésben 2 lehetőségünk van, a 3. csomag értéke vagy 13-5=€8, vagy 13-0=€13.&lt;br /&gt;
##€8 nem lehet, mert akkor a súlya 2kg lenne, de akkor a [2,3] cellába 8 lenne, nem 5.&lt;br /&gt;
##Így csak a €13 jöhet szóba, súlya pedig 4kg, ami jó megoldás lesz.&lt;br /&gt;
&lt;br /&gt;
{{Rejtett&lt;br /&gt;
|mutatott=&#039;&#039;Avagy kicsit gépiesebb megoldás:&#039;&#039;&lt;br /&gt;
|szöveg=&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Jelölje &amp;lt;math&amp;gt; T[s,cs]&amp;lt;/math&amp;gt; a táblázat &amp;lt;math&amp;gt;[s,cs]&amp;lt;/math&amp;gt; celláját, továbbá &amp;lt;math&amp;gt; V_3&amp;lt;/math&amp;gt; a 3. csomag értékét, &amp;lt;math&amp;gt; S_3&amp;lt;/math&amp;gt; pedig a súlyát.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Tudjuk, hogy &amp;lt;math&amp;gt; T[s,cs]=max\left \{ T[s,cs-1];V_i+T[s-S_i,cs-1] \right \}&amp;lt;/math&amp;gt;, ami ebben az esetben:&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt; T[4,3]=max\left \{ T[4,2];V_3+T[4-S_3,2] \right \} \rightarrow  13=max\left \{ 10;V_3+T[4-S_3,2] \right \}&amp;lt;/math&amp;gt;, amiből következik, hogy:&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt; 13=V_3+T[4-S_3,2] \rightarrow V_3 = 13-T[4-S_3,2]\Rightarrow\Rightarrow S_3=4, V_3=13&amp;lt;/math&amp;gt; (Átgondolható, hogy a 3. csomag súlya nem lehet 1,2 vagy 3kg).&lt;br /&gt;
}}&lt;br /&gt;
Tehát végeredményben a megoldás:&lt;br /&gt;
*1-es csomag (€10, 4kg)&lt;br /&gt;
*2-es csomag (€5, 2kg)&lt;br /&gt;
*3-as csomag (€13, 4kg)&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
===6. Feladat (Van megoldás)===&lt;br /&gt;
Egy irányítatlan, élsúlyozott gráf az alábbi éllistával adott (zárójelben az élsúlyok):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;A:B(1), D(3), E(2); B:A(1), C(3), D(y); D:A(3), C(y), E(x); E:A(2), B(1), D(x).&amp;lt;/math&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;(a)&#039;&#039;&#039; Mi lehet x és y értéke, ha tudjuk, hogy az élsúlyok egész számok, és azt is tudjuk, hogy a B csúcsból indított Prim algoritmus az alábbi sorrendben vette be az értékeket: BE, ED, BA, BC. &#039;&#039;Vizsgán megjegyzést fűztek hozzá: az élsúlyok pozitív egész számok, a pozitív szót kifelejtették véletlenül.&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;(b)&#039;&#039;&#039; Mely éleket és milyen sorrendben választja ki a Kruskal algoritmus? (Ha több megoldás is van, akkor az összeset adja meg!)&lt;br /&gt;
{{Rejtett&lt;br /&gt;
|mutatott=&amp;lt;big&amp;gt;&#039;&#039;&#039;Megoldás&#039;&#039;&#039;&amp;lt;/big&amp;gt;&lt;br /&gt;
|szöveg=&lt;br /&gt;
[[File:Algel vizsga 2013tavasz V2 6.png]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;a)&#039;&#039;&#039; Prim algoritmus - Ugyebár úgy dolgozik, hogy az aktuális fához a vele szomszédos élek közül a legkisebb súlyút veszi be. Prim: BE → ED → BA → BC&lt;br /&gt;
# A fához hozzáadjuk a BE élt.&lt;br /&gt;
# Most az ED élt választottuk. Ez alapján x értéke csak 1 lehet, így &amp;lt;math&amp;gt;x = 1&amp;lt;/math&amp;gt;. (Feladatból kihagyták, hogy pozitív egészekről van szó, amúgy &amp;lt;math&amp;gt;x \le 1&amp;lt;/math&amp;gt; lehetne.)&lt;br /&gt;
# Most az AB élt adjuk hozzá, ez alapján &amp;lt;math&amp;gt;y \ge 1&amp;lt;/math&amp;gt;.&lt;br /&gt;
# Most a BC élt adjuk hozzá, ez alapján &amp;lt;math&amp;gt;y \ge 3&amp;lt;/math&amp;gt;, így végül &amp;lt;math&amp;gt;y \ge 3&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
$$$ Észrevétel/kérdés $$$&lt;br /&gt;
&lt;br /&gt;
Nem vagyok nagy algel tudós, de miért ne lehetne y&amp;gt;=1? Tudomásom szerint, a Prim az mindig a legkisebb olyan élt veszi be ami olyan csúcsba visz ami eddig nem volt a halmazba. Ha pedig nincs igazam, akkor meg y&amp;gt;=2 mivel (AE) súlya 2 és akkor azt kellene, (ha csak a sulyok szerint növekvőt nézzük).&lt;br /&gt;
&lt;br /&gt;
$$$$$$&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;b)&#039;&#039;&#039; Kruskal algoritmus - Éleket nagyság szerint sorrendbe rakjuk, és növekvő sorrendben felvesszük a fához az éleket, vigyázva, hogy ne csináljunk kört.&lt;br /&gt;
&lt;br /&gt;
1 súlyú - AB, BE, ED&lt;br /&gt;
&lt;br /&gt;
2 súlyú - AE&lt;br /&gt;
&lt;br /&gt;
3 súlyú - BC, AD, EC (és DC, ha &amp;lt;math&amp;gt;y = 3&amp;lt;/math&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
Az összes megoldás:&lt;br /&gt;
&lt;br /&gt;
#Az 1 súlyú éleket &amp;lt;math&amp;gt;3! = 6&amp;lt;/math&amp;gt; féleképpen veheti fel az algoritmus (nem lehet belőlük kört csinálni, így itt nincsen para).&lt;br /&gt;
#Utána megpróbálná felvenni az AE élt, de azzal egy kört kapna, így nem veszi fel. Az AD éllel szintén így járna (~ezeket kéne pirosra színezni, ha olyan lenne a feladat).&lt;br /&gt;
#Maradtak a BC, EC és DC oldalak.&lt;br /&gt;
##Ha &amp;lt;math&amp;gt;y = 3&amp;lt;/math&amp;gt;, akkor ezeket szintén 6 féleképpen veheti fel, tehát összesen 36 féleképpen futhat az algoritmus.&lt;br /&gt;
##Ha &amp;lt;math&amp;gt;y \ge 3&amp;lt;/math&amp;gt;, akkor a DC oldal kiesik, a maradék 2 élt 2 féleképpen veheti fel, így 12 féleképpen futhat az algoritmus.}}&lt;br /&gt;
&lt;br /&gt;
===7. Feladat (Van megoldás)=== &lt;br /&gt;
Létezik-e olyan X eldöntési probléma, amire X&amp;lt;big&amp;gt;∉&amp;lt;/big&amp;gt;NP és X&amp;lt;big&amp;gt;≺&amp;lt;/big&amp;gt;SAT egyszerre fennáll? &lt;br /&gt;
&lt;br /&gt;
{{Rejtett&lt;br /&gt;
|mutatott=&amp;lt;big&amp;gt;&#039;&#039;&#039;Megoldás&#039;&#039;&#039;&amp;lt;/big&amp;gt;&lt;br /&gt;
|szöveg=&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;Tétel:&#039;&#039;&#039; Ha X ≺ Y és Y ∈ NP,akkor X ∈ NP&lt;br /&gt;
*&#039;&#039;&#039;Tétel:&#039;&#039;&#039; A SAT probléma NP teljes, tehát része NP-nek.&lt;br /&gt;
*A fentiek alapján, mivel X&amp;lt;big&amp;gt;∉&amp;lt;/big&amp;gt;NP, a kérdéses X probléma nem létezhet.&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
===8. Feladat===&lt;br /&gt;
P-ben van vagy NP-teljes az alábbi eldöntési probléma:&amp;lt;br&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;Input:&#039;&#039;&#039; irányítatlan G gráf&amp;lt;br&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;Kérdés:&#039;&#039;&#039; Igaz-e, hogy G-ben vagy van Hamilton-út vagy G 3 színnel színezhető?&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
{{Rejtett&lt;br /&gt;
|mutatott=&amp;lt;big&amp;gt;&#039;&#039;&#039;Megoldás&#039;&#039;&#039;&amp;lt;/big&amp;gt;&lt;br /&gt;
|szöveg=&lt;br /&gt;
Legyen az eldöntési probléma neve A&amp;lt;br&amp;gt;&lt;br /&gt;
G ∈ A akkor, ha G∈3SZÍN vagy G∈H&amp;lt;br&amp;gt;&lt;br /&gt;
Adjunk 3SZÍN &amp;lt; A  Karp redukciót, ekkor mivel a 3SZÍN probléma NP-teljes az A is NP-teljes lesz.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
G&#039; legyen az a gráf, amelyet úgy kapunk, hogy G-t kiegészítünk egy 3 csúcsból álló körrel. Mivel G&#039;-ben biztosan nincs Hamilton-út ( Nem összefüggő ), ezért G&#039; ∈ A akkor és csakis akkor, ha G ∈ 3SZÍN&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[Kategória:Infoalap]]&lt;/div&gt;</summary>
		<author><name>Bartos Bence</name></author>
	</entry>
	<entry>
		<id>https://vik.wiki/index.php?title=Algoritmuselm%C3%A9let_-_Vizsga,_2013.06.06.&amp;diff=186397</id>
		<title>Algoritmuselmélet - Vizsga, 2013.06.06.</title>
		<link rel="alternate" type="text/html" href="https://vik.wiki/index.php?title=Algoritmuselm%C3%A9let_-_Vizsga,_2013.06.06.&amp;diff=186397"/>
		<updated>2015-06-18T14:10:10Z</updated>

		<summary type="html">&lt;p&gt;Bartos Bence: /* 6. Feladat (Van megoldás) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Vissza|Algoritmuselmélet}}&lt;br /&gt;
&lt;br /&gt;
==2013.06.06. vizsga megoldásai==&lt;br /&gt;
===1. Feladat (Van megoldás) ===&lt;br /&gt;
Ebben a feladatban a mélységi bejárással kapcsolatos kérdésekre kell válaszolni.&lt;br /&gt;
* &#039;&#039;&#039;(a)&#039;&#039;&#039; Adja meg a keresztél definícióját!&lt;br /&gt;
* &#039;&#039;&#039;(b)&#039;&#039;&#039; A mélységi bejárás során hogyan lehet a mélységi és a befejezési számok alapján felismerni a keresztéleket? &#039;&#039;Vizsgán megjegyzést fűztek hozzá: irányított gráfokra kell gondolni.&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;(c)&#039;&#039;&#039; Bizonyítsa be, hogy irányítatlan gráf mélységi bejárásánál nincsenek keresztélek!&lt;br /&gt;
{{Rejtett&lt;br /&gt;
|mutatott=&amp;lt;big&amp;gt;&#039;&#039;&#039;Megoldás&#039;&#039;&#039;&amp;lt;/big&amp;gt;&lt;br /&gt;
|szöveg=&lt;br /&gt;
&#039;&#039;&#039;a)&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
Tekintsük a G irányított gráf egy mélységi bejárását és a kapott T mélységi feszítő erdőt. Ezen bejárás szerint G egy x → y éle keresztél, ha x és y nem leszármazottjai egymásnak.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;b)&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
msz - mélységi szám&amp;lt;br&amp;gt;&lt;br /&gt;
bsz - befejezési szám&amp;lt;br&amp;gt;&lt;br /&gt;
Ha &amp;lt;math&amp;gt; (msz[y] &amp;lt; msz[x]) &amp;lt;/math&amp;gt; és &amp;lt;math&amp;gt;(bsz[y] &amp;gt; 0) &amp;lt;/math&amp;gt;, akkor az x →  y egy keresztél.&amp;lt;br&amp;gt;&lt;br /&gt;
[[Fájl:Algel vizsga 2013tavasz Keresztel 1.png]]&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;c)&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
A &#039;&#039;&#039;b)&#039;&#039;&#039; rész alapján könnyen belátható. Ha lenne keresztél, az azt jelentené, hogy van olyan x → y él, amire fennáll, hogy &amp;lt;math&amp;gt; (msz[y] &amp;lt; msz[x]) &amp;lt;/math&amp;gt; és &amp;lt;math&amp;gt;(bsz[y] &amp;gt; 0) &amp;lt;/math&amp;gt;, vagyis y-ban előbb jártunk, mint x-ben, és y-nak van befejezési száma. Ennél fogva nem lehet keresztél, hiszen ha lenne, akkor y-ból eljuthattunk volna még x-be, mielőtt befejeztük volna.&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Másképpen mondva:&#039;&#039;&#039; Nem fejezhettük volna be y-t anélkül, hogy ne jártunk volna x-ben.&amp;lt;br&amp;gt;&lt;br /&gt;
[[Fájl:Algel vizsga 2013tavasz Keresztel 2.PNG]]&amp;lt;br&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
===2. Feladat (Van megoldás)===&lt;br /&gt;
Milyen műveletek vannak a nyitott címzésű hash-elésnél? Hogyan kell megvalósítani a keresést, ha a nyitott címzésű hashelésnél kvadratikus maradék próbát használunk? &lt;br /&gt;
&lt;br /&gt;
{{Rejtett&lt;br /&gt;
|mutatott=&amp;lt;big&amp;gt;&#039;&#039;&#039;Megoldás&#039;&#039;&#039;&amp;lt;/big&amp;gt;&lt;br /&gt;
|szöveg=&lt;br /&gt;
&lt;br /&gt;
{{Rejtett&lt;br /&gt;
|mutatott=&amp;lt;big&amp;gt;&#039;&#039;&#039;Kiegészítések a feladat megértéséhez&#039;&#039;&#039;&amp;lt;/big&amp;gt;&lt;br /&gt;
|szöveg=&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Mi az a nyitott címzésű hash-elés?&#039;&#039;&#039;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
lásd: [[Hash_tömb]] &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Mi az a kvadratikus maradék próba, nyitott címzésű hash-elésnél?&#039;&#039;&#039;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
todo &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&#039;&#039;&#039;Nyitott címzésű hash-elés műveletei:&#039;&#039;&#039;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Új elem beszúrása, elem keresése, elem törlése.&amp;lt;br&amp;gt;&lt;br /&gt;
A törlés speciális jelzéssel történik.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Keresés megvalósítása nyitott címzésű hash-elés esetén kvadratikus maradék próbánál:&#039;&#039;&#039;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
A kvadratikus maradék próba egy álvéletlen próba, ezért másodlagos csomósodáshoz vezethet.&amp;lt;br&amp;gt;&lt;br /&gt;
Legyen M egy 4k + 3 alakú prímszám, ahol k egy pozitív egész.&amp;lt;br&amp;gt;&lt;br /&gt;
Ekkor a próbasorozat legyen&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt; 0,1^2,(-1)^2, 2^2,(-2)^2,..,\left ( \frac{M-1}{2} \right )^{2}, -\left ( \frac{M-1}{2} \right )^{2} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
===3. Feladat (Van megoldás)===&lt;br /&gt;
Adja meg az UNIÓ-HOLVAN adatszerkezet definícióját! (A fákkal való implementálást nem kell leírnia.) Mutassa meg, hogy mikor és hogyan használjuk az UNIÓ és a HOLVAN műveleteket a Kruskal algoritmusban! &lt;br /&gt;
&lt;br /&gt;
{{Rejtett&lt;br /&gt;
|mutatott=&amp;lt;big&amp;gt;&#039;&#039;&#039;Megoldás&#039;&#039;&#039;&amp;lt;/big&amp;gt;&lt;br /&gt;
|szöveg=&lt;br /&gt;
&lt;br /&gt;
{{Rejtett&lt;br /&gt;
|mutatott=&amp;lt;big&amp;gt;&#039;&#039;&#039;Kiegészítések a feladat megértéséhez&#039;&#039;&#039;&amp;lt;/big&amp;gt;&lt;br /&gt;
|szöveg=&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Mi az a Kruskal algoritmus?&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
A Kruskal algoritmust minimális költségű feszítőfák meghatározására használjuk. A piros-kék algoritmus egyik implementációja. &amp;lt;br&amp;gt;&lt;br /&gt;
Lényege, hogy a gráf éleit súlyuk szerint nem csökkenő sorrendbe állítja, majd sorban megpróbálja kékre színezni őket. &amp;lt;br&amp;gt;&lt;br /&gt;
Ennek az a feltétele, hogy az újonnan kékre színezendő él beszínezése után se legyen kör a kékre színezett élek által alkotott gráfban. &amp;lt;br&amp;gt;&lt;br /&gt;
Ha ez mégis kört eredményezne, úgy az él nem kék, hanem piros lesz.&amp;lt;br&amp;gt;&lt;br /&gt;
A kékre színezett élek egy minimális összsúlyú feszítőfát adnak.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&#039;&#039;&#039;UNIÓ-HOLVAN adatszerkezet definíciója: &#039;&#039;&#039;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Adott egy véges S halmaz, amelynek egy felosztását (partícióját) akarjuk tárolni. &amp;lt;br&amp;gt;&lt;br /&gt;
2 műveletünk van:&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
UNIÓ(U, V halmazok, amelyek S részhalmazai): S-ből kivesszük az U-t és a V-t, majd hozzáadjuk (unió) U és V unióját. &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
HOLVAN(v pont, v benne van S-ben): Azt az U halmazt adja meg, amelynek v eleme.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Mikor és hogyan használjuk az UNIÓ és a HOLVAN műveleteket a Kruskal algoritmusban:&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
A Kruskal algoritmus lelke az UNIÓ-HOLVAN adatszerkezet. &amp;lt;br&amp;gt;&lt;br /&gt;
Kezdetben a gráf minden pontja másik &amp;lt;math&amp;gt;U_i&amp;lt;/math&amp;gt; részhalmazban van, tehát minden &amp;lt;math&amp;gt;U_i&amp;lt;/math&amp;gt; egy pontot tartalmaz.&amp;lt;br&amp;gt;&lt;br /&gt;
Az algoritmus elindul a legkisebb súlyú éleken. &amp;lt;br&amp;gt;&lt;br /&gt;
Az élek két végpontjára (v és w) megvizsgálja, hogy HOLVAN(v) egyenlő-e HOLVAN(w)-vel. &amp;lt;br&amp;gt;&lt;br /&gt;
Ha igen, akkor egy részhalmazban vannak, kört okoznának =&amp;gt; piros él lesz.&amp;lt;br&amp;gt;&lt;br /&gt;
Ha nem áll fenn az egyenlőség, akkor a (v,w) kék lesz, a két részhalmazt pedig nyugodtan egyesíthetjük (hozzávehetjük az új élet a kék gráfhoz):&amp;lt;br&amp;gt;&lt;br /&gt;
UNIÓ(&amp;lt;math&amp;gt;U_v&amp;lt;/math&amp;gt;,&amp;lt;math&amp;gt;U_w&amp;lt;/math&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
===4. Feladat===&lt;br /&gt;
Pista bácsi fel akar ugrálni egy n hosszú, fekete illetve fehér fokokból álló csigalépcsőn. Legfeljebb k fokot tud ugrani, de arra vigyáznia kell, hogy páros (&amp;gt;=2) sok foknyi ugrás után páratlan sokat és páratlan sok után mindig páros (&amp;gt;=2) sokat ugorjon. Adjon O(nk) lépésszámú algoritmust, amely megmondja, hogy fel tud-e úgy ugrálni a csigalépcső tetejére, hogy csak egyféle színű lépcsőfokot használ. (A lépcső fokai rendszertelenül vannak színezve, a színezést ismerjük.) &lt;br /&gt;
&#039;&#039;Vizsgán megjegyzést fűztek hozzá: a talaj és a legteteje nem színes, csak a lépcsők; csak fölfele (előrefele) ugrál, visszafele nem. &#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{Rejtett&lt;br /&gt;
|mutatott=&amp;lt;big&amp;gt;&#039;&#039;&#039;Megoldás&#039;&#039;&#039;&amp;lt;/big&amp;gt;&lt;br /&gt;
|szöveg=&lt;br /&gt;
&lt;br /&gt;
todo&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
===5. Feladat (Van megoldás)=== &lt;br /&gt;
A hátizsák probléma órán tanult algoritmusát futtattuk egy konkrét inputon, melyben 3 tárgy szerepel. Mi lehetett ez a konkrét input, ha az alábbi táblázat keletkezett?&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! &lt;br /&gt;
! 0 &lt;br /&gt;
! 1 &lt;br /&gt;
! 2 &lt;br /&gt;
! 3 &lt;br /&gt;
! 4 &lt;br /&gt;
! 5 &lt;br /&gt;
! 6 &lt;br /&gt;
! 7 &lt;br /&gt;
|-&lt;br /&gt;
| 1 &lt;br /&gt;
| 0 &lt;br /&gt;
| 0 &lt;br /&gt;
| 0 &lt;br /&gt;
| 0 &lt;br /&gt;
| 10 &lt;br /&gt;
| 10 &lt;br /&gt;
| 10 &lt;br /&gt;
| 10 &lt;br /&gt;
|-&lt;br /&gt;
| 2 &lt;br /&gt;
| 0 &lt;br /&gt;
| 0 &lt;br /&gt;
| 5 &lt;br /&gt;
| 5 &lt;br /&gt;
| 10 &lt;br /&gt;
| 10 &lt;br /&gt;
| 15 &lt;br /&gt;
| 15 &lt;br /&gt;
|-&lt;br /&gt;
| 3 &lt;br /&gt;
| 0 &lt;br /&gt;
| 0 &lt;br /&gt;
| 5 &lt;br /&gt;
| 5 &lt;br /&gt;
| 13 &lt;br /&gt;
| 13 &lt;br /&gt;
| 18 &lt;br /&gt;
| 18 &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{{Rejtett&lt;br /&gt;
|mutatott=&amp;lt;big&amp;gt;&#039;&#039;&#039;Megoldás&#039;&#039;&#039;&amp;lt;/big&amp;gt;&lt;br /&gt;
|szöveg=&lt;br /&gt;
&lt;br /&gt;
Az egyszerűség kedvéért a súly legyen kg, az érték pedig €.&lt;br /&gt;
&lt;br /&gt;
#Az első sor alapján az 1-es csomag értéke €10, súlya 4kg.&lt;br /&gt;
#A második sor alapján a 2-es csomag értéke €5, súlya 2kg.&lt;br /&gt;
#A 3. lépésben 2 lehetőségünk van, a 3. csomag értéke vagy 13-5=€8, vagy 13-0=€13.&lt;br /&gt;
##€8 nem lehet, mert akkor a súlya 2kg lenne, de akkor a [2,3] cellába 8 lenne, nem 5.&lt;br /&gt;
##Így csak a €13 jöhet szóba, súlya pedig 4kg, ami jó megoldás lesz.&lt;br /&gt;
&lt;br /&gt;
{{Rejtett&lt;br /&gt;
|mutatott=&#039;&#039;Avagy kicsit gépiesebb megoldás:&#039;&#039;&lt;br /&gt;
|szöveg=&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Jelölje &amp;lt;math&amp;gt; T[s,cs]&amp;lt;/math&amp;gt; a táblázat &amp;lt;math&amp;gt;[s,cs]&amp;lt;/math&amp;gt; celláját, továbbá &amp;lt;math&amp;gt; V_3&amp;lt;/math&amp;gt; a 3. csomag értékét, &amp;lt;math&amp;gt; S_3&amp;lt;/math&amp;gt; pedig a súlyát.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Tudjuk, hogy &amp;lt;math&amp;gt; T[s,cs]=max\left \{ T[s,cs-1];V_i+T[s-S_i,cs-1] \right \}&amp;lt;/math&amp;gt;, ami ebben az esetben:&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt; T[4,3]=max\left \{ T[4,2];V_3+T[4-S_3,2] \right \} \rightarrow  13=max\left \{ 10;V_3+T[4-S_3,2] \right \}&amp;lt;/math&amp;gt;, amiből következik, hogy:&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt; 13=V_3+T[4-S_3,2] \rightarrow V_3 = 13-T[4-S_3,2]\Rightarrow\Rightarrow S_3=4, V_3=13&amp;lt;/math&amp;gt; (Átgondolható, hogy a 3. csomag súlya nem lehet 1,2 vagy 3kg).&lt;br /&gt;
}}&lt;br /&gt;
Tehát végeredményben a megoldás:&lt;br /&gt;
*1-es csomag (€10, 4kg)&lt;br /&gt;
*2-es csomag (€5, 2kg)&lt;br /&gt;
*3-as csomag (€13, 4kg)&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
===6. Feladat (Van megoldás)===&lt;br /&gt;
Egy irányítatlan, élsúlyozott gráf az alábbi éllistával adott (zárójelben az élsúlyok):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;A:B(1), D(3), E(2); B:A(1), C(3), D(y); D:A(3), C(y), E(x); E:A(2), B(1), D(x).&amp;lt;/math&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;(a)&#039;&#039;&#039; Mi lehet x és y értéke, ha tudjuk, hogy az élsúlyok egész számok, és azt is tudjuk, hogy a B csúcsból indított Prim algoritmus az alábbi sorrendben vette be az értékeket: BE, ED, BA, BC. &#039;&#039;Vizsgán megjegyzést fűztek hozzá: az élsúlyok pozitív egész számok, a pozitív szót kifelejtették véletlenül.&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;(b)&#039;&#039;&#039; Mely éleket és milyen sorrendben választja ki a Kruskal algoritmus? (Ha több megoldás is van, akkor az összeset adja meg!)&lt;br /&gt;
{{Rejtett&lt;br /&gt;
|mutatott=&amp;lt;big&amp;gt;&#039;&#039;&#039;Megoldás&#039;&#039;&#039;&amp;lt;/big&amp;gt;&lt;br /&gt;
|szöveg=&lt;br /&gt;
[[File:Algel vizsga 2013tavasz V2 6.png]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;a)&#039;&#039;&#039; Prim algoritmus - Ugyebár úgy dolgozik, hogy az aktuális fához a vele szomszédos élek közül a legkisebb súlyút veszi be. Prim: BE → ED → BA → BC&lt;br /&gt;
# A fához hozzáadjuk a BE élt.&lt;br /&gt;
# Most az ED élt választottuk. Ez alapján x értéke csak 1 lehet, így &amp;lt;math&amp;gt;x = 1&amp;lt;/math&amp;gt;. (Feladatból kihagyták, hogy pozitív egészekről van szó, amúgy &amp;lt;math&amp;gt;x \le 1&amp;lt;/math&amp;gt; lehetne.)&lt;br /&gt;
# Most az AB élt adjuk hozzá, ez alapján &amp;lt;math&amp;gt;y \ge 1&amp;lt;/math&amp;gt;.&lt;br /&gt;
# Most a BC élt adjuk hozzá, ez alapján &amp;lt;math&amp;gt;y \ge 3&amp;lt;/math&amp;gt;, így végül &amp;lt;math&amp;gt;y \ge 3&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
$$$ Észrevétel/kérdés $$$&lt;br /&gt;
&lt;br /&gt;
Nem vagyok nagy algel tudós, de miért ne lehetne y&amp;gt;=1? Tudomásom szerint, a Prim az mindig a legkisebb olyan élt veszi be ami olyan csúcsba visz ami eddig nem volt a halmazba. Ha pedig nincs igazam, akkor meg y&amp;gt;=2 mivel (AE) súlya 2 és akkor azt kellene, (ha csak a sulyok szerint növekvőt nézzük.&lt;br /&gt;
&lt;br /&gt;
$$$$$$&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;b)&#039;&#039;&#039; Kruskal algoritmus - Éleket nagyság szerint sorrendbe rakjuk, és növekvő sorrendben felvesszük a fához az éleket, vigyázva, hogy ne csináljunk kört.&lt;br /&gt;
&lt;br /&gt;
1 súlyú - AB, BE, ED&lt;br /&gt;
&lt;br /&gt;
2 súlyú - AE&lt;br /&gt;
&lt;br /&gt;
3 súlyú - BC, AD, EC (és DC, ha &amp;lt;math&amp;gt;y = 3&amp;lt;/math&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
Az összes megoldás:&lt;br /&gt;
&lt;br /&gt;
#Az 1 súlyú éleket &amp;lt;math&amp;gt;3! = 6&amp;lt;/math&amp;gt; féleképpen veheti fel az algoritmus (nem lehet belőlük kört csinálni, így itt nincsen para).&lt;br /&gt;
#Utána megpróbálná felvenni az AE élt, de azzal egy kört kapna, így nem veszi fel. Az AD éllel szintén így járna (~ezeket kéne pirosra színezni, ha olyan lenne a feladat).&lt;br /&gt;
#Maradtak a BC, EC és DC oldalak.&lt;br /&gt;
##Ha &amp;lt;math&amp;gt;y = 3&amp;lt;/math&amp;gt;, akkor ezeket szintén 6 féleképpen veheti fel, tehát összesen 36 féleképpen futhat az algoritmus.&lt;br /&gt;
##Ha &amp;lt;math&amp;gt;y \ge 3&amp;lt;/math&amp;gt;, akkor a DC oldal kiesik, a maradék 2 élt 2 féleképpen veheti fel, így 12 féleképpen futhat az algoritmus.}}&lt;br /&gt;
&lt;br /&gt;
===7. Feladat (Van megoldás)=== &lt;br /&gt;
Létezik-e olyan X eldöntési probléma, amire X&amp;lt;big&amp;gt;∉&amp;lt;/big&amp;gt;NP és X&amp;lt;big&amp;gt;≺&amp;lt;/big&amp;gt;SAT egyszerre fennáll? &lt;br /&gt;
&lt;br /&gt;
{{Rejtett&lt;br /&gt;
|mutatott=&amp;lt;big&amp;gt;&#039;&#039;&#039;Megoldás&#039;&#039;&#039;&amp;lt;/big&amp;gt;&lt;br /&gt;
|szöveg=&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;Tétel:&#039;&#039;&#039; Ha X ≺ Y és Y ∈ NP,akkor X ∈ NP&lt;br /&gt;
*&#039;&#039;&#039;Tétel:&#039;&#039;&#039; A SAT probléma NP teljes, tehát része NP-nek.&lt;br /&gt;
*A fentiek alapján, mivel X&amp;lt;big&amp;gt;∉&amp;lt;/big&amp;gt;NP, a kérdéses X probléma nem létezhet.&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
===8. Feladat===&lt;br /&gt;
P-ben van vagy NP-teljes az alábbi eldöntési probléma:&amp;lt;br&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;Input:&#039;&#039;&#039; irányítatlan G gráf&amp;lt;br&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;Kérdés:&#039;&#039;&#039; Igaz-e, hogy G-ben vagy van Hamilton-út vagy G 3 színnel színezhető?&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
{{Rejtett&lt;br /&gt;
|mutatott=&amp;lt;big&amp;gt;&#039;&#039;&#039;Megoldás&#039;&#039;&#039;&amp;lt;/big&amp;gt;&lt;br /&gt;
|szöveg=&lt;br /&gt;
Legyen az eldöntési probléma neve A&amp;lt;br&amp;gt;&lt;br /&gt;
G ∈ A akkor, ha G∈3SZÍN vagy G∈H&amp;lt;br&amp;gt;&lt;br /&gt;
Adjunk 3SZÍN &amp;lt; A  Karp redukciót, ekkor mivel a 3SZÍN probléma NP-teljes az A is NP-teljes lesz.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
G&#039; legyen az a gráf, amelyet úgy kapunk, hogy G-t kiegészítünk egy 3 csúcsból álló körrel. Mivel G&#039;-ben biztosan nincs Hamilton-út ( Nem összefüggő ), ezért G&#039; ∈ A akkor és csakis akkor, ha G ∈ 3SZÍN&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[Kategória:Infoalap]]&lt;/div&gt;</summary>
		<author><name>Bartos Bence</name></author>
	</entry>
	<entry>
		<id>https://vik.wiki/index.php?title=Szerkeszt%C5%91vita:Renesans&amp;diff=183075</id>
		<title>Szerkesztővita:Renesans</title>
		<link rel="alternate" type="text/html" href="https://vik.wiki/index.php?title=Szerkeszt%C5%91vita:Renesans&amp;diff=183075"/>
		<updated>2014-11-01T16:31:50Z</updated>

		<summary type="html">&lt;p&gt;Bartos Bence: Új oldal, tartalma: „A második feladatnál az XL = gyök(Z^2+R^2) és nem XL = gyök(Z^2-R^2). Rosszul lett rendezve szerintem.”&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;A második feladatnál az XL = gyök(Z^2+R^2) és nem XL = gyök(Z^2-R^2). Rosszul lett rendezve szerintem.&lt;/div&gt;</summary>
		<author><name>Bartos Bence</name></author>
	</entry>
</feed>