Ir al contenido principal

Tarea #4 - Codigo Adaptativo

Para esta semana se nos encargo un método de compresión que se adaptara según la entrada.

La idea es que el programa lea una cadena en paquetes y cuando el paquete llegue a cierto limite el python sea capaz de comprimirlo y enviarlo. La variante es que se tiene que estar adaptando según el paquete de entrada.

La idea que yo tengo/tenia era tomar la frecuencia de las letras del alfabeto español y con el primer paquete que le llegue al python hacer lo siguiente:

1.- Identificábamos las letras únicas del paquete y las ordenábamos por frecuencias de apariciones.
2.- Sustituíamos o creábamos otra lista(conservando el orden) pero ahora con el agregábamos el  valor de la probabilidad del que la letra apareciera en el alfabeto español.
3.- Escogíamos un umbral que fuera el promedio de la suma de frecuencias del alfabeto
4.- Por cada paquete se aseguraba que la letra no estuviera ya anteriormente en el grafo, esto para eliminar el ruido de que haya repetidos.
5.- El nodo "padre" tenia un nombre único que fuera incapaz de confundirse y agregábamos los nodos con la siguiente regla.... "Si el valor el MAYOR al valor del nodo actual se agrega en la DERECHA; si es MENOR en la IZQUIERDA.
6.- Esto produciría un árbol que crece según la entrada y se acomoda según la frecuencia de las letras que aparecen en el pedazo de mensaje.
7 .- Con el árbol ya creado, lo único que faltaría seria recorrerlo para obtener el código para comprimir y lo mismo pero al revés para descomprimirlo.

Pero al intentar codificar esto tuve varios errores con lógica porque mis neuronas necesitan recargarse, pero bueno, se hizo un intento y se logro un avance parcial.
Estas son los fragmentos parciales mas importantes del programa.





Comentarios

  1. La idea tiene potencial. 3 por el reporte, 2 por el avance parcial del código.

    ResponderEliminar

Publicar un comentario

Entradas populares de este blog

Pequeño Juego con LEDS y Dip Switch

Siguiendo con los mini-proyectos, lo que quería hacer originalmente era un tipo "candado" con push-button y LEDs, el objetivo seria, meter la combinacion de botones correcta y los LEDS encendería por un motivo practico, en forma de serpiente. El objetivo no cambio, pero por falta de "material" lo hice con un dip switch de X entradas(depende de que tan grande quieras la combinación). CONOCIMIENTOS(max. 7 estrellas): Electronica:     ★ ★ Programación: ★ ★ Juego de Combinación + LEDs El programa es un poco mas complicado que el mini-proyecto pasado , pero aun asi es basico. Guardamos las salidas de los LEDs en un arreglo, despues con los valores recibidos y comparados de los dip switch jugamos con los LEDś. Hardware Requerido (1) Arduino Uno (6) LED (8) Resistencias 330 Ω (1) Dip Switch Circuito Usamos las salidas del ARduino 2-7 para los LEDS Usamos la salida A5, A4 para el dip switch Para hacer prender los LEDS tienes que encontrar la ...

Tarea #2 - LAB Visión - Sal y Pimienta - Procesamiento de imagenes - Python

Que tal para esta entrada se nos encargo  modificar  o agregar a nuestro código, una rutina que agregara degradación por adición de ruido(Sal y pimienta) base a dos parámetros: Intensidad = que tanto porcentaje de la imagen se le agregara sal y pimienta Polarización = que tan negros/blancos se pone un pixel seleccionado. y otra rutina que quitara filtrara ese ruido. Antes de comenzar Mi programa se esta empezando a poner " FEO " son demasiados métodos y por cada tarea esta creciendo considerablemente, pese a esto, esta sera la ultima entrada que estaré modificando este código, el las siguientes trabajare por clases.  El los avances de la tarea están en mi  github . Un poco de teoría Les comparto información de relevante que me ayudo a despejar dudas, al final de la entrada en el apartado de REFERENCIAS pondré los links de TODA esta información. El RUIDO en las imágen...

Tarea #5 - Codigo Hamming - Python

Codigo hamming Liga al repo Teoria segun wikipedia Antes de los códigos Hamming se utilizaron ciertos códigos detectores de error, como lo fueron el código linteing, pero ninguno llegó a ser tan eficaz como los de Hamming. A continuación se describen algunos de estos códigos. Paridad   La   paridad   consiste en añadir un bit, denominado   bit de paridad , que indique si el número de los bits de valor 1 en los datos precedentes es par o impar. Si un solo bit cambiara por error en la transmisión, el mensaje cambiará de paridad y el error se puede detectar (nótese que el bit donde se produzca el error puede ser el mismo bit de paridad). La convención más común es que un valor de paridad   1   indica que hay un número impar de unos en los datos, y un valor de paridad de   0   indica que hay un número par de unos en los datos. info. completa y un vídeo que me ayudo mucho para esta tarea: (TIENEN QUE VERLO - OBLIGATORIO) http://www.you...