Documente Academic
Documente Profesional
Documente Cultură
(laboratorio)
AIMA est constituido por un conjunto de clases Java que permiten definir problemas de bsqueda. Las clases implementan varios algoritmos:
bsqueda ciega: anchura, profundidad y profundidad iterativa bsqueda heurstica: A*, A*PI bsqueda local: ascensin de colinas, temple simulado
Las clases para la representacin del problema estn separadas de las clases para los algoritmos de bsqueda.
Definicin de problemas
La definicin de un problema requiere la instanciacin de una serie de clases:
representacin de los estados operadores funcin generadora de estados accesibles (aima.search.framework.SuccessorFunction) funcin que determina si se ha llegado al estado final (aima.search.framework.GoalTest) funcin heurstica (aima.search.framework.HeuristicFunction)
Adicionalmente, hay funciones que transforman el estado segn los posibles operadores a utilizar. Es conveniente que haya funciones que indiquen si un operador se puede aplicar sobre un estado. Se pueden incluir otras funciones auxiliares, si necesarias.
Funcin heurstica
Implementa la clase aima.search.framework.HeuristicFunction y la funcin public int getHeuristicValue(Object n). Esta funcin ha de retornar el valor de la funcin heurstica (la h). Las caractersticas de la funcin dependen del problema.
7
Ejemplo: el 8 puzzle
Definido en el paquete aima.search.eightpuzzle Cuatro clases que representan el problema: EightPuzzleBoard representa el tablero (un vector de 9 posiciones, nmeros del 0 al 8, el 0 es el blanco). ManhattanHeuristicFunction implementa la funcin heurstica (suma de distancia Manhattan de cada ficha). EightPuzzleSuccessorFuncion implementa la funcin que genera los estados accesibles desde uno dado (posibles movimientos del blanco). EightPuzzleGoalTest define la funcin que identifica el estado final.
La clase aima.search.demos.EightPuzzleDemo tiene las funciones que permiten solucionar el problema con distintos algoritmos.
8
ProbIA15GoalTest define la funcin que identifica el estado final. La clase IA.probIA15.ProbIA15Demo permite ejecutar los algoritmos de bsqueda ciega y heurstica.
9
Definir un objeto Search que sea una instancia del algoritmo que se va a usar. Definir un objeto SearchAgent que recibe los objetos Problem y Search. Las funciones printActions y printInstrumentation permiten imprimir el camino de bsqueda y la informacin de la ejecucin del algoritmo de bsqueda. 10
11
12
13
14
15
16
Hay configuraciones de problemas (ver mens) que no se pueden resolver con ningn algoritmo en un tiempo razonable (hace falta un conocimiento mas especializado).
17
20
21
25
26
27