Votre code a la propriété que si vous inversez tous les mots de code, vous obtenez un code de préfixe. Cela implique que votre code est uniquement décodable.
En effet, considérons tout code dont l'inverse est uniquement décodable. Je prétends que est également uniquement décodable. En effet,
En d'autres termes, les décompositions de en mots de code de sont dans une correspondance univoque avec des décompositions de dans les mots de code de . Étant donné que ces derniers sont uniques, les premiers le sont également.C= x1, … , XnCR: = xR1, … , XRnCw = xje1… Xjem si et seulement si wR= xRjem… XRje1.
wCwRCR
Étant donné que les codes de préfixe sont uniquement décodables, il s'ensuit que l'inverse d'un code de préfixe est également uniquement décodable. C'est le cas dans votre exemple.
L'inégalité de McMillan indique que si est uniquement décodable, alors
En d'autres termes, un code uniquement décodable satisfait l'inégalité de Kraft. Par conséquent, si tout ce qui vous intéresse est de minimiser la longueur de mot de code attendue, il n'y a aucune raison de regarder au-delà des codes de préfixe.C∑i = 1n2- | Xje|≤ 1.
Sam Roweis donne dans ses diapositives un bel exemple d'un code décodable unique qui n'est ni un code préfixe ni l'inverse d'un code préfixe:
Afin de montrer que ce code est uniquement décodable, il suffit de montrer comment décoder le premier mot de code d'un mot. Si le mot commence par , le premier mot de code est . Si elle est de la forme , elle doit être ou . Sinon, il doit y avoir un préfixe de la forme . On distingue maintenant plusieurs cas:0 , 01 , 110.
111001∗00101∗0
préfixemot de code00001001011000111001
Des séries plus longues de ne peuvent pas être décodé du tout.1