Sistemas Expertos |
[Introducción][Base de
conocimientos][Base
de Hechos][Motor de
Inferencia][Interfase
Hombre-Máquina]
[Aprendizaje Basado en
Casos][Base de
conocimiento de casos][Librería de
Índices][Medidas
de relevancia][Módulo de
explicación]
La utilización de técnicas de Inteligencia Artificial en programación y control de procesos industriales ha sido centro de atención en los últimos años, tanto por el elevado número de investigaciones como por las aplicaciones en diferentes entornos industriales. Los sistemas expertos constituyen el campo de la Inteligencia Artificial con mayor éxito. En este capítulo se analizan los sistemas expertos de forma conceptual y a través de sus aplicaciones para la programación y el control de operaciones.
Un sistema experto puede definirse como "un programa de ordenador que resuelve problemas que requieren experiencia humana, mediante el uso de representación del conocimiento y procedimientos de decisión" [Kastner y Hong, 1984]. El conocimiento del experto en ese campo se organiza en una base de conocimientos, y en función de los datos disponibles de la aplicación (base de hechos) se imita la forma de actuar del experto explorando en la base de conocimientos hasta encontrar la solución (motor de inferencia). Los resultados finales y la forma en que se obtienen se expresan a través de la interfase hombre-máquina.
A continuación se exponen más en detalle los elementos que componen todo sistema experto, y que se muestran en la figura
Base de conocimientos
Es donde se almacena el conocimiento en el campo a desarrollar. Los conocimientos que se suelen almacenar son de cuatro tipos: Conocimiento objetivo, que describe la situación real del sistema; Conocimiento de sucesos, relacionado con los sucesos que ocurren en el tiempo de ejecución; Conocimiento del funcionamiento del sistema, de cómo se hacen las cosas, y Metaconocimiento, que relaciona los anteriores. Existen varias formas de representar el conocimiento:
- Marcos («Frames»): son estructuras de datos donde se almacenan información concreta de un cierto concepto e información relacional para completar la definición del concepto. Se representan por una serie de campos y los valores asociados a los mismos, pudiendo ser otro "frame".
- Redes semánticas: son representaciones gráficas del conocimiento, mediante nodos, que representan objetos o conjuntos de objetos, y arcos, que relacionan dichos objetos. Tanto los "frames" como las redes son representaciones descriptivas, difíciles de usar para representar el razonamiento.
- Reglas: es la forma más extendida de representación del conocimiento. Representan la forma de razonar. Tienen la forma IF <condicion> THEN <accion/conclusion>. Es importante el orden de ejecución de las reglas, por ello se les suele dotar de proridades. Una regla que activa otra se denomina metaregla, y se suelen usar para desarrollar progresivamente el conocimento del experto.
Una labor fundamental es la Adquisición del Conocimiento y su representación mediante alguna de las formas anteriores. Una de las técnicas más usadas son las entrevistas con los responsables del proceso, donde se consume la mayoría del tiempo. Además se suelen usar las bases de datos existentes en el sistema, añadir modelos matemáticos o heurísticas, y analizar el sistema mediante programas de simulación. También en entornos dinámicos como son los sistemas de producción, se adquiere conocimiento con el tiempo.
Base de hechos
Representan el conocimiento del estado del sistema en un cierto instante. Usualmente se representa en una base de datos, y su información está directamente enlazada con la base de conocimientos. Un hecho puede provocar el disparo ("trigger") de una regla:
Hecho: Utilizacion_Maquina=0.873
Regla: SI Utilizacion_Maquina > 0.8
ENTONCES Estado_Maquina="SOBRECARGADO"
Motor de Inferencia
Es el "supervisor", un programa que está entre el usuario y la base de conocimientos, y que extrae conclusiones a partir de los datos simbólicos que están almacenados en las bases de hechos y de conocimiento. Dependen en gran medida de la representación elegida; por su importancia analizaremos los motores de inferencia basados en reglas.
Existen varios algoritmos de búsqueda a lo largo de las reglas para inferir conclusiones a partir de los hechos y las reglas. Todos los algoritmos son del tipo "pattern-matching", van disparando reglas a medida que se cumplen las condiciones. Se pueden diferenciar dos mecanismos de inferencia:
- Encadenamiento hacia adelante: se extraen conclusiones a partir del cumplimiento de las condiciones de ciertas reglas que, a su vez, provocarán el cumplimiento de las condiciones en otras reglas hasta que no se cumplan en ninguna de ellas.
- Encadenamiento hacia atrás: se suponen ciertas las conclusiones de una regla y, como consecuencia, se van disparando aquellas reglas que provocarían la regla original. El proceso acaba si no se cumplen las condiciones de las reglas o si se cumplen para todas las reglas.
Es importante destacar que la base de conocimientos y el motor de inferencia son sistemas independientes, por lo que se han desarrollado herramientas que únicamente necesitan la implementación del conocimiento, llevando incorporado el motor de inferencia.
Interfase Hombre-Máquina
Establece una comunicación sencilla entre el usuario y el sistema. El usuario puede consultar con el sistema a través de menús, gráficos, etc, y éste le responde con resultados. También es interesante mostrar la forma en que extrae las conclusiones a partir de los hechos. En sistemas productivos se cuida la forma de presentar al operador las órdenes obtenidas del sistema experto, debido a que información excesiva o confusa dificulta la actuación en tiempo real.
La implementación de un sistema experto completo obliga al desarrollo de cada uno de los elementos anteriores a través de lenguajes o herramientas de desarrollo. Existen cuatro alternativas para la implementación de un sistema experto:
" Lenguajes de alto nivel (HLL): son lenguajes de propósito general (C, Fortran, Basic,...). Tienen como ventajas su eficiencia, su familiaridad y la portabilidad a cualquier entorno, pero el inconveniente de no estar preparados para una programación basada en símbolos.
" Lenguajes simbólicos: fundamentalmente LISP y PROLOG. Son los lenguajes de alto nivel más utilizados por su adaptación a la lógica de la base de conocimientos representada mediante símbolos, y por su mecanismo de extraer conclusiones. Su eficiencia aumenta en estaciones de trabajo diseñadas para dichos lenguajes.
" Herramientas de desarrollo ("shells"): son programas preparados para el desarrollo de sistemas expertos pues incorporan el motor de inferencia, independiente de las bases de hechos y de conocimiento. El programador se limita a tradicir dichas bases a un lenguaje preparado a tal efecto, pudiendo enlazarse con otros lenguajes para el desarrollo de funciones adicionales. Suelen estar desarrollados en LISP o PROLOG para aumentar su eficiencia. La flexibilidad es menor, aunque suelen incorporar procesadores de texto, gráficos y herramientas de análisis.
" Entornos de desarrollo ("environments"): añaden a los "shells" el uso de un entorno gráfico (ventanas, iconos,...) que facilita el desarrollo del sistema experto. Tienen como ventaja la disminución del tiempo de desarrollo, pero suelen ser caros y poco flexibles.
Los "shells" son los más usados para el desarrollo de sistemas expertos, mientras que el PROLOG está muy extendido en Europa y Japón, el LISP lo está en Estados Unidos. Los entornos aún ocupan un sector minoritario pero la tendencia a su utilización va en aumento.
Como conclusiones se puede decir que los sistemas expertos están siendo muy utilizados en aquellos entornos donde se necesite el conocimiento de expertos. El entorno de la producción es uno en donde se han desarrollado más prototipos y aplicaciones de sistemas expertos. La mayoría de ellos utilizan reglas como técnica de representación, y han sido desarrollado mediante "shells", o en lenguajes simbólicos.
Una forma básica de integrar un sistema experto en el mecanismo de control es la mostrada en la siguiente figura, donde el sistema recoge la información en tiempo real del proceso y la procesa para dar respuesta al usuario. Los sistemas expertos parecen adecuados para la utilización como apoyo a la toma de decisiones en tiempo real, y como aprendizaje en modo estudio. La mayoría de los sistemas expertos que se utilizan en control de la producción monitorizan los resultados para que el operador tome la decisión.
Razonamiento Basado en Casos. (Case-Based Reasoning)
Otro campo de la inteligencia artificial que destaca por su utilidad en el problema de la programación y el control de la programación es el razonamiento basado en casos [Kolodner, 1993]. Los sistemas de razonamiento basado en casos («Case-Based Reasoning») pertenecen al área de la inteligencia artificial y se utilizan para la resolución de problemas. Se basan en problemas similares ocurridos en el pasado, que se denominan casos, para encontrar soluciones a los mismos, modificar soluciones existentes y explicar situaciones anómalas.
Frente a otros campos de la inteligencia artificial, los sistemas de razonamiento basado en casos son capaces de utilizar conocimiento específico de experiencias previas para resolver un problema. Capturan las características de dicho problema, buscan casos históricos con valores similares para dichas características, analizan las soluciones de estos casos y proponen una solución al problema, y finalmente aprenden del problema actual para problemas futuros.
El aprendizaje de los casos en un sistema de razonamiento basado en casos requiere métodos para extraer el conocimiento relevante de la experiencia, integrar el caso en la estructura del conocimiento, e indexar el problema para ser seleccionado en casos similares.
Los sistemas de razonamiento basado en casos constan de cuatro elementos:
Base de conocimiento de casos
Es una base de datos de casos históricos estructurada, que captura problemas reales y sus soluciones. Se diseña para almacenar conocimiento y experiencia en el problema. Consta de teorías, principios y clasificaciones del problema, junto con las heurísticas y los juicios asociados a cada caso concreto.
Librería de índices
Formada por un conjunto de índices para buscar y recuperar casos similares al problema actual. El mecanismo de indexado determina los casos que serán seleccionados, mientras que el proceso de recuperación asegura que el caso más relevante es seleccionado para un análisis posterior. Existen tres formas de recuperar los casos, usadas conjuntamente:
" Vecino más cercano: el sistema selecciona el caso almacenado en que más se parezcan sus características a las del problema en estudio. Las características pueden tener pesos para dar más importancia a unas que a otras.
" Razonamiento inductivo: el sistema ordena los casos en memoria basándose en las características que más frecuentemente se parecen.
" Indexado guiado por el conocimiento: el sistema selecciona las características más relevantes en función de la experiencia, implementada en forma de reglas.
Medidas de relevancia
Son un conjunto predeterminado de características del problema, generales o específicas, que el sistema usa para asegurar la relación entre el caso actual y los históricos. Con estas medidas el sistema puede seleccionar y clasificar los casos más relevantes.
Módulo de explicación
Es el que permite justificar y explicar el análisis completo del problema y las soluciones propuestas, así como la semejanza o diferencia entre dicha solución y las de los casos históricos.
El proceso completo que se realiza en un sistema de razonamiento basado en casos se puede representar como un ciclo de actividades (figura 19):
1. RECUPERAR el o los casos más parecidos al problema actual. Para ello el sistema utiliza la librería de índices.
2. REUTILIZAR la información y el conocimiento de dicho caso para intentar resolver el problema.
3. REVISAR la solución propuesta si es necesario.
4. RETENER la parte útil de esta experiencia para ser utilizada en la resolución de futuros problemas.
Tanto los sistemas expertos como los sistemas de razonamiento basado en casos son campos de la inteligencia artificial que usan la búsqueda para llegar a las soluciones admisibles de un cierto problema. La eficiencia y rigor de dicha búsqueda es fundamental para encontrar buenas soluciones.
La diferencia más importante entre ambos sistemas estriba en la forma de resolver los problemas: en los sistemas expertos se utiliza el razonamiento deductivo a partir de los datos conocidos, mientras que en los sistemas de razonamiento basado en casos se utiliza el razonamiento analógico, es decir, a partir del problema se usa el conocimiento de casos históricos.
Los sistemas expertos se utilizan para aquellos problemas donde:
- El entorno del problema es rico en conocimiento del mismo y pobre en experiencias previas, fundamentalmente por su inviabilidad.
- No es fácil comparar unos problemas con otros.
- La experiencia se puede implementar en forma de reglas.
- No se puede aprender del pasado.
Los sistemas de razonamiento basado en casos se utilizan entonces cuando:
- Los problemas se representan mejor en forma de conocimiento del medio que en forma de reglas.
- Es más fácil extraer conocimiento mediante casos ya ocurridos que mediante reglas. Así se hace menos costosa la adquisición del conocimiento.
- Es necesario incorporar creatividad y sentido común para resolver el problema.
- Se repiten los problemas cada cierto tiempo.