next up previous contents
Siguiente: Modificaciones de códigos Arriba: Segundas listas Anterior: Ejercicios

Programas



1. Escriba un programa que lea de un archivo ASCII el valor de un número primo $p$, de un entero $n$, y una matriz $A$ de orden $n\times n$ con entradas en $\mathbb{F}_p$, decida si $A$ es invertible en $\mathbb{F}_p$ y en caso de que lo sea calcule $A^{-1}$.



2. Escriba un programa que lea de un archivo ASCII el valor de un número primo $p$, de dos enteros $m,n$, una matriz $A$ de orden $m\times n$ con entradas en $\mathbb{F}_p$, y un vector $b$ de dimensión $m$ con entradas en $\mathbb{F}_p$, decida si el sistema de ecuaciones $Ax=b$ posee soluciones $x\in\mathbb{F}_p^n$ y en caso de que las haya, las describa.



3. Escriba un programa que lea de un archivo ASCII el valor de un número primo $p$, de dos enteros $k,n$, una matriz $A$ de orden $n\times k$ con entradas en $\mathbb{F}_p$, generatriz de un código-$[n,k]$, y calcule una matriz de paridad $A^{\perp}\in\mathbb{F}_p^{(n-k)\times n}$.



4. Escriba un programa que reciba un valor de probabilidad $p<\frac{1}{2}$, correspondiente a que un cierto canal binario simétrico altere el valor de un bit, y un entero impar $n$, longitud de un código por mayoría de votos, y contenga los procedimientos siguientes:

  1. Dado un bit $\varepsilon\in\{0,1\}$ genere la palabra $\delta=\delta_0\cdots\delta_{n-1}\in\{0,1\}^n$ de la siguiente manera: Para cada $i\leq n-1$ genere un valor aleatorio real $r$ entre 0 y 1, si $r\geq p$ entonces debe hacer $\delta_i=\varepsilon$ y, en otro caso, $\delta_i=1-\varepsilon$ .
  2. Dada una sucesión de bits $\varepsilon=\varepsilon_0\cdots\varepsilon_{m-1}\in\{0,1\}^m$ codifique cada uno como en el punto A. y obtenga un código $\delta\in\{0,1\}^{mn}$.
  3. Dada una palabra $\delta\in\{0,1\}^{mn}$ recupere $\varepsilon\in\{0,1\}^m$ tomando en cada bloque de $n$ bits contiguos aquel que aparezca más veces.
  4. Dado $\varepsilon\in\{0,1\}^m$, genere el código correspondiente $\delta\in\{0,1\}^{mn}$, según B., a éste aplique C. para obtener $\varepsilon'\in\{0,1\}^m$, y cuente las discrepancias entre $\varepsilon$ y $\varepsilon'$.
  5. Genere muchas, muchas pero muchas palabras aleatorias $\varepsilon\in\{0,1\}^m$ y tome el promedio de las discrepancias. Este valor depende de $p$ y de $n$.
  6. Fije $p$ y grafique estadísticas de desempeño variando $n$.
  7. Explique los resultados del programa y las observaciones de usted.



5. Escriba un programa que reciba dos enteros $m,n$, y contenga los procedimientos siguientes para manejar códigos rectangulares $m\times n$:

  1. Dada una palabra $\varepsilon\in\{0,1\}^{(m-1)(n-1)}$ calcule su código $\delta\in\{0,1\}^{mn}$ de acuerdo con el código rectangular $m\times n$.
  2. Encuentre un par de palabras en el código rectangular $m\times n$ cuya distancia de Hamming sea 4.
  3. Dada una palabra $\delta\in\{0,1\}^{mn}$, localice la palabra $\delta_0$ en el código rectangular $m\times n$ más cercana a $\delta$ y dé esa distancia.
  4. Realice el procedimiento de decodificación. En el caso de corregir errores, decida si es posible identificar la posición de los bits erróneos.



6. Escriba un programa que reciba la matriz generatriz y una correspondiente de paridad de un código-$[n,k]$ lineal, y contenga los procedimientos siguientes para manejar códigos lineales:

  1. Dada una palabra $\varepsilon\in\{0,1\}^{k}$ calcule su código $\delta\in\{0,1\}^{n}$.
  2. Encuentre un par de palabras en el código lineal cuya distancia de Hamming sea la distancia mínima del código.
  3. Dada una palabra $\delta\in\{0,1\}^{n}$, localice la palabra $\delta_0$ en el código lineal más cercana a $\delta$ y dé esa distancia.
  4. Realice el procedimiento de decodificación. En el caso de corregir errores, decida si es posible identificar la posición de los bits erróneos.



7. Escriba un programa que reciba $n$ y genere todos los códigos lineales binarios separables con la distancia máxima, escribiendo cada uno en un archivo ASCII distinto.

Conjeture cómo caracterizarlos y demuestre que su conjetura es válida.



8. Escriba un programa que reciba una matriz $G\in\mathbb{F}_2^{n\times k}$, generatriz de un código $C$ y realice las funciones siguientes:

  1. Enliste todas las palabras del código $C$.
  2. Transforme $G$ a una matriz sistemática equivalente.
  3. Calcule una correspondiente matriz revisora de paridad.
  4. Construya el arreglo estándar de $C$.



9. Escriba un programa que reciba una matriz $R\in\mathbb{F}_2^{n\times k}$, revisora de paridad de un código $C$ y realice las funciones siguientes:

  1. Enliste todas las palabras del código $C$.
  2. Calcule una correspondiente matriz generatriz $G$.
  3. Transforme $G$ a una matriz sistemática equivalente.
  4. Construya el arreglo estándar de $C$.



10. Escriba un programa que reciba $n,k\in\mathbb{N}$ y genere todas las matrices generatrices de códigos-$(n,k)$ que son MDS. Pare esto utilice la caracterización formulada en la observación 5.4.


next up previous contents
Siguiente: Modificaciones de códigos Arriba: Segundas listas Anterior: Ejercicios
Guillermo M. Luna
2010-05-09