practica+prolog4

Upload: shabedekam

Post on 31-May-2018

215 views

Category:

Documents


0 download

TRANSCRIPT

  • 8/14/2019 Practica+Prolog4

    1/7

    UNIVERSIDAD NACIONAL DEL ALTIPLANO - PUNO

    PRACTICA DIRIGIDA 12; ASIGNATURA: Taller de Inteligencia ArtificialESCUELA PROFESIONAL: Ingeniera de Sistemas, Semestre Vacacional 2006

    Apellidos/Nombres/Cdigo:_________________________________________________________________

    TEMA: Sistema Experto, Bsqueda del Conocimiento

    En esta practicas se mostrara como encontrar el conocimiento en base a reglas de deduccin, que traer comoconsecuencia que la computadora logre generar conocimiento, en base a reglas propuestas.

    PARTE 1: Entendiendo el Problema.CASO: Un alumno de Informtica, debido al nerviosismo del primer da de clase, ha anotado el nombre de susprofesores (Mara, Jess y Faran ), las asignaturas que se imparten ( Lgica, Programacin y Matemticas ) y elda de la semana de las distintas clases ( lunes, mircoles y jueves ), pero slo recuerda que:- La clase de Programacin, impartida por Mara, es posterior a la de Lgica- A Faran no le gusta trabajar los lunes, da en el que no se imparte Lgica Seras capaz de ayudarle a relacionar cada profesor con su asignatura, as como el da de la semana que se

    imparte ?( Sabemos que cada profesor imparte una nica asignatura y que las clases se dan en das diferentes)Caso: Departamento de Ciencia de la Computacin e Inteligencia Artificial, Universidad de Alicante : M. JessCastel Faran Llorns

    RESOLUCIN: Tomando en cuenta una propuesta de solucin se empiezan a considerar soluciones paso a pasohasta llegar a la solucin esperada, para esto tendr que aplicar todo el conocimiento que hasta ahora a logrado.Primero entendiendo el problema se tiene ideas diferentes: nombre del profesor, asignatura, da; adems existenrelaciones entre estos considerando tres relaciones:

    Relacin 1: r1 nombre con asignaturaRelacin 2: r2 nombre con daRelacin 3: r3 asignatura con da

    As que se propone (copiar):

    Domainsnombre,asignatura,dia_e =symbolPredicates

    prof(nombre)asig(asignatura)dia(dia_e)r1(nombre,asignatura)r2(nombre,dia_e)r3(asignatura,dia_e)

    Clauses/*---- BASE DE CONOCIMIENTOS ----*//*- PROPIEDADES -*//* prof(Profesor)

  • 8/14/2019 Practica+Prolog4

    2/7

    /*- RELACIONES -*//* r1(Profesor,Asignatura)

  • 8/14/2019 Practica+Prolog4

    3/7

    PARTE 3: Mejorando las relaciones.Como se ha visto las relaciones no llegan a satisfacer los resultados esperados, entonces hay que mejorar lasrelaciones especificadas en las clusulas.

    Anlisis de la Relacin 1:Como se ah visto las relaciones:

    r1("maria","programacion").r1(Profesor,Asignatura):-prof(Profesor),Profesor"maria",asig(Asignatura).No cumplen con el objetivo buscado, tienen dos relaciones por dems

    N=jesus, A=programacionN=faraon, A=programacion

    Son por dems por que Maria ensea programacin y ni Jess ni faran podran ensear estas asignaturasr1("maria","programacion"). %Maria ensea programacinAnlisis de Lo que sucedeN=maria, A=programacin

    Dnde esta el problema?r1(Profesor,Asignatura):-prof(Profesor),Profesor"maria",asig(Asignatura).

    Anlisis de Lo que sucede Resulto final logrado(combinacin final): prof(Profesor) ,Profesor"maria" asig(Asignatura) prof(Profesor),Profesor"maria",asig(Asignatura).

    N=Jess,N=faraon,

    A= programacionA=logicaA=matemticas(no deberaexistirprogramacin)

    N=jesus, A=logica N=jesus, A=programacin (error)N=jesus, A=matematicasN=faraon, A=logicaN=faraon, A=programacin (error)N=faraon, A=matemticas

    Cmo eliminar la condicional?El curso que ensea Mara no debera aparecer en las asignaturas, por lo que utilizando la bsqueda(Recursiva):

    r1("maria",AsignaturaM),=> AsignaturaM=Programacion lo que hace que AsignaturaMAsignatura =>Programacion ProgramacionAnlisis de Lo que sucede Resulto final logrado(combinacin final):prof(Profesor),Profesor"maria"

    asig(Asignatura)r1("maria",AsignaturaM),AsignaturaMAsignatura

    prof(Profesor),Profesor"maria",asig(Asignatura).

    N=Jess,N=faraon,

    A=logicaA=matemticas

    N=jesus, A=logicaN=jesus, A=matematicasN=faraon, A=logicaN=faraon, A=matemticas

    Segn la nueva solucin:La nueva relacin ser: (Copie abajo): Resultado Esperado Goal r1(N,A). :r1("maria","programacion").

    r1(Profesor,Asignatura) :-

    prof(Profesor),

    Profesor"maria",asig(Asignatura),

    r1("maria",AsignaturaM),AsignaturaMAsignatura.

    N=maria, A=programacionN=jesus, A=logicaN=jesus, A=matematicasN=faraon, A=logicaN=faraon, A=matematicas

    5 SolutionsAnlisis de la Relacin 2:La segunda relacin no presenta problemas devuelve el resultado esperado

    r2("faraon",Dia) :- dia(Dia), Dia"lunes".

    Anlisis de Lo que sucedeN=faraon, D=mircoles N=faraon, D=jueves (faran solo puede ensear mircoles y jueves)r2(Profesor,Dia) :- prof(Profesor), Profesor"faraon",dia(Dia).

    Anlisis de Lo que sucede Resulto final logrado(combinacin final): prof(Profesor), Profesor"faraon" dia(Dia). prof(Profesor),Profesor"maria",asig(Asignatura).N=___________N=___________

    D=_________D=__________

    D=__________

    N=maria, D=lunesN=maria, D=miercoles

    N=maria, D=jueves (Mara ensea cualquier da)N=jesus, D=lunesN=jesus, D=miercoles N=jesus, D=jueves (Jesus ensea cualquier da)

  • 8/14/2019 Practica+Prolog4

    4/7

    Anlisis de la Relacin 3:Como se ah visto las relaciones:

    r3("logica",Dia) :- dia(Dia), Dia"lunes", Dia"jueves".r3("programacion",Dia) :- dia(Dia), Dia"lunes". %Programacin no es el lunesr3(Asignatura,Dia) :- asig(Asignatura), Asignatura"logica",Asignatura"programacion", dia(Dia).

    No cumplen con el objetivo buscado, tienen varias relaciones por dems

    A=programacion, D=mircoles (error) Lgica se supone que es el mircolesA=matematicas, D=mircoles (error) Lgica se supone que es el mircolesA=matematicas, D=jueves (error) Programacin es despus de lgica sea el jueves

    Entonces analicemos las clusulas una a una:1) r3("logica",Dia) :- dia(Dia), Dia"lunes", Dia"jueves".

    Anlisis de Lo que sucedeA=logica, D=mircoles

    2) r3("programacion",Dia) :- dia(Dia), Dia"lunes". %Programacin es despus de lgicaAnlisis de Lo que sucedeA=programacion, D=mircoles (error)No puede ser por que ya es ocupado con lgicaA=programacion, D=jueves

    Cmo eliminar el problema?El da mircoles que es el da de lgica no debera aparecer como alternativa por lo que se debe agregar a lasegunda clusula: ......,r3("logica",DiaL),DiaLDia. Eso encuentra el da que esta se lleva acabo el curso lgica (r3("logica",DiaL)) y lo inhabilita para su uso (DiaLDia), en consecuencia solo quedaracomo alternativa valida el jueves para programacin .

    3) r3(Asignatura,Dia) :- asig(Asignatura), Asignatura"logica",Asignatura"programacion", dia(Dia).Anlisis de Lo que sucede Resulto final logrado(combinacin final):asig(Asignatura),Asignatura"logica",Asignatura"programacion",

    dia(Dia). asig(Asignatura), Asignatura"logica",Asignatura"programacion", dia(Dia).

    A=m_____________ D=lunesD=________________D=jueves

    A=matematicas, D=lunesA=matematicas, D=mircoles (error)A=matematicas, D=jueves (error)6 Solutions

    Cmo eliminar el problema?Se presupone que las clusulas anteriores han resuelto las asignaturas lgica y programacin y el da en que sedesarrollan por lo que hay que identificar que da suceden y eliminarlos de la posibilidad de matemticas :

    r3("programacion",DiaP), r3("logica",DiaL), DiaPDia,DiaLDia. % agregar a la clusulaAnlisis de Lo que sucedeasig(Asignatura),Asignatura"logica",Asignatura"programacion",

    r3("programacion",DiaP),r3("logica",DiaL),

    dia(Dia) dia(Dia),DiaPDia,DiaLDia,

    Resulto final logrado(combinacin final):

    A=ma_____________ DiaP=D=_________

    DiaL=D=_________

    D=____________

    D=____________D=____________

    D=___________ A=matematicas, D=lunes

    Segn la nueva solucin:La nueva relacin r3 ser: (Copie abajo los resultados) Resultado Esperado: Goal r3(A,D).(copie abajo):r3("logica",Dia):-

    dia(Dia),Dia"lunes",Diajueves".

    r3

    r3 3 Solutions

    Ejecucin de las RelacionesHasta ahora se ha verificado la valides de las tres y las posibilidades que ofrece, es necesario ver el resultadofinal de la combinacin final de las tres reglas para esto ejecute:

    Goal r1(N,A),r2(N,D),r3(A,D).

  • 8/14/2019 Practica+Prolog4

    5/7

    Complete el cuadro siguiente:Resultado de la Ejecucin(Copie abajo): Como debera ser las relaciones:

    4 Solutions

    N=maria, A=programacion, D=juevesN=jesus, A=matematicas, D=lunesN=faraon, A=logica, D=mircoles3 Solutions

    Este es el resultado a encontrar pero que todava no sellega conocer

    PARTE 4: Reflexionando sobre el resultado finalEl resultado hallado es el resultado final, ya que no se cuenta con mas datos para resolverlo, hasta ahora secuenta con cuatro soluciones factibles, en el que Jess aparece con la posibilidad de dictar dos das en dos cursosdiferentes pero los otros dos profesionales ya tienen su da y su curso asignado, por lo que la alternativa nicaque quedara para Jess es nica: matemticas y el da es el lunes, pero esa deduccin la hace mentalmente,como hacer que la deduccin la haga el computador.La solucin parte por definir una nueva regla que distinga el trabajo pero como hacerlo, se har en base a lamodificacin de r2 ya que es la que menos conclusiones llega y sus resultados son amplios; por ende se planteauna nueva relacin r2m (r2 modificado) .

    Para definir r2m, se conoce que faran no ensea el lunes y se supone que Maria dicta un da despus de lgica,es de suponer (ojo suponer) que faran dicte el da mircoles.r2m("faraon","miercoles").

    Anlisis de Lo que sucedeN=faraon, D=mircoles

    Ahora es necesario completarr2m(Profesor,Dia) :- _________________________________________________________________

    Anlisis de Lo que sucede (complete todos los cuadros) Resulto final logrado(combinacin final): ____________________________ dia(Dia). ______________________________________

    _____________________________________N=___________N=___________

    D=_________D=__________

    N=maria, D=lunesN=maria, D=juevesN=jesus, D=lunesN=jesus, D=jueves

    Segn la nueva solucin:La nueva relacin r3 ser: (Copie abajo los resultados) Resultado Esperado: Goal r2m(N,D).(opie abajo):

    Ejecucin de las RelacionesHasta ahora utilizando las cuatro relaciones:

    Goal r1(N,A),r2(N,D),r3(A,D).

    Complete el cuadro siguiente:Resultado de la Ejecucin(Copie abajo): Como debera ser las relaciones:

    3 Solutions

    N=maria, A=programacion, D=juevesN=jesus, A=matematicas, D=lunesN=faraon, A=logica, D=mircoles3 Solutions

    Se supone haber llegado al resultado esperado

    Consulta:En que tiempo promedio logro entender el problema y resolverlo?:__________horas___________minutos.

    No se moleste Siga adelante.

  • 8/14/2019 Practica+Prolog4

    6/7

    TRABAJO APLICATIVO: PRACTICA NRO 12:

    1. Presente en impreso o en un disquete el desarrollo de la practica 12.

    2. Liste los programas que realizo en la practica Nro 12

  • 8/14/2019 Practica+Prolog4

    7/7

    REFERENCIA TEORICA: DE LA PRACTICA 12:

    1. RECOPILACIN DE REFERENCIAS TERICA :1. Ayuda de Visual Prolog 5.02. Lgica de primer orden, lgica computacional y ampliacin de lgica, trabajo con SWI Prolog, Internet.3. Tutorial bsico de programacin en Prolog, Autor: Angel Fernndez Pineda

    4. Documentos de Internet diversos autores