2. Es una de las aplicaciones más
recientes del algebra. Se suele fijar su
nacimiento en el año 1948 con los
trabajos de Claude Shannon sobre la
teoría matemática de la información. La
teoría de códigos surge con la llegada
de los ordenadores, cuya fiabilidad era
baja comparada con la de los actuales
3. Siempre que se transmite una información o se almacena,
el receptor deberá poder corregir los errores producidos
por posibles interferencias, ruidos etc. Cuando la
información se representa en forma digital, el uso de los
códigos correctores de errores hace posible corregir tales
errores
4. Supongamos que deseamos transmitir un mensaje y que en el
proceso de la transmisión dicho mensaje puede alterarse. El
problema es asegurar que el mensaje sea recibido correctamente.
Para ello se codiciará dicho mensaje, de forma que las palabras
resultantes sean muy diferentes, así , aunque haya alteraciones, la
palabra recibida se parecerá mas a la enviada que a cualquier otra.
5. El proceso es por tanto el siguiente:
◦ Sale un mensaje,
◦ se codifica,
◦ atraviesa un canal,
◦ se descodifica,
◦ llega el mensaje al usuario
6. La idea es que antes de enviarlo el emisor codifica su mensaje m
como u. esto debe hacerlo añadiendo a m información
redundante de manera que si el canal de transmisión se
produce ruido r y el receptor en vez de recibir u recibe un
mensaje alterado v=u+r sea , a pesar de todo capaz de
recuperar el mensaje original M
7. El código de Hamming es un código detector y corrector de errores
que lleva el nombre de su inventor, Richard Hamming.
En los datos codificados en Hamming se pueden detectar errores en
un bit y corregirlos, sin embargo no se distingue entre errores de
dos bits y de un bit .
Esto representa una mejora respecto a los códigos con bit de
paridad, que pueden detectar errores en sólo un bit, pero no pueden
corregirlo.
8. El código de Hamming agrega tres bits adicionales
de comprobación por cada cuatro bits de datos del
mensaje.
El algoritmo de Hamming (7.4) puede corregir
cualquier error de un solo bit, pero cuando hay
errores en más de un bit, la palabra transmitida se
confunde con otra con error en un sólo bit, siendo
corregida, pero de forma incorrecta, es decir que la
palabra que se corrige es otra distinta a la original, y
el mensaje final será incorrecto sin saberlo.
9. El algoritmo es el siguiente:
Todos los bits cuya posición es potencia de dos se utilizan
como bits de paridad (posiciones 1, 2, 4, 8, 16, 32, 64,
etc.).
Los bits del resto de posiciones son utilizados como bits
de datos (posiciones 3, 5, 6, 7, 9, 10, 11, 12, 13, 14, 15,
17, etc.).
Cada bit de paridad se obtiene calculando la paridad de
alguno de los bits de datos. La posición del bit de
paridad determina la secuencia de los bits que
alternativamente comprueba y salta, a partir de éste, tal y
como se explica a continuación. Posición 1: salta 0,
comprueba 1, salta 1, comprueba 1, etc.
Regla general para la posición n es: salta n-1 bits,
comprueba n bits, salta n bits, comprueba n bits...
10.
11. Además de la transmisión segura y fiable la teoría de códigos
tiene otro aspecto llamado Comprensión de Datos. Esta
estudia como codificar los mensajes de la manera mas corta
posible, eliminando información que sea redundante de
manera que transmitirlos sea poco costoso.
La manera optima de comprimir datos es utilizar un código
Huffman pero hay otros códigos compresores que sin ser
óptimos son también muy eficaces y presentan la ventaja
añadida de ser más sencillos de poner en práctica, como
ejemplo el código ZIP que se emplean para comprimir
documentos electrónicos.
12. Algoritmo usado para compresión de datos. El término se refiere al uso de
una tabla de códigos de longitud variable para codificar un determinado
símbolo (como puede ser un carácter en un archivo), donde la tabla ha sido
rellenada de una manera específica basándose en la probabilidad estimada
de aparición de cada posible valor de dicho símbolo.
La codificación Huffman usa un método específico para elegir la
representación de cada símbolo, que da lugar a un código prefijo que
representa los caracteres más comunes usando las cadenas de bits más
cortas, y viceversa. Huffman fue capaz de diseñar el método de compresión
más eficiente de este tipo: ninguna representación alternativa de un
conjunto de símbolos de entrada produce una salida media más pequeña
cuando las frecuencias de los símbolos coinciden con las usadas para crear
el código
13. La codificación Huffman usa un método específico para elegir la
representación de cada símbolo, que da lugar a un código prefijo
que representa los caracteres más comunes usando las cadenas
de bits más cortas, y viceversa. Huffman fue capaz de diseñar el
método de compresión más eficiente de este tipo: ninguna
representación alternativa de un conjunto de símbolos de entrada
produce una salida media más pequeña cuando las frecuencias de
los símbolos coinciden con las usadas para crear el código