Shannonin algoritmi
Kokeneet kirjoittajat eivät ole vielä tarkistaneet sivun nykyistä versiota, ja se voi poiketa merkittävästi 16. huhtikuuta 2018 tarkistetusta
versiosta . tarkastukset vaativat
3 muokkausta .
Tietojen pakkaamisen alalla Shannon-koodi , joka on nimetty sen luojan Claude Shannonin mukaan, on häviötön tietojen pakkausalgoritmi , joka muodostaa etuliitekoodeja, jotka perustuvat merkkijoukkoon ja niiden todennäköisyyksiin (laskettu tai mitattu). Se ei ole optimaalinen siinä mielessä, että se ei saavuta pienintä mahdollista koodin pituutta, kuten Huffman-koodauksessa , eikä se ole koskaan parempi, mutta joskus sama kuin Shannon-Fano- koodi .
Tämä menetelmä oli ensimmäinen laatuaan, tätä tekniikkaa käytettiin todistamaan Shannonin virheenkorjaava koodauslause vuonna 1948 hänen artikkelissaan "Mathematical Communication Theory" [1] .
Shannon-koodauksessa merkit on järjestetty todennäköisimmästä epätodennäköisimpään. Heille annetaan koodit ottamalla kumulatiivisen todennäköisyyden binäärihajotelman ensimmäiset numerot . Tässä tarkoittaa funktion kattoa , joka pyöristyy lähimpään kokonaisarvoon, joka on suurempi tai yhtä suuri kuin .





Esimerkki
Tässä taulukossa on esimerkki Shannon-koodauksesta. Voit heti huomata lopullisista koodeista, että se on vähemmän optimaalinen kuin Fano-Shannon -menetelmä .
Ensimmäinen askel on laskea kunkin symbolin todennäköisyydet. Sitten lasketaan kunkin todennäköisyyden luku. Esimerkiksi 2 : lle se on yhtä kuin kolme ( on kahden −3:n minimiteho, joten se on yhtä suuri kuin kolme). Tämän jälkeen otetaan huomioon todennäköisyyksien summa 0 :sta i-1 :een ja muunnetaan binäärimuotoon. Sitten murto-osa katkaistaan vasemmalla merkkien lukumäärään.




a i
|
p(a i )
|
l i
|
Summa 0 - i-1
|
Summa yli p(a i ) bin
|
Lopullinen koodi
|
a 1
|
0,36
|
2
|
0,0
|
0.0000
|
00
|
a 2
|
0,18
|
3
|
0,36
|
0,0101
|
010
|
a 3
|
0,18
|
3
|
0,54
|
0,1000
|
100
|
a 4
|
0.12
|
neljä
|
0,72
|
0,1011
|
1011
|
a 5
|
0.09
|
neljä
|
0,84
|
0,1101
|
1101
|
a 6
|
0,07
|
neljä
|
0,93
|
0,1110
|
1110
|
Linkit
- ↑ "A Mathematical Theory of Communication" http://cm.bell-labs.com/cm/ms/what/shannonday/shannon1948.pdf Arkistoitu 15. heinäkuuta 1998 Wayback Machinessa