Seu código possui a propriedade de que, se você reverter todas as palavras de código, obterá um código de prefixo. Isso implica que seu código é decodificável exclusivamente.
Com efeito, considerar qualquer código C= x1,…,xn cujo reverso CR:=xR1,…,xRn é exclusivamente decodificável. Afirmo que C também é exclusivamente decodificável. Isso ocorre porque
w = xEu1… XEum se e somente se wR= xREum… XREu1.
Em palavras, decomposições de W em palavras de código de C estão em correspondência de um-para-um com decomposições de WR em palavras de código de CR . Como os últimos são únicos, o mesmo acontece com os primeiros.
Como os códigos de prefixo são decodificados exclusivamente, segue-se que o reverso de um código de prefixo também é decodificado exclusivamente. Este é o caso no seu exemplo.
A desigualdade de McMillan afirma que se C é decodificável de forma única, então
∑i = 1n2- | xEu|≤ 1.
Em outras palavras, um código exclusivamente decodificável satisfaz a desigualdade da Kraft. Portanto, se tudo o que você está interessado é minimizar o comprimento esperado da palavra de código, não há motivo para procurar além dos códigos de prefixo.
Sam Roweis fornece em seus slides um bom exemplo de um código decodificável único que não é nem um código prefixo nem o inverso de um código prefixo:
0 , 01 , 110.
Para mostrar que esse código é decodificável exclusivamente, basta mostrar como para decodificar a primeira palavra de código de uma palavra. Se a palavra começar com 1 , a primeira palavra de código é 110 . Se tiver o formato 01∗ , deverá ser 0 0 ou 01 . Caso contrário, deve haver um prefixo no formato 01∗0 0 . Agora, distinguimos vários casos:
prefixopalavra de código000 00100101100 00111001
Execuções mais longas de1não podem ser decodificadas.