Introducción elemental a los sistemas basado en reglas
si < antecedente > entonces < consecuente >
considerandola una inferencia, razonamiento o regla de producción; en la práctica semejante regla es similar o equivalente a la implicación lógica y también es llamada regla si-entonces. El <antecedente> también puede ser llamado condiciones previas, parte condicional, condiciones, etc., mientras que el <consecuente> también puede ser nombrado conclusión, hipótesis, acción, etc., dependiendo a veces del contexto y del significado específico. Si se define una regla: si <antecedente> entonces <consecuente>, entonces <antecedente> = LHS(regla) (parte izquierda), mientras <consecuente> = RHS(rule) (parte derecha). El significado básico de cualquier regla de este tipo es que si las condiciones definidas por el <antecedente> se satisfacen, entonces las conclusiones o acción definidos por el <consecuente> se cumplen o pueden ejecutarse. En ciertos trabajos, el formato básico está a veces extendido, por ejemplo:
si <antecedente> entonces <consequent_1> de lo contario <consequent_2>
Son posibles muchas otras extensiones del formato básico. Por
ejemplo, aparte de especificar el nombre y la numeración de las
reglas, es posible definir lo siguientes elementos adicionales de definición:
Son posibles muchas otras modificaciones y extensiones; sin embargo
estas no cambian el concepto básico de las reglas si-entonces, sino
que constituyen algún mecanismo auxiliar conveniente en aplicaciones
prácticas.
Mecanismo básico de ejecución de reglas
Desde punto de vista lógico pueden considerarse todas las variables en una regla como universalmente cuantificadas, como en el caso de cláusulas en Prolog. Sin embargo, las variables denotan parámetros a ser instanciados antes de la aplicación de la regla. Esto significa, de hecho, que cualquier regla con variables denota un conjunto de (o un esquema general de) reglas aplicables. Los valores precisos pueden ser seleccionados por el usuario y entonces se demuestran las condiciones previas, o - y éste es el enfoque más frecuente - se encuentran los valores de las variables para los que las condiciones previas se cumplen durante el proceso de demostracion de éstas, como un efecto secundario del procedimiento de emparejamiento.
Asumamos que una regla dada tiene la forma básica, si <antecedente>
entonces <consecuente>, donde el <antecedente> es equivalente a una
fórmula simple. Supongamos que el estado actual de la base de conocimiento
se describe mediante fórmulas lógicas simples, proporcionando
una conjunción de todos los hechos actualmente verdaderos. Sea h
la fórmula (o acción) que define el <consecuente>. Todos
los componentes pueden ser parametrizados mediante ciertas variables. El
algoritmo básico de ejecución de la regla es:
En el caso de que la regla tenga una estructura extendida, las extensiones
específicas deben interpretarse de la manera apropiada, si embargo,
estas extensiones son bastante directas. El único problema práctico
es aplicar de forma consistente la substitución encontrada ()
en cualquier fase. La generación de la substitución puede
ser realizada por cualquier procedimiento de emparejamiento de formas;
los más directos pueden ser los basados en un esquema de unificación
lógico.
Inferencia en sistemas basado en reglas
Consideremos un sistema dinámico compuesto de n reglas. El problema de resolución de conflictos puede declararse como: dado un conjunto de n reglas, si dos o más reglas son potencialmente aplicables, seleccionar una sola regla para ser aplicada en el estado actual del sistema bajo control/supervisión. El problema de la resolución de conflictos no existe en sistemas deterministicos, para los que sólo una regla puede aplicarse en cualquier estado. El problema ocurre si para algún estado puede aplicarse más de una la regla; en la mayoría de sistemas se selecciona una sola regla con respecto a algún criterio auxiliar, diferente del consistente en que satisfagan las condiciones previas. Dependiendo de la complejidad de la estructura del mecanismo de control de inferencia son posibles dos formulaciones, una básica y otra avanzado.
La formulación básica es como sigue. Considérese un sistema de control basado en reglas compuesto de n reglas. Supongamos que las reglas están linealmente ordenadas según un índice. El problema de la resolución de conflictos consiste ahora en seleccionar exactamente una regla aplicable en el estado actual. La regla seleccionada debe aplicarse y el proceso repetirse desde el principio.
Las estrategias básicas para atacar el problema anterior pueden variar dependiendo de la especificación del sistema y de la aplicación. Hay, sin embargo, dos posibilidades básicas:
Principalmente en control y supervisión se aplica el segundo
enfoque. Con respecto a la organización del intérprete de
reglas pueden distinguirse tres estrategias básicas de atacar el
problema:
Por supuesto, los enfoques anteriores pueden modificarse y extenderse
con el uso de mecanismos de control de razonamiento auxiliares, herramientas
de preselección de reglas, etc., Por ejemplo, un mecanismo útil
lo constituye una modificación que consiste en la utilización
de un mecanismo para el cambio jerárquico de valores dependiendo
del contexto mediante el uso de una pila de memoria.
La forma avanzada de declaración del problema de resolución
de conflictos incluye la selección del conjunto de conflictos y
la selección y ejecución de regla/reglas posiblemente pasando
el control a otros mecanismos. De nuevo, consideremos un sistema compuestos
de n reglas, . La formulación
avanzada de la tarea de resolución de conflictos consiste en seleccionar
reglas que satisfagan las condiciones y, si hay dos o más reglas,
seleccionar una de ellas que satisfaga algún criterio auxiliar.
Este enfoque consiste en dos fases: (1) eliminación inicial de las
reglas que no pueden aplicarse, y (2) selección de la mejor regla,
o probablemente la mas apropiada para realizar la tarea del control en
curso. Para el caso avanzado, pueden establecerse varias clasificaciones
de estrategias de resolución de conflictos:
Dependiendo del problema, de su especificación y de los recursos
disponibles pueden aplicarse varias estrategias; no puede darseningún
criterio general. Las combinaciones de varias estrategias también
pueden ser útiles.
Algunas estrategias para la resolución de conflictos
Los dos primeros enfoques se dirigen hacia estrategias de clasificación
directas, estáticas. El tercero y el cuarto se refieren a casos
específicos de clasificación de posibilidades principalmente
mediante mecanismos de evaluación de prioridades basados en sintaxis.
Sólo el quinto se refiere a la semántica del proceso, pero
se usa para reducir el número de reglas en conflicto y no para seleccionar
una única regla.
Por ejemplo, en el sistema de programación basado en reglas OPS5 [Brownston et al, 1985] pueden usarse dos estrategias más complejas, LEX y MEA. A grandes rasgos, estas estrategias se llevan a cabo en cuatro pasos consecutivos: refracción (anulando todas las instanciaciones ejecutadas previamente), clasificación parcial basada en reciente actualidad (se consideran etiquetas de tiempo correspondientes a los elementos de memoria de trabajo usados), clasificación parcial basada en especificidad (se consideran primero las reglas con mayor número de pruebas), y, finalmente, la selección arbitraria. La estrategia de la MEA considera más importante la actualidad de la primera condición de las reglas. Estrategias de este tipo pueden ser útiles para la programación basada en reglas pero pueden ser poco satisfactorias o incluso inadmisibles para el control de sistemas dinámicos. Por ejemplo, la estrategia de refracción puede eliminar alguna instanciación ejecutada previamente, mientras que la repetición de exactamente la misma regla puede ser necesaria para lograr cierto objetivo a través de movimientos similares.
Inferencia hacia delante vs. inferencia hacia atrás
La inferencia del encadenamiento hacia delante puede aplicarse prácticamente en todos los casos. Es útil si hay relativamente pocos hechos iniciales, deben producirse nuevos hechos, el objetivo se especifica poco o no se especifica en absoluto, etc. El encadenamiento hacia delante normalmente produce hechos bien definidos.
El encadenamiento hacia atrás es un poco más complicado; no puede aplicarse en cualquier sistema. Si las reglas tienen más variables en las condiciones previas que en las conclusiones, probablemente se generaran hechos no totalmente especificados. Aún más, la estrategia es un poco más compleja, ya que es necesario que se cumplan todos los hechos en cualquier fase para demostrar un objetivo. Este tipo de inferencia es sin embargo más eficaz cuando el objetivo esta bien definido y hay muchos hechos de entrada. Esta estrategia también se usa en ciertos sistemas, como Prolog.
También pueden aplicarse combinaciones de los dos modos. La estrategia más típica es combinar una estrategia hacia delante y la aplicación el encadenamiento hacia atrás en algunas fases si deben detallarse algunos objetivos.
A continuación se presentan esquemáticamente los tipos
anteriores de intérpretes.
Aplicaciones genéricas de reglas de inferencia
Simulación: Consideremos un sistema dinámico relacional.
Se da un conjunto fijo finito de reglas T de producción que definen
las transformaciones para el modelado de todos los cambios de estado posibles.
Dado un estado inicial ,
encontrar el posible comportamiento del sistema para un número limitado
de fases de transformación. En el caso de simulación puede
interesar obtener cualquier posible comportamiento (para cualquier sucesión
admisible de reglas de transformación y parámetros), o sólo
algunas de las posibles trayectorias que se generan con un poco de información
adicional que involucra qué reglas y qué parámetros
deben ser considerados en cualquier fase. Este tipo de acercamiento es
llamado simulación basada en conocimiento y si se aplica un formalismo
cualitativo simulación cualitativa.
Control: Supongamos que se observa un sistema dinámico
relacional en instantes discretos de tiempo. En cualquier instante, la
fórmula de estado del sistema es conocida, así como el objetivo
de control (si se especifica explícitamente). En la práctica,
la fórmula que define el objetivo actual puede ser una parte de
la fórmula de estado. La tarea es construir un sistema del control
basado en conocimiento, diseñar un conjunto fijo de reglas T para
ser aplicado al estado actual en un instante determinado y asegurar el
comportamiento deseado del sistema controlado. El conjunto de reglas debe
llevarse a cabo de forma que por lo menos para cualquier estado sea aplicable
una acción (incluso la acción no-hacer-nada, si es necesario).
Si en cierto estado son aplicables más de dos acciones, o una acción
es aplicable de maneras diferentes (para parámetros diferentes dados
por ), también
debe proporcionarse un mecanismo de control de razonamiento para la resolución
de conflictos. Este tipo de sistema basado en reglas puede usarse para
el control directo (control directo basado en reglas, control reactivo)
o puede aplicarse en un meta-nivel de control, por ejemplo para la selección
de parámetros y consignas, selección del algoritmo de control,
ajuste del modelo o del objetivo, etc. La aplicación a la monitorización
de procesos, reconocimiento de situaciones, y supervisión (incluso
detección de fallos, diagnostico y soporte a decisiones) puede localizarse
dentro de este tipo de aplicaciones.
Planificacion: Como en el caso de simulación, consideremos
un sistema dinámico relacional. Se da un conjunto fijo finito de
reglas T de producción para modelar todas las posibles transformaciones
de estado (de hecho son reglas de transformación de estado). Dado
un estado inicial y un
objetivo deseado
, buscar
una sucesión de acciones (junto a sus parámetros) que transformen
el estado inicial en otro que satisfaga las condiciones declaradas en el
objetivo; el estado del objetivo puede definirse de una manera más
general, pueden especificarse sólo algunos requisitos explícitamente
y así puede existir más de un estado que satisface las condiciones
del objetivo.
Aunque aquí se traten principalmente los problemas de monitorización,
control y supervisión basados en conocimiento, el propio formalismo
y ciertos resultados se aplican directamente a los casos de simulación
y planificación. Es más, el formalismo presentado puede aplicarse
en otros problemas resueltos mediante enfoques de ingeniería del
conocimiento, como diagnóstico automatizado, apoyo de decisiones,
diseño asistido por ordenador y otros.