las matemáticas de google
A veces me preguntan para qué sirven las matemáticas y siempre se pueden dar algunas respuestas fáciles que contesten la pregunta, pero desde hace un tiempo estoy pensando en hacer alguna colección de cosas en las que las matemáticas (puras o mediante aplicaciones físicas) sean pieza clave y casi única para su existencia y casi ningún ciudadanito de a pie sepa muy bien cómo actúan en el engranaje del día a día.
Un ejemplo curioso es algo que usamos casi todos y casi todos los días: Google. Muchos de vosotros ya sabéis cómo funciona Google y probablemente sepáis todo lo que voy a decir a partir de ahora y puede que los que no lo sepan, tampoco les importe mucho, pero bueno, aquí lo dejo. El caso es que parece que antes de Google no había vida: usábamos otros buscadores como yahoo o altavista pero nada era tan eficiente como san Google, creado por dos estudiantes de Stanford, Larry Page y Sergey Brin en 1998. ¿Cuál es la gracia de Google? Pues que ordena los resultados de la búsqueda en función de que sean páginas más o menos importantes y aporten la información buscada. ¿Cómo se hace esto? Pues tienen a miles de duendecillos leyendo todas las páginas del mundo para ver cuál es más útil… ejem... casi... Bueno, si a los duendecillos les llamamos pagerank estaremos cerca. El pagerank mide “lo importante” que es tu página. ¿Y cómo se mide eso? Pues con calma… y un poco de matemáticas. Podemos estar todos de acuerdo en que si una página está enlazada por mucha gente, esa página será probablemente más importante que otras que sólo estén enlazadas por el primo del que la ha hecho (no siempre es así, obviamente, pero tenemos que pensar en un algoritmo lo más general posible). Por tanto, el pagerank lo que va a hacer es medir cuántas personas tienen enlazada nuestra página. Sin embargo, no se limita sólo a contar cuántas son sino que les da un peso específico dependiendo del número de enlaces que tienen. Por ejemplo, si una página tiene 4 enlaces, “reparte su pagerank a partes iguales, dándole 1/4 a cada uno”. Por tanto, no es lo mismo que te haya enlazado una página con mucho pagerank y muchos enlaces u otra con el mismo pagerank y pocos enlaces (en el segundo caso, tocan a más pagerank). Vale… queda más o menos claro qué es lo que puede hacer que tu página sea más importante: hay spider (programas automáticos) que recorren todo internet pulsando todos los enlaces y comprobando quién tiene enlazado a quién en cada momento y a partir de ahí nos salen los datos… Pero… ¡estamos hablando de unas treinta mil millones de páginas web! ¿Cómo calculamos el pagerank de esa bestialidad de datos? Fácil: tirando de matrices. Para el que no lo sepa, una matriz es simplemente una colección de datos puestos en forma de fila y columna. Tenemos por tanto una matriz de, más o menos, treinta mil millones de filas y treinta mil millones de columnas, ahí queda eso. Cada página tiene una fila y una columna asociadas: En su columna pondremos los enlaces desde esa página y en su fila, los enlaces a esa página. Tenemos que tener en cuenta lo dicho antes: si una página tiene cierta cantidad de enlaces, repartirá su pagerank de forma equitativa. Veamos un ejemplo: Imaginemos que sólo hay 4 páginas en el mundo: A, B, C y D. Además de a sí mismas (normalmente siempre hay un autoenlace en algún sitio), los enlaces de cada una de ellas son: la A tiene enlazadas a la B y D, la B tiene enlazada sólo a la A, la C tiene a todas enlazadas y la D no tiene enlaces (sólo a sí misma). La matriz quedaría así: 1/3 1/2 1/4 0 1/3 1/2 1/4 0 0 0 1/4 0 1/3 0 1/4 1 Obviamente, todos son números no negativos y entre 0 y 1. Tenemos ahora toda la información de enlaces delante de nuestros ojos. Para ver si una página enlaza o no a otra, basta con mirar la matriz. Para ver si tras pinchar en dos enlaces consecutivos llegaríamos de una página a otra, bastaría con multiplicar esta matriz por sí misma. En general, para ver si puedo llegar de la página “x” a la página “y” de enlace en enlace, basta con ir calculando potencias de la matriz que acabamos de poner y ver si en el lugar en el que se cruzan la columna de la página “x” con la fila de la página “y” hay o no hay un 0 (bueno, esto es teoría básica de grafos, pero a mí me hace ilusión contarlo…). Total… ¿cómo calculamos el pagerank a partir de esta matriz? Muy fácil: si llamamos M a la matriz, basta buscar un vector (una matriz con una sola columna) que llamaremos v tal que M·v=c·v donde c es cierta constante. No me voy a parar a explicar por qué sale esto (si sabéis algo de matrices, lo veréis fácilmente en cuanto se piensa un poco) pero el caso es que todo consiste en calcular, sí, un vector propio de la matriz M. Sí, sí, eso que se da en 1º de carrera en todas las ingenierías, en matemáticas, en física y hasta en biología, sí. Hay que usar algún teorema (Perron-Frobenius) para ver que existe un vector propio con términos no negativos y con cierta unicidad. Este vector encontrado… tachán… ¡es el pagerank! Sí, se trata de una lista de unos treinta mil millones de números, cada uno asociado a cada página que existe. Hay que modificarlo un poco para que sea un número entre 0 y 10 y poco más… ¡y ya conocemos las entrañas de nuestro pagerank! |2007-07-11 | 17:21 | algo de mates | Este post | | Tweet
Referencias (TrackBacks)URL de trackback de esta historia http://lolamr.blogalia.com//trackbacks/50809
Comentarios
|
Van diciendoMail-andololaberinto-arroba-gmail.comPapeles viejos
Categorías
Otros cuentan- 1 de 3- Acertijos y más cosas - Comentaristas dispersas - Cuchitril literario - Cuentos mínimos - Decapitado por hereje - Efervescente2H - El lobo rayado - El musolari errante - Epsilones - Espejo Lúdico - Gaussianos - La ciencia para todos - La piedra de Sísifo - La vidriera irrespetuosa - La zona fótica - Lector constante - MalaCiencia - Por la boca muere el pez - Trapseia - Ventanas
Humor |