Inteligencia Artificial. Programa en Prolog
Peter A. BazurtoApuntes2 de Febrero de 2017
922 Palabras (4 Páginas)189 Visitas
[pic 1]
ESCUELA SUPERIOR POLITÉCNICA DE CHIMBORAZO
FACULTAD DE INFORMATICA Y ELECTRÓNICA
ESCUELA DE INGENIERIA EN SISTEMAS
INTELIGENCIA ARTIFICIAL
TEMA : Programa en Prolog
1.- DATOS GENERALES:
NOMBRE CODIGO
Aracely Caiza 5713
FECHA DE REALIZACIÓN: FECHA DE ENTREGA:
2015/06/12 2015/06/12
EJERCICIO DE INTELIGENCIA ARTIFICIAL
Ejercicio 1
[pic 2]
a)
∃ x Estudiantes(x) ∧ estudian(x,francés, primavera_2001)
b)
∃ x Estudiantes(x) ∧ estudian(x,francés) →aprueba(x, francés)
O
∀ x,y Estudiante(x) ∧ Estudiante(y) ∧ estudia(x, francés) ∧ estudia(y, francés) →aprueba(x, francés) ∧ aprueba(y, francés) ⇔ x<>y
c)
∃ x Estudiante(x) ∧ estudia(x,Griego,primavera_2001)
O
∀ x,y Estudiante(x) ∧ Estudiante(y) ∧ estudia(x, Griego, primavera_2001) ∧ estudia(y, Griego, primavera_2011) ⇔ x=y
d)
puntuacionmayor(mejorpuntuaciong(Griego),mejorpuntuacionf(franses))
e)
∀ x persona(x) ∧ compra(x, poliza) → inteligente(x)
f)
∀ x,y persona(x) ∧ poliza(y) ∧ cara(y) → ¬(compra(x,y))
g)
∀ x,y,z Agente (x) ∧ ¬Asegurada(y) ∧ poliza(z) → ∃ x Agente(x) ∧ vende(x,z,y)
h)
∃ x Barbero(x) ∧ ∀ y Hombre(y ) ∧ ¬afeita(x,y) →afeitar(x,y)
i)
∃ x,y Persona(x) ∧ nacio(x,ReinoUnido ) ∧ Padres(y) ∧ ciudadanos(y, ReinoUnido) ∨ residentes (y, ReinoUnido)→ciudadano(x,ReinoUnido)
Ejercicio 2:
[pic 3]
Ejemplo:
nieto(X,Z) ↔ hijo(X,Y) ˄ hijo(Y,Z)
Desarrollo
nieto(F,R):-padre(T,F) and padre(R,T)or madre(T,F)and padre(R,T).
bisabuelo(M,F):-madre(T,F) and padre(R,T) and padre(M,R).
hermano(T,K):-padre(M,R) and padre(R,T) and padre(R,K) and T><K and hombre(T).
hermana(T,K):-padre(R,T) and padre(R,K) and mujer(T).
hija(T,R):-padre(R,T)and esposo(R,M)and mujer(T).
hijo(T,R):-padre(R,T)and esposo(R,M)and hombre(T).
tia(K,E):-padre(M,R)and padre(R,K)and padre(R,L)and hermana(K,L)and (madre(L,E)or padre(L,E))and not(madre(K,E)) and K><E.
tio(T,E):-padre(M,R)and padre(R,T)and padre(R,L)and hermano(T,L)and (madre(L,E)or padre(L,E))and hombre(T).
hermanopolitico(D,F):-padre(M,R) and padre(R,T) and esposa(T,C)and madre(T,D) and madre(T,F)and D><F.
primohermano(F,M):-hermana(T,K) and madre(T,F) and madre(K,M) and T><K.
Ejercicio 3:
Haga el árbol genealógico de su familia y vea si funcionan los axiomas del ejercicio 2
[pic 4]
[pic 5]
CÓDIGO
% Copyright
implement main
open core,stdio
constants
className = "main".
classVersion = "".
clauses
%classInfo(className, classVersion).
class facts - myfamilia
padre:(string NombrePapa, string NombreHijo).
madre:(string NombreMadre, string NombreHijo).
esposo:(string NombreEsposo, string NombreEsposa).
esposa:(string NombreEsposa, string NombreEsposo).
mujer:(string M).
hombre:(string H).
class predicates
nieto:(string F, string R) nondeterm anyflow.
clauses
nieto(F,R):-padre(T,F) and padre(R,T)or madre(T,F)and padre(R,T).
class predicates
hermana:(string T, string K) nondeterm anyflow.
clauses
hermana(T,K):-padre(R,T) and padre(R,K) and mujer(T).
class predicates
hermano:(string M, string F) nondeterm anyflow.
clauses
hermano(T,K):-padre(M,R) and padre(R,T) and padre(R,K) and T><K and hombre(T).
class predicates
primohermano:(string F , string M) nondeterm anyflow.
clauses
primohermano(F,M):-hermana(T,K) and madre(T,F) and madre(K,M) and T><K.
class predicates
bisabuelo:(string M, string F) nondeterm anyflow.
clauses
bisabuelo(M,F):-madre(T,F) and padre(R,T) and padre(M,R).
class predicates
hija:(string T, string R) nondeterm anyflow.
clauses
hija(T,R):-padre(R,T)and esposo(R,M)and mujer(T).
class predicates
hijo:(string T, string R) nondeterm anyflow.
clauses
hijo(T,R):-padre(R,T)and esposo(R,M)and hombre(T).
class predicates
tio:(string T, string M) nondeterm anyflow.
clauses
tio(T,E):-padre(M,R)and padre(R,T)and padre(R,L)and hermano(T,L)and (madre(L,E)or padre(L,E))and hombre(T).
class predicates
tia:(string K, string E) nondeterm anyflow.
clauses
tia(K,E):-padre(M,R)and padre(R,K)and padre(R,L)and hermana(K,L)and (madre(L,E)or padre(L,E))and not(madre(K,E)) and K><E.
class predicates
hermanopolitico:(string D,string F)nondeterm anyflow.
clauses
hermanopolitico(D,F):-padre(M,R) and padre(R,T) and esposa(T,C)and madre(T,D) and madre(T,F)and D><F.
clauses
padre("Domingo","Luis").
padre("Luis","Maria").
padre("Luis","Dolores").
padre("Luis","Silverio").
padre("Silverio","Maruja").
padre("Silverio","Veronica").
madre("Maria","Aracely").
madre("Maria","Kevin").
madre("Dolores","Freddy").
madre("Dolores","Marina").
esposo("Luis","Carmen").
esposa("Maria","Alcides").
mujer("Maria").
mujer("Dolores").
mujer("Aracely").
mujer("Marina").
mujer("veronica").
mujer("Maruja").
hombre("Domingo").
hombre("Luis").
hombre("Silverio").
hombre("Kevin").
hombre("Freddy").
clauses
run():-
console::init(),
primohermano(F,M),F><M,
writef(F),write("primo hermano de "),write(M),nl,fail.
run():-
console::init(),
hermana(T,K),T><K, write(T,"hermana",K),nl,fail.
run():-
padre(NombrePapa,NombreHijo),NombrePapa><NombreHijo,write(NombrePapa,"padre de", NombreHijo),nl,fail.
run():-
nieto(F,R),
writef(F),write("nieto de"),write(R),nl,fail.
run():-
bisabuelo(M,F),
writef(M),write("bisabuelo de"),write(F),nl,fail.
run():-
nieto(T,K),T><K,
writef(T),write("hermano de"),write(K),nl,fail.
run():-
hija(T,R),
writef(T),write("Hija de"),write(R),nl,fail.
run():-
hijo(T,R),
writef(T),write("hijo de"),write(R),nl,fail.
run():-
tio(T,E),
writef(T),write("tio de"),write(E),nl,fail.
run():-
tia(K,E),K><E,
writef(K),write("tia de"),write(E),nl,fail.
run():-
hermanopolitico(D,F),D><F,
writef(D),write("hermano politico de"),write(F),nl,fail.
run():-write("Fin del Programa").
end implement main
goal
mainExe::run(main::run).
...