Está en la página 1de 11

ESCUELA SUPERIOR POLITÉCNICA DEL

LITORAL

PROYECTO DE ÁLGEBRA LINEAL

GRUPO# 1

INTEGRANTES:

Alexis Loor

Danny López

Homar Herrera

Jaime Hurtado

Tema de investigación:

El álgebra lineal detrás de los motores de búsqueda

1
Índice
Introducción.............................................................................................................................................3
Objetivo general.....................................................................................................................................4
Objetivos específicos............................................................................................................................4
Metodología..............................................................................................................................................5
Anexo...................................................................................................................................................10
Resultados..............................................................................................................................................10
Bibliografía..............................................................................................................................................11

Introducción

2
Hoy en día se podría decir que todos hemos hecho uso de algún buscador web ya sea
en un ámbito académico, laboral o simplemente entretenimiento. Lo que no podríamos
asegurar es que todos entendamos qué es lo que hay detrás de escribir lo que
queremos buscar en la barra de búsqueda de nuestro buscador de confianza y dar clic
en “buscar” y eso es precisamente lo que se buscará con este proyecto que
consideramos es un tema muy interesante para entender un poco más lo que está
ocurriendo cuando navegamos tranquilamente por internet y resaltar como se usan las
herramientas del álgebra lineal tales como los grafos dirigidos que es un tipo de grafo
en el cual las aristas tienen un sentido definido, los vectores propios que son claves
para la diagonalización de matrices y la programación en la que nos apoyamos para
poder analizar cantidades inmensas de datos de forma automática. Cuando estas dos
ciencias trabajan en conjunto surgen cosas que implican un gran avance tecnológico y
que llegan a mejorar la vida de las personas.

Entre los temas que se verán en el proyecto el que se tratará más a fondo es el famoso
algoritmo de búsqueda de Google llamado “PageRank” que usa teoría de grafos en
específico los grafos dirigidos, además de los vectores propios y matrices.

Objetivos:

3
Objetivo general

 Dar a conocer la importancia del algebra lineal interpretado como un algoritmo


llamado ‘‘PAGE RANK’’ en Google.

Objetivos específicos

 Confirmar el uso del algoritmo ‘‘PAGE RANK’’ en diferentes características del motor
de búsqueda que usa Google.

 Analizar los diferentes usos de este algoritmo que utilizó Google para mejorar la
experiencia de usuario volviendo a la página mucho más fácil y rápida de usar.

 Determinar en que afecta el algebra lineal en este algoritmo y como se lo dedujo


para los usos que se ejecutan actualmente.

4
Metodología
Larry Page y Sergey Brin se dispusieron a organizar todo el contenido de la red como
entusiastas y rebosantes de afectación con un titulado de Stanford, establecieron
una noción como base de todo su algoritmo: los enlaces.

Los enlaces son la base del correcto funcionamiento del algoritmo “Page Rank”,
técnicamente Page Rank es un indicador de la relevancia de una página web para
cualquier búsqueda determinada.

A cada página web se le asigna un código PageRank que es el indicador de relevancia


y es un valor entre 0 y 10, mientras más alto sea este número significa que la página
web tiene más relevancia y gracias a esto aparecerá en los primeros puestos de
nuestra búsqueda.

Para explicar cómo una página web obtiene un PageRank utilizaremos en concreto dos
herramientas del álgebra lineal, Grafos y Sistemas de ecuaciones lineales.

Un grafo “G” es una terna (V, E, φ), donde V es un conjunto finito de elementos
llamados vértices o nodos del grafo, E es un conjunto finito de elementos llamados
lados y φ es una función que asigna a cada elemento de E un par de elementos de V.

Imaginemos que tenemos una red con 4 nodos donde cada nodo representa una
página y las flechas son los enlaces que representan la cantidad de relevancia que
reparte cada página con las páginas a las que enlaza

1 3

2 4
Figura1. Grafo dirigido con 4
nodos
5
Si suponemos que la cantidad de relevancia de cada página al principio es 1 ya que al

principio todas son igual de relevantes el reparto podría ser el siguiente:

1 1/3
3
1/2
1/2
1/2
1/3
1/3

2 4
1/2
Figura2. Reparto de
cantidad de relevancia

- La página 1 enlaza a las páginas 2, 3 y 4 y entrega 1/3 de su relevancia a cada

una.

- La página 2 enlaza a las páginas 3 y 4 y entrega 1/2 de su relevancia a cada

una.

- La página 3 enlaza a la página 1 y le entrega 1 de relevancia.

- La página 4 enlaza a las páginas 1 y 3 y entrega 1/2 de su relevancia a cada

una.

Luego de este reparto de relevancias obtendremos los siguientes datos:

Página 1: 3/2

Página 2: 1/3

6
Observación
Página 3: 4/3 : Podemos
notar que el
resultado
Página 4: 5/6

Ahora se puede repetir este proceso, cada página repartirá en partes iguales su nueva
cantidad de relevancia entre las páginas a las que enlaza y si repetimos este proceso
una y otra vez el resultado acaba estabilizándose y ese resultado en el límite es el
reparto de relevancia que asigna el algoritmo a cada página. Hay varias formas
matemáticas de ver este resultado entre ellas como un sistema de ecuaciones lineales
del que se obtiene una solución y es la que usaremos:

{
X1 = X3 + 1/2 X4

X2 = 1/3 X1

X3 = 1/3 X1 +1/2 X2 +1/2 X4

X4 = 1/3 X1 + 1/2 X2

Se obtiene la siguiente solución del sistema:

X1 = 48/31
Observación
X2 = 16/31 : notar que
se ha
tomado la
X3 = 36/31 solución de

X4 = 24/31

Para llevar este algoritmo al lenguaje de programación Python se usa la librería de


Python “Numpy”.
En la notación del lenguaje Python una matriz o arreglo de dos dimensiones es una lista
cuyos elementos son listas que tienen la misma longitud y contienen elementos del

7
mismo tipo. Estos objetos igual que los vectores son fundamentales en las aplicaciones
matemáticas y de ingeniería.
Se puede asociar una matriz a un cuadro con datos organizados en filas y columnas.
Las Filas están en el lado horizontal y las columnas en el lado vertical, numeradas con
índices que comienzan desde el 0
Ejemplo de una matriz en la notación de listas de python

Su representación como un cuadro de dos dimensiones con 4 filas y 3 columnas.


Las filas en orientación horizontal y las columnas verticales con numerada con índices
que empiezan en 0

Numpy es una librería de soporte para aplicaciones matemáticas, científicas y de


ingeniería. Numpy junto a otra librería llamada Scipy incluyen una gran cantidad de
funciones para algunas aplicaciones entre ellas el álgebra lineal.
Este módulo domina una estructura de datos para el manejo de vectores y matrices
denominada array o arreglo, iguales a las listas, pero con la diferencia que los
elementos del arreglo deben ser del mismo tipo, normalmente numéricos.
Creación de arreglos con numpy:

8
Otro uso interesante de Python es la posibilidad de calcular los vectores propios que
serán de gran ayuda para llevar el algoritmo PageRank a un código funcional en
lenguaje Python.
Con la librería SymPy usando la función “np.linalg.eig(A)” o “A.eigenvals()” en donde A
es una matriz de nxn podemos calcular los valores propios de dicha matriz

Imagen tomada de: https://relopezbriega.github.io/blog/2016/02/10/mas-algebra-lineal-con-python/

Mientras que para calcular los vectores propios de una matriz de Python usamos la
función “A.eigenvects()” donde A es una matriz nxn de Python

Imagen tomada de: https://relopezbriega.github.io/blog/2016/02/10/mas-algebra-lineal-con-python/

9
Anexo
Anexamos link a GitHub donde encontrará el código respectivo del proyecto:
https://github.com/Homarzx/AlgebraDemo

Resultados
Según los cálculos realizados anteriormente obtuvimos que el orden de mayor a menor

relevancia de las 4 páginas es el siguiente

1. Página 1 con 48/31 de relevancia

2. Página 3 con 36/31 de relevancia

3. Página 4 con 24/31 de relevancia

4. Página 2 con 16/31 de relevancia

Esto quiere decir que en la búsqueda que realicemos nuestra primera opción será la

página 1 y si revisamos otra vez nuestra red de la figura 2

Podemos notar que la página 1 solamente está enlazada por dos páginas la 4 y la 3,
mientras que la página 3 está enlazada por tres páginas la 1, 4 y la 2, sin embargo, la
página 1 recibe una cantidad de relevancia mayor de parte de las páginas que la
enlazan que la página 3 y es por eso que la página 1 termina con una cantidad mayor
de relevancia que la página 3.

10
Conclusiones y recomendaciones

Como hemos visto, el álgebra lineal es de gran importancia en el área de la


computación, desde herramientas como transformaciones lineales y matrices usadas
para los videojuegos hasta el uso de vectores propios, grafos y matrices para crear un
potente algoritmo capaz de organizar millones de páginas en un orden de relevancia
para realizar búsquedas de la manera óptima.

Bibliografía

Delgado, Hugo. (2014). Qué es el PageRank de Google - Cómo funcionan sus reglas.

Recuperado 13 de septiembre, 2020, de https://disenowebakus.net/pagerank-

google.php

Meza, O., & Ortega, M. (1993). Grafos y algoritmos. Equinoccio, Ediciones de la

Universidad Simón Bolívar. Caracas.

Sáenz, de Cabezón. [Derivando]. (2019, marzo 1). PAGE RANK | El algoritmo

matemático que hizo a GOOGLE dominar el mundo [Archivo de video]. Recuperado de

https://www.youtube.com/watch?v=b3fwA3EWCd8&ab_channel=Derivando

Ojeda, L. R. Python Programación.

11

También podría gustarte