Ejercicios_Prolog

junio 30, 2018 Desactivado Por admin

Inteligencia en Redes de Comunicaciones Prolog El objetivo es poner en práctica los conocimientos de Prolog estudiados en teoría. Vamos a utilizar SWI-Prolog: http://www. swi-prolog. org/ La versión para Linux está instalada en /var/home/asig/ircit/pl-S. 6. 23 y para ejecutar un programa sólo tienes que hacer: /var/home/asig/ircit/pl-5. 6. 23/bin/pl -s «programa. pl> También puedes descargar e instalar la versión para Windows, si tienes suficientes permisos de instalación. Primero, a tu ritmo, e siguientes programa Prolog, los que más t preocupes: 2. 3. 4. . 6. 7. . 9. 10. 11. 3 p usten denador los legues, no te MONTY PYTHON AND THE HOLY GRAL (1975) CANCION ESTUPIDA DIAGNÓSTICO DE ENFERMEDADES K0MaHAa I ecwposawe OKHO Cnpa3Ka female who burns. Witches burn – because theyre made of wood. Wood floats. What else floats on water? A duck; if something has the same weight as a duck it must float. A duck and scales are fetched. The girl and the duck balance perfectly. «ltls a fair cap. » witch(X) burns(X) wooden(X). wooden(X) :- floats(X). floats(X) sameweight(duck, X). female(girl). sameweight(duck,grl). ? witch(girl). 2.

Canción estúpida ancionestupida(0):-nl,write(‘Gomo ya no gueda shewezza, -hic- be boy a doddmig… ‘). cancionestupida(N):-N>1 botellas de cerveza en el wrlte(N),write(‘ botellas de write(‘Cojo una y me la A is N-l, cancionestupida(A). cancionestupida(N):-N=1 bodellia de shegvezza en el zsduelo’),nl, bodella de write(‘La gojo y be la bheb 20F A is N-l, cancionestupida( alojamiento(hotel,Iondres,15000). 10000). alojamiento(hostal, roma, 15000). alojamiento(hostal, londres, 10000). alojamiento(hostal,tunez,8000). alojamiento(cam ping,roma, 10000). alojamiento(camping,londres,5000). alojamiento(camping,tunez,5000). aje(W,X,Y,Z):-transporte(W,A),aIojamiento(Y,W,C),B is C*X,Z is 2 5. Árbol genealógico Definir en Prolog los predicados que definen por extensión todas las relaciones familiares directas, padre(Padre, Hijo) y madre(Madre, Hijo) del árbol genealógico de la familia Tudor. Definir la relación progenitor, utilizando las relaciones de padre y madre. Definir recursivamente la relación antepasado. Probar definiciones alternativas de esta relación cambiando el orden de los predicados. Comprobar cómo afecta al comportamiento del programa el orden usado en las distintas definiciones de ntepasado.

Definir nuevas relaciones (como hermano, hermana, abuelo, abuela) añadiendo los predicados mujer, hombre) y reglas necesarios. 30F objetos, propiedades y relaciones. Los nodos se utilizan para representar objetos o propiedades. Los arcos representan relaciones entre nodos del tipo es_un, es_parte de, etc. El mecanismo de inferencia básico en las redes semánticas es la herencia de propiedades. La figura representa esquemáticamente un ejemplo de red semántica: 3 nteligencia en Redes de Comunicaciones prolog Representar en Prolog la red semántica de la figura.

Se sugiere emplear un redicado binario por cada relación. para las propiedades se sugiere que se emplee el predicado atributo(Objeto, Atributo, Valor). Por ejemplo, atributo(albatros, vuela, muy_bien). Incluir las reglas necesarias para que todo objeto herede los atributos y las propiedades de todas las clases a las que pertenece. En ocasiones algunos de los atributos heredados por un objeto deben ser sustituidos por otros particulares. Asf es posible tratar las excepciones, por ejemplo, las aves que no vuelan (como el avestruz).

Representar adecuadamente las excepciones que se señalan en el ejemplo. Se sugiere mplear el predicado particular(Objeto, Atributo, Valor), con el que se especifica que ese atribut de ese objeto y sustituye al heredado. 40F horoscopo(tauro,21 ,4,21 ,5). horoscopo(geminis,21,5,21 ,6). horoscopo(cancer,21 ,7). ,7 ,21 ,8). horoscopo(virgo,21 ,8,21 ,9). ,10). 0,21 ,1 1) 1 , 12). horoscopo(capricornio,21 ,1 2,21 ,1). ,1 ,21 ,2). ,2, 21 ,3). <- los nacidos el Dia/Mes pertenecen al signo Signo *l ( (Mes-M1 ) ; J. 4 ? - signo(7,8,Signo). ?- signo(X,7,Signo).

Realiza las modificaciones pertinentes a este programa para que el día esté comprendido dentro del rango permitido para cada mes. Por ejemplo no podemos poner el 30 de febrero. No es necesario que compruebes si el año es bisiesto. No compliques la con condiciones complejas, sino que sumatorio(Num,Sum) <- Sum es el sumatorio desde 1 hasta Num sumatorio(l,l) - NI is N-l, sumatorio(N1,S1), natural(Num) <- Num es un número perteneciente a los Naturales *l natural(0). natural(X) natural(Y), diventera(Dividendo,Divisor,Cociente) z- Cociente es el resultado de la división natural(C), Y2>A. . 9. Manejo de listas miembro(Elem,Lista) el término Elem pertenece a la lista Lista miembro(X,[_ I Y]) miembro(X,Y). el(Lista,N) z- el número de elementos de la lista Lista es N es_lista(Lista) Lista es una lista *l concatena(L1 ,L2,L3) <- concatenación de las listas LI y L2 dando lugar a L 3 5 insertar(EIem,L1 ,L2) <- se inserta el elemento Elem en la lista LI obteniendose L2 */ insertar(E,L,[E L]). l* permutacion(L1 ,L2) <- la lista L2 es una permutación de la lista LI */ Y],Z) permutacion(Y,L), insertar(X,L. Z). ust(E1 <- L2 es LI sustituyendo las ocurrencias del elemento El por E2 sust(E1 L2]) l, sust(E1 ,L2). sust(E1 I L2]) sust(E1 ,12). union(L1 <- L3 es la lista-conjunto unión de LI y L2 iembro(KL2), l, union(L 1 LB]) union(L1 miembro(d,[a,b,c,[d,e]]). miembro(d,[a,b,c]). miembro(E,[a,b,[c,d]]). concatena(L1 1. - Escribe, basándote en el procedimiento "miembro" visto anteriormente, un nuevo procedimiento "miembro" con 3 parámetros. El nuevo argumento haría 7 OF referencia a la posición oc lemento Elem en la lista is NI+I. - se borra el elemento Elem que ocupa la posición Pos de la lista LI obteniendose la lista L 2 M]) NI is N-l, borrarN(N1 , L, M). 6 10. Analizador morfológico El analizador morfológico proporciona el análisis morfológico ompleto de una palabra dada, es decir, su categoría morfológica (nombre, pronombre, adjetivo, determinante, verbo, adverbio, preposición, conjunción, interjección... ) con sus rasgos correspondientes (si es nombre: masculino/femenino y singular/plural, si es verbo: persona, número, tiempo y modo... ).

Las palabras en español se comportan de acuerdo a modelos de derivación y conjugación, entre los que están, por ejemplo, los verbos regulares en las 3 conjugaciones (ar, er, ir). En prolog es fácil realizar analizadores morfológicos, definiendo modelos que roporcionan los lingüistas. Por ejemplo: % modelo «perro» analisis(perro,nmp,os). analisis(perro,nfs,a). 80F nombre masculino singular nombre masculino plural % modelo «cantar analisis(cantar,presenteindicativols,o). analisis(cantar,presenteindicativ03s,a). analisis(cantar,futurosmplels,aré). modelo(cant,cantar). odelo(am,cantar). modelo(gust,cantar). % modelo «temer» analisis(temer,presenteindicativols,o). analisis(temer,presenteindicativ02s,es). modelo(tem,temer). modelo(beb,temer). la persona singular presente indicativo persona singular presente indicativo ersona singular futuro simple indica a persona singular presente indicativo 7 Inteligencia en Redes de propiedades que cumplen distintos elementos de nuestro Dominio (Universo del Discurso). La restricción a la que está sujeto este juego es que dos elementos distintos de un mismo Universo no pueden tener la misma característica.

Nuestro acertijo: «Un alumno de Informática, debido al nerviosismo del primer día de clase, ha anotado el nombre de sus profesores (María, Jesús y Faraón), las asignaturas que se imparten (Lógica, Programación y Matemáticas) y el dia e la semana de las distintas clases (lunes, miércoles y jueves), pero sólo recuerda que: – La clase de Programación, impartida por María, es posterior a la de Lógica – A Faraón no le gusta trabajar los lunes, día en el que no se imparte ógica ¿Serias capaz de ayudarle a relacionar cada profesor con su asignatura, asl como el día de la semana que se imparte? Sabemos que cada profesor imparte una única asignatura y que las clases se dan en días diferentes)» El siguiente programa sirve como programa de control. JUEGO DE LÓGICA mensaje «Juego Lógico» write(‘Se lanza con ? – in 0 DF 13