Sei sulla pagina 1di 4

UNIVERSIDAD TECNOLGICA DE LOS ANDES C.P.Ingeniera de Sistemas e Informtica Asignatura: Sistemas Expertos. Docente: Ing.

Hesmeralda Rojas Enriquez

Prctica de Laboratorio 01
Introduccin a PROLOG. Instalar el SWI- Prolog. Comandos help. Buscar ayuda. h. Muestra el historial. 1. Variables El identicador de una variable tendr que tener su primera letra en maysculas. Ej: X, Casa, Cobaltina, Rad 2. Constantes:

La primera letra de una constante deber estar escrita en minsculas. Ej: a, incienso, roberto, rADgtfCdf Tambin se consideran constantes a los nmeros, Ej: 1, 5.02, 0.7 Las palabras entre comillas simples Ej: a, A, a a y la lista vaca [ ]. 3. Funciones: Al igual que las constantes, su primera letra debe ser una minscula. Deber estar seguido de un conjunto de trminos (otras funciones, variables o constantes) encerrados entre parntesis. Ej: f(c,X), conc arbol(Hijo Izq, Raiz, Hijo Der), rADgtfCdf(RADgtfCdf, rADgtfCdf) 4. Predicados: Su sintaxis es la misma que la de las funciones aunque, por su localizacin dentro de la clusula (es decir, dentro del programa Prolog), el compilador los identicar como tal, y no como funciones. Ej: f(c,X), conc arbol(Hijo Izq, Raiz, Hijo Der), rADgtfCdf(RADgtfCdf, rADgtfCdf) Un programa Prolog est formado por predicados. Cada predicado est definido unvocamente por su nombre y su aridad. La aridad es el nmero de argumentos (o parmetros) de un predicado. Ej. humano(pepe). humano(juan). Para referenciar este predicado se utiliza nicamente su nombre y aridad: humano/1. Cada predicado en Prolog puede estar definido por una o ms clusulas. En nuestro ejemplo, humano/1 est definido por dos clusulas. Las clusulas a su vez pueden ser de dos tipos: hechos y reglas. Los hechos son afirmaciones que consideramos ciertas en nuestro programa.

UNIVERSIDAD TECNOLGICA DE LOS ANDES C.P.Ingeniera de Sistemas e Informtica Asignatura: Sistemas Expertos. Docente: Ing. Hesmeralda Rojas Enriquez

Las reglas son implicaciones lgicas, que pueden tener varios antecedentes pero un nico consecuente. Este tipo de reglas se denominan clusulas de Horn. Ej. humano(X) mortal(X). que utilizando la sintaxis de Prolog se escribe: mortal(X):- humano(X). Los hechos se pueden considerar casos particulares de reglas en donde no hay ningn antecedente. 5. Hechos: Son clusulas de Horn que poseen un nico predicado en la cabeza y ninguno en el cuerpo. Tienen la siguiente forma en sintaxis de lgica de primer orden: P En Prolog no se escribe la echa sino que se pone un punto al nal: p. donde p es un predicado y tiene que seguir su sintaxis. Ej: padre(aaron, maria). compositor(shostakovich). shostakovich(compositor).

Realizando ejercicios con SWI Prolog


Ir a la opcin: File New y especificar una ruta para guardar el ejercicio, adems dar un nombre al archivo. Recordemos que la extensin del archivo es .pl (Prolog). Ejercicio 1: humano(pepe). humano(juan). mortal(X):- humano(X). Para mostrar varias respuestas, escribir: ; (punto y coma). Ejercicio 2: hector:- display('Hola mundo..'). estudia(hector). estudia(martha). esMateria(sistemas_expertos). esProfesor(hesmeralda). estudia(hector, sistemas_expertos). nacimiento(hector, peru). vida(hector, 1950, 2013). vida(martha, 1930, 1990). Para ejecutar el programa escribimos el nombre de la clusula, en este caso: hector. Tambin podemos probar los predicates como: estudia, esMateria, esProfesor, nacimiento.

UNIVERSIDAD TECNOLGICA DE LOS ANDES C.P.Ingeniera de Sistemas e Informtica Asignatura: Sistemas Expertos. Docente: Ing. Hesmeralda Rojas Enriquez

hector. Estudia(hector). esMateria(io). Nacimento(hector, X).

Ejercicio 3:

Crear un programa que permita el ingreso de los nombres de varios pases, que nos indique los lmites de un pas, que muestre su superficie y sus translimtrofes. %lista de pases. es_un_pais(peru). es_un_pais(ecuador). es_un_pais(colombia). es_un_pais(bolivia). es_un_pais(chile). %Lmites de un pas. limita_con(peru, ecuador). limita_con(peru, colombia). limita_con(peru, bolivia). limita_con(peru, brasil). limita_con(peru, chile). limita_con(ecuador, colombia).

UNIVERSIDAD TECNOLGICA DE LOS ANDES C.P.Ingeniera de Sistemas e Informtica Asignatura: Sistemas Expertos. Docente: Ing. Hesmeralda Rojas Enriquez

limita_con(chile, bolivia). limita_con(chile, argentina). limita_con(bolivia, argentina). limita_con(bolivia, brasil). limita_con(paraguay, argentina). limita_con(paraguay, brasil). limita_con(uruguay, brasil). limita_con(uruguay, argentina).

limitrofes(X,Y):- limita_con(X,Y); limita_con(Y,X). %Superficie de un pas. superficie_pais(peru, 1285216). superficie_pais(brasil, 8515767). superficie_pais(ecuador,99999). pais_pequeno(X):- superficie_pais(X,Y), Y<100000. % Definir las reglas: Obtener todos los pares de pases translimtrofes, % esto es cuando dos pases tienen en comn un pas con el cual limitan. translimitrofes(X, Y):- limitrofes(X, Z), limitrofes(Z,Y), dif(X, Y), not(limitrofes(X, Y)).

Potrebbero piacerti anche