traducción de códigos con elementos de z4 a
TRANSCRIPT
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
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
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
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
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
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
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
8. Recomendaciones.............................................................................................. 55
9. Referencias......................................................................................................... 56
10. Apéndice A. ....................................................................................................... 60
8
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
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
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
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
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
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
{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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
[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
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
[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
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
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
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
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
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
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