Upload
shabedekam
View
216
Download
0
Embed Size (px)
Citation preview
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