guiame2 prolog

Upload: shabedekam

Post on 31-May-2018

215 views

Category:

Documents


0 download

TRANSCRIPT

  • 8/14/2019 guiame2 prolog

    1/6

    Universidad Nacional del Altiplano PunoEscuela Profesional de Ingeniera de Sistemas

    CURSO: INTELIGENCIA ARTIFICIAL

    GUA ACADMICA Nro. 2

    TEMA: PREDICADOS

    Apellidos y Nombres: Nro. Matrcula: .OBJETIVOS:

    Conocer la forma de declarar y utilizar los predicados

    REQUERIMIENTOS:

    Pc con Visual Prolog

    PROCEDIMIENTO

    PARTE 1: Bsquedas: Entendiendo las Variables y Predicados.

    La practica le permitir proponer un sistema experto que deduzca quien escuado de quien en una familia en base a una serie de conocimientospropuestos, 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 bsicos para

    el ingreso de la base de conocimientosCLAUSES

    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 setendr que aplicar GOAL en la ltima lnea de cdigo (que falta) modificndolacada vez y haciendo correr la consulta con el botn G.

    Casos: Indicar cual es la respuesta de la consulta:

    Quien es hijo Dan:GOAL hijo(X, "Dan").

    Respuesta:

    1

  • 8/14/2019 guiame2 prolog

    2/6

    Universidad Nacional del Altiplano PunoEscuela Profesional de Ingeniera de Sistemas

    CURSO: INTELIGENCIA ARTIFICIAL

    2

  • 8/14/2019 guiame2 prolog

    3/6

    Universidad Nacional del Altiplano PunoEscuela Profesional de Ingeniera de Sistemas

    CURSO: INTELIGENCIA ARTIFICIAL

    Todos los hijos.GOAL hijo(X,Y).

    Respuesta:

    Hermanas de SueGOAL

    Respuesta:

    Hermanas de SusanaGOAL

    Respuesta:

    Hermanos de Larry

    GOALRespuesta:

    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 cuado de quien en base a lasclusulas definidas anteriormente, para esto antes de GOAL ubique elsiguiente 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 bsquedasnecesarias en caso estas sean encontradas se cumplan una tras otra en serverdaderas son asignadas a cuado y se ven como respuestas.

    3

  • 8/14/2019 guiame2 prolog

    4/6

    Universidad Nacional del Altiplano PunoEscuela Profesional de Ingeniera de Sistemas

    CURSO: INTELIGENCIA ARTIFICIAL

    Consultas:

    De quien es el cuado(a) de Juan:GOAL cunado("Juan", Z)

    Respuesta:

    Quien es el cuado de Maria:GOAL

    Respuesta:

    Todos los cuados:GOAL

    Respuesta:

    PARTE 2: Mejorando la aplicacin trabajando con nuevos predicadosSe 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 cruzadosabuelo(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 comn ya que no se distingue entre estos,existen dos predicados diferentes hermana y hermano, es mas esta no es unarelacin de arriba abajo si no del miso nivel por ejemplo si se consulta:

    GOAL hermana("Susana",X).

    La respuesta es: Sin Solucin, pero: hermana("Maria","Susana").

    La solucin parte por incluir un nuevo predicado (incluirlo al final antes deGOAL):

    4

  • 8/14/2019 guiame2 prolog

    5/6

    Universidad Nacional del Altiplano PunoEscuela Profesional de Ingeniera de Sistemas

    CURSO: INTELIGENCIA ARTIFICIAL

    PREDICATES

    hermanos(persona,persona)

    CLAUSES

    hermanos(A,B):-hermano(A,B). %una clusula hermano corresponde a

    hermanoshermanos(A,B):-hermano(B,A). %un hermano puede referirse en forma

    inversa definindose as en hermanoshermanos(A,B):-hermana(A,B). %una clusula hermana corresponde a

    hermanoshermanos(A,B):-hermana(B,A). %una hermana puede referirse en forma

    inversa definindose as en hermanoshermanos("Popo","Ququ"). %Puede definirse nuevas clusulashermanos("Maria", "Pedro").

    Referencia: Ntese que un predicado no es solamente una definicin si no que sepuede sobrecargar, osea redefinirla varias veces.

    Consultas:

    Todos los hermanos existentes:GOAL

    Respuesta:

    CONCLUSIONES

    RECOMENDACIONES

    5

  • 8/14/2019 guiame2 prolog

    6/6

    Universidad Nacional del Altiplano PunoEscuela Profesional de Ingeniera 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").

    6