1 CÓDIGOS CORRECTORES



Documentos relacionados
Unidad Didáctica. Códigos Binarios

BASES Y DIMENSIÓN. Propiedades de las bases. Ejemplos de bases.

QUIERES COMPROBAR CÓMO LAS REDES DETECTAN Y CORRIGEN ERRORES?

Los servicios que presta Internet. RETO: Conocer y utilizar los servicios que nos ofrece Internet.

Subespacios vectoriales en R n

Tema 2 : Códigos Binarios

E 1 E 2 E 2 E 3 E 4 E 5 2E 4

Cómo?: Resolviendo el sistema lineal homógeneo que satisfacen las componentes de cualquier vector de S. x4 = x 1 x 3 = x 2 x 1

Estas visiones de la información, denominadas vistas, se pueden identificar de varias formas.

MODELOS DE RECUPERACION

Tema 2. Espacios Vectoriales Introducción

Porcentajes. Cajón de Ciencias. Qué es un porcentaje?

Aproximación local. Plano tangente. Derivadas parciales.

Puedes Desarrollar Tu Inteligencia

Divisibilidad y números primos

Unidad I. 1.1 Sistemas numéricos (Binario, Octal, Decimal, Hexadecimal)

TABLA DE DECISION. Consideremos la siguiente tabla, expresada en forma genérica, como ejemplo y establezcamos la manera en que debe leerse.

Diagonalización de matrices

Apuntes de Matemática Discreta 1. Conjuntos y Subconjuntos

Matrices equivalentes. El método de Gauss

La ventana de Microsoft Excel

INSTITUTO UNIVERSITARIO DE TECNOLOGÍA JOSE LEONARDO CHIRINO PUNTO FIJO EDO-FALCON CATEDRA: ARQUITECTURA DEL COMPUTADOR PROFESOR: ING.

CURSO TECNOLOGÍA TECNOLOGÍA 4º ESO TEMA 5: Lógica binaria. Tecnología 4º ESO Tema 5: Lógica binaria Página 1

TEMA I: INTRODUCCIÓN A LA ELECTRÓNICA DIGITAL

Generación de funciones lógicas mediante decodificadores binarios con salidas activas a nivel alto

Tema 3. Espacios vectoriales

Teclado sobre una PDA para Personas con Parálisis Cerebral

Ecuaciones de primer grado con dos incógnitas

PARA COMERCIANTES Y AUTÓNOMOS. INFORMACIÓN SOBRE TARJETAS DE CRÉDITO.

UNIDAD 1. LOS NÚMEROS ENTEROS.

En cualquier caso, tampoco es demasiado importante el significado de la "B", si es que lo tiene, lo interesante realmente es el algoritmo.

SISTEMAS DE NUMERACIÓN. Sistema decimal

SISTEMAS NUMERICOS CAMILO ANDREY NEIRA IBAÑEZ UNINSANGIL INTRODUCTORIO A LA INGENIERIA LOGICA Y PROGRAMACION

TEMA 2: Representación de la Información en las computadoras

EJERCICIOS DE MATEMÁTICAS I HOJA 4. Ejercicio 1. Se consideran los vectores

Cómo creo las bandejas del Registro de Entrada /Salida y de Gestión de Expedientes?

Los elementos que usualmente componen la identidad digital son:

PCLabs. Práctica de Ingeniería del Software I Curso 2008/09. Descripción del problema

Plan de mejora de las competencias lectoras en la ESO. PERFECTOS, AMIGOS Y GEMELOS

VECTORES. Módulo, dirección y sentido de un vector fijo En un vector fijo se llama módulo del mismo a la longitud del segmento que lo define.

Sistemas de numeración

En las próximas páginas encontrarás el curso que necesitas. Adelante!

Problemas resueltos de combinatoria

UNLaM REDES Y SUBREDES DIRECCIONES IP Y CLASES DE REDES:

Este es un ejemplo muy sencillo, un esquema de empleados que trabajan en proyectos, en una relación muchos a muchos.

Módulo II - PowerPoint

DISCOS RAID. Se considera que todos los discos físicos tienen la misma capacidad, y de no ser así, en el que sea mayor se desperdicia la diferencia.

Datos del autor. Nombres y apellido: Germán Andrés Paz. Lugar de nacimiento: Rosario (Código Postal 2000), Santa Fe, Argentina

Base de datos en Excel

Espacios generados, dependencia lineal y bases

Una vez que tengamos el padrón de un determinado tributo con todos sus datos actualizados, podemos generar los recibos de ese padrón.

ÍNDICE DISEÑO DE CONTADORES SÍNCRONOS JESÚS PIZARRO PELÁEZ

by Tim Tran:

QUÉ ES UN SERVIDOR Y CUÁLES SON LOS PRINCIPALES TIPOS DE SERVIDORES? (PROXY, DNS, WEB, FTP, SMTP, ETC.) (DV00408A)

Cómo ingresar a la Sucursal Electrónica?

SaltarLaBanca.es Roulette Analysis 2012 v1.1 Manual de usuario V1.1 Actualizado 06/11/2012

LECCIÓN 8: CIRCUITOS Y ALGORITMOS DE MULTIPLICACIÓN DE ENTEROS

Definición Dados dos números naturales m y n, una matriz de orden o dimensión m n es una tabla numérica rectangular con m filas y n columnas.

Tema 11: Sistemas combinacionales

XVI Olimpiada Colombiana de Computación Nivel Superior Prueba Final Dia 2

Tipos de instalaciones

Qué es la tecnología digital?

7-11 ABRIL. Reflexiones de la mañana DAR VIDA. Quiero Ver. Video

Ingeniería del Software I Clase de Testing Funcional 2do. Cuatrimestre de 2007

TIPOS DE REDES QUE CONFORMAN INTERNET. LAN, WAN, MAN, WLAN, WMAN, WWMAN, SAN y PAN: Qué significa cada término?

1. SISTEMAS DIGITALES

LAS FRACCIONES DE CARLOS

PCGeek. Descripción del problema

INTRODUCCIÓN. En el mundo actual, el manejo y acceso de la información para tenerla y manejarla en el

Árboles AVL. Laboratorio de Programación II

Actividad 2.- Cuento y vídeo de Ubuntu

CONVERSIÓN DE UN NÚMERO EN BINARIO A DECIMAL Y VICEVERSA

Unidad 1. La información

PARTE 3 ECUACIONES DE EQUIVALENCIA FINANCIERA T E M A S

INTRODUCCION A LA PROGRAMACION DE PLC

ELO211: Sistemas Digitales. Tomás Arredondo Vidal 1er Semestre 2007

Díaz Ramírez Asesores. Guía Rápida para Facturación Electrónica

ARREGLOS DEFINICION GENERAL DE ARREGLO

UNIDAD 6. POLINOMIOS CON COEFICIENTES ENTEROS

1. Producto escalar, métrica y norma asociada

SISTEMA DE REGISTRO DE TRANSACCIONES BURSATILES BAGSA MANUAL DE USUARIO

Sistema de Liquidación Directa Manual del Servicio de Comunicación de Datos Bancarios

Universidad Diego Portales Facultad de Economía y Empresa. 1. Reputación. Apuntes de Teoría de Juegos Profesor: Carlos R. Pitta

Unidad de trabajo 2: INFORMÁTICA BÁSICA (primera parte)

1. Objetivos. 2. Idea Principal. Teoría de Autómatas y Lenguajes Formales. Boletín de Autoevaluación 3: Cómo se minimiza un AFD?.

Problemas fáciles y problemas difíciles. Cuando a los niños les planteamos problemas de suma y resta, Laura dejó sin resolver el siguiente problema:

Guía de usuario para el acceso al recibo de nómina mediante la intranet de la Conselleria

Servicio de Marketing

Capitulo I. Introducción

Diferenciabilidad. Definición 1 (Función diferenciable). Cálculo. Segundo parcial. Curso

ANTENAS: Teledistribución y televisión por cable

Colegio Alexander von Humboldt - Lima. Tema: La enseñanza de la matemática está en un proceso de cambio

FORMACIÓN DE EQUIPOS DE E-LEARNING 2.0 MÓDULO DE DISEÑO Y PRODUCCIÓN DE MATERIALES UNIDAD 6 B

INSTITUTO POLITÉCNICO NACIONAL ESCUELA SUPERIOR DE INGENIERÍA MECÁNICA Y ELÉCTRICA UNIDAD CULHUACÁN INTEGRANTES

Los sistemas de numeración se clasifican en: posicionales y no posicionales.

Transcripción:

1 CÓDIGOS CORRECTORES Piensa en un número entre 0 y 15. Si siempre dices la verdad, yo podría adivinar tu número con 4 preguntas, cuyas posibles respuestas son: sí o no. Por qué? Un truco para justificar lo anterior es representar cada número n entre 0 y 15 en sistema binario: n = a 2 3 + b 2 2 + c 2 + d, donde a, b, c, d son o 0 o 1. Es decir, comunicar n es lo mismo que comunicar los cuatro bits a, b, c, d. Por tanto, se requieren de cuatro preguntas para determinar el número. Ejercicio 1: Cuáles podrían ser las preguntas? Pero si ahora complicamos un poco más el problema y se permite mentir una (sola) vez. Cuántas preguntas te tendría que hacer para detectar si mientes? Cuántas en el caso de que quiera corregir tu mentira (o error) y adivinar el número que realmente pensaste? Canal binario perfecto Un canal binario es un canal para comunicar bits. En el primer problema, tenemos un canal binario perfecto para comunicar bloques de 4 bits entre tú y yo. Perfecto porque el canal transmite el mensaje sin cambiarlo. Canales con ruido En la práctica, los canales binarios no son perfectos, y pueden cambiar un 1 en un 0, o viceversa, con cierta probabilidad (Teoría de Shannon). El segundo problema, cuando se permite una mentira, es un ejemplo de esta situación: la mentira intercambia los bits. La teoría de los codigos correctores de error, o teoría de la codificación, trata de métodos de procesar mensajes para proteger contra errores introducidos por el canal. La idea fundamental es introducir cierta estructura o información redundante en el mensaje que se envía. Si esa estructura no está en el mensaje que se recibe, se sabe que ha habido cambios en el canal; una estructura lo suficientemente rica permite recuperar el mensaje original, siempre que no haya habido demasiados cambios. Es muy parecido a lo que ocurre en lenguaje natural: piensa en cómo funcionan los programas correctores de ortografía. Imaginemos que recibimos el siguiente mensaje de texto: En un lular de la Mancha Nos damos cuenta inmediatamente de que se han producido errores en la transmisión, porque lular no es una palabra del castellano. Ésta es una idea importante: no todas las combinaciones de letras son palabras válidas de nuestro diccionario y esto nos permite detectar en este caso el error. Pero vayamos más allá: supongamos que transmitimos la palabra Zaragoza y recibimos, por ejemplo, Zatagoza. Por supuesto, detectamos que se ha producido algún error; pero aún más, cualquiera se sentiría en disposición de corregir el error: se ha producido en el tercer símbolo, y era una r en lugar de una t. La razón es clara: no hay palabras en castellano cerca (en el sentido de parecidas ) de Zaragoza. Pero si transmitimos casa y recibimos cusa, 1

pese a que detectamos el error, ya no está tan claro cómo corregirlo: podríamos haber emitido lusa, musa, cuna, etc. Peor aún, podríamos haber recibido tasa en lugar de casa y ni siquiera podríamos detectar el error. La razón, la misma de antes, pero al revés: ahora hay muchas palabras semejantes ( muy cerca ) a casa. Enumeremos las enseñanzas de estos ejemplos: La estructura: un conjunto de símbolos (el abecedario) y unas palabras formadas con ellos (el diccionario). Las palabras del diccionario deben estar separadas (para detectar errores)... y si están muy separadas, hasta nos atreveremos a corregir. Volviendo a nuestro problema de adivinar un número, un caso más fácil es reconocer un mentiroso, sin intentar recuperar su número. Para esto, en vez de mandar 4 bits [a, b, c, d], se mandan 5, [a, b, c, d, e] donde e se escoge de manera que el número total de 1 s en el vector sea par. Si los bits del mensaje que llega no satisfacen la condición de paridad, se detecta que ha habido errores, pero no hay manera de corregirlos. Ejercicio 2: Continuando con el ejercicio 1, cuál sería la pregunta para determinar e? Para corregir, y no solamente detectar, errores, hay que introducir aún más estructura en el mensaje. 1.1 Códigos de Hamming Un código lineal de longitud n y rango k es un subespacio lineal C con dimensión k del espacio vectorial F n 2, donde F 2 = {0, 1} (es el cuerpo finito con 2 elementos). Tal código se denomina código binario. Los vectores en C se llaman palabras de código. El tamaño de un código es el número de palabras del código y es igual a 2k. El peso w de una palabra del código es el número de sus elementos que son distintos de cero y la distancia entre dos palabras del código es la distancia de Hamming entre ellos, es decir, el número de elementos en los que difieren. La distancia d de un código lineal es el peso mínimo de sus palabras del código distintas de cero, o de forma equivalente, la distancia mínima entre palabras del código diferentes. Un código lineal de longitud n, dimensión k, y distancia d se denomina [n, k, d] código. Más definiciones: Una matriz G de orden k n cuyas filas forman una base de C se llama matriz generadora. Una matriz H de orden (n k) n tal que el producto de H por cualquier elemento de C resulte el vector nulo de llama matriz de comprobación de paridad. Todo elemento del código C es de la forma xg, donde x es un vector en F n 2. Las demostraciones de las siguientes propiedades de los códigos lineales se pueden encontrar en cualquier libro introductorio de Teoría de Códigos: 2

1. Existe una matriz generadora G de C de la forma (I k, A) donde I k es la matriz identidad de orden k y A es una matriz de orden k (n k). 2. Existe una matriz de comprobación de paridad H para C de la forma (B, I n k ), donde B es una matriz de orden (n k) k. Más aún, B = A t. 3. Un código de distancia mínima d detecta d 1 errores y corrige [(d 1) /2] errores. En nuestro problema de adivinar un número, consideraremos el código de Hamming [7, 4, 3] (el hecho que d = 3 es una consecuencia de la definición del código). Según la propiedad 3, detecta dos errores y corrige uno. Una matriz generadora sería 1 0 0 0 1 1 0 G = 0 1 0 0 1 0 1 0 0 1 0 0 1 1. 0 0 0 1 1 1 1 Observa que si x = ( a b c d ), entonces a xg = ( a b c d ) 1 0 0 0 1 1 0 b 0 1 0 0 1 0 1 0 0 1 0 0 1 1 = c d, 0 0 0 1 1 1 1 a + b + d a + c + d b + c + d que es una relación que nos será útil para construir explícitamente el código. Veamos cómo la matriz G genera las palabras del código que incluye los (tres) 3

dígitos redundantes para cada número del 0 al 15: 2 0 2 1 2 3 2 4 2 5 2 6 2 7 0 0 0 0 0 0 0 0 1 1 0 0 0 1 1 0 2 0 1 0 0 1 0 1 3 1 1 0 0 0 1 1 4 0 0 1 0 0 1 1 5 1 0 1 0 1 0 1 6 0 1 1 0 1 1 0 7 1 1 1 0 0 0 0 8 0 0 0 1 1 1 1 9 1 0 0 1 0 0 1 10 0 1 0 1 0 1 0 11 1 1 0 1 1 0 0 12 0 0 1 1 1 0 0 13 1 0 1 1 0 1 0 14 0 1 1 1 0 0 1 15 1 1 1 1 1 1 1 α a b c d e f g P 1 P 2 P 3 P 4 P 5 P 6 P 7 1 1 1 2 2 2 3 3 3 3 4 4 4 5 5 5 5 6 6 6 6 7 7 7 8 8 8 9 9 9 10 10 10 11 11 11 11 12 12 12 13 13 13 13 14 14 14 14 15 15 15 15 15 15 15 y 1 y 2 y 3 y 4 y 5 y 6 y 7 verificándose: e = a + b + d, f = a + c + d y g = b + c + d. Así, las columnas P 1, P 2, P 3, P 4, P 5, P 6, P 7 son los conjuntos que nos determinan las preguntas que vimos en el demo del juego de la adivinanza, e y 1, y 2, y 3, y 4, y 5, y 6, y 7 son las respuestas Sí = 1 o No = 0. Si llamamos α = ( a b c d e f g ) e y = ( ) y 1 y 2 y 3 y 4 y 5 y 6 y 7, pueden suceder dos casos: que sean idénticos o que se diferencien en una sola componente. Equivalentemente, w(α + y) = 0 o 1, respectivamente. Si w(α + y) = 0, el participante dijo la verdad. Si w(α + y) = 1, el participante mintió una vez, y la posición i donde se encuentra el 1 en α + y corresponde a la pregunta P i, en la cual mintió. Ejercicio 3: Convéncete que si hay dos errores, corrige mal. Ejercicio 4: Halla una octava pregunta, que permita hacer lo siguiente: detectar la cantidad de mentiras, si ésta es menor o igual que dos. Si hay una o ninguna mentira se recupera el número. Si hay dos mentiras, se detecta pero no se puede recuperar el número. 1.2 Aplicaciones La teoría de códigos correctores es una de las aplicaciones más recientes del álgebra. En los años cuarenta del siglo XX, Richard Hamming, uno de los inventores de la teoría de códigos, contaba la siguiente anécdota. Cuando trabajaba para la compañia Bell Laboratories tenía acceso a los ordenadores sólo los fines de semana. Solía dejar corriendo en el ordenador sus programas y cuando 4

volvía, el fin de semana siguiente, encontraba que alguno de los programas que más necesitaba no habían sido ejecutados (cuando el ordenador detectaba un error en un programa, detenía su realización y pasaba a otro que estaba en la lista de espera). Esto ocasionaba importantes atrasos en su trabajo y le llevó a plantearse el problema de acondicionar de algún modo la información que maneja el ordenador de tal suerte que pudiera corregir los errores. Imaginemos que se desea enviar información digital (una cadena de ceros y unos) a través de un canal de comunicación de una forma rápida y segura. El canal de comunicación puede ser una línea telefónica, comunicación vía satélite, fibra óptica, almacenamiento de datos en un disco, cinta de computadora, etc. A veces ocurre que el mensaje que se recibe no concuerda con el enviado, principalmente debido a algún error humano, interferencias, deficiencias del equipo, situaciones atmosféricas, etc. Se suele decir que la comunicación se hace a través de un canal con ruido. Los códigos de Hamming no son tan útiles en la actualidad, pero hay otros como los códigos de Reed-Muller (corrige 5 errores por cada secuencia de 32 bits) o códigos de Golay extremadamente útiles en diversos ámbitos. La transmisión de información desde naves espaciales o a través de satélites de comunicaciones es uno de los paradigmas de la teoría de códigos. Los impresionantes avances tecnológicos, en tecnología digital, que en la actualidad son normales y que consideramos parte de nuestra vida cotidiana, como el teléfono móvil, la televisión digital, los sistemas de navegación aérea y marítima, los CD-R, los DVD, en buena medida (pero no totalmente) no serían posibles sin el desarrollo de los códigos detectores-correctores de error. Estos códigos aparecen, además, en medicina (tomografía), en los códigos de barras, en las transacciones comerciales y bancarias, en sistemas de grabación y reproducción de imágenes, audios y vídeos y, en consecuencia, la importancia de su estudio y de la obtención de resultados originales en este contexto está fuera de discusión. 5