Traducción de códigos con elementos de Z4 a

65
TRADUCCIÓN DE CÓDIGOS CON ELEMENTOS DE 4 Z A CÓDIGO BINARIO David Cantor Fonnegra Pontificia Universidad Javeriana Facultad de Ciencias Carrera de Informática Matemática Bogotá, D.C. 26 de Junio de 2008

Transcript of Traducción de códigos con elementos de Z4 a

Page 1: Traducción de códigos con elementos de Z4 a

TRADUCCIÓN DE CÓDIGOS CON ELEMENTOS DE 4Z A CÓDIGO

BINARIO

David Cantor Fonnegra

Pontificia Universidad Javeriana

Facultad de Ciencias

Carrera de Informática Matemática

Bogotá, D.C.

26 de Junio de 2008

Page 2: Traducción de códigos con elementos de Z4 a

TRADUCCIÓN DE CÓDIGOS CON ELEMENTOS DE 4Z A CÓDIGO

BINARIO

David Cantor Fonnegra

Presentado como requisito parcial

Para optar al título de

Informático Matemático

Pontificia Universidad Javeriana

Facultad de Ciencias

Carrera de Informática Matemática

Bogotá, D.C.

26 de Junio de 2008

2

Page 3: Traducción de códigos con elementos de Z4 a

NOTA DE ADVERTENCIA

Artículo 23 de la Resolución N° 13 de julio de 1946

“La Universidad no se hace responsable por los conceptos emitidos por sus alumnos

en sus trabajos de tesis. Solo velará por que no se publique nada contrario al dogma y

a la moral católica y por que las tesis no contengan ataques personales contra persona

alguna, antes bien se vea en ellas el anhelo de buscar la verdad y la justicia”

3

Page 4: Traducción de códigos con elementos de Z4 a

TRADUCCION DE CODIGOS CON ELEMENTOS DE 4Z A CODIGO

BINARIO

David Cantor Fonnegra

APROBADO

__________________________

Fernando Novoa Ramírez M. Sc

Director

________________________ ______________________

Alvaro Moros Otero M. Sc. Moisés Arana Silva M. Sc.

Jurado Jurado

4

Page 5: Traducción de códigos con elementos de Z4 a

TRADUCCION DE CODIGOS CON ELEMENTOS DE 4Z A CODIGO

BINARIO

David Cantor Fonnegra

APROBADO

_________________________ _______________________________

Ingrid Schuler Ph. D. Patricia Hernández Romero. M. Sc.

Decana Académica Directora de Carrera

5

Page 6: Traducción de códigos con elementos de Z4 a

Agradecimientos

Quiero agradecer a Dios porque el me ha dado todo lo que necesito y mas para

poder llegar a esta instancia. A mis padres porque ellos han sido un gran apoyo

para mi vida. A mis maestros, quienes me han enseñado bien y han tenido una gran

paciencia.

6

Page 7: Traducción de códigos con elementos de Z4 a

TABLA DE CONTENIDOS

Págs.

A bstract . ................................................................................................................ 11

1. Introducción. ..................................................................................................... 12

2. Marco Teórico y revisión de literatura. ........................................................... 14

3. Objetivos

3.1 Objetivo general. ............................................................................................... 39

3.2 Objetivos específicos. ....................................................................................... 39

4. Formulación del problema y justificación

4.1 Formulación del problema. ............................................................................... 40

4.2 Preguntas de investigación. ............................................................................... 40

4.3 Justificación de la investigación. ....................................................................... 41

5. Materiales y métodos

5.1 Diseño de la investigación. ............................................................................... 42

5.2 Métodos. ........................................................................................................... 43

5.3 Recolección de la información. ......................................................................... 45

5.4 Análisis de la información. .............................................................................. 49

6. Resultados y Discusión...................................................................................... 52

7. Conclusiones. ..................................................................................................... 54

7

Page 8: Traducción de códigos con elementos de Z4 a

8. Recomendaciones.............................................................................................. 55

9. Referencias......................................................................................................... 56

10. Apéndice A. ....................................................................................................... 60

8

Page 9: Traducción de códigos con elementos de Z4 a

Resumen

El estudio de la teoría de codificación comienza con Shannon en 1948, con un

importante artículo que escribió titulado "A Mathematical Theory of

Communication", con este se da origen a la teoría de la información y a la teoría de

la codificación.

En este estudio resuelve uno de los problemas de la teoría de la codificación, de una

forma simple y sencilla basados en la bibliografía existente, para no especular en

hechos que no existan o cometer errores. El problema es la traducción de elementos

de 4Z a su respectiva representación binaria; esto se hace de forma automática a

través de un programa de computadora.

Para llegar a este programa se hizo un completo estudio de los elementos de 4Z , para

hacer su respectiva representación binaria y las formas de detección de errores, de

manera que se pueda ver si algún factor de 4Z pueda influir al momento de la

traducción. De tal que al momento de hacer la programación del software se

obtengan los resultados esperados.

Una parte importante es el cómo se obtuvo la información y cómo se analiza,

recolectar la información es muy importante y se deben tener en cuenta todas las

posibles fuentes de conocimiento que puedan servir como los libros impresos, así

como los libros que están en medios electrónicos, ya sea con acceso a base de datos o

publicaciones on-line. El análisis se hace de forma que se pueda filtra y comparar la

información entre los diferentes autores, con el fin de escoger los datos más

completos y actualizados.

9

Page 10: Traducción de códigos con elementos de Z4 a

Los resultados obtenidos muestran de forma clara y contundente que se consigue el

objetivo principal, es decir, con ejemplos nada complicados se muestra el correcto

funcionamiento del programa, de una forma sencilla, sin necesidad de una

programación enredada, y sin descuidar la interfaz gráfica del usuario, de esta forma

se garantiza que el software desarrollado pueda ser utilizado por otras personas en el

futuro.

Se cumplen claramente con todos los objetivos establecidos, de manera que en ningún

momento se ve comprometida la integridad de las metas puestas en busca de un mejor

desempeño del software desarrollado y teniendo en cuenta los estándares de

programación más conocidos.

Se muestra cómo es posible hacer que ejercicios puramente teóricos de la teoría de la

codificación, también puedan ser vistos, como aplicaciones, que reflejan todo el

proceso de formación académica de pre-grado.

10

Page 11: Traducción de códigos con elementos de Z4 a

Abstract

The principal motivetion to do this document is show, that is posible create an

aplication over coding theory without need to go so far in formal investigation.

The traduction process from 4Z to binary code is trough Gray map, however,

document is becareful with the lineal codes that appears in 4Z , this means first check

code is an 4Z - lineal code, according its dimension and then without matter if is an

4Z -lineal code or not, the user can decide if traduce code or not. the principal

objective of this investigation is software’s construction, which one make work

traduction from 4Z to binary code be an form automatic and pleasant to acces for

program’s user.

11

Page 12: Traducción de códigos con elementos de Z4 a

Introducción

El problema que se ha planteado desde hace mucho tiempo y ahora con más

frecuencia es transmitir información, sin que halla pérdida de está. En tempranas

épocas después que apareció la escritura, los comandantes de grandes ejércitos para

poder enviar información de un puesto de batalla a otro, trataron de crear símbolos

especiales, o escribiendo de tal forma que solo sus aliados, pudieran entender la

información de los planes de ataque, para que en el caso de, si el mensaje era

capturado por el enemigo, este no lo pudiera entender.

Durante la segunda guerra Mundial, los nazis desarrollaron una máquina llamada

enigma, la cual encriptaba los mensajes de tal forma que los aliados no podían

entender, de la única forma que pudieron descifrar los mensajes fue a través del uso

de computadoras. Así fue el nacimiento de los primeros ordenadores o computadoras,

y después en años posteriores viene su desarrollo vertiginoso hasta los modernos

computadores que se conocen hoy en día.

Un gran problema que se tiene en la actualidad, especialmente en el área de la

computación es esencialmente el mismo con el que nació la computación: La

transmisión de información, esto se refiere a que la información sea sólo entendida

por un grupo de personas (encriptación), y que la información transmitida no cambie,

por diferentes motivos durante la transmisión (teoría de la codificación).

En este trabajo se toma uno de los problemas de teoría de la codificación y se le da

12

Page 13: Traducción de códigos con elementos de Z4 a

una solución a través de un software, basado en los escritos que se han hecho durante

los últimos años, para no caer en ambigüedades y no dejar de lado el legado histórico

de los investigadores anteriores.

El problema consiste en poder traducir elementos que pertenezcan a 4Z (más adelante

se definirá de forma exacta este concepto), y traducirlos a 2Z , de forma que no se

presente pérdida de información durante el proceso de traducción. Esto se garantiza

por medio de la detección de errores, que tiene sus orígenes y bases en la teoría de

códigos.

La solución planteada será un programa de computador el cual hace el proceso de

traducción y corrección de errores de forma automática, de modo que el usuario no

tenga que preocuparse por ninguna operación algebraica o de si existe algún error en

el momento en que se hizo la traducción.

Con este programa de computadora se contribuye en forma significativa con todos

aquellas personas que deseen comenzar un estudio sobre la teoría de la codificación o

que estén en el proceso de investigación o aprendizaje, ya que cuentan con una

herramienta pedagógica, para poder entender de una forma clara, la teoría de la

codificación, sin necesidad de que sólo se vea la materia estrictamente teórica o cuyas

aplicaciones son muy especializadas en campos como: la transmisión de información

de satélites, transmisión de información y fotos desde las diferentes misiones al

planeta Marte, lectores de CD o DVD u otros.

13

Page 14: Traducción de códigos con elementos de Z4 a

Marco Teórico y revisión de literatura

La primera parte del marco teórico es albergar todos los conceptos necesarios para

poder entender lo realizado en este trabajo.

Conceptos Básicos de álgebra moderna:

Conjunto: “Un enjambre de abejas, un ejército, un rebaño de ovejas, son ejemplos de

conjuntos.

Siendo, los conceptos de conjunto, elemento y pertenencia los más intuitivos de la

Matemática, los consideraremos como conceptos primitivos de este estudio, es decir,

no trataremos de definirlos sino que iremos simultáneamente trabajando con ellos y

precisándolos mediante sus propiedades.

Nuestro sentido común nos dice que podemos determinar un conjunto de dos

maneras: 1) Dando una lista de los objetos o elementos que lo forman o 2) Dando la

condición o las condiciones que deben cumplir sus elementos; estas condiciones

deberán ser lo suficientemente precisas para que dado cualquier objeto, podamos

decidir si pertenece o no al conjunto en cuestión.

Cuando se determina un conjunto mediante una lista, es costumbre decir que se está

determinando por extensión y escribir sus elementos entre dos llaves; por ejemplo,

{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}

es el conjunto de los números llamados dígitos en tanto que

14

Page 15: Traducción de códigos con elementos de Z4 a

{3, 5, 7, 11, 17, 19}

es el de los números primos mayores que 2 y menores que veinte.

Nótese que con la frase anterior estamos definiendo al mismo conjunto {3, 5, 7, 11,

17, 19} por medio de las condiciones que cumplen sus elementos: éstos deben ser

números naturales (o enteros), primos mayores de dos y menores que 20. Decimos en

este caso que estamos definiendo al conjunto por comprensión y lo escribimos así:

{x | x es un número natural primo ⋀ x es mayor que 2

⋀ x es menor que 20}.

Se puede leer como “El conjunto de los elementos x tales que…” escribiendo en el

sitio de los puntos suspensivos la condición que determinará al conjunto.”[1]

.

Se decide incluir varias definiciones de función para tener un mejor entendimiento en

el momento de hacer referencia más adelante cuando se empiece a trabajar con el

concepto de grupo. A pesar de que esto parezca un poco inexacto, de esta manera

considera las múltiples definiciones que se da al concepto de función debido a que

cada autor maneja una propia e incluso distinta según el desarrollo matemático que se

esté haciendo, por esta razón se incluyen varias definiciones para que no exista la

posibilidad de un vacío conceptal al momento de usar la palabra función.

Función: “Una función, f, es una regla que asigna, a un elemento x de un conjunto A,

un y solo un elemento f(x), que pertenece a un conjunto B.

Casi siempre manejaremos funciones para las cuales A y B son conjuntos de números

reales. El conjunto A se llama dominio de la función. El número f(x) es el valor de f

en x, y se expresa como “f de x”, o “efe de equis”. El contradominio (algunos

autores llaman ámbito, rango, codominio, dominio de imágenes o dominio de valores

al contradominio) de f es el conjunto de todos los valores posibles de f(x) cuando x

varía en el dominio, esto es, {f(x) | x ∊ A}.” [2]

15

Page 16: Traducción de códigos con elementos de Z4 a

Función inyectiva: “Diremos que una función f de A en B es uno a uno o inyectiva (o

que es una inyección) si elementos distintos de A tienen imágenes distintas mediante

f; es decir

f es inyectiva ⇔ ( ∀ u, v ∊ D(f)) (u ≠ v ⇒ f(u) ≠ f(v)).” [3]

Se debe entender D(f), como el dominio de la función f.

Función: “Una función f: A→B es una regla que asigna a cada a ∊ A un elemento

específico f(a) ∈ B. Llamaremos a A dominio de f y a B contradominio de f. El

conjunto {f(x) | x ∊ A} formado por todos los valores de f(x) se denomina rango de f.

Denotado por f(A), el rango es un subconjunto del contradominio de B. Puede ser

todo B, en cuyo caso se dice que f es sobre o sobreyectiva en B.

Las funciones también se denominan aplicaciones o transformaciones.” [4]

Función biyectiva: “Se dice que una función f: A → B es biyectiva (o que es una

biyección de A en B o que es una correspondencia biunívoca) si f es simultáneamente

inyectiva y sobreyectiva.” [5]

“La aplicación σ: S → T es una correspondencia biyectiva entre S y T si y sólo si

existe una aplicación μ: T → S, tales que σ ◦ μ y μ ◦ σ son las aplicaciones identidad

sobre S y T, respectivamente.”[6], es decir, (σ ◦ μ)(a) = a , ∀ a ∈ T y (μ ◦ σ)(b) = b,

∀ b ∈ T

Una forma más simple para ver este concepto es que los elementos del conjunto S son

enviados al conjunto T a través de la aplicación σ y estos elementos que están en el

conjunto T, son enviados de vuelta al conjunto S a través de la aplicación μ.

16

Page 17: Traducción de códigos con elementos de Z4 a

Ya teniendo las definiciones de aplicación (función), aplicación inyectiva, aplicación

sobreyectiva y aplicación biyectiva, se dará la siguiente definición, con una nota

introductoria primero.

“Dado un conjunto no vacío S definimos A(S) como el conjunto de todas las

aplicaciones biyectivas del conjunto S sobre sí mismo. Para cualesquiera dos

elementos σ, τ ∊ A(S) introduciremos un producto que representamos por σ τ, y una

investigación posterior nos mostrará la certeza de las siguientes afirmaciones acerca

de los elementos de A(S) sometidos a este producto:

1) Siempre que σ, τ ∊ A(S) entonces se sigue que σ τ está también en A(S).

Describimos esto diciendo que A(S) es cerrado respecto al producto (a veces

decimos, “cerrado respecto a la multiplicación”).

2) Para cualesquiera tres elementos σ, τ, μ ∊ A(S), σ (τ μ) = (σ τ) μ. A esta

relación se le llama ley asociativa.

3) Hay un elemento muy especial l∊ A(S) que satisface l σ = σ l = σ para todo

σ∊ A(S). A tal elemento se le llama elemento identidad de A(S).

4) Para todo σ∊ A(S) hay un elemento al que representamos por σ 1− también en

A(S), tal que σ σ 1− = σ 1− σ = l. Esta situación generalmente se describe

diciendo que todo elemento de A(S) tiene un inverso en A(S)

Se verifica también otro hecho acerca de A(S); a saber, que siempre que S tiene

tres o más elementos podemos encontrar dos elementos α , β ∊ A(S) tales que α

β ≠ β α . Esta posibilidad que contradice nuestra experiencia e intuición

matemática habituales, introduce una riqueza en A(S).”[7]

17

Page 18: Traducción de códigos con elementos de Z4 a

A continuación se definirá qué es un grupo, porque en un análisis posterior se

necesitará claridad de que es un grupo y cuáles son las propiedades que tiene un

grupo.

Grupo: “Un conjunto no vacío de elementos G se dice que forma un grupo si en G

está definida una operación binaria, llamada producto y denotada por (⋅) tal que:

1) a, b ∊ G implica que a⋅b ∊ G (G es cerrado para el producto).

2) a, b, c ∊ G implica que a⋅ (b⋅c) = (a⋅b) ⋅c (ley asociativa).

3) Existe un elemento e ∊ G tal que a⋅e = e⋅a = a para todo a ∊ G (existencia de un

elemento identidad en G).

4) Para todo a ∊ G existe un elemento aˉ¹ ∊ G tal que a⋅aˉ¹ = aˉ¹⋅a = e (existencia

de inversos en G).”[8]

Grupo Abeliano: “Un grupo G se dice que es abeliano (o conmutativo) si para

cualesquier a, b ∊ G se tiene: a⋅b = b⋅a.” [9]

Subgrupo: “Un subconjunto H de un grupo G se dice que es un subgrupo de G si

respecto al producto en G, H mismo forma un grupo.” [10]

A continuación se definirá, el concepto de anillo este concepto se utiliza dentro de las

definiciones del algoritmo de traducción de elementos de 4Z a 2Z o representación

binaria.

Anillo: “Un conjunto no vacío R se dice que es un anillo asociativo si en R están

definidas dos operaciones, denotadas por “+” y “⋅” respectivamente tales que, para

18

Page 19: Traducción de códigos con elementos de Z4 a

cualesquiera a, b, c en R:

1. a + b está en R.

2. a + b = b + a.

3. (a + b) + c = a + (b + c).

4. Hay un elemento 0 en R tal que a + 0 = a (para todo a en R).

5. Existe un elemento –a en R tal que a + (-a) = 0.

6. a⋅ b está en R.

7. a⋅ (b⋅ c) = (a⋅ b) ⋅ c.

8. a⋅ (b + c)= a⋅ b + a⋅ c y (b + c) ⋅ a = b⋅ a + c⋅ a (las dos leyes

distributivas).” [11]

Anillo Conmutativo: “Si la multiplicación en R es tal que a⋅ b = b⋅ a para todo a, b

en R entonces llamamos a R anillo conmutativo.” [12]

Módulo: “Sea R un anillo cualquiera; un conjunto no vacío M se dice que es un R-

módulo (o un módulo sobre R) si M es un grupo abeliano bajo la operación +, tal que

para cada r∊ R y m∊ M existe un elemento rm en M, de tal modo que se verifica:

1) r(a + b) = ra + rb.

2) r ( sa ) = ( rs )a.

3) (r + s) a = ra + sa.

para cualesquiera a, b∊ M y r, s∊ R.” [13]

Submódulo: “Un subgrupo aditivo A del R-módulo M se llama submódulo de M si

siempre que r∊ R y a∊ A, entonces ra∊ A.” [14]

19

Page 20: Traducción de códigos con elementos de Z4 a

Espacio Vectorial: “Un espacio Vectorial real es un conjunto V con dos operaciones

⊕ y ⊗ que satisfacen las siguientes propiedades:

( α ) Si u y v son elementos cualesquiera en V, entonces u ⊕ v está en V (es decir, V

es cerrado bajo la operación ⊕).

(a) u ⊕ v = v ⊕ u, para u y v en V.

(b) u ⊕ (v ⊕ w) = (u ⊕ v) ⊕ w, para u, v, w en V.

(c) Existe un elemento 0 en V tal que

u ⊕ 0 = 0 ⊕ u = u, para toda u en V.

(d) Para cada u en V existe un elemento -u en V tal que

u ⊕ -u = 0.

( β ) Si u es cualquier elemento de V y c es cualquier número real, entonces c . u está

en V (es decir, V es cerrado bajo la operación .).

(e) c ⊗ (u ⊕ v) = (c ⊗ u) ⊕ (c ⊗ v), para todo número real c y toda u y v en V.

(f) (c + d) ⊗ u = (c ⊗ u)⊕ (d ⊗ u), para todo número real c y d y toda u en V.

(g) c ⋅ (d ⊗ u) = (cd) ⊗ u, para todo número real c y d y toda u en V.

(h) 1 ⊗ u = u para toda u en V.

Los elementos de V se llaman vectores; los números reales se llaman escalares. La

operación ⊕ es la suma vectorial; la operación ⊗ es la multiplicación escalar. El

vector 0 en la propiedad (c) es el vector cero. El vector -u en la propiedad (d) es el

20

Page 21: Traducción de códigos con elementos de Z4 a

vector negativo de u.” [15]

Subespacio: “Sea V un espacio vectorial y W un subconjunto no vacío de V. Si W es

un espacio vectorial con respecto de las operaciones en V, entonces W es un

subespacio de V.” [16]

Anillo de enteros 2Z : el anillo de enteros 2Z o simplemente 2Z , consiste en el

conjunto que solo contiene 2 elementos y son {0,1}, estos números o elementos son

el residuo de dividir cualquier número entero entre 2. Nótese que los elementos de

este anillo son el código binario.

Ejemplo:

223456 mod 2 = 0. 89543 mod 2 = 1.

La demostración de que este conjunto de enteros es un anillo es simple y no requiere

mayor esfuerzo, ya que la suma y multiplicación son las conocidas desde primaria.

Solo se debe recordar que siempre que se haga una suma o multiplicación, se debe

dividir entre 2 y tomar su residuo.

Anillo de enteros 4Z : el anillo de enteros 4Z o simplemente 4Z , consiste de un

conjunto que solo contiene 4 elementos y son {0, 1, 2 ,3}, estos números o elementos

son el residuo de dividir cualquier número entero entre 4 es decir por ejemplo:

106384 mod 4 = 0. 50193 mod 4 = 1.

5957402 mod 4 = 2. 123 mod 4 = 3.

Demostrar que este conjunto es anillo es bastante sencillo, la operación de suma y

multiplicación son las habituales. Solo hay que recordar que sin importar si se hace

suma o multiplicación siempre se debe tomar el residuo que se obtiene al dividir entre

4.

21

Page 22: Traducción de códigos con elementos de Z4 a

Dado que este trabajo trata con información, es decir, códigos cuyos elementos son

traducidos de un anillo a otro totalmente diferente, es necesario y conveniente

enmarcar este estudio dentro de la teoría de la información y la teoría de la

codificación.

Comenzando con la Teoría de la Información

Teoría de la Información

Orígenes de la Teoría de la Información

“En 1948. Claude E. Shannon publicó un artículo titulado «Una teoría matemática de

la comunicación», que en 1949 apareció en forma de libro. Con anterioridad solo

algunos investigadores aislados habían dado algunos encaminados hacia una teoría

general de la comunicación. Actualmente, ha pasado a ser un campo de investigación

captado por todos; se han publicado libros y se han celebrado reuniones, congresos,

etc.

Todos nosotros usamos con cierta frecuencia las palabras Comunicación e

Información y sin embargo menos preciamos su auténtica importancia. Un filósofo

moderno, señaló la gran importancia que tiene en nuestras vidas la comunicación;

nosotros comunicamos conocimientos, errores, opiniones, ideas, experiencias,

deseos, órdenes, emociones, sentimientos... El calor y el movimiento pueden ser

comunicados, así como la fuerza, la debilidad y la enfermedad. Se justifica por tanto

la importancia de una teoría de la comunicación de validez y utilidad generalmente

aceptadas.

Si a la palabra teoría añadimos la palabra matemática, con lo que implica de rigor,

22

Page 23: Traducción de códigos con elementos de Z4 a

aumenta notablemente la atracción. ¿Quizá si nos aprendiéramos unas cuantas

fórmulas se rendirían nuestros problemas de comunicación? En ese caso pasaríamos a

ser los dueños de la información en lugar de los esclavos, o las víctimas de una mala

información. Pero si miramos un poco hacia atrás, vemos que desgraciadamente esta

no ha sido la marcha de la ciencia. Hace 2.300 años, otro filósofo, Aristóteles,

discutió en su Física una noción tan universal como la de comunicación, y fue la de

movimiento.

Expuso el movimiento en toda su complejidad, que incluso resulta algo confusa para

nosotros. Este concepto resultó enigmático para sus sucesores, durante dos milenios,

hasta que Newton enuncio sus leyes, que aún usan los ingenieros para diseñar sus

máquinas y los astrónomos para estudiar el movimiento de los cuerpos celestes. Sin

embargo, físicos posteriores han encontrado que las leyes de Newton son solamente

formas especiales que adoptan leyes más generales, cuando las velocidades son

pequeñas frente a la de la luz y cuando la escala del fenómeno es grande comparada

con el átomo. Las leyes de Newton produjeron una auténtica revolución científica y

filosófica: basándose en ellas, Laplace redujo el sistema solar a una máquina

explicable.

Nuestro idioma está adaptado a nuestras necesidades o quizá a las de nuestros

antepasados. No podemos tener una palabra distinta para cada objeto o para cada

suceso diverso, en ese caso tendríamos que estar inventando continuamente palabras

y la comunicación sería imposible. Para tener un lenguaje práctico, muchas cosas o

muchos sucesos deben ser enunciados con una misma palabra. Decimos que los

hombres y los caballos corren, o se habla de una carrera de automóviles, una carrera

universitaria o una carrera en una media.

La unidad entre todas estas manifestaciones reside mucho más en el lenguaje que en

cualquier similitud física que observemos. Sería ineficiente buscar una teoría

23

Page 24: Traducción de códigos con elementos de Z4 a

científica, sencilla y útil, que abarcara todos los significados de la palabra correr, del

mismo modo que sería descabellado tratar de encerrar en una teoría todos los

movimientos discutidos por Aristóteles o todos los tipos de comunicación e

información que se han ido descubriendo posteriormente.

Las palabras usadas en las descripciones científicas están sacadas especialmente de

nuestro vocabulario cotidiano. Newton empleó las palabras fuerza y atracción en un

sentido restringido y totalmente diferente a cuando nosotros hablamos de la fuerza de

las circunstancias o de la atracción de una estrella de cine. En virtud de todo esto, no

debemos esperar que la teoría de la información tenga algo importante que decir,

sobre toda cuestión en la que empleemos las palabras comunicación e información.

Las ideas e hipótesis de una teoría determinan la generalidad de la misma, es decir, la

amplitud del conjunto de fenómenos a que es aplicable. Así, las leyes de Newton

explican el movimiento de los planetas, el del péndulo y el comportamiento de toda

clase de mecanismos, pero sin embargo, no explican las ondas radioeléctricas.

La teoría más general, la que explique mayor número de fenómenos, será la más

importante y la mejor, y puede siempre especializarse para tratar los casos

particulares.

Podemos hablar de teorías restringidas o teorías muy amplias en sus aplicaciones.

Podemos asímismo, hablar de teorías físicas o teorías matemáticas. Las físicas son las

que describen completamente un grupo de fenómenos físicos que en la práctica

siempre es limitada; las teorías se hacen más abstractas o matemáticas cuando tratan

de clases idealizadas de fenómenos o solamente de ciertos aspectos de un fenómeno.

Las leyes de Newton san leyes físicas, la teoría de redes esta más del lado

matemático, en tanto que trata una variedad de fenómenos físicos idealizados.

24

Page 25: Traducción de códigos con elementos de Z4 a

En estos términos, la teoría de la comunicación es a la vez fuertemente matemática y

completamente general. Aunque nació del estudio de la comunicación eléctrica, ataca

los problemas de un modo muy general y abstracto y proporciona una medida

universal (un bit) de la cantidad de información en términos de elección o

inseguridad.

Esta teoría nos dice cuantos «bits» de información pueden ser enviados por segundo a

través de canales de comunicación perfectos o imperfectos, usando las descripciones

abstractas de las propiedades de estos canales. Nos dice, asímismo, cómo medir la

capacidad de generación de información de una fuente de mensajes, como puede ser

un locutor a un escritor. Nos indica cómo «codificar» los mensajes procedentes de

una fuente de un modo que resulte eficiente para una transmisión sobre un tipo

particular de canal y nos dice también como detectar y corregir errores en la

transmisión.

Debido a que todas estas materias las discute de un modo muy general y abstracto.,

resulta a veces difícil emplearla en conexión con problemas prácticos particulares.

Por estos mismos motivas, su campo de aplicación es muy amplia y resulta muy útil,

en conexión con el lenguaje hablado y escrito, la transmisión de mensajes, el

comportamiento de las máquinas y quizá el comportamiento de las gentes.

En esencia, tal como Shannon la describió, es una teoría matemática, cuyos conceptos

están formulados en términos matemáticos de los que se pueden dar ejemplos físicos

muy diferentes. La pueden usar los ingenieros, los psicólogos o los físicos, pero sigue

siendo una teoría matemática.

Si nos remontamos históricamente a buscar los orígenes de la teoría de la información

de Shannon, nos encontramos en el simple y aparentemente fácil de entender

25

Page 26: Traducción de códigos con elementos de Z4 a

fenómeno de la telegrafía. Otra cosa que nos muestra la historia es lo difícil que

resulta llegar al conocimiento.; ahí las leyes de Newton resultan simples y casi

inevitables, pero hubo un día en que resultaron sorprendentes. Al buscar el origen de

la teoría de la información es muy fácil caer en un laberinto de difícil salida, debido a

que en Termodinámica y en Mecánica Estadística1 se usa una cantidad llamada

entropía, y también en la teoría de la información se usa una cantidad llamada con ese

nombre. En una publicación de 1929 del físico L. Szilard, hace referencia a una idea

de información para resolver una paradoja física. Según esto, podría parecer que la

teoría de la información tiene su origen en la Mecánica Estadística.

Esta idea equivocada ha venido causando gran confusión entre muchos técnicos.

Realmente nació del esfuerzo para resolver ciertos problemas en el campo de la

comunicación eléctrica, y si una determinada cantidad recibió el nombre de entropía,

fue por la analogía matemática de su expresión con la de la Mecánica Estadística.

En Termodinámica, la entropía de un gas depende de su temperatura, volumen, masa

y naturaleza, del mismo modo que la energía. Cuando se realiza un proceso

reversible, la entropía permanece constante, pero la energía cambia. En ese sentido, la

entropía es un indicador de la reversibilidad del proceso. La mayoría de los

fenómenos físicos son irreversibles, y esto implica un aumento de la entropía. Un

aumento de la entropía se puede interpretar también como una disminución de la

energía disponible. 1 La mecánica estadística o física estadística es la parte de la Física que trata de determinar el comportamiento agregado Termodinámica de sistemas Macroscopico a partir de consideraciones microscópicas utilizando para ello herramientas Estadística junto a leyes Mecánica.

Para predecir el comportamiento de un Gas, la mecánica exigiría calcular la trayectoria exacta de cada una de las partículas que lo componen (lo cual es un problema inabordable). La termodinámica hace algo radicalmente opuesto, establece unos principios cualitativamente diferentes a los mecánicos para estudiar una serie de propiedades macroscópicas sin preguntarse en absoluto por la naturaleza real de la materia de estudio. La mecánica estadística media entre ambas aproximaciones: ignora los comportamientos individuales de las partículas, preocupándose en vez de ello por Promedio. De esta forma podemos calcular las propiedades termodinámicas de un gas a partir de nuestro conocimiento genérico de las Molécula que lo componen aplicando leyes mecánicas.

26

Page 27: Traducción de códigos con elementos de Z4 a

La Mecánica Estadística da un significado de que el incremento de la entropía supone

una disminución del orden; pero si preguntamos qué significa orden, en cierto modo

podemos relacionarlo con conocimiento.

Desorden, en el sentido que se usa en Mecánica Estadística, implica imposibilidad de

predecir, por falta de conocimiento, la posición y velocidad de las moléculas.

Veamos ahora el sentido de la entropía en la teoría de la información. Consideremos

una fuente de mensajes, como puede ser un locutor o un escritor, que pueden producir

en un momento dado cualquiera de varios mensajes posibles. Un mensaje que se

obtiene de entre 100 mensajes posibles, transporta menos cantidad de información

que uno que se produzca de entre un millón de mensajes posibles.

La entropía de la Teoría de la Información es una medida de esta indeterminación, la

cual se toma como una medida de la cantidad de información transportada por el

mensaje procedente de una determinada fuente. A mayor conocimiento acerca de los

mensajes que puede producir la fuente generadora, menor indeterminación, menor

entropía y menor información.

Las ideas que dan origen a las distintas entropías son completamente diferentes y se

puede usar una sin tener en cuenta para nada la otra. Sin embargo, la de la Mecánica

Estadística y la de la Teoría de la Información, pueden ser ambas descritas en

términos de inseguridad con términos matemáticos análogos.

Durante un viaje trasatlántico en 1832, S. F. B. Morse, comenzó a trabajar en la

primera forma verdaderamente lograda del telégrafo eléctrico. Tal como él lo hizo era

mucho más complicado del que utilizamos actualmente; aquel dibujaba sobre una

cinta de papel líneas cortas y largas cuya sucesión no representaba las letras de una

27

Page 28: Traducción de códigos con elementos de Z4 a

palabra, sino números asignados a palabras de un diccionario, que Morse completó en

1837. Esto es una forma eficiente pero incómoda, de codificar.

Cuando Morse trabajó con Alfred Vail, se abandonó el viejo código, y lo que ahora

conocemos como código Morse fue ideado en 1838. En éste, las letras están

representadas por espacios, puntos y rayas. El espacio es ausencia de corriente, el

punto es corriente de corta duración y la raya es una corriente de mayor duración.

Se asignaron hábilmente las combinaciones de puntos y rayas a las letras del alfabeto.

La E, que es la letra más frecuente en inglés, fue representada por el símbolo más

sencillo, el punto; y así se realizó la asignación de códigos a todas las letras, siendo

las más frecuentes las que recibieron códigos más cortos. Un aspecto curioso es que

la elección no estuvo basada en las tablas de la frecuencia relativa de aparición de las

distintas letras en los textos ingleses, sino que se estimó contando el número de tipos

de los distintos compartimentos de una caja de tipos de imprenta.

Ante la pregunta de si cabría hacer una asignación que permitiera transmitir más

rápidamente por telégrafo los textos ingleses, nuestra moderna teoría nos dice que

sólo ganaríamos alrededor de un 15 %.

Si se envían puntos y rayas demasiado rápido, estos puntos y rayas llegan juntos al

extremo receptor. Como se ve en la figura 1; cuando se envía desde el emisor un

impulso corto de corriente que se establece y cesa de modo brusco, se recibe en el

extremo receptor un impulso con subida y caída graduales de la corriente.

28

Page 29: Traducción de códigos con elementos de Z4 a

Por tanto, cuando se transmite una señal clara y distinta, puede suceder que se reciba

una señal con vagas elevaciones y caídas de la corriente, que resulte difícil de

interpretar. Figura 2.

Si hacemos nuestros puntos, espacios y rayas lo bastante largos, la corriente se

recibirá mejor, pero disminuirá notablemente la velocidad de la transmisión.

29

Page 30: Traducción de códigos con elementos de Z4 a

Incluso teniendo en cuenta esta limitación de velocidad, se pueden intentar varias

cosas para aumentar el número de letras que se pueden transmitir por un circuito

dado, en un periodo dado de tiempo. Así, se pensó en la telegrafía de doble corriente;

una corriente eléctrica en una dirección representa un punto y una corriente eléctrica

en la otra dirección una raya la ausencia de corriente el espacio.

En la telegrafía de una polaridad, sólo disponemos de dos elementos de

representación: corriente y no corriente, 1 y 0; en la de doble corriente disponemos de

tres códigos +1, 0 y -1.

En 1874, Edison fue más allá y usó dos direcciones y dos intensidades de corriente en

su sistema cuadruplexor. Estos estados los podemos representar con los códigos +3,

+ 1, -1, -3.

Así, para una velocidad de transmisión de señales eléctricas dada, el uso de cuatro

valores de la corriente nos permite enviar dos mensajes de información

independientes, cada uno tan rápidamente como antes enviábamos uno con corriente

de dos valores, ya que podríamos representar cuatro estados, a saber (figura 3).

30

Page 31: Traducción de códigos con elementos de Z4 a

Pero por las deformaciones que antes veíamos que sufre la corriente en su transmisión

al usar distintos tipos de símbolos simultáneamente, las cosas se complican bastante

en el receptor.

Además, siempre hay corrientes extrañas que interfieren con las señales transmitidas,

que llamaremos ruido y que vienen a complicar aun más el problema.

Ya los primeros telegrafistas tuvieron intuitivamente un buen conocimiento de las

limitaciones, asociadas con la velocidad de transmisión, la interferencia o ruido, la

dificultad de distinguir entre varios valores de la corriente posible y la limitación de

la corriente que puede ser empleada. Pero con un conocimiento intuitivo no bastaba,

se necesitaba un análisis matemático exacto de estos problemas.

31

Page 32: Traducción de códigos con elementos de Z4 a

Desde los comienzos se aplicaron las matemáticas en estos problemas. En 1885,

William Thomson (Lord Kelvin) calculó la corriente recibida cuando se transmite un

punto o una raya en un cable submarino. Con posterioridad a la invención del

teléfono en 1875, se tocaron más intensamente estos problemas.

Muchos hombres colaboraron en el establecimiento del tratamiento matemático

adecuado a la telefonía; entre ellos, Poincaré, Heaviside, Pupin y Campbell. Los

métodos que emplearon fueron una extensión del trabajo que Fourier realizó en el

siglo XIX en relación con el flujo del calor. Este trabajo fue una herramienta natural

para el análisis del comportamiento de corrientes eléctricas que varían con el tiempo

de un modo complicado, tal como lo hacen las de la telefonía y la telegrafía. Basó sus

estudios sobre una función matemática muy particular, que es sinusoidal. Cada onda

sinusoidal puede ser perfectamente caracterizada por tres magnitudes: «amplitud, fase

y frecuencia».

Fourier demostró un teorema que asombró a sus contemporáneos: «cualquier

variación de una cantidad con el tiempo, se puede representar precisamente como una

suma de variaciones sinusoidales de diferentes amplitudes, fases y frecuencias. La

cantidad variable puede ser la corriente o tensión en un hilo telegráfico, el

desplazamiento de una cuerda vibrante, etc. La utilidad de este teorema depende de

dos hechos físicos fundamentales: Los circuitos empleados en transmisión de señales

eléctricas no varían con el tiempo y se comportan de un modo lineal».

32

Page 33: Traducción de códigos con elementos de Z4 a

La linealidad significa que si conocemos las señales de salida correspondientes a

cualquier número de señales de entrada enviadas separadamente, podemos ca1cular la

señal de salida cuando se envían juntas varias señales de entrada. Es decir, en un

sistema de transmisión o circuito eléctrico-lineal, las señales actúan como si

estuvieran presentes independientemente una de otra.

EI análisis de Fourier es una poderosa herramienta para el análisis de los problemas

de transmisión, que proporciona una variedad de resultados que no pueden ser

obtenidos de otra forma.

Los primeros telegrafistas inventaron toda clase de formas y combinaciones de

señales para alcanzar las propiedades deseables, pero les faltó aptitud matemática y

fallaron en sus razonamientos.

Nyquist, en 1924, publicó un artículo tratando varios problemas de la telegrafía, y

entre otras cosas aclara la relación entre la velocidad telegráfica y el número de

valores de la corriente. Dijo que si enviamos símbolos (sucesivos valores de la

corriente) a velocidad constante, la velocidad de transmisión de información W está

relacionada con el número m de símbolos diferentes a valores de la corriente

disponible

W = K Ig m

K es una corriente que depende de cuantos valores sucesivos de la corriente se envíen

por segundo.

Nyquist mostró como se podrían formar señales telegráficas que no tuvieran

componentes sinusoidales de frecuencias lo bastante altas para ser oídas como

33

Page 34: Traducción de códigos con elementos de Z4 a

interferencias en unos teléfonos conectados a la misma línea; y observó que la

velocidad de transmisión era proporcional a la anchura de la banda de frecuencias

usadas en telegrafía. Además, demostró que la señal telegráfica transmitida contenía

en todo momento una componente sinusoidal de amplitud constante. Nyquist llamó a

esta señal, que no aportaba ninguna información, «componente redundante».

Hartley se dedicó durante algún tiempo a pensar filosóficamente sobre la

«transmisión de información y, finalmente, formuló de un modo interesante el

problema de la comunicación. Consideró al transmisor de un mensaje como equipado

con un conjunto de símbolos (el alfabeto, por ejemplo) de los que selecciona

mentalmente uno a continuación de otro, generando así una frecuencia de símbolos.

Definió la información (I) del mensaje como el logaritmo del número de posibles

secuencias de símbolos que puedan haber sido seleccionadas y demostr6 que:

I = n lg N

n = número de símbolos del mensaje

N = número de símbolos del alfabeto elegido

Esto se puede aceptar desde nuestro conocimiento actual de la teoría de la

información, sólamente si los símbolos necesarios se eligen independientemente y si

cualquiera de los N tiene igual probabilidad de ser elegido.

Hartley estableció, de acuerdo con Nyquist, que la cantidad de información que puede

ser transmitida es proporcional a la anchura de la banda multiplicada por el tiempo de

34

Page 35: Traducción de códigos con elementos de Z4 a

transmisi6n; y esto nos lleva una vez más, a la importancia que en la velocidad de

transmisión tiene el número de valores de la corriente que se pueden seleccionar.

Después de estos trabajos se abandonó bastante la teoría de la información; los

investigadores se ocuparon en establecer y estudiar sistemas particulares de

comunicación, que crecieron notablemente en número y complicación durante la

Segunda Guerra Mundial.

Con la aparición del radar surgieron nuevos problemas; en esencia consistían en que

no se trataba con una señal sola, sino con un conjunto de posibles señales

(trayectorias del avión), más ruidos impredecibles, y se trataba de seleccionar la señal

de información eliminando los ruidos.

Este problema fue resuelto en Rusia por Kolmogoroff, y en América del Norte por

Wiener, que durante la guerra produjo una abundante documentación muy

complicada y escrita en papel amarillo, por lo que afectuosamente fue denominada

como «el peligro amarillo» (a causa de los «dolores de cabeza» que causaba), en la

cual quedaba resuelto el difícil problema.

Durante y después de la guerra, otro matemático, Shannon, se interesó por el

problema de la comunicación. Comenzó por estudiar todos los sistemas que habían

surgido, y buscó algún método básico de comparar sus métodos. En el mismo año

(1948) en que Wiener publicó su «Cibernética», en la que trata de la comunicación y

el control, Shannon publicó un artículo en dos partes, que se considera el auténtico

fundamento de la teoría de la información.

Tanto Wiener como Shannon trataron el problema de enfrentarse, no con una señal

simple, sino de hacerlo adecuadamente con «cualquier» señal seleccionada de un

35

Page 36: Traducción de códigos con elementos de Z4 a

grupo de señales posibles.

EI nombre de Wiener se ha asociado al campo de la extracción de señales de un

conjunto dado, de ruido de tipo conocido. Es decir, el ejemplo que antes se

mencionaba: el piloto enemigo sigue un recorrido elegido por él, y el radar añade el

ruido de origen natural, a las señales que marcan la posici6n del avión. Tenemos un

conjunto de posibles señales (posibles trayectorias), no de nuestra propia elección

mezcladas con ruido, tampoco de nuestra propia elección, y tratamos de hacer la

mejor estimación de los valores presentes o futuros de la señal (posición del avión) a

pesar del ruido.

Mientras que el nombre de Shannon ha sido conocido con asuntos tales como

mensajes codificados elegidos de un conjunto conocido y que pueden ser transmitidos

con precisión y rapidez, en presencia del ruido. En el problema tratado por Shannon,

se nos permite elegir cómo representar el mensaje por medio de una señal eléctrica,

cuántos valores de la corriente podríamos permitir y cuántos se transmitirían por

segundo. EI problema no está, por tanto, en cómo tratar una señal añadida al ruido,

para obtener una mejor estimación de dicha señal, sino qué clase de señal enviar para

transportar mejor, mensajes de un tipo dado, sobre un circuito ruidoso particular.

Esta cuestión de la codificación eficiente y sus consecuencias, constituyen el núcleo

de la teoría de la información.

Después de toda esta exposición, quizá lo más esencial sea observar que la «teoría de

la información» tratada por Shannon en toda su generalidad, nació del estudio de

problemas particulares de la comunicación eléctrica. Morse se enfrentó con el

problema de la representación del alfabeto por medio de impulsos cortos y largos de

corriente; esto constituyó un primer paso en la codificación eficiente de los mensajes.

36

Page 37: Traducción de códigos con elementos de Z4 a

Más adelante se hizo necesaria una evaluación de las ventajas relativas de las muchas

clases de señales telegráficas, y para ello eran necesarias herramientas de tipo

matemático, de entre las cuales, el análisis de Fourier fue quizá la más importante, ya

que hace posible representar cualquier señal como suma de ondas sinusoidales de

distinta frecuencia. Nyquist y Hartley demostraron que la velocidad a que se pueden

transmitir las letras de un texto es proporcional al logaritmo del número de valores de

la corriente empleada.

Pero para una teoría de la información completa, son necesarias otras herramientas

matemáticas y nuevas ideas, que, como se ha visto, fueron enunciadas en los trabajos

de Kolmogoroff y Wiener. Aunque dentro de esta misma línea, el problema que

Shannon planteó y resolvió es algo diferente: partiendo de una fuente que produce

mensajes de un determinado tipo (sus textos en inglés, por ejemplo) y supuesto que se

tiene un canal de comunicaciones ruidoso de características especificas; la cuestión se

centra entonces en como codificar o representar los mensajes procedentes de esa

fuente por medio de señales eléctricas, de modo que logremos una transmisión lo mas

rápida y fiable posible sobre un canal ruidoso, o, en otros casos, saber con que

rapidez podemos transmitir un determinado tipo de mensaje sobre un canal sin

errores.” [17]

Teoría de la codificación

Orígenes.

“Claude Shannon’s 1948 paper “A Mathematical Theory of Communication” gave

birth to the twin disciplines of information theory and coding theory. The basic goal

is efficient and reliable communication in an uncooperative (and possibly hostile)

environment. To be efficient, the transfer of information must not require a

prohibitive amount of time and effort. To be reliable, the received data stream must

resemble the transmitted stream to within narrow tolerances. These two desires will

37

Page 38: Traducción de códigos con elementos de Z4 a

always be at odds, and our fundamental problem is to reconcile them as best we can.

At an early stage the mathematical study of such questions broke into the two broad

areas. Information theory is the study of achievable bounds for communication and is

largely probabilistic and analytic in nature. Coding theory then attempts to realize the

promise of these bounds by models which are constructed through mainly algebraic

means. Shannon was primarily interested in the information theory. Shannon’s

colleague Richard Hamming had been laboring on error-correction for early

computers even before Shannon’s 1948 paper, and he made some of the first

breakthroughs of coding theory.” [18]2

2 El articulo de 1948 publicado por Claude Shannon titulado “Una teoría de la comunicación Matemática”, dio nacimiento a dos disciplinas gemelas, la Teoría de la Información y la Teoría de la Codificación, La meta básica es una fidedigna y eficiente comunicación en un ambiente no cooperativo (y posiblemente hostil). Para ser eficiente, la transmisión de la información no debe requerir una prohibición en la cantidad de tiempo y esfuerzo. Para ser fidedigna, el flujo de datos recibidos debe parecerse al flujo transmitido, con una escasa tolerancia. Estos dos deseos siempre estarán en contra, y nuestro problema fundamental es reconciliarlos como mejor se puedan.

En un estado temprano del estudio matemático de estas cuestiones, se dividieron en dos áreas de estudio. La teoría de la información es el estudio de un rumbo realizable para la comunicación y es largamente probabilística y analítica por naturaleza. La teoría de la codificación entonces intenta realizar la promesa de este rumbo por modelos, los cuales son construidos principalmente a través del Álgebra. Shannon estaba primeramente interesado en la Teoría de la información. El colega de Shannon Richard Hamming, estaba trabajado en la corrección- error para los primeros computadores incluso antes del articulo de Shannon publicado en 1948, y el hizo algunos de los primeros avances de la Teoría de la codificación.

38

Page 39: Traducción de códigos con elementos de Z4 a

3. Objetivos

3.1 Objetivo general

Mostrar la construcción teórica del algoritmo, para hacer un análisis acertado

acerca del código de conversión. Para poder plantear un algoritmo de

traducción, de elementos de 4Z al código binario 2Z , teniendo en cuenta, los

estándares de programación.

3.2 Objetivos específicos

A continuación se dan los objetivos específicos tenidos en cuenta para este

documento:

3.2.1. Realizar un completo estudio de los elementos de 4Z , y cómo estos

pueden a través de un algoritmo representarse en forma binaria.

3.2.2. Analizar en que forma la manera en que está construido 4Z , y ver si

de alguna forma puede influir en el algoritmo de conversión.

3.2.3. Analizar las formas de detección de errores para garantizar los

resultados que se esperan obtener.

3.2.4. Crear a partir del análisis de traducción, un programa eficiente, que

permita obtener los resultados esperados rápidamente.

39

Page 40: Traducción de códigos con elementos de Z4 a

4. Formulación del problema y justificación

4.1 Formulación del problema

Desarrollar el algoritmo de conversión para traducir elementos de 4Z , a una

representación binaria o términos de 2Z .

4.2 Preguntas de investigación

Las preguntas que se plantean son las relacionadas con la investigación que se

desarrolló:

1. ¿Cuál es el algoritmo de traducción de elementos de 4Z a 2Z ?

2. ¿Este algoritmo es realmente eficiente?

3. ¿Existen otros algoritmos de traducción?

4. ¿Qué estándares se tienen en cuenta para programar el algoritmo de

traducción?

40

Page 41: Traducción de códigos con elementos de Z4 a

4.3 Justificación de la investigación

La justificación para hacer esta investigación es dar una herramienta, para quienes

trabajan con teoría de códigos, ofreciendo un apoyo a través de un software, para que

puedan tener un mayor entendimiento de este interesante campo del conocimiento.

Esta investigación no solo se limita a la teoría de códigos sino también, tiene una gran

base en el álgebra moderna, la cual es fundamental para las matemáticas actuales,

mostrando, que las matemáticas, han tenido, tienen y tendrán un muy significativo

aporte al avance de la ciencia y la tecnología.

El hecho de escoger como base el álgebra moderna se debe a la excelente formación

académica y a que es una de las áreas de la matemática que despierta un gran interés.

Implementar un código de traducción de elementos de 4Z a 2Z o representación

binaria, es con el deseo de mostrar que se puede crear software en Colombia que se

puede utilizar ya sea para la educación o la investigación científica.

Dejando de esta forma un espacio abierto para los futuros estudiantes o

investigadores en el área de la teoría de la codificación, para que puedan tener una

guía, de cuan interesante y útil es este sector del conocimiento humano.

41

Page 42: Traducción de códigos con elementos de Z4 a

5. Materiales y métodos

5.1 Diseño de la investigación

La investigación se maneja en cuatro etapas las cuales cada una tiene un objetivo y

un aporte muy especifico a la investigación.

5.1.1 Primera etapa: esta instancia se enfoca sobre una parte analítica, es decir un

buen análisis del problema con el fin de establecer con claridad una solución óptima.

5.1.2 Segunda etapa: este paso de la investigación se centra en el diseño del

software, es decir a partir de los datos obtenidos en la fase de análisis, se crea un

muy buen algoritmo, para la solución de la traducción de elementos de 4Z a código

binario.

5.1.3 Tercera etapa: esta consta de escoger un lenguaje de programación por el cual

se pueda implementar el algoritmo que se diseñó en la etapa anterior, teniendo en

cuenta los datos de la primera etapa.

5.1.4 Cuarta etapa: esta última fase es para ejecutar pruebas con ejemplos puntuales

en busca de errores al momento de escribir el software o diseño del algoritmo con el

fin de confirmar la exactitud de los resultados que da el programa de forma que se

pueda corregir si es necesario, para que no presente mal funcionamiento al momento

de su versión final.

42

Page 43: Traducción de códigos con elementos de Z4 a

5.2 Métodos

Los métodos que se utilizan en este trabajo son básicamente, métodos basados en la

formación académica, es decir, aquellos que han sido enseñados indirectamente por

los profesores de la Universidad, esto se refiere, a siempre consultar los diferentes

autores que escriban en la materia y tengan un cierto grado de credibilidad, es decir

por estudios que realice el autor o investigaciones propias, y después consultar y

comparar esta información con bases de datos o publicaciones en línea para ver que

tan actualizadas y veraz es la información, luego se procede a un desarrollo basado en

los datos para crear el propio conocimiento y que esté de acuerdo con lo publicado

por la comunidad científica.

Dado que en el área del conocimiento existen métodos o procedimientos para hacer

diferentes cosas estos procedimientos se tiene muy en cuenta, para realizar este

trabajo, sin olvidar que también existen estándares para estos procedimientos o

estándares para los trabajos realizados.

5.2.1 Método para la recolección de información

El método que se usó para recolección de la información es el siguiente.

5.2.1.1. Primero: consultar los libros que estén dentro de la Biblioteca Central de la

Pontificia Universidad Javeriana.

5.2.1.2. Segundo: Consulta y orientación del Director de Tesis.

43

Page 44: Traducción de códigos con elementos de Z4 a

5.2.1.3. Tercero: Una última instancia es a través de medios electrónicos ya sea por

medio de la red mundial de datos (Internet), y consulta a la diferentes bases de datos

con los que se tiene convenios que ha hecho la Biblioteca Central de la Pontificia

Universidad Javeriana.

5.2.2 Método para la elaboración del Software

A continuación se cita un texto con el fin de explicar de forma clara el método que se

utiliza para elaborar el software.

“Existe una metodología para redactar programas -un procedimiento formal que

deberá dominar- que hará que su tarea específica de programación le resulte más

sencilla. Para escribir un programa se deberá:

1. Definir el problema que será abordado y resuelto por la computadora.

2. Diseñar la salida del programa (cómo le serán presentados los resultados al

usuario).

3. Desglosar el problema en las partes lógicas que fuesen necesarias para lograr

la salida deseada, esto incluye la determinación de la entrada requerida por el

programa. A menudo, la entrada proviene de un usuario que tipea datos en el

teclado de su computadora o de un archivo de datos.

4. Redactar el código fuente del programa (mediante el empleo de un editor de

texto).

5. Compilar el programa.

6. Comprobar el programa para asegurarse de que funciona según lo esperado.

Como se puede apreciar a partir de este procedimiento, el tipeo del código fuente del

programa tiene lugar casi al final de la programación. Este hecho es importante, por

44

Page 45: Traducción de códigos con elementos de Z4 a

que primero se necesita planificar cómo informarle a la computadora la manera de

realizar cada tarea. El diseño anticipado de un programa hace que toda su estructura

sea más precisa, y contribuye a evitar que el programador deba efectuar cambios

posteriores.” [19]

5.2.3 Método para la realización de Pruebas

El método para realizar las pruebas del programa consta de los siguientes pasos:

5.2.3.1. Primero: Identificar entradas del programa que sean útiles con el fin de

comprobar la eficiencia del software. Ya sean ejemplos o datos creados con el fin de

efectuar las pruebas.

5.2.3.2. Segundo: Crear dentro del programa variables cuyos valores se desplieguen

en pantalla con el propósito de conocer si el programa esta funcionando

correctamente y saber qué instancia se esta ejecutando.

5.2.3.3 Tercero: Analizar la salida del software, para compararla con la esperada, de

modo que se pueda tener un criterio de decisión, con la finalidad de establecer si el

programa funciona correctamente o no.

5.3 Recolección de la información.

La primera instancia para poder llegar a trabajar con la teoría de la codificación es

obtener los libros que tengan la información relativa a la teoría y que sean de fácil

acceso. Es decir, el primer método de consulta de información es a través de libros

que están dentro de las instalaciones de la biblioteca central de Pontificia Universidad

Javeriana, con esto se garantiza un fácil acceso a la información y un buen estado de

45

Page 46: Traducción de códigos con elementos de Z4 a

los libros.

Conceptos utilizados

Código: Es una palabra (o vector) de tamaño n, que pertenece a Qn , cuyos símbolos,

pertenecen al alfabeto Q, y este alfabeto tiene q elementos distintos.

Código Lineal: un q-esimo (vector o palabra), es un código lineal C, si es un

subespacio de Qn . Si C tiene dimensión k, entonces C es llamado un [n, k] código.

Ahora se enmarcan estos conceptos dentro del estudio que se esta haciendo es decir

dentro de 4Z tendríamos lo siguiente.

4Z - código lineal: “A 4Z -lineal code C of lenght n is an additive subgroup of nZ 4 .

Such a subgroup is a 4Z -module, which may or may not be free. (A 4Z -module M

is free if there exists a subset B of M, called basis, such that every element in M is

uniquely expressible as a 4Z -linear combination of the elements in B.)” [20] 3

Se tiene muy encuenta esta definición ya que de esta se da una forma en que se puede

verificar si un código es 4Z – lineal de forma sencilla y fácil que se implementa en el

3 4Z - código lineal: Un código C es código 4Z – lineal de tamaño n si es un subgrupo aditivo de

4Z . Semejante subgrupo es un modulo 4Z , el cual puede o no puede ser libre. (Un modulo 4Z , M

es libre si existe un subconjunto B de M, llamado base, tal que cada elemento en M es expresado

únicamente como una combinación lineal 4Z de los elementos de B)

46

Page 47: Traducción de códigos con elementos de Z4 a

programa.

Mapa de grises: “The vehicle by which binary codes are obtained from 4Z - linear

codes is the Gray map B : 4Z → 22F defined by

B (0) = 00, B (1) = 01, B (2) = 11, B (3) = 10.

This map is then extended componentwise to a map denoted B, from nZ4 to nF2 . If C

is a 4Z -linear code, its Gray image will be the binary code denoted B (C) ” [21] 4

El mapa de grises se tiene muy en cuenta debido a que con este se hace la traducción

de los elementos de 4Z a 2Z como dice su definición.

Peso de Hamming: “The Hamming weight )(xwH of vector x over GF(q) is the

number of non-zero positions in x , that is

)(xwH = #{i | 1 ≤ i ≤ n and ix ≠ 0}.” [22]5

4 Mapa de grises: El vehículo para el cual se obtienen códigos binarios a partir de códigos 4Z -

lineales es el Mapa de grises (Gray Map) B: 4Z → 22F definido por

B (0) = 00, B (1) = 01, B (2) = 11, B (3) = 10.Este mapa entonces es extendido componente a componente, al mapa denotado B, desde nZ4 a nF2 .

Si C es un código 4Z -lineal, luego la imagen Gris (Gray) será un código binario denotado como B (C).

5 El peso de Hamming denotado como )(xwH del vector x en GF(q) es el número de componentes

distintos a cero en x , esto es

)(xwH = #{i | 1 ≤ i ≤ n y ix ≠ 0}

47

Page 48: Traducción de códigos con elementos de Z4 a

Distancia de Hamming: “The Hamming Distance ),( yxd H between to vectors x , y

∊ nqGF )( is the number of positions where they differ, that is

),( yxd H = #{i | 1< i < n and ix ≠ iy }.

If a vector x is trasmitted and e errors ocurred during transmission, then the recieved

vector y differs from x in e positions, that is ),( yxd H = e

Clearly,

),( yxd H = )( yxwH − .” [23]6

En esta cita nqGF )( hace referencia al espacio vectorial en el cual se trabaja, para el

escrito, este espacio vectorial es nZ 4 .

Una tercera instancia para recolección de información, es a través de diferentes

buscadores de páginas Web de la red mundial de datos. También a través de la

consulta de información de las diferentes bases de datos, con las cuales la Biblioteca

de la Pontificia Universidad Javeriana tiene convenios para poder acceder a toda la

información que se almacena en las diferentes bases de datos.

6 Distancia de Hamming: “La Distancia de Hamming detonada como ),( yxd H entre dos vectores

x , y ∊ nqGF )( es el numero de posiciones donde los vectores son diferentes, esto es

),( yxd H = #{i | 1< i < n y ix ≠ iy }.

Si un vector x es transmitido y e errores ocurren durante la transmisión, entonces el vector recibido y

difiere del vector x en e posiciones, esto es ),( yxd H = e

claramente,

),( yxd H = )( yxwH − .”

48

Page 49: Traducción de códigos con elementos de Z4 a

En esta instancia se utiliza información para la parte del marco teórico y revisión de

la literatura, en forma que se puedan conocer los trabajos de otros autores y ver qué

avances se han hecho en la teoría de la codificación, como se muestra con el origen

de la teoría de la codificación.

También se utilizó para saber de qué forma se podría hacer una interfaz grafica para

el usuario y que estándar de programación se podría aplicar de manera que se cumpla

con uno de los objetivos, y esto se logró gracias al texto de Salvador Pozo Colorado

[30], en el cual muestra el estándar de programación, llamado Notación Húngara, en

la cual es utilizado en todo el desarrollo del programa, es decir en el momento que se

hace la redacción del software.

5.4 Análisis de la información

Para hacer el análisis de la información que corresponde a la parte teórica es decir la

primera parte de la investigación se debe tener en cuenta que se va a desarrollar

dentro del software.

Se define que la entrada al programa va a constar de dos grandes grupos, el primero

es vectores cuyos elementos estén en o pertenezcan a Z4, el segundo grupo de

entradas son un conjunto de vectores que formen un Z4- código lineal.

Para el primer grupo se verifica que sus elementos correspondan a elementos de Z4 y

después se hace el proceso de traducción, se verifica que no hallan errores y se

termina la ejecución del programa.

Para el segundo grupo de entradas se verifica que sus elementos pertenezcan a Z4,

luego se verifica que el conjunto de vectores formen un subgrupo aditivo en (Z4)^n,

este n se refiere a la dimensión de los vectores. Después de esta verificación se hace

49

Page 50: Traducción de códigos con elementos de Z4 a

el proceso de traducción, se verifica que no existan errores y termina la ejecución del

programa.

Hasta este momento sólo se ha definido el problema que será abordado. Ahora se

continuará con el diseño de la salida del programa.

La salida de los resultados del programa se hará a través de archivos de texto que se

guardarán en la carpeta que desee el usuario, ya que el programa da la opción de

escoger en que carpeta del computador, se guarda el resultado.

La entrada del programa será a través de archivos de texto los cuales serán leídos por

el programa, por medio de una interfaz el usuario le indicará por medio del nombre

que archivo desea que se lea, esta interfaz será como la que se usa en la mayoría de

aplicaciones diseñadas para funcionar en Microsoft Windows.

El código fuente del programa se redacta y compila en el editor de C++ de

distribución gratitua, Dev-C++, con el cual se facilita de gran manera al momento de

hacer la escritura del programa.

Como se mencionó antes la compilación se hace en el programa Dev-C++, pues ya

tiene incluido un compilador de C y C++, con lo cual, ayuda a mostrar los errores de

una forma mucho más simple, para corregirlos de una manera más eficiente.

Para la comprobación de los errores se tiene un método ya mencionado anteriormente

de tres pasos, los ejemplos que se van a tomar para comprobar la eficiencia del

software son los siguientes ejemplos:

Ejemplo 1.

01000000000000000000000000000000000000000000000000

10111111111111111111111111111111111111111111111111

50

Page 51: Traducción de códigos con elementos de Z4 a

21222222222222222222222222222222222222222222222222

31333333333333333333333333333333333333333333333333

02000000000000000000000000000000000000000000000000

12111111111111111111111111111111111111111111111111

20222222222222222222222222222222222222222222222222

32333333333333333333333333333333333333333333333333

03000000000000000000000000000000000000000000000000

13111111111111111111111111111111111111111111111111

23222222222222222222222222222222222222222222222222

30333333333333333333333333333333333333333333333333

Esta serie de vectores guardados en un archivo de texto se utiliza para saber si el

algoritmo de traducción funciona de manera correcta, con estos vectores se puede

determinar si existe alguna falla o si se hace la traducción satisfactoriamente y luego

se buscan errores por medio de la verificación de errores.

Ejemplo 2.

00000000000

11111111111

22222222222

33333333333

Con estos vectores que claramente forman un subgrupo aditivo en (Z4)^11, se

comprueba que se este verificando que se lea un subgrupo aditivo de (Z4)^11 y

después se hace el proceso de traducción y luego la verificación de que se halla hecho

la traducción correctamente por medio de la verificación de errores.

51

Page 52: Traducción de códigos con elementos de Z4 a

6. Resultados y Discusión

Los resultados que se muestran a continuación son el resultado de la ejecución del

programa. La parte operativa del programa está en uno de los anexos, es decir como

se puede utilizar y gráficas que ayudan y muestran como poner a el programa en

funcionamiento.

Con el siguiente ejemplo se muestra qué tan eficiente es el software para traducir

vectores cuyos elementos están en Z4 a vectores cuyos elementos están en Z2.

Ejemplo 1.

01000000000000000000000000000000000000000000000000

10111111111111111111111111111111111111111111111111

21222222222222222222222222222222222222222222222222

31333333333333333333333333333333333333333333333333

02000000000000000000000000000000000000000000000000

12111111111111111111111111111111111111111111111111

20222222222222222222222222222222222222222222222222

32333333333333333333333333333333333333333333333333

03000000000000000000000000000000000000000000000000

13111111111111111111111111111111111111111111111111

23222222222222222222222222222222222222222222222222

30333333333333333333333333333333333333333333333333

El resultado obtenido es

00010000000000000000000000000000000000000000000000000000000000000000

00000000000000000000000000000000

01000101010101010101010101010101010101010101010101010101010101010101

01010101010101010101010101010101

52

Page 53: Traducción de códigos con elementos de Z4 a

11011111111111111111111111111111111111111111111111111111111111111111

11111111111111111111111111111111

10011010101010101010101010101010101010101010101010101010101010101010

10101010101010101010101010101010

00110000000000000000000000000000000000000000000000000000000000000000

00000000000000000000000000000000

01110101010101010101010101010101010101010101010101010101010101010101

01010101010101010101010101010101

11001111111111111111111111111111111111111111111111111111111111111111

11111111111111111111111111111111

10111010101010101010101010101010101010101010101010101010101010101010

10101010101010101010101010101010

00100000000000000000000000000000000000000000000000000000000000000000

00000000000000000000000000000000

01100101010101010101010101010101010101010101010101010101010101010101

01010101010101010101010101010101

11101111111111111111111111111111111111111111111111111111111111111111

11111111111111111111111111111111

10001010101010101010101010101010101010101010101010101010101010101010

10101010101010101010101010101010

Con lo cual comparando con la definición del Gray Map, corresponde perfectamente

al tamaño, número de vectores y especialmente con los elementos que se deben

traducir.

Con el ejemplo 2. se busca verificar de forma sencilla si el programa puede

determinar si el conjunto de vectores son un código Z4-lineal y después hacer su

respectiva traducción.

53

Page 54: Traducción de códigos con elementos de Z4 a

7. Conclusiones .

La traducción de elementos de un anillo a otro no solo se limita a una parte teórica

sino también se puede implementar de forma que sea agradable se usar al usuario.

Se desarrolla un programa de que muestra el estudio abordado por este trabajo, el cual

da solución al problema propuesto, sin que en ningún momento, se tenga que

comprometer alguna parte de la solución en busca de un mejor desempeño del

software desarrollado.

El software desarrollado, se crea y diseña con los estándares de programación, más

utilizados, para una fácil interpretación, por parte de las personas que estén

familiarizadas con estándares de programación a nivel internacional.

Se contribuye en el avance del estudio de la teoría de la codificación, al presentar una

herramienta de estudio y de aprendizaje, para motivar a otros miembros de la

sociedad a que estudien esta importante área del conocimiento.

El desarrollo de este trabajo tiene en cuenta en todo momento, la formación

académica recibida (investigación, análisis, métodos de estudio, métodos de consulta,

búsqueda de fuentes de información, interpretación de datos y otros), de modo que se

pueda ver reflejado todo lo aprendido durante la educación de pre-grado.

54

Page 55: Traducción de códigos con elementos de Z4 a

8. Recomendaciones

Durante este trabajo se habló mucho sobre la teoría de la información, ya que esta

teoría nació al mismo tiempo que la teoría de la codificación, esta última es donde se

ubica este trabajo.

Como se ha podido mostrar el concepto de la traducción, no es difícil, ni el cómo se

puede determinar la Distancia de Hamming, y el Peso de Hamming, lo interesante es

ver comó se usan dentro de un programa y se utiliza como un criterio para decidir si

la traducción, debe repetirse o no. Dado que en el momento de la traducción, se

agregan elementos, o mejor dicho se aumenta el tamaño de los mismos, existe una

mayor posibilidad de que ocurran errores y que se pueda confundir la información y

que ésta no sea fiable, es decir cualquier error tiene el doble de posibilidades de

ocurrir debido a como se define el Gray Map.

Pero a pesar de esto no se quiere decir que la traducción se a algo complicado, todo lo

contrario, con una programación adecuada, exacta y eficiente, se puede hacer del

proceso algo completamente transparente al usuario y que este no tenga que

preocuparse por como ingresar los datos, o por como serán almacenados, ya que los

resultados al ser guardados en un archivo de texto plano, pueden ser copiados a

cualquier otra aplicación, sin que represente una gran complicación.

Como es normal en cualquier desarrollo de software, siempre existirán errores y cosas

por mejorar, como por ejemplo los sistemas operativos, pero la idea es dejar un

código fuente fácil de entender, y que cualquier persona, con conocimientos de

programación en C o C++, pueda agregar o sugerir formas de corregir errores o

añadir rutinas al programa.

55

Page 56: Traducción de códigos con elementos de Z4 a

9. Referencias

[1], [3], [5] José M. Muñoz Q. 1994. Introducción a la Teoría de conjuntos. Tercera

Edición. Universidad Nacional. Santa fe de Bogotá. Colombia. Págs. 15, 16, 99, 102.

[2] James Stewart. 1998. Cálculo Trascendentes tempranas de una sola variable.

Tercera Edición. International Thomson Editores. México D.F. México. Traducción

al español Virgilio González Pozo Págs. 2.

[4] Jerrold E. Marsden, Anthony J. Tromba. 1998. Cálculo Vectorial. Cuarta

Edición. Addison Wesley Longman de México, S.A. de C.V. Naucalpan de Juárez,

Edo. De México. Versión en español Javier Páez Cárdenas. Págs. xi.

[6], [7], [8], [9], [10], [11], [12], [13], [14] I. N. Herstein. 1970. Álgebra moderna.

Primera Edición. Editorial F. Trillas, S.A. México D.F. México. Traducción al

español Federico Velasco Coba. Págs. 26, 39, 40, 46, 104, 188 – 189, 190

[15], [16], [25] Bernard Kolman. 1999. Algebra Lineal con aplicaciones y matlab.

Sexta Edición. Pentice Hall Hispanoamericana, S.A. Calle 4 Núm 25-2do. Piso Fracc.

Industrial Alce Blanco 533370 Naucalpan De Juárez, Edo. De México Mexico.

Traducción Oscar Alfredo Palmas Velasco. Editor Guillermo Trujano Mendoza.

Pags. 197 – 198, 204, 18

[17] Cuevas Agustin Gonzalo. 1975. Teoría de la Información Codificación y

Lenguajes. Primera Edición. Edita Servicio de Publicaciones del Minesterio de

Educación y Ciencia. Madrid. España.. Págs. 63-70.

56

Page 57: Traducción de códigos con elementos de Z4 a

[18] J. I. Hall. 2003. Notes om Coding Theory. Primera Edición. Departament of

Mathematics Michigan State University. East Lansing, Michigan USA.<http://

math.msu.edu/~jhall/classes/codenotes/coding-notes/Intro.pdf>[consulta 3 de Junio

de 2007]. Pags. 1.

[19] Greg Perry. 2000. C con ejemplos. Primera Edición. Publicada por Pearson

Education S.A .Av. Regimiento de Patricios 1959 (1266) Buenos Aires, República

Argentina .Editora María Fernanda Castillo. Pags. 9 - 10.

[20], [21] W. Cary Huffman and Vera Pless. 2003. Fundamentals of Error-Correcting

Codes. Primera Edición. Published by the press syndicate of the university of

cambridge.The Pitt Building, Trumpington Street, Cambridge, United Kingdom.

Pags. 467, 472

[22], [23] Torleiv Klve, Valery I. Korzhik. 1995. Error Detecting codes. Primera

Edición. Kluwer Academic Publishers.Kluwer Academic Publishers, 101 Philip

Drive, Assinippi Park, Norwell, Massachusetts 02061, United States of America.

Pags. 18.

[24] L. Joyanes Aguilar, H Castán Rodriguez. 1999. C++ Iniciación y

referencia.Primera Edición.McGraw-Hill / Interamericana de España, S.A. U.

Edificio Valrealty, 1ª. Planta Basauri 17 28023 Aravaca (Madrid) España.Pags 119 –

138, 255 - 274.

57

Page 58: Traducción de códigos con elementos de Z4 a

Textos consultados

[1] Bernard Kolman. 1999. Algebra Lineal con aplicaciones y matlab. Sexta Edición.

Pentice Hall Hispanoamericana, S.A. Calle 4 Núm 25-2do. Piso Fracc. Industrial

Alce Blanco 533370 Naucalpan De Juárez, Edo. De México Mexico.

Traducción Oscar Alfredo Palmas Velasco. Editor Guillermo Trujano Mendoza. Pags

18.

[2] Goerge B. Thomas Jr, Ross L. Finney. 1998. Cálculo una variable. Novena

Edición. Addison Wesley Longman de Mexixo S.A. De C.V. Calle 4 Núm 25-2do.

Piso Fracc. Industrial Alce Blanco 533370 Naucalpan De Juárez, Edo. De México

Mexico. Traducción Oscar Chávez López. Pags 18, 449 .

[3] Richard Pinch. 2006. Institute of Mathematics and its applications. Southend-on-

Sea, Essex UK.

<http://www.matematicalia.net/index.php?

option=com_content&task=view&id=157&Itemid=117>. Escrito por Readcción de

Matematicalia. Vol 2 no 1. Publicado viernes 31 de Marzo 2006. [consultado 30 de

enero de 2007]

[4]Juan Riviera Gercia Tema 5. Codigos Lineales. 2006. <http://jungla.dit.upm.es/

%7etrdt/apuntes/t5.html>. [Consultado 1 de febrero de 2007].

[5] Wikipedia. Codigo de Hamming. <http://es.wikipedia.org/C

%C3%B3digo_Hamming>. [Consultado 30 de enero de 2007]

58

Page 59: Traducción de códigos con elementos de Z4 a

[6] Salvador Pozo Coronado. 2004. Win API con clase.

<http://winapi.conclase.net> .[Consultado 30 de enero de 2007]. Pags. 1 -99

[7] Wikipedia. Física Estadística

<http://es.wikipedia.org/wiki/Mec%C3%A1nica_estad%C3%ADstica>. [Consultado

23 de Junio de 2008]

59

Page 60: Traducción de códigos con elementos de Z4 a

10. Apéndice A.

Este apéndice dará ciertos consejos de como utilizar el programa de traducción de

elementos de Z4 a código binario, para que el usuario pueda usar esta herramientas de

una forma más sencilla.

El programa esta divido en tres menús principales: archivo, ejecución y ayuda.

El menú de archivo se subdivide en abrir, editar y salir, en ningún momento se

pensó que el usuario ingresara datos directamente al programa, para evitar errores al

momento que se escribieran los datos, al contrario, los datos que alimentan el

software, se leen desde un archivo de texto plano, con el fin de que se eviten errores y

pueda ser editado fácilmente

60

Page 61: Traducción de códigos con elementos de Z4 a

Con esto en mente se da la opción de abrir, para que el usuario pueda, buscar el

archivo donde tiene los datos, después de escoger el archivo se muestra en pantalla

los datos leídos desde el archivo seleccionado por el usuario. Siguiendo en el menú

archivo, esta el comando editar, esto sirve para cuando se tiene abierto el archivo, se

ejecuta automáticamente la apertura del programa de Bloc de notas, para que el

usuario tenga un entorno de trabajo muy conocido, para que el editar los datos sea de

forma simple y practica. Sobra decir que el programa de Bloc de notas se abre con el

archivo cargado. El comando salir este solo cierra el programa de una forma

organizada.

61

Page 62: Traducción de códigos con elementos de Z4 a

El menú ejecución esta divido en, traducción, comprobar Z4-lineal, Buscar distancia

de Hamming y Buscar Peso de Hamming.

Dado que Traducción se divide se explicará luego. El comando Comprobar Z4-

lineal, muestra en la pantalla a través de un mensaje si un conjunto de vectores que se

encuentran en una archivo de texto plano, si estos son un código Z4-lineal, es

importante aclarar, que para efectuar la comprobación, se debe abrir primero el

archivo y luego si ejecutar el comando Comprobar Z4-lineal. Con este comando, se

calcula la matriz de suma de los elementos leídos en el archivo de texto plano y se

pide al usuario que escoja un lugar y nombre para almacenar esta matriz de datos,

para que pueda verificar el mismo si el conjunto es un código Z4-lineal

62

Page 63: Traducción de códigos con elementos de Z4 a

El comando Buscar distancia de Hamming y Buscar Peso de Hamming, al igual que

el comando anterior debe tener un archivo abierto antes de su ejecución. Es

importante recordar que para hallar la distancia de Hamming, se toman dos vectores

aleatorios y se calcula la distancia entre ellos y se muestra a través de un mensaje en

pantalla, que vectores fueron escogidos y cual su distancia. Para el Peso de Hamming,

se procede a tomar solo un vector de forma aleatoria, se calcula su peso y se muestra

en pantalla por medio de un mensaje cual fue el vector escogido y cual es su peso.

Como el comando traducción se divide en dos, que son: Traducir z4 a z2 y Buscar

error(es) en lo traducido a continuación se explica su funcionamiento.

63

Page 64: Traducción de códigos con elementos de Z4 a

Traducir z4 a z2, una vez cargado el archivo con los elementos a traducir, pregunta en

que lugar y comó se llamará el archivo que guardará los elementos traducidos, esto se

hizo con la facilidad de poder tener los conjuntos de elementos en diferentes archivos

y evitar confusiones.

Buscar error(es) en lo traducido, toma dos vectores aleatorios del conjunto de

elementos originales y calcula su distancia de Hamming, luego toma sus elementos

traducidos a Z2 (o código binario), y calcula de nuevo su peso de Hamming, si el

peso de Hamming divido entre 2, es mayor que el peso de Hamming de los elementos

originales, toca repetir el proceso, ya que hay muchos errores e influye sobre el

mensaje traducido.

El menú ayuda, se divide Ayuda…, Pagina Web..., Versión.

64

Page 65: Traducción de códigos con elementos de Z4 a

El comando Ayuda, muestra un archivo de texto plano, con toda la ayuda referente al

funcionamiento, del programa, para que sirve cada comando, mas no muestra ninguna

de las fórmulas ni métodos utilizados para hacer la traducción o comprobación de un

código Z4-lineal.

El comando Pagina Web, ejecuta el navegador de Internet, Internet Explorer, según la

versión disponible en el computador que se este ejecutando el programa, y abre

automáticamente, la página del desarrollo del software.

El Comando Versión, muestra que versión del programa traductor, se tiene a

disposición, el nombre(s) de (los) programador(es), y año de lanzamiento.

65