Professional Documents
Culture Documents
Cátedra: Saubidet
2. c) El método de shannon fano si se usa en forma dinámica produce el mismo árbol que el
método de huffman dinámico. (* *) (10 pts)
Criterio: Ej5) Es fundamental que por ser estático el archivo comprimido contenga las
frecuencias de cada contexto, además cuando en un contexto solo hay un carácter posible
no se representa nada usar un bit para esto implica un descuento de 10 puntos. (máximo
5) ya que el contexto es deterministico y no hace falta comprimir nada el descompresor
sabe que si el carácter anterior fue X el siguiente siempre es Y y no necesita de ningún bit
para saber esto.
Criterio: Ejercicio 3: No requiere criterio por ser de tipo mecánico. Si hay algún error pero
el método/procedimiento está bien, descontar 5 puntos. Si el procedimiento está mal vale
0 puntos.
Criterio: Ejercicio 3: No requiere criterio por ser de tipo mecánico. Si hay algún error pero
el método/procedimiento está bien, descontar 5 puntos. Si el procedimiento está mal vale
0 puntos.
Criterio: Ejercicio 3c: Si el árbol esta armado “a ojo” el ejercicio vale a lo sumo 5 puntos.
Debe quedar claro con que criterio se hace el “split” de los nodos y usar el mismo criterio
en todos los pasos.
Criterio: Ejercicio 7: Se considera valido decir que la entropía no influye de ninguna manera
en Lz77 por no ser un compresor estadístico. Otras respuestas mas elaboradas podrían
considerar que la entropía podría jugar un papel a la hora de codificar como se
representan los pares ordenados o por ejemplo como distinguir un par ordenado de un
carácter literal, estas respuestas también son correctas siempre y cuando quede claro que
el concepto aplica únicamente a la codificación de cosas cuya frecuencia se puede medir.
Criterio:
Ejercicio 3a: Si bien en casos particulares uno puede ser mejor que el otro en
promedio el nivel de compresión es prácticamente idéntico, esto se debe a que
ambos métodos aprovechan las repeticiones de cadenas en el archivo para
comprimir. Por lo tanto es verdadero.
Ejercicio 3d: Falso, si se usara un árbol independiente para las longitudes no sería
posible distinguir cuando viene un match o cuando viene un carácter literal, se
debería agregar un flag o algo por el estilo y no es claro entonces que se este
mejorando el nivel de compresión, de hecho podría empeorar.
Criterio: Ej 3b) Falso ya que block sorting si usa contextos, si el nivel de compresión del
PPMC es suprior se debe a otros motivos.
Criterio: Ej 3a) Básicamente da lo mismo porque los dos métodos se basan en el mismo
principio. Únicamente estaría bien decir que uno es mas conveniente que el otro si el
análisis es muy fino.
d) Que tipo de archivos se pueden comprimir mejor usando MTF?. Dar ejemplos.
Criterio:
Ejercicio 3a) Falso, ya que en todo archivo que no sea ruido la probabilidad
condicional de un carácter siempre es mas precisa que la probabilidad
incondicional (sin contextos).
Ejercicio 3b) Falso ya que haría falta algún sistema para distinguir un carácter
aislado de una repetición y no esta claro si lo que se pierde no sería mas de lo que
se gana.
Ejercicio 3d) Esta bien decir “ninguno” ya que MTF no comprime nada. También
estaría bien decir que MTF no comprime pero acompañado de un método
estadístico es bueno para archivos que estén localizados (explicando que quiere
decir que un archivo esté localizado).
Criterio: Ejercicio 3d: La explicación debe girar en torno al promedio de la longitud de los
strings de forma tal que los contextos sean influyentes, a partir de longitudes mayores a 5
tomar 5 o 6 o 7 caracteres es prácticamente lo mismo a efectos de determinar el carácter
siguiente ya que estadísticamente los caracteres adicionales aportan poco o nada.
a) Comprimir el archivo “ABABA” usando block sorting, MTF and Huffman. Se pide
el resultado binario completo del archivo comprimido. (10 pts) (*)
Criterio:
c) Trivial.
Criterio: Ejercicio 3: No requiere criterio por ser de tipo mecánico. Si hay algún error pero
el método/procedimiento está bien, descontar 5 puntos. Si el procedimiento está mal vale
0 puntos.
Criterio:
Ejercicio 4: Si no usan exclusión descuento de 10 puntos. Si no comprimen el EOF (solo la
“A”) vale máximo 7 puntos. Si las cuentas están mal no hay descuento salvo que no sea
posible determinar que cuenta están haciendo (falta de planteo). Si no hacen la
compresión aritmética, es decir que solo indican las probabilidades que se usarían se
descuentan 5 puntos.
Criterio: Ej 4) Se asignan 5 puntos por plantear correctamente el objetivo que es lograr vía
PPMC transformar al archivo en una serie de caracteres en donde los caracteres mas bajos
predominen que es lo que aprovecha el modelo de shannon o el modelo estructurado. Los
restantes 10 puntos corresponden a encontrar una forma de hacer esto, hay varias
soluciones posibles.
Criterio: Ejercicio 4) Trivial, simplemente hay que proceder a comprimir usando LZP. Tal y
como lo dice el enunciado si no hacen la salida en binario vale 0 puntos sin excepciones. Si
no procesan longitudes mayores a 3 descuento de 10 puntos. Si los arboles no son
dinámicos vale 0 puntos ya que el método es dinámico por naturaleza.
Criterio: Ejercicio 4: Es un LZP clásico por lo que no hace falta mayor aclaración. Si falta la
salida en binario vale 0 puntos como lo indica el enunciado.
Criterio: Ejercicio 4: Hay que comprimir por un lado palabras y por otro separadores, la
solución mas simple pasa por usar dos arboles de huffman dinámicos, uno para las
palabras y otro para los separadores, obviamente estos arboles deben pre-inicializarse de
acuerdo a promedios para textos en castellano.
Una solución mejor es usar Huffword y comprimir por palabras, las palabras que no existen
en el diccionario que es pre-establecido en base a promedios se codifican con un escape y
algún tipo de modelo por caracteres.
Si comprimen por caracteres es evidente que el uso de contextos, PPMc o similar para la
rama de las palabras es mejor que un huffman dinámico común:
Criterio: Solución trivial: vale 10 puntos máximo (si no pre-inicializan 5 puntos). Trivial =
por caracteres y sin contextos.
No hacer el método dinámico (2 pasadas y cosas por el estilo): vale 0 puntos (ver
enunciado)
No pre-inicializarlos modelos en base a promedios descuento de 5 puntos.
Criterio: Ej 5) Múltiples variantes. Por un lado se puede suponer que el compresor puede
generar longitudes mayores a la cantidad de caracteres que hay en el buffer actualmente
esto es parecido al caso particular del Lz78, si eligen este camino deben indicar claramente
por que es posible descomprimir, si no lo hacen descontar 10 puntos. También es valido
suponer que no se pueden generar longitudes que vayan mas allá de lo que el
descompresor conoce. Como solo se usa el árbol de contexto del carácter “A” deberían
tener en cuanta que inicialmente hay 256 caracteres en el árbol, también se acepta que
usen ABCD o algún set limitado de caracteres pero no se acepta que solo usen la “A”
porque no hay explicación para eso y podría indicar que piensan que el método es estático.
Si solo usan A en el contexto A descuento de 5 puntos.
Criterio: 5) Hay muchas soluciones validas, una es comprimir las colecciones con PPMC,
por ejemplo almacenando los modelos de compresión, luego cuando se recibe un nuevo
texto se lo puede comprimir con ambos modelos y según cual modelo comprime mejor se
supone que el texto pertenece a una u otra colección. Si usan esta técnica deberían
seleccionar PPMC ya que es el método que puede construir un mejor modelo de
compresión para un conjunto de datos.
Si se usa este método pero con un método que no es PPMC vale 10 puntos.
Si usan otro método a consideración dependiendo de si funciona y si tiene sentido.
Criterio: Ej 6) Tiene sentido si se usa huffman dinámico porque podría mejorar la velocidad
con la que aprende el compresor. Si se usa Huffman estático no tiene ningún sentido.