Contenido1.- INTRODUCCIN1Anlisis del problema1Anlisis del
comportamiento procedural.3
1.- INTRODUCCIN
El problema del mono y la banana se utiliza como un ejemplo
sencillo de solucion de problemas. El siguiente programa en prolog
mostrara como se pueden utilizar los mecanismos de ''matching'' y
'' backtracking''.
Utilizaremos la siguientes versiones del problema: existe un
mono en la puerta de un cuarto; en medio del cuarto cuelga una
banana del techo; el mono esta hambriento y desea capturar la
banana, pero no puede alcanzarla desde el piso. En la ventana del
cuarto hay una caja que el mono puede usar.
El mono puede realizar solamente las siguientes acciones:
caminar sobre el piso, subir a la caja, empujar la caja (si el mono
esta junto a la caja), y agarrar la banana (si el mono esta sobre
la caja y baja la banana)
Como puede el mono llegar a capturar la banana?
Anlisis del problemaUna tarea importante en programacin es
encontrar una representacin del problema en terminos del lenguaje
de programacin utilizando. En este caso podemos pensar del ''mundo
del mono'' en terminos de ''estado'' que cambian con el tiempo. El
estado actual se determina por la posicin actual de los objetos
Las transiciones permitidas que cambian el mundo de un estado a
otro son la siguientes:
Agarrar la banana. subir a la caja empujar la caja caminar en el
cuarto.
No todas las transiciones son posibles en cada estado posible
del mudo del mono. por ejemplo, la transicion ''agarrar la banana''
es solamente posible si el mono esta sobre la caja y bajo la banana
y si no tiene todavia la banana.
Aqu el programa para poder realizar todo este proceso.
Anlisis del comportamiento procedural.Consideremos la siguiente
pregunta al programa anterior:
?-puedetener(estado(enlapuerta,sobreelpiso,enlaventana,nolatiene)).
prolog contesta yes.
Bueno aquAsindolo
En la pregunta 6 lo hice pero me pero me pregunto que si lo que
quera decir es lo que prolog me puse y le dije que yes y me
mandotruey lo volv a poner.
para ver la solucin y el proceso que se llevo a cabo por prolog
para alcanzar esta respuesta involucra una serie de busquedas de
movimiento validos entre una serie de movimientos alternativos
posibles.
Ahora un que significa:
matching: Nos da como resultado un true o false. True cuando el
matching tiene xito (empatan) o false, cuando la meta falla, no hay
empate.
backtracking:En caso de ser falso entra en juego el
backtracking, que consiste en deshacer todo lo ejecutado situando
el programa en el mismo estado en el que estaba justo antes de
llegar al punto de eleccin. Entonces se toma el siguiente punto de
eleccin que estaba pendiente y se repite de nuevo el proceso. Todos
los objetivos terminan su ejecucin bien en xito ("verdadero"), bien
en fracaso ("falso").
5