Twój kod ma właściwość polegającą na tym, że jeśli odwrócisz wszystkie słowa kodowe, otrzymasz kod prefiksu. Oznacza to, że Twój kod jest jednoznacznie dekodowalny.
Rzeczywiście, rozważ dowolny kod którego odwrotne jest jednoznacznie dekodowalne. Twierdzę, że jest również wyjątkowo dekodowalny. Wynika to z tego, że
Słowami, dekompozycje język słów kodowych są odpowiednio jeden do jednego z dekompozycje na słowa kodowe o . Ponieważ te ostatnie są wyjątkowe, tak samo są te pierwsze.do= x1, … , XndoR: = xR1, … , XRndow = xja1… Xjam jeśli i tylko jeśli wR= xRjam… XRja1.
wdowRdoR
Ponieważ kody prefiksów są jednoznacznie dekodowane, wynika z tego, że rewers kodu prefiksu jest również jednoznacznie dekodowalny. Tak jest w twoim przykładzie.
Nierówność McMillana stwierdza, że jeśli można jednoznacznie zdekodować, to
Innymi słowy, unikalnie dekodowalny kod spełnia nierówność Krafta. Dlatego jeśli wszystko, co Cię interesuje, to zminimalizowanie oczekiwanej długości słowa kodowego, nie ma powodu, aby szukać poza kodami prefiksów.do∑i = 1n2)- | xja|≤ 1
Sam Roweis podaje w swoich slajdach dobry przykład unikalnie dekodowalnego kodu, który nie jest ani kodem prefiksu, ani odwrotnością kodu prefiksu:
Aby pokazać, że ten kod jest jednoznacznie dekodowalny, wystarczy pokazać, jak zdekodować pierwsze słowo kodowe słowa. Jeśli słowo zaczyna się od , to pierwsze słowo kodowe to . Jeśli ma postać , musi mieć wartość lub . W przeciwnym razie musi istnieć prefiks formularza . Rozróżniamy teraz kilka przypadków:0 , 01 , 110.
111001∗00101∗0
prefikssłowo kodowe00001001011000111001
Dłuższe nie mogą być w ogóle dekodowanym.1