Escolar Documentos
Profissional Documentos
Cultura Documentos
net/publication/216456908
CITATIONS READS
0 21,428
2 authors, including:
Alberto Cano
Virginia Commonwealth University
68 PUBLICATIONS 463 CITATIONS
SEE PROFILE
Some of the authors of this publication are also working on these related projects:
building bridge between data mining and process mining View project
All content following this page was uploaded by Alberto Cano on 17 October 2015.
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.
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.
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 0 1 1
1 0 0 0
A
1 1 0 1
1
1 0 0
Entonces tendríamos:
x1 2; x 2 1; x3 3; x4 2
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:
0 0 1 1 / 2
1 / 3 0 0 0
A
1/ 3 1/ 2 0 1 / 2
1 / 3 1 / 2 0 0
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
1
x1 x3 x4
2
1
x2 x1
3
1 1 1
x3 x1 x 2 x 4
3 2 2
1 1
x4 x1 x 2
3 2
Simplificadamente: X A X .
1 3 1
x1 k; x 2 k; x 3 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:
12 12 4 9 6
k , , , (0.387, 0.129, 0.290, 0.194)
31 31 31 31 31
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.
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)
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
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 0 1 0 0 0
8 8 2 2
1 8
1
8
1
2 0 1
2
0 0 0
1 1 1 0 0 1 0 0
8 8 2 2
1 1 1
2 0 0 1 0 0
T 1 8 8 2
8
1 8
0 1
2 0 0 1
2
0
1 1 0 1
2 0 0 1 0
1 8 8 2
8
1 8
0 1
2 0 0 0 1
2
1 1 0 12 0 0 0 1 2
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:
1 1 1 1 2
2 2 32 8
2 0 0 0 0
0 0
1 1 1 1 2
2 2 20 4
2 0 0 0 0
0 0
1 1 1 1 2
2 2 0
2 0 0 0 0 0
0 0
1 1 1 1 2
2 2 0
2 0 0 0 0 0
0 0
T t T 0
5 5 5 5 8
8 8 8
0 0 0 0 0
0
0
5 5 5 5 8
8 8 0
8 0 0 0 0 0
0 0
5 5 5 5 8
8 8 8
0 0 0 0 0 0
0 0
5 0 0 0 0 0 0
5 5 5 8 8 8 8 0 0
La transformación inversa de (1) nos permite recuperar la subimagen A tal y como era
originalmente:
A T BTt (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 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.
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.
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.
1 0 0 0
0 1 0 0
0 0 1 0
G 0 0 0 1
1 1 0 1
1 0 1 1
0 1 1 1
b1
b2
b1
b3
b2
G b4
3 b5
b
b
4
b6
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
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
1 0 0 0 1 0 0 0 1
0 1 0 0 0 1 0 0 1
1 1
0 0 1 0 0 0 0 0 0
1 1
G 0 0 0 1 0 0 0 1 1
1 1 0 1 1 1 0 1 1
0 0
1 0 1 1 1 0 0 1 0
1
1
0 1 1 1 0 1 0 1 0
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
b1
b2
b1
b3 b5 b1 b2 b4 b1 b2 b4 b5 0
b2
G b4 b6 b1 b3 b4 b1 b3 b4 b6 0
3 b5 b7 b2 b3 b4
b
b b2 b3 b4 b7 0
4
b6
b7
b1 0 b1
b2 0 b2
1 1 0 1 1 0 0 b3 0 b
3
1 0 1 1 0 1 0 b 4 0 H b 4
0 1 1 1 0 0 1 b 0
5 b5
b6 0 b6
b7 0 b7
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 .
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.
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.
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
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.