1 votos

Longitud de código esperada para el algoritmo Huffman con probabilidades

No puedo resolver el siguiente problema:

Dejemos que $$n \geq 2$$ $$p_{1} \geq p_{2} \geq ... \geq p_{n}$$ $$p_{i} = 2^{-k_{i}}$$ avec $k_{i} \in \mathbb{N}$ y $\sum_{i=1}^{n}p_{i} = 1$ .

$p_{i}$ es la probabilidad de que el carácter $c_{i}$ aparece. A continuación, ejecutamos el algoritmo de Huffman. Mostrar: La longitud de código esperada del código Huffman resultante es $$-\sum_{i=1}^{n}p_{i}\log{p_{i}}$$

¿Cómo se demuestra eso? En la primera parte de la tarea mostré que $p_{n-1} = p_{n}$ .

Esto es lo que tengo hasta ahora: Creo que el valor esperado de la longitud del código se define como $E(C) = \sum_{i=1}^{n}p_{i}h(c_{i})$ donde $h(c_{i})$ es la altura del carácter $c_{i}$ en el árbol de Huffman.

De ahí se deduce que tengo que demostrar que $E(C) = \sum_{i=1}^{n}p_{i}h(c_{i}) = \sum_{i=1}^{n}p_{i}k_{i}$ Así que pensé en mostrar eso $h(c_{i}) = k_{i}$ . Me han dicho que esto se puede hacer por inducción. Pero, ¿cómo se demuestra esto?

Agradecería mucho cualquier ayuda, consejo, idea o solución/prueba. Espero haber dejado claro cuál es el problema, ya que lo he traducido de mi lengua materna al inglés. Si hay algo que no es comprensible, por favor hágamelo saber. ¡Gracias de antemano y que tengan un buen día!

2voto

DiGi Puntos 1925

SUGERENCIA: La inducción está encendida $n$ . Si $n=2$ la única posibilidad es que $k_1=k_2=1$ : ninguna otra combinación le da $p_1+p_2=1$ . Se puede comprobar fácilmente que en ese caso $h(c_1)=h(c_2)=1$ . Para el paso de inducción, se asume el resultado para algún $n\ge 2$ y probarlo para $n+1$ . Tenga en cuenta que después de combinar los dos caracteres menos probables en el primer paso del algoritmo de Huffman, tiene en efecto un alfabeto de $n$ caracteres, uno correspondiente a la unión de los dos caracteres menos probables, por lo que se puede aplicar la hipótesis de inducción.

2voto

smitchell360 Puntos 36

Tienes las piezas que necesitas. Mostrarás por inducción en el número de nodos que $h(c_i)=k_i$ . El primer paso para construir el árbol de Huffman $T$ será combinar $c_{n-1}$ y $c_n$ ; ya que $p_{n-1}=p_n=2^{-k}$ el nodo combinado tiene peso $2^{-(k-1)}$ -- en particular, $1$ sobre una potencia de dos. Así que la hipótesis de inducción se aplica al árbol $T'$ con el nodo combinado; en particular $h(c_i')=k_i'$ para el $T'$ código. Lo único que queda es demostrar que cuando ahora se divide ese nodo final de $T'$ en $c_{n-1}$ y $c_{n}$ las probabilidades y las profundidades funcionan correctamente.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X