Proyecto 1
Una WEB Pequeña
Entrega: jueves 6 de octubre de 2005
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 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.
- Corra los diferentes algoritmos y para cada uno:
- Córralo 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?
- Compare los resultados de los diferentes algoritmos y
justifique cuál de ellos es más apropiado para resolver
el problema en cuestión.
- Emplee un método de búsqueda con información para resolver el problema:
- Defina una función heurística. Es admisible?
- Use esta función heurística en
conjunción con un algoritmo de búsqueda informada para
resolver el problema.
- Desarrolle los mismos ítems del punto B.e y compare los resultados obtenidos.
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 (versión anterior):
- 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.java: clase con
utilidades para el preprocesar páginas HTML. (nueva
versión Sep 26, se corrigió error que hacía
ignorar algunos links)
- Software para bajar sitios web completos:
- P'aginas del sitio www.unal.edu.co (exclusivamente) hasta profundidad 5: unal.tgz (34M)