guiame1 prolog

Upload: shabedekam

Post on 31-May-2018

216 views

Category:

Documents


0 download

TRANSCRIPT

  • 8/14/2019 guiame1 prolog

    1/5

  • 8/14/2019 guiame1 prolog

    2/5

    Universidad Nacional del Altiplano PunoEscuela Profesional de Ingeniera de Sistemas

    CURSO: INTELIGENCIA ARTIFICIAL

    Anlisis del programa:

    La estructuracin de un programa en Visual Prolog contiene estas partes,

    requeridas necesariamente:

    Domains: aqu se definen los tipos de datos que se han de usar en lospredicados, as por ejemplo,

    hombre = string

    metal = symbol

    numeros = real

    letra = char

    Predicates: aqu se definen todos los predicados que se han de definir, en lasclusulas equivaldra a la definicin de funciones en lenguaje C, utilizan lasdefiniciones de Domains, as por ejemplo:

    valioso(metal)

    Hermano(hombre, hombre)

    amigos( hombre,hombre,hombre)

    Clauses: contiene la definicin especifica de los predicados

    valioso(oro).

    hermano(juan, pedro).

    amigos( luis,pedro,pablo).

    El smbolo de culminacin se determina por un punto.

    Goal: contiene las consultas a desarrollar en el programa

    El prolog permite como se indico extraer consultas lgicas de los que sucedeen el conocimiento expresado resultando estas consultas verdaderas o falsas(YES, NO) segn corresponda, aqu se han de ubicar las preguntas necesariasejemplo es valioso el oro:

    valioso(oro).

    Para poner en memoria todas las clausulas y ver la consulta ejecute Test Goaldel men de proyecto o su equivalente CTRL+G o simplemente apretando elbotn G de la barra de botones.

    Luego observara una ventana de sugerencias y errores y otra ventana quemuestra el resultado de la consulta en este casoYES.Ntese que se ha ejecutado la consulta para crear un ejecutable se tiene quecrear un proyecto echo que se desarrollara despus

    PARTE 2: Entendiendo y Mejorando el Programa

    valioso(oro).

    valioso(plata).

    valioso(bronce).

    2

  • 8/14/2019 guiame1 prolog

    3/5

    Universidad Nacional del Altiplano PunoEscuela Profesional de Ingeniera de Sistemas

    CURSO: INTELIGENCIA ARTIFICIAL

    Indican que la "La plata es valiosa", "el oro es valioso". Todos estos predicadosse escriben en un "programa" de Prolog. Tras "correr" el programa, se puedenhacer estas consultas:

    Valioso(oro). Es valioso el oro? Esta es una metaYes Si, es la respuesta

    En vez de la consulta anterior se colocara esta nueva:

    Goal Valioso(X).

    X es una variable, por ello va en maysculaAl ejecutar la consulta la respuesta sera

    X=oro

    X=plata

    X=bronce3 soluciones

    Esto corresponde a las especificaciones que se han definido anteriormente enlas clusulas.

    Si desea aumentar las especificaciones puede ubicar

    valioso(cobre).

    valioso(zing).

    La respuesta permitir cinco soluciones para X.

    Consideracin:

    Si desea mejorar su aplicacin podrir ubicar entre comillas todo su programatodas las especificaciones de las clusulas el paquete generara de mejor formaestas definiciones ubicndolas de un color respectivo.

    Especificaciones en Verde Amarillento, Clusulas en Negro, Cadenas en azul,Variables en verde claro, errores en rojo, etc.

    El programa quedara:

    Domains

    metal = string

    Predicates

    valioso(metal) %Predicado nico no siempre ser asClauses

    valioso("oro").

    valioso("plata").

    valioso("bronce").

    valioso("cobre"). % Clusulas agregadasvalioso("zing").

    Goal

    valioso(X). %Consulta

    3

  • 8/14/2019 guiame1 prolog

    4/5

    Universidad Nacional del Altiplano PunoEscuela Profesional de Ingeniera de Sistemas

    CURSO: INTELIGENCIA ARTIFICIAL

    PARTE 3: Ejecucin del programa en SWI Prolog

    La diferencia no es mucha entre paquete y paquete con la salvedades que se

    indicaran a continuacin, en realidad el programar en SWI Prolog es massencillo, lo que nos permite cierta versatilidad, observa la diferencia.

    Entre al SWI Prolog, ah en el men file seleccionar la opcin new, lo que abriruna ventana de edicin donde, se colocara el nombre respectivo, ah seseleccionara si para crear uno nuevo, una vez abierto el editor copiarasolamente la parte de las clusulas del programa desarrollado en Visual Prolog,sea:

    valioso(oro).

    valioso(plata).

    valioso(bronce).

    Almacene su programa y vuelva a SWI Prolog, ah en el men file seleccion laespecificacin Consult, lo que le permitir abrir un dialogo, en el cual abra suprograma copiado anteriormente, eso har que las clusulas definidas ah sedefinan en la memoria para desarrollar consultas

    Luego al volver al SWI Prolog coloquese en modo consulta ?-, lo queconseguir con el cursor a la derecha (fleca a la derecha->) de los botones decursos, los cursores arriba abajo vuelven a las consultas anteriores, una vezah puede hacer las consultas:

    ?- valioso(oro). Es valioso el oro? Esta es una meta

    Yes Si, es la respuesta

    ?- valioso(X). X es una variable, por ello va en maysculaX=oro;

    Esta es una respuesta. Apretar tecla ; , entonces Al agregar el punto y comase le est pidiendo otra respuesta que satisface la meta

    X=plata; Otra ves la tecla ;

    X=bronce; Otra ves la tecla ;

    no Cuando ya no encuentra ms respuestas responde con

    "no". Ah encontrado 3 posibilidades verdaderas, Noaparece cuando no existen mas.

    4

  • 8/14/2019 guiame1 prolog

    5/5

    Universidad Nacional del Altiplano PunoEscuela Profesional de Ingeniera de Sistemas

    CURSO: INTELIGENCIA ARTIFICIAL

    CONCLUSIONES

    RECOMENDACIONES

    TRABAJO APLICATIVO

    1. Cuales son las diferencias que existen entre el SWI Prolog y el Visual Prolog.

    5