Ejercicios 1, 6 y 7 de la clase práctica de la Unidad 5 · girar una palabra es tomar un resto, el generador más redundante que la contiene es un máximo común divisor, y con la misma redundancia la distancia la deciden los factores
Los tres ejercicios trabajan con una sola herramienta: los polinomios módulo y su factorización, que la clase práctica da en su segunda diapositiva:
El primero muestra que girar una palabra de un código cíclico es multiplicar por y tomar un resto. El sexto, que el código más redundante que contiene a una palabra sale de un máximo común divisor. El séptimo, que con la misma redundancia la distancia depende de qué factores se eligen.
El enunciado, textual: «Sea la 15-tupla sobre , con el bit de la izquierda como coeficiente de ,
Antes de resolver. Hay que entregar un polinomio, dos tuplas, dos polinomios y una lista de componentes. Lo único que hay que leer bien es la primera línea: el bit de la izquierda es , el coeficiente de . Los unos están en las posiciones 0, 2, 13 y 14, y las dos últimas son las que van a dar la vuelta.
Las herramientas. El desplazamiento cíclico mueve cada componente un lugar a la derecha y lleva la última al principio:
En polinomios es la ecuación (5) del apunte, y aplicada veces da el desplazamiento de orden :
El resto módulo se toma sin dividir: como , vale , y toda potencia se reemplaza por . Está en el concepto de los códigos cíclicos.
El razonamiento. Multiplicar por suma uno a cada exponente, que es mover cada bit un lugar a la derecha. El bit de la posición 14 pasaría a la 15, que no existe; la reducción lo devuelve a la 0. Así que los dos caminos tienen que coincidir, y lo que dio la vuelta es exactamente lo que, después de multiplicar, quedó con exponente 15 o más. En el giro de orden 3 son los términos que estaban en 12, 13 o 14: acá, y .
La resolución.
1. Con un término por cada uno de la tupla:
2. Corriendo la tupla un lugar, y tres:
3. Multiplicando y reduciendo con , y :
4. Leídos como tuplas, es y es : los dos caminos dan lo mismo. En el primer giro dio la vuelta , que pasó a ser el término independiente. En el tercero dieron la vuelta y , que cayeron en y .
El enunciado, textual: «Los polinomios siguientes son palabras de códigos cíclicos binarios de longitud . Para cada uno, determinar el polinomio generador de mayor grado posible, es decir, el código más redundante que puede contener a esa palabra.
Sugerencia. El generador divide a , y también divide a .»
Antes de resolver. Se entrega un polinomio generador por palabra, y con él el código: su grado es . «Más redundante» es «de mayor grado»: entre todos los códigos cíclicos de largo 15 que tienen a como palabra, el de menos bits de información.
Las herramientas. Tres teoremas del apunte, en una línea cada uno.
Lo que se busca es entonces un divisor común de y , y el de mayor grado es el máximo común divisor. Por la factorización, ese máximo común divisor es el producto de los factores de que dividen a .
El razonamiento. Hay dos caminos: Euclides, o probar los cinco factores. El segundo es más corto, porque la factorización ya está dada, y cada prueba es una reducción: para tomar el resto módulo se despeja su potencia más alta y se la reemplaza cada vez que aparece. Para :
Uno solo de los cinco. Dividiendo, , y el segundo factor es irreducible pero no está en la lista: es la parte de que ningún código cíclico de largo 15 puede absorber.
Para la primera prueba ya da: , así que divide. Sobre el cuadrado de una suma es la suma de los cuadrados, y entonces : el factor está ocho veces en , pero una sola en , y el máximo común divisor lo toma una sola vez. Los otros cuatro dejan resto: , , y , por las mismas reducciones (por ejemplo, módulo , ).
El camino de Euclides llega a lo mismo sin usar la factorización. Para la primera palabra son cuatro divisiones:
El último resto no nulo es .
Arranca con la palabra del ejercicio 1, que tiene peso par. Cargá después las dos del ejercicio 6 y apostá antes de dividir. Y girá cualquiera de ellas: los restos que no eran cero cambian con cada giro, y los que eran cero siguen en cero. Es porque es invertible módulo , ya que ; entonces divide a módulo exactamente cuando divide a . Girar una palabra nunca la saca de un código cíclico: es la definición, vista desde los factores.
La hipótesis del enunciado no es gratis. Recorridos los 32 767 vectores no nulos de largo 15, en 10 125 el máximo común divisor con da 1: esos no son palabra de ningún código cíclico no trivial de largo 15.
La resolución. El generador buscado es .
Por qué el máximo común divisor: cualquier divisor común de y genera un código cíclico que contiene a , y el de mayor grado es el de mayor redundancia.
El enunciado, textual: «A partir de la factorización de de la segunda diapositiva:
Antes de resolver. Se entregan un número, tres polinomios, una elección con su conclusión y una multiplicación. El código de referencia es el de la clase práctica, con y distancia mínima .
Las herramientas. Las del ejercicio 6, más dos. Si tiene factores irreducibles distintos, hay códigos cíclicos no triviales de largo : uno por subconjunto, menos el vacío (, el que acepta todo) y el completo (, que sólo tiene la palabra nula). Y en un código lineal la distancia mínima es el menor peso de una palabra no nula.
El razonamiento. Con cinco factores, . Los grados son 1, 2, 4, 4 y 4, y el grado de un producto es la suma de los grados. Para llegar a 8 no sirve el de grado 1 ni el de grado 2: , , , , y con dos de grado 4 ya se llegó. La única forma es , dos de los tres factores de grado 4, y hay tres maneras de elegir dos de tres: tres generadores, como dice el enunciado.
Multiplicar es sumar copias corridas: un factor por cada término del otro. Para el primero,
y , que aparece tres veces, queda una: .
La distancia de los tres la da el enunciado, pero la del tercero se puede ver sin enumerar. Como y , el trinomio es el producto de los otros tres factores:
Todo generador hecho sólo con , y divide a , que tiene grado 10 y, por el Teorema 2, es entonces una palabra de su código: una palabra de peso 3. El tercer generador es , así que su distancia es a lo sumo 3. Medido sobre el catálogo, son siete los generadores que dividen a , y los siete tienen . Los otros dos generadores de grado 8 llevan y escapan a ese argumento; su 5 sale de recorrer las 127 palabras no nulas de cada uno.
En los dos de distancia 5, la palabra más liviana de menor grado es el propio , que pesa 5. En el de distancia 3, pesa 7, y las cinco palabras de peso 3 son y sus giros: el patrón tiene período 5, así que sólo hay cinco distintos. Los dos generadores de distancia 5 son además recíprocos uno del otro, y : el mismo código leído al revés, con la misma distribución de pesos (18 palabras de peso 5, 30 de peso 6, 15 de peso 7).
La resolución.
1. tiene cinco factores irreducibles distintos, así que hay códigos cíclicos no triviales de longitud 15.
2. Ocho se descompone sólo como , tomando dos de los tres factores de grado 4:
3. Conviene cualquiera de los dos primeros: da una capacidad de corrección , y el tercero, con , corrige uno solo con los mismos ocho bits de paridad. La conclusión: la redundancia no determina la distancia mínima; la elección del polinomio generador sí. El tercero pierde porque divide a .
4. Primero el producto de dos, sumando copias corridas de :
Después, ese resultado por : cinco copias de , corridas 0, 1, 2, 3 y 4 lugares. Cada exponente queda si aparece una cantidad impar de veces:
| exponente | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
|---|---|---|---|---|---|---|---|---|---|---|---|
| a(X) | 1 | 1 | 1 | 1 | 1 | ||||||
| X a(X) | 1 | 1 | 1 | 1 | 1 | ||||||
| X² a(X) | 1 | 1 | 1 | 1 | 1 | ||||||
| X³ a(X) | 1 | 1 | 1 | 1 | 1 | ||||||
| X⁴ a(X) | 1 | 1 | 1 | 1 | 1 | ||||||
| veces | 1 | 1 | 1 | 2 | 3 | 3 | 4 | 4 | 3 | 2 | 1 |
| queda | 1 | 1 | 1 | 0 | 1 | 1 | 0 | 0 | 1 | 0 | 1 |
que es el del . Los dos factores que quedaron afuera dan su polinomio de paridad, el mismo que da la clase práctica:
Reducir es reemplazar la potencia más alta. Módulo es ; módulo es . Es la misma jugada que calcula la paridad de un codificador sistemático, , y el síndrome, : está hecha ciclo a ciclo en el registro ciclo a ciclo.
La factorización es el menú. Toda pregunta sobre los cíclicos de largo 15 es una pregunta sobre qué subconjunto de los cinco factores se toma: el generador es lo que entra, el polinomio de paridad es lo que queda afuera, y el código más redundante que contiene a una palabra son los factores que la dividen.
Un trinomio de peso 3 es una cota. Si divide a un polinomio de grado menor que con pocos términos, ese polinomio es una palabra y no puede superar su peso. Buscar un múltiplo liviano de es la forma más rápida de acotar la distancia sin enumerar. Con pasa lo mismo: es en sí un generador, el de un con distancia 3, contra el 7 del de referencia. Lo que la redundancia hace con la mejor distancia, redundancia por redundancia, está en un bit más de redundancia puede costar distancia.
Cuál es la posición 0. El enunciado lo dice: el bit de la izquierda es . Leída al revés, sería , otro polinomio. Para los ejercicios de registros importa lo mismo: el mensaje entra al registro empezando por el coeficiente de mayor orden, el que está escrito más a la derecha.
Hacia dónde gira. es multiplicar por : cada bit va a la derecha y el de mayor orden, , vuelve al principio. Girar hacia la izquierda es multiplicar por , que módulo es el inverso de .
La multiplicidad. , pero el máximo común divisor con es a la primera, no a la octava. Un generador de largo 15 no puede tener un factor repetido, porque no lo tiene. La cuenta usa justamente eso: con impar los factores son distintos.
Grado contra distancia. Que los tres generadores tengan grado 8 dice que los tres códigos son y nada sobre su distancia. Quien elige por la redundancia elige a ciegas entre 5 y 3.