You are on page 1of 5

Misioneros y Canibales

Introduccion
Respecto al planteamiento del problema, parece claro a simple vista que los operadores implicarn el transporte de una o dos personas en la barca a travs del rio. Si es as, los estados podran describirse, en una primera impresin, como la cantidad de misioneros y canbales que hay en cada orilla y en la barca en un momento dado.

Desarrollo
No obstante, se sabe que en la barca pueden viajar a lo sumo dos pasajeros, y por tanto no hay posibilidad alguna de que haya ms canbales que misioneros en la misma. Por tanto, para describir los estados es suficiente tener en cuenta el nmero de misioneros y canbales que hay en cada orilla en todo momento, ademas se tiene que tener en cuenta los misioneros y canbales que hay en cada una de las orillas por separado, puesto que as tambin se conocen los que hay en la otra orilla. A partir de lo dicho se desprende la siguiente definicin formal del problema.

Busqueda en amplitud
La busqueda en amplitud se basa en recorrer cada rama nivel del arbol para desarrolar las siguentes hasta que se encuentre el objetivo.

Objetivos
Se trata de encontrar la forma en que las seis personas puedan cruzar a la otra orilla del rio con la lancha, pero teniendo en cuenta que en momento alguno puede haber, en ninguna de las orillas donde haya algn misionero, un nmero de misioneros inferior al de canbales.

Condicion
No puede ocurrir nunca que si en una No puede ocurrir nunca que si en una orilla hay algn misionero haya a la vez un nmero mayor de canbales.

Estados
Para definir los estados de en este problema hay que establecer las reglas que nos guiara para saber cuales son los limites hasta donde debemos llegar. Estado: El estado del problema lo representaremos con un funcion: estado(Ci,Mi,Cd,Md,B)

donde los argumentos corresponden a: Ci: Canibales en la rivera izquierda. Mi: Misioneros en la rivera izquierda. Cd: Canibales en la rivera derecha. Md: Misioneros en la rivera derecha. B: Indica en que llado del rio se encuentra el bote. Los valores posibles seran izq y der.

Estado Inicial: estado(3,3,0,0,izq) Estado Final: estado(0,0,3,3,der)

Operadores: A partir del tipo de estados definido, los posibles operadores transportaran en la barca las siguientes personas: Un solo misionero Un solo canbal Dos misioneros Dos canbales Un misionero y un canbal

Operaciones
Existen cinco posibles operaciones que se pueden realizar siempre y cuando cumplan con las limitaciones anteriormente descritas. OP1: cruzar 1 canibal y 1 misionero OP2: cruzar 2 canibales y 0 misionero OP3: cruzar 0 canibal y 2 misioneros OP4: cruzar 0 canibal y 1 misionero OP5: cruzar 1 canibal y 0 misionero

El operador resulta(E,A,Er) donde: Er es el estado que se genera al ejecutar la accion A sobre el estado E. Podemos escribir la funcion solucion de la siguiente manera: soluc(E1,cruzar(C,M),E2): posible(cruzar(C,M),E1), E1 = estado(Ci,Mi,Cd,Md,izq), Cip=Ci-C, Mip=Mi-M, Cdp=Cd+C, Mdp=Md+M,

E2 = estado(Cip,Mip,Cdp,Mdp,der). soluc(E1,cruzar(C,M),E2): posible(cruzar(C,M),E1), E1 = estado(Ci,Mi,Cd,Md,der), Cip=Ci+C, Mip=Mi+M, Cdp =Cd-C, Mdp =Md-M, E2 = estado(Cip,Mip,Cdp,Mdp,izq).

Donde posible se define de la siguiente manera: posible(cruzar(C,M),estado(Ci,Mi,_,_,izq)): C=<Ci, M=<Mi. posible(cruzar(C,M),estado(_,_,Cd,Md,der)): C=<Cd, M=<Md. accion(cruzar(C,M)): (C=0 ; C=1 ; C=2), (M=0 ; M=1 ; M=2), C+M=<2, C+M>=1. seguro(estado(Ci,Mi,Cd,Md,_)): (Ci=<Mi; Mi=0), (Cd=<Md; Md=0).

Espacio Estados
Los espacios de estado se conforman con el estado inicial y otro estado que sigue segn la secuencia de la aplicacin. en_espaciobusqueda(estado(3,3,0,0,izq)). en_espaciobusqueda(E)=en_espaciobusqueda(Ep),sucesor(Ep,E). E = estado(3, 3, 0, 0, izq) E = estado(2, 3, 1, 0, der) E = estado(2, 2, 1, 1, der)

Diagrama de Clase

You might also like