Вы находитесь на странице: 1из 44

UNIVERSIDAD VALLE DEL

SURESTE

Asignatura: Programación En Tiempo Real

Catedrático: Andrés Notario Escudero

Alumno: Pedro Arias Montejo

Carrera: Ingeniería Electromecánica


Automotriz

Quinto Semestre
OCTUBRE 2018

INTRODUCCIÓN
Cuando ya se ha diseñado completamente el algoritmo y se tiene escrito en algún
esquema de representación (pseudo-código o diagrama de flujo), el siguiente paso es
codificarlo en el lenguaje de programación definido para tal fin. En este momento es
cuando el programador interactúa con el computador mediante la herramienta de
software de que disponga para codificar en el lenguaje seleccionado.
Una vez que los algoritmos de una aplicación han sido diseñados, ya se puede iniciar la
fase de codificación. En esta etapa se tienen que traducir dichos algoritmos a
un lenguaje de programación específico; es decir, las acciones definidas en los
algoritmos hay que convertirlas a instrucciones.

Para codificar un algoritmo hay que conocer la sintaxis del lenguaje al que se va a
traducir. Sin embargo, independientemente del lenguaje de programación en que esté
escrito un programa, será su algoritmo el que determine su lógica.

La lógica de un programa establece cuáles son sus acciones y en qué orden se deben
ejecutar. Por tanto, es conveniente que todo programador aprenda a diseñar algoritmos
antes de pasar a la fase de codificación.
OBJETIVO GENERAL
Plantear, examinar y resolver diferentes situaciones donde el empleo de algoritmos es
completamente necesario en asocio con la implementación de modelos matemáticos y
físicos, para una posterior escritura de un código fuente en un lenguaje en particular.

OBJETIVOS ESPECIFICOS

. Utilizar datos estructurados en la solución de problemas en situaciones complejas


(Arreglos y archivos)
. Diseñar y realizar el análisis de algoritmos como estrategia de solución en problemas
de campo como
* Operaciones entre vectores y matrices
* Solución de ecuaciones lineales simultáneas
* Técnica de mínimos cuadrados
* Integración
* Diferenciación
* búsqueda de raíces de funciones trascendentales.
. Diseñar Interfaces gráficas que faciliten la interacción hombre- Máquina.
ÍNDICE

PÁG.

3.1 GRUPOS ........................................................................................................................ 3


3.1.1 HOMEOMORFISMOS .................................................................................................. 5
3.1.2 ISOMORFISMOS. ......................................................................................................... 6
3.1.3 CÍCLICOS....................................................................................................................... 8
3.1.4 COSETS ....................................................................................................................... 10
3.2 ANILLOS....................................................................................................................... 17
3.2.1 GRUPOS DE CÓDIGOS............................................................................................ 19
3.2.2 COSETS LÍDERES. .................................................................................................... 27
3.2.3 MATRICES DE HAMMING. ....................................................................................... 27
3.2.4 CAMPOS FINITOS...................................................................................................... 30
3.2.5 ANILLOS DE POLINOMIOS...................................................................................... 31
3.2.6 POLINOMIOS IRREDUCIBLES ................................................................................ 33
3.2.7 CUADRADOS LATINOS ............................................................................................ 34
3.2.8 CRIPTOGRAFÍA.......................................................................................................... 36

2
UNIDAD 3 CODIFICACIÓN

3.1 GRUPOS

Un grupo es un par (G; _) formado por un conjunto y una operación binaria


que cumple:

G0 La operación es cerrada, es decir, a * b G, para todo a,;b G.


G1 La operación es asociativa, es decir, (a * b)* c = a * (b * c)) , para todo a,;b G._
G2 El conjunto G tiene elemento neutro, que se denotará por e, respecto de la
operación. G3 Cada elemento de G tiene inverso respecto de la operación. El
inverso del elemento a € G se denotará por a -1.

Grupo fundamental: dado un espacio topológico X, se puede formar el conjunto de


todos los lazos en X que salen de un cierto punto, considerando como equivalentes
a dos lazos que se puedan superponer mediante una homotopía (es decir, tales que
se pueda deformar a uno de ellos en forma continua hasta obtener el otro). A dicho
conjunto se le asigna una estructura (algebraica) de grupo, lo que determina el
llamado grupo fundamental de X. Se trata de un invariante topológico muy útil. Por
ejemplo, el grupo fundamental de una circunferencia es Z, el conjunto de los
números enteros (Z = {..., - 3, - 2, - 1, 0, 1, 2, 3, ...}), hecho que resulta claro pues
todo lazo cerrado sobre la circunferencia está determinado unívocamente por la
cantidad de vueltas, y el sentido en que se las recorre. El grupo fundamental de un
toro es Z ´ Z, pues en este caso deben tenerse en cuenta las vueltas dadas
"alrededor" del agujero, y también "a través" del mismo. Este resultado es, claro
está, coherente con el hecho de que el toro puede pensarse como el producto
cartesiano de dos circunferencias

Estas son algunas de las propiedades que tienen los grupos:

• El neutro es único. El inverso de cada elemento también es único.


• El inverso del inverso de un elemento es el propio elemento: (x−1)−1 = x.
3
• El inverso de un producto es el producto de los inversos, pero cambiado de
orden:(xy)−1 = y−1x−1.

• En un grupo la ecuación ax = b siempre tiene solución, que es única:


x = a−1b. Análogamente, x = ba−1 es la única solución de xa = b.

4
3.1.1 HOMEOMORFISMOS

Se llama homeomorfismo entre dos espacios topológicos X e Y a una función


f: X® Y que resulte biunívoca y bicontinua, es decir:

f es "uno a uno" (biunívoca), lo que significa que para cada elemento x Î X existe
un único y Î Y tal que f(x) = y y viceversa. Esto permite definir la función inversa, f-
1:Y® X

f y f-1 son continuas (f es bicontinua)

La noción de homeomorfismo responde a la idea intuitiva de "deformación",


y determina cierta clase de equivalencia: dos espacios homeomorfos tienen las
mismas propiedades topológicas.

5
3.1.2 ISOMORFISMOS.

Podríamos definir el significada de un isomorfismo que 2 semigrupos


simplemente parezcan iguales, o que es cuando el dominio y la imagen de un
isomorfismo propio pueden ser o son idénticos.

Con relación a este concepto podemos mencionar diversos teoremas, alguna


de cuyas demostraciones veremos a continuación.

a) Teorema: La relación G es isomorfo con G’ es una relación de equivalencia


entre grupos.
b) Teorema: En todo isomorfismo entre dos grupos, los elementos idénticos se
corresponden y los inversos de elementos correspondientes también se
corresponden.
c) Teorema: Todo grupo abstracto G es isomorfo con un grupo de
transformaciones del grupo sobre sí mismo.
Demostración: Para comprender esta demostración el lector puede tener
presente la tabla indicada más arriba para n = 6.
Asociemos a cada elemento a G la transformación ta : G G tal que ta(x)
= xa.

El lector puede observar la segunda fila de la tabla mencionada para ver todas
las imágenes de esta transformación: ta(e) = a; ta(a) = b; ta(b) = c; ta(c) = d;
ta(d) = g; ta(g)
=e

Para otro elemento cualquiera de G, tendremos otra transformación; así para b


G tendremos tb : G G, tal que tb(x) = xb (tercera fila de la tabla). Vale decir
que si a b ta tb.

Sea G’ = {t : G G} definidas en la forma indicada. Será G’ = {ta, tb, tc, td, te, tg}
6
para el caso de n = 6, todas transformaciones distintas, como puede verificarse
observando las diferentes filas de la tabla correspondiente.

Por otra parte, podemos definir en G’ el producto de transformaciones, tal que:

x G, x(tatb) = (xta)tb = (xa)tb = (xa)b = x (ab) = tab

y en el caso particular de nuestra tabla vemos que tab = tc . Esto significa que el
producto de dos transformaciones de G’ es otra transformación de G’. Luego este
producto es cerrado.

En G’ existe te tal que x G, te(x) = xe = x. Luego te es la identidad.

En G’ existe también ( ta)-1 = tg = t(a-1) y así para todas las transformaciones de


G’.
Luego cada elemento de G’ tiene en el conjunto su inversa.

Esto nos indica que G’ tiene estructura de grupo y es isomorfo con el grupo
abstracto considerado. Lo cual prueba la tesis.

7
3.1.3 CÍCLICOS.

Un grupo cíclico es un grupo que puede ser generado por un solo elemento;
es decir, hay un elemento a del grupo G (llamado "generador" de G), tal que todo
elemento de G puede ser expresado como una potencia de a. Si la operación del
grupo se denota aditivamente, se dirá que todo elemento de G se puede expresar
como na, para n entero.

En otras palabras, G es cíclico, con generador a, si G = { an | n ∈ Z }. Dado que un


grupo generado por un elemento de G es, en sí mismo, un subgrupo de G, basta
con demostrar que el único subgrupo de G que contiene a a es el mismo G para
probar que éste es cíclico.

Por ejemplo, G = { e, g1, g2, g3, g4, g5 } es cíclico. De hecho, G es esencialmente


igual (esto es, isomorfo) al grupo { 0, 1, 2, 3, 4, 5 } bajo la operación de suma módulo
6. El isomorfismo se puede hallar fácilmente haciendo g → 1.

Contrariamente a lo que sugiere la palabra "cíclico", es posible generar infinitos


elementos y no formar nunca un ciclo real: es decir, que cada gn sea distinto. Un tal
grupo sería un grupo cíclico infinito, isomorfo al grupo Z de los enteros bajo la
adición.

Salvo isomorfismos, existe exactamente un grupo cíclico para cada cantidad finita
de elementos, y exactamente un grupo cíclico infinito. Por lo anterior, los grupos
cíclicos son de algún modo los más simples, y han sido completamente clasificados.

Propiedades

Dado un grupo cíclico G de orden n (donde n puede valer infinito), y dado g ∈ G, se


tiene:
8
 G es abeliano; es decir, su operación es conmutativa: ab = ba para
cualesquiera a y b ∈ G. Esto es cierto, puesto que cualquier par de enteros a
y b, a + b mód n = b + a mód n.
 Si n < ∞, entonces gn = e, puesto que n mód n = 0.
 Si n = ∞, entonces el grupo tiene exactamente dos generadores: 1 y -1 en Z,
y sus imágenes isomórficas en otros grupos cíclicos infinitos.
 Todo subgrupo de G es cíclico. De hecho, para n finito, todo subgrupo de G
es isomorfo a un Zm, donde m es divisor de n; y si n es infinito, todo subgrupo
de G corresponderá a un subgrupo mZ de Z (el cual es también isomorfo a
Z), bajo el isomorfismo entre G y Z.

9
3.1.4 COSETS

Tenemos gH = H si y solamente si g es un elemento de H, desde como H es un


subgrupo, debe ser cerrado y debe contener la identidad.

Cualquier dos cosets izquierdos son o idénticos o desuna -- los cosets izquierdos
forman a partición de G: cada elemento de G pertenece a un y solamente un coset
izquierdo. Particularmente la identidad está solamente en un coset, y ese coset es
H sí mismo; éste es también el único coset que es un subgrupo. Podemos ver esto
claramente en los ejemplos antedichos.

Los cosets izquierdos de H en G sea clases de equivalencia debajo de relación de


equivalencia en G dado cerca x ~ y si y solamente si x -1y ∈ H. Las declaraciones
similares son también verdades para los cosets derechos.

Todos los cosets izquierdos y todos los cosets derechos tienen igual orden (número
de elementos, o cardinality en el caso de infinito H), igual a la orden de H (porque H
está sí mismo un coset). Además, el número de cosets izquierdos es igual al número
de cosets derechos y se conoce como índice de H en G, escrito como [G : H ].
Teorema de Lagrange permite que computemos el índice en el caso donde G y H
sea finito, según el fórmula:

|G | = [G : H ] · |H |

En matemáticas, si G es a grupo, H a subgrupo de G, y g un elemento de G, entonces

gH = {gh : h un elemento de H } es a coset izquierdo de H en G, y


Hectogramo = {hectogramo : h un elemento de H } es a coset derecho de H
en G.

10
Solamente cuando H es normal voluntad los cosets derechos e izquierdos de H
coincida, que es una definición de la normalidad de un subgrupo.

A coset es un coset izquierdo o derecho de algunos subgrupo adentro G. Desde


entonces Hectogramo = g ( g−1Hectogramo ), los cosets derechos Hectogramo (de
H ) y los cosets izquierdos g ( g−1Hectogramo ) (de conjugación subgrupo
g−1Hectogramo ) son iguales. Por lo tanto no es significativo hablar de un coset como
ido o correcto a menos que un primer especifique a subgrupo subyacente.

Para grupos abelian o los grupos escritos aditivo, la notación utilizaron cambios a g+H
y
H+g respectivamente.

Si H no es normal en G, entonces sus cosets izquierdos son diferentes de sus cosets


derechos. Es decir, hay a en G tales que ningún elemento b satisface ah = Hb. Esto
significa que la partición de G en los cosets izquierdos de H es una diversa partición
que la

partición de G en cosets derechos de H. (Es importante observar eso algunos los


cosets pueden coincidir. Por ejemplo, si a está en centro de G, entonces ah = Ha.)

Por otra parte, el subgrupo N es normal si y solamente si gN = Ng para todos g en


G. En este caso, el sistema de todos los cosets forma a grupo llamado grupo del
cociente G /H con el ∗ de la operación definido cerca (ah )∗(bH ) = abH. Puesto que
cada coset derecho es un coset izquierdo, no hay necesidad de distinguir “cosets
izquierdos” de “cosets derechos”.

Ejemplos

El añadido grupo cíclico Z4 = {0, 1, 2, 3} = G tiene un subgrupo H = {0, 2} (isomorfo a


Z2). Los cosets izquierdos de H en G sea

0 + H = {0, 2} = H
11
1 + H = {1, 3}
2 + H = {2, 0} = H
3 + H = {3, 1}

Hay por lo tanto dos cosets distintos, H sí mismo, y 1 + H = 3 + H. Observe eso H ∪


(1 + H ) = G, tan los cosets distintos de H en G partición G. Desde entonces Z4 es
grupo abelian, los cosets derechos serán iguales que la izquierda (esto no es difícil
de verificar).

Otro ejemplo de un coset viene de la teoría de espacios del vector. Los elementos
(vectores) de una forma del espacio del vector Grupo Abelian debajo adición de
vector. No es duro demostrar eso subspaces de un espacio del vector esté
subgrupos de este grupo. Para un espacio del vector V, un subspace W, y un vector
fijo a en V, los sistemas

se llaman afine los subspaces, y son los cosets (ambos a la izquierda e a la derecha,
puesto que el grupo es Abelian). En términos de geométrico los vectores, éstos
afinan subspaces son todos los “alinean” o “acepilla” paralelo al subspace, que es
una línea o un plano que pasa con el origen.

12
3.1.5 TEOREMA DE LAGRANGE (TEORÍA DEL GRUPO)

Teorema de Lagrange, en matemáticas de teoría del grupo, indica eso para


cualesquiera grupo finito G, orden (número de elementos) de cada subgrupo H de G
divide la orden de
G. El teorema de Lagrange se nombra después José Lagrange

Prueba del teorema de Lagrange

Esto se puede demostrar usando el concepto de la izquierda cosets de H en G. Los


cosets izquierdos son clases de equivalencia de un seguro relación de equivalencia
en G y por lo tanto forme una partición de G. Si podemos demostrar que todos los
cosets de H tenga el mismo número de elementos, después nos hacen, desde
entonces H sí mismo es un coset de
H. Ahora, si ah y bH son dos cosets izquierdos de H, podemos definir un mapa f : ah
→ bH
fijando f(x) = Ba-1x. Este mapa es bijective porque su lo contrario se da cerca f -1(y) =
ab-1y.

Esta prueba también demuestra a eso el cociente de las órdenes |G| / |H| es igual a
índice [G
: H] (el número de cosets izquierdos de H en G). Si escribimos esta declaración como

|G| = [G : H] · |H|,

entonces, interpretado como declaración alrededor números cardinales, sigue siendo


verdad incluso para los grupos infinitos G y H.

Existencia de subgrupos de cierta orden

13
El teorema de Lagrange plantea la cuestión de si cada divisor de la orden de un
grupo es la orden de un subgrupo. Este asimiento de la necesidad. Dado un grupo
finito G y un divisor d de |G|, no existe necesariamente un subgrupo de G con orden
d. El ejemplo más pequeño es grupo que se alterna G = A4 cuál tiene 12 elementos
pero ningún subgrupo de la orden 6. Cualquier grupo finito que tenga un subgrupo
con el tamaño igual a cualquier divisor (del positivo) del tamaño del grupo debe ser
soluble, así que los grupos nonsolvable son ejemplos de este phenonenon, aunque
A4 demuestra que no son los únicos ejemplos. Si G es abelian, entonces existe
siempre un subgrupo de cualquier orden que divide el tamaño de G. Una
generalización parcial se da cerca Teorema de Cauchy.

14
3.1.6 METRICA DE HAMMING

En Teoría de la Información se denomina distancia de Hamming a la efectividad


de los códigos de bloque y depende de la diferencia entre una palabra de código
válida y otra. Cuanto mayor sea esta diferencia, menor es la posibilidad de que un
código válido se transforme en otro código válido por una serie de errores. A esta
diferencia se le llama distancia de Hamming, y se define como el número de bits
que tienen que cambiarse para transformar una palabra de código válida en
otra palabra de código válida. Si dos palabras de código difieren en una
distancia d, se necesitan d errores para convertir una en la otra.

Por ejemplo:

 La distancia Hamming entre 1011101 y 1001001 es 2.


 La distancia Hamming entre 2143896 y 2233796 es 3.
 La distancia Hamming entre "tener" y "reses" es 3.

Definición: Sea A un alfabeto y u,w An. Se define la distancia Hamming d(u,w)


como el número de posiciones en las que difieren v y w.

An xAn d Z R

(u, w) d (u, w)

Esta aplicación es una métrica:

- Es definida positiva: d(u,w) 0 y d(u,w) = 0 u=w u, w An

- Es simétrica: d(u,w) = d(w,u) u, w An


- Desigualdad triangular: d (u,v) d (u,w) + d (w,v) u, v, w An

15
La bola con centro en un elemento u y radio 1 es u, todos los puntos son abiertos (
topología abierta).

3.1.7 MATRIZ DE PARIDAD

La paridad consiste en añadir un bit, denominado bit de paridad, que indique si el


número de los bits de valor 1 en los datos precedentes es par o impar. Si un solo bit
cambiara por error en la transmisión, el mensaje cambiará de paridad y el error se
puede detectar (nótese que el bit donde se produzca el error puede ser el mismo bit
de paridad). La convención más común es que un valor de paridad de 1 indica que
hay un número impar de unos en los datos, y un valor de paridad de 0 indica que
hay un número par de unos en los datos.

La comprobación de paridad no es muy robusta, dado que si cambia de forma


uniforme más de un solo bit, el bit de paridad será válido y el error no será detectado.
Por otro lado, la paridad, aunque puede detectar que hay error, no indica en qué bit
se cometió. Los datos se deben desechar por entero y volverse a transmitir. En un
medio ruidoso, una transmisión correcta podría tardar mucho tiempo o incluso, en
el peor de los casos, no darse nunca. El chequeo de paridad, aunque no es muy
bueno, usa un único bit, por lo que produce muy poca sobrecarga, y además permite
la corrección de ese bit si es conocida su posición.

16
3.2 ANILLOS.

Sea A un conjunto no vacío con dos elementos distinguidos, n y m, y sean y

dos operaciones binarias. Se dice que el conjunto es un anillo si


se cumplen las siguientes propiedades:

1. A es cerrado bajo la operación .

2. La operación es asociativa.

3. La operación tiene a n
como elemento neutro.

4. Existe un elemento simétrico para

Estas cuatro condiciones definen un grupo. Una quinta condición define un grupo
abeliano:

5. La operación es conmutativa.

Para definir un anillo, es necesario agregar cuatro condiciones más que hablan
acerca de la segunda operación binaria y el segundo elemento destacado:

6. A es cerrado bajo
la operación .

7. La operación
es asociativa.

La operación tiene a
8. m como elemento
17
neutro.

La operación es
9. distributiva
respecto de .

Y agregando una décima condición, se define un anillo conmutativo:

10. La operación es conmutativa.

18
3.2.1 GRUPOS DE CÓDIGOS.

El problema de codificación es representar mensajes distintos mediante diferentes


secuencias de letras de un alfabeto dado. Por ejemplo, mensajes como "
emergencia " , " la ayuda está en camino " ," está todo claro , etc., pueden ser
representado por secuencias de puntos y rayas .

Nosotros supondremos que el alfabeto es binario {0,1} . Una secuencia de letras de


un alfabeto se conoce como una palabra. Un código es una colección de palabras
que son utilizadas para representar distintos mensajes. Una palabra en un código
también es denominada como una palabra código. Un código de bloque es un
código consistente de palabras que son de la misma longitud.

Uno de los criterios al escoger u bloque de código para representar un conjunto de


mensajes es su capacidad para corregir errores. Supongamos que una palabra
código es transmitida desde su origen hacia su destino.

En el curso de la transmisión, interferencias como ruido pueden ocasionar que


algunos de los números uno en la palabra código sean recibidos como números
ceros y algunos de los cero como unos. En consecuencia, la palabra recibida podría
no continuar siendo la palabra transmitida y es nuestro deseo recuperar la palabra
transmitida lo mejor posible y esto es lo que entenderemos por corrección de errores
.

Denotemos por A al conjunto de todas las sucesiones binarias de longitud n . Sea


□ una operación binaria sobre A tal que para x y y en A, x □ y es una sucesión de
19
longitud n que tiene números uno en las posiciones donde x y y difieren y números
cero en las posiciones donde x y y son iguales.

Por ejemplo, sea x = 00101 y y = 10110, entonces x * y = 10011. Una palabra con
únicamente ceros es la identidad, y que cualquier palabra es su propio inverso en
(A,□).

Sea x una palabra en A . Definimos el peso de x , denotado por w(x) , como la


cantidad de números uno en x . Así, el pero de 1110000 es igual a 3, al igual que el
de 1001100 . Para x y en A , definimos la distancia entre x y , denotada por

, como el peso de x □ y
, w(x □ y) .

Por ejemplo la distancia entre 1110000 y 1001100 es 4, y la distancia entre 1110000


y 0001111 es de 7. Observamos que en la distancia entre las dos palabras es
exactamente el número de posiciones en las cuales éstas difieren .

Ahora sea G un código de bloque. Definimos la distancia de G como la distancia


mínima entre cualquier par de palabras de código distintas en G. La distancia de un
código de bloque está relacionada con su capacidad de corregir errores.

Supongamos que correspondiendo a la transmisión de una palabra código en G ,


se ha recibido la palabra . Nuestro problema es determinar a partir de la palabra
código que fue transmitida. Pero para motivar nuestro análisis supongamos el caso
sencillo en el que
resulta ser una de las palabras código en G.

En este caso, probablemente nos inclinaremos por la conclusión obvia de que la


20
palabra transmitida efectivamente fue , pero aún así está conclusión requiere de
una justificación.

Supongamos que en el transcurso de la transmisión pueden ocurrir errores en


cualquiera de las posiciones , cualquiera de las palabras código en G podría haber
sido la palabra transmitida . Pero cuando supusimos que la palabra
transmitida fue , estábamos suponiendo de modo tácito que cuando la palabra
fue transmitida era más probable que no ocurriera error alguno a que hubiesen
ocurrido algunos errores .

Ahora estableceremos de manera general de determinar la palabra transmitida


correspondiente a la palabra recibida .

Denotemos por a las palabras código en G. Calcularemos la probabilidad

condicional para , donde es la probabilidad de que fuese


la palabra transmitida ya que fue la palabra recibida.

Si es la mayor de todas las probabilidades condicionales calculadas,


concluimos

que fue la palabra transmitida. Este criterio para determinar la palabra transmitida
se conoce como criterio de decodificación de la máxima – probabilidad.

El cálculo de la probabilidad condicional puede ser realmente complicado ya


que la probabilidad depende de muchos factores en el sistema de comunicación.
Pero analizaremos otro criterio que puede utilizarse para determinar la palabra
transmitida.

Calculamos para toda , y concluimos que fue la palabra

transmitida si es la menor distancia entre todas las distancias calculadas.


Este se conoce como criterio de decodificación de la mínima – distancia.

21
22
Por otra parte si suponemos que la presencia de errores en las posiciones son
independientes, y que la probabilidad de que haya un error es ,

donde
entonces = es la distancia entre xi y . Para < ,
mayor será entre menor sea ,

En consecuencia, el criterio de decodificación de máxima – probabilidad ( en este


caso, la conclusión de que la palabra transmitida fue cuando la palabra recibida
es una palabra código está justificada ) .

Ahora no debemos dejar pasar que un código distancia puede corregir o


menos errores de distancia cuando se sigue el criterio de decodificación de la
mínima – distancia. Supongamos que una palabra código x fue transmitida y que
la palabra fue recibida. Si no se han cometido más de errores en el transcurso
de la transmisión, tenemos que

Sea otra palabra código. Puesto que

Tenemos por lo tanto que

23
Entonces por el criterio de decodificación de la mínima – distancia efectivamente se
seleccionará a x como la palabra transmitida.

Ya que los códigos de grupo son una clase de códigos de bloque demostraremos
que : Un subconjunto G de A es llamado un código de grupo si ( G , □ )es un
subgrupo de ( A , □ ) , donde A es el conjunto de sucesiones binarias de longitud .

Mostraremos que la distancia G es igual al peso mínimo de las palabras diferentes


del nulo en G . A sí este resultado hace más sencillo calcular la distancia de un
código de grupo,

puesto que ya no es necesario calcular exhaustivamente la distancia para cada


par de palabras distintas de G.

Supongamos que es una palabra diferente del nulo en G. Debido a que

y ya que 0 está en g , tenemos que

Por otro lado, para cualesquiera y en G, ya que

y ya que está también en g , tenemos que


24
A partir de (1*) obtenemos

Y a partir de (2*), obtenemos

25
Al combinar (3*) y (4*) llegamos a que

Para códigos de grupo , existe una manera eficiente para determinar la palabra
transmitida correspondiente a una palabra recibida de acuerdo con el criterio de
decodificación de la mínima – distancia .

EJEMPLO 1

Consideremos que G = {0000, 0011, 1101, 1110}. Podemos verificar sencillamente


que ( G
, Å ) es un grupo . Las filas de la figura 1 son los distintos conjuntos cociente en G .

Entonces de acuerdo al criterio de decodificación de la mínima – distancia , la


palabra recibida 1011 será decodificada como 0011 , la palabra recibida será
1010 será decodificada como 1110 ,y la palabra recibida 1111 será decodificada
como 1101 o 1110 , según si 0010 o 0001 fuese escogida como el líder del
conjunto cociente que contiene a la palabra 1111.

26
3.2.2 COSETS LÍDERES.

En matemáticas, si G es un grupo, H es un subgrupo de G, y G es un elemento de


G,
entonces

gH = { gh : h an element of H } is a left coset of H in G , and gH = (gh: h un


elemento de H) es una clase lateral izquierda de H en G, y

Hg = { hg : h an element of H } is a right coset of H in G . Hg = (hg: h un


elemento de H) es una clase lateral derecha de H en G.

Solamente cuando H es normal voluntad los cosets derechos e izquierdos de H


coincida, que es una definición de la normalidad de un subgrupo.

A coset es un coset izquierdo o derecho de algunos subgrupo adentro G. Desde


entonces Hectogramo = g ( g-1Hectogramo ), los cosets derechos Hectogramo (de
H ) y los cosets izquierdos g ( g-1Hectogramo ) (de conjugación subgrupo g-
1Hectogramo ) son iguales. Por lo tanto no es significativo hablar de un coset como
ido o correcto a menos que un primer especifique a subgrupo subyacente.

Para grupos abelian o los grupos escritos aditivo, la notación utilizaron cambios a
g+H y
H+g respectivamente

3.2.3 MATRICES DE HAMMING.

La matriz de control de Hq(r) es una matriz que tiene r filas y n = columnas, y el


código Hq(r) es un [n,k,3]-código donde k = n – r. Esta matriz se llama matriz de
Hamming y no es única.
27
Consideremos los elementos de Hq(r) como números en el sistema de numeración
de base
q. Elegimos los que son distintos de cero y que tienen dígitos más significativo igual
a 1. Entonces las columnas de Hq(r) son estos números escritos en
orden creciente.

H2(3)

r = 3. Las columnas son números de 3 dígitos


binarios. n =
d=3

El tomar el dígito más significativo igual a 1 implica que cogemos un único punto en
cada recta.

Las columnas están ordenadas en orden creciente. n=

Si pusiésemos la columna sería múltiplo de y así d = 2 (cogeríamos 2 vectores en la


misma recta).

r=3=n–kk=
28 m = qk = qn-r

Estos fueron los primeros códigos correctores de errores. En el caso binario la


matriz de control está formada por todos los números
binarios menos el cero.

Proposición: Los códigos de Hamming son códigos perfectos.

28
Demostración:

n-r
m=q

qn-r · (1 + n · (q – 1)) = qn

Vamos a ver la descodificación de los códigos de Hamming.

Proposición: Si una palabra x H2(r) sufre un único error resultando la palabra y


entonces el síndrome de y, , es la representación binaria de la posición del error de
la palabra recibida.

Demostración:

Supongamos que el error se ha cometido en la posición i, es decir, y = x + ei, con


la palabra de error. Entonces:

h(y) = h(x+ei) = h(x) + h(ei) = h(ei) = ei= columna i-ésima de H2(r)

La columna i-ésima es la representación binaria del número i, i es la posición del


error. Conocido u se corrige el error calculando x = y - ei, cambiando el i-ésimo bit de
y.

[7,4,3]-código

Supongamos que se recibe la palabra y = 1101110

100 = 4 El error se ha cometido en la posición 4.

La palabra de error es e4 = (0001000). La palabra emitida es x = y – e4 =


1100110 A este método de descodificación se le llama descodificación de
Hamming.

29
Proposición: Supongamos que una palabra x Hq(r) sufre un único error, resultando
la palabra recibida y. Sea h(y) Kr el síndrome de la palabra recibida y a K el símbolo
más significativo de h(y). Si la columna de Hq(r) que contiene a a-1h(y) es la columna
i-ésima entonces la palabra de error es y se verifica que x = y - aei.

Demostración:

Supongamos que el error se ha cometido en la posición i-ésima de modo que y =


x + aei, con . Entonces:

h(y) = h(aei) = = a·i-ésima columna de Hq(r).


Ejemplo:
H3(3) y supongamos que se recibe la palabra y = 1101112211201. Descodificar
esta palabra.

h(y) no es una columna de


H3(3). (201) = 2 · (102)
(102) es la 7ª columna de H3(3), luego la palabra de error es a·e7 =
2·(0000001000000). La palabra emitida es x = y – 2e7 = 1101110211201

3.2.4 CAMPOS FINITOS.

En álgebra abstracta, un cuerpo finito, campo finito o campo de Galois (llamado


así por Évariste Galois) es un cuerpo que contiene un número finito de elementos.
Los cuerpos finitos son importantes en teoría de números, geometría algebraica,
teoría de Galois, y criptografía. Los cuerpos finitos son totalmente conocidos, y
serán descritos más abajo.

Dado que todo cuerpo de característica 0 contiene a los racionales y es por lo tanto
infinito, todos los campos finitos tienen característica prima, y por lo tanto, su tamaño
(o cardinalidad) es de la forma pn, para p primo y n > 0 entero (pues el campo es un
30
espacio vectorial sobre el subcuerpo de cardinalidad p generado por el elemento 1).
No es en general cierto, sin embargo, que todo cuerpo de característica prima sea
finito.

Para un primo p, los enteros módulo p forman un cuerpo de p elementos, denotado


por Z/pZ (pues su grupo aditivo es isomorfo al grupo cíclico de p elementos), Fp, o
GF(p); en algunos casos se usa Zp, aunque esta notación es evitada por teoristas
de los números, pues puede crear confusión con el anillo de los números p-ádicos.
Todo cuerpo con p elementos es isomorfo a éste.

Si q = pn es una potencia de un primo, existe (salvo isomorfismo) exactamente un


campo con q elementos, denotado por Fq o GF(q). Se puede construir como sigue:
encuéntrese un polinomio irreducible f(X) de grado n con coeficientes en Fp, y
defínase Fq = Fp[X] / <f(T)>, donde Fp[X] denota el anillo de todos los polinomios con
coeficientes en Fp, <f(X)> denota el ideal generado por f(X), y la barra diagonal
indica el anillo cociente (definido de forma similar al grupo cociente). El polinomio
f(X) se puede hallar factorizando Xq-X sobre Fp. El campo Fq contiene a (una copia
de) Fp como subcampo.

No hay otros campos finitos.

3.2.5 ANILLOS DE POLINOMIOS.

Sea A un anillo y S cualquier conjunto. El conjunto A[S] de todos los objetos

(1) ,

en donde , y cada n-tupla


31
de números naturales es diferente para diferente valor de i, se dice anillo de
polinomios con indeterminadas en S sobre A.

Hechos de interés sobre anillos de polinomios tienen que ver con las propiedades
del mismo a partir del anillo en el que tienen sus coeficientes. Por ejemplo, cuando
A es un dominio íntegro, A[S] también lo es, y las unidades de A[S] son las mismas
que las de A. Por el contrario A[S] nunca será un cuerpo, no importando que A lo
sea o no, pues aunque las unidades de A[S] sean las mismas que las de A, A es tan
sólo un subanillo de A[S]. Sin embargo, el anillo A[S] es un dominio integro si A lo
es, luego, dado el caso, se puede construir el cuerpo de cocientes de A[S] (i.e. el
cuerpo de fracciones de polinomios), que se denota comúnmente por A(S).

Los coeficientes de los polinomios de un anillo A[S] pueden tomarse no solo como
los elementos de A. En la práctica podemos hacer agrupaciones del tipo

y éstas también deben hacerse en un anillo de polinomios A[S]. Para ello se separan
los elementos de S en dos conjuntos disjuntos, digamos R y T, luego el anillo de
polinomios A[R][T] tiene coeficientes en el anillo de polinomios A[R] e
indeterminadas en .

Si A es un anillo y , claramente A[R] es un subanillo de A[S].

Sea A un anillo unitario. Todo polinomio no nulo de A[x] cuyo coeficiente director sea
una unidad puede dividir euclídeamente a cualquier otro polinomio de A[x] y el grado
del resto es estrictamente menor que el grado de del divisor. Es decir, si D y d son
polinomios de A[x] no nulos, con el coeficiente director de d una unidad de A,
entonces existen polinomios c y r de A[x] tales que

32
con

Así, para que la división de polinomios sea siempre posible en un anillo de


polinomios A[x], A debe de ser un cuerpo (i.e. todo elemento de A debe ser una
unidad), y si así sucede A[x] será un dominio euclídeo. Un hecho muy importante es
que un anillo de polinomios A[x] es un dominio de ideales principales (DIP) si y sólo
si A es un cuerpo. Puesto que todos los dominios euclídeos son DIPs, tenemos que
A[S] no es un dominio euclídeo si S contiene más de un elemento, pues

,y nunca es un cuerpo y por tanto tampoco un


DIP.

3.2.6 POLINOMIOS IRREDUCIBLES

En Teoría de Anillos, un polinomio no constante (y por lo tanto no nulo) p con

coeficientes en un dominio íntegro R (es decir, ) es irreducible si no puede


factorizarse como producto de polinomios de manera que todos ellos tengan grados
menor que deg(p). Es decir, si entonces ha de ser o (es
decir, alguno de ellos ha de ser un polinomio constante).

Esto es un caso particular de elemento irreducible en un dominio íntegro.

El dominio íntegro R puede, entre otros, ser el conjunto de los números reales
(que es dominio íntegro por ser cuerpo), el conjunto de los números complejos
(también cuerpo), el conjunto de los números racionales (cuerpo también) o el
conjunto de los números enteros (que no es cuerpo pero sí dominio íntegro).

33
Un polinomio irreducible es polinomio primitivo si y
solo si p es primo

y x es un elemento de orden

Para probar si un polinomio es irreducible se pueden aplicar varios criterios, entre


los que se encuentran el criterio de c o el criterio de reducción.

3.2.7 CUADRADOS LATINOS

Un cuadrado latino es una matriz de n×n elementos, en la que cada casilla está
ocupada por uno de los n símbolos de tal modo que cada uno de ellos aparece
exactamente una vez en cada columna y en cada fila.

Las siguientes matrices son cuadrados latinos:

Los cuadrados latinos se dan como una Tabla de multiplicar (Tabla Cayley) de
quasigrupos. Estos tienen su aplicación en el diseño de experimentos.

El nombre de Cuadrados Latinos se origina con Leonhard Euler quién utilizó


caracteres Latinos como símbolos.

Un cuadrado latino se dice que está reducido (o normalizado o de forma


estandarizada) si la primera fila y la primera columna están en orden natural. Por
ejemplo, el primer cuadrado está reducido, porque la primera fila y la primera
columna son 1, 2, 3.
34
Es posible hacer un cuadrado latino permutando (reordenando) las filas y las
columnas.

Muchas operaciones sobre un Cuadrado latino producen otro Cuadrado latino (por
ejemplo, alternar filas).

Si permutamos las filas, permutamos las columnas, y permutamos los símbolos de


un Cuadrado latino obtenemos un nuevo Cuadrado latino que decimos que es
isotópico del primero. El isotopismo es una relación de equivalencia, en base a esto
se dice que todos los

Cuadrados latinos están divididos en subgrupos, llamados clases isotópicas, según


esto dos Cuadrados de la misma clase se dice que son isotópicos, y dos de clases
diferentes son no isotópicos.

Otro tipo de operación es simple de explicar usando la representación de estos por


arreglos ortogonales. Si reorganizamos consciente y sistemáticamente los tres
elementos de cada tripleta (f, c, s) por (c, f, s) lo cual corresponde a una
transposición del cuadrado (reflejado en la diagonal principal), o podemos remplazar
cada tripleta (f, c, s) por (c, s, f), lo que es una operación más complicada. Todas
juntas nos dan 6 posibilidades, incluida no hacer nada, dándonos 6 Cuadrados
Latinos llamados conjugados del cuadrado original.

Finalmente, podemos combinar estas dos operaciones equivalentes: Dos


Cuadrados Latinos son paratópicos si uno de ellos es conjugado del otro. Esto es
nuevamente una relación de equivalencia, con la clase de equivalencia principal
llamada Clase Principal, especies o clase paratópica. Cada clase contiene 6 clases
isotópicas.

35
3.2.8 CRIPTOGRAFÍA.

La criptografía (del griego κρύπτω krypto, «oculto», y γράφω graphos, «escribir»,


literalmente «escritura oculta») es el arte o ciencia de cifrar y descifrar información
mediante técnicas especiales y se emplea frecuentemente para permitir un
intercambio de mensajes que sólo puedan ser leídos por personas a las que van
dirigidos y que poseen los medios para descifrarlos.

Con más precisión, cuando se habla de esta área de conocimiento como ciencia,
se debería hablar de criptología, que a su vez engloba tanto las técnicas de cifrado,
es decir, la criptografía propiamente dicha, como sus técnicas complementarias,
entre las cuales se incluye el criptoanálisis, que estudia métodos empleados para
romper textos cifrados con objeto de recuperar la información original en ausencia
de las claves.

En la jerga de la criptografía, la información original que debe protegerse se


denomina texto en claro o texto plano. El cifrado es el proceso de convertir el texto
plano en un galimatías ilegible, denominado texto cifrado o criptograma. Por lo
general, la aplicación concreta del algoritmo de cifrado (también llamado cifra) se
basa en la existencia de una clave: información secreta que adapta el algoritmo de
cifrado para cada uso distinto. Cifra es una antigua palabra arábiga para designar
el número cero; en la Antigüedad, cuando Europa empezaba a cambiar del sistema
de numeración romano al arábigo, se desconocía el cero, por lo que este resultaba
misterioso, de ahí probablemente que cifrado signifique misterioso.

Las dos técnicas más sencillas de cifrado, en la criptografía clásica, son la sustitución
(que supone el cambio de significado de los elementos básicos del mensaje -las letras,
los dígitos o los símbolos-) y la trasposición (que supone una reordenación de los
mismos); la gran mayoría de las cifras clásicas son combinaciones de estas dos
operaciones básicas.

36
El descifrado es el proceso inverso que recupera el texto plano a partir del
criptograma y la clave. El protocolo criptográfico especifica los detalles de cómo se
utilizan los algoritmos y las claves (y otras operaciones primitivas) para conseguir el
efecto deseado. El conjunto de protocolos, algoritmos de cifrado, procesos de
gestión de claves y actuaciones de los usuarios, es lo que constituyen en conjunto
un criptosistema, que es con lo que el usuario final trabaja e interactúa.

Existen dos grandes grupos de cifras: los algoritmos que usan una única clave tanto
en el proceso de cifrado como en el de descifrado, y los que emplean una clave para
cifrar mensajes y una clave distinta para descifrarlos. Los primeros se denominan
cifras simétricas, de clave simétrica o de clave privada, y son la base de los
algoritmos de cifrado clásico. Los segundos se denominan cifras asimétricas, de
clave asimétrica o de clave pública y forman el núcleo de las técnicas de cifrado
modernas.

En el lenguaje cotidiano, la palabra código se usa de forma indistinta con cifra. En


la jerga de la criptografía, sin embargo, el término tiene un uso técnico
especializado: los códigos son un método de criptografía clásica que consiste en
sustituir unidades textuales más o menos largas o complejas, habitualmente
palabras o frases, para ocultar el mensaje; por ejemplo, "cielo azul" podría significar
«atacar al amanecer». Por el contrario, las cifras clásicas normalmente sustituyen o
reordenan los elementos básicos del mensaje -letras, dígitos o símbolos-; en el
ejemplo anterior, «rcnm arcteeaal aaa» sería un criptograma obtenido por
transposición. Cuando se usa una técnica de códigos, la información secreta suele
recopilarse en un libro de códigos.

Con frecuencia los procesos de cifrado y descifrado se encuentran en la literatura


como encriptado y desencriptado, aunque ambos son neologismos erróneos —
anglicismos de los términos ingleses encrypt y decrypt— todavía sin reconocimiento
académico. Hay quien hace distinción entre cifrado/descifrado y
encriptado/desencriptado según estén hablando de criptografía simétrica o

37
asimétrica, pero la realidad es que la mayoría de los expertos hispanohablantes
prefieren evitar ambos neologismos hasta el punto de que el uso de los mismos
llega incluso a discernir a los aficionados y novatos en la materia de aquellos que
han adquirido más experiencia y profundidad en la misma.

Ideológicamente cifrar equivale a escribir y descifrar a leer lo escrito

38
CONCLUSIÓN
La programación es importante porque con ella nosotros podemos cambiar el mundo, lo
innovamos. Además, programando nosotros salimos adelante, es un bien para mí y para
la sociedad, el programador es quien hace los programas que hacen facilitar la vida del
ser humano, la programación no es aburrida es divertida, con ellos nosotros podemos
transformar nuestras ideas, y así crear cosas divertidas, entretenidas, de uso diario, que
ayude a facilitar la vida.

Por eso es importante que desde una temprana edad uno valla relacionando la
programación con nuestras vidas, por ende, es necesario conocer estos temas de
programación por que van abriendo el camino a la programación.

39
BIBLIOGRAFIA

1. Johnsonbaugh, Richard, Discrete Mathematics, Ed. Prentice Hall; Última Edición


2. Patrick Suples, Lógica Matemática, Ed. CECSA
3. Liu, C.L., Elements Of Discrete Mathematics
4. Hasser Lassalle & Sullivan, Análisis Matemático, Ed. Trillas Vol. I
5. Johnson & Baugh, Matematicas Discretas, Ed. Interamericana
6. Hopcroft, John, Ullman, Jeffrey, Introduction to Automatas Theory, Languages and
Computation, Ed. Addison-Wesley.
7. Kelley, Dean, Teoría de Autómatas y Lenguajes Formales, Ed. Prentice Hall.
8. Rayward-Smith, V.S, A First Course in a Formal Language Theory, Ed. Mc Graw Hill
9. Brookshear, Teoría de la Computación, Lenguajes Formales, Autómatas y
Complejidad, Ed. Addison Wesley.
10. Isasi, Martínez y Borrajo, Lenguajes, Gramáticas y Autómatas, Ed: Addison Wesley

40
41

Вам также может понравиться