Este documento describe el desarrollo de un agente para resolver el problema del Wumpus World. El agente usa percepciones para hacer deducciones sobre su entorno y llena un arreglo bidimensional con las posibilidades de pozos y Wumpus en casillas adyacentes. El agente se mueve a casillas seguras con menos riesgo hasta encontrar el oro siguiendo su destello, usando giros cuando la casilla directa no es segura. Diagramas de flujo muestran el algoritmo general y cómo encuentra el próximo movimiento.
1. Wumpus World
2014
PRACTICA DE AGENTES INTELIGENTES
JOAQUIN LOZANO ALDANA, JAIME AGUILAR, GERARDO DEL RIO
ALVARADO
ITESO | 03/04/14
2. ACERCAMIENTO
WUMPUS WORLD
Como ya sabemos, para esta practica es necesario desarrollar un agente que resuelva el problema del
wumpus, para esto despues de pensar muchas alternativas decidimos quedarnos con el algoritmo que
se explica a continuación.
Comenzamos en una posicion inicial con una orientacion inicial, siempre lo primero que hacemos es
recibir las percepciones, y con esto hacer nuestras deducciones acerca del mundo que nos rodea, esta
es la parte clave para poder decidir hacia donde movernos pero, ¿Cómo hace sus deducciones el
agente?
El agente cuenta con un arreglo bidimensional del mismo tamaño que el laberinto, solo que este esta
poblado de deducciones vacias, las cuales conforme el agente avance ira llenando en base a lo que este
perciba, siguiendo estas reglas:
Si el agente detecta brisa, significa que en cualqueir casilla adyacente puede haber un pozo, asi
que accede a todas las casillas adyacentes en su arreglo de deducciones, y suma 1 a la variable
posiblePozo
Si el agente no detecto brisa, significa que no puede haber un pozo en las casillas adyacentes,
asi que le resta 1 a la variable de posiblePozo en sus deducciones
Si el agente detecta peste, significa que en cualquier casilla adyacente puede estar el wumpus,
asi que accede a sus deducciones y suma 1 a la variable de posibleWumpus
Si el agente no detecta peste significa que no puede haber wumpus en las casillas adyacentes
asi que resta 1 a posibleWumpus
De esta forma, siempre nos moveremos a casillas que tengan pozo y wumpus en cero o menos,
significando asi que es una casilla segura, de lo contrario, si no existe ninguna otra posibilidad
regresaremos a la ultima casilla segura y buscaremos más alternativas.
El agente gracias a que calcula el peso de riesgo de las casillas, puede hacer deducciones de a donde es
seguro moverse, hasta encontrar el oro por medio del destello que este emite. Cabe mencionar que es
una clase separada, WumpusWorld, la que tiene el mundo del laberinto, y envia los resultados y
percepciones de las acciones del agente.
3. DIAGRAMAS DE FLUJO
VISTA GENERAL DEL ALGORITMO DEL AGENTE
Como podemos ver, este ciclo corre
mientras no se obtenga el oro. Lo que
hace el agente es recibir las percepciones,
checar si tenemos el oro, en caso de que
no seguiremos con el algoritmo.
Si tenemos el destello, hemos terminado,
solo falta regresar por las casillas que ya
hemos visitado.
Se hacen las deducciones en base a lo que
percibimos.
Encontramos hacia que casilla nos
moveremos ahora, esta función puede
realizar varios giros intentando encontrar
el movimiento óptimo.
Registramos la casilla como segura
(visitada)
4. FUNCION PARA ENCONTRAR EL SIGUIENTE MOVIMIENTO HACIA UNA CASILLA
Como vemos, esta parte
del algoritmo es un ciclo,
que en base a la
orientación actual, valida
si la siguiente casilla hacia
adelante es segura, en
caso de que lo sea se
mueve hacia ella, y sino
gira y volverá a validar.
Cabe mencionar que si la
siguiente casilla no solo es
segura, sino que ya ha
sido visitada el agente no
la visitara a menos que
sea su último recurso
seguro, para que no entre
en un ciclo donde solo
regresa a donde ya ha ido.
5. FUNCION MAKEDEDUCTIONS()
Como ya habíamos explicado, de acuerdo a lo que percibe el agente, llena las deducciones de su mundo
para saber si puede o no haber tanto pozo como wumpus en las casillas adyacentes, basándose en las
percepciones que recibió.
CAPTURAS DE PANTALLA DEL AGENTE