Proyecto 1
Una WEB Pequeña
Entrega: Martes 6 de Junio de 2006
Grupos: máximo 3 personas
- Lea el artículo "The Small World Web"
- Escriba una síntesis crítica del artículo
- Explique el concepto de "Mundo Pequeño"
- Qué tiene que ver esto con el tema de búsquedas?
- Se quiere crear un agente que sea capaz de recorrer la Web. El
agente recibe como parámetros una dirección web de
arranque y una cadena de caracteres. El agente debe encontrar una
página web que contenga la cadena de caracteres, mostrando el
camino que lleva desde la página de arranque hasta la
página que cumple la condición.
- Definir de manera formal el problema de búsqueda:
- Definir como representar un estado del problema.
- Definir el(los) estado(s) inicial(es)
- Definir las transiciones en el espacio de estados. Esto es equivalente a definir la función sucesor Successor-Fn(x) o las acciones (operaciones) que se pueden realizar en cada estado.
- Definir el(los) estado(s) objetivo.
- El costo de un camino de solución.
- Implementar un programa que use algunos de los algoritmos de
búsqueda no informada vistos en clase (al menos 2) para explorar el espacio de estados y
resolver el problema planteado en el punto 1. :
- Especifique claramente cómo representará su programa cada estado del sistema (estructura de datos, clase, etc.).
- Especifique cómo se implementarán las operaciones (funciones, métodos, etc)
- Especifique cómo se verificará si un estado es objetivo o no.
- Implemente al menos dos de los algoritmos de búsqueda no informada vistos en clase.
- Ejecute los diferentes algoritmos y para cada uno:
- Use un sitio web aritificial (creado por usted).
- Ejecute el algoritmo hasta encontrar por lo menos una solución.
- Es esta solución óptima?
- Qué costo tiene?
- Cuántos nodos se debieron procesar antes de encontrar esta solución? Cuánto tiempo empleó?
- Imprima el camino solución
- Puede encontrar el programa más soluciones?
- Repita el punto anterior sobre un sitio web real.
- Compare los resultados de los diferentes algoritmos y
justifique cuál de ellos es más apropiado para resolver
el problema en cuestión.
El trabajo a entregar debe contener:
- Un disquete o CD con:
- El cuestionario anterior claramente desarrollado punto por punto (pdf o html)
- El código fuente debidamente documentado,
- El programa ejecutable con instrucciones claras sobre
cómo ejecutarlo y con las librerías necesarias si lo
requiere.
Recursos de Apoyo
- Ejemplo de algoritmos de
búsqueda en Java usando la librería aima (última versión):
- La clase fue actualizada para utilizar la última versión de la librería aima (May-31-2006)
- descomprima el archivo flipper.zip
- cd flipper
- javac -classpath aima.jar flipper/search/*.java
- javac -classpath aima.jar flipper/gui/*.java
- java flipper/gui/Application1
- java -cp aima.jar flipper/search/Demo
- ProcessHtml.zip: clase con
utilidades preprocesar páginas HTML
- La clase fue actualizada y usa una nueva librería. Es más eficiente, sencilla y eficaz.
- Tenga en cuenta que usa una librería: htmlparser.jar. Esta librería es parte del proyecto HTMLParser. Sin embargo no es necesario que baje el software, pues la librería necesaria está incluida en el zip.
- Instrucciones para usarla:
- Descomprima ProcessHtml.zip
- cd processHtml
- Compilar: javac -cp htmlparser.jar ProcessHtml.java
- Usar: java -cp htmlparser.jar;. ProcessHtml http://www.unal.edu.co/dis
- Tenga en cuenta que este es un ejemplo que sirve de guía, pero debe ser adaptado para usarse en su programa.
- Software para bajar sitios web completos:
- Páginas del sitio www.unal.edu.co (exclusivamente) hasta profundidad 5: unal.tgz (34M)