Sistemas Basados en Reglas SBRMotor de Inferencia Experto Módulo de Adquisición del Conocimiento Usuario Base Módulo de Base de de Explicación Conocimientos Datos (Reglas) (Hechos) Interface de Usuario Matilde Césari 1 Sistemas Basados en Reglas Matilde Césari 2 . atmósfera húmeda) que puede ser útil a la hora de deducir nuevo conocimiento Matilde Césari 3 .Inferencia en Sistemas de Reglas Observación R1: “ Si temperatura ambiente > 20ºC Y humedad relativa >65% Entonces es probable que haya tormentas” Misma conclusión con pérdida de información (hace calor. El Proceso de Razonamiento Parte de hechos para cumplir antecedentes y ejecutar consecuentes Parte de los estados meta y trata de cumplir los antecedentes necesarios para llegar a ellos Cuando usamos cada uno? Matilde Césari 4 . Control del razonamiento Factores que determinan la importancia del orden Contenido de la información • Las reglas más específicas y las que tratan con excepciones deben aplicarse antes que las generales Eficiencia Diálogo • El sistema no debe preguntar lo que puede deducir • El orden de las preguntas debe seguir una línea de razonamiento clara Añadir nuevas premisas para controlar las reglas a aplicar en cada punto de la inferencia Matilde Césari 5 . Reglas con variables •Aumenta la expresividad de las reglas •También la complejidad de su gestión •Facilita la modificación de reglas Matilde Césari 6 . Campos de Aplicación Matilde Césari 7 . !.!. utilizando lógica de predicados Reglas Hechos predicado(argum).pregunta1. animal('LEON') :. write('2. opcion C. clasificar1(_):-pregunta1. clasificar1(3):-assert(predicado(argum)). write('1.nl.nl. opcion A.nl.!.clase(mamifero) . pregunta :write(' Titulo con la conulta que hace SBR:').'). predicado(argum). … . clasificar1(1):-assert(predicado(argum)).nl. Hechos Nuevos hechos que se incorporan a la memoria de trabajo con el predicado assert Cabeza: predicado con un argumento. Matilde Césari 8 .GUIA PARA LA CONSTRUCCIÓN DE SBR Paso 1: Construya la base de conocimiento en Prolog. write('3. Por qué se hace esta pregunta?'). clasificar(N) . Quiere decir: Un animal es un tigre si es mamífero y carnívoro. clasificar1(2):-assert(predicado(argum)). clasificar1(4):-write(‘Explicacion sobre la pregunta').nl.nl. donde la cabeza es una propocicion y el cuerpo contiene los predicados que muestran el menu y leen la respuesta. predicado(argumentos) :. alimentacion(carnivoro) .predicado(argum).nl. opcion B. Paso2: Construya las preguntas en donde solicitará al usuario las características del animal que desea clasificar y donde se explique por qué se hace cada pregunta: Preguntas Una clçausula por cada pregunta.nl. write('4.').!. que es el numero de pregunta y en el cuerpo ingreso el hecho a la Base Conocimiento.'). read(N).!. write(M).nl.nl.clase(X). clasificar:animal(M).!.GUIA PARA LA CONSTRUCCIÓN DE SBR Paso 3: Defina un predicado que determine la clasificación de acuerdo con las respuestas del usuario y explique la razón por la cual se llegó a esa conclusión: Una clçausula donde la cabeza es una propocicion y el cuerpo contiene los predicados que muestran la respuesta e inician el proceso de resolucion.nl. alimentacion(Y). clasificar.nl.write(Y). write('porque es el único animal que cumple la condición de ser '). Matilde Césari 9 .write(' y '). write(' '). pregunta2. write(X). write('El animal puede ser : '). Paso 4: Defina el predicado que permita ejecutar todo el programa: Una clçausula donde la cabeza es una propocicion y el cuerpo contiene los predicados que permiten consultar las preguntas para generar los hechos y clasificar empezar:pregunta1. write('.nl.write(Y). 2.nl.. retract(alimentacion(_)).nl..write(' y ')...... continue('S'):-empezar. Defina un predicado que permita continuar si el usuario responde adecuadamente: continue('s'):-empezar. Matilde Césari 10 .. alimentacion(Y). read(X).!. 4 Redefina el predicado consultar para que responda la clasificación y pregunte al usuario si desea continuar: clasificar:animal(M)...nl.Limpie todas las acciones del predicado assert limpiar:-retract(clase(_)). pregunta:-nl. Defina el predicado que pregunte al usuario si desea continuar. write(X).!.'). continue('n'):-continue('N').nl. write(' '). write('porque es …'). limpiar.. pregunta.write(M).GUIA PARA LA CONSTRUCCIÓN DE SBR Ahora.HASTA PRONTO.nl. qué hacer si usted quiere proveer al usuario la posibilidad de hacer otra consulta: 1. write('Desea continuar s/n : ')....!.. continue(X).. write('El animal puede ser : ').. continue('N'):-write(' NOS AGRADÓ AYUDARTE ').clase(X)...... 3.
Report "Filminas Sistemas Basados en Reglas Logicas"