IPERC Y ATS - SEGURIDAD INDUSTRIAL PARA TODA EMPRESA
Sistemas de razonamiento logico
1. UNIDAD 3.- SISTEMAS DE RAZONAMIENTO LOGICO
Tendencia en IA (70's): (i) aplicaciones reales (ii) incorporar grandes cantidades de
conocimiento vs. Sistemas genéricos (e.g., GPS)
MYCIN: diagnóstica y recomienda terapia de infecciones bacteriológicas de la sangre.
Requerimientos:
Útil (un área de necesidad reconocida)
Capacidad de considerar una gran cantidad de conocimiento técnico cambiante
(reglas)
Diálogo interactivo (simbólico)
Otros puntos:
velocidad
accesibilidad y facilidad de uso
con énfasis como herramienta de soporte
En el dominio se tienen que tomar decisiones con información incompleta
Alrededor de 200 reglas, 24 funciones y 80 atributos
Cada regla es un pedazo de conocimiento modular y dice explícitamente en sus condiciones
el contexto necesario
Características Principales:
Se usan sólo conjunciones en las condiciones de las reglas
Cada regla puede tener más de una conclusión (acción)
Su mecanismo de inferencia es encadenamiento hacia atrás, con búsqueda depth-
first en un árbol AND/OR
Se consideran todas las reglas que pueden aplicarse
Maneja factores de certeza (o certidumbre). Su regla de combinación es: mínimo en
las condiciones AND y máximo entre opciones (reglas) OR
Factores en rango se deshechan
Guiado por metas generalizadas:trata de encontrar toda la información relacionada
con la meta
Si no puede deducir la información le pregunta al usuario
Se etiquetan algunas condiciones como preguntables (LABDATA) para evitar tratar
de inferirlas cuando es muy probable que el usuario las conozca.
Intenta primero aplicar reglas con valores conocidos (unity path)
2. Mantiene lo que va evaluando para evitar tratar de re-evaluar
Se hace una pre-evaluación en las condiciones de las reglas para eliminar las que
sean inmediatamente falsas (preview).
La pre-evaluación involucra ``plantillas'' templates
Tiene ciertas reglas de ``sentido común'' para evitar un proceso largo usando un
encadenamiento hacia adelante.
Usa meta-reglas para ordenar/guiar el proceso deductivo
Uso de contextos: paciente, infección, cultivo y organismo, y propiedades ``básicas''
(a evaluar/preguntar) para guiar el mecanismo de razonamiento
Suposiciones:
Se tiene un formato pre-establecido por lo que es difícil expresar todo el
conocimiento en él.
Se asume que el conocimiento puede describirse en forma de reglas, las reglas y
cómo se usan son suficientes para dar explicaciones, los expertos pueden reconocer
su experiencia en las reglas, las reglas son suficientemente sencillas, expresivas e
intuitivas
Sólo un número reducido de condiciones (6) se consideran por cada regla y cada
condición es independiente de las otras
No se requieren muchas reglas de encadenamiento hacia adelante
El mecanismo de explicación es adecuado
Los expertos pueden expresar su conocimiento en forma de reglas
El mecanismo de razonamiento modus ponen es adecuado
El vocabulario empleado es adecuado
Evaluación de Reglas como Representación de Conocimiento
Desempeño: depende de la cantidad y profundidad de su conocimiento
La modularidad de las reglas es fundamental para un buen desempeño (entre otros
para añadir nuevas reglas, detectar inconsistencias, reglas subsumidas por otras,
etc)
La modularidad implica que toda la información contextual debe de estar incluida
en la regla y ninguna regla llama directamente a otra. Esto puede provocar reglas
demasiado grandes.
En encadenamiento hacia atrás no es fácil mapear un conjunto de pruebas a las
metas (pensar ``al revés'')
El formalismo sólo permite pruebas de predicados (i.e., no puede tener: para todo
organismo... esto lo tienen ``parchado'' en algunas meta-reglas pero les complica el
sistema de explicación)
3. Explicación: debe de ser ``natural'' y transparente para los expertos (razones de usar
proceso simbólico y reglas).
Capacidades: (i) mostrar en cualquier momento la regla considerada (ii) almacenar
las reglas utilizadas para propósitos de explicación (iii) encontrar reglas específicas
para contestar algún tipo de pregunta
Extensiones: (i) preguntar por qué no tomo ciertas acciones (ii) combinar la
explicacióncon ``medidas de información'' para dar explicaciones adiferente detalle
Aseveración: el nivel de detalle de conocimiento es adecuado porque lo dieron los
expertos
Adquisición: es fácil de formalizar en forma de reglas el dominio médico
Las explicaciones permiten encontrar fallas en la base de conocimiento y facilitan su
modificación
La adquisición se puede hacer en lenguaje natural porque el lenguaje considerado
es suficientemente restringido
La adquisición debe de estar libre de contradicciones, redundancias y subsunciones.
Problemas con contradicciones indirectas, efectos secundarios (i.e., actualizaciónde
información relacionada)
Algunas limitaciones:
algunos conceptos no son fáciles de expresar en forma de reglas
el razonamiento hacia atrás no parece ser adecuado para estructurar grandes
cantidades de conocimiento
La sintaxis de las reglas asume sólo conjunciones de pruebas proposicionales
La información se introduce sólo al responder preguntas
Las suposiciones sobre las cuales se basa el manejo de los factores de certeza son
muy restrictivas
3.1.- REGLAS DE PRODUCCION
Regla se entiende como una proposición lógica que relaciona 2 o más objetos e
incluye 2 partes, la premisa y la conclusión. Cada una de estas partes consiste en una
expresión lógica con una o más afirmaciones objeto-valor conectadas mediante los
operadores lógicos y, o ó no.
Reglas de producción. Es un método procedimental de representación del
conocimiento, pone énfasis en representar y soportar las relaciones inferenciales del
algoritmo, en contraposición a los métodos declarativos (hechos).
4. La estructura de una regla es:
SI <antecedentes>: contiene las cláusulas que deben cumplirse para que la regla
pueda evaluarse o ejecutarse.
ENTONCES <consecuentes>: indica las conclusiones que se deducen de las premisas
o las acciones que el sistema debe realizar cuando ejecuta la regla.
Los antecedentes son las condiciones y los consecuentes las conclusiones, acciones o
hipótesis. Cada regla por si misma constituye un gránulo completo de conocimiento.
La inferencia en los Sistemas Basados en Reglas se realiza mediante emparejamiento. Hay
dos tipos, según el sentido:
Sistemas de encadenamiento hacia adelante: una regla es activada si los
antecedentes emparejan con algunos hechos del sistema.
Sistemas de encadenamiento hacia atrás: una regla es activada si los consecuentes
emparejan con algunos hechos del sistema.
Arquitectura de los Sistemas Basados en Reglas:
Base de Conocimientos: reúne todo el conocimiento del sistema (Hechos + Reglas).
Memoria Activa: contiene los hechos que representan el estado actualdel problema
(iniciales + inferidos a posteriori) y las reglas activadas (en condiciones de ser
ejecutadas).
Motor de Inferencias: decide que reglas activadas se ejecutarán.
Hay muchas formas de representar el conocimiento en un sistema experto. El método
más utilizado son las reglas de producción.
Una regla de producción toma la siguiente forma general:
SI <son ciertos determinados hechos>
ENTONCES <se consideran ciertos otros hechos>
Estas reglas residen en la base de conocimientos, en una especie de fichero de texto. El
programa de inferencia, verdadero motor del sistemaexperto seencargade combinar estas
reglas, interactuando con el usuario a través del interfaz del usuario.
Reglas de producción
5. A menudo, es conveniente representar lanaturaleza dinámica de una aplicaciónde la IA por
un conjunto de reglas hechas de condiciones y acciones. Las reglas de producción son un
tipo de regla "Si...entonces...", basadaen condiciones y acciones.Una de las reglas que hace
que las acciones de la regla a ejecutar den lugar a nuestras descripciones producen más
acciones (de aquí el nombre de "reglas de producción"), así hasta que el sistema encuentre
la solución o se detenga.
Un sistema consistente en un conjunto de reglas de producción, son los operadores en el
sistema, es decir, las que se usan para manipular las bases de datos. Los lenguajes de estos
sistemas de producción, tales como OPS5, facilitan la representación del conocimiento en
reglas de producción. Cadauna de estas reglas está embebida en una pieza de conocimiento
que puede serañadida o quitada del sistemasegúnlas necesidades.La parte "SI..." y la parte
"entonces..." pueden estar compuestas de más de una frase por ejemplo, "Si es diciembre
y estás en elnorte del circulo antártico, entonces necesitas un buen abrigo... y...una linterna
día y noche".
El formato "Si... Entonces..." de las reglas de producción hace relativamente fácil codificar
los sistemas expertos del conocimiento, pero frecuentemente pensamos sobre la
experiencia de una manera: "Si... Entonces...".
Las reglas de producción en sistemas expertos escritas en el OPS5 no necesitan acogerse a
un orden particular porque el control de flujo en un programa no está determinado por el
orden en el que el programador ha codificado las reglas. En lugar de eso las reglas son
candidatas a actuar cuando los elementos "Si..." son satisfactorios por el estado actual del
sistema, que continuamente cambia al ir actuando las reglas. Explícitamente las estructuras
de control en algunos programas pueden también limitar la aplicabilidad de alguna regla en
algún momento. La capacidad para añadir o quitar reglas de producción en algún punto del
sistema sin considerarlas por orden ayuda a desarrollar el trabajo más fácilmente.
3.1 Sintaxis de las reglas de producción.
- A1 A2 ... An => C
- representación objeto-atributo-valor
Representación: objeto-atributo-valor
(literalize Objeto Atributo1 Atributo2 AtributoN)
Los atributos solo pueden tener un valor a menos que se declaren como vectores
Instanciaciones de objetos (asignar valores con constantes o con nil)
Las instanciaciones se añaden a la memoria de trabajo y se les asigna un número entero
positivo o etiqueta de tiempo (time-tag)
6. Para ver los elementos de la memoria de trabajo: (wm) e.g.,
10:(paciente ^nombre Juan ^edad 20
^síntoma fiebre)
Sintaxis:
(p < nombre >< lhs > --> < rhs >)
e.g.,
(p ejemplo
(paciente ^sintoma = fiebre)
(datos-lab ^celulas-T < 100)
-->
(make paciente ^diagnostico sida))
Atributo-predicado-valor
Predicado: <, <=, >=, >, <>, =
Si no se pone ningún predicado se asume que es: =
El intérprete aparea condiciones de las reglas con elementos de lamemoria de trabajo: e.g.,
(paciente ^edad < 70)
Memoria de trabajo:
1: (paciente ^nombre juan ^edad 50)
2: (paciente ^nombre maría ^edad 75)
Extensiones:
(paciente ^edad {> 20 < 50}) (conjunción)
(paciente ^queja << fiebre dolor-de-cabeza >>)
(disyunción)
Acciones:
make: crea un elemento en la memoria de trabajo
remove: elimina un elemento de la memoria de trabajo
modify: cambia un elemento de la memoria de trabajo
Los atributos no mencionados en make se les asigna nil e.g.,
(literalize persona nombre edad)
(make persona ^nombre juan)
7. 1: (persona ^nombre juan ^edad nil)
Remove: e.g.,
(remove 10)
(remove *)
Modify: hace un remove seguido de un make. e.g.,
(literalize persona nombre)
(p chafa
(persona ^nombre anonimo)
-->
(modify 1 ^nombre juan))
1: (persona ^nombre anónimo)
3: (persona ^nombre juan)
Otras instrucciones: openfile, closefile, accept, write
Variables: se ponen entre ``< >'': < x >, < N >,
< cualquier-cosa >, e.g.,
(persona ^nombre = <n > ^edad = 20)
Una variable puede instanciarse a un elemento de la memoria de trabajo: {(persona
^nombre juan) <pers>}, e.g.,
(p ejemplo
{(persona ^nombre juan) <pers >}
-->
(remove <pers >))
(p arteria-pequenias
(arteria ^nombre = <n > ^diametro < 2)
(brazo ^conducto-sanguineo = <n >)
-->
(make arteria-pequenia ^nombre <n >))
Interprete: OPS5 usa encadenamiento hacia adelante
Criterios:
8. LEX (lexical): preferencia por datos más recientes, las reglas más específicas y
arbitrario
MEA (Means-Ends Analysis): da preferencia a la primera condición (contextos)
Ejemplo (ancestros):
nombre madre padre
Gaia - Caos
Cronos Gaia Urano
Rhea Gaia Urano
Zeua Rhea Cronos
Hephaestus Hera Zeus
Leto Febe Coeus
Hera Rhea Cronos
Apolo Leto Zeus
(literalize persona nombre madre padre)
En OPS5 no hay recursión, por lo que necesitamos un objeto intermedio para guardar los
ancestros intermedios
(literalize mientras nombre)
Necesitamos otro objeto para empezar todo (es común)
(literalize empieza)
Regla inicializadora:
(p pregunta
{(empieza) <inicia >}
-->
9. (remove <inicia >)
(write (crlf) Dame el nombre: )
(make mientras ^nombre (accept)))
(p ancestro
{(mientras ^nombre {<ancestro > <> nil }) <emt >}
(persona ^nombre <ancestro > ^madre <nombre-m >
^padre <nombre-p >)
-->
(remove <emt >)
(write (crlf) <nombre-m > y <nombre-p > son
ancestros de <ancestro >)
(make mientras ^nombre <nombre-m >)
(make mientras ^nombre <nombre-p >))
También hace falta declarar la tabla de ancestros:
(make persona ^nombre Gaia ^padre Caos)
(make persona ^nombre Cronos ^madre Gaia
^padre Urano)