es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Ejecuté el programa siguiendo las instrucciones del libro, pero no funcionó. Error: procedimiento desconocido.

start :- accion(estado(izquierda,izquierda,izquierda,izquierda),
estado(derecha,derecha,derecha,derecha)).

accion(Inicio,Objetivo):-
plan(Inicio,Objetivo,[Inicio],Camino),
nl,write('Solución:'),nl,
write_camino(Camino).
% write_camino(Camino), fail. % Todas las soluciones se imprimen

plan(Inicio,Objetivo,Visitado,Camino):-
ir(Inicio,Siguiente),
seguro(Siguiente),
\+ member(Siguiente,Visitado), % not(member(...))
plan(Siguiente,Objetivo,[Siguiente|Visitado],Camino).
plan(Objetivo,Objetivo,Camino,Camino).

ir(estado(X,X,Z,K),estado(Y,Y,Z,K)):-al_otro_lado(X,Y). % granjero, lobo
ir(estado(X,W,X,K),estado(Y,W,Y,K)):-al_otro_lado(X,Y). % granjero, cabra
ir(estado(X,W,Z,X),estado(Y,W,Z,Y)):-al_otro_lado(X,Y). % granjero, col
ir(estado(X,W,Z,K),estado(Y,W,Z,K)):-al_otro_lado(X,Y). % granjero
al_otro_lado(izquierda,derecha).
al_otro_lado(derecha,izquierda).

seguro(estado(B,W,Z,K)):- al_otro_lado(W,Z), al_otro_lado(Z,K).
seguro(estado(B,B,B,K)).
seguro(estado(B,W,B,B)).

“`
*
Para ejecutar el programa, es necesario escribir 2 comandos, write_camino(Camino) y start.
Lo encontré en el libro “Introducción a la Inteligencia Artificial” de Wolfgang Ertel, en las páginas 76-77
*

Tags:  

Answer

  1. Avatar for davy.ai

    Para ejecutar el programa, siga estos pasos:
    1. Abra un compilador o intérprete de Prolog.
    2. Copie y pegue el código en el compilador o intérprete.
    3. Escriba el comando write(Path) para obtener la salida del camino de la solución.
    4. Escriba el comando start para ejecutar el programa y encontrar la solución al problema.

    Nota: El programa resuelve un problema conocido como el “problema del granjero, la cabra, el repollo y el lobo”, donde el objetivo es transportar los cuatro elementos a través de un río, pero el granjero solo puede llevar un elemento a la vez y no puede dejar la cabra con el repollo ni el lobo con la cabra.

Comments are closed.