See discussions, stats, and author profiles for this publication at: https://www.researchgate.net/publication/216456908
Aplicaciones del Álgebra Lineal en la vida cotidiana CONFERENCE PAPER · JANUARY 2009
READS
766
2 AUTHORS, INCLUDING: Alberto Cano Virginia Commonwealth University 48 PUBLICATIONS 106 CITATIONS SEE PROFILE
Available from: Alberto Cano Retrieved on: 27 February 2016
Aplicaciones del Álgebra Lineal en la vida cotidiana
Aplicaciones del Álgebra Lineal en la vida cotidiana Ángela Rojas Matas1, Alberto Cano Rojas2 1
2
Dpto. Matemáticas, Universidad de Córdoba, ma1romaa@uco.es Alumno de Ingeniería Informática, Universidad de Córdoba, i52caroa@uco.es
Resumen Con frecuencia los alumnos nos preguntan ¿y esto para qué sirve?. Los profesores de Matemáticas debemos preocuparnos 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. PALABRAS CLAVE: Álgebra Lineal, aplicaciones. 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 debemos 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, debemos 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. Con este tipo de actividades pretendemos conseguir los siguientes objetivos:
Un proceso de enseñanza-aprendizaje más motivador e interesante para los alumnos.
XIV JAEM Girona 2009
Aplicaciones del Álgebra Lineal en la vida cotidiana
Integrar los contenidos matemáticos de nuestras asignaturas en áreas de interés para la titulación.
Incentivar la búsqueda de información.
En la sección 2 de este trabajo se expone una aplicación del Álgebra Lineal en el algoritmo de búsqueda de Google, en la sección 3 una aplicación en el formato de compresión de imágenes JPEG y en la sección 4 una aplicación en los códigos detectores y correctores de errores. 2. Álgebra Lineal y Google Es raro el día en el que no utilizamos Google para hacer algún tipo de búsqueda. Google es el buscador más utilizado en Internet. Fue diseñado por Sergei Brin y Lawrence Page en 1998 cuando eran estudiantes de Doctorado de Informática en la Universidad de Standford (Page et al. 1998).
Figura 1: Logotipo de Google.
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. El algoritmo acuerdo a su humana. La hiperenlaces Internet.
PageRank de Google asigna un valor numérico a cada página Web de importancia. Este valor se calcula de forma automática, sin intervención importancia de una página Web se cuantifica teniendo en cuenta los o hipervínculos que contienen todas las páginas Web que componen
Entonces, en un primer intento, se podría tomar como valor de la importancia xi de la página i como el número de enlaces que se hacen desde el resto de páginas hacia i. En este sentido, podríamos construir una matriz A definida de la siguiente forma: 1 si hay un enlace desde la página j a la página i ai j en caso contrario 0 Supongamos que tenemos una colección de 4 páginas Web como la mostrada en la figura 2:
XIV JAEM Girona 2009
Aplicaciones del Álgebra Lineal en la vida cotidiana
Figura 2: Red compuesta por 4 páginas web
En este caso, la matriz A sería: 0 1 A 1 1
0 0 1 1
1 0 0 0
1 0 1 0
Entonces tendríamos:
x1 2; x 2 1; x3 3; x 4 2 si la importancia xi se mide como el número de enlaces que recibe la página i. 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. La estrategia seguida parece que no es todo lo “democrática” que debería, porque existirán páginas con muchos enlaces y páginas con pocos. Si una página Pj enlaza con
n j páginas, parece lógico pensar que el voto de Pj deberá repartirse entre las n j páginas, de modo que cada enlace que sale de ella tendrá un peso igual a
1 . nj
Esto nos lleva a considerar más razonable el usar la matriz “normalizada” siguiente: 0 0 1 / 3 0 A 1/ 3 1/ 2 1 / 3 1 / 2
1 1/ 2 0 0 0 1/ 2 0 0
para el cálculo de la importancia de cada página que compone la red de la figura 2. 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
XIV JAEM Girona 2009
Aplicaciones del Álgebra Lineal en la vida cotidiana
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 Volviendo al ejemplo de la figura 2, el vector de importancias debe satisfacer:
1 x 2 x1 3 1 1 1 x3 x1 x 2 x 4 3 2 2 1 1 x 4 x1 x 2 3 2 x1 x3
1 x4 2
Simplificadamente: X A X . Buscamos un vector X que verifique el sistema anterior. Este sistema es compatible indeterminado y su solución es:
1 3 1 x1 k ; x 2 k ; x3 k ; x 4 k 3 4 2 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:
k
12 12 4 9 6 , , , (0.387, 0.129, 0.290, 0.194) 31 31 31 31 31
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 sistema: X A X , equivalente a ( A I ) X . 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.
XIV JAEM Girona 2009
Aplicaciones del Álgebra Lineal en la vida cotidiana
Como dice Cleve Moler (2002) “The world’s largest matrix computation”. Más detalles sobre el algoritmo pueden encontrarse en Fernández Gallardo (2004). 3. Álgebra Lineal y compresión JPEG
Una imagen digital es una matriz. Por ejemplo, en la figura 3 se muestra una imagen en escala de grises de tamaño 256 256 :
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
El nivel de gris de cada píxel se almacena en 1 byte (8 bits) que va desde el 0 correspondiente al negro hasta el 255 correspondiente al blanco. De manera que en este caso, necesitamos 256 256 65536 bytes. De hecho, si tenemos almacenada esa imagen en formato mapa de bits, es decir, almacenando todos y cada uno de los elementos de dicha matriz, tendremos un fichero digital que ocupará 64 kB de memoria (recordar que 1 kB son 1024 bytes). Por ejemplo, con el formato “BMP”, es decir, con el formato de mapa de bits de Windows la imagen anterior ocupa 65kB. Un poco más de lo previsto inicialmente porque, además de guardar todos los elementos de la matriz anterior (uno detrás de otro), se almacena también en el fichero digital una cabecera con información sobre el tamaño de la matriz. Sin embargo, si esa imagen se guarda con formato “JPEG” podemos comprobar cómo sólo ocupa 2’57 kB de memoria. Es llamativa la diferencia en bytes entre un formato y otro. Éste es un factor importante a tener en cuenta. Así, por ejemplo, si queremos que una página Web se cargue rápidamente es importante colocar en ella imágenes de este tipo que “pesan” menos. Esto también se aplica al correo electrónico, cuando adjuntamos imágenes y en otras situaciones habituales. Vamos a ver a continuación brevemente en qué consiste el formato JPEG. En el formato JPEG se divide la imagen en bloques 8 8 y se somete cada bloque a una transformación matricial ortogonal de la siguiente forma:
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
XIV JAEM Girona 2009
Aplicaciones del Álgebra Lineal en la vida cotidiana
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:
1 1 1 1 1 , 1 1 1
1 1 1 1 1, 1 1 1
1 1 1 1 0 , 0 0 0
0 0 0 0 1 , 1 1 1
1 1 0 0 0 , 0 0 0
0 0 1 1 0 , 0 0 0
0 0 0 0 1 , 1 0 0
0 0 0 0 0 0 1 1
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:
T
1 1 1 1 1 1 1 1
1
8
1
8
8 8 8 8 8
8
1
1
8
1
8
1
8
8 1 1 1 1
8 8 8 8
2 2 1
0 0 0 0
2 12 1 0 2 1 0 2 1 0 2 0 12
1
0 0
2 1
0 0 0 0 0 0
2
1
0 0 0 0
2 1
0 0 0 0
2
1
2 1
0 0
2
1 2 1 2 0 0 0 0 0 0
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:
XIV JAEM Girona 2009
Aplicaciones del Álgebra Lineal en la vida cotidiana
1 1 1 1 Tt 5 5 5 5
1 1 1 1 5 5 5 5
1 1 1 1 5 5 5 5
1 1 1 1 5 5 5 5
2 2 2 2 8 8 8 8
2 2 2 2 8 8 8 8
2 2 2 2 8 8 8 8
2 32 8 2 20 4 0 0 2 0 2 0 T 0 8 0 0 0 8 0 8 0 0 8 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
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: A T BTt
(2)
Como se puede observar, se ha aprovechado el hecho de que la matriz T es ortogonal, es decir que: T 1 T t para obtener (2). Si en la matriz transformada B ponemos a cero todos aquellos elementos suficientemente pequeños, por debajo de un umbral dado, obtendremos otra matriz B * . Lógicamente, al hacer la transformación inversa, no se recupera la matriz original A sino una aproximación suya A* : 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 B* se obtiene un total de 56078 ceros. Eso son muchos ceros, ya que la matriz transformada I B* tiene 256 256 65536 elementos. Esto supone que más del 85’5% de los elementos de I B* son ceros. Después, a cada bloque 8 8 de la imagen transformada I B* , se le calcula la transformada inversa, dada por la fórmula (3), obteniendo de esta forma una aproximación I *A de la imagen original. El resultado se muestra en la figura 4.
XIV JAEM Girona 2009
Aplicaciones del Álgebra Lineal en la vida cotidiana
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 matriz I B* . Resumiendo, el formato JPEG es un formato de compresión “con pérdidas” ya que no se recupera la imagen original tal y como era, sino una aproximación suya. Un idea similar se usa para guardar un fichero de audio WAV en un fichero MP3. Más detalles sobre la transformada wavelet de Haar pueden encontrarse en Adams (2006), un trabajo de un alumno americano para su asignatura de Álgebra Lineal. 4. Álgebra Lineal y Códigos Detectores-Correctores de Errores.
Existen ocasiones donde se transmite una gran cantidad de bits por canales donde se pueden producir algún tipo de interferencia como se indica en la figura 5.
Ocurren Interferencias
Satélite envía 1101
Antena recibe 1100 Figura 5: Proceso de transmisión de una secuencia binaria
XIV JAEM Girona 2009
Aplicaciones del Álgebra Lineal en la vida cotidiana
Nos interesa, por lo tanto, alguna forma de codificar la información a transmitir de modo que se puedan detectar y corregir errores. 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. La idea de este tipo de códigos es enviar más información de la estrictamente necesaria para poder emplearla como información adicional para detectar y corregir errores. Por ejemplo, si tenemos que enviar, como en el caso de la figura 5, cuatro bits de información b1 b2 b3b4 , vamos a enviar siete: b1 b2 b3b4 b5 b6 b7 , es decir, los cuatro originales más tres bits adicionales que se llaman bits de control. Se tratará en este caso de un código C(7, 4). Vamos a explicar un ejemplo de un código C(7, 4) que es capaz de detectar y corregir un error, suponiendo que cuando se transmite una secuencia de este tipo o no se comete ningún error o se comete sólo uno. Usaremos, por ejemplo, la matriz:
1 0 0 G 0 1 1 0
0 1 0 0 1 0 1
0 0 1 0 0 1 1
0 0 0 1 1 1 1
La matriz G tiene la matriz identidad de orden 4 en la parte superior. De esta forma se consigue que al hacer el producto: b1 b2 b1 b3 b2 G b4 b 3 b5 b 4 b 6 b7
se obtenga una secuencia binaria b1 b2 b3b4 b5 b6 b7 donde los 4 primeros bits son los originales, es decir, la información que deseamos transmitir. Los tres últimos bits son
XIV JAEM Girona 2009
Aplicaciones del Álgebra Lineal en la vida cotidiana
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
Así, por ejemplo, si deseamos transmitir, como en la figura 5, la secuencia 1101, deberemos realizar el producto:
1 0 1 0 1 G 0 0 1 1 1 0
0 1 0 0 1 0 1
0 0 1 0 0 1 1
0 0 0 1 1 1 1
1 0 0 0 1 0 1 0 0 1 1 0 0 0 0 0 1 0 0 0 1 1 0 1 11 0 1 1 1 0 0 1 0 0 1 0 1 0
Por lo tanto, si deseamos enviar la secuencia 1101, transmitiremos en su lugar la secuencia 1101100. 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 Se transformarán en 16 secuencias de 7 bits cada una de acuerdo al producto anterior: 0000000, 0001111, 0010011, 0011100, 0100101, 0101010, 0110110, 0111001, 1000110, 1001001, 1010101, 1011010, 1100011, 1101100, 1110000, 1111111 Estas 16 secuencias de 7 bits componen nuestro código C. Tienen una propiedad importante: b1 b2 b1 b5 b1 b2 b4 b1 b2 b4 b5 0 b3 b2 G b4 b6 b1 b3 b4 b1 b3 b4 b6 0 b 3 b5 b7 b2 b3 b4 b2 b3 b4 b7 0 b 4 b 6 b7
XIV JAEM Girona 2009
Aplicaciones del Álgebra Lineal en la vida cotidiana
b1 b1 0 b2 b2 0 b 0 1 1 0 1 1 0 0 b3 3 1 0 1 1 0 1 0 b4 0 H b4 b 0 1 1 1 0 0 1 b 0 5 5 b6 b6 0 b7 b7 0
Hemos tenido en cuenta en las operaciones anteriores el hecho de que sumar y restar es lo mismo en 2 ya que 0 0 y 1 1 . Como vemos aparece una matriz H construida de la forma: 1 1 0 1 1 0 0 H 1 0 1 1 0 1 0 0 1 1 1 0 0 1
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. Como hemos visto, si z es una secuencia de 7 bits del código C, entonces H z . El valor de H z se llama síndrome. Supongamos que, como en la figura 5, deseamos enviar la secuencia 1101, entonces la secuencia de 7 bits que se transmite es: z 1101100. Si calculamos el síndrome, nos dará el vector nulo y suponemos que no se ha cometido ningún error y los cuatro bits de información extraídos son los cuatro primeros, es decir: 1101. 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. Veamos qué ocurre: z* z e1 1101100 1000000 0101100
Al calcular el síndrome de la secuencia recibida se obtiene: 1 0 1 1 H z * H ( z e1 ) Hz He1 H z H 0 0 1 1 1ª columna de H 0 0 0 0
XIV JAEM Girona 2009
Aplicaciones del Álgebra Lineal en la vida cotidiana
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 Fernández Gallardo, P. (2004): El secreto de Google y el Álgebra Lineal. Boletín de la Sociedad Española de Matemática Aplicada, Vol. 30, pp. 115-141. Disponible online. http://www.uam.es/personal_pdi/ ciencias/gallardo/ Martínez de la Rosa, F., Vinuesa Sánchez, “Enseñando Matemáticas en la Universidad”, Epsilon, Nº 61, Vol. 21, pp. 57-62 (2005). Moler, C. (2002). The world’s largest matrix computation. Disponible on-line 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.
XIV JAEM Girona 2009