ClubEnsayos.com - Ensayos de Calidad, Tareas y Monografias
Buscar

Inteligencia Artificial. Programa en Prolog

Peter A. BazurtoApuntes2 de Febrero de 2017

922 Palabras (4 Páginas)190 Visitas

Página 1 de 4

[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).

...

Descargar como (para miembros actualizados) txt (6 Kb) pdf (517 Kb) docx (394 Kb)
Leer 3 páginas más »
Disponible sólo en Clubensayos.com