Inegalitatea Kraft

În teoria codurilor , inegalitatea Kraft oferă, având în vedere un set de lungimi de cuvinte cod, o condiție necesară și suficientă pentru existența unui cod prefix și a unui cod unic decodabil . Inegalitatea lui Kraft poartă numele lui Leon Kraft . A fost publicat de Kraft în 1949. Cu toate acestea, articolul Kraft se ocupă doar de coduri de prefix și atribuie Raymond Redheffer analiza care duce la inegalitate .

Definiție formală

Este un alfabet și un cod unic decodabil peste o dimensiune a alfabetului , notând lungimile cuvintelor cod , apoi

În schimb, să se satisfacă inegalitatea lui Kraft, apoi există un cod de prefix de dimensiune pe un alfabet de dimensiune cu aceste lungimi de cod.

Cazul codurilor de prefix

Prin ne limităm la codurile de prefix, vom găsi o simplă demonstrație a sensului înainte bazată pe bijectie între -ary copaci și coduri prefix

Inegalitatea Kraft devine atunci:

Pentru orice copac- aer, cu toate frunzele sale și adâncimea frunzei :

∑ℓ∈L(LA)r-d(ℓ)⩽1{\ displaystyle \ sum _ {\ ell \ in {\ mathcal {L}} ({\ mathcal {A}})} r ^ {- d (\ ell)} \ leqslant 1} Demonstrație

Prin inducție structurală pe copac: evident dacă este o frunză sau goală.

Dacă , deoarece inegalitatea lui Kraft este valabilă pentru toate , observați adâncimea frunzei din subarborele căruia îi aparține. Apoi avem:

Prin aplicarea ipotezei de inducție, avem

În schimb, este suficient să arătăm că, din satisfacerea inegalității lui Kraft, putem construi un arbore -ary cu frunze satisfăcătoare .

Demonstrație

Fără pierderea generalității, să presupunem că propunem să construim acest arbore cu următorul algoritm:

programme arbre(n, r, [l_0, l_1, ... l_{n-1}]) A <- Arbre r-aire complet de profondeur l_{n-1} pour i de 0 à n-1 choisir un noeud n de A non-marqué de profondeur l_i en faire une feuille i.e. supprimer tous ses descendants le marquer retourner A

Pentru a justifica corectarea algoritmului, avem nevoie de două elemente:

Caz general

Cazul general are un corolar interesant: întrucât orice cod unic decodabil respectă inegalitatea Kraft și, din această inegalitate, putem construi un cod prefix, pentru orice cod unic decodabil, există un cod prefix ale cărui cuvinte cod sunt de aceeași dimensiune. Cu alte cuvinte, codurile unic decodabile nu sunt mai compacte decât codurile prefix.

Rețineți că conversația a fost deja tratată în cazul codurilor de prefix, orice cod de prefix fiind un cod unic decodabil.

Demonstrație

Notă lungimea de cod al unui cuvânt pe și , și ia în considerare numărul de cuvinte de dimensiuni , cu dimensiuni de cod  : . așa cum este doar decodabil, avem .

Atunci avem

Dar o dezvoltare simplă ne oferă:, ceea ce ne aduce la . Acest lucru fiind adevărat pentru orice , deoarece găsim inegalitatea dorită.

Note și referințe

  1. (în) Leon Gordon Kraft , „  Un dispozitiv de cuantificare, grupare și codificare a impulsurilor modulate în amplitudine  ” , Massachusetts Institute of Technology (PhD) ,1949( citiți online , consultat la 18 iulie 2019 )
<img src="https://fr.wikipedia.org/wiki/Special:CentralAutoLogin/start?type=1x1" alt="" title="" width="1" height="1" style="border: none; position: absolute;">