Está en la página 1de 6

Universidad Nacional del Altiplano – Puno

Escuela Profesional de Ingeniería de Sistemas


CURSO: INTELIGENCIA ARTIFICIAL

GUÍA ACADÉMICA Nro. 2

TEMA: PREDICADOS

Apellidos y Nombres: ……………………………………… Nro. Matrícula: ….………

OBJETIVOS:

◊ Conocer la forma de declarar y utilizar los predicados

REQUERIMIENTOS:

◊ Pc con Visual Prolog

PROCEDIMIENTO

PARTE 1: Búsquedas: Entendiendo las Variables y Predicados.

La practica le permitirá proponer un sistema experto que deduzca quien es


cuñado de quien en una familia en base a una serie de conocimientos
propuestos, para esto se ira paso a paso.

Crear un Documento en Visual Prolog y copiar :

DOMAINS
persona= symbol
PREDICATES
hijo(persona,persona)
hermana(persona,persona)
hermano(persona,persona)
casado(persona,persona) % Se consideran los 4 predicados básicos para
el ingreso de la base de conocimientos
CLAUSES
hijo("Dan", "Juan").
hijo("Pedro", "Dan").
hijo("Ivan", "Dan").
hermana("Maria","Susana").
hermano("Harold", "Larry").
hermano("Ivan", "Simon").
casado("Juan", "Maria").
casado("Larry", "Sue").

Ahora se pretende buscar en la base de conocimiento ingresada, para esto se


tendrá que aplicar GOAL en la ùltima línea de código (que falta) modificándola
cada vez y haciendo correr la consulta con el botón G.

Casos: Indicar cual es la respuesta de la consulta:

Quien es hijo “Dan”:


GOAL hijo(X, "Dan").
Respuesta:

1
Universidad Nacional del Altiplano – Puno
Escuela Profesional de Ingeniería de Sistemas
CURSO: INTELIGENCIA ARTIFICIAL

2
Universidad Nacional del Altiplano – Puno
Escuela Profesional de Ingeniería de Sistemas
CURSO: INTELIGENCIA ARTIFICIAL

Todos los hijos.


GOAL hijo(X,Y).
Respuesta:

Hermanas de “Sue”
GOAL
Respuesta:

Hermanas de “Susana”
GOAL
Respuesta:

Hermanos de “Larry”
GOAL
Respuesta:

Todos los casados:


GOAL
Respuesta:

Todos los hijos de Dan:


GOAL
Respuesta:

PARTE 2: Mejorando los Predicados: Usando :- , ;

La idea de esta parte es encontrar quien es cuñado de quien en base a las


cláusulas definidas anteriormente, para esto antes de GOAL ubique el
siguiente predicado (No interesa que exista doble PREDICATES Y CLAUSES)

PREDICATES
cunado(persona,persona)
CLAUSES
cunado(A,B):-casado(A,C), hermana(C,B).
cunado(A,B):-hermano(A,C), casado(C,B).

Referencia: Las variables A, B y C permiten desarrollar las búsquedas


necesarias en caso estas sean encontradas se cumplan una tras otra en ser
verdaderas son asignadas a cuñado y se ven como respuestas.

3
Universidad Nacional del Altiplano – Puno
Escuela Profesional de Ingeniería de Sistemas
CURSO: INTELIGENCIA ARTIFICIAL

Consultas:

De quien es el cuñado(a) de Juan:


GOAL cunado("Juan", Z)
Respuesta:

Quien es el cuñado de Maria:


GOAL
Respuesta:

Todos los cuñados:


GOAL
Respuesta:

PARTE 2: Mejorando la aplicación trabajando con nuevos predicados


Se desea conocer en base a los conocimientos definidos:

PREDICATES
padre(persona,persona)
abuelo(persona,persona)
CLAUSES
padre(A,B):-hijo(B,A). % no toma en cuenta los hermanos cruzados
abuelo(A,B):-padre(A,C), padre(C,B).

Consultas:

Todos los padres:


GOAL
Respuesta:

Todos los abuelos:


GOAL
Respuesta:

Se desea conocer los hermanos en común ya que no se distingue entre estos,


existen dos predicados diferentes hermana y hermano, es mas esta no es una
relación de arriba abajo si no del miso nivel por ejemplo si se consulta:

GOAL hermana("Susana",X).

La respuesta es: Sin Solución, pero: hermana("Maria","Susana").

La solución parte por incluir un nuevo predicado (incluirlo al final antes de


GOAL):

4
Universidad Nacional del Altiplano – Puno
Escuela Profesional de Ingeniería de Sistemas
CURSO: INTELIGENCIA ARTIFICIAL

PREDICATES
hermanos(persona,persona)
CLAUSES
hermanos(A,B):-hermano(A,B). %una cláusula hermano corresponde a
hermanos
hermanos(A,B):-hermano(B,A). %un hermano puede referirse en forma
inversa definiéndose así en hermanos
hermanos(A,B):-hermana(A,B). %una cláusula hermana corresponde a
hermanos
hermanos(A,B):-hermana(B,A). %una hermana puede referirse en forma
inversa definiéndose así en hermanos
hermanos("Popo","Ququ"). %Puede definirse nuevas cláusulas
hermanos("Maria", "Pedro").

Referencia: Nótese que un predicado no es solamente una definición si no que se


puede sobrecargar, osea redefinirla varias veces.

Consultas:

Todos los hermanos existentes:


GOAL
Respuesta:

CONCLUSIONES

RECOMENDACIONES

5
Universidad Nacional del Altiplano – Puno
Escuela Profesional de Ingeniería de Sistemas
CURSO: INTELIGENCIA ARTIFICIAL

TRABAJO APLICATIVO
1. Sobrecargue el predicado hermanos, para encontrar a los hermanos que
tengan el mismo padre, utilizando el predicado hijo:
Ejemplo: Pedro e Ivan son hermanos por que tienen el mismo padre.
hijo("Pedro", "Dan").
hijo("Ivan", "Dan").

2. Sobrecargue el predicado padre, para encontrar a los hijos de un padre que


son los hermanos de sus hijos, utilizando el predicado hijo y hermano.
Ejemplo: Si Ivan es hijo de Dan e Ivan es hermano de Simon, entonces Simon
es hijo de Dan.
hijo("Ivan", "Dan").
hermano("Ivan", "Simon").