Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Resumen
Con frecuencia los alumnos nos preguntan ¿y esto para qué sirve?. Los profesores de
Matemáticas deben preocuparse no sólo por los aspectos teóricos de las Matemáticas
sino también por sus aplicaciones prácticas. En este trabajo se muestra cómo el Álgebra
Lineal se encuentra detrás de muchas actividades de nuestra vida cotidiana: cuando
hacemos una búsqueda en Google, cuando utilizamos el formato JPEG, o cuando oímos
un CD de música.
1. Introducción
Las Matemáticas en las Escuelas de Ingeniería se suelen presentar excesivamente
teóricas y alejadas de las aplicaciones reales (Martínez de la Rosa et al., 2005). Es
frecuente escuchar por los pasillos a los alumnos hacer la pregunta: ¿y esto para qué me
sirve?.
Como matemáticos, no sólo debemos conocer la parte teórica de nuestra ciencia sino
también los usos prácticos de las Matemáticas. Como profesores deben estar preparados
para contestar a la pregunta anterior con conocimientos y con entusiasmo.
En nuestro caso, el primer día de curso se aprovecha, no sólo para comentar el programa
de la asignatura Álgebra Lineal y los criterios de evaluación, sino también para
presentar un resumen de las múltiples e interesantes aplicaciones de los contenidos
matemáticos que van a aprender.
Por otro lado, deben fomentar el aprendizaje autónomo del alumno en las actividades
académicas dirigidas dentro de la metodología de los créditos ECTS. Pensamos que este
tipo de actividades se deben dedicar, no sólo a la resolución de la clásica relación de
problemas de Matemáticas, sino también a la realización de este tipo de trabajos en
grupos de alumnos, favoreciendo de camino el trabajo colaborativo.
Con esto perseguimos que los alumnos aprendan Matemáticas sabiendo en qué áreas
relacionadas con sus estudios se utilizan, para que así valoren más los conocimientos
que están adquiriendo.
Pues bien, el éxito de Google se debe a un algoritmo llamado “Page Rank” que tiene
mucho que ver con el Álgebra Lineal. Este algoritmo asigna una puntuación de
importancia a cada una de las páginas web, de modo que cuando se hace una búsqueda
mediante palabras clave, el buscador nos proporciona una serie de páginas que
contienen esas palabras clave pero que además están ordenadas de modo que las más
relevantes, las más importantes, serán mostradas en las primeras posiciones.
0 1 1
0
0 0 0
A 1 0 1
1
1 0 0
1
Entonces tendríamos:
1
x1 2; x2 1; x 3; x 2
3 4
De manera que la página 3 sería la más importante, seguida de un empate entre las
páginas 1 y 4, y, por último, la menos importante sería la página 2.
Esto nos lleva a considerar más razonable el usar la matriz “normalizada” siguiente:
También parece razonable pensar que el enlace desde una página importante debe tener
más peso que el enlace desde una página poco importante. Entonces la importancia de
cada página viene determinada analizando los enlaces que se hacen hacia ella y la
importancia de cada uno de estos enlaces. Si una página Pj (que contiene n j enlaces)
enlaza a una página i, esto debe hacer que aumente la importancia xi de Pi con la
xj
cantidad .
nj
Simplificadamente
: XAX.
donde k puede tomar cualquier valor. Averiguamos el valor de k de modo que todas las
componentes del vector solución sumen 1 y obtenemos:
Observar que el ranking de páginas de la figura 2 ha cambiado. Parece sorprendente que
la página 3 que es enlazada desde las otras tres páginas ha dejado de ser la más
importante. Para comprender esto, hay que observar que la página 3 enlaza solamente
con la página 1 y, por lo tanto, dedica todo su voto a esta página. Esto unido al voto de
la página 2 da como resultado que la página 1 sea la más importante en el ranking.
Como hemos visto, el problema del cálculo del vector de importancias queda reducido a
la resolución de un X A X , equivalente a ( A I ) X .
sistema:
Recordemos que dada una matriz A, se dice que un vector X es una autovector de dicha
matriz asociado al autovalor si se verifica que: A X X . Por lo tanto, el vector de
importancias debe ser el autovector de la matriz A asociado al autovalor 1.
La matriz A será en la práctica enorme ya que en Internet hay billones de páginas Web,
por lo tanto, el cálculo del autovector anterior será muy costoso computacionalmente.
Como dice Cleve Moler (2002) “The world’s largest matrix computation”. Más detalles
sobre el algoritmo pueden encontrarse en Fernández Gallardo (2004).
Figura 3: Una imagen digital en escala de grises en formato BMP a la izquierda de la figura y en formato
JPEG a la derecha
B T t AT (1)
siendo A una subimagen 8 8 de la imagen original y T una matriz ortogonal.
Las columnas de la matriz T son una base ortonormal de 8, elegida de tal forma que la
matriz B resultante de (1) tiene la particularidad de concentrar los elementos de mayor
magnitud en la esquina superior izquierda de la matriz transformada y el resto de la
matriz son números prácticamente nulos.
Dicha base podría ser la llamada base wavelet de Haar, formada por los vectores
ortogonales dos a dos siguientes:
Haciendo los vectores unitarios, dividiendo cada vector por su norma, obtendremos la
base ortonormal. Formamos la matriz T escribiendo los vectores de la base anterior:
1 1
1
8 8
1
2 0 2
0 0 0
1 1 1
0 0 0 0
8 8 2 12
1 1 2 1 0 0 1 0 0
8 8 2
T
1
8
1
8
12 0 0 12 0 0
1
1
1 0 2 0 0 1
0
8 8 2
1
8 1 0
1
2 0 0 12 0
8
1 1 0 0 0
8 8 12 0 1 2
1 1 0 12 0 0 0 12
8 8
El hecho de escoger la base ortonormal tiene una razón muy evidente: la matriz T así
construida tiene la particularidad de ser ortogonal, es decir: T 1 T t . Esto, como
veremos a continuación, simplifica el proceso.
La transformación dada en (1), usando esta matriz T, concentra los elementos de mayor
magnitud (en valor absoluto) en la parte superior izquierda de la matriz transformada B.
Por ejemplo:
En la realidad, muchos bloques 8 8 de imágenes reales tendrán sus elementos no nulos
concentrados en la parte superior izquierda y una gran cantidad de números
prácticamente despreciables en el resto.
La transformación inversa de (1) nos permite recuperar la subimagen A tal y como era
originalmente:
ATBTt (2)
A* T B * T t (3)
En la imagen BMP de la figura 3, hemos llevado a cabo las ideas anteriores. La imagen
original I A , se descompone en bloques 8 8 , a cada bloque se le aplica la transformada
descrita obteniendo la matriz I B . Todos aquellos elementos de I B que estén en valor
absoluto por debajo de 3.5, por ejemplo, se ponen a cero. De esta forma en la matriz
resultante final I * se obtiene un total de 56078 ceros. Eso son muchos ceros, ya que la
B
matriz transformada * tiene 256 256 elementos. Esto supone que más del
I 65536
B
85’5% de los elementos de I * son ceros. Después, a cada bloque 8 de la imagen
8
B
transformad *
I , se le calcula la transformada inversa, dada por la fórmula (3),
a
B
obteniendo de esta forma una aproximación I *A de la imagen original. El resultado se
muestra en la figura 4.
Figura 4: Imagen recuperada con un 85’5% de ceros en la transformada
Por otro lado, se disponen de métodos para almacenar una secuencia de números con
muchos ceros seguidos. Supongamos, por ejemplo, que tenemos un vector de 18
componentes del tipo:
(5, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)
Pues bien, en lugar de almacenar las 18 componentes una tras otra, podemos guardar:
(5, 2, Z16), usando tres caracteres (1, 6 y Z) para almacenar los 16 ceros. Esta idea se
aplica en el formato JPEG para almacenar los elementos de la I B* .
matriz
Un idea similar se usa para guardar un fichero de audio WAV en un fichero MP3.
Ocurren
Interferencias
No sólo se aplican este tipo de códigos en la transmisión vía satélite sino que también
los estamos usando con frecuencia aún sin darnos cuenta. Así por ejemplo, la música de
un CD se graba con este tipo de códigos y así se puede oír bien la música aunque el CD
esté ligeramente estropeado.
0 0 0
1
1 0 0
0 0 1 0
0
0 0 1
G
1 0 1
0
0 1 1
1 1 1 1
1
0
se obtenga una secuencia binaria b1 b2b3b4b5b6b7 donde los 4 primeros bits son los
originales, es decir, la información que deseamos transmitir. Los tres últimos bits son
bits de control. Las operaciones de suma y producto que vamos a emplear son las de 2,
que se indican en la tabla 1.
Tabla 1: Tablas de sumar y multiplicar en 2
+ 0 1 . 0 1
0 0 1 0 0 0
1 1 0 1 0 1
Las 16 secuencias de 4 bits posibles de información que podemos desear enviar serían:
0000, 0001, 0010, 0011, 0100, 0101, 0110, 0111, 1000, 1001, 1010, 1011, 1100, 1101,
1110, 1111
1 1 0 1 1 0 0
H 0 1 1 0 1 0
1 1 1 1 0 0 1
0
donde en la parte izquierda de esta matriz nos encontramos la misma submatriz que
aparecía en la parte inferior de G y a su derecha aparece la matriz identidad de orden 3.
Supongamos que se comete un error en el primer bit, es decir, que la secuencia de 7 bits
que nos llega es 0101100. Esa secuencia puede comprobarse como no coincide con
ninguna de las secuencias que componen el código C y por lo tanto, ha ocurrido un
error. Pero no hace falta compararla con todas las secuencias de código para ver que no
está en C, sino que basta con calcular su síndrome y comprobar que no nos sale nulo.
Es decir, el error ocurre en el primer bit y el síndrome coincide con la primera columna
de H. Análogamente es igual de fácil comprobar, que si el error se comete en el segundo
bit entonces el síndrome coincide con la segunda columna de H , si el error se comete
en el tercer bit entonces el síndrome coincide con la tercera columna de H, etc.
Por lo tanto, es muy fácil detectar y corregir el error en el caso de que éste ocurra.
El código considerado en esta sección es un código Hamming C(7,4) que fue usado por
France Telecom para la transmisión de Minitel (un precursor de Internet). Hoy en día se
usan códigos más sofisticados, como los códigos de Reed-Solomon, que permiten
detectar y corregir varios errores (usados en los CDs de música).
5. Bibliografía
Adams, D., et al. (2006). Haar Wavelet Transformation: Compression and
Reconstruction. Disponible on-line.
http://online.redwoods.cc.ca.us/instruct/darnold/laproj/fall2006/adamspatterson/haar1.p
df
http://www.uam.es/personal_pdi/ ciencias/gallardo/
http://www.mathworks.com/company/newsletters/news_notes/clevescorner/oct02_cleve
.html
Page, L. et al. (1998). The PageRank Citation Ranking: bringing order to te Web.
Technical Report. Stanford InfoLab. Disponible on-line.