Tema 2 - Sistemas Basados en Reglas PDF

Document Details

ComelySydneyOperaHouse8656

Uploaded by ComelySydneyOperaHouse8656

UCLM Albacete

Jose M. Puerta

Tags

sistemas basados en reglas sistemas expertos lógica de primer orden inteligencia artificial

Summary

This document provides an overview of rule-based systems (SBR) as an example of knowledge-based systems (KBS). It explains the structure of SBRs, including knowledge representation through rules, the inference engine, and methods for rule application, with emphasis on the structure of the rules and how they fit concepts in the knowledge base. The document is suitable for an undergraduate-level introduction to artificial intelligence.

Full Transcript

Se estudian los sistemas basados en reglas como un ejemplo de los sistemas basados en conocimiento, con la representación en reglas de producción Tema 2 Sistemas Basados en Reglas Jose M. Puerta Objetivos y contenidos del tema Objetivos Vamos a estudiar los SBR como ejemplo de un SBC....

Se estudian los sistemas basados en reglas como un ejemplo de los sistemas basados en conocimiento, con la representación en reglas de producción Tema 2 Sistemas Basados en Reglas Jose M. Puerta Objetivos y contenidos del tema Objetivos Vamos a estudiar los SBR como ejemplo de un SBC. dividido en: Veremos que entendemos por Base de Conocimiento: Hechos y Reglas Motor de inferencia: Encaje de reglas con hechos para el posterior disparo de la regla. Se verá cómo el encadenamiento en el disparo de reglas puede producirse hacia adelante y hacia atrás. Se estudiará el uso de variables y tests dentro de las reglas. en un momento determinado podremos ver que podemos disparar un montón de reglas y tendremos que seleccionar una de ellas. Finalmente, a la hora de disparar una regla podríamos encontrar “conflictos”, veremos cómo resolverlos. Formas eficientes de realizar la inferencia. Explicación del conocimiento. --> Los procesos de inferencia Contenidos Conocimiento - SBCs. Hechos y Reglas. Equiparación de Patrones. Resolución de conflictos Modelos de inferencia. Algoritmo RETE Explicación Sistemas Basados en Reglas Componentes En el tema anterior, se vió que un sistema basado en el conocimiento separa el motor de inferencia de la base de conocimientos. En el caso de los sistemas basados en reglas, la base estará a su vez formada por una base de reglas (donde incluiremos el conocimiento estructural del dominio) y una base de hechos (donde iremos colocando los hechos derivados y los hechos iniciales que se conocen sobre el problema). Para la construcción de esta base de conocimiento debemos extraer el conocimiento a partir de los expertos en el dominio de aplicación y modularlo en base a reglas de producción o traducirlo de alguna manera a las reglas de producción. Esa abstracción del conocimiento se realizará en base a entrevistas fundamentalmente con los expertos, pero también mediante un conjunto de herramientas auxiliares que facilitan de alguna manera la comunicación entre el experto y el ingeniero del conocimiento para construir el sistema final. Finalmente tendremos una interfaz de usuario para poder comunicar datos y conclusiones realizados por el sistema experto implementado. Estructura de los SBR Reglas: Establecerán las relaciones entre conceptos relativos al dominio en cuestión, es el Componentes conocimiento estructural del dominio de aplicación del sistema. Meta-Reglas/Meta-conocimiento: Serán reglas adicionales que de alguna manera nos van a guiar el proceso de razonamiento posterior realizado por el motor de inferencia. Estará compuesto por: Base de hechos o Tendremos almacenados tanto los hechos iniciales (los hechos que se conocen desde el principio del sistema) como los hechos y datos derivados de la ejecución del sistema. Además de activar también las activaciones de las posibles reglas de nuestro sistema, es decir aquellas reglas que estén dispuestas para poder dispararse. El motor de inferencia se dedica a ciclar hasta que no se pueda obtener más resultados y fundamentalmente lo que se hace en el ciclo es calcular las reglas que pueden dispararse, intentando encajar estas reglas con los hechos que tenga la memoria de trabajo/base de hechos, y una vez hecho eso pues se filtra este conjunto de reglas que se pueden disparar para elegir una de ellas para dispararla. Estructura de un SBR Base de Conocimiento Base de Hechos: Datos relevantes relativos al problema. Conocimiento declarado. Conocimiento del dominio del sistema: Forma de reglas de producción. en Estas reglas van a tener una sintaxis de producción: Antecedente —> Consecuente Si antecedente ENTONCES Consecuente Antecedente: conjunción de atributos de un mismo dominio. Sentencias lógicas, condiciones sobre objetos,… --> Corresponde a la parte declarativa de nuestro problema. Se van a tener las premisas de una regla, estas premisas de la regla principalmente van a corresponder a proposiciones de lógica de 1º Orden, y preferiblemente vamos a querer representarlas con un conjunto de conjunciones, es decir encadenadas esas premisas con el operador y (también se pueden dar con el operador OR pero Consecuente: atributos que pasarán a ser conocidos para el sistema. siempre es preferible mediante conjunciones). una vez que se dispara la regla y los consecuentes preferiblemente van a ser sencillos (van a ser una sola acción o muy pocas acciones). Corresponde al Añadir un hecho, Eliminar un hecho, Acciones/funciones. comportamiento imperativo de nuestro sistema. Para establecer una relación con los árboles de búsqueda que se vieron en inteligentes y las reglas, podemos establecer que los hechos corresponde a los estados. Mientras que las reglas son las operaciones sobre los estados para transformar un estado a otro conforme vamos derivando nuevos hechos o vamos quitando hechos de la memoria de trabajo. Hechos = Estados. Reglas = Operadores sobre estados. Base de Hechos Hechos en CLIPS --> API es un conjunto de herramientas para hacer sistemas basados en reglas Un hecho en CLIPS es una serie de elementos, una higuera o un patrón encerrado entre paréntesis (Juan tiene fiebre); Hecho ordenado (persona nombre “Juan” anyos 24 profesion informatico) Comando assert para incluir un hecho en la base de hechos. (assert (Juan tiene fiebre)) se introduce de forma ordenada a través de un Cada hecho introducido tiene un “contador” o índice creciente desde el más antiguo al más reciente Conjunto inicial de hechos en CLIPS Grupo de hechos iniciales: declaración con defacts (defacts hechos_iniciales (Juan tiene fiebre) (Juan tiene tos)) Estos hechos se insertar en ese orden al crear la base de hechos. Base de Reglas Reglas en CLIPS Parte derecha de la LHS y parte izquierda de la regla RHS, corresponden al antecedente y consecuente respectivamente. Para definir reglas en CLIPS se utiliza defrule ANTECEDENTE CONSECUENTE (defrule regla_fiebre (Juan fiebre) (Juan tos) => (assert (Juan gripe)) En caso de que se dispare la regla se añade el hecho en la base de hechos de que "Juan gripe" Elementos en el antecedente: Para poder permitir que esa regla se dispare, juan debe tener fiebre y tos Patrón (pattern) que especifica el hecho buscado en la base de hechos. Patrón y hecho deben encajar y puede verse como un predicado en lógica de primer orden. Constantes, Variables especificadas con ?nombre, comodines y listas. Test que especifica una expresión booleana que se evalúa a TRUE o FALSE. Equiparación de patrones Reglas en CLIPS La parte fundamental a la hora de utilizar un sistema basado en reglas es intentar encajar los hechos que tenemos en la base de hechos con las premisas de las reglas, para poder elegir que regla se va a poder disparar. (defrule regla1 (persona ?n anyos ?a profesion informatico) Faltaría el consecuente en este caso debido a que no nos importa mucho ahora mismo PREMISA Base de hechos: 1 (persona “Jose” anyos 34 profesion carpintero) En esa premisa lo que hacemos es que buscamos una persona con un determinado nombre n y con unos determinados años (nos da igual cuantos porque se recoge en una 2 (persona “Juan” anyos 28 profesion informatico) --> Esto es lo que tenemos en la variable a) con una profesión que debe ser informático. memoria de trabajo 3 (persona “Manuel” anyos 45 profesion periodista) 4 (persona “Victor” anyos 29 profesion informatico) (persona ?n anyos ?a profesion informatico) regla1[h2,?n=“Juan”,?a=28] --> Se denomina INSTANCIA DE LA REGLA 1 2 (persona “Juan” anyos 28 profesion informatico) (persona ?n anyos ?a profesion informatico) Sería otra instancia de la regla 1--> regla1[h4,?n=“Victor”,?a=29] Después de tener las dos instancias, 4 (persona “Victor” anyos 29 profesion informatico) tendríamos que la regla 1 tendría dos instanciaciones posibles y se puede disparar de dos maneras posibles Equiparación de patrones Reglas en CLIPS También podemos intentar refinar un poco más, como en este caso que queremos lo mismo que en el anterior pero con la restricción de que queremos a un (defrule regla1 (persona ?n anyos ?a profesion informatico) (test ( … informático que tenga menos de 28 años. Base de hechos: 1 (persona “Jose” anyos 34 profesion carpintero) 2 (persona “Juan” anyos 28 profesion informatico) 3 (persona “Manuel” anyos 45 profesion periodista) 4 (persona “Victor” anyos 29 profesion informatico) (persona ?n anyos ?a profesion informatico) En este caso, esta regla solo tendría una instanciación que coincidiría con el hecho 2 regla1[h2,?n=“Juan”,?a=28](test ?a … BH: ( (A C) (B D) (A B) (A A) (B A) ) H1 H2 H3 H4 H5 Equiparación: (A C) (A B) H1 encajaría con la primera premisa, entonces X pasaría a valer C. Por lo que para que se cumpla la segunda premisa debemos buscar un hecho que no sea (B,C) en la base de hechos. Como en este caso no se encuentra en la base de hechos, se dice que la regla 1 se cumpliría con el hecho 1. R1 [ H1; ?x=C ] Pero también se cumpliría con el hecho 3 que sería (A,B) --> R1 [H3, ?x=3] Equiparación de patrones Paso de Matching Debemos buscar que antecedentes encajan con que hechos en la base de hechos. Este paso es crítico para la eficiencia de los sistemas. Este paso no es tan sencillo pues debemos de realizar las ligaduras entre hechos y la variables que puedan aparecer en las premisas de las reglas y todavía se puede complicar más como veremos en CLIPS. PATÓN QUE QUEREMOS BUSCAR variable Todas las instanciaciones de todas las reglas que encajan con la Base de Hechos son aplicables en un ciclo. En cada ciclo como no se puede disparar todas esas reglas se debera Este conjunto es el conjunto conflicto. Y habrá que escoger solo una instanciación para ser aplicada/disparada en un ciclo. Equiparación de patrones Ejemplo TAREA: HACER EL RESTO DE EQUIPARACIONES Instanciaciones (defrule R1 (number 2) => … Regla # Match Hechos R1 1 f-1 (defrule R2 (number ?num) => … R2 1 f-1 ?num = 2 En la regla 3 y 4 se tiene que cumplir que el hecho contenga dos (defrule R3 (number ?n1) (number ?n2) => … R2 2 f-2 ?num = 5 números debido a que se trata de una R2 3 f-3 ?num = 9 conjunción (operador AND). Por lo tanto si buscamos en la base(defrule R4 (number ?n1) (number ?n1) => … de hechos podemos ver que ningún hecho lo cumple, por lo que al no estar en la base de hechos suponemos que son falsas. (defacts number (number 2) (number 5) (number 9) ) Base de Hechos: f-1(number 2) f-2(number 5) f-3(number 9)

Use Quizgecko on...
Browser
Browser