<?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=Subdiaz</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=Subdiaz"/>
	<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/Subdiaz"/>
	<updated>2026-05-19T00:31:03Z</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.06.06.&amp;diff=167874</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=167874"/>
		<updated>2013-06-11T11:51:59Z</updated>

		<summary type="html">&lt;p&gt;Subdiaz: /* 8. Feladat */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&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: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: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: https://wiki.sch.bme.hu/Hash_t%C3%B6mb &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===&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;
todo &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;
todo &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;
todo &amp;lt;br&amp;gt;&amp;lt;br&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:2013_06_06_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;
&#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;
{{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;
&amp;lt;big&amp;gt;&#039;&#039;&#039;Eldöntési probléma osztályok? &#039;&#039;&#039;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:bonyolultsag_elmelet.JPG|390px]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;&#039;problémák&#039;&#039;&#039;nak lehet több típusú több bemenete, és több típusú több kimenete. Ezeket átfogalmazzuk olyanra, hogy a kimenete egyetlen bit legyen (IGEN / NEM), mert ezen algoritmusok felhasználásával is teljesen jól lehet dolgozni, ugyanakkor könnyebb őket nehézség / bonyolultság szerint osztályozni. Az ilyen 1 bites kimenetű problémákat nevezzük &#039;&#039;&#039;eldöntési problémák&#039;&#039;&#039;nak. &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Az eldöntési problémákat nehézség / bonyolultság szerint osztályokba soroljuk, ezen osztályok között olyan kapcsolatok vannak mint a halmazoknál; ez a fenti rajzon látszik.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;&#039;P osztály&#039;&#039;&#039;ba olyan problémák tartoznak, amelyekre ismert olyan algoritmus, ami a bemenet polinomjával megadott idő alatt lefut. Vagyis ha a bemenet &#039;&#039;&#039;n&#039;&#039;&#039;, akkor az algoritmusra azt mondjuk, hogy nagy_ordó(valami), ahol a valami &#039;&#039;&#039;n&#039;&#039;&#039; egy polinomja, például n négyzet, n köb, három n négyzet meg négy meg nyolc n köb, és ilyesmik. &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Az &#039;&#039;&#039;NP osztály&#039;&#039;&#039;ba olyan problémák tartoznak, amelyekre nem feltétlenül ismert polinom idejű (P-beli) algoritmus, de igen válasz esetén létezik hatékony tanúsítvány. Vagyis, adott egy nagy csomó bemenet és van egy kérdés. P-idő alatt nem tudjuk megmondani a választ, de ha valaki megsúgja hogy a válasz IGEN, akkor P-időben meg tudjuk mondani, hogy ez hülyeség vagy nem hülyeség. Ha azt súgják meg hogy NEM, akkor fogalmunk sincs, P-időben nem tudjuk eldönteni hogy hülyeség-e vagy sem. (&#039;&#039;Ha így lenne, vagyis igen és nem válasz esetén is P-időben ellenőrizni tudnánk a válasz helyességét, akkor az egész probléma P-beli lenne, hiszen megsúgjuk saját magunknak hogy NEM és ha helyes akkor NEM egyébként igen. Persze ha az IGEN-ről P-időben kiderül hogy hülyeség attól még lehet hogy IGEN, csak éppen nem az a konkrét ami meg lett súgva, hanem egy másik.&#039;&#039;) &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;&#039;coNP osztály&#039;&#039;&#039; lényegében ugyanaz mint az NP osztály, csak NEM válaszra. Vagyis (jelenleg) nem ismerünk rá P-beli algoritmust, de ha a válasz NEM, akkor P-időben (hatékonyan) ellenőrizni tudjuk, hogy ez-e a jó válasz vagy sem. Szintén, IGEN válasz esetén semmit sem tudunk mondani P-időben, a fenti okok miatt (ami a zárójelben van). &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Az &#039;&#039;&#039;NP nehéz&#039;&#039;&#039; osztályba tartozó eldöntési problémák közül bármelyik legalább olyan nehéz, mint bármelyik másik NP-beli eldöntési probléma. Itt jön képbe a Karp-redukció fogalma. Jó dolog sok NP nehéz problémát ismerni, mert akkor ha találunk egy problémát, akkor ha találunk olyan Karp-redukciót, ami azt mutatja, hogy ez a probléma visszavezethető egy közismert NP nehéz problémára, akkor a mi ismeretlen problémánk is NP nehéz lesz. Ez azért van, mert a Karp-redukció tranzitív művelet, továbbá a Karp-redukcónál használt f függvény P-beli, amit kétszer egymás után alkalmazva is még mindig P-beli lesz ez a dolog (az inputok átalakítása). &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Az &#039;&#039;&#039;NP teljes&#039;&#039;&#039; problémák azok, amik NP nehezek és NP-beliek is egyszerre. A fenti dolog ide is érvényes, vagyis jó dolog ha sok nevezetes NP teljes problémát ismerünk, mert ha egy ismeretlen problémához találunk egy olyan Karp-redukciót, ami alapján az ismeretlen problémánkat visszavezethetjük egy közismert NP teljes problémára, akkor az ismeretlen problémánkról is kiderült, hogy NP teljes. &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;big&amp;gt;&#039;&#039;&#039;Karp-redukció?&#039;&#039;&#039;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;/big&amp;gt;&lt;br /&gt;
Van egy olyan gépünk, ami kizárólag B problémát tudja megoldani. Nekünk viszont A problémánk van. Ekkor ha szerencsénk van, akkor fogunk találni egy olyan Karp-redukciót, hogy A&amp;lt;big&amp;gt;≺&amp;lt;/big&amp;gt;B. Ennek persze vannak feltételei. Az A eldöntési probléma inputját át kell alakítani B eldöntési probléma inputjává, és meg is kell adni ezt a függvényt, nevezzük el ezt a függvényt f függvénynek. Feltétel, hogy f függvény polinom időben kiszámolható legyen, és ezt be is kell bizonyítani. Továbbá azt is be kell bizonyítani, hogy amennyiben a normális inputra A azt válaszolná, hogy IGEN, akkor az f(normális input)-ra a B szintén ugyanezt válaszolná (és ugyanezt be kell bizonyítani NEM válaszra is). Magyarul a B dolgot megoldó gépet megerőszakoljuk hogy A problémát is hajlandó legyen megoldani. &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ebből következik néhány dolog. Például az, hogy B legalább olyan nehéz probléma, mint A. Ha például B NP-teljes, akkor A is az. Ha B NP-nehéz, akkor A is az. Ha B coNP-beli, akkor A is az. Ez miért van? Hát azért, mert polinom időben át lehet alakítani az A problémát B-vé. Ezt indirekten könnyen lehet bizonyítani. Indirekt tegyük fel, hogy annak ellenére hogy B probléma NP-teljes és létezik egy olyan Karp-redukció ami A problmémát átalakítja B-vé, szóval mindezek ellenére A probléma P-beli. Ekkor A problémát egy polinom idejű f függvénnyel simán átalakítjuk B problémává, erről szól ugye a Karp-redukció. Ezek után ha bármikor B problémát akarnánk megoldani, akkor az f-függvény fordítva végrehajtásával a B inputját átalakítjuk A inputjává, megoldjuk az A problémát polinom időben, és kész is. Ez ellentmondás mivel B-ről azt mondtuk hogy NP-teljes. A másik érdekesség, hogy ha például egy NP-teljes vagy NP-nehéz problémáról kiderülne hogy P-beli, akkor az összes NP-beliről kiderülne hogy P-beli, mivel az NP-nehéz definíciója az, hogy legalább olyan nehéz mint bármely tetszőleges NP-beli. &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Még egy fontos megjegyzés a Karp-redukcióhoz: ugye A problémát akarjuk megoldani, de csak B-t megoldó gépünk van. Az egyik gyakorlaton elhangzott, és fontos tudni, hogy a B-t megoldó gépet az A eldöntési probléma megoldásához csak EGYSZER használhatjuk. Azért mert a Karp-redukció az ilyen.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;big&amp;gt;&#039;&#039;&#039;SAT probléma? &#039;&#039;&#039;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;/big&amp;gt;&lt;br /&gt;
A SAT probléma NP-teljes.&amp;lt;br&amp;gt;&lt;br /&gt;
forrás:http://www.cs.bme.hu/algel/12elo-2012.pdf&amp;lt;br&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;big&amp;gt;&#039;&#039;&#039;A feladat megoldása: &#039;&#039;&#039;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;/big&amp;gt;&lt;br /&gt;
Tétel: Ha X ≺ Y és Y ∈ NP,akkor X ∈ NP&amp;lt;br&amp;gt;&lt;br /&gt;
Tétel: A SAT probléma NP teljes, tehát része NP-nek.&amp;lt;br&amp;gt;&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;
&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;
&amp;lt;big&amp;gt;&#039;&#039;&#039;Eldöntési probléma osztályok? &#039;&#039;&#039;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:bonyolultsag_elmelet.JPG|390px]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;&#039;problémák&#039;&#039;&#039;nak lehet több típusú több bemenete, és több típusú több kimenete. Ezeket átfogalmazzuk olyanra, hogy a kimenete egyetlen bit legyen (IGEN / NEM), mert ezen algoritmusok felhasználásával is teljesen jól lehet dolgozni, ugyanakkor könnyebb őket nehézség / bonyolultság szerint osztályozni. Az ilyen 1 bites kimenetű problémákat nevezzük &#039;&#039;&#039;eldöntési problémák&#039;&#039;&#039;nak. &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Az eldöntési problémákat nehézség / bonyolultság szerint osztályokba soroljuk, ezen osztályok között olyan kapcsolatok vannak mint a halmazoknál; ez a fenti rajzon látszik.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;&#039;P osztály&#039;&#039;&#039;ba olyan problémák tartoznak, amelyekre ismert olyan algoritmus, ami a bemenet polinomjával megadott idő alatt lefut. Vagyis ha a bemenet &#039;&#039;&#039;n&#039;&#039;&#039;, akkor az algoritmusra azt mondjuk, hogy nagy_ordó(valami), ahol a valami &#039;&#039;&#039;n&#039;&#039;&#039; egy polinomja, például n négyzet, n köb, három n négyzet meg négy meg nyolc n köb, és ilyesmik. &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Az &#039;&#039;&#039;NP osztály&#039;&#039;&#039;ba olyan problémák tartoznak, amelyekre nem feltétlenül ismert polinom idejű (P-beli) algoritmus, de igen válasz esetén létezik hatékony tanúsítvány. Vagyis, adott egy nagy csomó bemenet és van egy kérdés. P-idő alatt nem tudjuk megmondani a választ, de ha valaki megsúgja hogy a válasz IGEN, akkor P-időben meg tudjuk mondani, hogy ez hülyeség vagy nem hülyeség. Ha azt súgják meg hogy NEM, akkor fogalmunk sincs, P-időben nem tudjuk eldönteni hogy hülyeség-e vagy sem. (&#039;&#039;Ha így lenne, vagyis igen és nem válasz esetén is P-időben ellenőrizni tudnánk a válasz helyességét, akkor az egész probléma P-beli lenne, hiszen megsúgjuk saját magunknak hogy NEM és ha helyes akkor NEM egyébként igen. Persze ha az IGEN-ről P-időben kiderül hogy hülyeség attól még lehet hogy IGEN, csak éppen nem az a konkrét ami meg lett súgva, hanem egy másik.&#039;&#039;) &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;&#039;coNP osztály&#039;&#039;&#039; lényegében ugyanaz mint az NP osztály, csak NEM válaszra. Vagyis (jelenleg) nem ismerünk rá P-beli algoritmust, de ha a válasz NEM, akkor P-időben (hatékonyan) ellenőrizni tudjuk, hogy ez-e a jó válasz vagy sem. Szintén, IGEN válasz esetén semmit sem tudunk mondani P-időben, a fenti okok miatt (ami a zárójelben van). &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Az &#039;&#039;&#039;NP nehéz&#039;&#039;&#039; osztályba tartozó eldöntési problémák közül bármelyik legalább olyan nehéz, mint bármelyik másik NP-beli eldöntési probléma. Itt jön képbe a Karp-redukció fogalma. Jó dolog sok NP nehéz problémát ismerni, mert akkor ha találunk egy problémát, akkor ha találunk olyan Karp-redukciót, ami azt mutatja, hogy ez a probléma visszavezethető egy közismert NP nehéz problémára, akkor a mi ismeretlen problémánk is NP nehéz lesz. Ez azért van, mert a Karp-redukció tranzitív művelet, továbbá a Karp-redukcónál használt f függvény P-beli, amit kétszer egymás után alkalmazva is még mindig P-beli lesz ez a dolog (az inputok átalakítása). &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Az &#039;&#039;&#039;NP teljes&#039;&#039;&#039; problémák azok, amik NP nehezek és NP-beliek is egyszerre. A fenti dolog ide is érvényes, vagyis jó dolog ha sok nevezetes NP teljes problémát ismerünk, mert ha egy ismeretlen problémához találunk egy olyan Karp-redukciót, ami alapján az ismeretlen problémánkat visszavezethetjük egy közismert NP teljes problémára, akkor az ismeretlen problémánkról is kiderült, hogy NP teljes. &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;big&amp;gt;&#039;&#039;&#039;Karp-redukció?&#039;&#039;&#039;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;/big&amp;gt;&lt;br /&gt;
Van egy olyan gépünk, ami kizárólag B problémát tudja megoldani. Nekünk viszont A problémánk van. Ekkor ha szerencsénk van, akkor fogunk találni egy olyan Karp-redukciót, hogy A&amp;lt;big&amp;gt;≺&amp;lt;/big&amp;gt;B. Ennek persze vannak feltételei. Az A eldöntési probléma inputját át kell alakítani B eldöntési probléma inputjává, és meg is kell adni ezt a függvényt, nevezzük el ezt a függvényt f függvénynek. Feltétel, hogy f függvény polinom időben kiszámolható legyen, és ezt be is kell bizonyítani. Továbbá azt is be kell bizonyítani, hogy amennyiben a normális inputra A azt válaszolná, hogy IGEN, akkor az f(normális input)-ra a B szintén ugyanezt válaszolná (és ugyanezt be kell bizonyítani NEM válaszra is). Magyarul a B dolgot megoldó gépet megerőszakoljuk hogy A problémát is hajlandó legyen megoldani. &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ebből következik néhány dolog. Például az, hogy B legalább olyan nehéz probléma, mint A. Ha például B NP-teljes, akkor A is az. Ha B NP-nehéz, akkor A is az. Ha B coNP-beli, akkor A is az. Ez miért van? Hát azért, mert polinom időben át lehet alakítani az A problémát B-vé. Ezt indirekten könnyen lehet bizonyítani. Indirekt tegyük fel, hogy annak ellenére hogy B probléma NP-teljes és létezik egy olyan Karp-redukció ami A problmémát átalakítja B-vé, szóval mindezek ellenére A probléma P-beli. Ekkor A problémát egy polinom idejű f függvénnyel simán átalakítjuk B problémává, erről szól ugye a Karp-redukció. Ezek után ha bármikor B problémát akarnánk megoldani, akkor az f-függvény fordítva végrehajtásával a B inputját átalakítjuk A inputjává, megoldjuk az A problémát polinom időben, és kész is. Ez ellentmondás mivel B-ről azt mondtuk hogy NP-teljes. A másik érdekesség, hogy ha például egy NP-teljes vagy NP-nehéz problémáról kiderülne hogy P-beli, akkor az összes NP-beliről kiderülne hogy P-beli, mivel az NP-nehéz definíciója az, hogy legalább olyan nehéz mint bármely tetszőleges NP-beli. &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Még egy fontos megjegyzés a Karp-redukcióhoz: ugye A problémát akarjuk megoldani, de csak B-t megoldó gépünk van. Az egyik gyakorlaton elhangzott, és fontos tudni, hogy a B-t megoldó gépet az A eldöntési probléma megoldásához csak EGYSZER használhatjuk. Azért mert a Karp-redukció az ilyen.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;big&amp;gt;&#039;&#039;&#039;H-út? &#039;&#039;&#039;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;/big&amp;gt;&lt;br /&gt;
todo &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;big&amp;gt;&#039;&#039;&#039;3 színnel színezhetőség problémája? &#039;&#039;&#039;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;/big&amp;gt;&lt;br /&gt;
todo &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;big&amp;gt;&#039;&#039;&#039;A feladat megoldása: &#039;&#039;&#039;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;/big&amp;gt;&lt;br /&gt;
todo &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Subdiaz</name></author>
	</entry>
	<entry>
		<id>https://vik.wiki/index.php?title=Algoritmuselm%C3%A9let_-_Vizsga,_2013.06.06.&amp;diff=167873</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=167873"/>
		<updated>2013-06-11T11:51:24Z</updated>

		<summary type="html">&lt;p&gt;Subdiaz: /* 7. Feladat (Van megoldás) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&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: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: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: https://wiki.sch.bme.hu/Hash_t%C3%B6mb &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===&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;
todo &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;
todo &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;
todo &amp;lt;br&amp;gt;&amp;lt;br&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:2013_06_06_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;
&#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;
{{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;
&amp;lt;big&amp;gt;&#039;&#039;&#039;Eldöntési probléma osztályok? &#039;&#039;&#039;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:bonyolultsag_elmelet.JPG|390px]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;&#039;problémák&#039;&#039;&#039;nak lehet több típusú több bemenete, és több típusú több kimenete. Ezeket átfogalmazzuk olyanra, hogy a kimenete egyetlen bit legyen (IGEN / NEM), mert ezen algoritmusok felhasználásával is teljesen jól lehet dolgozni, ugyanakkor könnyebb őket nehézség / bonyolultság szerint osztályozni. Az ilyen 1 bites kimenetű problémákat nevezzük &#039;&#039;&#039;eldöntési problémák&#039;&#039;&#039;nak. &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Az eldöntési problémákat nehézség / bonyolultság szerint osztályokba soroljuk, ezen osztályok között olyan kapcsolatok vannak mint a halmazoknál; ez a fenti rajzon látszik.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;&#039;P osztály&#039;&#039;&#039;ba olyan problémák tartoznak, amelyekre ismert olyan algoritmus, ami a bemenet polinomjával megadott idő alatt lefut. Vagyis ha a bemenet &#039;&#039;&#039;n&#039;&#039;&#039;, akkor az algoritmusra azt mondjuk, hogy nagy_ordó(valami), ahol a valami &#039;&#039;&#039;n&#039;&#039;&#039; egy polinomja, például n négyzet, n köb, három n négyzet meg négy meg nyolc n köb, és ilyesmik. &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Az &#039;&#039;&#039;NP osztály&#039;&#039;&#039;ba olyan problémák tartoznak, amelyekre nem feltétlenül ismert polinom idejű (P-beli) algoritmus, de igen válasz esetén létezik hatékony tanúsítvány. Vagyis, adott egy nagy csomó bemenet és van egy kérdés. P-idő alatt nem tudjuk megmondani a választ, de ha valaki megsúgja hogy a válasz IGEN, akkor P-időben meg tudjuk mondani, hogy ez hülyeség vagy nem hülyeség. Ha azt súgják meg hogy NEM, akkor fogalmunk sincs, P-időben nem tudjuk eldönteni hogy hülyeség-e vagy sem. (&#039;&#039;Ha így lenne, vagyis igen és nem válasz esetén is P-időben ellenőrizni tudnánk a válasz helyességét, akkor az egész probléma P-beli lenne, hiszen megsúgjuk saját magunknak hogy NEM és ha helyes akkor NEM egyébként igen. Persze ha az IGEN-ről P-időben kiderül hogy hülyeség attól még lehet hogy IGEN, csak éppen nem az a konkrét ami meg lett súgva, hanem egy másik.&#039;&#039;) &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;&#039;coNP osztály&#039;&#039;&#039; lényegében ugyanaz mint az NP osztály, csak NEM válaszra. Vagyis (jelenleg) nem ismerünk rá P-beli algoritmust, de ha a válasz NEM, akkor P-időben (hatékonyan) ellenőrizni tudjuk, hogy ez-e a jó válasz vagy sem. Szintén, IGEN válasz esetén semmit sem tudunk mondani P-időben, a fenti okok miatt (ami a zárójelben van). &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Az &#039;&#039;&#039;NP nehéz&#039;&#039;&#039; osztályba tartozó eldöntési problémák közül bármelyik legalább olyan nehéz, mint bármelyik másik NP-beli eldöntési probléma. Itt jön képbe a Karp-redukció fogalma. Jó dolog sok NP nehéz problémát ismerni, mert akkor ha találunk egy problémát, akkor ha találunk olyan Karp-redukciót, ami azt mutatja, hogy ez a probléma visszavezethető egy közismert NP nehéz problémára, akkor a mi ismeretlen problémánk is NP nehéz lesz. Ez azért van, mert a Karp-redukció tranzitív művelet, továbbá a Karp-redukcónál használt f függvény P-beli, amit kétszer egymás után alkalmazva is még mindig P-beli lesz ez a dolog (az inputok átalakítása). &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Az &#039;&#039;&#039;NP teljes&#039;&#039;&#039; problémák azok, amik NP nehezek és NP-beliek is egyszerre. A fenti dolog ide is érvényes, vagyis jó dolog ha sok nevezetes NP teljes problémát ismerünk, mert ha egy ismeretlen problémához találunk egy olyan Karp-redukciót, ami alapján az ismeretlen problémánkat visszavezethetjük egy közismert NP teljes problémára, akkor az ismeretlen problémánkról is kiderült, hogy NP teljes. &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;big&amp;gt;&#039;&#039;&#039;Karp-redukció?&#039;&#039;&#039;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;/big&amp;gt;&lt;br /&gt;
Van egy olyan gépünk, ami kizárólag B problémát tudja megoldani. Nekünk viszont A problémánk van. Ekkor ha szerencsénk van, akkor fogunk találni egy olyan Karp-redukciót, hogy A&amp;lt;big&amp;gt;≺&amp;lt;/big&amp;gt;B. Ennek persze vannak feltételei. Az A eldöntési probléma inputját át kell alakítani B eldöntési probléma inputjává, és meg is kell adni ezt a függvényt, nevezzük el ezt a függvényt f függvénynek. Feltétel, hogy f függvény polinom időben kiszámolható legyen, és ezt be is kell bizonyítani. Továbbá azt is be kell bizonyítani, hogy amennyiben a normális inputra A azt válaszolná, hogy IGEN, akkor az f(normális input)-ra a B szintén ugyanezt válaszolná (és ugyanezt be kell bizonyítani NEM válaszra is). Magyarul a B dolgot megoldó gépet megerőszakoljuk hogy A problémát is hajlandó legyen megoldani. &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ebből következik néhány dolog. Például az, hogy B legalább olyan nehéz probléma, mint A. Ha például B NP-teljes, akkor A is az. Ha B NP-nehéz, akkor A is az. Ha B coNP-beli, akkor A is az. Ez miért van? Hát azért, mert polinom időben át lehet alakítani az A problémát B-vé. Ezt indirekten könnyen lehet bizonyítani. Indirekt tegyük fel, hogy annak ellenére hogy B probléma NP-teljes és létezik egy olyan Karp-redukció ami A problmémát átalakítja B-vé, szóval mindezek ellenére A probléma P-beli. Ekkor A problémát egy polinom idejű f függvénnyel simán átalakítjuk B problémává, erről szól ugye a Karp-redukció. Ezek után ha bármikor B problémát akarnánk megoldani, akkor az f-függvény fordítva végrehajtásával a B inputját átalakítjuk A inputjává, megoldjuk az A problémát polinom időben, és kész is. Ez ellentmondás mivel B-ről azt mondtuk hogy NP-teljes. A másik érdekesség, hogy ha például egy NP-teljes vagy NP-nehéz problémáról kiderülne hogy P-beli, akkor az összes NP-beliről kiderülne hogy P-beli, mivel az NP-nehéz definíciója az, hogy legalább olyan nehéz mint bármely tetszőleges NP-beli. &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Még egy fontos megjegyzés a Karp-redukcióhoz: ugye A problémát akarjuk megoldani, de csak B-t megoldó gépünk van. Az egyik gyakorlaton elhangzott, és fontos tudni, hogy a B-t megoldó gépet az A eldöntési probléma megoldásához csak EGYSZER használhatjuk. Azért mert a Karp-redukció az ilyen.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;big&amp;gt;&#039;&#039;&#039;SAT probléma? &#039;&#039;&#039;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;/big&amp;gt;&lt;br /&gt;
A SAT probléma NP-teljes.&amp;lt;br&amp;gt;&lt;br /&gt;
forrás:http://www.cs.bme.hu/algel/12elo-2012.pdf&amp;lt;br&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;big&amp;gt;&#039;&#039;&#039;A feladat megoldása: &#039;&#039;&#039;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;/big&amp;gt;&lt;br /&gt;
Tétel: Ha X ≺ Y és Y ∈ NP,akkor X ∈ NP&amp;lt;br&amp;gt;&lt;br /&gt;
Tétel: A SAT probléma NP teljes, tehát része NP-nek.&amp;lt;br&amp;gt;&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;
&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;
&amp;lt;big&amp;gt;&#039;&#039;&#039;Eldöntési probléma osztályok? &#039;&#039;&#039;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:bonyolultsag_elmelet.JPG|390px]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;&#039;problémák&#039;&#039;&#039;nak lehet több típusú több bemenete, és több típusú több kimenete. Ezeket átfogalmazzuk olyanra, hogy a kimenete egyetlen bit legyen (IGEN / NEM), mert ezen algoritmusok felhasználásával is teljesen jól lehet dolgozni, ugyanakkor könnyebb őket nehézség / bonyolultság szerint osztályozni. Az ilyen 1 bites kimenetű problémákat nevezzük &#039;&#039;&#039;eldöntési problémák&#039;&#039;&#039;nak. &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Az eldöntési problémákat nehézség / bonyolultság szerint osztályokba soroljuk, ezen osztályok között olyan kapcsolatok vannak mint a halmazoknál; ez a fenti rajzon látszik.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;&#039;P osztály&#039;&#039;&#039;ba olyan problémák tartoznak, amelyekre ismert olyan algoritmus, ami a bemenet polinomjával megadott idő alatt lefut. Vagyis ha a bemenet &#039;&#039;&#039;n&#039;&#039;&#039;, akkor az algoritmusra azt mondjuk, hogy nagy_ordó(valami), ahol a valami &#039;&#039;&#039;n&#039;&#039;&#039; egy polinomja, például n négyzet, n köb, három n négyzet meg négy meg nyolc n köb, és ilyesmik. &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Az &#039;&#039;&#039;NP osztály&#039;&#039;&#039;ba olyan problémák tartoznak, amelyekre (jelenleg) nem ismert polinom idejű (P-beli) algoritmus, de igen válasz esetén létezik hatékony tanúsítvány. Vagyis, adott egy nagy csomó bemenet és van egy kérdés. P-idő alatt nem tudjuk megmondani a választ, de ha valaki megsúgja hogy a válasz IGEN, akkor P-időben meg tudjuk mondani, hogy ez hülyeség vagy nem hülyeség. Ha azt súgják meg hogy NEM, akkor fogalmunk sincs, P-időben nem tudjuk eldönteni hogy hülyeség-e vagy sem. (&#039;&#039;Ha így lenne, vagyis igen és nem válasz esetén is P-időben ellenőrizni tudnánk a válasz helyességét, akkor az egész probléma P-beli lenne, hiszen megsúgjuk saját magunknak hogy NEM és ha helyes akkor NEM egyébként igen. Persze ha az IGEN-ről P-időben kiderül hogy hülyeség attól még lehet hogy IGEN, csak éppen nem az a konkrét ami meg lett súgva, hanem egy másik.&#039;&#039;) &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;&#039;coNP osztály&#039;&#039;&#039; lényegében ugyanaz mint az NP osztály, csak NEM válaszra. Vagyis (jelenleg) nem ismerünk rá P-beli algoritmust, de ha a válasz NEM, akkor P-időben (hatékonyan) ellenőrizni tudjuk, hogy ez-e a jó válasz vagy sem. Szintén, IGEN válasz esetén semmit sem tudunk mondani P-időben, a fenti okok miatt (ami a zárójelben van). &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Az &#039;&#039;&#039;NP nehéz&#039;&#039;&#039; osztályba tartozó eldöntési problémák közül bármelyik legalább olyan nehéz, mint bármelyik másik NP-beli eldöntési probléma. Itt jön képbe a Karp-redukció fogalma. Jó dolog sok NP nehéz problémát ismerni, mert akkor ha találunk egy problémát, akkor ha találunk olyan Karp-redukciót, ami azt mutatja, hogy ez a probléma visszavezethető egy közismert NP nehéz problémára, akkor a mi ismeretlen problémánk is NP nehéz lesz. Ez azért van, mert a Karp-redukció tranzitív művelet, továbbá a Karp-redukcónál használt f függvény P-beli, amit kétszer egymás után alkalmazva is még mindig P-beli lesz ez a dolog (az inputok átalakítása). &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Az &#039;&#039;&#039;NP teljes&#039;&#039;&#039; problémák azok, amik NP nehezek és NP-beliek is egyszerre. A fenti dolog ide is érvényes, vagyis jó dolog ha sok nevezetes NP teljes problémát ismerünk, mert ha egy ismeretlen problémához találunk egy olyan Karp-redukciót, ami alapján az ismeretlen problémánkat visszavezethetjük egy közismert NP teljes problémára, akkor az ismeretlen problémánkról is kiderült, hogy NP teljes. &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;big&amp;gt;&#039;&#039;&#039;Karp-redukció?&#039;&#039;&#039;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;/big&amp;gt;&lt;br /&gt;
Van egy olyan gépünk, ami kizárólag B problémát tudja megoldani. Nekünk viszont A problémánk van. Ekkor ha szerencsénk van, akkor fogunk találni egy olyan Karp-redukciót, hogy A&amp;lt;big&amp;gt;≺&amp;lt;/big&amp;gt;B. Ennek persze vannak feltételei. Az A eldöntési probléma inputját át kell alakítani B eldöntési probléma inputjává, és meg is kell adni ezt a függvényt, nevezzük el ezt a függvényt f függvénynek. Feltétel, hogy f függvény polinom időben kiszámolható legyen, és ezt be is kell bizonyítani. Továbbá azt is be kell bizonyítani, hogy amennyiben a normális inputra A azt válaszolná, hogy IGEN, akkor az f(normális input)-ra a B szintén ugyanezt válaszolná (és ugyanezt be kell bizonyítani NEM válaszra is). Magyarul a B dolgot megoldó gépet megerőszakoljuk hogy A problémát is hajlandó legyen megoldani. &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ebből következik néhány dolog. Például az, hogy B legalább olyan nehéz probléma, mint A. Ha például B NP-teljes, akkor A is az. Ha B NP-nehéz, akkor A is az. Ha B coNP-beli, akkor A is az. Ez miért van? Hát azért, mert polinom időben át lehet alakítani az A problémát B-vé. Ezt indirekten könnyen lehet bizonyítani. Indirekt tegyük fel, hogy annak ellenére hogy B probléma NP-teljes és létezik egy olyan Karp-redukció ami A problmémát átalakítja B-vé, szóval mindezek ellenére A probléma P-beli. Ekkor A problémát egy polinom idejű f függvénnyel simán átalakítjuk B problémává, erről szól ugye a Karp-redukció. Ezek után ha bármikor B problémát akarnánk megoldani, akkor az f-függvény fordítva végrehajtásával a B inputját átalakítjuk A inputjává, megoldjuk az A problémát polinom időben, és kész is. Ez ellentmondás mivel B-ről azt mondtuk hogy NP-teljes. A másik érdekesség, hogy ha például egy NP-teljes vagy NP-nehéz problémáról kiderülne hogy P-beli, akkor az összes NP-beliről kiderülne hogy P-beli, mivel az NP-nehéz definíciója az, hogy legalább olyan nehéz mint bármely tetszőleges NP-beli. &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Még egy fontos megjegyzés a Karp-redukcióhoz: ugye A problémát akarjuk megoldani, de csak B-t megoldó gépünk van. Az egyik gyakorlaton elhangzott, és fontos tudni, hogy a B-t megoldó gépet az A eldöntési probléma megoldásához csak EGYSZER használhatjuk. Azért mert a Karp-redukció az ilyen.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;big&amp;gt;&#039;&#039;&#039;H-út? &#039;&#039;&#039;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;/big&amp;gt;&lt;br /&gt;
todo &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;big&amp;gt;&#039;&#039;&#039;3 színnel színezhetőség problémája? &#039;&#039;&#039;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;/big&amp;gt;&lt;br /&gt;
todo &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;big&amp;gt;&#039;&#039;&#039;A feladat megoldása: &#039;&#039;&#039;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;/big&amp;gt;&lt;br /&gt;
todo &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Subdiaz</name></author>
	</entry>
	<entry>
		<id>https://vik.wiki/index.php?title=Algoritmuselm%C3%A9let_-_Vizsga,_2013.06.06.&amp;diff=167492</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=167492"/>
		<updated>2013-06-07T16:55:04Z</updated>

		<summary type="html">&lt;p&gt;Subdiaz: /* 8. Feladat */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&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: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 b) 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.&lt;br /&gt;
Másképpen mondva: 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:keresztel_2.PNG]]&amp;lt;br&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
===2. Feladat===&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;
&#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;
todo &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;(&#039;&#039;Nem kérdezték, csak kieg.&#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;
todo &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;(&#039;&#039;Nem kérdezték, csak kieg.&#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;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;
todo &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
===3. Feladat===&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;
&#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;
todo &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;(&#039;&#039;Nem kérdezték, csak kieg.&#039;&#039;) Mi az a Kruskal algoritmus?&#039;&#039;&#039;&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;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;
todo &amp;lt;br&amp;gt;&amp;lt;br&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. sornál kicsit rafkósnak kell lenni. Leírhatnám egyből a megoldást, de talán több értelme van, ha a logikai zsákutcákat is leírom.&lt;br /&gt;
##Először gondolhatnánk arra, hogy a [4,3]-as cella 10+3 formában áll elő, így a 3-as csomag értéke €3. Viszont így a súlyának 0kg-nak kéne lennie, ami nyílván fatal error.&lt;br /&gt;
##Második gondolatunk az lehetne, hogy akkor 5+8 formában áll elő, így a 3-as csomag értéke €8. Súlya ekkor 2kg kellene legyen, viszont akkor a [2,3]-as cellába 8-nak, és nem 5-nek kéne szerepelnie, tehát ez se jó megoldás.&lt;br /&gt;
##Harmadik ötletnek nagyon más nem jöhet szóba, hogy akkor a 3-as csomag értéke €13, súlya pedig 4kg. És ha leellenőrizzük, látszik, hogy ez lesz a jó megoldás.&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:2013_06_06_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;
&#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===&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;
&amp;lt;big&amp;gt;&#039;&#039;&#039;(&#039;&#039;Nem kérdezték, csak kieg.&#039;&#039;) Eldöntési probléma osztályok? &#039;&#039;&#039;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:bonyolultsag_elmelet.JPG|390px]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;&#039;problémák&#039;&#039;&#039;nak lehet több típusú több bemenete, és több típusú több kimenete. Ezeket átfogalmazzuk olyanra, hogy a kimenete egyetlen bit legyen (IGEN / NEM), mert ezen algoritmusok felhasználásával is teljesen jól lehet dolgozni, ugyanakkor könnyebb őket nehézség / bonyolultság szerint osztályozni. Az ilyen 1 bites kimenetű problémákat nevezzük &#039;&#039;&#039;eldöntési problémák&#039;&#039;&#039;nak. &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Az eldöntési problémákat nehézség / bonyolultság szerint osztályokba soroljuk, ezen osztályok között olyan kapcsolatok vannak mint a halmazoknál; ez a fenti rajzon látszik.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;&#039;P osztály&#039;&#039;&#039;ba olyan problémák tartoznak, amelyekre ismert olyan algoritmus, ami a bemenet polinomjával megadott idő alatt lefut. Vagyis ha a bemenet &#039;&#039;&#039;n&#039;&#039;&#039;, akkor az algoritmusra azt mondjuk, hogy nagy_ordó(valami), ahol a valami &#039;&#039;&#039;n&#039;&#039;&#039; egy polinomja, például n négyzet, n köb, három n négyzet meg négy meg nyolc n köb, és ilyesmik. &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Az &#039;&#039;&#039;NP osztály&#039;&#039;&#039;ba olyan problémák tartoznak, amelyekre (jelenleg) nem ismert polinom idejű (P-beli) algoritmus, de igen válasz esetén létezik hatékony tanúsítvány. Vagyis, adott egy nagy csomó bemenet és van egy kérdés. P-idő alatt nem tudjuk megmondani a választ, de ha valaki megsúgja hogy a válasz IGEN, akkor P-időben meg tudjuk mondani, hogy ez hülyeség vagy nem hülyeség. Ha azt súgják meg hogy NEM, akkor fogalmunk sincs, P-időben nem tudjuk eldönteni hogy hülyeség-e vagy sem. (&#039;&#039;Ha így lenne, vagyis igen és nem válasz esetén is P-időben ellenőrizni tudnánk a válasz helyességét, akkor az egész probléma P-beli lenne, hiszen megsúgjuk saját magunknak hogy NEM és ha helyes akkor NEM egyébként igen. Persze ha az IGEN-ről P-időben kiderül hogy hülyeség attól még lehet hogy IGEN, csak éppen nem az a konkrét ami meg lett súgva, hanem egy másik.&#039;&#039;) &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;&#039;coNP osztály&#039;&#039;&#039; lényegében ugyanaz mint az NP osztály, csak NEM válaszra. Vagyis (jelenleg) nem ismerünk rá P-beli algoritmust, de ha a válasz NEM, akkor P-időben (hatékonyan) ellenőrizni tudjuk, hogy ez-e a jó válasz vagy sem. Szintén, IGEN válasz esetén semmit sem tudunk mondani P-időben, a fenti okok miatt (ami a zárójelben van). &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Az &#039;&#039;&#039;NP nehéz&#039;&#039;&#039; osztályba tartozó eldöntési problémák közül bármelyik legalább olyan nehéz, mint bármelyik másik NP-beli eldöntési probléma. Itt jön képbe a Karp-redukció fogalma. Jó dolog sok NP nehéz problémát ismerni, mert akkor ha találunk egy problémát, akkor ha találunk olyan Karp-redukciót, ami azt mutatja, hogy ez a probléma visszavezethető egy közismert NP nehéz problémára, akkor a mi ismeretlen problémánk is NP nehéz lesz. Ez azért van, mert a Karp-redukció tranzitív művelet, továbbá a Karp-redukcónál használt f függvény P-beli, amit kétszer egymás után alkalmazva is még mindig P-beli lesz ez a dolog (az inputok átalakítása). &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Az &#039;&#039;&#039;NP teljes&#039;&#039;&#039; problémák azok, amik NP nehezek és NP-beliek is egyszerre. A fenti dolog ide is érvényes, vagyis jó dolog ha sok nevezetes NP teljes problémát ismerünk, mert ha egy ismeretlen problémához találunk egy olyan Karp-redukciót, ami alapján az ismeretlen problémánkat visszavezethetjük egy közismert NP teljes problémára, akkor az ismeretlen problémánkról is kiderült, hogy NP teljes. &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;big&amp;gt;&#039;&#039;&#039;(&#039;&#039;Nem kérdezték, csak kieg.&#039;&#039;) Karp-redukció?&#039;&#039;&#039;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;/big&amp;gt;&lt;br /&gt;
Van egy olyan gépünk, ami kizárólag B problémát tudja megoldani. Nekünk viszont A problémánk van. Ekkor ha szerencsénk van, akkor fogunk találni egy olyan Karp-redukciót, hogy A&amp;lt;big&amp;gt;≺&amp;lt;/big&amp;gt;B. Ennek persze vannak feltételei. Az A eldöntési probléma inputját át kell alakítani B eldöntési probléma inputjává, és meg is kell adni ezt a függvényt, nevezzük el ezt a függvényt f függvénynek. Feltétel, hogy f függvény polinom időben kiszámolható legyen, és ezt be is kell bizonyítani. Továbbá azt is be kell bizonyítani, hogy amennyiben a normális inputra A azt válaszolná, hogy IGEN, akkor az f(normális input)-ra a B szintén ugyanezt válaszolná (és ugyanezt be kell bizonyítani NEM válaszra is). Magyarul a B dolgot megoldó gépet megerőszakoljuk hogy A problémát is hajlandó legyen megoldani. &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ebből következik néhány dolog. Például az, hogy B legalább olyan nehéz probléma, mint A. Ha például B NP-teljes, akkor A is az. Ha B NP-nehéz, akkor A is az. Ha B coNP-beli, akkor A is az. Ez miért van? Hát azért, mert polinom időben át lehet alakítani az A problémát B-vé. Ezt indirekten könnyen lehet bizonyítani. Indirekt tegyük fel, hogy annak ellenére hogy B probléma NP-teljes és létezik egy olyan Karp-redukció ami A problmémát átalakítja B-vé, szóval mindezek ellenére A probléma P-beli. Ekkor A problémát egy polinom idejű f függvénnyel simán átalakítjuk B problémává, erről szól ugye a Karp-redukció. Ezek után ha bármikor B problémát akarnánk megoldani, akkor az f-függvény fordítva végrehajtásával a B inputját átalakítjuk A inputjává, megoldjuk az A problémát polinom időben, és kész is. Ez ellentmondás mivel B-ről azt mondtuk hogy NP-teljes. A másik érdekesség, hogy ha például egy NP-teljes vagy NP-nehéz problémáról kiderülne hogy P-beli, akkor az összes NP-beliről kiderülne hogy P-beli, mivel az NP-nehéz definíciója az, hogy legalább olyan nehéz mint bármely tetszőleges NP-beli. &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Még egy fontos megjegyzés a Karp-redukcióhoz: ugye A problémát akarjuk megoldani, de csak B-t megoldó gépünk van. Az egyik gyakorlaton elhangzott, és fontos tudni, hogy a B-t megoldó gépet az A eldöntési probléma megoldásához csak EGYSZER használhatjuk. Azért mert a Karp-redukció az ilyen.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;big&amp;gt;&#039;&#039;&#039;(&#039;&#039;Nem kérdezték, csak kieg.&#039;&#039;) SAT probléma? &#039;&#039;&#039;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;/big&amp;gt;&lt;br /&gt;
todo &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;big&amp;gt;&#039;&#039;&#039;A feladat megoldása: &#039;&#039;&#039;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;/big&amp;gt;&lt;br /&gt;
todo &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&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;
&amp;lt;br&amp;gt;&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;
&lt;br /&gt;
&amp;lt;big&amp;gt;&#039;&#039;&#039;(&#039;&#039;Nem kérdezték, csak kieg.&#039;&#039;) Eldöntési probléma osztályok? &#039;&#039;&#039;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:bonyolultsag_elmelet.JPG|390px]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;&#039;problémák&#039;&#039;&#039;nak lehet több típusú több bemenete, és több típusú több kimenete. Ezeket átfogalmazzuk olyanra, hogy a kimenete egyetlen bit legyen (IGEN / NEM), mert ezen algoritmusok felhasználásával is teljesen jól lehet dolgozni, ugyanakkor könnyebb őket nehézség / bonyolultság szerint osztályozni. Az ilyen 1 bites kimenetű problémákat nevezzük &#039;&#039;&#039;eldöntési problémák&#039;&#039;&#039;nak. &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Az eldöntési problémákat nehézség / bonyolultság szerint osztályokba soroljuk, ezen osztályok között olyan kapcsolatok vannak mint a halmazoknál; ez a fenti rajzon látszik.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;&#039;P osztály&#039;&#039;&#039;ba olyan problémák tartoznak, amelyekre ismert olyan algoritmus, ami a bemenet polinomjával megadott idő alatt lefut. Vagyis ha a bemenet &#039;&#039;&#039;n&#039;&#039;&#039;, akkor az algoritmusra azt mondjuk, hogy nagy_ordó(valami), ahol a valami &#039;&#039;&#039;n&#039;&#039;&#039; egy polinomja, például n négyzet, n köb, három n négyzet meg négy meg nyolc n köb, és ilyesmik. &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Az &#039;&#039;&#039;NP osztály&#039;&#039;&#039;ba olyan problémák tartoznak, amelyekre (jelenleg) nem ismert polinom idejű (P-beli) algoritmus, de igen válasz esetén létezik hatékony tanúsítvány. Vagyis, adott egy nagy csomó bemenet és van egy kérdés. P-idő alatt nem tudjuk megmondani a választ, de ha valaki megsúgja hogy a válasz IGEN, akkor P-időben meg tudjuk mondani, hogy ez hülyeség vagy nem hülyeség. Ha azt súgják meg hogy NEM, akkor fogalmunk sincs, P-időben nem tudjuk eldönteni hogy hülyeség-e vagy sem. (&#039;&#039;Ha így lenne, vagyis igen és nem válasz esetén is P-időben ellenőrizni tudnánk a válasz helyességét, akkor az egész probléma P-beli lenne, hiszen megsúgjuk saját magunknak hogy NEM és ha helyes akkor NEM egyébként igen. Persze ha az IGEN-ről P-időben kiderül hogy hülyeség attól még lehet hogy IGEN, csak éppen nem az a konkrét ami meg lett súgva, hanem egy másik.&#039;&#039;) &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;&#039;coNP osztály&#039;&#039;&#039; lényegében ugyanaz mint az NP osztály, csak NEM válaszra. Vagyis (jelenleg) nem ismerünk rá P-beli algoritmust, de ha a válasz NEM, akkor P-időben (hatékonyan) ellenőrizni tudjuk, hogy ez-e a jó válasz vagy sem. Szintén, IGEN válasz esetén semmit sem tudunk mondani P-időben, a fenti okok miatt (ami a zárójelben van). &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Az &#039;&#039;&#039;NP nehéz&#039;&#039;&#039; osztályba tartozó eldöntési problémák közül bármelyik legalább olyan nehéz, mint bármelyik másik NP-beli eldöntési probléma. Itt jön képbe a Karp-redukció fogalma. Jó dolog sok NP nehéz problémát ismerni, mert akkor ha találunk egy problémát, akkor ha találunk olyan Karp-redukciót, ami azt mutatja, hogy ez a probléma visszavezethető egy közismert NP nehéz problémára, akkor a mi ismeretlen problémánk is NP nehéz lesz. Ez azért van, mert a Karp-redukció tranzitív művelet, továbbá a Karp-redukcónál használt f függvény P-beli, amit kétszer egymás után alkalmazva is még mindig P-beli lesz ez a dolog (az inputok átalakítása). &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Az &#039;&#039;&#039;NP teljes&#039;&#039;&#039; problémák azok, amik NP nehezek és NP-beliek is egyszerre. A fenti dolog ide is érvényes, vagyis jó dolog ha sok nevezetes NP teljes problémát ismerünk, mert ha egy ismeretlen problémához találunk egy olyan Karp-redukciót, ami alapján az ismeretlen problémánkat visszavezethetjük egy közismert NP teljes problémára, akkor az ismeretlen problémánkról is kiderült, hogy NP teljes. &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;big&amp;gt;&#039;&#039;&#039;(&#039;&#039;Nem kérdezték, csak kieg.&#039;&#039;) Karp-redukció?&#039;&#039;&#039;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;/big&amp;gt;&lt;br /&gt;
Van egy olyan gépünk, ami kizárólag B problémát tudja megoldani. Nekünk viszont A problémánk van. Ekkor ha szerencsénk van, akkor fogunk találni egy olyan Karp-redukciót, hogy A&amp;lt;big&amp;gt;≺&amp;lt;/big&amp;gt;B. Ennek persze vannak feltételei. Az A eldöntési probléma inputját át kell alakítani B eldöntési probléma inputjává, és meg is kell adni ezt a függvényt, nevezzük el ezt a függvényt f függvénynek. Feltétel, hogy f függvény polinom időben kiszámolható legyen, és ezt be is kell bizonyítani. Továbbá azt is be kell bizonyítani, hogy amennyiben a normális inputra A azt válaszolná, hogy IGEN, akkor az f(normális input)-ra a B szintén ugyanezt válaszolná (és ugyanezt be kell bizonyítani NEM válaszra is). Magyarul a B dolgot megoldó gépet megerőszakoljuk hogy A problémát is hajlandó legyen megoldani. &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ebből következik néhány dolog. Például az, hogy B legalább olyan nehéz probléma, mint A. Ha például B NP-teljes, akkor A is az. Ha B NP-nehéz, akkor A is az. Ha B coNP-beli, akkor A is az. Ez miért van? Hát azért, mert polinom időben át lehet alakítani az A problémát B-vé. Ezt indirekten könnyen lehet bizonyítani. Indirekt tegyük fel, hogy annak ellenére hogy B probléma NP-teljes és létezik egy olyan Karp-redukció ami A problmémát átalakítja B-vé, szóval mindezek ellenére A probléma P-beli. Ekkor A problémát egy polinom idejű f függvénnyel simán átalakítjuk B problémává, erről szól ugye a Karp-redukció. Ezek után ha bármikor B problémát akarnánk megoldani, akkor az f-függvény fordítva végrehajtásával a B inputját átalakítjuk A inputjává, megoldjuk az A problémát polinom időben, és kész is. Ez ellentmondás mivel B-ről azt mondtuk hogy NP-teljes. A másik érdekesség, hogy ha például egy NP-teljes vagy NP-nehéz problémáról kiderülne hogy P-beli, akkor az összes NP-beliről kiderülne hogy P-beli, mivel az NP-nehéz definíciója az, hogy legalább olyan nehéz mint bármely tetszőleges NP-beli. &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Még egy fontos megjegyzés a Karp-redukcióhoz: ugye A problémát akarjuk megoldani, de csak B-t megoldó gépünk van. Az egyik gyakorlaton elhangzott, és fontos tudni, hogy a B-t megoldó gépet az A eldöntési probléma megoldásához csak EGYSZER használhatjuk. Azért mert a Karp-redukció az ilyen.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;big&amp;gt;&#039;&#039;&#039;(&#039;&#039;Nem kérdezték, csak kieg.&#039;&#039;) H-út? &#039;&#039;&#039;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;/big&amp;gt;&lt;br /&gt;
todo &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;big&amp;gt;&#039;&#039;&#039;(&#039;&#039;Nem kérdezték, csak kieg.&#039;&#039;) 3 színnel színezhetőség problémája? &#039;&#039;&#039;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;/big&amp;gt;&lt;br /&gt;
todo &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;big&amp;gt;&#039;&#039;&#039;A feladat megoldása: &#039;&#039;&#039;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;/big&amp;gt;&lt;br /&gt;
todo &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Subdiaz</name></author>
	</entry>
	<entry>
		<id>https://vik.wiki/index.php?title=Algoritmuselm%C3%A9let_-_Vizsga,_2013.06.06.&amp;diff=167491</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=167491"/>
		<updated>2013-06-07T16:54:16Z</updated>

		<summary type="html">&lt;p&gt;Subdiaz: /* 8. Feladat */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&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: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 b) 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.&lt;br /&gt;
Másképpen mondva: 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:keresztel_2.PNG]]&amp;lt;br&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
===2. Feladat===&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;
&#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;
todo &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;(&#039;&#039;Nem kérdezték, csak kieg.&#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;
todo &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;(&#039;&#039;Nem kérdezték, csak kieg.&#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;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;
todo &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
===3. Feladat===&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;
&#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;
todo &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;(&#039;&#039;Nem kérdezték, csak kieg.&#039;&#039;) Mi az a Kruskal algoritmus?&#039;&#039;&#039;&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;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;
todo &amp;lt;br&amp;gt;&amp;lt;br&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. sornál kicsit rafkósnak kell lenni. Leírhatnám egyből a megoldást, de talán több értelme van, ha a logikai zsákutcákat is leírom.&lt;br /&gt;
##Először gondolhatnánk arra, hogy a [4,3]-as cella 10+3 formában áll elő, így a 3-as csomag értéke €3. Viszont így a súlyának 0kg-nak kéne lennie, ami nyílván fatal error.&lt;br /&gt;
##Második gondolatunk az lehetne, hogy akkor 5+8 formában áll elő, így a 3-as csomag értéke €8. Súlya ekkor 2kg kellene legyen, viszont akkor a [2,3]-as cellába 8-nak, és nem 5-nek kéne szerepelnie, tehát ez se jó megoldás.&lt;br /&gt;
##Harmadik ötletnek nagyon más nem jöhet szóba, hogy akkor a 3-as csomag értéke €13, súlya pedig 4kg. És ha leellenőrizzük, látszik, hogy ez lesz a jó megoldás.&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:2013_06_06_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;
&#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===&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;
&amp;lt;big&amp;gt;&#039;&#039;&#039;(&#039;&#039;Nem kérdezték, csak kieg.&#039;&#039;) Eldöntési probléma osztályok? &#039;&#039;&#039;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:bonyolultsag_elmelet.JPG|390px]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;&#039;problémák&#039;&#039;&#039;nak lehet több típusú több bemenete, és több típusú több kimenete. Ezeket átfogalmazzuk olyanra, hogy a kimenete egyetlen bit legyen (IGEN / NEM), mert ezen algoritmusok felhasználásával is teljesen jól lehet dolgozni, ugyanakkor könnyebb őket nehézség / bonyolultság szerint osztályozni. Az ilyen 1 bites kimenetű problémákat nevezzük &#039;&#039;&#039;eldöntési problémák&#039;&#039;&#039;nak. &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Az eldöntési problémákat nehézség / bonyolultság szerint osztályokba soroljuk, ezen osztályok között olyan kapcsolatok vannak mint a halmazoknál; ez a fenti rajzon látszik.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;&#039;P osztály&#039;&#039;&#039;ba olyan problémák tartoznak, amelyekre ismert olyan algoritmus, ami a bemenet polinomjával megadott idő alatt lefut. Vagyis ha a bemenet &#039;&#039;&#039;n&#039;&#039;&#039;, akkor az algoritmusra azt mondjuk, hogy nagy_ordó(valami), ahol a valami &#039;&#039;&#039;n&#039;&#039;&#039; egy polinomja, például n négyzet, n köb, három n négyzet meg négy meg nyolc n köb, és ilyesmik. &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Az &#039;&#039;&#039;NP osztály&#039;&#039;&#039;ba olyan problémák tartoznak, amelyekre (jelenleg) nem ismert polinom idejű (P-beli) algoritmus, de igen válasz esetén létezik hatékony tanúsítvány. Vagyis, adott egy nagy csomó bemenet és van egy kérdés. P-idő alatt nem tudjuk megmondani a választ, de ha valaki megsúgja hogy a válasz IGEN, akkor P-időben meg tudjuk mondani, hogy ez hülyeség vagy nem hülyeség. Ha azt súgják meg hogy NEM, akkor fogalmunk sincs, P-időben nem tudjuk eldönteni hogy hülyeség-e vagy sem. (&#039;&#039;Ha így lenne, vagyis igen és nem válasz esetén is P-időben ellenőrizni tudnánk a válasz helyességét, akkor az egész probléma P-beli lenne, hiszen megsúgjuk saját magunknak hogy NEM és ha helyes akkor NEM egyébként igen. Persze ha az IGEN-ről P-időben kiderül hogy hülyeség attól még lehet hogy IGEN, csak éppen nem az a konkrét ami meg lett súgva, hanem egy másik.&#039;&#039;) &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;&#039;coNP osztály&#039;&#039;&#039; lényegében ugyanaz mint az NP osztály, csak NEM válaszra. Vagyis (jelenleg) nem ismerünk rá P-beli algoritmust, de ha a válasz NEM, akkor P-időben (hatékonyan) ellenőrizni tudjuk, hogy ez-e a jó válasz vagy sem. Szintén, IGEN válasz esetén semmit sem tudunk mondani P-időben, a fenti okok miatt (ami a zárójelben van). &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Az &#039;&#039;&#039;NP nehéz&#039;&#039;&#039; osztályba tartozó eldöntési problémák közül bármelyik legalább olyan nehéz, mint bármelyik másik NP-beli eldöntési probléma. Itt jön képbe a Karp-redukció fogalma. Jó dolog sok NP nehéz problémát ismerni, mert akkor ha találunk egy problémát, akkor ha találunk olyan Karp-redukciót, ami azt mutatja, hogy ez a probléma visszavezethető egy közismert NP nehéz problémára, akkor a mi ismeretlen problémánk is NP nehéz lesz. Ez azért van, mert a Karp-redukció tranzitív művelet, továbbá a Karp-redukcónál használt f függvény P-beli, amit kétszer egymás után alkalmazva is még mindig P-beli lesz ez a dolog (az inputok átalakítása). &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Az &#039;&#039;&#039;NP teljes&#039;&#039;&#039; problémák azok, amik NP nehezek és NP-beliek is egyszerre. A fenti dolog ide is érvényes, vagyis jó dolog ha sok nevezetes NP teljes problémát ismerünk, mert ha egy ismeretlen problémához találunk egy olyan Karp-redukciót, ami alapján az ismeretlen problémánkat visszavezethetjük egy közismert NP teljes problémára, akkor az ismeretlen problémánkról is kiderült, hogy NP teljes. &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;big&amp;gt;&#039;&#039;&#039;(&#039;&#039;Nem kérdezték, csak kieg.&#039;&#039;) Karp-redukció?&#039;&#039;&#039;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;/big&amp;gt;&lt;br /&gt;
Van egy olyan gépünk, ami kizárólag B problémát tudja megoldani. Nekünk viszont A problémánk van. Ekkor ha szerencsénk van, akkor fogunk találni egy olyan Karp-redukciót, hogy A&amp;lt;big&amp;gt;≺&amp;lt;/big&amp;gt;B. Ennek persze vannak feltételei. Az A eldöntési probléma inputját át kell alakítani B eldöntési probléma inputjává, és meg is kell adni ezt a függvényt, nevezzük el ezt a függvényt f függvénynek. Feltétel, hogy f függvény polinom időben kiszámolható legyen, és ezt be is kell bizonyítani. Továbbá azt is be kell bizonyítani, hogy amennyiben a normális inputra A azt válaszolná, hogy IGEN, akkor az f(normális input)-ra a B szintén ugyanezt válaszolná (és ugyanezt be kell bizonyítani NEM válaszra is). Magyarul a B dolgot megoldó gépet megerőszakoljuk hogy A problémát is hajlandó legyen megoldani. &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ebből következik néhány dolog. Például az, hogy B legalább olyan nehéz probléma, mint A. Ha például B NP-teljes, akkor A is az. Ha B NP-nehéz, akkor A is az. Ha B coNP-beli, akkor A is az. Ez miért van? Hát azért, mert polinom időben át lehet alakítani az A problémát B-vé. Ezt indirekten könnyen lehet bizonyítani. Indirekt tegyük fel, hogy annak ellenére hogy B probléma NP-teljes és létezik egy olyan Karp-redukció ami A problmémát átalakítja B-vé, szóval mindezek ellenére A probléma P-beli. Ekkor A problémát egy polinom idejű f függvénnyel simán átalakítjuk B problémává, erről szól ugye a Karp-redukció. Ezek után ha bármikor B problémát akarnánk megoldani, akkor az f-függvény fordítva végrehajtásával a B inputját átalakítjuk A inputjává, megoldjuk az A problémát polinom időben, és kész is. Ez ellentmondás mivel B-ről azt mondtuk hogy NP-teljes. A másik érdekesség, hogy ha például egy NP-teljes vagy NP-nehéz problémáról kiderülne hogy P-beli, akkor az összes NP-beliről kiderülne hogy P-beli, mivel az NP-nehéz definíciója az, hogy legalább olyan nehéz mint bármely tetszőleges NP-beli. &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Még egy fontos megjegyzés a Karp-redukcióhoz: ugye A problémát akarjuk megoldani, de csak B-t megoldó gépünk van. Az egyik gyakorlaton elhangzott, és fontos tudni, hogy a B-t megoldó gépet az A eldöntési probléma megoldásához csak EGYSZER használhatjuk. Azért mert a Karp-redukció az ilyen.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;big&amp;gt;&#039;&#039;&#039;(&#039;&#039;Nem kérdezték, csak kieg.&#039;&#039;) SAT probléma? &#039;&#039;&#039;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;/big&amp;gt;&lt;br /&gt;
todo &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;big&amp;gt;&#039;&#039;&#039;A feladat megoldása: &#039;&#039;&#039;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;/big&amp;gt;&lt;br /&gt;
todo &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&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;
&amp;lt;br&amp;gt;&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;
&lt;br /&gt;
&amp;lt;big&amp;gt;&#039;&#039;&#039;(&#039;&#039;Nem kérdezték, csak kieg.&#039;&#039;) Eldöntési probléma osztályok? &#039;&#039;&#039;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:bonyolultsag_elmelet.JPG|390px]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;&#039;problémák&#039;&#039;&#039;nak lehet több típusú több bemenete, és több típusú több kimenete. Ezeket átfogalmazzuk olyanra, hogy a kimenete egyetlen bit legyen (IGEN / NEM), mert ezen algoritmusok felhasználásával is teljesen jól lehet dolgozni, ugyanakkor könnyebb őket nehézség / bonyolultság szerint osztályozni. Az ilyen 1 bites kimenetű problémákat nevezzük &#039;&#039;&#039;eldöntési problémák&#039;&#039;&#039;nak. &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Az eldöntési problémákat nehézség / bonyolultság szerint osztályokba soroljuk, ezen osztályok között olyan kapcsolatok vannak mint a halmazoknál; ez a fenti rajzon látszik.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;&#039;P osztály&#039;&#039;&#039;ba olyan problémák tartoznak, amelyekre ismert olyan algoritmus, ami a bemenet polinomjával megadott idő alatt lefut. Vagyis ha a bemenet &#039;&#039;&#039;n&#039;&#039;&#039;, akkor az algoritmusra azt mondjuk, hogy nagy_ordó(valami), ahol a valami &#039;&#039;&#039;n&#039;&#039;&#039; egy polinomja, például n négyzet, n köb, három n négyzet meg négy meg nyolc n köb, és ilyesmik. &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Az &#039;&#039;&#039;NP osztály&#039;&#039;&#039;ba olyan problémák tartoznak, amelyekre (jelenleg) nem ismert polinom idejű (P-beli) algoritmus, de igen válasz esetén létezik hatékony tanúsítvány. Vagyis, adott egy nagy csomó bemenet és van egy kérdés. P-idő alatt nem tudjuk megmondani a választ, de ha valaki megsúgja hogy a válasz IGEN, akkor P-időben meg tudjuk mondani, hogy ez hülyeség vagy nem hülyeség. Ha azt súgják meg hogy NEM, akkor fogalmunk sincs, P-időben nem tudjuk eldönteni hogy hülyeség-e vagy sem. (&#039;&#039;Ha így lenne, vagyis igen és nem válasz esetén is P-időben ellenőrizni tudnánk a válasz helyességét, akkor az egész probléma P-beli lenne, hiszen megsúgjuk saját magunknak hogy NEM és ha helyes akkor NEM egyébként igen. Persze ha az IGEN-ről P-időben kiderül hogy hülyeség attól még lehet hogy IGEN, csak éppen nem az a konkrét ami meg lett súgva, hanem egy másik.&#039;&#039;) &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;&#039;coNP osztály&#039;&#039;&#039; lényegében ugyanaz mint az NP osztály, csak NEM válaszra. Vagyis (jelenleg) nem ismerünk rá P-beli algoritmust, de ha a válasz NEM, akkor P-időben (hatékonyan) ellenőrizni tudjuk, hogy ez-e a jó válasz vagy sem. Szintén, IGEN válasz esetén semmit sem tudunk mondani P-időben, a fenti okok miatt (ami a zárójelben van). &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Az &#039;&#039;&#039;NP nehéz&#039;&#039;&#039; osztályba tartozó eldöntési problémák közül bármelyik legalább olyan nehéz, mint bármelyik másik NP-beli eldöntési probléma. Itt jön képbe a Karp-redukció fogalma. Jó dolog sok NP nehéz problémát ismerni, mert akkor ha találunk egy problémát, akkor ha találunk olyan Karp-redukciót, ami azt mutatja, hogy ez a probléma visszavezethető egy közismert NP nehéz problémára, akkor a mi ismeretlen problémánk is NP nehéz lesz. Ez azért van, mert a Karp-redukció tranzitív művelet, továbbá a Karp-redukcónál használt f függvény P-beli, amit kétszer egymás után alkalmazva is még mindig P-beli lesz ez a dolog (az inputok átalakítása). &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Az &#039;&#039;&#039;NP teljes&#039;&#039;&#039; problémák azok, amik NP nehezek és NP-beliek is egyszerre. A fenti dolog ide is érvényes, vagyis jó dolog ha sok nevezetes NP teljes problémát ismerünk, mert ha egy ismeretlen problémához találunk egy olyan Karp-redukciót, ami alapján az ismeretlen problémánkat visszavezethetjük egy közismert NP teljes problémára, akkor az ismeretlen problémánkról is kiderült, hogy NP teljes. &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;big&amp;gt;&#039;&#039;&#039;(&#039;&#039;Nem kérdezték, csak kieg.&#039;&#039;) Karp-redukció?&#039;&#039;&#039;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;/big&amp;gt;&lt;br /&gt;
Van egy olyan gépünk, ami kizárólag B problémát tudja megoldani. Nekünk viszont A problémánk van. Ekkor ha szerencsénk van, akkor fogunk találni egy olyan Karp-redukciót, hogy A&amp;lt;big&amp;gt;≺&amp;lt;/big&amp;gt;B. Ennek persze vannak feltételei. Az A eldöntési probléma inputját át kell alakítani B eldöntési probléma inputjává, és meg is kell adni ezt a függvényt, nevezzük el ezt a függvényt f függvénynek. Feltétel, hogy f függvény polinom időben kiszámolható legyen, és ezt be is kell bizonyítani. Továbbá azt is be kell bizonyítani, hogy amennyiben a normális inputra A azt válaszolná, hogy IGEN, akkor az f(normális input)-ra a B szintén ugyanezt válaszolná (és ugyanezt be kell bizonyítani NEM válaszra is). Magyarul a B dolgot megoldó gépet megerőszakoljuk hogy A problémát is hajlandó legyen megoldani. &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ebből következik néhány dolog. Például az, hogy B legalább olyan nehéz probléma, mint A. Ha például B NP-teljes, akkor A is az. Ha B NP-nehéz, akkor A is az. Ha B coNP-beli, akkor A is az. Ez miért van? Hát azért, mert polinom időben át lehet alakítani az A problémát B-vé. Ezt indirekten könnyen lehet bizonyítani. Indirekt tegyük fel, hogy annak ellenére hogy B probléma NP-teljes és létezik egy olyan Karp-redukció ami A problmémát átalakítja B-vé, szóval mindezek ellenére A probléma P-beli. Ekkor A problémát egy polinom idejű f függvénnyel simán átalakítjuk B problémává, erről szól ugye a Karp-redukció. Ezek után ha bármikor B problémát akarnánk megoldani, akkor az f-függvény fordítva végrehajtásával a B inputját átalakítjuk A inputjává, megoldjuk az A problémát polinom időben, és kész is. Ez ellentmondás mivel B-ről azt mondtuk hogy NP-teljes. A másik érdekesség, hogy ha például egy NP-teljes vagy NP-nehéz problémáról kiderülne hogy P-beli, akkor az összes NP-beliről kiderülne hogy P-beli, mivel az NP-nehéz definíciója az, hogy legalább olyan nehéz mint bármely tetszőleges NP-beli. &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Még egy fontos megjegyzés a Karp-redukcióhoz: ugye A problémát akarjuk megoldani, de csak B-t megoldó gépünk van. Az egyik gyakorlaton elhangzott, és fontos tudni, hogy a B-t megoldó gépet az A eldöntési probléma megoldásához csak EGYSZER használhatjuk. Azért mert a Karp-redukció az ilyen.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;(&#039;&#039;Nem kérdezték, csak kieg.&#039;&#039;) H-út? &#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;(&#039;&#039;Nem kérdezték, csak kieg.&#039;&#039;) 3 színnel színezhetőség problémája? &#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;A feladat megoldása: &#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;
}}&lt;/div&gt;</summary>
		<author><name>Subdiaz</name></author>
	</entry>
	<entry>
		<id>https://vik.wiki/index.php?title=Algoritmuselm%C3%A9let_-_Vizsga,_2013.06.06.&amp;diff=167490</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=167490"/>
		<updated>2013-06-07T16:53:44Z</updated>

		<summary type="html">&lt;p&gt;Subdiaz: /* 7. Feladat */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&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: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 b) 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.&lt;br /&gt;
Másképpen mondva: 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:keresztel_2.PNG]]&amp;lt;br&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
===2. Feladat===&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;
&#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;
todo &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;(&#039;&#039;Nem kérdezték, csak kieg.&#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;
todo &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;(&#039;&#039;Nem kérdezték, csak kieg.&#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;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;
todo &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
===3. Feladat===&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;
&#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;
todo &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;(&#039;&#039;Nem kérdezték, csak kieg.&#039;&#039;) Mi az a Kruskal algoritmus?&#039;&#039;&#039;&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;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;
todo &amp;lt;br&amp;gt;&amp;lt;br&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. sornál kicsit rafkósnak kell lenni. Leírhatnám egyből a megoldást, de talán több értelme van, ha a logikai zsákutcákat is leírom.&lt;br /&gt;
##Először gondolhatnánk arra, hogy a [4,3]-as cella 10+3 formában áll elő, így a 3-as csomag értéke €3. Viszont így a súlyának 0kg-nak kéne lennie, ami nyílván fatal error.&lt;br /&gt;
##Második gondolatunk az lehetne, hogy akkor 5+8 formában áll elő, így a 3-as csomag értéke €8. Súlya ekkor 2kg kellene legyen, viszont akkor a [2,3]-as cellába 8-nak, és nem 5-nek kéne szerepelnie, tehát ez se jó megoldás.&lt;br /&gt;
##Harmadik ötletnek nagyon más nem jöhet szóba, hogy akkor a 3-as csomag értéke €13, súlya pedig 4kg. És ha leellenőrizzük, látszik, hogy ez lesz a jó megoldás.&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:2013_06_06_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;
&#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===&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;
&amp;lt;big&amp;gt;&#039;&#039;&#039;(&#039;&#039;Nem kérdezték, csak kieg.&#039;&#039;) Eldöntési probléma osztályok? &#039;&#039;&#039;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:bonyolultsag_elmelet.JPG|390px]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;&#039;problémák&#039;&#039;&#039;nak lehet több típusú több bemenete, és több típusú több kimenete. Ezeket átfogalmazzuk olyanra, hogy a kimenete egyetlen bit legyen (IGEN / NEM), mert ezen algoritmusok felhasználásával is teljesen jól lehet dolgozni, ugyanakkor könnyebb őket nehézség / bonyolultság szerint osztályozni. Az ilyen 1 bites kimenetű problémákat nevezzük &#039;&#039;&#039;eldöntési problémák&#039;&#039;&#039;nak. &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Az eldöntési problémákat nehézség / bonyolultság szerint osztályokba soroljuk, ezen osztályok között olyan kapcsolatok vannak mint a halmazoknál; ez a fenti rajzon látszik.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;&#039;P osztály&#039;&#039;&#039;ba olyan problémák tartoznak, amelyekre ismert olyan algoritmus, ami a bemenet polinomjával megadott idő alatt lefut. Vagyis ha a bemenet &#039;&#039;&#039;n&#039;&#039;&#039;, akkor az algoritmusra azt mondjuk, hogy nagy_ordó(valami), ahol a valami &#039;&#039;&#039;n&#039;&#039;&#039; egy polinomja, például n négyzet, n köb, három n négyzet meg négy meg nyolc n köb, és ilyesmik. &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Az &#039;&#039;&#039;NP osztály&#039;&#039;&#039;ba olyan problémák tartoznak, amelyekre (jelenleg) nem ismert polinom idejű (P-beli) algoritmus, de igen válasz esetén létezik hatékony tanúsítvány. Vagyis, adott egy nagy csomó bemenet és van egy kérdés. P-idő alatt nem tudjuk megmondani a választ, de ha valaki megsúgja hogy a válasz IGEN, akkor P-időben meg tudjuk mondani, hogy ez hülyeség vagy nem hülyeség. Ha azt súgják meg hogy NEM, akkor fogalmunk sincs, P-időben nem tudjuk eldönteni hogy hülyeség-e vagy sem. (&#039;&#039;Ha így lenne, vagyis igen és nem válasz esetén is P-időben ellenőrizni tudnánk a válasz helyességét, akkor az egész probléma P-beli lenne, hiszen megsúgjuk saját magunknak hogy NEM és ha helyes akkor NEM egyébként igen. Persze ha az IGEN-ről P-időben kiderül hogy hülyeség attól még lehet hogy IGEN, csak éppen nem az a konkrét ami meg lett súgva, hanem egy másik.&#039;&#039;) &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;&#039;coNP osztály&#039;&#039;&#039; lényegében ugyanaz mint az NP osztály, csak NEM válaszra. Vagyis (jelenleg) nem ismerünk rá P-beli algoritmust, de ha a válasz NEM, akkor P-időben (hatékonyan) ellenőrizni tudjuk, hogy ez-e a jó válasz vagy sem. Szintén, IGEN válasz esetén semmit sem tudunk mondani P-időben, a fenti okok miatt (ami a zárójelben van). &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Az &#039;&#039;&#039;NP nehéz&#039;&#039;&#039; osztályba tartozó eldöntési problémák közül bármelyik legalább olyan nehéz, mint bármelyik másik NP-beli eldöntési probléma. Itt jön képbe a Karp-redukció fogalma. Jó dolog sok NP nehéz problémát ismerni, mert akkor ha találunk egy problémát, akkor ha találunk olyan Karp-redukciót, ami azt mutatja, hogy ez a probléma visszavezethető egy közismert NP nehéz problémára, akkor a mi ismeretlen problémánk is NP nehéz lesz. Ez azért van, mert a Karp-redukció tranzitív művelet, továbbá a Karp-redukcónál használt f függvény P-beli, amit kétszer egymás után alkalmazva is még mindig P-beli lesz ez a dolog (az inputok átalakítása). &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Az &#039;&#039;&#039;NP teljes&#039;&#039;&#039; problémák azok, amik NP nehezek és NP-beliek is egyszerre. A fenti dolog ide is érvényes, vagyis jó dolog ha sok nevezetes NP teljes problémát ismerünk, mert ha egy ismeretlen problémához találunk egy olyan Karp-redukciót, ami alapján az ismeretlen problémánkat visszavezethetjük egy közismert NP teljes problémára, akkor az ismeretlen problémánkról is kiderült, hogy NP teljes. &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;big&amp;gt;&#039;&#039;&#039;(&#039;&#039;Nem kérdezték, csak kieg.&#039;&#039;) Karp-redukció?&#039;&#039;&#039;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;/big&amp;gt;&lt;br /&gt;
Van egy olyan gépünk, ami kizárólag B problémát tudja megoldani. Nekünk viszont A problémánk van. Ekkor ha szerencsénk van, akkor fogunk találni egy olyan Karp-redukciót, hogy A&amp;lt;big&amp;gt;≺&amp;lt;/big&amp;gt;B. Ennek persze vannak feltételei. Az A eldöntési probléma inputját át kell alakítani B eldöntési probléma inputjává, és meg is kell adni ezt a függvényt, nevezzük el ezt a függvényt f függvénynek. Feltétel, hogy f függvény polinom időben kiszámolható legyen, és ezt be is kell bizonyítani. Továbbá azt is be kell bizonyítani, hogy amennyiben a normális inputra A azt válaszolná, hogy IGEN, akkor az f(normális input)-ra a B szintén ugyanezt válaszolná (és ugyanezt be kell bizonyítani NEM válaszra is). Magyarul a B dolgot megoldó gépet megerőszakoljuk hogy A problémát is hajlandó legyen megoldani. &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ebből következik néhány dolog. Például az, hogy B legalább olyan nehéz probléma, mint A. Ha például B NP-teljes, akkor A is az. Ha B NP-nehéz, akkor A is az. Ha B coNP-beli, akkor A is az. Ez miért van? Hát azért, mert polinom időben át lehet alakítani az A problémát B-vé. Ezt indirekten könnyen lehet bizonyítani. Indirekt tegyük fel, hogy annak ellenére hogy B probléma NP-teljes és létezik egy olyan Karp-redukció ami A problmémát átalakítja B-vé, szóval mindezek ellenére A probléma P-beli. Ekkor A problémát egy polinom idejű f függvénnyel simán átalakítjuk B problémává, erről szól ugye a Karp-redukció. Ezek után ha bármikor B problémát akarnánk megoldani, akkor az f-függvény fordítva végrehajtásával a B inputját átalakítjuk A inputjává, megoldjuk az A problémát polinom időben, és kész is. Ez ellentmondás mivel B-ről azt mondtuk hogy NP-teljes. A másik érdekesség, hogy ha például egy NP-teljes vagy NP-nehéz problémáról kiderülne hogy P-beli, akkor az összes NP-beliről kiderülne hogy P-beli, mivel az NP-nehéz definíciója az, hogy legalább olyan nehéz mint bármely tetszőleges NP-beli. &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Még egy fontos megjegyzés a Karp-redukcióhoz: ugye A problémát akarjuk megoldani, de csak B-t megoldó gépünk van. Az egyik gyakorlaton elhangzott, és fontos tudni, hogy a B-t megoldó gépet az A eldöntési probléma megoldásához csak EGYSZER használhatjuk. Azért mert a Karp-redukció az ilyen.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;big&amp;gt;&#039;&#039;&#039;(&#039;&#039;Nem kérdezték, csak kieg.&#039;&#039;) SAT probléma? &#039;&#039;&#039;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;/big&amp;gt;&lt;br /&gt;
todo &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;big&amp;gt;&#039;&#039;&#039;A feladat megoldása: &#039;&#039;&#039;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;/big&amp;gt;&lt;br /&gt;
todo &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&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;
&amp;lt;br&amp;gt;&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;
&lt;br /&gt;
&#039;&#039;&#039;(&#039;&#039;Nem kérdezték, csak kieg.&#039;&#039;) P osztály?&#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;(&#039;&#039;Nem kérdezték, csak kieg.&#039;&#039;) NP-teljes osztály? &#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;(&#039;&#039;Nem kérdezték, csak kieg.&#039;&#039;) H-út? &#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;(&#039;&#039;Nem kérdezték, csak kieg.&#039;&#039;) 3 színnel színezhetőség problémája? &#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;A feladat megoldása: &#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;
}}&lt;/div&gt;</summary>
		<author><name>Subdiaz</name></author>
	</entry>
	<entry>
		<id>https://vik.wiki/index.php?title=Algoritmuselm%C3%A9let_-_Vizsga,_2013.06.06.&amp;diff=167489</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=167489"/>
		<updated>2013-06-07T16:50:54Z</updated>

		<summary type="html">&lt;p&gt;Subdiaz: /* 7. Feladat */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&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: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 b) 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.&lt;br /&gt;
Másképpen mondva: 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:keresztel_2.PNG]]&amp;lt;br&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
===2. Feladat===&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;
&#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;
todo &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;(&#039;&#039;Nem kérdezték, csak kieg.&#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;
todo &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;(&#039;&#039;Nem kérdezték, csak kieg.&#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;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;
todo &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
===3. Feladat===&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;
&#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;
todo &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;(&#039;&#039;Nem kérdezték, csak kieg.&#039;&#039;) Mi az a Kruskal algoritmus?&#039;&#039;&#039;&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;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;
todo &amp;lt;br&amp;gt;&amp;lt;br&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. sornál kicsit rafkósnak kell lenni. Leírhatnám egyből a megoldást, de talán több értelme van, ha a logikai zsákutcákat is leírom.&lt;br /&gt;
##Először gondolhatnánk arra, hogy a [4,3]-as cella 10+3 formában áll elő, így a 3-as csomag értéke €3. Viszont így a súlyának 0kg-nak kéne lennie, ami nyílván fatal error.&lt;br /&gt;
##Második gondolatunk az lehetne, hogy akkor 5+8 formában áll elő, így a 3-as csomag értéke €8. Súlya ekkor 2kg kellene legyen, viszont akkor a [2,3]-as cellába 8-nak, és nem 5-nek kéne szerepelnie, tehát ez se jó megoldás.&lt;br /&gt;
##Harmadik ötletnek nagyon más nem jöhet szóba, hogy akkor a 3-as csomag értéke €13, súlya pedig 4kg. És ha leellenőrizzük, látszik, hogy ez lesz a jó megoldás.&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:2013_06_06_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;
&#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===&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;
&amp;lt;big&amp;gt;&#039;&#039;&#039;(&#039;&#039;Nem kérdezték, csak kieg.&#039;&#039;) NP osztály?&#039;&#039;&#039;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:bonyolultsag_elmelet.JPG|390px]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;&#039;problémák&#039;&#039;&#039;nak lehet több típusú több bemenete, és több típusú több kimenete. Ezeket átfogalmazzuk olyanra, hogy a kimenete egyetlen bit legyen (IGEN / NEM), mert ezen algoritmusok felhasználásával is teljesen jól lehet dolgozni, ugyanakkor könnyebb őket nehézség / bonyolultság szerint osztályozni. Az ilyen 1 bites kimenetű problémákat nevezzük &#039;&#039;&#039;eldöntési problémák&#039;&#039;&#039;nak. &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Az eldöntési problémákat nehézség / bonyolultság szerint osztályokba soroljuk, ezen osztályok között olyan kapcsolatok vannak mint a halmazoknál; ez a fenti rajzon látszik.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;&#039;P osztály&#039;&#039;&#039;ba olyan problémák tartoznak, amelyekre ismert olyan algoritmus, ami a bemenet polinomjával megadott idő alatt lefut. Vagyis ha a bemenet &#039;&#039;&#039;n&#039;&#039;&#039;, akkor az algoritmusra azt mondjuk, hogy nagy_ordó(valami), ahol a valami &#039;&#039;&#039;n&#039;&#039;&#039; egy polinomja, például n négyzet, n köb, három n négyzet meg négy meg nyolc n köb, és ilyesmik. &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Az &#039;&#039;&#039;NP osztály&#039;&#039;&#039;ba olyan problémák tartoznak, amelyekre (jelenleg) nem ismert polinom idejű (P-beli) algoritmus, de igen válasz esetén létezik hatékony tanúsítvány. Vagyis, adott egy nagy csomó bemenet és van egy kérdés. P-idő alatt nem tudjuk megmondani a választ, de ha valaki megsúgja hogy a válasz IGEN, akkor P-időben meg tudjuk mondani, hogy ez hülyeség vagy nem hülyeség. Ha azt súgják meg hogy NEM, akkor fogalmunk sincs, P-időben nem tudjuk eldönteni hogy hülyeség-e vagy sem. (&#039;&#039;Ha így lenne, vagyis igen és nem válasz esetén is P-időben ellenőrizni tudnánk a válasz helyességét, akkor az egész probléma P-beli lenne, hiszen megsúgjuk saját magunknak hogy NEM és ha helyes akkor NEM egyébként igen. Persze ha az IGEN-ről P-időben kiderül hogy hülyeség attól még lehet hogy IGEN, csak éppen nem az a konkrét ami meg lett súgva, hanem egy másik.&#039;&#039;) &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;&#039;coNP osztály&#039;&#039;&#039; lényegében ugyanaz mint az NP osztály, csak NEM válaszra. Vagyis (jelenleg) nem ismerünk rá P-beli algoritmust, de ha a válasz NEM, akkor P-időben (hatékonyan) ellenőrizni tudjuk, hogy ez-e a jó válasz vagy sem. Szintén, IGEN válasz esetén semmit sem tudunk mondani P-időben, a fenti okok miatt (ami a zárójelben van). &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Az &#039;&#039;&#039;NP nehéz&#039;&#039;&#039; osztályba tartozó eldöntési problémák közül bármelyik legalább olyan nehéz, mint bármelyik másik NP-beli eldöntési probléma. Itt jön képbe a Karp-redukció fogalma. Jó dolog sok NP nehéz problémát ismerni, mert akkor ha találunk egy problémát, akkor ha találunk olyan Karp-redukciót, ami azt mutatja, hogy ez a probléma visszavezethető egy közismert NP nehéz problémára, akkor a mi ismeretlen problémánk is NP nehéz lesz. Ez azért van, mert a Karp-redukció tranzitív művelet, továbbá a Karp-redukcónál használt f függvény P-beli, amit kétszer egymás után alkalmazva is még mindig P-beli lesz ez a dolog (az inputok átalakítása). &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Az &#039;&#039;&#039;NP teljes&#039;&#039;&#039; problémák azok, amik NP nehezek és NP-beliek is egyszerre. A fenti dolog ide is érvényes, vagyis jó dolog ha sok nevezetes NP teljes problémát ismerünk, mert ha egy ismeretlen problémához találunk egy olyan Karp-redukciót, ami alapján az ismeretlen problémánkat visszavezethetjük egy közismert NP teljes problémára, akkor az ismeretlen problémánkról is kiderült, hogy NP teljes. &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;big&amp;gt;&#039;&#039;&#039;(&#039;&#039;Nem kérdezték, csak kieg.&#039;&#039;) Karp-redukció?&#039;&#039;&#039;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;/big&amp;gt;&lt;br /&gt;
Van egy olyan gépünk, ami kizárólag B problémát tudja megoldani. Nekünk viszont A problémánk van. Ekkor ha szerencsénk van, akkor fogunk találni egy olyan Karp-redukciót, hogy A&amp;lt;big&amp;gt;≺&amp;lt;/big&amp;gt;B. Ennek persze vannak feltételei. Az A eldöntési probléma inputját át kell alakítani B eldöntési probléma inputjává, és meg is kell adni ezt a függvényt, nevezzük el ezt a függvényt f függvénynek. Feltétel, hogy f függvény polinom időben kiszámolható legyen, és ezt be is kell bizonyítani. Továbbá azt is be kell bizonyítani, hogy amennyiben a normális inputra A azt válaszolná, hogy IGEN, akkor az f(normális input)-ra a B szintén ugyanezt válaszolná (és ugyanezt be kell bizonyítani NEM válaszra is). Magyarul a B dolgot megoldó gépet megerőszakoljuk hogy A problémát is hajlandó legyen megoldani. &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ebből következik néhány dolog. Például az, hogy B legalább olyan nehéz probléma, mint A. Ha például B NP-teljes, akkor A is az. Ha B NP-nehéz, akkor A is az. Ha B coNP-beli, akkor A is az. Ez miért van? Hát azért, mert polinom időben át lehet alakítani az A problémát B-vé. Ezt indirekten könnyen lehet bizonyítani. Indirekt tegyük fel, hogy annak ellenére hogy B probléma NP-teljes és létezik egy olyan Karp-redukció ami A problmémát átalakítja B-vé, szóval mindezek ellenére A probléma P-beli. Ekkor A problémát egy polinom idejű f függvénnyel simán átalakítjuk B problémává, erről szól ugye a Karp-redukció. Ezek után ha bármikor B problémát akarnánk megoldani, akkor az f-függvény fordítva végrehajtásával a B inputját átalakítjuk A inputjává, megoldjuk az A problémát polinom időben, és kész is. Ez ellentmondás mivel B-ről azt mondtuk hogy NP-teljes. A másik érdekesség, hogy ha például egy NP-teljes vagy NP-nehéz problémáról kiderülne hogy P-beli, akkor az összes NP-beliről kiderülne hogy P-beli, mivel az NP-nehéz definíciója az, hogy legalább olyan nehéz mint bármely tetszőleges NP-beli. &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Még egy fontos megjegyzés a Karp-redukcióhoz: ugye A problémát akarjuk megoldani, de csak B-t megoldó gépünk van. Az egyik gyakorlaton elhangzott, és fontos tudni, hogy a B-t megoldó gépet az A eldöntési probléma megoldásához csak EGYSZER használhatjuk. Azért mert a Karp-redukció az ilyen.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;big&amp;gt;&#039;&#039;&#039;(&#039;&#039;Nem kérdezték, csak kieg.&#039;&#039;) SAT probléma? &#039;&#039;&#039;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;/big&amp;gt;&lt;br /&gt;
todo &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;big&amp;gt;&#039;&#039;&#039;A feladat megoldása: &#039;&#039;&#039;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;/big&amp;gt;&lt;br /&gt;
todo &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&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;
&amp;lt;br&amp;gt;&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;
&lt;br /&gt;
&#039;&#039;&#039;(&#039;&#039;Nem kérdezték, csak kieg.&#039;&#039;) P osztály?&#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;(&#039;&#039;Nem kérdezték, csak kieg.&#039;&#039;) NP-teljes osztály? &#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;(&#039;&#039;Nem kérdezték, csak kieg.&#039;&#039;) H-út? &#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;(&#039;&#039;Nem kérdezték, csak kieg.&#039;&#039;) 3 színnel színezhetőség problémája? &#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;A feladat megoldása: &#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;
}}&lt;/div&gt;</summary>
		<author><name>Subdiaz</name></author>
	</entry>
	<entry>
		<id>https://vik.wiki/index.php?title=Algoritmuselm%C3%A9let_-_Vizsga,_2013.06.06.&amp;diff=167488</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=167488"/>
		<updated>2013-06-07T16:43:07Z</updated>

		<summary type="html">&lt;p&gt;Subdiaz: /* 7. Feladat */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&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: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 b) 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.&lt;br /&gt;
Másképpen mondva: 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:keresztel_2.PNG]]&amp;lt;br&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
===2. Feladat===&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;
&#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;
todo &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;(&#039;&#039;Nem kérdezték, csak kieg.&#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;
todo &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;(&#039;&#039;Nem kérdezték, csak kieg.&#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;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;
todo &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
===3. Feladat===&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;
&#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;
todo &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;(&#039;&#039;Nem kérdezték, csak kieg.&#039;&#039;) Mi az a Kruskal algoritmus?&#039;&#039;&#039;&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;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;
todo &amp;lt;br&amp;gt;&amp;lt;br&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. sornál kicsit rafkósnak kell lenni. Leírhatnám egyből a megoldást, de talán több értelme van, ha a logikai zsákutcákat is leírom.&lt;br /&gt;
##Először gondolhatnánk arra, hogy a [4,3]-as cella 10+3 formában áll elő, így a 3-as csomag értéke €3. Viszont így a súlyának 0kg-nak kéne lennie, ami nyílván fatal error.&lt;br /&gt;
##Második gondolatunk az lehetne, hogy akkor 5+8 formában áll elő, így a 3-as csomag értéke €8. Súlya ekkor 2kg kellene legyen, viszont akkor a [2,3]-as cellába 8-nak, és nem 5-nek kéne szerepelnie, tehát ez se jó megoldás.&lt;br /&gt;
##Harmadik ötletnek nagyon más nem jöhet szóba, hogy akkor a 3-as csomag értéke €13, súlya pedig 4kg. És ha leellenőrizzük, látszik, hogy ez lesz a jó megoldás.&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:2013_06_06_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;
&#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===&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;
&amp;lt;big&amp;gt;&#039;&#039;&#039;(&#039;&#039;Nem kérdezték, csak kieg.&#039;&#039;) NP osztály?&#039;&#039;&#039;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:bonyolultsag_elmelet.JPG|390px]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;&#039;problémák&#039;&#039;&#039;nak lehet több típusú több bemenete, és több típusú több kimenete. Ezeket átfogalmazzuk olyanra, hogy a kimenete egyetlen bit legyen (IGEN / NEM), mert ezen algoritmusok felhasználásával is teljesen jól lehet dolgozni, ugyanakkor könnyebb őket nehézség / bonyolultság szerint osztályozni. Az ilyen 1 bites kimenetű problémákat nevezzük &#039;&#039;&#039;eldöntési problémák&#039;&#039;&#039;nak. &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Az eldöntési problémákat nehézség / bonyolultság szerint osztályokba soroljuk, ezen osztályok között olyan kapcsolatok vannak mint a halmazoknál; ez a fenti rajzon látszik.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;&#039;P osztály&#039;&#039;&#039;ba olyan problémák tartoznak, amelyekre ismert olyan algoritmus, ami a bemenet polinomjával megadott idő alatt lefut. Vagyis ha a bemenet &#039;&#039;&#039;n&#039;&#039;&#039;, akkor az algoritmusra azt mondjuk, hogy nagy_ordó(valami), ahol a valami &#039;&#039;&#039;n&#039;&#039;&#039; egy polinomja, például n négyzet, n köb, három n négyzet meg négy meg nyolc n köb, és ilyesmik. &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Az &#039;&#039;&#039;NP osztály&#039;&#039;&#039;ba olyan problémák tartoznak, amelyekre (jelenleg) nem ismert polinom idejű (P-beli) algoritmus, de igen válasz esetén létezik hatékony tanúsítvány. Vagyis, adott egy nagy csomó bemenet és van egy kérdés. P-idő alatt nem tudjuk megmondani a választ, de ha valaki megsúgja hogy a válasz IGEN, akkor P-időben meg tudjuk mondani, hogy ez hülyeség vagy nem hülyeség. Ha azt súgják meg hogy NEM, akkor fogalmunk sincs, P-időben nem tudjuk eldönteni hogy hülyeség-e vagy sem. (&#039;&#039;Ha így lenne, vagyis igen és nem válasz esetén is P-időben ellenőrizni tudnánk a válasz helyességét, akkor az egész probléma P-beli lenne, hiszen megsúgjuk saját magunknak hogy NEM és ha helyes akkor NEM egyébként igen. Persze ha az IGEN-ről P-időben kiderül hogy hülyeség attól még lehet hogy IGEN, csak éppen nem az a konkrét ami meg lett súgva, hanem egy másik.&#039;&#039;) &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;&#039;coNP osztály&#039;&#039;&#039; lényegében ugyanaz mint az NP osztály, csak NEM válaszra. Vagyis (jelenleg) nem ismerünk rá P-beli algoritmust, de ha a válasz NEM, akkor P-időben (hatékonyan) ellenőrizni tudjuk, hogy ez-e a jó válasz vagy sem. Szintén, IGEN válasz esetén semmit sem tudunk mondani P-időben, a fenti okok miatt (ami a zárójelben van). &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Az &#039;&#039;&#039;NP nehéz&#039;&#039;&#039; osztályba tartozó eldöntési problémák közül bármelyik legalább olyan nehéz, mint bármelyik másik NP-beli eldöntési probléma. Itt jön képbe a Karp-redukció fogalma. Jó dolog sok NP nehéz problémát ismerni, mert akkor ha találunk egy problémát, akkor ha találunk olyan Karp-redukciót, ami azt mutatja, hogy ez a probléma visszavezethető egy közismert NP nehéz problémára, akkor a mi ismeretlen problémánk is NP nehéz lesz. Ez azért van, mert a Karp-redukció tranzitív művelet, továbbá a Karp-redukcónál használt f függvény P-beli, amit kétszer egymás után alkalmazva is még mindig P-beli lesz ez a dolog (az inputok átalakítása). &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Az &#039;&#039;&#039;NP teljes&#039;&#039;&#039; problémák azok, amik NP nehezek és NP-beliek is egyszerre. A fenti dolog ide is érvényes, vagyis jó dolog ha sok nevezetes NP teljes problémát ismerünk, mert ha egy ismeretlen problémához találunk egy olyan Karp-redukciót, ami alapján az ismeretlen problémánkat visszavezethetjük egy közismert NP teljes problémára, akkor az ismeretlen problémánkról is kiderült, hogy NP teljes. &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;big&amp;gt;&#039;&#039;&#039;(&#039;&#039;Nem kérdezték, csak kieg.&#039;&#039;) Karp-redukció?&#039;&#039;&#039;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;/big&amp;gt;&lt;br /&gt;
Van egy olyan gépünk, ami kizárólag B problémát tudja megoldani. Nekünk viszont A problémánk van. Ekkor ha szerencsénk van, akkor fogunk találni egy olyan Karp-redukciót, hogy A&amp;lt;big&amp;gt;≺&amp;lt;/big&amp;gt;B. Ennek persze vannak feltételei. Az A eldöntési probléma inputját át kell alakítani B eldöntési probléma inputjává, és meg is kell adni ezt a függvényt, nevezzük el ezt a függvényt f függvénynek. Feltétel, hogy f függvény polinom időben kiszámolható legyen, és ezt be is kell bizonyítani. Továbbá azt is be kell bizonyítani, hogy amennyiben a normális inputra A azt válaszolná, hogy IGEN, akkor az f(normális input)-ra a B szintén ugyanezt válaszolná (és ugyanezt be kell bizonyítani NEM válaszra is). Magyarul a B dolgot megoldó gépet megerőszakoljuk hogy A problémát is hajlandó legyen megoldani. &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ebből következik néhány dolog. Például az, hogy B legalább olyan nehéz probléma, mint A. Ha például B NP-teljes, akkor A is az. Ha B NP-nehéz, akkor A is az. Ha B coNP-beli, akkor A is az. Ez miért van? Hát azért, mert polinom időben át lehet alakítani az A problémát B-vé. Ezt indirekten könnyen lehet bizonyítani. Indirekt tegyük fel, hogy annak ellenére hogy B probléma NP-teljes és létezik egy olyan Karp-redukció ami A problmémát átalakítja B-vé, szóval mindezek ellenére A probléma P-beli. Ekkor A problémát egy polinom idejű f függvénnyel simán átalakítjuk B problémává, erről szól ugye a Karp-redukció. Ezek után ha bármikor B problémát akarnánk megoldani, akkor az f-függvény fordítva végrehajtásával a B inputját átalakítjuk A inputjává, megoldjuk az A problémát polinom időben, és kész is. Ez ellentmondás mivel B-ről azt mondtuk hogy NP-teljes. A másik érdekesség, hogy ha például egy NP-teljes vagy NP-nehéz problémáról kiderülne hogy P-beli, akkor az összes NP-beliről kiderülne hogy P-beli, mivel az NP-nehéz definíciója az, hogy legalább olyan nehéz mint bármely tetszőleges NP-beli. &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;big&amp;gt;&#039;&#039;&#039;(&#039;&#039;Nem kérdezték, csak kieg.&#039;&#039;) SAT probléma? &#039;&#039;&#039;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;/big&amp;gt;&lt;br /&gt;
todo &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;big&amp;gt;&#039;&#039;&#039;A feladat megoldása: &#039;&#039;&#039;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;/big&amp;gt;&lt;br /&gt;
todo &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&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;
&amp;lt;br&amp;gt;&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;
&lt;br /&gt;
&#039;&#039;&#039;(&#039;&#039;Nem kérdezték, csak kieg.&#039;&#039;) P osztály?&#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;(&#039;&#039;Nem kérdezték, csak kieg.&#039;&#039;) NP-teljes osztály? &#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;(&#039;&#039;Nem kérdezték, csak kieg.&#039;&#039;) H-út? &#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;(&#039;&#039;Nem kérdezték, csak kieg.&#039;&#039;) 3 színnel színezhetőség problémája? &#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;A feladat megoldása: &#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;
}}&lt;/div&gt;</summary>
		<author><name>Subdiaz</name></author>
	</entry>
	<entry>
		<id>https://vik.wiki/index.php?title=Algoritmuselm%C3%A9let_-_Vizsga,_2013.06.06.&amp;diff=167482</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=167482"/>
		<updated>2013-06-07T16:29:50Z</updated>

		<summary type="html">&lt;p&gt;Subdiaz: /* 7. Feladat */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==2013.06.06. vizsga megoldásai==&lt;br /&gt;
===1. Feladat===&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: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 b) 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.&lt;br /&gt;
Másképpen mondva: 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:keresztel_2.PNG]]&amp;lt;br&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
===2. Feladat===&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;
&#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;
todo &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;(&#039;&#039;Nem kérdezték, csak kieg.&#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;
todo &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;(&#039;&#039;Nem kérdezték, csak kieg.&#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;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;
todo &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
===3. Feladat===&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;
&#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;
todo &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;(&#039;&#039;Nem kérdezték, csak kieg.&#039;&#039;) Mi az a Kruskal algoritmus?&#039;&#039;&#039;&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;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;
todo &amp;lt;br&amp;gt;&amp;lt;br&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===&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? &#039;&#039;Vizsgán megjegyzést fűztek hozzá: rengetegen odahívták a felügyelőket, hogy márpedig itt el vannak írva a számok, mert semmi nem jön ki. Emiatt hangosan elmondták a felügyelők, hogy jók a számok. Személyes hozzáfűzésem: kell mondani 3 számot, melyek közül 0-át 1-et 2-őt vagy 3-at kiválasztva és ezeket összeadva előállnak ezek a számok: 0, 5, 10, 13, 15, 18. Ezek mondjuk lehetnének az 5, 8 és 10. Viszont ezekkel ellentmondásba keveredhetünk. :-((( &#039;&#039;&amp;lt;br&amp;gt;&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;
&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;
&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;
===6. Feladat===&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:2013_06_06_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;
&#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===&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;
&amp;lt;big&amp;gt;&#039;&#039;&#039;(&#039;&#039;Nem kérdezték, csak kieg.&#039;&#039;) NP osztály?&#039;&#039;&#039;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:bonyolultsag_elmelet.JPG|390px]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;&#039;problémák&#039;&#039;&#039;nak lehet több típusú több bemenete, és több típusú több kimenete. Ezeket átfogalmazzuk olyanra, hogy a kimenete egyetlen bit legyen (IGEN / NEM), mert ezen algoritmusok felhasználásával is teljesen jól lehet dolgozni, ugyanakkor könnyebb őket nehézség / bonyolultság szerint osztályozni. Az ilyen 1 bites kimenetű problémákat nevezzük &#039;&#039;&#039;eldöntési problémák&#039;&#039;&#039;nak. &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Az eldöntési problémákat nehézség / bonyolultság szerint osztályokba soroljuk, ezen osztályok között olyan kapcsolatok vannak mint a halmazoknál; ez a fenti rajzon látszik.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;&#039;P osztály&#039;&#039;&#039;ba olyan problémák tartoznak, amelyekre ismert olyan algoritmus, ami a bemenet polinomjával megadott idő alatt lefut. Vagyis ha a bemenet &#039;&#039;&#039;n&#039;&#039;&#039;, akkor az algoritmusra azt mondjuk, hogy nagy_ordó(valami), ahol a valami &#039;&#039;&#039;n&#039;&#039;&#039; egy polinomja, például n négyzet, n köb, három n négyzet meg négy meg nyolc n köb, és ilyesmik. &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Az &#039;&#039;&#039;NP osztály&#039;&#039;&#039;ba olyan problémák tartoznak, amelyekre (jelenleg) nem ismert polinom idejű (P-beli) algoritmus, de igen válasz esetén létezik hatékony tanúsítvány. Vagyis, adott egy nagy csomó bemenet és van egy kérdés. P-idő alatt nem tudjuk megmondani a választ, de ha valaki megsúgja hogy a válasz IGEN, akkor P-időben meg tudjuk mondani, hogy ez hülyeség vagy nem hülyeség. Ha azt súgják meg hogy NEM, akkor fogalmunk sincs, P-időben nem tudjuk eldönteni hogy hülyeség-e vagy sem. (&#039;&#039;Ha így lenne, vagyis igen és nem válasz esetén is P-időben ellenőrizni tudnánk a válasz helyességét, akkor az egész probléma P-beli lenne, hiszen megsúgjuk saját magunknak hogy NEM és ha helyes akkor NEM egyébként igen. Persze ha az IGEN-ről P-időben kiderül hogy hülyeség attól még lehet hogy IGEN, csak éppen nem az a konkrét ami meg lett súgva, hanem egy másik.&#039;&#039;) &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;&#039;coNP osztály&#039;&#039;&#039; lényegében ugyanaz mint az NP osztály, csak NEM válaszra. Vagyis (jelenleg) nem ismerünk rá P-beli algoritmust, de ha a válasz NEM, akkor P-időben (hatékonyan) ellenőrizni tudjuk, hogy ez-e a jó válasz vagy sem. Szintén, IGEN válasz esetén semmit sem tudunk mondani P-időben, a fenti okok miatt (ami a zárójelben van). &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Az &#039;&#039;&#039;NP nehéz&#039;&#039;&#039; osztályba tartozó eldöntési problémák közül bármelyik legalább olyan nehéz, mint bármelyik másik NP-beli eldöntési probléma. Itt jön képbe a Karp-redukció fogalma. Jó dolog sok NP nehéz problémát ismerni, mert akkor ha találunk egy problémát, akkor ha találunk olyan Karp-redukciót, ami azt mutatja, hogy ez a probléma visszavezethető egy közismert NP nehéz problémára, akkor a mi ismeretlen problémánk is NP nehéz lesz. Ez azért van, mert a Karp-redukció tranzitív művelet, továbbá a Karp-redukcónál használt f függvény P-beli, amit kétszer egymás után alkalmazva is még mindig P-beli lesz ez a dolog (az inputok átalakítása). &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Az &#039;&#039;&#039;NP teljes&#039;&#039;&#039; problémák azok, amik NP nehezek és NP-beliek is egyszerre. A fenti dolog ide is érvényes, vagyis jó dolog ha sok nevezetes NP teljes problémát ismerünk, mert ha egy ismeretlen problémához találunk egy olyan Karp-redukciót, ami alapján az ismeretlen problémánkat visszavezethetjük egy közismert NP teljes problémára, akkor az ismeretlen problémánkról is kiderült, hogy NP teljes. &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;big&amp;gt;&#039;&#039;&#039;(&#039;&#039;Nem kérdezték, csak kieg.&#039;&#039;) SAT probléma? &#039;&#039;&#039;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;/big&amp;gt;&lt;br /&gt;
todo &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;big&amp;gt;&#039;&#039;&#039;A feladat megoldása: &#039;&#039;&#039;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;/big&amp;gt;&lt;br /&gt;
todo &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&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;
&amp;lt;br&amp;gt;&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;
&lt;br /&gt;
&#039;&#039;&#039;(&#039;&#039;Nem kérdezték, csak kieg.&#039;&#039;) P osztály?&#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;(&#039;&#039;Nem kérdezték, csak kieg.&#039;&#039;) NP-teljes osztály? &#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;(&#039;&#039;Nem kérdezték, csak kieg.&#039;&#039;) H-út? &#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;(&#039;&#039;Nem kérdezték, csak kieg.&#039;&#039;) 3 színnel színezhetőség problémája? &#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;A feladat megoldása: &#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;
}}&lt;/div&gt;</summary>
		<author><name>Subdiaz</name></author>
	</entry>
	<entry>
		<id>https://vik.wiki/index.php?title=Algoritmuselm%C3%A9let_-_Vizsga,_2013.06.06.&amp;diff=167481</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=167481"/>
		<updated>2013-06-07T16:24:18Z</updated>

		<summary type="html">&lt;p&gt;Subdiaz: /* 7. Feladat */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==2013.06.06. vizsga megoldásai==&lt;br /&gt;
===1. Feladat===&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: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 b) 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.&lt;br /&gt;
Másképpen mondva: 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:keresztel_2.PNG]]&amp;lt;br&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
===2. Feladat===&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;
&#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;
todo &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;(&#039;&#039;Nem kérdezték, csak kieg.&#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;
todo &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;(&#039;&#039;Nem kérdezték, csak kieg.&#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;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;
todo &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
===3. Feladat===&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;
&#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;
todo &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;(&#039;&#039;Nem kérdezték, csak kieg.&#039;&#039;) Mi az a Kruskal algoritmus?&#039;&#039;&#039;&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;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;
todo &amp;lt;br&amp;gt;&amp;lt;br&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===&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? &#039;&#039;Vizsgán megjegyzést fűztek hozzá: rengetegen odahívták a felügyelőket, hogy márpedig itt el vannak írva a számok, mert semmi nem jön ki. Emiatt hangosan elmondták a felügyelők, hogy jók a számok. Személyes hozzáfűzésem: kell mondani 3 számot, melyek közül 0-át 1-et 2-őt vagy 3-at kiválasztva és ezeket összeadva előállnak ezek a számok: 0, 5, 10, 13, 15, 18. Ezek mondjuk lehetnének az 5, 8 és 10. Viszont ezekkel ellentmondásba keveredhetünk. :-((( &#039;&#039;&amp;lt;br&amp;gt;&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;
&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;
&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;
===6. Feladat===&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:2013_06_06_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;
&#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===&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;(&#039;&#039;Nem kérdezték, csak kieg.&#039;&#039;) NP osztály?&#039;&#039;&#039;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:bonyolultsag_elmelet.JPG|390px]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;&#039;problémák&#039;&#039;&#039;nak lehet több típusú több bemenete, és több típusú több kimenete. Ezeket átfogalmazzuk olyanra, hogy a kimenete egyetlen bit legyen (IGEN / NEM), mert ezen algoritmusok felhasználásával is teljesen jól lehet dolgozni, ugyanakkor könnyebb őket nehézség / bonyolultság szerint osztályozni. Az ilyen 1 bites kimenetű problémákat nevezzük &#039;&#039;&#039;eldöntési problémák&#039;&#039;&#039;nak. &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Az eldöntési problémákat nehézség / bonyolultság szerint osztályokba soroljuk, ezen osztályok között olyan kapcsolatok vannak mint a halmazoknál; ez a fenti rajzon látszik.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;&#039;P osztály&#039;&#039;&#039;ba olyan problémák tartoznak, amelyekre ismert olyan algoritmus, ami a bemenet polinomjával megadott idő alatt lefut. Vagyis ha a bemenet &#039;&#039;&#039;n&#039;&#039;&#039;, akkor az algoritmusra azt mondjuk, hogy nagy_ordó(valami), ahol a valami &#039;&#039;&#039;n&#039;&#039;&#039; egy polinomja, például n négyzet, n köb, három n négyzet meg négy meg nyolc n köb, és ilyesmik. &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Az &#039;&#039;&#039;NP osztály&#039;&#039;&#039;ba olyan problémák tartoznak, amelyekre (jelenleg) nem ismert polinom idejű (P-beli) algoritmus, de igen válasz esetén létezik hatékony tanúsítvány. Vagyis, adott egy nagy csomó bemenet és van egy kérdés. P-idő alatt nem tudjuk megmondani a választ, de ha valaki megsúgja hogy a válasz IGEN, akkor P-időben meg tudjuk mondani, hogy ez hülyeség vagy nem hülyeség. Ha azt súgják meg hogy NEM, akkor fogalmunk sincs, P-időben nem tudjuk eldönteni hogy hülyeség-e vagy sem. (&#039;&#039;Ha így lenne, vagyis igen és nem válasz esetén is P-időben ellenőrizni tudnánk a válasz helyességét, akkor az egész probléma P-beli lenne, hiszen megsúgjuk saját magunknak hogy NEM és ha helyes akkor NEM egyébként igen. Persze ha az IGEN-ről P-időben kiderül hogy hülyeség attól még lehet hogy IGEN, csak éppen nem az a konkrét ami meg lett súgva, hanem egy másik.&#039;&#039;) &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;&#039;coNP osztály&#039;&#039;&#039; lényegében ugyanaz mint az NP osztály, csak NEM válaszra. Vagyis (jelenleg) nem ismerünk rá P-beli algoritmust, de ha a válasz NEM, akkor P-időben (hatékonyan) ellenőrizni tudjuk, hogy ez-e a jó válasz vagy sem. Szintén, IGEN válasz esetén semmit sem tudunk mondani P-időben, a fenti okok miatt (ami a zárójelben van). &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;(&#039;&#039;Nem kérdezték, csak kieg.&#039;&#039;) SAT probléma? &#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;A feladat megoldása: &#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;
}}&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;
&amp;lt;br&amp;gt;&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;
&lt;br /&gt;
&#039;&#039;&#039;(&#039;&#039;Nem kérdezték, csak kieg.&#039;&#039;) P osztály?&#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;(&#039;&#039;Nem kérdezték, csak kieg.&#039;&#039;) NP-teljes osztály? &#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;(&#039;&#039;Nem kérdezték, csak kieg.&#039;&#039;) H-út? &#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;(&#039;&#039;Nem kérdezték, csak kieg.&#039;&#039;) 3 színnel színezhetőség problémája? &#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;A feladat megoldása: &#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;
}}&lt;/div&gt;</summary>
		<author><name>Subdiaz</name></author>
	</entry>
	<entry>
		<id>https://vik.wiki/index.php?title=F%C3%A1jl:Bonyolultsag_elmelet.JPG&amp;diff=167480</id>
		<title>Fájl:Bonyolultsag elmelet.JPG</title>
		<link rel="alternate" type="text/html" href="https://vik.wiki/index.php?title=F%C3%A1jl:Bonyolultsag_elmelet.JPG&amp;diff=167480"/>
		<updated>2013-06-07T16:13:01Z</updated>

		<summary type="html">&lt;p&gt;Subdiaz: MsUpload&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;MsUpload&lt;/div&gt;</summary>
		<author><name>Subdiaz</name></author>
	</entry>
	<entry>
		<id>https://vik.wiki/index.php?title=Algoritmuselm%C3%A9let_-_Vizsga,_2013.06.06.&amp;diff=167479</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=167479"/>
		<updated>2013-06-07T15:59:03Z</updated>

		<summary type="html">&lt;p&gt;Subdiaz: /* 7. Feladat */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==2013.06.06. vizsga megoldásai==&lt;br /&gt;
===1. Feladat===&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: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 b) 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.&lt;br /&gt;
Másképpen mondva: 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:keresztel_2.PNG]]&amp;lt;br&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
===2. Feladat===&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;
&#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;
todo &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;(&#039;&#039;Nem kérdezték, csak kieg.&#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;
todo &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;(&#039;&#039;Nem kérdezték, csak kieg.&#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;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;
todo &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
===3. Feladat===&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;
&#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;
todo &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;(&#039;&#039;Nem kérdezték, csak kieg.&#039;&#039;) Mi az a Kruskal algoritmus?&#039;&#039;&#039;&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;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;
todo &amp;lt;br&amp;gt;&amp;lt;br&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===&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? &#039;&#039;Vizsgán megjegyzést fűztek hozzá: rengetegen odahívták a felügyelőket, hogy márpedig itt el vannak írva a számok, mert semmi nem jön ki. Emiatt hangosan elmondták a felügyelők, hogy jók a számok. Személyes hozzáfűzésem: kell mondani 3 számot, melyek közül 0-át 1-et 2-őt vagy 3-at kiválasztva és ezeket összeadva előállnak ezek a számok: 0, 5, 10, 13, 15, 18. Ezek mondjuk lehetnének az 5, 8 és 10. Viszont ezekkel ellentmondásba keveredhetünk. :-((( &#039;&#039;&amp;lt;br&amp;gt;&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;
&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;
&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;
===6. Feladat===&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:2013_06_06_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;
&#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===&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;(&#039;&#039;Nem kérdezték, csak kieg.&#039;&#039;) NP osztály?&#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;(&#039;&#039;Nem kérdezték, csak kieg.&#039;&#039;) SAT probléma? &#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;A feladat megoldása: &#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;
}}&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;
&amp;lt;br&amp;gt;&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;
&lt;br /&gt;
&#039;&#039;&#039;(&#039;&#039;Nem kérdezték, csak kieg.&#039;&#039;) P osztály?&#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;(&#039;&#039;Nem kérdezték, csak kieg.&#039;&#039;) NP-teljes osztály? &#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;(&#039;&#039;Nem kérdezték, csak kieg.&#039;&#039;) H-út? &#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;(&#039;&#039;Nem kérdezték, csak kieg.&#039;&#039;) 3 színnel színezhetőség problémája? &#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;A feladat megoldása: &#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;
}}&lt;/div&gt;</summary>
		<author><name>Subdiaz</name></author>
	</entry>
	<entry>
		<id>https://vik.wiki/index.php?title=Algoritmuselm%C3%A9let_-_Vizsga,_2013.06.06.&amp;diff=167478</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=167478"/>
		<updated>2013-06-07T15:58:31Z</updated>

		<summary type="html">&lt;p&gt;Subdiaz: /* 8. Feladat */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==2013.06.06. vizsga megoldásai==&lt;br /&gt;
===1. Feladat===&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: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 b) 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.&lt;br /&gt;
Másképpen mondva: 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:keresztel_2.PNG]]&amp;lt;br&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
===2. Feladat===&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;
&#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;
todo &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;(&#039;&#039;Nem kérdezték, csak kieg.&#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;
todo &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;(&#039;&#039;Nem kérdezték, csak kieg.&#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;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;
todo &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
===3. Feladat===&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;
&#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;
todo &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;(&#039;&#039;Nem kérdezték, csak kieg.&#039;&#039;) Mi az a Kruskal algoritmus?&#039;&#039;&#039;&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;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;
todo &amp;lt;br&amp;gt;&amp;lt;br&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===&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? &#039;&#039;Vizsgán megjegyzést fűztek hozzá: rengetegen odahívták a felügyelőket, hogy márpedig itt el vannak írva a számok, mert semmi nem jön ki. Emiatt hangosan elmondták a felügyelők, hogy jók a számok. Személyes hozzáfűzésem: kell mondani 3 számot, melyek közül 0-át 1-et 2-őt vagy 3-at kiválasztva és ezeket összeadva előállnak ezek a számok: 0, 5, 10, 13, 15, 18. Ezek mondjuk lehetnének az 5, 8 és 10. Viszont ezekkel ellentmondásba keveredhetünk. :-((( &#039;&#039;&amp;lt;br&amp;gt;&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;
&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;
&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;
===6. Feladat===&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:2013_06_06_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;
&#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===&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;(&#039;&#039;Nem kérdezték, csak kieg.&#039;&#039;) NP osztály?&#039;&#039;&#039;&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;(&#039;&#039;Nem kérdezték, csak kieg.&#039;&#039;) SAT probléma? &#039;&#039;&#039;&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;A feladat megoldása: &#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;
}}&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;
&amp;lt;br&amp;gt;&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;
&lt;br /&gt;
&#039;&#039;&#039;(&#039;&#039;Nem kérdezték, csak kieg.&#039;&#039;) P osztály?&#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;(&#039;&#039;Nem kérdezték, csak kieg.&#039;&#039;) NP-teljes osztály? &#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;(&#039;&#039;Nem kérdezték, csak kieg.&#039;&#039;) H-út? &#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;(&#039;&#039;Nem kérdezték, csak kieg.&#039;&#039;) 3 színnel színezhetőség problémája? &#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;A feladat megoldása: &#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;
}}&lt;/div&gt;</summary>
		<author><name>Subdiaz</name></author>
	</entry>
	<entry>
		<id>https://vik.wiki/index.php?title=Algoritmuselm%C3%A9let_-_Vizsga,_2013.06.06.&amp;diff=167477</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=167477"/>
		<updated>2013-06-07T15:57:51Z</updated>

		<summary type="html">&lt;p&gt;Subdiaz: /* 8. Feladat */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==2013.06.06. vizsga megoldásai==&lt;br /&gt;
===1. Feladat===&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: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 b) 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.&lt;br /&gt;
Másképpen mondva: 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:keresztel_2.PNG]]&amp;lt;br&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
===2. Feladat===&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;
&#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;
todo &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;(&#039;&#039;Nem kérdezték, csak kieg.&#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;
todo &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;(&#039;&#039;Nem kérdezték, csak kieg.&#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;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;
todo &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
===3. Feladat===&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;
&#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;
todo &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;(&#039;&#039;Nem kérdezték, csak kieg.&#039;&#039;) Mi az a Kruskal algoritmus?&#039;&#039;&#039;&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;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;
todo &amp;lt;br&amp;gt;&amp;lt;br&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===&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? &#039;&#039;Vizsgán megjegyzést fűztek hozzá: rengetegen odahívták a felügyelőket, hogy márpedig itt el vannak írva a számok, mert semmi nem jön ki. Emiatt hangosan elmondták a felügyelők, hogy jók a számok. Személyes hozzáfűzésem: kell mondani 3 számot, melyek közül 0-át 1-et 2-őt vagy 3-at kiválasztva és ezeket összeadva előállnak ezek a számok: 0, 5, 10, 13, 15, 18. Ezek mondjuk lehetnének az 5, 8 és 10. Viszont ezekkel ellentmondásba keveredhetünk. :-((( &#039;&#039;&amp;lt;br&amp;gt;&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;
&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;
&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;
===6. Feladat===&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:2013_06_06_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;
&#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===&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;(&#039;&#039;Nem kérdezték, csak kieg.&#039;&#039;) NP osztály?&#039;&#039;&#039;&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;(&#039;&#039;Nem kérdezték, csak kieg.&#039;&#039;) SAT probléma? &#039;&#039;&#039;&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;A feladat megoldása: &#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;
}}&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;
&amp;lt;br&amp;gt;&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;
&lt;br /&gt;
&#039;&#039;&#039;(&#039;&#039;Nem kérdezték, csak kieg.&#039;&#039;) P osztály?&#039;&#039;&#039;&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;(&#039;&#039;Nem kérdezték, csak kieg.&#039;&#039;) NP-teljes osztály? &#039;&#039;&#039;&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;(&#039;&#039;Nem kérdezték, csak kieg.&#039;&#039;) H-út? &#039;&#039;&#039;&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;(&#039;&#039;Nem kérdezték, csak kieg.&#039;&#039;) 3 színnel színezhetőség problémája? &#039;&#039;&#039;&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;A feladat megoldása: &#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;
}}&lt;/div&gt;</summary>
		<author><name>Subdiaz</name></author>
	</entry>
	<entry>
		<id>https://vik.wiki/index.php?title=Algoritmuselm%C3%A9let_-_Vizsga,_2013.06.06.&amp;diff=167476</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=167476"/>
		<updated>2013-06-07T15:56:01Z</updated>

		<summary type="html">&lt;p&gt;Subdiaz: /* 8. Feladat */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==2013.06.06. vizsga megoldásai==&lt;br /&gt;
===1. Feladat===&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: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 b) 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.&lt;br /&gt;
Másképpen mondva: 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:keresztel_2.PNG]]&amp;lt;br&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
===2. Feladat===&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;
&#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;
todo &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;(&#039;&#039;Nem kérdezték, csak kieg.&#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;
todo &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;(&#039;&#039;Nem kérdezték, csak kieg.&#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;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;
todo &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
===3. Feladat===&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;
&#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;
todo &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;(&#039;&#039;Nem kérdezték, csak kieg.&#039;&#039;) Mi az a Kruskal algoritmus?&#039;&#039;&#039;&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;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;
todo &amp;lt;br&amp;gt;&amp;lt;br&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===&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? &#039;&#039;Vizsgán megjegyzést fűztek hozzá: rengetegen odahívták a felügyelőket, hogy márpedig itt el vannak írva a számok, mert semmi nem jön ki. Emiatt hangosan elmondták a felügyelők, hogy jók a számok. Személyes hozzáfűzésem: kell mondani 3 számot, melyek közül 0-át 1-et 2-őt vagy 3-at kiválasztva és ezeket összeadva előállnak ezek a számok: 0, 5, 10, 13, 15, 18. Ezek mondjuk lehetnének az 5, 8 és 10. Viszont ezekkel ellentmondásba keveredhetünk. :-((( &#039;&#039;&amp;lt;br&amp;gt;&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;
&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;
&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;
===6. Feladat===&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:2013_06_06_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;
&#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===&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;(&#039;&#039;Nem kérdezték, csak kieg.&#039;&#039;) NP osztály?&#039;&#039;&#039;&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;(&#039;&#039;Nem kérdezték, csak kieg.&#039;&#039;) SAT probléma? &#039;&#039;&#039;&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;A feladat megoldása: &#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;
}}&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;
&amp;lt;br&amp;gt;&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;
&lt;br /&gt;
&#039;&#039;&#039;(&#039;&#039;Nem kérdezték, csak kieg.&#039;&#039;) NP osztály?&#039;&#039;&#039;&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;(&#039;&#039;Nem kérdezték, csak kieg.&#039;&#039;) SAT probléma? &#039;&#039;&#039;&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;A feladat megoldása: &#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;
}}&lt;/div&gt;</summary>
		<author><name>Subdiaz</name></author>
	</entry>
	<entry>
		<id>https://vik.wiki/index.php?title=Algoritmuselm%C3%A9let_-_Vizsga,_2013.06.06.&amp;diff=167475</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=167475"/>
		<updated>2013-06-07T15:53:26Z</updated>

		<summary type="html">&lt;p&gt;Subdiaz: /* 7. Feladat */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==2013.06.06. vizsga megoldásai==&lt;br /&gt;
===1. Feladat===&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: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 b) 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.&lt;br /&gt;
Másképpen mondva: 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:keresztel_2.PNG]]&amp;lt;br&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
===2. Feladat===&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;
&#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;
todo &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;(&#039;&#039;Nem kérdezték, csak kieg.&#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;
todo &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;(&#039;&#039;Nem kérdezték, csak kieg.&#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;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;
todo &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
===3. Feladat===&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;
&#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;
todo &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;(&#039;&#039;Nem kérdezték, csak kieg.&#039;&#039;) Mi az a Kruskal algoritmus?&#039;&#039;&#039;&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;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;
todo &amp;lt;br&amp;gt;&amp;lt;br&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===&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? &#039;&#039;Vizsgán megjegyzést fűztek hozzá: rengetegen odahívták a felügyelőket, hogy márpedig itt el vannak írva a számok, mert semmi nem jön ki. Emiatt hangosan elmondták a felügyelők, hogy jók a számok. Személyes hozzáfűzésem: kell mondani 3 számot, melyek közül 0-át 1-et 2-őt vagy 3-at kiválasztva és ezeket összeadva előállnak ezek a számok: 0, 5, 10, 13, 15, 18. Ezek mondjuk lehetnének az 5, 8 és 10. Viszont ezekkel ellentmondásba keveredhetünk. :-((( &#039;&#039;&amp;lt;br&amp;gt;&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;
&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;
&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;
===6. Feladat===&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:2013_06_06_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;
&#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===&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;(&#039;&#039;Nem kérdezték, csak kieg.&#039;&#039;) NP osztály?&#039;&#039;&#039;&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;(&#039;&#039;Nem kérdezték, csak kieg.&#039;&#039;) SAT probléma? &#039;&#039;&#039;&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;A feladat megoldása: &#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;
}}&lt;br /&gt;
&lt;br /&gt;
===8. Feladat===&lt;br /&gt;
TODO&lt;/div&gt;</summary>
		<author><name>Subdiaz</name></author>
	</entry>
	<entry>
		<id>https://vik.wiki/index.php?title=Algoritmuselm%C3%A9let_-_Vizsga,_2013.06.06.&amp;diff=167474</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=167474"/>
		<updated>2013-06-07T15:52:32Z</updated>

		<summary type="html">&lt;p&gt;Subdiaz: /* 7. Feladat */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==2013.06.06. vizsga megoldásai==&lt;br /&gt;
===1. Feladat===&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: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 b) 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.&lt;br /&gt;
Másképpen mondva: 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:keresztel_2.PNG]]&amp;lt;br&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
===2. Feladat===&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;
&#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;
todo &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;(&#039;&#039;Nem kérdezték, csak kieg.&#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;
todo &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;(&#039;&#039;Nem kérdezték, csak kieg.&#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;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;
todo &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
===3. Feladat===&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;
&#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;
todo &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;(&#039;&#039;Nem kérdezték, csak kieg.&#039;&#039;) Mi az a Kruskal algoritmus?&#039;&#039;&#039;&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;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;
todo &amp;lt;br&amp;gt;&amp;lt;br&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===&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? &#039;&#039;Vizsgán megjegyzést fűztek hozzá: rengetegen odahívták a felügyelőket, hogy márpedig itt el vannak írva a számok, mert semmi nem jön ki. Emiatt hangosan elmondták a felügyelők, hogy jók a számok. Személyes hozzáfűzésem: kell mondani 3 számot, melyek közül 0-át 1-et 2-őt vagy 3-at kiválasztva és ezeket összeadva előállnak ezek a számok: 0, 5, 10, 13, 15, 18. Ezek mondjuk lehetnének az 5, 8 és 10. Viszont ezekkel ellentmondásba keveredhetünk. :-((( &#039;&#039;&amp;lt;br&amp;gt;&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;
&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;
&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;
===6. Feladat===&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:2013_06_06_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;
&#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===&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;(&#039;&#039;Nem kérdezték, csak kieg.&#039;&#039;) NP osztály?&#039;&#039;&#039;&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;(&#039;&#039;Nem kérdezték, csak kieg.&#039;&#039;) SAT probléma? &#039;&#039;&#039;&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;A feladat megoldása: &#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;
}}&lt;br /&gt;
&lt;br /&gt;
===8. Feladat===&lt;br /&gt;
TODO&lt;/div&gt;</summary>
		<author><name>Subdiaz</name></author>
	</entry>
	<entry>
		<id>https://vik.wiki/index.php?title=Algoritmuselm%C3%A9let_-_Vizsga,_2013.06.06.&amp;diff=167473</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=167473"/>
		<updated>2013-06-07T15:50:33Z</updated>

		<summary type="html">&lt;p&gt;Subdiaz: /* 7. Feladat */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==2013.06.06. vizsga megoldásai==&lt;br /&gt;
===1. Feladat===&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: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 b) 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.&lt;br /&gt;
Másképpen mondva: 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:keresztel_2.PNG]]&amp;lt;br&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
===2. Feladat===&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;
&#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;
todo &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;(&#039;&#039;Nem kérdezték, csak kieg.&#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;
todo &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;(&#039;&#039;Nem kérdezték, csak kieg.&#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;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;
todo &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
===3. Feladat===&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;
&#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;
todo &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;(&#039;&#039;Nem kérdezték, csak kieg.&#039;&#039;) Mi az a Kruskal algoritmus?&#039;&#039;&#039;&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;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;
todo &amp;lt;br&amp;gt;&amp;lt;br&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===&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? &#039;&#039;Vizsgán megjegyzést fűztek hozzá: rengetegen odahívták a felügyelőket, hogy márpedig itt el vannak írva a számok, mert semmi nem jön ki. Emiatt hangosan elmondták a felügyelők, hogy jók a számok. Személyes hozzáfűzésem: kell mondani 3 számot, melyek közül 0-át 1-et 2-őt vagy 3-at kiválasztva és ezeket összeadva előállnak ezek a számok: 0, 5, 10, 13, 15, 18. Ezek mondjuk lehetnének az 5, 8 és 10. Viszont ezekkel ellentmondásba keveredhetünk. :-((( &#039;&#039;&amp;lt;br&amp;gt;&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;
&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;
&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;
===6. Feladat===&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:2013_06_06_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;
&#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===&lt;br /&gt;
Létezik-e olyan X eldöntési probléma, amire X ∉ NP és X -&amp;lt; 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;(&#039;&#039;Nem kérdezték, csak kieg.&#039;&#039;) NP osztály?&#039;&#039;&#039;&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;(&#039;&#039;Nem kérdezték, csak kieg.&#039;&#039;) SAT probléma? &#039;&#039;&#039;&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;A feladat megoldása: &#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;
}}&lt;br /&gt;
&lt;br /&gt;
===8. Feladat===&lt;br /&gt;
TODO&lt;/div&gt;</summary>
		<author><name>Subdiaz</name></author>
	</entry>
	<entry>
		<id>https://vik.wiki/index.php?title=Algoritmuselm%C3%A9let_-_Vizsga,_2013.06.06.&amp;diff=167472</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=167472"/>
		<updated>2013-06-07T15:46:42Z</updated>

		<summary type="html">&lt;p&gt;Subdiaz: /* 7. Feladat */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==2013.06.06. vizsga megoldásai==&lt;br /&gt;
===1. Feladat===&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: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 b) 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.&lt;br /&gt;
Másképpen mondva: 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:keresztel_2.PNG]]&amp;lt;br&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
===2. Feladat===&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;
&#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;
todo &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;(&#039;&#039;Nem kérdezték, csak kieg.&#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;
todo &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;(&#039;&#039;Nem kérdezték, csak kieg.&#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;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;
todo &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
===3. Feladat===&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;
&#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;
todo &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;(&#039;&#039;Nem kérdezték, csak kieg.&#039;&#039;) Mi az a Kruskal algoritmus?&#039;&#039;&#039;&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;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;
todo &amp;lt;br&amp;gt;&amp;lt;br&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===&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? &#039;&#039;Vizsgán megjegyzést fűztek hozzá: rengetegen odahívták a felügyelőket, hogy márpedig itt el vannak írva a számok, mert semmi nem jön ki. Emiatt hangosan elmondták a felügyelők, hogy jók a számok. Személyes hozzáfűzésem: kell mondani 3 számot, melyek közül 0-át 1-et 2-őt vagy 3-at kiválasztva és ezeket összeadva előállnak ezek a számok: 0, 5, 10, 13, 15, 18. Ezek mondjuk lehetnének az 5, 8 és 10. Viszont ezekkel ellentmondásba keveredhetünk. :-((( &#039;&#039;&amp;lt;br&amp;gt;&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;
&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;
&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;
===6. Feladat===&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:2013_06_06_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;
&#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===&lt;br /&gt;
Létezik-e olyan X eldöntési probléma, amire X NEM &amp;amp;isin; NP és X -&amp;lt; 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;(&#039;&#039;Nem kérdezték, csak kieg.&#039;&#039;) NP osztály?&#039;&#039;&#039;&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;(&#039;&#039;Nem kérdezték, csak kieg.&#039;&#039;) SAT probléma? &#039;&#039;&#039;&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;A feladat megoldása: &#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;
}}&lt;br /&gt;
&lt;br /&gt;
===8. Feladat===&lt;br /&gt;
TODO&lt;/div&gt;</summary>
		<author><name>Subdiaz</name></author>
	</entry>
	<entry>
		<id>https://vik.wiki/index.php?title=Algoritmuselm%C3%A9let_-_Vizsga,_2013.06.06.&amp;diff=167471</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=167471"/>
		<updated>2013-06-07T15:31:26Z</updated>

		<summary type="html">&lt;p&gt;Subdiaz: /* 5. Feladat */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==2013.06.06. vizsga megoldásai==&lt;br /&gt;
===1. Feladat===&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: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 b) 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.&lt;br /&gt;
Másképpen mondva: 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:keresztel_2.PNG]]&amp;lt;br&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
===2. Feladat===&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;
&#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;
todo &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;(&#039;&#039;Nem kérdezték, csak kieg.&#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;
todo &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;(&#039;&#039;Nem kérdezték, csak kieg.&#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;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;
todo &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
===3. Feladat===&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;
&#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;
todo &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;(&#039;&#039;Nem kérdezték, csak kieg.&#039;&#039;) Mi az a Kruskal algoritmus?&#039;&#039;&#039;&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;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;
todo &amp;lt;br&amp;gt;&amp;lt;br&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===&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? &#039;&#039;Vizsgán megjegyzést fűztek hozzá: rengetegen odahívták a felügyelőket, hogy márpedig itt el vannak írva a számok, mert semmi nem jön ki. Emiatt hangosan elmondták a felügyelők, hogy jók a számok. Személyes hozzáfűzésem: kell mondani 3 számot, melyek közül 0-át 1-et 2-őt vagy 3-at kiválasztva és ezeket összeadva előállnak ezek a számok: 0, 5, 10, 13, 15, 18. Ezek mondjuk lehetnének az 5, 8 és 10. Viszont ezekkel ellentmondásba keveredhetünk. :-((( &#039;&#039;&amp;lt;br&amp;gt;&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;
&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;
&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;
===6. Feladat===&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:2013_06_06_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;
&#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===&lt;br /&gt;
TODO&lt;br /&gt;
===8. Feladat===&lt;br /&gt;
TODO&lt;/div&gt;</summary>
		<author><name>Subdiaz</name></author>
	</entry>
	<entry>
		<id>https://vik.wiki/index.php?title=Algoritmuselm%C3%A9let_-_Vizsga,_2013.06.06.&amp;diff=167470</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=167470"/>
		<updated>2013-06-07T15:26:37Z</updated>

		<summary type="html">&lt;p&gt;Subdiaz: /* 5. Feladat */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==2013.06.06. vizsga megoldásai==&lt;br /&gt;
===1. Feladat===&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: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 b) 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.&lt;br /&gt;
Másképpen mondva: 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:keresztel_2.PNG]]&amp;lt;br&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
===2. Feladat===&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;
&#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;
todo &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;(&#039;&#039;Nem kérdezték, csak kieg.&#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;
todo &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;(&#039;&#039;Nem kérdezték, csak kieg.&#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;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;
todo &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
===3. Feladat===&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;
&#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;
todo &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;(&#039;&#039;Nem kérdezték, csak kieg.&#039;&#039;) Mi az a Kruskal algoritmus?&#039;&#039;&#039;&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;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;
todo &amp;lt;br&amp;gt;&amp;lt;br&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===&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? &amp;lt;br&amp;gt;&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;
&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;
&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;
===6. Feladat===&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:2013_06_06_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;
&#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===&lt;br /&gt;
TODO&lt;br /&gt;
===8. Feladat===&lt;br /&gt;
TODO&lt;/div&gt;</summary>
		<author><name>Subdiaz</name></author>
	</entry>
	<entry>
		<id>https://vik.wiki/index.php?title=Algoritmuselm%C3%A9let_-_Vizsga,_2013.06.06.&amp;diff=167469</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=167469"/>
		<updated>2013-06-07T15:25:43Z</updated>

		<summary type="html">&lt;p&gt;Subdiaz: /* 5. Feladat */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==2013.06.06. vizsga megoldásai==&lt;br /&gt;
===1. Feladat===&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: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 b) 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.&lt;br /&gt;
Másképpen mondva: 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:keresztel_2.PNG]]&amp;lt;br&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
===2. Feladat===&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;
&#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;
todo &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;(&#039;&#039;Nem kérdezték, csak kieg.&#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;
todo &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;(&#039;&#039;Nem kérdezték, csak kieg.&#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;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;
todo &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
===3. Feladat===&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;
&#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;
todo &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;(&#039;&#039;Nem kérdezték, csak kieg.&#039;&#039;) Mi az a Kruskal algoritmus?&#039;&#039;&#039;&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;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;
todo &amp;lt;br&amp;gt;&amp;lt;br&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===&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? &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&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;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&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;
&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;
===6. Feladat===&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:2013_06_06_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;
&#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===&lt;br /&gt;
TODO&lt;br /&gt;
===8. Feladat===&lt;br /&gt;
TODO&lt;/div&gt;</summary>
		<author><name>Subdiaz</name></author>
	</entry>
	<entry>
		<id>https://vik.wiki/index.php?title=Algoritmuselm%C3%A9let_-_Vizsga,_2013.06.06.&amp;diff=167468</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=167468"/>
		<updated>2013-06-07T15:21:28Z</updated>

		<summary type="html">&lt;p&gt;Subdiaz: /* 5. Feladat */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==2013.06.06. vizsga megoldásai==&lt;br /&gt;
===1. Feladat===&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: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 b) 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.&lt;br /&gt;
Másképpen mondva: 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:keresztel_2.PNG]]&amp;lt;br&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
===2. Feladat===&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;
&#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;
todo &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;(&#039;&#039;Nem kérdezték, csak kieg.&#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;
todo &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;(&#039;&#039;Nem kérdezték, csak kieg.&#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;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;
todo &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
===3. Feladat===&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;
&#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;
todo &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;(&#039;&#039;Nem kérdezték, csak kieg.&#039;&#039;) Mi az a Kruskal algoritmus?&#039;&#039;&#039;&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;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;
todo &amp;lt;br&amp;gt;&amp;lt;br&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===&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? &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*   *0   *1   *2   *3   *4   *5   *6   *7&amp;lt;br&amp;gt;&lt;br /&gt;
*1  *0   *0   *0   *0  *10  *10  *10  *10&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&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;
&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;
===6. Feladat===&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:2013_06_06_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;
&#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===&lt;br /&gt;
TODO&lt;br /&gt;
===8. Feladat===&lt;br /&gt;
TODO&lt;/div&gt;</summary>
		<author><name>Subdiaz</name></author>
	</entry>
	<entry>
		<id>https://vik.wiki/index.php?title=Algoritmuselm%C3%A9let_-_Vizsga,_2013.06.06.&amp;diff=167467</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=167467"/>
		<updated>2013-06-07T15:19:50Z</updated>

		<summary type="html">&lt;p&gt;Subdiaz: /* 5. Feladat */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==2013.06.06. vizsga megoldásai==&lt;br /&gt;
===1. Feladat===&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: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 b) 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.&lt;br /&gt;
Másképpen mondva: 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:keresztel_2.PNG]]&amp;lt;br&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
===2. Feladat===&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;
&#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;
todo &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;(&#039;&#039;Nem kérdezték, csak kieg.&#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;
todo &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;(&#039;&#039;Nem kérdezték, csak kieg.&#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;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;
todo &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
===3. Feladat===&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;
&#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;
todo &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;(&#039;&#039;Nem kérdezték, csak kieg.&#039;&#039;) Mi az a Kruskal algoritmus?&#039;&#039;&#039;&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;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;
todo &amp;lt;br&amp;gt;&amp;lt;br&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===&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;
   0   1   2   3   4   5   6   7&lt;br /&gt;
1  0   0   0   0  10  10  10  10&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;
===6. Feladat===&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:2013_06_06_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;
&#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===&lt;br /&gt;
TODO&lt;br /&gt;
===8. Feladat===&lt;br /&gt;
TODO&lt;/div&gt;</summary>
		<author><name>Subdiaz</name></author>
	</entry>
	<entry>
		<id>https://vik.wiki/index.php?title=Algoritmuselm%C3%A9let_-_Vizsga,_2013.06.06.&amp;diff=167466</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=167466"/>
		<updated>2013-06-07T15:16:26Z</updated>

		<summary type="html">&lt;p&gt;Subdiaz: /* 4. Feladat */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==2013.06.06. vizsga megoldásai==&lt;br /&gt;
===1. Feladat===&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: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 b) 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.&lt;br /&gt;
Másképpen mondva: 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:keresztel_2.PNG]]&amp;lt;br&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
===2. Feladat===&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;
&#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;
todo &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;(&#039;&#039;Nem kérdezték, csak kieg.&#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;
todo &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;(&#039;&#039;Nem kérdezték, csak kieg.&#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;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;
todo &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
===3. Feladat===&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;
&#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;
todo &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;(&#039;&#039;Nem kérdezték, csak kieg.&#039;&#039;) Mi az a Kruskal algoritmus?&#039;&#039;&#039;&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;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;
todo &amp;lt;br&amp;gt;&amp;lt;br&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===&lt;br /&gt;
TODO&lt;br /&gt;
===6. Feladat===&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:2013_06_06_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;
&#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===&lt;br /&gt;
TODO&lt;br /&gt;
===8. Feladat===&lt;br /&gt;
TODO&lt;/div&gt;</summary>
		<author><name>Subdiaz</name></author>
	</entry>
	<entry>
		<id>https://vik.wiki/index.php?title=Algoritmuselm%C3%A9let_-_Vizsga,_2013.06.06.&amp;diff=167465</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=167465"/>
		<updated>2013-06-07T15:11:56Z</updated>

		<summary type="html">&lt;p&gt;Subdiaz: /* 6. Feladat */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==2013.06.06. vizsga megoldásai==&lt;br /&gt;
===1. Feladat===&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: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 b) 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.&lt;br /&gt;
Másképpen mondva: 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:keresztel_2.PNG]]&amp;lt;br&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
===2. Feladat===&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;
&#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;
todo &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;(&#039;&#039;Nem kérdezték, csak kieg.&#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;
todo &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;(&#039;&#039;Nem kérdezték, csak kieg.&#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;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;
todo &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
===3. Feladat===&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;
&#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;
todo &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;(&#039;&#039;Nem kérdezték, csak kieg.&#039;&#039;) Mi az a Kruskal algoritmus?&#039;&#039;&#039;&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;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;
todo &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
===4. Feladat===&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;
TODO&lt;br /&gt;
&lt;br /&gt;
===5. Feladat===&lt;br /&gt;
TODO&lt;br /&gt;
===6. Feladat===&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:2013_06_06_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;
&#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===&lt;br /&gt;
TODO&lt;br /&gt;
===8. Feladat===&lt;br /&gt;
TODO&lt;/div&gt;</summary>
		<author><name>Subdiaz</name></author>
	</entry>
	<entry>
		<id>https://vik.wiki/index.php?title=Algoritmuselm%C3%A9let_-_Vizsga,_2013.06.06.&amp;diff=167464</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=167464"/>
		<updated>2013-06-07T15:10:57Z</updated>

		<summary type="html">&lt;p&gt;Subdiaz: /* 4. Feladat */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==2013.06.06. vizsga megoldásai==&lt;br /&gt;
===1. Feladat===&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: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 b) 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.&lt;br /&gt;
Másképpen mondva: 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:keresztel_2.PNG]]&amp;lt;br&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
===2. Feladat===&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;
&#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;
todo &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;(&#039;&#039;Nem kérdezték, csak kieg.&#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;
todo &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;(&#039;&#039;Nem kérdezték, csak kieg.&#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;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;
todo &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
===3. Feladat===&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;
&#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;
todo &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;(&#039;&#039;Nem kérdezték, csak kieg.&#039;&#039;) Mi az a Kruskal algoritmus?&#039;&#039;&#039;&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;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;
todo &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
===4. Feladat===&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;
TODO&lt;br /&gt;
&lt;br /&gt;
===5. Feladat===&lt;br /&gt;
TODO&lt;br /&gt;
===6. Feladat===&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.&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:2013_06_06_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;
&#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;
===7. Feladat===&lt;br /&gt;
TODO&lt;br /&gt;
===8. Feladat===&lt;br /&gt;
TODO&lt;/div&gt;</summary>
		<author><name>Subdiaz</name></author>
	</entry>
	<entry>
		<id>https://vik.wiki/index.php?title=Algoritmuselm%C3%A9let_-_Vizsga,_2013.06.06.&amp;diff=167463</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=167463"/>
		<updated>2013-06-07T15:10:11Z</updated>

		<summary type="html">&lt;p&gt;Subdiaz: /* 4. Feladat */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==2013.06.06. vizsga megoldásai==&lt;br /&gt;
===1. Feladat===&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: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 b) 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.&lt;br /&gt;
Másképpen mondva: 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:keresztel_2.PNG]]&amp;lt;br&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
===2. Feladat===&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;
&#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;
todo &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;(&#039;&#039;Nem kérdezték, csak kieg.&#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;
todo &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;(&#039;&#039;Nem kérdezték, csak kieg.&#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;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;
todo &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
===3. Feladat===&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;
&#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;
todo &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;(&#039;&#039;Nem kérdezték, csak kieg.&#039;&#039;) Mi az a Kruskal algoritmus?&#039;&#039;&#039;&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;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;
todo &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
===4. Feladat===&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.&#039;&#039;&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
===5. Feladat===&lt;br /&gt;
TODO&lt;br /&gt;
===6. Feladat===&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.&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:2013_06_06_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;
&#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;
===7. Feladat===&lt;br /&gt;
TODO&lt;br /&gt;
===8. Feladat===&lt;br /&gt;
TODO&lt;/div&gt;</summary>
		<author><name>Subdiaz</name></author>
	</entry>
	<entry>
		<id>https://vik.wiki/index.php?title=Algoritmuselm%C3%A9let_-_Vizsga,_2013.06.06.&amp;diff=167462</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=167462"/>
		<updated>2013-06-07T15:09:11Z</updated>

		<summary type="html">&lt;p&gt;Subdiaz: /* 1. Feladat */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==2013.06.06. vizsga megoldásai==&lt;br /&gt;
===1. Feladat===&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: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 b) 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.&lt;br /&gt;
Másképpen mondva: 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:keresztel_2.PNG]]&amp;lt;br&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
===2. Feladat===&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;
&#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;
todo &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;(&#039;&#039;Nem kérdezték, csak kieg.&#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;
todo &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;(&#039;&#039;Nem kérdezték, csak kieg.&#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;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;
todo &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
===3. Feladat===&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;
&#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;
todo &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;(&#039;&#039;Nem kérdezték, csak kieg.&#039;&#039;) Mi az a Kruskal algoritmus?&#039;&#039;&#039;&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;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;
todo &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
===4. Feladat===&lt;br /&gt;
TODO&lt;br /&gt;
===5. Feladat===&lt;br /&gt;
TODO&lt;br /&gt;
===6. Feladat===&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.&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:2013_06_06_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;
&#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;
===7. Feladat===&lt;br /&gt;
TODO&lt;br /&gt;
===8. Feladat===&lt;br /&gt;
TODO&lt;/div&gt;</summary>
		<author><name>Subdiaz</name></author>
	</entry>
	<entry>
		<id>https://vik.wiki/index.php?title=Algoritmuselm%C3%A9let_-_Vizsga,_2013.06.06.&amp;diff=167461</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=167461"/>
		<updated>2013-06-07T15:05:21Z</updated>

		<summary type="html">&lt;p&gt;Subdiaz: /* 2. Feladat */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==2013.06.06. vizsga megoldásai==&lt;br /&gt;
===1. Feladat===&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?&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;
&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: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 b) 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.&lt;br /&gt;
Másképpen mondva: 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:keresztel_2.PNG]]&amp;lt;br&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
===2. Feladat===&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;
&#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;
todo &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;(&#039;&#039;Nem kérdezték, csak kieg.&#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;
todo &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;(&#039;&#039;Nem kérdezték, csak kieg.&#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;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;
todo &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
===3. Feladat===&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;
&#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;
todo &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;(&#039;&#039;Nem kérdezték, csak kieg.&#039;&#039;) Mi az a Kruskal algoritmus?&#039;&#039;&#039;&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;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;
todo &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
===4. Feladat===&lt;br /&gt;
TODO&lt;br /&gt;
===5. Feladat===&lt;br /&gt;
TODO&lt;br /&gt;
===6. Feladat===&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.&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:2013_06_06_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;
&#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;
===7. Feladat===&lt;br /&gt;
TODO&lt;br /&gt;
===8. Feladat===&lt;br /&gt;
TODO&lt;/div&gt;</summary>
		<author><name>Subdiaz</name></author>
	</entry>
	<entry>
		<id>https://vik.wiki/index.php?title=Algoritmuselm%C3%A9let_-_Vizsga,_2013.06.06.&amp;diff=167460</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=167460"/>
		<updated>2013-06-07T15:04:48Z</updated>

		<summary type="html">&lt;p&gt;Subdiaz: /* 3. Feladat */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==2013.06.06. vizsga megoldásai==&lt;br /&gt;
===1. Feladat===&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?&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;
&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: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 b) 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.&lt;br /&gt;
Másképpen mondva: 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:keresztel_2.PNG]]&amp;lt;br&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
===2. Feladat===&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;
&#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;
todo &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;(&#039;&#039;Nem kérdezték, csak kieg.&#039;&#039;) Mi az a nyitott címzésű hash-elés?&#039;&#039;&#039;&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;(&#039;&#039;Nem kérdezték, csak kieg.&#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;&lt;br /&gt;
todo &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;&lt;br /&gt;
todo &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
===3. Feladat===&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;
&#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;
todo &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;(&#039;&#039;Nem kérdezték, csak kieg.&#039;&#039;) Mi az a Kruskal algoritmus?&#039;&#039;&#039;&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;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;
todo &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
===4. Feladat===&lt;br /&gt;
TODO&lt;br /&gt;
===5. Feladat===&lt;br /&gt;
TODO&lt;br /&gt;
===6. Feladat===&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.&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:2013_06_06_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;
&#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;
===7. Feladat===&lt;br /&gt;
TODO&lt;br /&gt;
===8. Feladat===&lt;br /&gt;
TODO&lt;/div&gt;</summary>
		<author><name>Subdiaz</name></author>
	</entry>
	<entry>
		<id>https://vik.wiki/index.php?title=Algoritmuselm%C3%A9let_-_Vizsga,_2013.06.06.&amp;diff=167459</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=167459"/>
		<updated>2013-06-07T14:59:38Z</updated>

		<summary type="html">&lt;p&gt;Subdiaz: /* 2. Feladat */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==2013.06.06. vizsga megoldásai==&lt;br /&gt;
===1. Feladat===&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?&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;
&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: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 b) 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.&lt;br /&gt;
Másképpen mondva: 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:keresztel_2.PNG]]&amp;lt;br&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
===2. Feladat===&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;
&#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;
todo &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;(&#039;&#039;Nem kérdezték, csak kieg.&#039;&#039;) Mi az a nyitott címzésű hash-elés?&#039;&#039;&#039;&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;(&#039;&#039;Nem kérdezték, csak kieg.&#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;&lt;br /&gt;
todo &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;&lt;br /&gt;
todo &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
===3. Feladat===&lt;br /&gt;
TODO&lt;br /&gt;
===4. Feladat===&lt;br /&gt;
TODO&lt;br /&gt;
===5. Feladat===&lt;br /&gt;
TODO&lt;br /&gt;
===6. Feladat===&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.&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:2013_06_06_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;
&#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;
===7. Feladat===&lt;br /&gt;
TODO&lt;br /&gt;
===8. Feladat===&lt;br /&gt;
TODO&lt;/div&gt;</summary>
		<author><name>Subdiaz</name></author>
	</entry>
	<entry>
		<id>https://vik.wiki/index.php?title=Algoritmuselm%C3%A9let_-_Vizsga,_2013.06.06.&amp;diff=167458</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=167458"/>
		<updated>2013-06-07T14:57:55Z</updated>

		<summary type="html">&lt;p&gt;Subdiaz: /* 2. Feladat */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==2013.06.06. vizsga megoldásai==&lt;br /&gt;
===1. Feladat===&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?&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;
&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: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 b) 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.&lt;br /&gt;
Másképpen mondva: 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:keresztel_2.PNG]]&amp;lt;br&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
===2. Feladat===&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;
&#039;&#039;&#039;Nyitott címzésű hash-elés műveletei:&#039;&#039;&#039;&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;(&#039;&#039;Nem kérdezték, csak kieg.&#039;&#039;)Mi az a nyitott címzésű hash-elés?&#039;&#039;&#039;&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;(&#039;&#039;Nem kérdezték, csak kieg.&#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;&lt;br /&gt;
todo &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ésnél esetén kvadratikus maradék próbánál:&#039;&#039;&#039;&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;
}}&lt;br /&gt;
&lt;br /&gt;
===3. Feladat===&lt;br /&gt;
TODO&lt;br /&gt;
===4. Feladat===&lt;br /&gt;
TODO&lt;br /&gt;
===5. Feladat===&lt;br /&gt;
TODO&lt;br /&gt;
===6. Feladat===&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.&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:2013_06_06_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;
&#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;
===7. Feladat===&lt;br /&gt;
TODO&lt;br /&gt;
===8. Feladat===&lt;br /&gt;
TODO&lt;/div&gt;</summary>
		<author><name>Subdiaz</name></author>
	</entry>
	<entry>
		<id>https://vik.wiki/index.php?title=Fizika_II.&amp;diff=167088</id>
		<title>Fizika II.</title>
		<link rel="alternate" type="text/html" href="https://vik.wiki/index.php?title=Fizika_II.&amp;diff=167088"/>
		<updated>2013-06-01T22:37:01Z</updated>

		<summary type="html">&lt;p&gt;Subdiaz: /* Vizsga */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Tantárgy&lt;br /&gt;
|nev=Fizika 2i&lt;br /&gt;
|targykod=TE11AX04&lt;br /&gt;
|kredit=4&lt;br /&gt;
|felev=3&lt;br /&gt;
|kereszt=van&lt;br /&gt;
|tanszék= TTK Fizika Tanszék&lt;br /&gt;
|kiszh=6 db&lt;br /&gt;
|vizsga=írásbeli és szóbeli&lt;br /&gt;
|nagyzh=1 db&lt;br /&gt;
|hf= nincs&lt;br /&gt;
|szak=info&lt;br /&gt;
|tad=https://www.vik.bme.hu/kepzes/targyak/TE11AX04/&lt;br /&gt;
|targyhonlap=http://fizipedia.bme.hu/index.php/Fizika_2i_-_M%C3%A9rn%C3%B6k_informatikus_alapszak&lt;br /&gt;
|levlista=ifizika2@sch.bme.hu&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Követelmények==&lt;br /&gt;
&lt;br /&gt;
=== Előtanulmányi rend ===&lt;br /&gt;
&lt;br /&gt;
[[Fizika I.| Fizika 1i]] tárgyból kredit megszerzése szükséges a tárgy felvételéhez.&lt;br /&gt;
&lt;br /&gt;
=== A szorgalmi időszakban ===&lt;br /&gt;
*Az &#039;&#039;&#039;aláírás&#039;&#039;&#039; feltételei:&lt;br /&gt;
**A &#039;&#039;&#039;gyakorlatok&#039;&#039;&#039; legalább 70%-án való részvétel. (Előadáson van katalógus, de csak statisztikai céllal illetve megajánlott jegyhez.)&lt;br /&gt;
**A &#039;&#039;&#039;kisZH-k&#039;&#039;&#039; sikeres megírása. Ehhez a 6 db kisZH-ból a legjobb 5-nek az átlaga kell, hogy min. 40% legyen.&lt;br /&gt;
**A &#039;&#039;&#039;nagyZH&#039;&#039;&#039; sikeres (min. 40%) megírása. Számológép használható, függvénytábla egyenesen igen, kereszten nem.&lt;br /&gt;
*&#039;&#039;&#039;Megajánlott jegy:&#039;&#039;&#039; egyenesen van, követelményei változóak. Legutóbb 90% feletti nagyZH és KisZH-átlag illetve 70% előadásjelenlét kellett a megajánlott 5-öshöz. Kereszten nincs.&lt;br /&gt;
*&#039;&#039;&#039;Pótlási lehetőségek:&#039;&#039;&#039;&lt;br /&gt;
**A kisZH-k egyenként kereszten nem pótolhatóak, egyenesen egy külön alkalommal igen. &lt;br /&gt;
**A nagyZH egyszer félév közben pótolható, a pótZH anyaga megegyezik a nagyZH-éval.&lt;br /&gt;
**Ha a két ZH-típus közül az egyik nincs meg, akkor a pótlási héten pótpótZH (aláíráspótló) írható (különeljárási díj fejében), és az aláírás ezzel is megszerezhető. Ennek a ZH-nak az anyaga már az egész féléves anyag!&lt;br /&gt;
*&#039;&#039;&#039;Elővizsga:&#039;&#039;&#039; nincs.&lt;br /&gt;
&lt;br /&gt;
=== A vizsgaidőszakban ===&lt;br /&gt;
*&#039;&#039;&#039;Vizsga:&#039;&#039;&#039; két részből áll, írásbeli és szóbeli. Az írásbeli vizsga alapján egy megajánlott jegyet kapsz, minimum 40% kell az elégségeshez. Számológép használható, függvénytábla egyenesen igen, kereszten nem. Az írásbeli vizsgát szóbeli vizsga követheti. Elégtelen írásbeli vizsga szóbelivel nem javítható. Ha szóbelizel, a megajánlott jegyen javítani, de rontani is lehet. &lt;br /&gt;
**Előfeltétele: az aláírás megléte.&lt;br /&gt;
&lt;br /&gt;
=== Félévvégi jegy ===&lt;br /&gt;
*A ZH-k eredménye nem számít bele a a félévvégi jegybe, azt tisztán a vizsgaeredményre (V) kapod.&lt;br /&gt;
*Ponthatárok:&lt;br /&gt;
:{| class=&amp;quot;wikitable&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
!V (%) !! Jegy&lt;br /&gt;
|-&lt;br /&gt;
|0 - 39 || 1&lt;br /&gt;
|-&lt;br /&gt;
|40 - 55 || 2&lt;br /&gt;
|-&lt;br /&gt;
|55 - 65 || 3&lt;br /&gt;
|-&lt;br /&gt;
|65 - 80 || 4&lt;br /&gt;
|-&lt;br /&gt;
|80 - 100 || 5&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Tematika==&lt;br /&gt;
*Az előadás (3 óra/hét) az [[Alex Hudson - Rex Nelson: Útban a modern fizikához]] tankönyv fejezeteit követi. A gyakorlatokon (1 óra/hét) a tankönyvben szereplő feladatok alapján az előadásokon elhangzottak szemléltetésére és az ismeretek készségszintű begyakorlására kerül sor.&lt;br /&gt;
===Előadás===&lt;br /&gt;
[[Fizika_II.Tematika|Tematika]]&lt;br /&gt;
&lt;br /&gt;
===Gyakorlat===&lt;br /&gt;
Kiscsoportos (tanköri) foglalkozás. Témája az előadáson elhangzott tananyagnak feladatmegoldásokon keresztüli megértése és elmélyítése. A gyakorlatokon a [[Alex Hudson - Rex Nelson: Útban a modern fizikához| Hudson-Nelson]] könyvben lévő kidolgozott &amp;quot;Példák&amp;quot; és kiválasztott &amp;quot;Feladatok&amp;quot; szerepelnek:&lt;br /&gt;
* [[FizikaKonyvFeladatok32|32. fejezet]]: 1, 3, 4, 5, 7, 8, 11,.14, 15, 17, 18, 19, 23, 25, 28, 33, 35, 41, 45&lt;br /&gt;
* [[FizikaKonyvFeladatok33|33. fejezet]]: 1, 3, 4, 7, 9 &lt;br /&gt;
* [[FizikaKonyvFeladatok35|35. fejezet]]: 2, 4, 5, 8, 9, 11 .13, 15, 17, 18, 19, 21, 22, 25, 28, 30, 32&lt;br /&gt;
* [[FizikaKonyvFeladatok36|36. fejezet]]: 1, 3, 4, 5&lt;br /&gt;
* [[FizikaKonyvFeladatok37|37. fejezet]]: 2, 3, 6, 8, 9, 11, 13, 19, 22, 24, 26, 32, 38, 48, 56&lt;br /&gt;
* [[FizikaKonyvFeladatok38|38. fejezet]]: 3, 4, 8, 12, 15, 19, 20, 24, 27, 32, 41&lt;br /&gt;
* [[FizikaKonyvFeladatok39|39. fejezet]]: 1, 2, 4, 7, 10, 14, 18, 21, 25, 27, 28, 31, 40&lt;br /&gt;
* [[FizikaKonyvFeladatok40|40. fejezet]]: 2, 3, 7, 11, 13, 15, 24&lt;br /&gt;
* [[FizikaKonyvFeladatok42|42. fejezet]]: 1, 2, 4, 6, 7, 8, 10, 12, 15, 17, 19, 20, 22, 25, 33, 44&lt;br /&gt;
* [[FizikaKonyvFeladatok43|43. fejezet]]: 4, 6, 8, 10, 11, 14, 20, 23, 24, 25, 27, 29, 31, 36, 39&lt;br /&gt;
* [[FizikaKonyvFeladatok44|44. fejezet]]: 3, 5, 7, 8, 12, 14, 15, 18, 21, 22, 24, 26, 31, 36, 39&lt;br /&gt;
* [[FizikaKonyvFeladatok45|45. fejezet]]: 1, 2, 5, 7, 9, 12, 13, 14, 19, 20, 23, 25, 28, 32, 36, 40, 45&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Segédanyagok ==&lt;br /&gt;
*A tárgy előadásai és gyakorlatai a nagykönyv fejezeteit követik:&lt;br /&gt;
**[[Alex Hudson - Rex Nelson: Útban a modern fizikához]]&lt;br /&gt;
*[[VizsgaKepletTar|Vizsgán használható képletek]] (könnyen másolható, pl. feladatokhoz)&lt;br /&gt;
*[[Media:Fizika2i_KiskerdesekPacherALL.pdf | Kidolgozott (Pacher-féle) kiskérdések]]&lt;br /&gt;
*[[Media:Fizika2i_kifkerdesek_kidolgozva.pdf | Régebbi keresztes kifejtős kérdések kidolgozva]], nagyrészt órai jegyzetből (by Bálint Ferenc, Surman Dénes, Tóth Anett) &lt;br /&gt;
*[[Fizika 2i 2009-es gyakorlatanyag | 2009-es gyakorlatjegyzet]] (Vannak benne hibák!)&lt;br /&gt;
*[[Media:Fizika2i_eloadasjegyzet2008_v0.7.pdf | 2008-as előadásjegyzet]] (v.0.7.) Dr. Varga Gábor előadásai alapján. (Készítette Kőrösi Tamás, Kántor Tibor, Kiss Dávid - DicsőHetek Jegyzettár)&lt;br /&gt;
*[[Media:Fizika2i_jegyzet_csakgyak.pdf | 2007-es keresztféléves gyakorlatjegyzet]]&lt;br /&gt;
*2007 őszi, Dr. Pacher Pál 2. ZH utáni előadásainak diái:&lt;br /&gt;
**[[Media:Fizika2i_pacherea2007_valtakozo_aramu_aramkorok.pdf |Váltakozó áramú áramkörök]]&lt;br /&gt;
**[[Media:Fizika2i_pacherea2007_hullamtermeszet.pdf |Részecskék hullámtermészete]]&lt;br /&gt;
**[[Media:Fizika2i_pacherea2007_altalanos_relativitaselmelet.pdf |Általános relativitáselmélet]]&lt;br /&gt;
**[[Media:Fizika2i_pacherea2007_spec_rel.pdf |A speciális relativitáselmélet]]&lt;br /&gt;
**[[Media:Fizika2i_pacherea2007_szilfizbev.pdf |Bevezetés a szilárdtest-fizikába 1.]]&lt;br /&gt;
**[[Media:Fizika2i_pacherea2007_szilfizbev2.pdf |Bevezetés a szilárdtest-fizikába 2.]]&lt;br /&gt;
**[[Media:Fizika2i_pacherea2007_atomfizika.pdf |Atomfizika]]&lt;br /&gt;
**[[Media:Fizika2i_pacherea2007_kvantum_statisztika.pdf |Azonos részecskékből álló rendszerek, kvantumstatisztikák]]&lt;br /&gt;
**[[Media:Fizika2i_pacherea2007_kvantumos.pdf |A sugárzás kvantumos természete]]&lt;br /&gt;
&lt;br /&gt;
==Kikérdező==&lt;br /&gt;
*[[Fizika 2i Igaz-hamis kikérdező | Igaz-hamis]]&lt;br /&gt;
&lt;br /&gt;
==KisZH-k==&lt;br /&gt;
*[[Fizika_2i_KisZH-k_2013_tavasz | 2012-13 tavasz (kereszt)]]&lt;br /&gt;
*[[Fizika_2i_KisZH-k_2011_ősz | 2011-12 ősz]]&lt;br /&gt;
&lt;br /&gt;
==NagyZH ==&lt;br /&gt;
*Előző évek ZH-i:&lt;br /&gt;
**2010-2011 tavasz (kereszt)&lt;br /&gt;
***[[Media:Fizika2i-2011tavasz-zh1mego.pdf | ZH feladatsor megoldással]] és [[Media:Fizika2i-2011tavasz-zh1.pdf |megoldás nélkül]]&lt;br /&gt;
**2008-2009 tavasz (kereszt)&lt;br /&gt;
***[[Media:Fizika2i_2009tavasz_zh1.pdf | 1. ZH feladatsor]] (Csak a számpéldák!)&lt;br /&gt;
***[[Media:Fizika2i_2009tavasz_zh2.pdf | 2. ZH feladatsor]]&lt;br /&gt;
***[[Fizika2PPZH20090520 | PótpótZH feladatsor]]&lt;br /&gt;
**2008-2009 ősz&lt;br /&gt;
***[[Media:Fizika2i_2008osz_zh2_mego.pdf | 2. ZH számolós feladatai megoldással]]&lt;br /&gt;
**2007-2008 tavasz (kereszt)&lt;br /&gt;
***[[VargaZH2008 | 1. ZH feladatsor megoldással]]&lt;br /&gt;
***[[VargaZH20080429 | 2. ZH feladatsor megoldással]]&lt;br /&gt;
**2007-2008 ősz&lt;br /&gt;
***[[Media:Fizika2i_ZH2_2007osz.jpg | 2. ZH feladatsor]]&lt;br /&gt;
**2006&lt;br /&gt;
***[[Fizika2HianyosMondatok|Elméleti rész - hiányos mondatok]]&lt;br /&gt;
***[[Fizika2Kifejtendo|Elméleti rész - kifejtendő kérdések]]&lt;br /&gt;
***[[Fizika2Feladatok|Gyakorlati rész - feladatok]]&lt;br /&gt;
&lt;br /&gt;
==Vizsga==&lt;br /&gt;
*[[Media:Fizika_2i_igazhamis.pdf | Igaz-hamis feladatgyűjtemény]]&lt;br /&gt;
*[[Fizika2KiegeszitosGyujtemeny|Kiegészítős feladatgyűjtemény]]&lt;br /&gt;
*[[Media:Fizika_2i_keresztvizsga.pdf|Keresztféléves feladatgyűjtemény]] és a legtöbb feladat [[Media:Fizika_2i_keresztvizsga_mo.pdf|megoldása]]&lt;br /&gt;
*Előző évek vizsgái:&lt;br /&gt;
**2012-13 tavasz (kereszt)&lt;br /&gt;
***[[Media:Fizika2i_vizsga_20130531.pdf | 2013.05.31]]&lt;br /&gt;
****[[Media:Fizika2i_vizsga_20130531_megjegyzes.pdf‎ | megjegyzés]]&lt;br /&gt;
**2010-11 tavasz (kereszt)&lt;br /&gt;
***[[Fizika2Vizsga20110603|2011.06.03.]]&lt;br /&gt;
***[[Fizika2Vizsga20110527|2011.05.27]]&lt;br /&gt;
**2010-11 ősz&lt;br /&gt;
***[[Fizika2Vizsga20110113|2011.01.13.]]&lt;br /&gt;
**2009-10 ősz&lt;br /&gt;
***[[Fizika 2, 2010. január 21-e vizsga|2010.01.21.]]&lt;br /&gt;
***[[Media:Fizika2i_vizsga_20100114.pdf | 2010.01.14]]&lt;br /&gt;
***[[Media:Fizika2i_vizsga_20101223.pdf | 2010.12.23]]&lt;br /&gt;
**2008-09 tavasz (kereszt)&lt;br /&gt;
***[[Fizika2Vizsga20090605|2009.06.05.]]&lt;br /&gt;
***[[Fizika2Vizsga20090529|2009.05.29.]]&lt;br /&gt;
**2008-09 ősz&lt;br /&gt;
***[[Fizika2Vizsga20090121|2009.01.21.]]&lt;br /&gt;
**2007-08 tavasz (kereszt)&lt;br /&gt;
***[[Fizika2Vizsga20080613|2008.06.13.]]&lt;br /&gt;
***[[Fizika2Vizsga20080606|2008.06.06.]]&lt;br /&gt;
***[[Fizika2Vizsga20080528|2008.05.28.]]&lt;br /&gt;
**2007-08 ősz&lt;br /&gt;
***[[Media:Fizika2i_vizsga_20080117.pdf | 2008.01.17]]&lt;br /&gt;
&lt;br /&gt;
==Angol kurzus (Bokor Nándor)==&lt;br /&gt;
*[[Angfiz2Elmelet|elméleti kérdések]] - fizika1 + fizika2&lt;br /&gt;
===Vizsga===&lt;br /&gt;
*[[Angfiz2Vizsga2007|2. Vizsga 2007]] &lt;br /&gt;
*[[Angfiz2Vizsga2002|Vizsga 2002.06.14]] - elmélet&lt;br /&gt;
*[[Angfiz2Vizsga2002e|Vizsga 2002/05/24]] - elmélet&lt;br /&gt;
&lt;br /&gt;
==Kedvcsináló==&lt;br /&gt;
===Koza===&lt;br /&gt;
Érdemes az előadást Kornisnál felvenni, zh-knál, vizsgáknál elég jószívű. Év elején soha nem mondják, de az előadásokon való jelenlét ér valami bónuszt, így megéri legalább 5-6 előadásra bemenni még év elején. (Negatívum nem érhet az óra nem látogatásából). ZH és vizsga előtt érdemes ránézni a fizipédiára, sose tudhatja az ember mi lesz ismerős másnap számonkérésen.&amp;lt;br /&amp;gt;&lt;br /&gt;
-- [[Szerkesztő:Kiskoza|Koza]]&lt;br /&gt;
&lt;br /&gt;
===Masa===&lt;br /&gt;
* Kis JAVA programok segítségével szimulálhatjuk a kísérleteket:&lt;br /&gt;
* [http://www.walter-fendt.de/ph14hu/index.html weblap] (neten találtam, szerintem nagy segítség.) &amp;lt;br /&amp;gt;&lt;br /&gt;
-- [[SomogyiPeter13|Masa]] - 2010.05.25.&lt;br /&gt;
&lt;br /&gt;
==Kapcsolódó tárgyak==&lt;br /&gt;
===Előkövetelmény===&lt;br /&gt;
*[[Fizika I.]]: kredit megszerzése szükséges a tárgy felvételéhez.&lt;br /&gt;
===Ráépülő===&lt;br /&gt;
*[[Elektronika]]: leghamarabb a tárggyal együtt vehető fel.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=OLD=&lt;br /&gt;
{{Elavult}}&lt;br /&gt;
== Egyéb ==&lt;br /&gt;
Ezeket nem lenne szabad hagyni, hogy elvesszen, de nem most fogom rendberakni:&lt;br /&gt;
* [[Fizika_C2i_keresztfélév_Varga_féle_kurzus]]&lt;br /&gt;
[[Category:Infoalap]]&lt;/div&gt;</summary>
		<author><name>Subdiaz</name></author>
	</entry>
	<entry>
		<id>https://vik.wiki/index.php?title=Fizika_II.&amp;diff=167086</id>
		<title>Fizika II.</title>
		<link rel="alternate" type="text/html" href="https://vik.wiki/index.php?title=Fizika_II.&amp;diff=167086"/>
		<updated>2013-06-01T22:36:40Z</updated>

		<summary type="html">&lt;p&gt;Subdiaz: /* Vizsga */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Tantárgy&lt;br /&gt;
|nev=Fizika 2i&lt;br /&gt;
|targykod=TE11AX04&lt;br /&gt;
|kredit=4&lt;br /&gt;
|felev=3&lt;br /&gt;
|kereszt=van&lt;br /&gt;
|tanszék= TTK Fizika Tanszék&lt;br /&gt;
|kiszh=6 db&lt;br /&gt;
|vizsga=írásbeli és szóbeli&lt;br /&gt;
|nagyzh=1 db&lt;br /&gt;
|hf= nincs&lt;br /&gt;
|szak=info&lt;br /&gt;
|tad=https://www.vik.bme.hu/kepzes/targyak/TE11AX04/&lt;br /&gt;
|targyhonlap=http://fizipedia.bme.hu/index.php/Fizika_2i_-_M%C3%A9rn%C3%B6k_informatikus_alapszak&lt;br /&gt;
|levlista=ifizika2@sch.bme.hu&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Követelmények==&lt;br /&gt;
&lt;br /&gt;
=== Előtanulmányi rend ===&lt;br /&gt;
&lt;br /&gt;
[[Fizika I.| Fizika 1i]] tárgyból kredit megszerzése szükséges a tárgy felvételéhez.&lt;br /&gt;
&lt;br /&gt;
=== A szorgalmi időszakban ===&lt;br /&gt;
*Az &#039;&#039;&#039;aláírás&#039;&#039;&#039; feltételei:&lt;br /&gt;
**A &#039;&#039;&#039;gyakorlatok&#039;&#039;&#039; legalább 70%-án való részvétel. (Előadáson van katalógus, de csak statisztikai céllal illetve megajánlott jegyhez.)&lt;br /&gt;
**A &#039;&#039;&#039;kisZH-k&#039;&#039;&#039; sikeres megírása. Ehhez a 6 db kisZH-ból a legjobb 5-nek az átlaga kell, hogy min. 40% legyen.&lt;br /&gt;
**A &#039;&#039;&#039;nagyZH&#039;&#039;&#039; sikeres (min. 40%) megírása. Számológép használható, függvénytábla egyenesen igen, kereszten nem.&lt;br /&gt;
*&#039;&#039;&#039;Megajánlott jegy:&#039;&#039;&#039; egyenesen van, követelményei változóak. Legutóbb 90% feletti nagyZH és KisZH-átlag illetve 70% előadásjelenlét kellett a megajánlott 5-öshöz. Kereszten nincs.&lt;br /&gt;
*&#039;&#039;&#039;Pótlási lehetőségek:&#039;&#039;&#039;&lt;br /&gt;
**A kisZH-k egyenként kereszten nem pótolhatóak, egyenesen egy külön alkalommal igen. &lt;br /&gt;
**A nagyZH egyszer félév közben pótolható, a pótZH anyaga megegyezik a nagyZH-éval.&lt;br /&gt;
**Ha a két ZH-típus közül az egyik nincs meg, akkor a pótlási héten pótpótZH (aláíráspótló) írható (különeljárási díj fejében), és az aláírás ezzel is megszerezhető. Ennek a ZH-nak az anyaga már az egész féléves anyag!&lt;br /&gt;
*&#039;&#039;&#039;Elővizsga:&#039;&#039;&#039; nincs.&lt;br /&gt;
&lt;br /&gt;
=== A vizsgaidőszakban ===&lt;br /&gt;
*&#039;&#039;&#039;Vizsga:&#039;&#039;&#039; két részből áll, írásbeli és szóbeli. Az írásbeli vizsga alapján egy megajánlott jegyet kapsz, minimum 40% kell az elégségeshez. Számológép használható, függvénytábla egyenesen igen, kereszten nem. Az írásbeli vizsgát szóbeli vizsga követheti. Elégtelen írásbeli vizsga szóbelivel nem javítható. Ha szóbelizel, a megajánlott jegyen javítani, de rontani is lehet. &lt;br /&gt;
**Előfeltétele: az aláírás megléte.&lt;br /&gt;
&lt;br /&gt;
=== Félévvégi jegy ===&lt;br /&gt;
*A ZH-k eredménye nem számít bele a a félévvégi jegybe, azt tisztán a vizsgaeredményre (V) kapod.&lt;br /&gt;
*Ponthatárok:&lt;br /&gt;
:{| class=&amp;quot;wikitable&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
!V (%) !! Jegy&lt;br /&gt;
|-&lt;br /&gt;
|0 - 39 || 1&lt;br /&gt;
|-&lt;br /&gt;
|40 - 55 || 2&lt;br /&gt;
|-&lt;br /&gt;
|55 - 65 || 3&lt;br /&gt;
|-&lt;br /&gt;
|65 - 80 || 4&lt;br /&gt;
|-&lt;br /&gt;
|80 - 100 || 5&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Tematika==&lt;br /&gt;
*Az előadás (3 óra/hét) az [[Alex Hudson - Rex Nelson: Útban a modern fizikához]] tankönyv fejezeteit követi. A gyakorlatokon (1 óra/hét) a tankönyvben szereplő feladatok alapján az előadásokon elhangzottak szemléltetésére és az ismeretek készségszintű begyakorlására kerül sor.&lt;br /&gt;
===Előadás===&lt;br /&gt;
[[Fizika_II.Tematika|Tematika]]&lt;br /&gt;
&lt;br /&gt;
===Gyakorlat===&lt;br /&gt;
Kiscsoportos (tanköri) foglalkozás. Témája az előadáson elhangzott tananyagnak feladatmegoldásokon keresztüli megértése és elmélyítése. A gyakorlatokon a [[Alex Hudson - Rex Nelson: Útban a modern fizikához| Hudson-Nelson]] könyvben lévő kidolgozott &amp;quot;Példák&amp;quot; és kiválasztott &amp;quot;Feladatok&amp;quot; szerepelnek:&lt;br /&gt;
* [[FizikaKonyvFeladatok32|32. fejezet]]: 1, 3, 4, 5, 7, 8, 11,.14, 15, 17, 18, 19, 23, 25, 28, 33, 35, 41, 45&lt;br /&gt;
* [[FizikaKonyvFeladatok33|33. fejezet]]: 1, 3, 4, 7, 9 &lt;br /&gt;
* [[FizikaKonyvFeladatok35|35. fejezet]]: 2, 4, 5, 8, 9, 11 .13, 15, 17, 18, 19, 21, 22, 25, 28, 30, 32&lt;br /&gt;
* [[FizikaKonyvFeladatok36|36. fejezet]]: 1, 3, 4, 5&lt;br /&gt;
* [[FizikaKonyvFeladatok37|37. fejezet]]: 2, 3, 6, 8, 9, 11, 13, 19, 22, 24, 26, 32, 38, 48, 56&lt;br /&gt;
* [[FizikaKonyvFeladatok38|38. fejezet]]: 3, 4, 8, 12, 15, 19, 20, 24, 27, 32, 41&lt;br /&gt;
* [[FizikaKonyvFeladatok39|39. fejezet]]: 1, 2, 4, 7, 10, 14, 18, 21, 25, 27, 28, 31, 40&lt;br /&gt;
* [[FizikaKonyvFeladatok40|40. fejezet]]: 2, 3, 7, 11, 13, 15, 24&lt;br /&gt;
* [[FizikaKonyvFeladatok42|42. fejezet]]: 1, 2, 4, 6, 7, 8, 10, 12, 15, 17, 19, 20, 22, 25, 33, 44&lt;br /&gt;
* [[FizikaKonyvFeladatok43|43. fejezet]]: 4, 6, 8, 10, 11, 14, 20, 23, 24, 25, 27, 29, 31, 36, 39&lt;br /&gt;
* [[FizikaKonyvFeladatok44|44. fejezet]]: 3, 5, 7, 8, 12, 14, 15, 18, 21, 22, 24, 26, 31, 36, 39&lt;br /&gt;
* [[FizikaKonyvFeladatok45|45. fejezet]]: 1, 2, 5, 7, 9, 12, 13, 14, 19, 20, 23, 25, 28, 32, 36, 40, 45&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Segédanyagok ==&lt;br /&gt;
*A tárgy előadásai és gyakorlatai a nagykönyv fejezeteit követik:&lt;br /&gt;
**[[Alex Hudson - Rex Nelson: Útban a modern fizikához]]&lt;br /&gt;
*[[VizsgaKepletTar|Vizsgán használható képletek]] (könnyen másolható, pl. feladatokhoz)&lt;br /&gt;
*[[Media:Fizika2i_KiskerdesekPacherALL.pdf | Kidolgozott (Pacher-féle) kiskérdések]]&lt;br /&gt;
*[[Media:Fizika2i_kifkerdesek_kidolgozva.pdf | Régebbi keresztes kifejtős kérdések kidolgozva]], nagyrészt órai jegyzetből (by Bálint Ferenc, Surman Dénes, Tóth Anett) &lt;br /&gt;
*[[Fizika 2i 2009-es gyakorlatanyag | 2009-es gyakorlatjegyzet]] (Vannak benne hibák!)&lt;br /&gt;
*[[Media:Fizika2i_eloadasjegyzet2008_v0.7.pdf | 2008-as előadásjegyzet]] (v.0.7.) Dr. Varga Gábor előadásai alapján. (Készítette Kőrösi Tamás, Kántor Tibor, Kiss Dávid - DicsőHetek Jegyzettár)&lt;br /&gt;
*[[Media:Fizika2i_jegyzet_csakgyak.pdf | 2007-es keresztféléves gyakorlatjegyzet]]&lt;br /&gt;
*2007 őszi, Dr. Pacher Pál 2. ZH utáni előadásainak diái:&lt;br /&gt;
**[[Media:Fizika2i_pacherea2007_valtakozo_aramu_aramkorok.pdf |Váltakozó áramú áramkörök]]&lt;br /&gt;
**[[Media:Fizika2i_pacherea2007_hullamtermeszet.pdf |Részecskék hullámtermészete]]&lt;br /&gt;
**[[Media:Fizika2i_pacherea2007_altalanos_relativitaselmelet.pdf |Általános relativitáselmélet]]&lt;br /&gt;
**[[Media:Fizika2i_pacherea2007_spec_rel.pdf |A speciális relativitáselmélet]]&lt;br /&gt;
**[[Media:Fizika2i_pacherea2007_szilfizbev.pdf |Bevezetés a szilárdtest-fizikába 1.]]&lt;br /&gt;
**[[Media:Fizika2i_pacherea2007_szilfizbev2.pdf |Bevezetés a szilárdtest-fizikába 2.]]&lt;br /&gt;
**[[Media:Fizika2i_pacherea2007_atomfizika.pdf |Atomfizika]]&lt;br /&gt;
**[[Media:Fizika2i_pacherea2007_kvantum_statisztika.pdf |Azonos részecskékből álló rendszerek, kvantumstatisztikák]]&lt;br /&gt;
**[[Media:Fizika2i_pacherea2007_kvantumos.pdf |A sugárzás kvantumos természete]]&lt;br /&gt;
&lt;br /&gt;
==Kikérdező==&lt;br /&gt;
*[[Fizika 2i Igaz-hamis kikérdező | Igaz-hamis]]&lt;br /&gt;
&lt;br /&gt;
==KisZH-k==&lt;br /&gt;
*[[Fizika_2i_KisZH-k_2013_tavasz | 2012-13 tavasz (kereszt)]]&lt;br /&gt;
*[[Fizika_2i_KisZH-k_2011_ősz | 2011-12 ősz]]&lt;br /&gt;
&lt;br /&gt;
==NagyZH ==&lt;br /&gt;
*Előző évek ZH-i:&lt;br /&gt;
**2010-2011 tavasz (kereszt)&lt;br /&gt;
***[[Media:Fizika2i-2011tavasz-zh1mego.pdf | ZH feladatsor megoldással]] és [[Media:Fizika2i-2011tavasz-zh1.pdf |megoldás nélkül]]&lt;br /&gt;
**2008-2009 tavasz (kereszt)&lt;br /&gt;
***[[Media:Fizika2i_2009tavasz_zh1.pdf | 1. ZH feladatsor]] (Csak a számpéldák!)&lt;br /&gt;
***[[Media:Fizika2i_2009tavasz_zh2.pdf | 2. ZH feladatsor]]&lt;br /&gt;
***[[Fizika2PPZH20090520 | PótpótZH feladatsor]]&lt;br /&gt;
**2008-2009 ősz&lt;br /&gt;
***[[Media:Fizika2i_2008osz_zh2_mego.pdf | 2. ZH számolós feladatai megoldással]]&lt;br /&gt;
**2007-2008 tavasz (kereszt)&lt;br /&gt;
***[[VargaZH2008 | 1. ZH feladatsor megoldással]]&lt;br /&gt;
***[[VargaZH20080429 | 2. ZH feladatsor megoldással]]&lt;br /&gt;
**2007-2008 ősz&lt;br /&gt;
***[[Media:Fizika2i_ZH2_2007osz.jpg | 2. ZH feladatsor]]&lt;br /&gt;
**2006&lt;br /&gt;
***[[Fizika2HianyosMondatok|Elméleti rész - hiányos mondatok]]&lt;br /&gt;
***[[Fizika2Kifejtendo|Elméleti rész - kifejtendő kérdések]]&lt;br /&gt;
***[[Fizika2Feladatok|Gyakorlati rész - feladatok]]&lt;br /&gt;
&lt;br /&gt;
==Vizsga==&lt;br /&gt;
*[[Media:Fizika_2i_igazhamis.pdf | Igaz-hamis feladatgyűjtemény]]&lt;br /&gt;
*[[Fizika2KiegeszitosGyujtemeny|Kiegészítős feladatgyűjtemény]]&lt;br /&gt;
*[[Media:Fizika_2i_keresztvizsga.pdf|Keresztféléves feladatgyűjtemény]] és a legtöbb feladat [[Media:Fizika_2i_keresztvizsga_mo.pdf|megoldása]]&lt;br /&gt;
*Előző évek vizsgái:&lt;br /&gt;
**2012-13 tavasz (kereszt)&lt;br /&gt;
***[[Media:Fizika2i_vizsga_20130531.pdf | 2013.05.31]]&lt;br /&gt;
*****[[Media:Fizika2i_vizsga_20130531_megjegyzes.pdf‎ | megjegyzés]]&lt;br /&gt;
**2010-11 tavasz (kereszt)&lt;br /&gt;
***[[Fizika2Vizsga20110603|2011.06.03.]]&lt;br /&gt;
***[[Fizika2Vizsga20110527|2011.05.27]]&lt;br /&gt;
**2010-11 ősz&lt;br /&gt;
***[[Fizika2Vizsga20110113|2011.01.13.]]&lt;br /&gt;
**2009-10 ősz&lt;br /&gt;
***[[Fizika 2, 2010. január 21-e vizsga|2010.01.21.]]&lt;br /&gt;
***[[Media:Fizika2i_vizsga_20100114.pdf | 2010.01.14]]&lt;br /&gt;
***[[Media:Fizika2i_vizsga_20101223.pdf | 2010.12.23]]&lt;br /&gt;
**2008-09 tavasz (kereszt)&lt;br /&gt;
***[[Fizika2Vizsga20090605|2009.06.05.]]&lt;br /&gt;
***[[Fizika2Vizsga20090529|2009.05.29.]]&lt;br /&gt;
**2008-09 ősz&lt;br /&gt;
***[[Fizika2Vizsga20090121|2009.01.21.]]&lt;br /&gt;
**2007-08 tavasz (kereszt)&lt;br /&gt;
***[[Fizika2Vizsga20080613|2008.06.13.]]&lt;br /&gt;
***[[Fizika2Vizsga20080606|2008.06.06.]]&lt;br /&gt;
***[[Fizika2Vizsga20080528|2008.05.28.]]&lt;br /&gt;
**2007-08 ősz&lt;br /&gt;
***[[Media:Fizika2i_vizsga_20080117.pdf | 2008.01.17]]&lt;br /&gt;
&lt;br /&gt;
==Angol kurzus (Bokor Nándor)==&lt;br /&gt;
*[[Angfiz2Elmelet|elméleti kérdések]] - fizika1 + fizika2&lt;br /&gt;
===Vizsga===&lt;br /&gt;
*[[Angfiz2Vizsga2007|2. Vizsga 2007]] &lt;br /&gt;
*[[Angfiz2Vizsga2002|Vizsga 2002.06.14]] - elmélet&lt;br /&gt;
*[[Angfiz2Vizsga2002e|Vizsga 2002/05/24]] - elmélet&lt;br /&gt;
&lt;br /&gt;
==Kedvcsináló==&lt;br /&gt;
===Koza===&lt;br /&gt;
Érdemes az előadást Kornisnál felvenni, zh-knál, vizsgáknál elég jószívű. Év elején soha nem mondják, de az előadásokon való jelenlét ér valami bónuszt, így megéri legalább 5-6 előadásra bemenni még év elején. (Negatívum nem érhet az óra nem látogatásából). ZH és vizsga előtt érdemes ránézni a fizipédiára, sose tudhatja az ember mi lesz ismerős másnap számonkérésen.&amp;lt;br /&amp;gt;&lt;br /&gt;
-- [[Szerkesztő:Kiskoza|Koza]]&lt;br /&gt;
&lt;br /&gt;
===Masa===&lt;br /&gt;
* Kis JAVA programok segítségével szimulálhatjuk a kísérleteket:&lt;br /&gt;
* [http://www.walter-fendt.de/ph14hu/index.html weblap] (neten találtam, szerintem nagy segítség.) &amp;lt;br /&amp;gt;&lt;br /&gt;
-- [[SomogyiPeter13|Masa]] - 2010.05.25.&lt;br /&gt;
&lt;br /&gt;
==Kapcsolódó tárgyak==&lt;br /&gt;
===Előkövetelmény===&lt;br /&gt;
*[[Fizika I.]]: kredit megszerzése szükséges a tárgy felvételéhez.&lt;br /&gt;
===Ráépülő===&lt;br /&gt;
*[[Elektronika]]: leghamarabb a tárggyal együtt vehető fel.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=OLD=&lt;br /&gt;
{{Elavult}}&lt;br /&gt;
== Egyéb ==&lt;br /&gt;
Ezeket nem lenne szabad hagyni, hogy elvesszen, de nem most fogom rendberakni:&lt;br /&gt;
* [[Fizika_C2i_keresztfélév_Varga_féle_kurzus]]&lt;br /&gt;
[[Category:Infoalap]]&lt;/div&gt;</summary>
		<author><name>Subdiaz</name></author>
	</entry>
	<entry>
		<id>https://vik.wiki/index.php?title=F%C3%A1jl:Fizika2i_vizsga_20130531_megjegyzes.pdf&amp;diff=167082</id>
		<title>Fájl:Fizika2i vizsga 20130531 megjegyzes.pdf</title>
		<link rel="alternate" type="text/html" href="https://vik.wiki/index.php?title=F%C3%A1jl:Fizika2i_vizsga_20130531_megjegyzes.pdf&amp;diff=167082"/>
		<updated>2013-06-01T22:34:08Z</updated>

		<summary type="html">&lt;p&gt;Subdiaz: Néhány megjegyzés a 2013.05.31. vizsgával kapcsolatban.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Néhány megjegyzés a 2013.05.31. vizsgával kapcsolatban.&lt;/div&gt;</summary>
		<author><name>Subdiaz</name></author>
	</entry>
	<entry>
		<id>https://vik.wiki/index.php?title=Szociol%C3%B3gia&amp;diff=158117</id>
		<title>Szociológia</title>
		<link rel="alternate" type="text/html" href="https://vik.wiki/index.php?title=Szociol%C3%B3gia&amp;diff=158117"/>
		<updated>2013-02-15T22:18:38Z</updated>

		<summary type="html">&lt;p&gt;Subdiaz: /* Vélemények */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{GlobalTemplate|Gazdhuman|SzocioLogia}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Tárgyhonlap (2012 Tavasz): http://syi.hu/oktatas.html&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Előadó (2008 szept.): Szakadát István&amp;lt;br /&amp;gt;&lt;br /&gt;
Tanszék: BME Szociológia és Kommunikáció Tanszék&amp;lt;br /&amp;gt;&lt;br /&gt;
Tárgykövetelmények lapja: http://mokk.bme.hu/hallgato/cselekveselmelet&lt;br /&gt;
&lt;br /&gt;
Az előadáson nem volt katalógus. Két évközi ZH-t kell teljesíteni. A tananyagot egy, az előadó által írt könyvből lehet elsajátítani. A könyv ~250 oldalas, azaz ZH-nként ~125 oldalt kell elolvasnod. Az előző félévvel ellentétben ez az előadó kifejtős ZH-kat íratott (ami nyilván nehezebb, mint a feleletválasztós). Az első ZH-n főleg definíciók voltak, és 4-5 kérdést tartalmazott. Neptun kód alapján voltunk 4  csoportra bontva. Ehhez a ZH-hoz nem volt elég, ha csak egyszer átfutottad a jegyzetet, de sokkal több sem kellett hozzá. A második ZH anyaga már sokkal emberibb, és itt már tényleg elég volt egyszer elolvasni az anyagot.&lt;br /&gt;
&lt;br /&gt;
Előadó (2008 feb.): Csigó Péter&amp;lt;br /&amp;gt;&lt;br /&gt;
Tanszék: BME Szociológia és Kommunikáció Tanszék&amp;lt;br /&amp;gt;&lt;br /&gt;
Tárgykövetelmények lapja: http://mokk.bme.hu/bsc&lt;br /&gt;
&lt;br /&gt;
Az előadások anyaga mind felkerült a tárgy oldalára (http://mokk.bme.hu/bsc), katalógust nem vezettek. Az egyetlen ZH, amely a félévközi jegyet adta, 21 db. kérdésből állt ABCD lehetőségekkel, melynek egyik felét logikusan ki lehetett következtetni, másik felét pedig a kiadott segédanyagok teljes mértékben lefedték.&lt;br /&gt;
&lt;br /&gt;
SzociologiaZH2008majus8&lt;br /&gt;
&lt;br /&gt;
-- [[VeresSzentkiralyiAndras|dnet]] - 2008.05.26.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== régi zhk: &amp;lt;br /&amp;gt;==&lt;br /&gt;
	&amp;lt;a href=&amp;quot;%ATTACHURLPATH%/szoci1.jpg&amp;quot;&amp;gt;szoci1.jpg&amp;lt;/a&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
	&amp;lt;a href=&amp;quot;%ATTACHURLPATH%/szoci2.jpg&amp;quot;&amp;gt;szoci2.jpg&amp;lt;/a&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
	{{InLineFileLink|Gazdhuman|SzocioLogia|SzoczhA.doc|Kidolgozott ZH A csop}}&amp;lt;br&amp;gt;&lt;br /&gt;
	{{InLineFileLink|Gazdhuman|SzocioLogia|SzoczhB.doc|Kidolgozott ZH B csop}}&amp;lt;br&amp;gt;&lt;br /&gt;
	{{InLineFileLink|Gazdhuman|SzocioLogia|szociologia_eloadas_vazlatok.zip|előadás vázlat}}&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==első zh anyaga: &amp;lt;br /&amp;gt;==&lt;br /&gt;
	&amp;lt;a href=&amp;quot;%ATTACHURLPATH%/szoc.zip&amp;quot;&amp;gt;szoc.zip&amp;lt;/a&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Vélemények==&lt;br /&gt;
&lt;br /&gt;
===[[DonGatto|Liba]] - 2008.05.30.===&lt;br /&gt;
&lt;br /&gt;
Az első órán tömött heringpartiba torkollott tolakodás az ST kicsi termébe, ahol vagy 150 ember egymáson nyomorog a padok között, levegőt alig kapva. Csigó elöl áll és megszeppenve nézi az egybegyűlt tömeget és nagy meghatódottsággal néz végig rajtunk csürhén, valószínűleg tudva, hogy az évben ezen kívül csak egy alkalom lesz, ahol ennyien fogunk ülni az óráján, márpedig az évzáró zéhá. (igen, csak EGY zéhá volt.)&lt;br /&gt;
Az első óra csupán 40 percig tartott, aholis elmondta azt, amibe annyira nem is volt biztos, egy zéhá blabla, majd egy srác erősen körülírva rákérdezett arra, hogy mennyire lesz katalógus, és mivel a tömeg annyira nem figyelt, a tanárúr megismételte a kérdést:&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Tehát a kollega arra kíváncsi, hogy be kell-e járni az órára. A válasz NEM! Mindenkivel jobbat tesznek akkor, ha csak beszélgetni jönnének be. A tananyagot derítsék majd ki, és tisztelettel megkérem azokat, akik csak beszélgetni jönnének be, hogy NE tegyék.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Észrevétel teljesen jogos, a halk morajlás erőteljesebbé válik. Következő órán 15-20-an voltunk.&lt;br /&gt;
Akit érdekel a tárgy valamilyen szinten, egy kis kúltúrtágításnak tökéletes, én szerettem bejárni, érdekes volt. A könyvek amiket feladott, egész tűrhetőek, kicsit sok bennük a &amp;quot;felesleges&amp;quot; statisztikai adat, dehát mindenki tud scrollozni. ZH-n a 2 elolvasandó könyv (50-70 oldal darabonként (csak az egyiket olvastam)) egykét fogalmára meg statisztikai adatára kérdeznek rá :-)&lt;br /&gt;
Ha elég a négyes (ahogy nekem) neveket nem kell tudnod, a többi meg ragad, ha egyszer elolvasod. iq-ból is el lehet menni, az olyan 2-3. Megbukni nem nagyon lehet. (ha nem felejted el mikor van a zh :) de rákövetkező héten (utolsó) van pótlási/javítási lehetőség)&lt;br /&gt;
&lt;br /&gt;
Összességében tarisznyás kétkredit. És még érdekes is (szerintem). Érdekes témákról beszélgettünk órákon. Csak ajánlani tudom.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-- [[DonGatto|Liba]] - 2008.05.30.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===[[ismeretlen]] - 2013.02.15.===&lt;br /&gt;
Igazából megvárhatnám a félév végét, hogy akkor egy átfogóbb tapasztalatot osszak meg, de úgy érzem már most is szereztem olyan tapasztalatokat, ami hasznos lehet a későbbi tárgyfelvételek során, a döntések meghozatalában (hogy milyen tárgyat vegyünk vagy ne vegyünk fel). Ettől függetlenül remélem meglesz a tárgy, de másnak csak alapos megfontolás után ajánlanám, vagy még akkor se. Majd kiderül mennyire nehéz, elsőre ránézésre átlagos szabválnak tűnik, de amit eddig hallottam előadáson, az szerintem olyan élmény volt, amit ha más villamosmérnök / informatikus is hallana, sokuknak spontán agyvérzése / szívrohama lenne. Csak erős idegzetűeknek! Megtanuljuk hogy milyen fura dolog hogy a pénznek értéket tulajdonítunk pedig csak papír. Megtanuljuk hogy nem illik nők mellét fogdosni a villamoson. Megtanuljuk hogy 50-60 évvel ezelőtt a fiatalok szerettek az E épületben d...ni (így ezekkel a szavakkal), és még hasonló olyan dolgokat, ami 1) vagy nem érdekel senkit 2) vagy már két-három éves korunk óta tudjuk. De nem ez az ijesztő. Az ijesztő az, hogy van aki ilyen témákból írja a PhD-dolgozatát. Egy igazi villanyos fizika/matek szerű óra után beülni egy ilyenre nagyon furcsa érzés. Olyan mint egy nagy pofon, hogy örüljünk hogy villanyosok vagyunk, és új erőt ad az értelmes dolgok tanulásához :-) Talán ezért esetleg megéri felvenni, másért nem hiszem. Két kreditet nem ér egy szívroham.&lt;br /&gt;
&lt;br /&gt;
==2010. őszi félév==&lt;br /&gt;
A mióta 4 darab kifejtős kérdés van a zh-n azóta a kérdések nem sokat változtak. Lentebb a kidolgozásuk is megtalálható. Plusz infó: az előadó Zh közben általában nem tart nagy szigort.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* {{InLineFileLink|Gazdhuman|SzocioLogia|szoc.zip|szoc.zip}}: Első ZH anyaga&lt;br /&gt;
&lt;br /&gt;
* {{InLineFileLink|Gazdhuman|SzocioLogia|Szociolgia1Zhkidolozs.docx|Szociolgia1Zhkidolozs.docx}}: Szociológia 1. zh kidolgozva 2010 ősz&lt;br /&gt;
&lt;br /&gt;
%META:FORM{name=&amp;quot;GazdhumanForm&amp;quot;}%&lt;br /&gt;
%META:FIELD{name=&amp;quot;Trgy&amp;quot; title=&amp;quot;Tárgy&amp;quot; value=&amp;quot;Szociológia&amp;quot;}%&lt;br /&gt;
%META:FIELD{name=&amp;quot;Trgykd&amp;quot; title=&amp;quot;Tárgykód&amp;quot; value=&amp;quot;BMEGT43A002&amp;quot;}%&lt;br /&gt;
%META:FIELD{name=&amp;quot;Tanszk&amp;quot; title=&amp;quot;Tanszék&amp;quot; value=&amp;quot;Szociológia és Kommunikáció Tanszék&amp;quot;}%&lt;br /&gt;
%META:FIELD{name=&amp;quot;Elad&amp;quot; title=&amp;quot;Előadó&amp;quot; value=&amp;quot;Szakadát István dr.&amp;quot;}%&lt;br /&gt;
%META:FIELD{name=&amp;quot;Kreditszm&amp;quot; title=&amp;quot;Kreditszám&amp;quot; value=&amp;quot;2&amp;quot;}%&lt;br /&gt;
%META:FIELD{name=&amp;quot;raszm&amp;quot; title=&amp;quot;Óraszám&amp;quot; value=&amp;quot;2&amp;quot;}%&lt;br /&gt;
%META:FIELD{name=&amp;quot;Tmakr&amp;quot; title=&amp;quot;Témakör&amp;quot; value=&amp;quot;filozófia-szociológia-vallás&amp;quot;}%&lt;br /&gt;
%META:FIELD{name=&amp;quot;raijelenlt&amp;quot; title=&amp;quot;Órai jelenlét&amp;quot; value=&amp;quot;nem kötelező&amp;quot;}%&lt;br /&gt;
%META:FIELD{name=&amp;quot;Jegy&amp;quot; title=&amp;quot;Jegy&amp;quot; value=&amp;quot;zh&amp;quot;}%&lt;br /&gt;
%META:FIELD{name=&amp;quot;Elvrtmin.munka&amp;quot; title=&amp;quot;Elvárt min. munka&amp;quot; value=&amp;quot;semmi&amp;quot;}%&lt;br /&gt;
%META:FIELD{name=&amp;quot;Minimumrajrjegy&amp;quot; title=&amp;quot;Minimumra járó jegy&amp;quot; value=&amp;quot;3&amp;quot;}%&lt;br /&gt;
%META:FIELD{name=&amp;quot;Elvrtmax.munka&amp;quot; title=&amp;quot;Elvárt max. munka&amp;quot; value=&amp;quot;kis utánaolvasás - kis munka&amp;quot;}%&lt;br /&gt;
%META:FIELD{name=&amp;quot;Munkrajrjegy&amp;quot; title=&amp;quot;Munkára járó jegy&amp;quot; value=&amp;quot;5&amp;quot;}%&lt;br /&gt;
&lt;br /&gt;
[[Category:Gazdhuman]]&lt;/div&gt;</summary>
		<author><name>Subdiaz</name></author>
	</entry>
</feed>