Kraftova nerovnost

Z Wikipedie, otevřené encyklopedie
Skočit na: Navigace, Hledání

Kraftova nerovnost je věta užívaná v teorii kódování. Při kódování n znaky můžeme sestavit prefixový kód s délkami kódovaných slov d1, d2, dr, právě když platí Kraftova nerovnost: n-d1 + n-d2 + ... + n-dr =< 1

Příklad [editovat]

Uvažujme binární prefixový kód pro kódování cifer 0,1,2,...,9 vhodný pro zprávy, kde se často vyskytují znaky 0,1 a řídce znaky 8,9. Nápad: pro 0 a 1 zvolíme kód délky 2 pro 2-7 zvolíme kód délky 3 pro 8 a 9 zvolíme kód délky 4. Potom by převodní tabulka vypadala takto:

0   00
1 01
2 1xx
3 1xx
4 1xx
5 1xx
6 1xx
7 1xx
8 xxxx
9 xxxx

Kombinace 1xx musí začínat jedničkou, aby byl kód prefixový,ale neposkytuje dost kombinací pro šest čísel.

Kraftova nerovnost to předem říká ve výpočtu:

2 * 2-2 + 6 * 2-3 + 2 * 2-4 = 22/16 > 1

0   00
1 01
2 100
3 1010
4 1011
5 1100
6 1101
7 1110
8 11110
9 11111

a tedy 2 * 2-2 + 1 * 2-3 + 5 * 2-4 + 2 * 2-5 = (16 + 4 + 10 + 2) / 32 = 1

McMillanova věta: Pro každé jednoznačně dekódovatelné kódování platí Kraftova nerovnost.