Kezdőoldal » Számítástechnika » Programozás » Sardinas-Patterson algoritmus...

Sardinas-Patterson algoritmus működését valaki el tudja nekem magyarázni?

Figyelt kérdés
Ha le tudna vezetni valaki egy feladatot lépésről lépésre magyarázva, annak nagyon nagy hasznát tudnám venni. Előre is köszönöm!

#Sardinas #Sardinas-Patterson
2015. jan. 26. 18:52
 1/2 anonim ***** válasza:
100%

Az algoritmus leírása:

[link]


Hogy megértsd az algoritmust, a N⁻¹*D jelentését kéne először megérteni:

Azokat a D-ben lévő kódszavakat keressük, amiknek van prefixuma N-ben, és akkor a megoldás halmazba bekerül a kódszó a prefixum nélkül. Tehát ha van egy "y=xw" kódszó D-ben, ahol az "x" egy kódszó N-ben akkor "w" egy kódszó lesz N⁻¹*D-ben.

Például ha D-ben van olyan hogy 11000 és N-ben van olyan hogy 110, akkor N⁻¹*D-be bekerül a 00, mert "110"+"00"="11000".


Wikiről a példa:

A kódszavak listája C = {1, 011, 01110, 1110, 10011}


"e" üres kódszót jelent, tehát a szó önmaga prefixum is volt. Akkor van vége ha Sᵢ tartalmaz üres kódszót, vagy végtelen ciklusba keveredsz.


S₁ = C⁻¹*C ∖ {e} = {(1)110, (1)0011, (011)10} = {110, 0011, 10}

S₂ = C⁻¹*S₁ ∪ S₁⁻¹*C = {(1)10, (1)0} ∪ {(10)011} = {10, 0, 011}

S₃ = C⁻¹*S₂ ∪ S₂⁻¹*C = {(1)0, (011)} ∪ {(10)011, (0)11, (0)1110, (011), (011)10} = {0, e, 011, 11, 1110, 10}

Vége mert az S₃ tartalmaz üres (e) kódszót, nem dekódol egyedien.

Ha végtelen ciklusba keveredett volna mert Sᵢ = Sⱼ, i ≠ j akkor is vége lenne, de egyedien kódol.


Tehát az első lépés mindig:

S₁ = C⁻¹*C ∖ {e},

utána

Sᵢ₊₁ = C⁻¹*Sᵢ ∪ Sᵢ⁻¹*C,

amíg el nem érjük az egyik feltételt.

2015. jan. 26. 21:35
Hasznos számodra ez a válasz?
 2/2 A kérdező kommentje:

Nagyon szépen köszönöm!

Pont az N⁻¹*D jelentését nem értettem és ez az, amit egy jegyzet sem tárgyalt, amit le tudtam szedni a netről. Még így is kis időbe telt míg leesett a működése, de most már értem.

Még egyszer köszönöm szépen! :)

2015. jan. 26. 22:31

Kapcsolódó kérdések:




Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!