problema resuelto
CARLOS CHAVEZ SANCHEZ
MISONEROS Y CANIBALES
1) DESCRIPCION DEL PROBLEMA
3 caníbales y 3 misioneros querían cruzar un río, pero solo había una canoa en la
que solocabían dos personas a la vez. Todos los misioneros podían remar la canoa,
pero solo uno de los caníbales podía remar. Mientras el número de caníbales y de
misioneros juntos (ya sea en el barco o en amboslados del río) era igual, todo
estaba bien. Pero al solo haber más caníbales que misioneros, los caníbales se
comían a los misioneros. ¿Puedes cruzarlos a todos de un lado del río al otro sin
quese pierda ninguno?
2) SOLUCION DEL PROBLEMA
Situación al principio.
Primero 1 misionero y un canibal (no el que puede remar) cruzan.
SISTEMAS EXPERTOS 2
CARLOS CHAVEZ SANCHEZ
Elmisionero regresa.
Entonces el canibal que rema y el otro canibal cruzan.
El canibal que rema regresa.
Dos misioneros cruzan al otro lado.
SISTEMAS EXPERTOS 3
CARLOS CHAVEZ SANCHEZ
Unmisionero y un canibal regresan.
El canibal que rema y un misionero cruzan otra vez.
El misionero regresa con otro canibal, dejando al canibal que rema en el otro lado.
Los dos misioneros quetodavía están en el lado original cruzan, y así los tres
misioneros están todos al otro lado del río.
El canibal que rema tiene que hacer dos viajes para ir a traer a los otros dos
SISTEMASEXPERTOS 4
CARLOS CHAVEZ SANCHEZ
canibales, uno por uno, que todavía están al otro lado del río.
Ahora ya todos están al otro lado del río y pueden hacer lo que quieran.
SISTEMAS EXPERTOS 5CARLOS CHAVEZ SANCHEZ
3) SOLUCION EN CLIPS
(defmodule MAIN
(export deftemplate estado)
(export defglobal misionero-inicial canibal-inicial))
;;;*************
;;;* TEMPLATES *
;;;*************;;; The status facts hold the state
;;; information of the search tree.
(deftemplate MAIN::estado
(slot busqueda (type INTEGER) (range 1 ?VARIABLE))
(slot parent (type FACT-ADDRESS SYMBOL)...
Regístrate para leer el documento completo.