visuse

VISUal Search Engine

Conclusiones del proyecto

El proyecto ha logrado cumplir todos los objetivos básicos que se habían propuesto y respetando las especificaciones planteadas.

Se han desarrollado buscadores para diferentes módulos que obtienen la información, la organizan y la puntúan según distintos clientes. Todo esto se realiza utilizando una estructura modular que permite una fácil extensibilidad de la aplicación, lo que ha permitido que terceras personas colaboren con el proyecto e implementen sus propios módulos para distintos buscadores y utilizando distintos sistema de comunicación con ellos, contando finalmente el proyecto con media docena de módulos. Esta estructura modular también permite que los errores en unos módulos no afecten al resto.

Por otra parte, del lado del cliente se ha creado una agradable a la par que simple interfaz que muestra los resultados de una forma paginada y que da la sensación de rapidez al ir mostrando los resultados conforme son recibidos del servidor. Esto permite que la experiencia del usuario sea satisfactoria, además de que se le permite que no tenga que abandonar el buscador para consultar los resultados.

El resultado ha sido probado en distintos navegadores modernos con satisfactorio resultado, gracias a que ha sido desarrollado empleando estándares y tecnologías abiertas. Además, independientemente del navegador utilizado, los resultados se ajustan al espacio dejado libre por la ventaja del navegador.

En cuanto a los métodos de disposición de los resultados en la pantalla se han estudiando distintas alternativas, consiguiendo grandes resultados con el algoritmo voraz implementado al ejecutarse en un tiempo muy reducido, que además permite representar los resultados más interesantes (mejor puntuados) a un tamaño mayor y en las primeras páginas. La aplicación del enfriamiento simulado no ha sido satisfactoria, pero su estudio ha permitido sacar interesantes conclusiones sobre la conveniencia de aplicar este tipo de búsqueda y sobre cómo aplicarla.

Por último, la madurez del software desarrollado ha permitido que sea publicado e instalado para el acceso público en http://visuse.com. El desarrollo del proyecto también ha supuesto una interesante contribución a la comunidad de software libre, que puede reutilizar este trabajo para cualquier otro fin relacionado y que ha reconocido dicha contribución. Todo el código del proyecto se encuentra disponible en https://forja.rediris.es/projects/cusl4-visuse/.

15 agosto 2010 Posted by | General | , , , , , , , , , , , , , | 2 comentarios

Evaluación de la disposición de imágenes

Los tiempos de ejecución obtenidos mediante el enfriamiento simulado no son demasiados buenos, para 10 iteraciones (un número muy bajo para el enfriamiento simulado) en un computador moderno tarda más de 10 segundos, lo que claramente es un rendimiento inaceptable. Analizando con un el ‘profiler‘ de la extensión Firebug para Mozilla Firebug se detectan los principales cuellos de botella: más del 50% del tiempo es invertido en calcular el fitness de la solución, por lo que utilizando como función de evaluación el número de espacios que quedan en la matriz no es factible aplicar el enfriamiento simulado. Podríamos utilizar otros como función de fitness el número de imágenes utilizado, pero puede utilizándose muchas imágenes el desaprovechamiento de la pantalla sea muy grande.

Evolución del fitness de la solución en 10 iteraciones

Analizando también la calidad de la solución obtenida, llegamos a la conclusión de que apenas existe diferencia entre aplicar el enfriamiento simulado unas pocas iteraciones y quedarnos con la primera solución de la que partíamos, como se puede observar comparando las figuras siguientes:

Espacio ocupado y libre en la ventana sin aplicar el enfriamiento simulado

Espacio ocupado y libre en la ventana tras aplicar el enfriamiento simulado durante 10 iteraciones

Para estimar cuántas iteraciones serían necesarias para obtener resultados que fuesen apreciables se hace una ejecución de 50 iteraciones en la que se enfría la temperatura cada 5 y los resultados son los observados en la imagen siguiente, comparando el espacio que queda ahora libre con el total disponible ahora sí se aprecia una importante mejora. Sin embargo, debido al tiempo que tarda cada una de las ejecuciones no es viable.

Espacio ocupado y libre en la ventana tras aplicar el enfriamiento simulado durante 50 iteraciones

La razón por la que es difícil conseguir mejoras con respecto al algoritmo greedy inicial puede ser debida a la ordenación de mayor a menor realizada al inicio de éste. Como ya estudió Daniel Selator, una buena técnica es empezar colocando las imágenes mayores para después intentar rellenar los huecos dejados por ellas con las imágenes más pequeñas. Es obvio que si en último lugar consideramos las imágenes más grandes nos va a ser más difícil conseguir una óptima distribución.

5 agosto 2010 Posted by | Mejoras | , , , , , , | Deja un comentario