<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="hu">
	<id>https://vik.wiki/index.php?action=history&amp;feed=atom&amp;title=InfElmTetel10</id>
	<title>InfElmTetel10 - Laptörténet</title>
	<link rel="self" type="application/atom+xml" href="https://vik.wiki/index.php?action=history&amp;feed=atom&amp;title=InfElmTetel10"/>
	<link rel="alternate" type="text/html" href="https://vik.wiki/index.php?title=InfElmTetel10&amp;action=history"/>
	<updated>2026-05-11T10:52:57Z</updated>
	<subtitle>Az oldal laptörténete a wikiben</subtitle>
	<generator>MediaWiki 1.43.8</generator>
	<entry>
		<id>https://vik.wiki/index.php?title=InfElmTetel10&amp;diff=137350&amp;oldid=prev</id>
		<title>Unknown user: Új oldal, tartalma: „{{GlobalTemplate|Infoalap|InfElmTetel10}}  vissza InfelmTetelek-hez &lt;style&gt; li {margin-top: 4px; margin-bottom: 4px;} &lt;/style&gt;  ==Huffman- és adaptív…”</title>
		<link rel="alternate" type="text/html" href="https://vik.wiki/index.php?title=InfElmTetel10&amp;diff=137350&amp;oldid=prev"/>
		<updated>2012-10-21T19:59:05Z</updated>

		<summary type="html">&lt;p&gt;Új oldal, tartalma: „{{GlobalTemplate|Infoalap|InfElmTetel10}}  &lt;a href=&quot;/InfElmVizsga&quot; class=&quot;mw-redirect&quot; title=&quot;InfElmVizsga&quot;&gt;vissza InfelmTetelek-hez&lt;/a&gt; &amp;lt;style&amp;gt; li {margin-top: 4px; margin-bottom: 4px;} &amp;lt;/style&amp;gt;  ==Huffman- és adaptív…”&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Új lap&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{GlobalTemplate|Infoalap|InfElmTetel10}}&lt;br /&gt;
&lt;br /&gt;
[[InfElmVizsga|vissza InfelmTetelek-hez]]&lt;br /&gt;
&amp;lt;style&amp;gt; li {margin-top: 4px; margin-bottom: 4px;} &amp;lt;/style&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Huffman- és adaptív Huffman kódolás==&lt;br /&gt;
&lt;br /&gt;
===Optimális kód tulajdonságai===&lt;br /&gt;
&lt;br /&gt;
Ha egy &amp;lt;math&amp;gt; f : \alpha\longmapsto \{0,1\}^* &amp;lt;/math&amp;gt; bináris prefix kód &amp;#039;&amp;#039;optimális&amp;#039;&amp;#039; akkor feltehetjük a következő három tulandoság teljesülését &lt;br /&gt;
(az &amp;lt;math&amp;gt; x_i \in \alpha &amp;lt;/math&amp;gt; forrásbetűket indexeljük valószínűségek szerint csökkenő sorrendben: &amp;lt;math&amp;gt; p(x_1) \geq p(x_2) \geq ... \geq p(x_n) &amp;lt;/math&amp;gt; )&lt;br /&gt;
&lt;br /&gt;
* A kisebb indexű, (tehát nagyobb valószínűségű) forrásbetűhöz rövidebb kódszó tartozik.&amp;lt;br&amp;gt;&lt;br /&gt;
* A két legkisebb valószínűségű forrásbetűhöz azonos hosszúságú kódszó tartozik.&amp;lt;br&amp;gt;&lt;br /&gt;
* A két legkisebb valószínűségű forrásbetűhöz tartozó kódszavak csak az utolsó bitben különböznek.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A fenti három tulandonság formálisan:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;math&amp;gt; |f(x_1)| \leq|f(x_2)| \leq... \leq|f(x_n)| &amp;lt;/math&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt; |f(x_{n-1})| = |f(x_n)| &amp;lt;/math&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt; f(x_{n-1}) f(x_n) &amp;lt;/math&amp;gt; csak az utolsó bitben különbözik.&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
===Huffman kód konstrukciója===&lt;br /&gt;
&lt;br /&gt;
====Ráhangolódás====&lt;br /&gt;
&lt;br /&gt;
Tekintsünk egy X valószínűségi változót, aminek az értékét optimálisan szeretnénk kódolni bináris prefix kóddal. A következő tétel rekurzív módszert ad ennek előállítására. Egy n lehetséges értékű eloszlás kódolását visszavezetjük egy n-1 lehetséges értékű eloszlás kódolására.&lt;br /&gt;
A tétel azt mondja ki, hogy ha X két legkisebb valószínűségű értékét összevonnánk, egy olyan értékké, aminek a valószínűsége a két összevont érték valószínűségének az összege, és az így kapott X&amp;#039; valószínűségi változóra találnánk optimális bináris prefix kódot, akkor ebben a kódban az imént összevont értékhez tartozó kódszót egy nullával illetve egy egyessel kiegészítve, és ezt a két kódszót a két összevont érték kódolására használnánk, akkor ez az eredeti X valószínűségi változó egy optimális bináris prefix kódja lenne.&lt;br /&gt;
&lt;br /&gt;
====Az algoritmus leírása====&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
====Tétel kimondása====&lt;br /&gt;
&lt;br /&gt;
Optimális bináris prefix kódot keresünk a &amp;lt;math&amp;gt; \{ p(x_1), p(x_2), ... , p(x_n) \} &amp;lt;/math&amp;gt; valószínűségi eloszláshoz. &lt;br /&gt;
&lt;br /&gt;
Tegyük fel, hogy&lt;br /&gt;
* a Huffman kód fenti feltételei teljesülnek, és&lt;br /&gt;
* az &amp;lt;math&amp;gt; \{ p(x_1), p(x_2), ... , p(x_{n-1}) + p(x_n) \} &amp;lt;/math&amp;gt; valószínűségi eloszláshoz ismert egy g optimális bináris prefix kód, (ahol az &amp;lt;math&amp;gt; x_{n-1} &amp;lt;/math&amp;gt; és &amp;lt;math&amp;gt; x_n &amp;lt;/math&amp;gt; forrásbetűket összevontuk egy &amp;lt;math&amp;gt; p(x_{n-1}) + p(x_n) &amp;lt;/math&amp;gt; valószínűségű &amp;lt;math&amp;gt; \bar{x}_{n-1} &amp;lt;/math&amp;gt; betűbe.&lt;br /&gt;
&lt;br /&gt;
ekkor a &amp;lt;math&amp;gt; g(\bar{x}_{n-1}) &amp;lt;/math&amp;gt; kódszót egy egyessel és egy nullával kiegészítve, a többi kódszót változatlanul hagyva az eredeti eloszlás egy optimális bináris prefix kódját kapjuk. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Adaptív Huffman kódolás===&lt;br /&gt;
&lt;br /&gt;
A Huffman kód konstruálásához ismernünk kell a forrásábécé eloszlását. Ha ez nem áll rendelkezésre, akkor a teljes kódolandó üzenetet végig kell olvasni először, és meg kell határozni a relatív gyakoriságokat, és utána ezeket felhasználva kezdődhet el a kódolás. Ez komoly késleltetést és kétszeri olvasást eredményez.&lt;br /&gt;
&lt;br /&gt;
A problémár az adaptív Huffman kód adja a megoldást: minden betűt az addig kódolt üzenetrészben számított relatív gyakoriságoknak megfelelő Huffman kóddal kódol, tehát a kódolási fát folyamatosan frissíteni kell.&lt;br /&gt;
&lt;br /&gt;
====Algoritmus====&lt;br /&gt;
&lt;br /&gt;
Az aktuális karaktert az aktuális kóddal kódoljuk, majd az adott forrás-karakter relatív gyakoriságát növelve javítunk a kódon. Az algoritmus:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Ismerjük a forrás szimbólumokat: &amp;lt;math&amp;gt; X = {a_1, \ldots, a_k}&amp;lt;/math&amp;gt;&lt;br /&gt;
* Építünk egy Huffman-fát, melyben minden szimbólum &amp;lt;math&amp;gt;1&amp;lt;/math&amp;gt; gyakorisággal szerepel&lt;br /&gt;
* Elküldjük a dekódolónak a forrás szimbólumokat, amiből ő is felépítheti a fát&lt;br /&gt;
* Beolvassuk a &amp;lt;math&amp;gt;k&amp;lt;/math&amp;gt;. szimbólumot, ezt a lokálisan optimális kódfával kódoljuk&lt;br /&gt;
* Növeljük a szimbólum gyakoriságát&lt;br /&gt;
* Aktualizáljuk a fát:&amp;lt;BR&amp;gt;&lt;br /&gt;
** Megvizsgáljuk teljesül-e a testvérpár tulajdonság. (*)&amp;lt;BR&amp;gt;&lt;br /&gt;
** Ha nem, helyreállítjuk:&amp;lt;BR&amp;gt;&lt;br /&gt;
*** Két azonos súlyú csúcs a részfáikkal együtt megcserélhető&amp;lt;BR&amp;gt;&lt;br /&gt;
*** Két levél a súlyukkal együtt megcserélhető&amp;lt;BR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
(*) Testvérpár tulajdonság:&amp;lt;BR&amp;gt;&lt;br /&gt;
Ha a fa közös szülővel rendelkező pontpárjait a gyökértől a levelek felé fel tudjuk sorolni súlyuk szerint &amp;#039;&amp;#039;&amp;#039;nem növekvő&amp;#039;&amp;#039;&amp;#039; sorrendben akkor a Huffman fa optimális.&amp;lt;BR&amp;gt;&lt;br /&gt;
Lásd. Tk. 25-26 oldalán a példa.&lt;br /&gt;
&lt;br /&gt;
-- [[SzelessZoltanTamas|Sales]] - 2006.06.23.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Infoalap]]&lt;/div&gt;</summary>
		<author><name>Unknown user</name></author>
	</entry>
</feed>