6. Sistemas Basados en Conocimiento (SBC) (Knowledge-Based Systems: KBS) Los SBC o Sistemas Expertos son sistemas de apoyo a la solución de problemas cuyo desempeño está primordialmente en conocimiento “declarado” o “explícito” (en contraposición al conocimiento “operativo” o “algorítmico”). Estos sistemas derivan sus conclusiones de conocimiento almacenado en bases de conocimiento, más que de algún algoritmo prefijado. Una distinción entre SBC y programas convencionales es la separación explícita de conocimiento y control. En un programa algorítmico típicamente el flujo de control está entrelazado con la información en que se basa el algoritmo. En cambio, en un SBC se distinguen 3 componentes distintivos: 1. Base de Conocimiento (BC, ó en inglés, KB) 2. Memoria de Trabajo (MT, ó en inglés, WM) 3. Máquina de Inferencia (MI, ó en inglés, IE). Base de Conocimiento (BC): Es un conjunto de reglas (u otro tipo de estructuras de representación, como los “frames” o marcos), que representan el conocimiento de la materia de interés. Memoria de Trabajo (MT): Contiene la información del problema específico que se trata, compuesto por los datos de entrada originales y todas las inferencias hechas por el sistema a partir de los datos. Maquina de Inferencia: La máquina de inferencia accesa los elementos de la MT, explora la BC, identifica las reglas que son relevantes y las ejecuta, para generar una o más conclusiones asociadas al problema específico (instancia). Los SBC se clasifican en generaciones de acuerdo a su capacidad de razonamiento y control. 6.1. Ejemplos de SBC 6.1.1. SBC de primera generación Generalmente se enfoca a tareas bien definidas y limitadas, con énfasis en rendimiento (basados en modelos “superficiales”), más que en entendimiento (basados en modelos “profundos”). Los problemas típicos que resuelven esta tecnología más limitada se describe con el concepto de “Problemas de Clasificación” (Introducido por Clancey, 1984). Los Problemas de Clasificación consisten en reconocer una situación a partir de una colección de datos, y seleccionar la respuesta mas adecuada de acuerdo a ciertos objetivos. Relación heurística Datos abstractos (Heuristic Match) Soluciones abstractas (Data abstraction) Abstracción de datos Refinación (Refinament) R DATOS SOLUCIONES Figura 6.1. Esquema de solución de problemas de clasificación. En la Figura 6.1 de puede apreciar un esquema mediante el cual se pueden resolver los problemas en cuestión. En dicha figura se pueden mencionar los siguientes aspectos relevantes para solucionar los problemas: 1. Los datos: que se generan desde varias fuentes y se interpretan como un patrón predefinido. 2. El patrón reconocido: el cual se mapea a un conjunto de soluciones posibles. 3. Una de sus soluciones: la que se selecciona como la más apropiada para el caso dado. Este proceso se considera un problema de clasificación estático, ya que supone que los datos de entrada son invariantes en el tiempo, al menos durante el lapso necesario para resolver el problema. Los SBC de Primera Generación resolvieron estos problemas usando razonamiento monotónico, y formas primitivas de representación de incertidumbre (si es que incorporaban algo de incertidumbre). La representación del conocimiento era plana más que jerárquica. Ejemplo de SBC de 1ª Generación son Mycin, XCON, Prospector, y DELTA-CATS. 6.1.2. SBC de segunda generación Los SBC de 2ª generación son capaces de manejar tareas menos delimitadas que los de la 1ª Generación (o “Clasificadores”). Los típicos problemas que corresponden a estos sistemas fueron descritos como “Problemas de Clasificación Dinámicos” (PCD). A diferencia del anterior, en este caso el medio del que se colecta datos cambia a una tasa comparable al tiempo requerido para obtener una solución refinada, requiriendo respuesta en tiempo real. Ejemplos de PCD incluyen análisis de situación (p.ej. control de tráfico aéreo), diagnostico en tiempo real (p.ej. diagnóstico de motores de avión en vuelo), planificación en tiempo real, y “selección de catálogo” en tiempo real (p.ej. selección de inversiones durante fluctuaciones de mercado). Existen “shells” para manejar algunos de estos casos, como KEE, ARF y RUM/RUM runner. 6.2. Representación del conocimiento Ya se mencionó la importante característica de los SBC: su separación explícita entre conocimiento y control. Es crucial seleccionar un lenguaje adecuado de representación del conocimiento. De acuerdo a la información estructural disponible, se han usado 3 tipos de representaciones del conocimiento para definir el lenguaje de representación: cálculo predicativo, reglas de producción, y marcos (frames). Estas representaciones son todas equivalentes en el sentido de la Máquina de Turing. El cálculo predicativo es adecuado para tareas muy poco estructuradas, en tanto las reglas de predicción (con clases de reglas), y los sistemas de marcos (frames) van incorporando en forma creciente la estructura intrínseca del dominio del problema. Cada vez más las implementaciones incluyen tipos híbridos, como por ejemplo el uso de reglas aplicadas a objetos complejos descritos por frames.