// Levenshtein-koding â rekursiv universell kode med asymptotisk optimalitet
Koder lengden av lengden rekursivt til den nĂĽr 0.
NĂŚrmer seg det teoretiske minimumet for store tall.
Fungerer for alle ikke-negative heltall uten ekstra parametere.
Levenshtein-koding (ogsĂĽ kalt Levenstein- eller L*-kode) koder den binĂŚre lengden til et tall rekursivt. For et heltall n med binĂŚr lengde N: kod C(N-1) rekursivt, legg til '1', og legg deretter til n uten det ledende 1-bitet. Rekursjonen stopper ved 0. Dette gir asymptotisk optimale koder.
0 â 0 1 â 10 (C(0) + 1 + '') 2 â 110 (C(1) + 1 + '0') 3 â 111 (C(1) + 1 + '1') 4 â 11000 (C(2) + 1 + '00') 5 â 11001 (C(2) + 1 + '01') Rekursiv struktur: C(0) = '0' C(1) = C(0) + 1 = '01' â '1' C(2) = C(1) + 1 + '0' = '110' C(3) = C(1) + 1 + '1' = '111'
Levenshtein-koding (ikke ĂĽ forveksle med Levenshtein-avstand) er en universell kode som rekursivt koder lengden til heltall. Den ble utviklet av Vladimir Levenshtein og er asymptotisk optimal for store heltall.
Koden koder rekursivt bitlengden minus Ên. For ü kode n med N biter koder du først (N-1), legger til '1' og legger deretter til de siste (N-1) bitene av n. Rekursjonen stopper ved 0, som kodes som '0'.
Levenshtein-koding er asymptotisk optimal pĂĽ samme mĂĽte som Elias Omega, men bruker en annen rekursiv struktur. Den er mer kompleks enn Elias Gamma/Delta, men gir bedre komprimering for svĂŚrt store tall.
Levenshtein-koding er hovedsakelig av teoretisk interesse i informasjonsteori og Kolmogorov-kompleksitet. Den brukes sjelden i praksis, men demonstrerer viktige prinsipper for optimal universell koding.