Considere el siguiente problema: Hay un campesino que tiene que cruzar al otro lado de un ro. El campesino lleva un cordero, un lobo y un repollo pero en la lancha que sirve para cruzar de un extremo al otro del ro solo cabe l y una de sus pertenencias. Tenga en cuenta que si deja en cualquier extremo del ro al cordero junto con el repollo, ste se comer el repollo, as mismo, el lobo se puede comer al cordero (esto ocurre si no est presente el campesino). El problema consiste en que el campesino pase de un extremo al otro con todas sus pertenencias. El campesino puede viajar slo en la lancha. a) Ejercicio evaluativo de clase (valor 3.0): i) Modele el problema como una representacin del mundo: estado inicial, estado objetivo y operadores. ii) Entregue el camino de solucin a su problema SOLUCION -
Definimos: Lado 1= W Lado 2= Z A= Campesino B= Cabra X= Repollo Y= Lobo
Estado inicial: (A=W, B=W, X=W, Y=W).
Estado objetivo: (A=Z, B=Z, X=Z, Y=Z). Si A y B= Z (Z,Z,W,W). Si A=W (W,Z,W,W). Si A y Y=Z (Z,Z,W,Z). Si B y A=W (W,W,W,Z). Si A y X=Z (Z,,W,Z,Z). Si A=W (W,W,Z,Z). Si A y B=Z (Z,Z,Z,Z).
Pasar campesino y cabra de W a Z; Si A=Z AND B=Z
Devolver campesino de Z a W; Si A=W Pasar campesino y lobo de W a Z; Si A=Z AND Y=Z Devolver campesino y cabra de Z a W; Si A=W AND B=W Pasar campesino y repollo de W a Z; Si A=Z AND X=Z Devolver campesino de Z a W; Si A=W Pasar campesino y cabra de W a Z; Si A=Z AND B=Z
BSQUEDA INFORMADA 3. A* Este algoritmo encuentra la ruta de menor costo
desde el nodo inicial o raz hacia el nodo objetivo. Para esto utiliza una funcin de evaluacin la cual consiste de la suma de una funcin heurstica de distancia y una funcin de costo, lo cual utiliza para determinar el orden en que recorrer los nodos en el rbol. La funcin heurstica de distancia y la funcin de costo son: La funcin de costo, es el costo de la ruta para desplazarse de un nodo a otro (generalmente denotado por g(x)). La funcin heurstica de distancia, es un valor de admisibilidad, el cual es un estimado de la distancia hacia el nodo objetivo (generalmente denotado por h(x)). Una vez establecidos el valor de estas funciones, el algoritmo A* utiliza dos estructuras de datos auxiliares, que se denominan abiertos y cerrados, implementado una cola de prioridad (ordenada por el valor de evaluacin) en la abierta, y en la cerrada se almacenara informacin de los nodos que ya han sido visitados. En cada paso del algoritmo, se expande el nodo que est primero en abiertos, y en caso de que no sea el nodo objetivo, calcula la funcin de evaluacin de todos sus hijos, los inserta en abiertos, y pasa el nodo evaluado a cerrados. Nota: El algoritmo es una combinacin entre las bsquedas de primero en anchura y primero en profundidad: mientras que la funcin heurstica de distancia tiende a la bsqueda primero en profundidad, la funcin de costo tiende a la bsqueda primero en anchura. Debido a esto, se cambia de algoritmo de bsqueda cada vez que existen nodos ms prometedores. a. Ejercicio de clase (valor 2.0): i. Utilizar el software suministrado en clase (JSearchDemo.jar) para observar el algoritmo A* en funcionamiento, para esto grafique el rbol que se muestra en la figura 2, teniendo en cuenta que el nodo raz es el de color azul (A) y el nodo objetivo es el de color verde (L). Los valores al interior de los nodos corresponde a la funcin heurstica y los adyacentes a las aristas al costo. ii. Conteste las siguientes preguntas a partir de lo observado: 1. Cules nodos corresponden a la solucin del algoritmo, segn Jsearch? 2. Cules nodos corresponden a la solucin del algoritmo (segn la teora)? 3. Cul es la longitud final de la solucin?
SOLUCION 1. A,B,D,I,E,J,N,O,P,E,I,D,J,N,O,P,C,F,K,L 2. La longitud es 274