Representación de Conocimiento Eduardo Morales, L. Enrique Sucar Objetivos Identificar cuales son los componentes que se requieren considerar para representar el conocimiento en una aplicación, utilizar una o varias de las técnicas de representación usadas en Inteligencia Artificial que sean más adecuadas para el problema en cuestión, y decidir sobre los mecanismos de inferencia y control a utilizar sobre las representaciones propuestas. Temario 1. Introducción a Inteligencia Artificial 2. Representación de Conocimeinto 3. Búsqueda 4. Lógica 5. Reglas de producción 6. Objetos estructurados 7. Hı́bridos 8. Arquitecturas de control 9. Modelos cualitativos 10. Razonamiento temporal 11. Incertidumbre y sistemas no–monotónicos 12. Adquisición de conocimiento y aprendizaje 13. Ontologı́as 14. Problemas de Representación de Conocimiento Evaluación La evaluación consiste de: 1 • Representación de un problema para cada una de las técnicas vistas en clase (30%). • Examen a mediados del curso (30%). • Presentación y análisis de artı́culos relevantes al curso (10%). • Realización de un proyecto resolviendo el problema planteado (30%). Las especificaciones para el proyecto final son: 1. Entregar un documento que contenga (por lo menos) las siguientes secciones: a) El problema a resolver y las principales carácterı́sticas del mismo. b) Qué elementos están considerando en la representación del problema: objetos, atributos, relaciones, funciones, etc. y qué representan. c) Qué técnica(s) de representación están usando, qué método(s) de inferencia (y arquitectura de control), y porqué? d) Mostrar los resultados obtenidos y analizarlos e) Hacer una breve análisis de las ventajas/desventajas de la representación y método de inferencia utilizado. f) Dar conclusiones e ideas de posibles extensiones 2. Realizar una implementación que resuelve su problema (en cualquier lenguaje): a) Entregar listado de código junto con el documento b) Hacer una demostración del mismo 3. Hacer una presentación breve (15 min.) que explique el punto (1) y los resultados obtenidos. Referencias bibliográficas 2 • Lucas, P. y Van der Gaag, L. Principles of Expert Systems. Addison Wesley, 1991. • Brachman, R y Levesque, H. Readings in Knowledge Representation. Morgan Kaufmann, 1985. • Russel, S., Norvig, P., Artificial Intelligence: A Modern Approach, Prentice-Hall, 1995. • Jackson, P. Introduction to Expert Systems. Addison-Wesley, 1990 (2a. edición). • Winston, P., Artificial Intelligence. Addison-Wesley (Tercera Edición) 1992. • Feigenbaum, XXXX • Shapiro, S.C. Encyclopedia of Artificial Intelligence. Wiley, New York (segunda edición), 1992. • Is the Brain Mind a Computer Program? John R. Searle. Scientific American, Jan. 1990, pp. 26-31. • Could a Machine Think? Paul M. Churchland, Patricia Smith Churchland. Scientific American, Jan. 1990, pp. 32-37. • On Computational Wings: Rethinking the Goals of Artificial Intelligence. Kenneth M. Ford, Patrick J. Hayes. Scientific American, Vol. 9 (4): pp. 78-83. • Christopher John Hogger, Essential of Logic Programming, Oxford University Press, 1990. • Artı́culos de revistas 3 Capı́tulo 1 Introducción a Inteligencia Artificial 1.1 Inteligencia Artificial • ... diseño de sistemas inteligentes, es decir, que exhiben caracterı́sticas que asociamos con la inteligencia humana - entender lenguaje natural, aprendizaje, razonamiento, etc. [Feigenbaum]. • ... hacer computadoras más útiles y entender los principios que hacen posible la inteligencia [Winston]. • ... programar computadoras para que hagan tareas que actualmente son hechas mejor por los seres humanos, ... , aprendizaje perceptual, organización de la memoria, razonamiento [Jackson]. • ... es un campo de la ciencia y de la ingenierı́a que se ocupa de la comprensión a través de la computadora de lo que comunmente llamamos comportamiento inteligente y de la creación de herramientas que exhiben tal comportamiento [Shapiro]. Dos aspectos básicos: 1. Entender y modelar sistemas “inteligentes” (ciencia) 4 2. Construir máquinas “inteligentes” (ingenierı́a) Enfoques: • Sistemas que piensan como humanos (ciencia cognitiva). • Sistemas que actuan como humanos (prueba de Turing). • Sistemas que piensan racionalmente (lógica). • Sistemas que actuan racionalmente (teorı́a de decisiones). Pero, ¿qué es inteligencia? habilidad de razonar, adquirir y aplicar conocimiento, percibir y manipular objetos, ... Tipo de aplicaciones: • Comprensión de lenguaje natural. • Interpretación de imágenes. • Manipulación y navegación. • Matemáticas simbólicas. • Planeación. • Solución de problemas complejos. Tipo de técnicas: • Manipulación simbólica. • Aprendizaje. 5 • Razonamiento. • Búsqueda heurı́stica. Tipo de lenguajes: • Simbólicos (Lisp) • Lógicos (Prolog) Es multidisciplinaria (computación + otras áreas) IA tiene sus fundamentos en áreas tales como: • Filosofı́a (Socrates – Platón, Descartes, Leibnitz, etc) • Matemáticas (Boole, Frege, Tarski, Hilbert, Gödel, Turing, Church) (Pascal, Bernoulli, Laplace, Bayes) (von Neumann, O. Morgenstern) • Psicologı́a (Helmoltz, Wundt, Watson, James) • Ingenierı́a Computacional: Heath Robinson - Colossus (Turing - UK), Z-3 (Zuse - Alemania), ABC, Mark I, II y III, ENIAC (USA), IBM-701 • Linguı́stica (Skinner, Chomsky) 1.2 Desarrollo Histórico Según [Jackson 86]: 1950-1965 Periodo “clásico” • Gestación [McColluck y Pitts, Shannon, Turing] • Inicio - reunión de Darmouth College en 1956 [Minsky, McCarthy] 6 • Redes neuronales, robótica (Shakey) • Búsqueda en un espacio de estados, Heurı́sticas, LISP • Resolvedor general de problemas (GPS) [Newell, Simon] • Juegos, prueba de teoremas ⇒ Limitaciones de pura búsqueda, explosión combinatoria. 1965-1975 Periodo “romántico” • Representación “general” del conocimiento. • Redes semánticas [Quillian] • Prototipos (frames) [Minsky] • Perceptron [Minsky y Papert] • Lógica [Kowalski] • Mundo de bloques (SHDRLU) [Winograd] • Compresión de lenguaje, visión, robótica. ⇒ Dificultades de representación “general”, problemas de “juguete”. 1975-Hoy Periodo “moderno” • Inteligencia “especifica” vs “general”. • Representación explı́cita del conocimiento especı́fico del dominio. • Sistemas expertos o basados en conocimiento. • Regreso de redes neuronales [Hopfield, Rumelhart, Hinton], algoritmos genéticos [Holland, Goldberg] • Reconociminto de voz (HMM), incertidumbre (RB, Lógica difusa), planeación, aprendizaje 7 • Aplicaciones “reales” (medicina, finanzas, ingenierı́a, exploración, etc.). ⇒ Limitaciones: conocimiento “superficial”, muy especı́fico, falta “sentido común”. Según [Russell, Norvig 95]: Gestación (1943-1956): McCullock y Pitts (43), Hebb (49), Shannon (50), Turing (53), Minsky y Edmonds (51). Darmouth College (56) McCarthy, Newell y Simon “The Logic Theorist” Entusiasmo y grandes espectativas (1952-1969): Samuel - checkers (52), McCarthy (58): Lisp, time sharing, Programs with common sense. Minsky y McCarthy en MIT moldearon mucho del area. En 63 McCarthy se fue a Stanford → SRI, Shakey, etc. Minsky → Evans, Student, Waltz, Winston, Winograd, etc. Trabajo en RN: Hebb, Widrow, Rosenblatt Dosis de realidad (1966-1974): Simon predecı́a que en 10 años se tendrı́a una máquina inteligente. Predicciones similares en traducción automática y ajedrez. Teorı́a de NP-completness. Experimentos en machine evolution (ahora algoritmos genéticos) (Friedberg, 58) estaban bien fundados pero no produjeron nada. Minsky y Papert Perceptrons (69) (aunque irónicamente el mismo año se descubrió backpropagation (Bryson y Ho)) Sistemas basados en conocimiento (1969-1979): Dendral, Mycin, HPP, Prospector, Winograd SHDRLU, Shank (no hay sintáxis), frames, Prolog, Planner IA como industria (1980-1988): R1/XCON, proyecto de la quinta generación, shells y máquinas de Lisp... Regreso de redes neuronales (1986-presente): Hopfield, Rumelhart y Hinton y descenso de los SE Eventos recientes (1987-presente): Cambio gradual hacia los técnicos y lejos de los rudos (implica cierto grado de madurez y estabilidad) e.g., reconocimiento de voz (HMM), incertidumbre (Bayes), planeación (Tweak), robótica, aprendizaje (PAC), etc 8 1.3 1.3.1 Sistemas y/o Desarrollos Importantes Sistemas históricos • GPS - Newell, Shaw y Simon • Perceptron - Minsky y Papert • Chekers - A. Samuel • MACSYMA • AM - D. Lenat • ELIZA - Weisenbaum • Shakey - SRI • SHDRLU - Winogard • MYCIN - E. Shortliffe • Prospector - Duda, Hart • Hearsay II - Erman, Hayes-Roth, Lesser, Reddy • CYC - D. Lenat, R. Guha • ... 1.3.2 Sistemas actuales • PEGASUS - hace reservaciones de transporte por teléfono [Zue et al. 94] • MARVEL - sistema experto en tiempo real que maneja la información de Voyager y ayuda a diagnosticar fallas [Schwuttke 92] • Sistema de diagnóstico de medicina interna con capacidad de explicar sus razones a los expertos [Heckerman 91] 9 • NAVLAB - vehı́culo autónomo que viaje en forma automática de un extremo a otro de EUA [Pomerlau 93] • Sistema de visión que monitorea el tráfico en Paris y reconoce accidentes con los cuales llama a servicios de emergencia [Koller 94] • DEEP BLUE - máquina paralela que juega ajedrez y primera en derrotar al campeón mundial [IBM 97] 1.4 Cuestionamientos Disputas internas: lógicos/teóricos vs. prácticos Disputa externa: se puede lograr una verdadera IA? Existen dos posiciones: IA debil y IA fuerte. • Débil: podemos lograr crear máquinas que actuen como si fueran inteligentes? • Fuerte: Podemos tener máquinas inteligentes? (i.e., conciencia...) 1.4.1 Crı́ticas • Gödel (teorema de incompletes) • Dreyfus (la manipulación simbólica no es fundamento de inteligencia) • Winograd y Flores (mejor enfocarse a problemas prácticos) • Searle (pensamiento real y simulado, e.g., la caja china) • Penrose “The Emperor’s New Mind” (se requiere conocimiento de fı́sica no incluı́do en las máquinas) 10 1.4.2 Técnicas de Representación Representaciones básicas: • Reglas de producción • Redes semánticas • Frames (prototipos o marcos) • Lógica de predicados Representaciones avanzadas: • Modelos cualitativos, temporales, causales • Sistemas hı́bridos, capas, pizarrón • Razonamiento basado en casos • Redes neuronales y algoritmos genéticos • Sistemas multifuncionales Representación de incertidumbre: • Técnicas no-numéricas (TMS) • Factores de certeza • Lógica difusa • Redes probabilı́sticas 11 Capı́tulo 2 Representación de Conocimiento Representación de conocimiento = Escribir en un lenguaje descripciones del mundo. Representación - “... un conjunto de convenciones sintácticas y semánticas que hacen posible el describir cosas” [Winston 74] En IA, son descripciones para que una máquina inteligente las utilice. Sintaxis: sı́mbolos y conjunto de reglas para combinarlos. Semántica: significado de las expresiones construidas. A pesar de que todo programa de IA tiene una parte de base de conocimiento, es una área de investigación abierta. Ingredientes básicos: • un lenguaje de representación • capacidad de inferencias • conocimiento del dominio 12 El poder está en el conocimiento Una de las ambiciones es poder representar “sentido común” El fin no es tanto buscar una explicación de comportamiento cognitivo racional, sino el poder construir razonablemente sistemas inteligentes En general una representación debe de tener: 1. Expresividad Adecuada 2. Eficiencia de Razonamiento Criterios para juzgar una representación: • Capacidad Lógica: Que sea capaz de expresar el conocimiento que deseamos expresar. • Poderı́o Heurı́stico: Capacidad para resolver problemas (inferencia). • Conveniencia de la Notación: Simplicidad para accesar el conocimiento y facilidad de entendimiento (declarativa). La representación determina la facilidad con la que podemos resolver ciertos problemas y utilizar el conocimiento [Marr 82]. Ejemplo: representación de números romanos vs arábigos (desarrollo del álgebra). A nivel epistemológico: • primitivos (cuáles y a qué nivel) • meta-representaciones (permitir hacer razonamientos con el lenguaje) Representaciones no cubiertas por lógica: 13 • definiciones vs hechos • universales vs defaults • razonamiento no-deductivo • razonamiento no-monotónico Representaciones alternas: • procedurales (se necesita declarativo) • analógico • probabilı́stico Problemas de representación de: • substancias (e.g., litro de leche) • causalidad y tiempo • creencias, deseos, intenciones, etc. Consideraciones: • Hacer explı́cito lo que se considere importante. • Exhibir las restricciones inherentes al problema. • Completo y preciso. • Entendible. • Fácil de usar. • Computacionalmente factible. 14 2.1 Construyendo una Base de Conocimiento El proceso de construir una base de conocimiento se llama ingenierı́a de conocimiento Un lenguaje de representación tiene que ser expresivo, conciso, no ambiguo, y efectivo. Una base de conocimiento tiene que ser además clara y correcta. A veces se tiene que sacrificar correctes para ganar claridad y ser más conciso Idealmente se separa la base de conocimiento de los procedimientos de inferencia (pero normalmente se tiene que considerar a la eficiencia) Una base de conocimiento tiene 2 consumidores potenciales: humanos y procesos de inferencia. Un error común es seleccionar nombres que por tener sentido para el hombre se cree que van a tener sentido para el proceso de inferencia (e.g., OsoDeCerebroPequeño(Pooh)) En principio, si el diseño es adecuado, lo que expresemos en una situación, lo vamos a poder usar en otra Mucho mejor (aunque paresca más trabajo) representar a un nivel más general. Oso(Pooh) ∀ o Oso(o) ⇒ Animal(o) ∀ a Animal(a) ⇒ ObjetoFisico(a) ... 2.1.1 Puntos a considerar • Decidir de que hablar: entender el dominio lo suficiente para saber que objetos y hechos se tienen que tener y cuales ignorar • Decidir en el vocabulario de predicados, funciones y constantes. Esto involucra muchas decisiones (algunas arbitrarias y otras importantes). Representamos Tamaño como función o como predicado? Es Pequeño 15 una medida de tamaño relativo o absoluto?, ... El resultado es una ontologı́a. • Codificar conocimiento genérico del dominio. • Codificar una descripción de una instancia del problema especı́fico. Si la ontologı́a está bien pensada, este paso debe de ser sencillo. • Hacer preguntas al procedimiento de inferencia y obtener respuestas. 2.1.2 Elementos de una Ontologı́a General • Categorias: incluyen objetos con propiedades comúnes arregladas en taxonomı́as jerárquicas. Mucho del razonamiento ocurre a nivel de categorı́as. Se puede inferir la categorı́a de un objeto, en base a sus propiedades y luego usar información de la categorı́a para hacer predicciones del objeto. Una categorı́a se puede “reificar” (reification), que significa cambiar un predicado o función en un objeto del lenguaje. Esto permite referirse a propiedades de la categorı́a en sı́, más que de las propiedades de los elementos de esa categorı́a (e.g., Población(Humanos) = 5,000,000,000). Las categorias permiten organizar y simplificar el conocimiento por medio de herencia. Se pueden tener clases, subclases, clases de clases, etc. Se pueden tener categorias disjuntas, descomposiciones exhaustivas o particiones. • Medidas: relaciona objetos a cantidades de tipos particulares (e.g., masa, edad, precios, etc). Las medidas cuantitativas son en general fácil de representar. Otras medidas no tienen una escala de valores única (problemas, sabor, belleza, etc). El aspecto más importante de una medidad no es su valor numérico particular sino el hecho de que puede ordenarse. • Objetos Compuestos: objetos que pertenecen a categorias por su estructura constitutiva (e.g., coches están compuestos de llantas, motor, ...). Se pueden tener jerarquı́as de tipo partes–de (parts–of). Se pueden 16 tener relaciones de Partición de Partes (análogo a una partición de categorias). Se pueden tener objetos compuestos sin estructura (e.g., bolsa de manzanas). • Tiempo, Espacio y Cambio: Para permitir acciones y eventos con diferentes duraciones y que puedan ocurrir simulataneamente. La noción general es que el universo es continuo tanto en tiempo como en espacio. Un espacio puede tener un tiempo y lugar particular. Un espacio puede estar dado en términos de áreas o volúmenes. • Eventos y Procesos: Eventos individuales ocurren en un tiempo y lugar particular. Los procesos son eventos continuos y homogéneos por naturaleza. Podemos referirnos a eventos, subeventos e intervalos. • Objetos Fı́sicos: Al extender las cosas en tiempo y espacio, los objetos fı́sicos tienen mucho en común con los eventos. A veces les llaman “fluentes” (fluents) (e.g., Polonia ha cambiado de área y posición con el tiempo) • Substancias: Podemos pensar en substancias temporales y espaciales (e.g., mantequilla). Existen propiedades intrinsecas que son de la substancia del objeto más que del objeto mismo (color, temperatura en que se derrite, contenido de grasa, etc), y propiedades extrinsecas (peso, forma, etc). Un objeto con solo propiedades intrinsecas es una substancia (noun mass), con propiedades extrinsecas es un nombre contable (count noun). Un objeto puede pertenecer a las dos. • Objetos Mentales y Creencias: Se tiene que razonar acerca de creencias del mundo. Podemos pensar en agentes con racionalidad limitada (hacen un número limitado de deducciones en un tiempo limitado). En la definición de la representación de conocimiento tenemos que tomar en cuenta para qué se va a usar ese conocimiento. Podemos pensar en precondiciones de conocimiento y en efectos de conocimiento. 17 2.2 Sistemas Basados en Conocimiento Un sistema experto o sistema basado en conocimiento se puede definir como: “...sistema que resuelve problemas utilizando una representación simbólica del conocimiento humano” [Jackson 86]. Caracterı́sticas importantes: • Representación explı́cita del conocimiento. • Capacidad de razonamiento independiente de la aplicación especı́fica. • Capacidad de explicar sus conclusiones y el proceso de razonamiento. • Alto rendimiento en un dominio especı́fico. • Uso de heurı́sticas vs. modelos matemáticos. • Uso de inferencia simbólica vs. algoritmo numérico. Algunas de estas propiedades se deben a la separación entre: 1. Conocimiento especı́fico del problema - Base de Conocimiento. 2. Metodologı́a para solucionar el problema - Máquina de Inferencia. Importancia del Conocimiento Los sistemas basados en conocimiento basan su rendimiento en la cantidad y calidad del conocimiento de un dominio especı́fico y no tanto en las técnicas de solución de problemas. Diferencia de sistemas basados en conocimiento con otras técnicas: • En matemáticas, teorı́a de control y computación, se intenta resolver el problema mediante su modelado (Modelo del problema). • En sistemas expertos se ataca el problema construyendo un modelo del “experto” o resolvedor de problemas (Modelo del experto). 18 2.2.1 Clasificación de Sistemas Expertos Clasificación jerárquica: 1. Análisis (interpretación) • Identificación • Monitoreo • Diagnóstico • Predicción • Control 2. Sı́ntesis (construcción) • Especificación • Diseño • Configuración • Planeación • Ensamble • Modificación Análisis: identificación −→ predicción −→ control Sı́ntesis: especificación −→ diseño −→ ensamble 2.2.2 Arquitectura básica de un sistema experto Componentes básicos: 19 1. Base de Conocimiento (BdeC) - representación del conocimiento del dominio para la solución de problemas especı́ficos, normalmente dicho conocimiento se estructura en forma modular en forma declarativa. 2. Máquina de Inferencia - proceso que efectúa el razonamiento a partir de los datos y utilizando el conocimiento de la BdeC. Es “genérica”, es decir, que se puede aplicar a diferentes dominios sólo cambiando la BdeC. 3. Memoria de Trabajo - lugar donde se almacenan los datos de entrada y conclusiones intermedias que se van generando durante el proceso de razonamiento. 4. Interfaz de Usuario - Entrada/Salida al usuario del sistema, incluyendo, normalmente, mecanismos de pregunta (porqué) y de explicación (cómo). 5. Interfaz de Adquisición - interfaz para la adqui–sición del conocimiento del dominio, puede incluir mecanismos para facilitar su adquisición y depuramiento interactivo y para automatizar la adquisición (aprendizaje). 2.2.3 Ventajas de Sistemas Basados en Conocimiento 1. Resolver problemas para los que no existe un modelo matematico adecuado o su solución es muy compleja, como en: • Medicina • Ingenierı́a • Exploración • Diseño • Análisis 2. Preservar el conocimiento de expertos y hacerlo accesible a más personas. 3. Capacidad de explicar al usuario el proceso de razonamiento para llegar a los resultados. 20 Capı́tulo 3 Búsqueda 3.1 Solución de Problemas Asociado a la inteligencia Proceso “normal” • identificación y definición del problema • identificación del criterio de evaluación • generación de alternativas • búsqueda de una solución y evaluación • selección de opción y recomendación • implementación Solución de problemas en IA: basicamente búsqueda y evaluación Representación de espacio de estados • define un espacio de estados (espacio con todas las posibles soluciones potenciales implı́cita / explı́citamente enumerado 21 • especifica los estados iniciales o situaciones de donde empezar • especifica los estados finales (metas) o aquellos reconocidos como soluciones • especifica las reglas que definen las acciones u operaciones disponibles para moverse o ir de un estado a otro dentro del espacio del problema En este contexto el proceso de solución de problemas trata de encontrar una secuencia de operaciones que transformen al estado inicial en uno final En la práctica se necesita seguir una estrategia de búsqueda 3.2 Búsqueda • Necesaria • Heurı́sticas/criterios/métodos/principios/... Criterios • simple • discriminante entre buenas/malas opciones e.g., escoger fruta, ..., jugar ajedrez Para el problema de las 8 reinas podemos tener diferentes opciones: Solución en un solo paso: • ver la solución • consultar un vidente • ... 22 Alternativas: • solución incremental • sistemática Medios (espacio de estados): • transformar (hasta darle) • construı́r (poco a poco) Posible heurı́stica: poner una reina por renglón en un lugar que deje el mayor número de lugares sin atacar Existen problemas como el del problema del agente viajero (TSP) que son NP (no–polinomial): crece exponencialmente con el número de ciudades en el peor de los casos Cómo encontramos una buena heurı́stica? Cómo debemos usarla para que sea más efectiva? Cómo la evaluamos? Factores a considerar: • calidad de la solución (a veces puede no importar, e.g., prueba de teoremas) • diferencia en complejidad entre una solución y la solución óptima puede ser gigantesca (e.g., TSP) • en general, cómo encontrar la solución más barata Que necesitamos: 1. Estructura simbólica que represente subconjunto de soluciones potenciales (código o base de datos o agenda) 23 2. Operaciones/reglas de producción que modifiquen sı́mbolos de la base de datos y produzcan conjuntos más refinados de soluciones potenciales 3. Procedimiento de búsqueda o estrategias de control que decida que operación aplicar a la base de datos Terminologı́a: nodo, árbol, hoja, nodo–raı́z, nodo–terminal, branching factor , ramas, padres, hijos, árbol uniforme, ... • nodos expandidos (closed ) (todos los sucesores) • nodos explorados pero no expandidos (solo algunos sucesores) • nodos generados pero no explorados (open) • nodos no generados Paso computacional primordial: expansión de nodos 3.2.1 Propiedades La estrategia de control es sistemática si: 1. no deja un solo camino sin explorar (completo) 2. no explora un mismo camino más de una vez (eficiencia) Propiedades de algoritmos de búsqueda (heurı́sticas): 1. Completo: un algoritmo se dice que es completo si encuentra una solución cuando ésta existe 2. Admisible: Si garantiza regresar una solución óptima cuando ésta existe 3. Dominante: un algoritmo A1 se dice que domina a A2 si todo nodo expandido por A1 es también expandido por A2 (“más eficiente que”) 24 4. Optimo: un algoritmo es óptimo sobre una clase de algoritmos si domina todos los miembros de la clase Procedimiento de Búsqueda • Algún Camino: – Sin Información: ∗ depth–fist (en profundo) ∗ breadth–first (a lo ancho) – Con información: ∗ hill climbing ∗ beam search ∗ best first • El mejor camino: – British museum – branch and bound – (variante: dynamic programming) – A* • Juegos – minimax – alpha–beta – (variantes: progressive deepening, heuristic pruning, heuristic continuation) – SSS* – SCOUT 25 3.2.2 Depth first - backtracking (LIFO) Crea una agenda de un elemento (el nodo raiz) hasta que la agenda este vacia o se alcance la meta si el primer elemento es la meta entonces acaba si no elimina el primer elemento y anade sus sucesores al frente de la agenda Problemas: árboles con caminos de profundidad muy grande variaciones: • depth–bound (casi todos): limitar la búsqueda hasta cierto lı́mite de profundidad • Con algo de información: ordena los nodos expandidos 3.2.3 Breadth first Crea una agenda de un elemento (el nodo raiz) hasta que la agenda este vacia o se alcance la meta si el primer elemento es la meta entonces acaba si NO elimina el primer elemento y anade sus sucesores al final de la agenda Problemas: árboles con arborecencia muy grande 3.2.3.1 Complejidad Comparación en nodos buscados: Si n = profundidad del arbol 26 b = braching factor d = profundidad de un nodo meta depth–first: • mejor caso: d nodos buscados • peor caso: n X bi − i=0 n−d X bi = i=0 bn+1 − bn+1−d ≈ bn b−1 breadth–first: • mejor caso: d−1 X bd − 1 ≈ bd−1 b = b−1 i=0 i • peor caso: d X i=0 bi = bd+1 − 1 ≈ bd b−1 Si n es finito, d < n y árbol balanceado, depth–first más probable que sea mejor 3.3 3.3.1 Algoritmos con Información Hill–Climbing Crea una agenda de un elemento (el nodo raiz) hasta que la agenda este vacia o se alcance la meta si el primer elemento es la meta entonces acaba si no elimina el primer elemento y anade sus sucesores a la agenda 27 ordena todos los elementos de la agenda selecciona el mejor y elimina el resto Problemas: máximos locales, valles, picos 3.3.2 Best-first Crea una agenda de un elemento (el nodo raiz) hasta que la agenda este vacia o se alcance la meta si el primer elemento es la meta entonces acaba si no elimina el primer elemento y anade sus sucesores a la agenda ordena todos los elementos de la agenda 3.3.3 Beam search Crea una agenda de un elemento (el nodo raiz) hasta que la agenda este vacia o se alcance la meta si el primer elemento es la meta entonces acaba si no elimina el primer elemento y anade sus sucesores a la agenda ordena todos los elementos de la agenda y selecciona los N mejores (los demas eliminalos) Problemas: parecido a hill climbing pero con más “visión” 3.3.4 Espacio Usado • depth–first: (b − 1) ∗ n + 1 • breadth–first: bd 28 • hill–climbing: 1 • best–first: entre bn y bd • beam–seach: beam 3.3.5 Mejor Solución Cuando importa el costo de encontrar una solución Si g(P ) es el costo de camino o solución parcial, la solución óptima es aquella con g(P ) mı́nima. Una forma segura: búsqueda exhaustiva y seleccionar el de menor costo (Brittish Museum) Best–first no es admisible, pero con una pequeña variante ya lo es. 3.3.6 Branch and Bound Trabaja como best-first pero en cuanto se encuentra una solución sigue expandiendo los nodos de costos menores al encontrado Crea una agenda de un elemento (el nodo raiz) hasta que la agenda este vacia o se alcance la meta y los demas nodos sean de costos mayores o iguales a la meta si el primer elemento es la meta y los demas nodos son de menor o igual costo a la meta entonces acaba si no elimina el primer elemento y anade sus sucesores a la agenda ordena todos los elementos de la agenda Mejoras: usar estimaciones de los costos/distancias que faltan junto con los costos/distancias acumuladas 29 estim(total) = costo(camino recorrido) + estim(camino que falta) Las estimaciones no son perfectas, por lo que se usan sub–estimaciones subestim(total) = costo(camino recorrido) + subestim(camino que falta) De nuevo expande hasta que los demás tengan sub–estimaciones más grandes (e.g., subestimaciones de distancias entre ciudades pueden ser lineas rectas) Crea una agenda de un elemento (el nodo raiz) hasta que la agenda este vacia o se alcance la meta y los demas nodos sean de costos mayores o iguales a la meta si el primer elemento es la meta y los demas nodos son de menor o igual costo a la meta entonces acaba si no elimina el primer elemento y anade sus sucesores a la agenda ordena todos los elementos de la agenda de acuerdo al costo acumulado mas las subestimaciones de los que falta 3.3.7 Dynamic Programming Idea: no explorar caminos a los que yá llegamos por caminos más cortos/baratos El algoritmo es igual sólo hay que añadir la condición: elimina todos los caminos que lleguen al mismo nodo excepto el de menor costo 30 3.3.8 A*: combinación de todos Crea una agenda de un elemento (el nodo raiz) hasta que la agenda este vacia o se alcance la meta y los demas nodos sean de costos mayores o iguales a la meta si el primer elemento es la meta y los demas nodos son de menor o igual costo a la meta entonces acaba si no elimina el primer elemento y anade sus sucesores a la agenda ordena todos los elementos de la agenda de acuerdo al costo acumulado mas las subestimaciones de los que falta elimina todos los caminos que lleguen al mismo nodo, excepto el de menor costo Cuando usamos cada una? • si el tamaño de búsqueda es pequeño (rara vez), podemos hacer búsqueda exhaustiva • sin información depth–first con progressive–deepening • branch and bound en general está bien • dynamic programming cuando existen muchos posibles caminos con cruces • A* cuando podemos tener una buena subestimación Todas estas estrategias tienen su equivalente para árboles AND–OR Para hacer un depth first en un árbol del tipo AND – OR IF alguno de los nodos AND falla, realiza backtracking hasta el ultimo nodo OR IF alguno de los nodos OR falla realiza backtracking al nodo inmediato anterior 31 La idea se puede extender a best–first Hay que tener cuidado con “el mejor” y “el candidato” Antes: una agenda con nodos OR Ahora: cada nodo puede tener varios nodos asociados En general se usan 2 funciones de estimación: • f1: evalúa sobre los nodos (como antes) • f2: evalúa sobre árboles Para etiquetar Solución (S) / no–solución (N): IF nodo terminal es meta: S Else: N IF nodo no–terminal es AND: S si todos son S N si alguno es N IF nodo no–terminal es OR: S si alguno es S N si todos son N Similarmente para A* existe un correspondiente AO* Como encontrar heurı́sticas? • analizando modelos simplificados • soluciones por descomposición: si cada submeta se puede solucionar independientement de las otras • soluciones parcialmente ordenadas • usar probabilidades 32 3.3.9 Búsqueda en Lisp (defun busca (nodoI, nodoF) (busca2 (list nodoI) nodoF)) (defun busca2 (agenda nodoF) (cond ((null agenda) nil) ((equal (car agenda) nodoF)) (t (busca2 (nva_agenda (car agenda) (cdr agenda)) nodoF)))) ; breath-first (defun nva_agenda (nodo agenda) (append (expande nodo) agenda)) ; depth search (defun nva_agenda (nodo agenda) (append agenda (expande nodo))) ; best-first search (defun nva_agenda (nodo agenda) (sort (append (expande nodo) agenda))) ; hill-climbing (defun nva_agenda (nodo agenda) (list (car (sort (append (expande nodo) agenda))))) ; beam search (defun nva_agenda (beam nodo agenda) (nthelems beam (sort (append (expande nodo) agenda)))) 3.3.10 Búsqueda en Prolog busca(NodoI,NodoF) :busca_aux([NodoI],NodoF). 33 busca_aux([NodoF|_],NodoF). busca_aux(Agenda,NodoF) :nva_agenda(Agenda,NAgenda), busca_aux(NAgenda,NodoF). % depth-first nva_agenda([N1|Agenda],NAgenda) :expande(N1,Nodos), append(Nodos,Agenda,NAgenda). % breadth-first nva_agenda([N1|Agenda],NAgenda) :expande(N1,Nodos), append(Agenda,Nodos,NAgenda). % best first nva_agenda([N1|Agenda],NAgenda) :expande(N1,Nodos), append(Nodos,Agenda,AgendaInt), sort(AgendaInt,NAgenda). % hill-climbing nva_agenda([N1|Agenda],[Mejor]) :expande(N1,Nodos), append(Nodos,Agenda,AgendaInt), sort(AgendaInt,[Mejor|_]). 34 Capı́tulo 4 Lógica Teorı́a de Pruebas Axiomas derivación Teorı́a de Modelos interpretación teoremas valores de verdad Importante: que las cosas que queremos que sean verdaderas coicidan con las que podemos probar Osea: lo que nos implica la teorı́a es lo que podemos computar Caracterı́sticas: • sintaxis y semántica bien definidas • reglas de inferencia 35 4.0.1 Historia • Desde los griegos (Aristóteles) • En computación desde que aparecieron las máquinas • Prueba de teoremas e.g., Davies 1954 su sistema probó que la suma de 2 pares es par • Otros usaron lógica para estudiar el razonamiento utilizado para resolver problemas (e.g., Newell, Shaw y Simon ’55: The Logic Theory Machine) • Después de cierto éxito inicial se vió que las reglas de inferencia utilizadas no eran adecuadas para las máquinas y se perdió interes • Hasta 1965 Robinson y resolución 4.1 Lógica Proposicional Permite expresar y razonar con declaraciones que son o verdaderas o falsas e.g., el Tec es mejor que el Itam lógica es fácil Este tipo de declaraciones se llaman proposiciones y se denotan en lógica proposicional con letras mayúsculas (e.g., P, Q, . . .) P ’s y Q’s también se llaman proposiciones atómicas o átomos Los átomos se pueden combinar con conectores lógicos (dando proposiciones compuestas) negación: ∼, ¬ conjunción: &, ∧ disjunción: ∨ implicación: ⊃, → 36 doble implicación: ↔ e.g., G = ’Lógica proposicional es fácil’ D = ’me estoy aburriendo’ G ∧ D = ’Lógica proposicional es fácil’ y ’me estoy aburriendo’ Solo algunas combinaciones de átomos y conectores son permitidas: formulas bien formadas (wff) Una wff en lógica proposicional es una expresión que puede ser de la siguiente forma: 1. un átomo es un wff 2. Si F es wff entonces ¬F también es 3. Si F y G son wff entonces: F ∧ G, F ∨ G, F → G y F ↔ G son wff 4. ningúna otra formula es wff Prioridad: ¬, ∧, ∨, →, ↔ wff es solo sintáxis, no dice si la fórmula es verdadera o falsa (i.e., no dice nada de su semántica) El significado de una fórmula proposicional se puede expresar por medio de un función: w : prop → {true, f alse} La función w es una función de interpretación que satisface: F T T F F G T F T F ¬F F F T T F ∧G T F F F F ∨G F →G T T T F T T F T 37 F ↔G T F F T SI w es una interpretación que asigna a una fórmula dada, el valor de verdad true, Entonces w se dice ser un modelo de F Para N átomos hay 2N cobinaciones para formar una tabla de verdad Una fórmula se dice válida si es verdadera bajo cualquier interpretación (tautologı́a) Una fórmula es iválida si no es válida Una fórmula es insatisfascible o inconsistente si es falsa bajo cualquier interpretación (contradicción) Else es satisfascible o consistente Una fórmula es válida cuando su negación es insatisfascible y viceversa válido inválido siempre cierto a veces T o F siempre falso satisfacible insatisfacible Dos fórmulas F y G son equivalentes (F ≡ G) si los valores de verdad de F y G son iguales bajo cualquier interpretación Leyes de equivalencias: ¬(¬F ) ≡ F F ∨G ≡G∨F F ∧G ≡G∧F (F ∧ G) ∧ H ≡ F ∧ (G ∧ H) (F ∨ G) ∨ H ≡ F ∨ (G ∨ H) F ∨ (G ∧ H) ≡ (F ∨ G) ∧ (F ∨ H) F ∧ (G ∨ H) ≡ (F ∧ G) ∨ (F ∧ H) F ↔G≡F →G∧G→F F → G ≡ ¬F ∨ G ¬(F ∧ G) ≡ ¬F ∨ ¬G ¬(F ∨ G) ≡ ¬F ∧ ¬G Una fórmula G se dice que es una consequencia lógica de un conjunto de fórmulas F = {F1 , . . . , Fn }, N ≥ 1, denotado por F |= G si para cada inter- 38 pretación w para la cual w(F1 ∧ F2 ∧ . . . Fn ) = true, entonces w(G) = true F ≡ G SI F |= G y G |= F o |= (F ↔ G) Satisfacibilidad, valides, equivalencia y consecuencia lógica son nociones semánticas (generalmente establecidas por medio de tablas de verdad) Para derivar consecuencias lógicas también se pueden hacer por medio de operaciones exclusivamente sintáctivas (e.g., modus ponens, modus tollens). Sistemas que tienen operaciones sintácticas se llamana sistemas de deducción (formales), e.g, un sistema axiomático con un lenguaje formal (e.g., lógica proposicional) un conjunto de reglas de inferencia (las operaciones sintácticas) y un conjunto de axiomas. 4.2 Logica de predicados de primer orden En lógica proposicional los átomos son los constituyentes de las fórmulas y son: true o false Limitación: no puede expresar propiedades generales de casos similares Sı́mbolos: • Sı́mbolos de predicados (mayúsculas) asociados con su aridad (N) o número de argumentos (Si aridad = 0 ⇒ proposiciones (átomos)) • Variables: minúsculas (x,y,z) • Sı́mbolos funcionales: minúsculas asociados con su número de argumentos (funciones con aridad = 0 ⇒ constantes) • Conectores lógicos • Cuantificadores: universal (para toda x) ∀x y existencial (existe una x) ∃x • Sı́mbolos auxiliares ’(’, ’)’, ’,’. 39 Un término es: una constante, variable o una función de términos Una fórmula atómica o átomo es un predicado de N términos Una fórmula bien formada (wff) en lógica de predicados es: • un átomo • si F es wff entonces ¬F también lo es • Si F y G son wff, F ∧ G, F ∨ G, F → G, F ↔ G son wff • Si F es wff y x es una variable libre de F , entonces ∀xF y ∃xF son wff (la variable x se dice “bound”) • ningúna otra formula es wff variables libres: sin cuantificadores Fórmula cerrada (“closed”) u oración (“sentence”): sin variabes libres El alcance (“scope”) de los cuantificadores 4.2.1 Semántica En lógica de primer orden se asocia una estructura representando la “realidad” (basicamente el dominio) La estructura S tiene: • un conjunto no vacı́o de elementos D, llamados el dominio de S • un conjunto de funciones de aridad n definidas en D n , {fin : D n → D} • un conjunto no vació de mapeos, predicados, de D m a {true, f alse} No se puede saber el valor de verdad de una fórmula hasta que no se especifique con que elementos de la estructura se deben de asociar los elementos de la fórmula 40 Una asignación v al conjunto de formulas F dada una estructura S con dominio D es un mapeo del conjunto de variables en F a D I(c) = d, d ∈ D, donde d es una constante I(x) = v(x), donde x es una variable I(f (t1 , . . . , tn )) = f (I(t1 ), . . . , I(tn )) I(P (t1 , . . . , tn )) = P (I(t1 ), . . . , I(tn )) ¬F, F ∧ G, F ∨ G, F → G, F ↔ G, como antes ∃xF es true si existe una asignación para la cual F sea verdadera ∀xF es true si para toda una asignación F es verdadera Mas equivalencias: ¬∃xP (x) ≡ ∀x¬P (x) ¬∀xP (x) ≡ ∃x¬P (x) ∀x(P (x) ∧ Q(x)) ≡ ∀xP (x) ∧ ∀xQ(x) ∃x(P (x) ∨ Q(x)) ≡ ∃xP (x) ∨ ∃xQ(x) ∀xP (x) ≡ ∀yP (y) ∃xP (x) ≡ ∃yP (y) Una fórmula cerrada con un modelo se dice satisfacible 4.2.2 Cláusulas Forma utilizada en prueba de teoremas y programación lógica Una literal: un átomo o su negación Una clásula: es una fórmula cerrada de la forma: ∀x1 . . . ∀xs (L1 ∨ . . . ∨ Lm ) Equivalencias: ∀x1 . . . ∀xs (A1 ∨ . . . An ∨ ¬B1 . . . ∨ ¬Bm ) ≡ ∀x1 . . . ∀xs (¬B1 ∧ . . . ∧ Bm → A1 ∨ . . . An ) Se escribe normalmente como: A1 , . . . , An ← B1 , . . . Bm 41 Interpretación procedural: las A’s son las conclusiones y las B’s las condiciones Pasos para pasar una wff a un conjunto de cláusulas: 1. eliminar implicación 2. juntar negación 3. renombrar variables 4. eliminar cuantificadores existenciales: Si una variable existencial (y) no está dentro del alcance (scope) de un cuantificador universal, cambiar la variable por un nuevo sı́mbolo Si está dentro del alcance de cuantificadores universales con variables (x1 , . . . , xn ) cambiar la variable por una función g(x1 , . . . , xn ) = y que refleje la posible dependencia (funciones Skolem) 5. cambiar a una forma prenex normal (poniendo todos los cuantificadores universales al frente) 6. pasar a su forma normal conjuntiva (i.e., una conjunción de fórmulas, cada una siendo una disjunción) 7. eliminar cuantificadores universales 8. pasar a un conjunto de cláusulas Ejemplo Una cláusula de Horn: a lo más una literal positiva A← ← B1 , . . . , Bn A ← B1 , . . . , Bn 42 4.2.2.1 Razonamiento en lógica: reglas de inferencia Modus Ponens P ∧ (Q ∨ R), P ∧ (Q ∨ R) → S —————————————– S {P ∧ (Q ∨ R), P ∧ (Q ∨ R) → S} ⊢ S Estas reglas solo hacen manipulación sintáctica (son formas procedurales) Lo interesante es ver las formas procedurales semánticas están relacionadas con las sintácticas Una fórmula es robusta/válida (sound) si S ⊢ F entonces S |= F Osea una colección de reglas de inferencia es válida si preserva la noción de verdad bajo las operaciones de derivación Una fórmula es completa (complete) si S |= F entonces S ⊢ F Lo importante es: existe un procedimiento de prueba mecánica, usando una colección de reglas de inferencia que son válidas y completas, que sea capaz de determinar si una fórmula F puede o no derivarse de un conjunto de fórmulas S? En 1936, Church y Turing mostraron independientemente que ese procedimiento no existe para lógica de primer orden: indecibilidad Solo se puede mostrar que si F es consecuencia lógica de S Lógica proposicional si es decidible! 4.2.2.2 Resolución Es sound y complete Resolución solo sirve para fórmulas en forma de cláusulas 43 Idea: prueba por refutación Para probar: P ⊢ Q, hacer W = P ∪ {¬Q} y probar que W es insatisfacible Ejemplo sencillo Sean C1 y C2 dos cláusulas con literales L1 y L2 (donde L1 y L2 son complementarias). La resolución de C1 y C2 produce: C = C1′ ∪ C2′ donde: C1′ = C1 − {L1 } y C2′ = C2 − {L2 } (eliminando literales redundantes) Ejemplo de derivación Para lógica de primer orden: substitución y unificación Una substitución σ es un conjunto finito de la forma: {t1 /x1 , . . . , tn /xn }, donde las xi s son variables diferentes y las ti s son términos diferentes a las xi s. Una expresión es un término, una literal una conjunción o una disjunción de literales Una substitución (σ) se puede aplicar a una expresión (E), denotado como: Eσ, generando una nueva expresión (una instancia de E) Sea θ = {t1 /x1 , . . . , tm /xm } y σ = {s1 /y1 , . . . , sn /tn }. La composición de estas substituciones, denotado por: θσ se obtiene quitando del conjunto: {t1 σ/x1 , . . . , tm σ/xm , s1 /y1 , . . . , sn /tn } todos los elementos: ti σ/xi para los cuales: xi = ti σ y todos los elementos sj /yj donde yj ∈ {x1 , . . . , xm } Eσσ = Eσ E(µσ)θ = Eµ(σθ) Una substitución σ es un unificador de un conjunto de expresiones {E1 , . . . , Em } si E1 σ = . . . = Em σ Un unificador θ, es el unificador más general (mgu) de un conjunto de expresiones E, si para cada unificador σ de E, existe una substitución λ tal que σ = θλ Para hacer resolución en lógica de primer orden tenemos que comparar si dos literales complementarias unifican. El algoritmo de unificación construye un 44 mgu de un conjunto de expresiones. Se tienen que renombrar variables que tengan el mismo nombre en las cláusulas a resolver Sean C1 y C2 dos cláusulas con literales L1 y L2 respectivamente. Si L1 y ¬L2 tienen un mgu σ, el resolvente de C1 y C2 es la cláusula: (C1 σ −{L1 σ})∪ (C2 σ − {L2 σ}) Puede existir más de un resolvente Si una o más literales en clásula C tienen un mgu σ, la cláusula Cσ se dice ser un factor de C En su forma general, resolución permite cancelar más de una literal de las cláusulas padres, al computar el factor de estas Un resolvente de cláusulas C1 y C2 es: 1. resolvente de C1 y C2 2. resolvente de C1 y un factor de C2 3. resolvente de un factor de C1 y C2 4. resolvente de un factor de C1 y un factor de C2 El algoritmo de unificación no es determinı́stico (se pueden seleccionar las cláusulas de varias formas) Existen diferentes estrategias de resolución, e.g., semántica, lineal, SLD 4.3 Estrategias de Resolución Problemas de eficiencia, generación de cláusulas redundantes e.g., S = {P, ¬P ∨ Q, ¬P ∨ ¬Q ∨ R, ¬R} Meta: restringir el número de cláusulas redundantes 45 4.3.1 Resolución Semántica controlada por la semántica declarativa Idea: dividir al conjunto insatisfacible de cláusulas C, en dos conjuntos, basados en una interpretación I particular: • S1 los que son verdaderos y • S2 los que son falsos Como S es insatisfacible, no existe una interpretación que haga los dos conjuntos verdaderos o falsos. Escoger una claúsula de S1 y una de S2 y añadir el resolvente a donde le corresponda e.g., S = {P, ¬P ∨ Q, ¬P ∨ ¬Q ∨ R, ¬R} I : (interpretación) I(P ) = f alse I(Q) = f alse I(R) = f alse S1 = {P } S2 = {¬P ∨ Q, ¬P ∨ ¬Q ∨ R, ¬R} Variantes: asignar un orden a las literales de las cláusulas 4.3.2 Estrategia de Conjunto de Soporte (set-of-support strategy Idea: Como se hace por refutación (i.e., W = S ∪ {¬G}), no seleccionar dos cláusulas de S. Poner {G} en un conjunto de soporte y hacer resolución con un elemento de S y uno del conjunto de soporte. El resolvente añadirlo al conjunto de soporte. Esta estrategia es sound y complete 46 e.g., S = {P, ¬P ∨ Q, ¬P ∨ ¬Q ∨ R} conjunto de soporte: {¬R} 4.3.3 Resolución SLD Seleccionar una literal, usando una estrategia Lineal, restringido a cláusulas Definitivas Un caso especial de resolución lineal Resolución lineal: el último resolvente se toma como cláusula padre La otra cláusula padre se toma de otro resolvente o del conjunto original Una forma especial de resolución lineal es: input resolution. En esta estrategia, cada paso de resolución, exceptuando el primero, se toma del último resolvente (cláusulas metas) y del conjunto original (cláusulas de entrada) Input resolution es completa para cláusulas de Horn, pero no para cláusulas en general Una variante de resolución de entrada es resolución SLD para cláusulas de Horn. Resolución de entrada se extiende con una regla de selección que determina en cada paso que literal de la cláusula meta es seleccionada. e.g., {R(g(x) ← T (x, y, f (y)), T (a, b, f (a)), P (v, w) ← R(v)}, Meta: {← P (u, b)} Resolución SLD es sound y complete para cláusulas de Horn La estrategia de búsqueda afecta el resultado e.g., depth-first con diferente orden de cláusulas: C1 = P (x) ← P (f (x)) C2 = P (f (f (a))) ← Meta: ← P (a) Aunque resolución SLD es sound y complete para cláusulas de Horn, en la práctica (por razones de eficiencia) se hacen variantes 47 • eliminar el “occur check” de unificación • usar un orden especı́fico Esto es lo que usa básicamente PROLOG 4.3.4 Lógica como representación de conocimiento Lógica proposicional demasiado poco expresiva (aunque se construyen sistemas bajo esta representación, e.g., árboles de falla, de decisión, etc.) Lógica de primer orden es suficientemente expresiva, pero el método de razonamiento es NP-completo y la lógica es indecidible Cláusulas de Horn generalmente adecuadas aunque son menos expresivas Comparado con otras representaciones, lógica tiene una sintáxis y semántica clara. Problemas de lógica de primer para representar conocimiento • difı́cil expresar todo en fórmulas lógicas • razonar con tiempo, meta-inferencia • información incompleta o imprecisa • excepciones Posibles soluciones, usar lógicas: • no-monotónicas • modales • temporales • difuzas 48 4.4 4.4.1 Artı́culos Relacionados con Lógica Programs with Common Sense, J.McCarthy (58) Se propone un sistema (The Advice Taker ) para resolver problemas manipulando expresiones dentro de un lenguaje formal. Se dice que un programa tiene sentido común si puede deducir automáticamente un gran variedad de consecuencias de cualquier cosa que se le diga y de su conocimiento previo. Objetivo final: hacer programas que aprendan de sus experiencias. Si se quiere que una máquina aprenda una abstracción, primero debemos de poder representarlas en forma sencilla. Caracterı́sticas de un sistema inteligente: 1. todo el comportamiento debe de poderse representar 2. cambios en comportamiento deben de poder ser expresados en forma sencilla (se basa en éste punto) 3. todos los aspectos del comportamiento (excepto los rutinarios) no deben de ser provables 4. el sistema debe de tener o adquirir conceptos a partir de éxitos parciales (éxitos o fracasos totales serán muy poco probables) 5. el sistema debe de ser capaz de crear subrutinas (con conceptos sobre lo deseable de una subrutina bajo ciertas condiciones) La idea es que se le instruya en forma declarativa. Ventajas: • puede considerar conocimiento previo • se pueden derivar consecuencias lógicas • no depende demasiado del orden en que le instruya 49 • depende poco del estado actual Caracterı́sticas del advice taker: 1. existe un método para representar expresiones (por medio de listas) 2. algunas de las expresiones son declaradas en forma declarativa en un sistema lógico y se tiene (muy probablemente) una sola regla de inferencia (combinando substitución de variables con modus ponens) 3. todas las deducciones inmediatas se calculan (la “inteligencia” viene del procedimiento que escoge las premisas a utilizar) aunque no se trata de aplicar las deducciones inmediatas a todo lo que sabe 4. no todas las expresiones son declarativas, también existen objetos con propiedades, funciones, fórmulas, programas (se pueden incluir deducciones como propiedades para no repetir el proceso) 5. opera en forma cı́clica, la rutina de deducciones inmediatas se aplica a una lista de premisas y de individuos, cuyas conclusiones pueden tener oraciones imperativas - acciones (deducción ⇐⇒ operación) Se espera que se tenga un conjunto de proposiciones iniciales genéricas que le permitan exhibir cierto sentido común. Por ejemplo: se pone la meta en(yo,aeropuerto), trata de encontrarla en su lista de propiedades y si no la encuentra, selecciona otras que tengan que ver con trasportarse de un lugar a otro. Este proceso continua hasta los niveles más altos de abstracción en donde de tienen declaraciones de tipo estı́mulo–respuesta (sigue means-ends analysis). 4.4.1.1 Situaciones, Acciones y Leyes Causales La inteligencia humana depende de que podemos representar hechos de nuestra situación, nuetras metas, y los efectos de las acciones que hacemos. La idea del Adice Taker es que se pueda mejorar el comportamiento del sistema dando consejos en lugar de reprogramandolo. 50 Se requiere especificar hechos acerca de situaciones, metas y acciones y conocimiento acerca de los medios y fines como axiomas. • Propiedades generales de causalidad y de la posibilidad y el resultado de acciones • El realizar acciones y lograr metas se obtiene de consecuencias lógicas Situación: descripción parcial en un estado en el tiempo (e.g., lloviendo(s), en(casa,yo)(s), etc.). fluent: predicados cuyo argumento es una situación (i.e., dependen del tiempo). Causalidad: se propone un predicado de segundo orden: cause(π)(s) (i.e., la situación s lleva al futuro a una situación que satisface el “fluente” π). e.g., ∀s∀p(P ersona(p) ∧ Lloviendo ∧ Af uera(p) ⊃ Cause(Mojado(p)))(s). Se puede utilizar una interpretación modal (i.e., tomar a cause como operador modal) para evitar lógica de 2o orden (la interpretación modal ignora los argumentos de las situaciones (s)). Acciones: para realizar cierta acción en una situación dada. Define el operador can(p, π)(s) (i.e., una persona p puede hacer que la situación s satisfaga π) e.g., can(p, mover(p, obj, lug))(s). can y cause tienden a estar en la misma fórmula. Para representar metas que requieran de varias acciones consectutivas define: canult(p, π), que significa que una persona p puede en ultima instancia llegar a una situación que satisfaga π. Ejemplos: monkey & banana, juego de dos personas. En resúmen: sistema que razona deductivamente a partir de conocimiento hasta concluı́r realizar una serie de acciones, éstas las realiza y el ciclo continua. Muestra como (en principio) con lógica de primer orden (modal) puede realizar el razonamiento que quiere (situación, causalidad y acciones). 51 4.4.2 Prolegomena to a Theory of Mechanized Formal Reasoning, R. Weyhrauch (80) Descripción de FOL. Puntos: • Usa lógica con tipos (tipeada) en forma particular • Representa explı́citamente estructuras de simulación (modelos parciales) • Usa un evaluador de propósito general • Utiliza principios de reflección para conectar la teorı́a con la meta-teorı́a • Esta reflección sirven para relacionar la parte declarativa y procedural FOL incluye igualdad y tipos de variables (sorted). Simulation Structures: un análogo mecanizado de la noción de modelo (i.e. hace interpretaciones en forma mecánica). Parte computable de un modelo. En la estructura, cada predicado tiene asociado un algoritmo que decide si el predicado evalúa a T, F o no se, cada función tiene asociada un algoritmo que regresan un valor o no se. No son modelos, y debido a la falta de una propiedad de cerradura, su salida puede ser: “no se”. No puede calcular la verdad/falsedad de formulas con cuantificadores (esto en general requiere de una cantidad infinita de cálculo, que es una de las razones de tener lógica de primer orden). Las estructuras de simulación nos permiten ver la relación entre los objetos con los que estamos razonando y las palabras que usamos para referirnos a ellos. Simplificador Sintáctico: permite especificar una cantidad arbitraria de equivalencias lógicas y las utiliza para simplificar fórmulas hasta que no se puede utilizar ninguna otra. 52 Evaluador de Expresiones: Tiene un evaluador de expresiones en lógica de primer orden (con él, considera lógica de primer orden como un lenguaje de programación). Toma cualquier conjunto de oraciones en lógica de primer orden y una estructura de simulación arbitraria y realiza una evaluación sintáctica y semántica. Meta–Teorı́a: Para ésto, requiere “hablar” sobre los objetos que está manipulando. Lo que se tiene en FOL se puede ver como una estructra de datos que tiene un lenguaje, información acerca de los objetos de los que habla el lenguaje y hechos acerca de los objetos expresados en el lenguaje. La estructura se puede ver como un análogo mecanizable de una teorı́a, por lo que se puede razonar acerca de ella al considerarla como un objeto dentro de otra teorı́a. El uso de meta-teorı́a permite reducir pruebas. Se asume que la metateorı́a es válida (sound ). Como cualquier teorı́a, la meta-teorı́a tiene predicados (e.g., es una wff , sı́mbolos funcionales (e.g., para hacer substituciones), y constantes (e.g., wff , modelos, etc.). Reflexión: El principio de reflexión es una declaración acerca de la relación entre la teorı́a y la metateorı́a. Lo más relevante es que las pruebas de teoremas en la teorı́a pueden cambiarse por evaluaciones en la meta-teorı́a. En principio, podrı́amos pensar en meta-meta-teorı́as y en razonamientos acerca de FOL mismo. Es diferente pensar en validez (soundness) de las reglas de inferencia dentro de sistemas auto-reflexivos, ya que las reglas de inferencia pueden cambiar los modelos de la teorı́a y los hechos ya derivados. 53 Conclusiones: • Utiliza representaciones de objetos sobre los que razona junto con representaciones de los hechos acerca de esos objetos (estructuras de simulación) • El verificador de pruebas se puede ver como una estructura de simulación natural en la meta-teorı́a dandole una interpretación de lo que serı́a • El principio de reflección resuelve la controversia declarativo vs. procedural (depende desde donde se vea) 4.4.3 The Role of Logic in Knowledge Representacion and Commonsense Reasoning, R. Moore (82) “Lógica es adecuada para el análisis de conocimiento, pero no como herramienta de razonamiento de agentes inteligentes” [Newell] Un formalismo debe de tener una semántica si quiere realmente representar conocimiento, i.e., correspondencia entre las expresiones y el mundo real (hasta aquı́ todo bien). El punto controversial: los lenguajes lógicos y la inferencia deductiva no son adecuados para construir sistemas con razonamiento de sentido común. El autor argumenta que hay cosas que sólo se pueden expresar en lógica, e.g., capacidad de ver que una proposición existencial es verdadera si saber exactamente qué objeto la hace verdadera, reconocer que algo o su negación deben de ser verdaderos, razonar por casos, etc. Las deficiencias atribuidas a la lógica pueden deberse más a cuestiones implementacionales (e.g., podemos tener gráfos). Mas que pensar en representaciones lógicas, podemos pensar en que’ atributos lógicos se requieren para una representación de propósito general. 54 Un atributo básico de lógica serı́a: representar al mundo en términos de objetos, sus propiedades y relaciones (donde objetos puede ser casi cualquier cosa). En particular, interesa cómo describir una situación con conocimiento incompleto. • la cuantificación existencial permite decir que algo tiene una propiedad sin especificar quien • la cuantificación universal permite decir que todos tienen una propiedad sin tener que enumerarlos • La disjunción nos permite decir que al menos una de dos expresiones es verdadera sin tener que especificar cual • La negación nos permite distinguir entre saber que algo es falso o no saber si es verdadero • Podemos tener diferentes expresiones sin saber que se refieren al mismo objeto a menos que lo digamos por medio de igualdad Algunos de los atributos son generales y deben de estar en cualquier representación de cualquier dominio (cualquier representación con esos atributos es una lógica). Fallas de los primeros sistemas (60’s): tratar de usar probadores genéricos de teorémas como resolvedores genéricos de problemas. El problema no está en la lógica o en la deducción, pero en saber que inferencias hacer (el espacio de búsqueda crece exponencialmente con el número de fórmulas). El uso eficiente de una aseveración particular normalmente depende en cuál es esa aseveración y en qué contexto está embebida (e.g., si se va a hacer backward-chaninig o forward-chainig, etc). Otro punto importante es cómo formalizar las cosas (e.g., arriba en términos de sobre). 55 Resumiendo: lógica es adecuada, lo que se requiere son mejores procesos deductivos y/o extensiones a la lógica más que pensar en desecharla. 56 Capı́tulo 5 Sistemas de Reglas de Producción 5.1 Introducción Normalmente se asocia la inteligencia con “regularidades” y el comportamiento inteligente parece que ejecuta reglas. Newell y Simon 70’s proponen los sistemas de producción como un modelo psicológico del comportamiento humano. En este modelo parte del conocimiento humano se representa en forma de producciones o reglas de producción. Se asemeja al proceso de memoria humano: memoria a corto plazo (deducciones intermedias) y memoria a largo plazo (producciones). Normalmente las reglas de producción se ven como un formalismo en el cual representar el conocimiento y es el formalismo más usado en los sistemas expertos. Credo: los expertos tienden a expresar sus técnicas de solución de problemas en forma de reglas “situación - acción”. 57 Las reglas de producción es un formalismo que se uso desde antes en teorı́a de autómatas, gramáticas formales y en el diseño de lenguajes de programación. Originalmente las producciones eran reglas gramaticales para manipular cadenas de sı́mbolos. Post ’43 estudió las propiedades de sistemas de reglas (que llamó sistemas canónicos). e.g., A = {a,b,c} (alfabeto) Axiomas: a, b, c, aa, bb, cc Producciones: $ -> a$a $ -> b$b $ -> c$c Estas reglas nos generan palı́ndromes, y podemos rastrear que producciones se aplicaron (e.g., bacab). Las reglas de producción usadas en los sistemas expertos difieren un poco de las producciones, pero los principios son los mismos. Reglas de producción manipulan estructuras de sı́mbolos, como listas o vectores (más que strings). Se tiene: • Un conjunto N de nombres de objetos en el dominio • Un conjunto P de propiedades que representan atributos de los objetos • Un conjunto V de valores que los atributos pueden tener Generalmente se usa una tripleta: (objeto atributo valor). A veeces las reglas se ponen: P1 , . . . , Pm → Q1 , . . . , Qn . Que significa: IF las condiciones P1 yP2y . . . yPm se cumplen THEN realiza las acciones (o 58 concluye) Q1 y . . . yQn . E.g., IF Animal es un carnivoro AND Animal color cafe AND Animal tiene rayas THEN Animal es tigre Propiedades de las reglas: • Modularidad: cada reglas define un pequeño y relativamente idependiente pedazo de conocimiento • Incrementalidad: nuevas reglas pueden ser añadidas a la base de conocimiento relativamente independiente de las demás • Modificabilidad: como consecuencia de la modularidad, las reglas viejas pueden ser modificadas • Transparencia: habilidad de explicar sus decisiones y soluciones Un sistema de producción tiene: • un conjunto de reglas (base de conocimiento) • un interprete de reglas o máquina de inferencia (que decide que regla aplicar, controla la actividad del sistema) • una memoria de trabajo (que guarda los datos, metas, y resultados intermedios) 5.1.1 Memoria de Trabajo Guarda inferencias/aseveraciones temporalmente. Es la estructura de datos que es observada y manipulada/cambiada por las reglas. 59 Los datos de la memoria de trabajo son los que permiten cumplir las condiciones de las reglas y dispararlas (i.e., las reglas verifican la existencia de elementos en la memoria de trabajo para disparar). Las acciones de las reglas: modifican, añaden o quitan elementos de la memoria de trabajo (o producen efectos secundarios). 5.1.2 Máquina de Inferencia Es quien controla que reglas disparan. Generalmente el ciclo se empieza con unos datos iniciales y se para cuando no hay reglas aplicables (o por una regla). El interprete o máquina de inferencia realiza el ciclo reconoce-actua: 1. aparea las condiciones (o acciones) de las reglas con los elementos de la memoria de trabajo 2. si existe más de una regla que puede disparar, escoge una (resolución de conflictos) 3. aplica la regla (ejecuta las acciones/conclusiones) que puede involucrar cambios la memoria de trabajo El sentido/importancia/contribución de cada regla depende de su contribución dentro de todas las reglas para solucionar el problema. Existen diferentes estrategias de razonamiento: a nivel global las reglas pueden ser llevadas en un encadenamiento hacia adelante o en un encadenamiento hacia atrás. Encadenamiento hacia adelante (forward chaining/ data driven/ event driven/ bottom-up) parte de hechos para cumplir condiciones y ejecutar acciones (creando nuevos hechos). Encadenamiento hacia atrás (backward chaining/ goal driven/ expectation driven/ top-down) parte de los estados meta y trata de cumplir las condiciones necesarias para llegar a ellos. 60 Aunque se llame goal-driven el encadenamiento hacia atrás y data-driven el hacia adelante ésto no es completamente cierto, se puede proceder de metas hacia hechos con encadenamiento hacia adelante y viceversa. Una es la técnica de razonamiento (aparear lados izquierdos o derechos) y otra el proceso (de metas a hechos o viceversa). Se pueden tener estrategias que hacen combinación de ambos: oportunı́stico. e.g., $ -> a$a $ -> b$b $ -> c$c Podemos dado c usar las reglas P1, P1, P3, P2, P3 y llegar a: cbcaacaacbc. Otra forma es tomar cbcaacaacbc y ver que reglas se aplican hasta llegar a algo conocido (i.e., c). El proceso de inferencia se puede ver como un espacio de búsqueda AND/OR, con nodos AND siendo todas las condiciones/ acciones que se tienen que cumplir y los nodos OR siendo las posibles reglas a disparar/ considerar. 5.1.2.1 Cuando usamos cada uno? Depende del propósito y la forma del espacio de búsqueda. Si el proposito es decubrir todo lo que se pueda deducir de un conjunto de hechos, el árbol se “achica”, tenemos claras las entradas pero no las conclusiones, entonces encadenamiento hacia adelante. Si el propósito es verificar/negar una conclusión, el árbol se “ensancha”, tenemos claras las metas pero no las entradas, entonces encadenamiento hacia atrás. Si tenemos claras las entradas y metas, no necesitamos nada. e.g., un vendedor usa Fwd, el que lo entrena usa Bwd. 61 If If If If If A B D N H and and and and and B C E G M Then P Then M and F Then N then M Then Q Fwd recorre el árbol → Bwd recorre el árbol ← Con las reglas podemos resolver preguntas: How, e.g., cómo supiste N? WHY, e.g., porqué quieres saber A? Ejemplo sencillo: R1: R2: R3: R4: R5: R6: If If If If If If verde Then vegetal en-caja-pequeña Then delicado refrigerado Or vegetal Then se-descompone pesado And barato And Not se-descompone Then ladrillo se-descompone And pesado Then pozole pesado And vegetal Then melón Si tenemos en la memoria de trabajo: verde y pesado [verde, [verde, [verde, [verde, [verde, pesado] pesado, pesado, pesado, pesado, vegetal] vegetal, vegetal, vegetal, (R1) se-descompone] (R3) se-descompone, pozole] (R5) se-descompone, pozole, melón] (R6) Reglas: R1: If una persona tiene N$30,000 y tiene grado de licenciatura Then debe de invertir a plazo fijo R2: If una persona gana mas de N$120,000 al anio y tiene licenciatura Then debe de invertir en acciones 62 R3: If una persona es menor de 30 y esta invirtiendo a plazo fijo Then debe invertir en acciones R4: If una persona es menor de 30 Then tiene nivel licenciatura R5: If una persona quiere invertir en acciones Then debe de invertir en Telmex Hechos: Tiene N$30,000 y tiene 25 años Quiere saber si debe de invertir en Telmex? A = tiene N$30,000 B = menos de 30 añios C = eduacación nivel licenciatura D = salario anual mayor de N$120,000 E = invertir a plazo fijo F = invertir en acciones G = invertir en Telmex R1: R2: R3: R3: R5: If If If If If A and X Then E D and C Then F B and E Then F B Then C B Then G e.g, Cual es tu ingreso anual? porqué? Quiero saber si es mayor a N$120,000, porque como sé que tienes nivel de licenciatura, si ganas más de N$120,000 te recomiendo invertir en acciones. Invierte en Telmex como? Como tienes N$30,000 y eres menor de 30, yo se (R4) que tienes nivel licenciatura. Si es asi, yo se (R1) que debes invertir a plazo fijo. Por otro lado si inviertes a plazo fijo yo se (R3) que debes invertir en acciones. Si quieres invertir en acciones yo te recomiendo (R5) que inviertas en Telmex. Explicaciones sirven para: 63 • mostrar deficiencias de las reglas • clarificar suposiciones de la máquina • explicar situaciones no anticipadas • hacer sentir al usuario más seguro • hacer ver la máquina más “inteligente” Las condiciones nos proporcionan todo el contexto de las acciones. Esto hace que las reglas sean modulares, si se definen apropiadamente. 5.1.3 Resolución de Conflictos En razonamiento hacia adelante pueden existir más de una regla que puede disparar. En razonamiento hacia atrás pueden existir más de una regla que cumple con las metas. Lo que se necesita es una estragia de resolución de conflictos que guı́e (decida cual de las posibles reglas disparar) y evite que el proceso sea exponencial. Existen casos de reglas determinı́sticas donde solo una regla puede disparar a la vez (rara vez). Para controlar ésto se utilizan: control global (indep. del dominio) y control local (dependiente del dominio). El control local puede ser por medio de meta–reglas (reglas que controlan reglas). Puntos: sensibilidad (responder rápidamente a cambios en el medio) y estabilidad (mostrar cierta continuidad en la lı́nea de razonamiento). Las estrategias globales más populares (pero hay más) son: 64 • No se permite disparar una regla más de una vez con los mismos datos (refractorines) • Preferir reglas que utilizan datos más recientes (la idea es de seguir una lı́nea de razonamiento) (recency) • Preferir reglas que son más espec’ficas, i.e., reglas que tienen una mayor cantidad de condiciones y por lo tanto son más difı́ciles de disparar (specificity) Otras: • poner prioridad en las reglas u ordenarlas • poner prioridad en los hechos • uso de contextos Algunos sistemas permiten tener reglas que razonan en cuanto a que reglas disparar (meta-reglas). Las meta-reglas tiene el rol de dirigir el razonamiento (más que realizar el razonamiento). 5.1.4 Apareamiento de Patrones Normalmente existen variables en las reglas y se tiene que hacer un “apareamiento de patrones”. Notación: ?x aparea un elemento, !x aparea varios elementos, e.g., If Persona nombre ?x edad ?y And ?y > 12 And ?y < 20 Then ?x es un adolecente 65 Hecho: Persona nombre Juan edad 25. El apareo de condiciones en general es más fácil en encadenamiento hacia adelante que en encadenamiento hacia atrás: En Fwd: Dados hechos (sin variables) apareamos con condiciones (con variables) y producimos nuevos hechos (sin variables). En Bwd: Hipótesis (con variables) apareamos consecuencias (con variables) y producimos nuevas hipótesis (con variables) (se acerca más a unificación). Ejemplo más complicado: [(lista a b f g h) (elemento g)] Reglas: R1: If (lista ?x !y) and not (elemento ?x) Then remove (lista ?x !y) and add (lista ?y) R2: If (lista ?x) Or (lista ?x !) and (elemento ?x) Then write (?x es elemento de lista) R3: If (lista ?x) and not (elemento ?x) Then write (?x no pertenece a lista) Pasos de encadenamiento hacia atrás: el proceso trata de establecer valores para las variables de las reglas Establece variables Infiere Selecciona reglas “look-ahead” Ejecuta Aplica regla Evalua condiciones Establece variables (procedimiento principal) (trata de inferir los valores) (selecciona reglas aplicables) (busca condiciones que aplican) (ejecuta la condicion) (aplica la regla seleccionada) (checa las condiciones) (llamada recursiva) 66 Ejecuta Evalua Conclusiones Ejecuta accion Pregunta (ejecuta las condiciones) (evalua las conclusiones) (ejecuta acciones) (no inferirble y “preguntable”) e.g., vars. múltiples y preguntables: {x,u,w}, vars. múltiples no preguntables: {y, v}, meta valor único, no preguntable: {z}. R1: R2: R3: R4: R5: If If If If If w = a and x = b Then v = c w = d and v = c Then y = e v = c Then z = k x = j and y = e Then z = h u = f and x = g Then z = i Pasos de encadenamiento hacia adelante: se utiliza más “remove”. Infiere Selecciona reglas Resuelve conflictos Aplica regla (proceso global para disparar reglas) (selecciona las reglas aplicables) (decide que regla aplicar) (aplica reglas) Extensiones: Contexto (estructura, jerarquia, meta-reglas, ...) IF: condiciones “clasicas” THEN: consecuencias Acciones: mensajes, etc. Datos: 5/9/94, clase del tec, etc. Explicacion: esta regla es de ejemplo y solo sirve para ilustrar algunas extensiones Compilacion: ... Pueden incluı́r incertidumbre: 67 • en cada regla • en cada condición • en cada conclusión Ventajas: • permiten representar el conocimiento en forma adecuada para las computadoras • modularizan pedazos de conocimiento • permiten el desarrollo incremental • las decisiones son entendibles y explicables • abren nuevas posibilidades computacionales (paralelismo) • representación homogénea de conocimiento • permiten interacciones no planeadas y útiles Desventajas: • no hay fundamento para decidir que problemas tiene solución • problemas de verificación / consistencia / completez de conocimiento • escalamiento sin perder entendimiento / eficiencia • permiten interacciones no planeadas y no deseadas • no saben cuando romper sus propias reglas • no tienen acceso al razonamiento que hay detrás de las reglas • inadecuadas para describir un conocimiento declarativo • tienen un fuerte sabor operacional, por lo que las reglas deben de pensarse tomando en cuenta esto • bases de reglas grandes son difı́ciles de mantener y desarrollar (requiere una partición de las reglas, pero el formalismo no lo permite hacer directamente) 68 5.2 OPS5 Forgy, McDermott, Newell, Rychner ’75 (C.M.U.) PSG → PSNLST → OPS → OPS5 → OPS83 → CLIPS Official Production System 5 Con el se construyó XCON Basado en reglas/producciones 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) 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 69 Predicado: <, <=, >=, >, <>, = Si no se pone ningún predicado se asume que es: = El interprete aparea condiciones de las reglas con elementos de la memoria de trabajo: e.g., (paciente ^edad < 70 ) Memoria de trabajo: 1: (paciente ^nombre juan ^edad 50 ) 2: (paciente ^nombre marı́a ^edad 75 ) Extenciones: (paciente ^edad {> 20 < 50}) (conjunción) (paciente ^queja << fiebre dolor-de-cabeza >>) (disjunció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) 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) 70 --> (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: • 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) 71 Ejemplo (ancestros): nombre Gaia Cronos Rhea Zeua Hephaestus Leto Hera Apolo madre padre – Caos Gaia Urano Gaia Urano Rhea Cronos Hera Zeus Febe Coeus Rhea Cronos 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 >} --> (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 >) 72 (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) .. . 5.2.1 RETE (red) Del tiempo de ejecución el 90% se consume en el proceso de apareo. El algoritmo Rete se basa en dos observaciones (suposiciones): 1. La memoria de trabajo es muy grande y cambia poco entre cada ciclo. Esto implica que mucha información sigue presente en el siguiente ciclo y se puede utilizar Rete guarda información de los apareos parciales entre ciclos El esfuerzo de apareo depende de la razón de cambio de la memoria de trabajo en lugar del tamaño de ésta 2. Las condiciones de muchas reglas son similares Rete procesa (compila) las reglas ANTES de ser usadas, localizando condiciones comunes y eliminando todas menos una Esta compilación produce una red, en donde los nodos son las condiciones de las reglas e.g., (paciente ^edad < 40 ^queja = fiebre) ejemplos de reglas: Como herramienta para construir Sistemas Expertos: interactivo (∼ Lisp, Prolog) ⇒ “tracing” amigable 73 Problema: estrategia y heurı́stica condificada en el mismo formalismo OPS83: se puede especificar la resolución de conflictos a utilizar 5.3 CLIPS Criterios: alta portabilidad, barato, fácil de integrar Escrito en “C” C Language Integrated Production System fields: float, integer, symbol, string, external address, instance name, instance address CLIPS es “case-sensitive” Hechos (facts): nombre de relación seguida de pares atributo (slot) – valor, e.g., (persona (nombre “Juan Perez”) (edad 23) (color-ojos cafes) (color-pelo negro)) El orden de los slots no importa Antes de crear hechos, se le debe de decir cuales son los slots válidos para la relación: (deftemplate <nombre-de-relacion> [cometario opcional] <definicion-slot>*) (slot <nombre-slot>) (multislot <nombre-slot>) (deftemplate persona “Un ejemplo de un template” 74 (slot (slot (slot (slot nombre) edad) color-ojos) color-pelo)) Los hechos sin defstruct correspondiente se llaman Hechos Ordenados (tienen un solo multislot), e.g, (lista-numeros 7 9 3 4 20) ≡ (deftemplate lista-numeros (multislot valores)) (lista-numeros (valores 7 9 3 4 29)) Se usan cuando: 1. Se quiere tener una bandera 2. El nombre del slot es sinónimo de la relación Para añadir hechos: (assert <hecho>+) Para desplegar hechos: (facts) f-0 (persona (nombre “Juan Perez”) (edad 23) (color-ojos cafés) (color-pelo negro)) Se puede ver solo una porción de los hechos: (facts [inic [fin [máximo]]]) Para quitar hechos: (retract <ı́ndice>+), e.g., (retract 0) (retract 0 1) Modificar hechos: (modify <ı́ndice> <modificador-slot>+) (<nombre-slot> <valor>) 75 e.g., (modify 0 (edad 24)) Duplicate: igual que modify pero no quita el hecho Para “debuggear”: (watch <sı́mbolo-d>) <sı́mbolo-d> = facts, rules, activation, statistics, compilations, focus, all Para quitarlo: (unwatch <sı́mbolo-d>) Si queremos definir varios hechos con el mismo nombre (relación) a la vez: (deffacts gente “gente conocida” (persona (nombre “Juan Perez”) (edad 24) (color-ojos cafes) (color-pelo negro)) (persona (nomber “Maria Gonzalez”) (edad 25) (color-ojos azules) (color-pelo rubio)) ...) Para incluir los hechos definidos con deffacts se pone: (reset) Al empezar CLIPS define: (deftemplate initial-fact) (deffacts initial-fact (initial-fact)) 5.3.1 Reglas (defrule <nombre-regla> [<comentarios>] <patrones>* ; lhs => <acciones>*) ; rhs e.g., IF la emergencia es fuego THEN la respuesta es activar el sistema de riego (defrule emergencia-fuego “Un ejemplo de regla” 76 (emergencia (tipo fuego)) => (assert (respuesta (accion activar-sistema-riego)))) Comentarios con “;” Variables con: ?var Variables para hechos: ?f1 < − (persona (nombre “juan”)) Si el valor de una variable no es importante: ? Si se quiere aparear más de un valor: $?var o $? Negación: ∼ Disjunción (or): | Conjunción: & Funciones matemáticas: (+ 2 2), *, +, /, Se pueden asignar valores a variables: (bind <variable> <valor>) I/O: (read) (open <nombre-archivo> <id> [<acceso>]) Acceso: r, w, r+, a (close <id>) Para leer un string: (readline) Permite formatear la salida (test ...): prueba un conjunto de predicados (or ...): permite ahorrar reglas con condiciones parecidas (and ...): es el de default (not ...): verifica que no se cumpla cierta condición (exists ...): verifica que exista al menos uno (evita disparar la regla varias veces) (forall ...): las condiciones se deben de cumplir para todos los hechos (logical ...): especifica dependencias de hechos con respecto a otros Al definir los templates: • Se pueden definir tipos, i.e., solo ciertos valores pueden ocupar un slot • Tiene valores permitidos y defaults 77 • Rango y cardinalidad Para el control se puede: • Definir prioridad a las reglas • Manejar las reglas por módulos 5.3.2 Ejemplo de un programa en CLIPS ;;;====================================================== ;;; Mini-micro Sistema Experto ;;; ;;; Diagnostico de fallas simples en un auto ;;; ;;; Para correr, hacer: load, reset y run ;;;====================================================== ;;**************** ;;* DEFFUNCTIONS * ;;**************** (deffunction pregunta (?pregunta $?respuestas-posibles) (printout t ?pregunta) (bind ?respuesta (read)) (if (lexemep ?respuesta) then (bind ?respuesta (lowcase ?respuesta))) (while (not (member ?respuesta ?respuestas-posibles)) do (printout t ?pregunta) (bind ?respuesta (read)) (if (lexemep ?respuesta) then (bind ?respuesta (lowcase ?respuesta)))) ?respuesta) (deffunction si-o-no-p (?pregunta) (bind ?respuesta (pregunta ?pregunta si no s n)) 78 (if (or (eq ?respuesta si) (eq ?respuesta s)) then TRUE else FALSE)) ;;**************** ;;* DEFTEMPLATES * ;;**************** (deftemplate auto (slot arranca (type SYMBOL) (allowed-values si no nose) (default nose)) (slot funciona (type SYMBOL) (allowed-values normal mal no nose) (default nose)) (slot bateria (type SYMBOL) (allowed-values cargada descargada nose) (default nose)) (slot marcha (type SYMBOL) (allowed-values si no nose) (default nose)) (slot gasolina (type SYMBOL) (allowed-values si no nose) (default nose)) (slot punterias (type SYMBOL) (allowed-values normal quemadas sucias desajustadas nose) (default nose)) (multislot compostura) ) ;;**************** ;;* DEFFACTS * ;;**************** (deffacts inicia (auto)) 79 ;;;*************** ;;;* REGLAS * ;;;*************** (defrule determina-si-arranca "" ?A <- (auto (arranca nose) (compostura)) => (if (si-o-no-p "Arranca el motor (si/no)? ") then (if (si-o-no-p "Funciona normal (si/no)? ") then (modify ?A (arranca si) (funciona normal) (bateria cargada) (marcha si) (gasolina si) (punterias normal) (compostura "No tiene nada!!")) else (modify ?A (arranca si) (bateria cargada) (marcha si) (gasolina si) (funciona mal))) else (modify ?A (arranca no) (funciona no)))) (defrule marcha "" ?A <- (auto (arranca no) (marcha nose) (compostura)) => (if (si-o-no-p "Tiene marcha (si/no)? ") then (modify ?A (marcha si)) else (modify ?A (marcha no)))) (defrule poca-potencia "" ?A <- (auto (arranca si) (funciona mal) (compostura)) => (if (si-o-no-p "Tiene poca potencia (si/no)? ") then (modify ?A (compostura "Limpia el camburador.")))) (defrule explosiones "" ?A <- (auto (funciona mal) (compostura)) => (if (si-o-no-p "Tiene explosiones (si/no)? ") then (modify ?A (punterias desajustadas) (compostura "Ajusta punterias.")))) 80 (defrule para "" ?A <- (auto (funciona mal) (compostura)) => (if (si-o-no-p "Se para el motor (si/no)? ") then (modify ?A (compostura "Ajusta el tiempo.")))) (defrule gasolina "" ?A <- (auto (arranca no) (gasolina nose) (marcha si) (compostura)) => (if (not (si-o-no-p "Tiene gasolina (si/no)? ")) then (modify ?A (gasolina no) (compostura "Ponle gas!!.")) else (modify ?A (gasolina si)))) (defrule bateria "" ?A <- (auto (marcha si) (bateria nose) (compostura)) => (bind ?resp (pregunta "La bateria esta (cargada/descargada)? " cargada descargada)) (if (eq ?resp cargada) then (modify ?A (bateria cargada)) else (modify ?A (bateria descargada) (compostura "Carga la bateria.")))) (defrule punterias "" (or ?A <- (auto (arranca no) (bateria cargada) (punterias nose) (compostura)) ?A <- (auto (funciona mal) (bateria nose) (punterias nose) (compostura))) => (bind ?respuesta (pregunta "Como estan las punterias (normal/quemadas/sucias)? " normal quemadas sucias)) (if (eq ?respuesta quemadas) then (modify ?A (punterias quemadas) 81 (compostura "Cambia las punterias.")) else (if (eq ?respuesta sucias) then (modify ?A (punterias sucias) (compostura "Limpia las punterias.")) else (modift ?A (punterias normal))))) (defrule cambia-marcha "" ?A <- (auto (marcha no) (compostura)) => (if (si-o-no-p "Arranca en directo (si/no)? ") then (modify ?A (compostura "Cambia la marcha.")))) (defrule nada "" (declare (salience -10)) ?A <- (auto (compostura)) => (modify ?A (compostura "Llevalo al mecanico."))) ;;;**************************** ;;;* DIAGNOSTICO E INICIA * ;;;**************************** (defrule inicia (declare (salience 1)) => (printout t crlf crlf) (printout t "Sistema Experto de Diagnostico de Coches") (printout t crlf crlf)) (defrule resultados (declare (salience -1)) (auto (arranca ?A) (funciona ?F) (bateria ?B) (marcha ?M) (gasolina ?G) (punterias ?P) (compostura ?C)) => (printout t "El auto " ?A " arranca" crlf) (printout t "funciona " ?F " arranca" crlf) (printout t "La bateria esta " ?B crlf) (printout t "La marcha " ?M " funciona" crlf) 82 (printout (printout (printout (printout (format t t t t t " "El tanque " ?G " tiene gasolina" crlf) "Las punterias estan " ?P crlf) "Se sugiere de reparacion que:") crlf crlf) %s%n%n%n" ?C)) 83 5.4 Artı́culo Sobre Reglas de Producción Production Rules as a Representation for a Knowledge–Based Consultation Progam R. Davis, B. Buchanan, E. Shortliffe 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 bactereológicas de la sangre Requerimientos: • Util (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 desiciones 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: 84 • 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 ±0.2 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) • 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: 85 • Se tiene un formato pre-establecido por lo que es difı́cil expresar todo el conocimiento en el. • 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 rezonamiento modus ponens es adecuado • El vocabulario empleado es adecuado 5.4.1 Evaluación de Reglas como Represenatació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 incluı́da 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 reves”) El formalismo sólo permite pruebas de predicados (i.e., no puede tener: para todo organismo ... esto lo tienen “parchado” en algunas metareglas pero les complica el sistema de explicación) 86 • 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 porqué no tomo ciertas acciones (ii) combinar la explicación con “medidas de información” para dar explicaciones a diferente 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 subsumciones. Problemas con contradicciones indirectas, efectos secundarios (i.e., actualización de 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 87 Capı́tulo 6 Objetos Estructurados 6.1 Grafos • nodos/vértices: normalmente con etiquetas • arcos/ligas: pueden o no tener etiquetas (si existe más de un tipo de arco) Una red es normalmente un grafo con pesos. En Inteligencia Artificial los arcos pueden representar cualquier cosa (relación entre nodos). Se pueden usar para representar relaciones causales, e.g. Los árboles son útiles para representar jerarquı́as, e.g. 6.2 Redes Semánticas Quillian’66 Modelo de memoria humana para capturar la semántica de las palabras y lograr uso del significado parecido a los humanos. 88 Un tipo de red en la cual los nodos representan objetos, conceptos o situaciones y los arcos representan relaciones entre ellos. Realmente es una estructura de datos sofisticada y mucho depende del programa que la mantiene y la usa. Se llama red semántica porque se usaron originalmente para representar el sentido en expresiones de lenguaje natural. Los nodos: conceptos de palabras Los arcos: ligan conceptos para establecer la definición Cada palabra o nodo conceptual se consideraba la cabeza de un “plano” que tiene su definición (e.g., si banco tiene 3 significados, entoces existen 3 planos para él). Las ligas en el plano representan su definición. Pueden existir apuntadores a: superclases (is-a), modificaciones, disjunciones, conjunciones y sujeto/objeto. Apuntadores fuera del plano hacen referencia a otros objetos (y planos) en donde se definen. Pruebas: dar dos palabras y buscar intersecciones en las redes, para obtener la relación (cosas en común) entre ellas. Esta activación de todo lo que rodea a una palabra se esperaba que representara la definición completa de un concepto. Existı́an 2 ligas pricipales: • subclase (is-a): las clases de “arriba” están definidas en términos de conceptos generales que se asumen que se cumplen en todas sus subclases • modificadores: propiedades particulares de conceptos especı́ficos Puede existir herencia (e.g., un canario es un animal), y herencia de propiedades (e.g., un canario come) e.g., 89 El que un canario tiene piel se tarda más en deducir que es amarillo (parece que ésto se confirma, aunque no concluyentemente, del tiempo de reacción de la memoria humana). Esto dió pie a la definición de distancia semántica entre conceptos (número de ligas a recorrer). Relaciones más complicadas: piolin– es-un −→ canario – es-un −→ ave – tiene −→ alas duenio posesion – es-un −→ pertenencia – es-un −→ situacion es-duenio-de −→ “Petit Chateau” – es-un −→ nido tiempo-inic −→ primavera – es-un −→ tiempo tiempo-final −→ septiembre – es-un El permitir tener un conjunto de arcos de salida también se llama “case frame”. posesión es una instancia de pertenencia y hereda los arcos del “case frame”. Las redes semánticas permiten tener valores por default y cierta expectación acerca de los posibles valores de un atributo. La idea es tratar de tener un conjunto adecuado (pequeño) de nodos y de “case frames” genéricos. El error más común es usar la liga es-un para representar pertenencia a una clase y propiedades de una clase, e.g. Existen propiedades que no se heredan a los miembros de la clase, e.g., Se pueden hacer preguntas como, Qué es lo que Piolı́n tiene? o Quién es una ave? 90 6.2.1 Ejemplos de Algunos Sistemas 6.2.1.1 SCHOLAR SCHOLAR (Carbonell): una red semántica para enseñar la geografı́a de sudamérica. Carbonell distingue entre: unidades conceptuales (clases) y unidades de ejemplos (instancias). Explota el uso de etiquetas (tags). e.g., la etiqueta de irrelevancia aumenta la distancia semántica y guı́a hacia los atributos más relevantes. También utilizó etiquetas temporales y permitió poner procedimientos mezclados dentro de la red (i.e., para inferir hechos). 6.2.1.2 ARCH Winston: sistema para aprender conceptos de estructuras fı́sicas a partir de ejemplos de estructuras descritos en forma de redes. El proceso de generalización permite cambiar relaciones entre objetos. Problema de los 3: uniformidad, i.e., no se distingue entre propiedades generales o especı́ficas del dominio. Estructuras de casos: Fillmore concentró el trabajo en lenguaje natural y verbos. Oración: modalidad (captura información del tiempo, modo, aspecto) acoplada con una proposición (verbo con casos). Otros trabajos: Rumelhart et al., Shank (dependencias conceptuales). Desafortunadamente poca semántica (falta reconocimiento explı́cito de los principios fundamentales del diseño de la representacion). Poco extendibles, muy uniformes (no habı́a distinción entre superset y member). 91 Shapiro: distingue conceptos relacionales (e.g., amar se representa como un nodo). Hendrix utiliza particiones (grupos de nodos). 6.2.2 Evolución de conceptos y problemas De alguna manera, una red semántica trata de tener en un solo mecanismo una forma de guardar conocimiento y forma de modelar las conecciones asociadas (∼ a los humanos). Que significa cuando hacemos una liga entre 2 nodos? e.g., telefono ←− Nodo −→ negro Todos los telefonos son negros o es un teléfono negro? Problemas: • Las redes semánticas no son muy escrupulosas en cuanto al significado de los nodos (e.g., perro se refiere a la clase, el concepto o un perro en particular) • para establecer si existe relación entre dos conceptos, se sigue un proceso de búsqueda de intersección, esto sin embargo no evita el proceso combinatorio Finalmente una red semántica tiene: nodos, arcos y reglas de combinación (sintáxis) y lo que significan (semántica). El problema es por falta de distincióne entre lo intensional (sense/meaning) y extensional (reference/denotation), e.g., rojo: todas las cosas rojas (extensional) la propiedad de ser rojo (intensional) La mayorı́a de las redes semánticas se pueden ver como un conjunto de pares atributo valor. 92 Si tenemos comparaciones (e.g., altura > 1.80), necesitamos extender a lo que apunta a un predicado que regrese T o F. Si tenemos comparaciones entre atributos (e.g., altura Juan > altura Marı́a) necesitamos un objeto intensional intermedio. Si tenemos Juan le-pegó-a Marı́a, entonces tenemos relaciones entre nodos. Para relaciones entre más de un objeto: cases (e.g., agente, receptor, acción, objeto). Como saber a que objetos se refiere una oración? Problemas con cuantificadores: e.g., todo entero es-mayor que algún entero. 6.2.2.1 KLONE KLONE: hace diferencia entre: individualización, instanciación y lo que denota, e.g. Tiene 2 descripciones fundamentales: • Roles: representan los atributos, partes, etc., que los objetos del mundo tienen • Descripción Estructural: dice como están relacionados los roles e.g., KLONE representa: • las relaciones entre un Concepto y sus Roles • las relaciones entre un Concepto y sus Descripciones Estructurales • la estructura interna de una Role (relación entre el Role y sus facets) • la estructura interna de una Descripción Estructural 93 • relaciones entre partes de las Descripciones Estructurales y los Roles Extensiones: poner procedimientos directamente en los nodos. 6.3 FRAMES (Minsky, ’75) Frames: estructuras de datos representando situaciones prototı́picas Una de las ideas intuitivas detrás de los Frames, es que la memoria se basa mucho en esteroetı́pos (propiedades tı́picas de los objetos) Existe mucha literatura en psicologı́a sobre organización de la memoria humana de los 20’s y 30’s que es relevante Los sistemas de frames razonan acerca de clases de objetos usando representaciones prototı́picas, pero que pueden modificarse para capturar las complejidades del mundo real Se pueden capturar expectativas Idea: tener una sola estructura de datos para poner el concocimiento relevante acerca de una clase de objetos, en lugar de tener el conocimiento distribuido en forma de reglas o fórmulas lógicas Permite construir conocimiento declarativo y procedural en un registro con slots y fillers o facets Los slots son atributos y los fillers o facets son los valores, e.g., (frame (nombre camion) (is-a objeto) (color rojo) (llantas 10) ...) La idea es que los cálculos para resolver problemas ocurren de efectos secundarios del flujo de información por el frame 94 Frames están puestos en una jerarquı́a en donde los frames de “abajo” pueden heredar los valores de los slots de los frames de “arriba” Normalmente la herencia se hace por medio de los arcos: is-a (al final instance-of) En general los frames de “arriba” tienen información tı́pica (poco variable) mientras que los de “abajo” tienen información más especı́fica. En ausencia de ésta, se utiliza la de los padres Se pueden hacer deducciones a través de la jerarquı́a (se distinguen entre los frames clases o genéricos y los frames instancias), e.g. Los slots pueden tener valores múltiples Si no encuentra un valor en el frame, busca por valores en los frames de arriba de la jerarquı́a (explota la relación transitı́va de is-a), e.g., (frame conducto-sanguineo (forma tubular) (contiene sangre)) (frame arteria (es-un conducto-sanguineo) (localizacion {brazo, cabeza, pierna, tronco}) (sangre rica-en-oxigeno) (pared muscular)) (frame vena (es-un conducto-sanguineo) (pared fibrosa)) (frame aorta (es-un arteria) (localizacion tronco) (diametro 2.5)) (frame arteria-izquierda-X (es-un arteria) 95 (localizacion brazo) (sangre pobre-en-oxigeno) (diametro 0.4)) El permitir que un slot esté presente en más de un frame nos permite manejar excepciones (e.g., sangre) 6.3.1 Defaults y Demons (facets/fillers) Se puede tner información adicional, como: procedimientos para calcular el valor de un slot cuando no se tiene, procedimientos para actualizar valores de un slot cuando un valor de otro slot es actualizado, restricciones en los valores que puede tener un slot, etc. Datos, definiciones y procedimientos están agrupados en módulos que pueden compartir información y procedimientos por medio de mecanismos de herencia Los fillers o facets pueden tener varias formas de calcular un valor: value, default y demons Pegados a los slots pueden existir procedimientos que se activan cuando el slot es accesado o actualizado VALUE: (color (valor rojo)) DEFAULT: si no tiene un valor, toma el de default, e.g., (frame coche (color (valor ?)) (llantas (valor ?) (default 4))) DEMONS/MÉTODOS: IF-NEEDED: si no tiene un valor y se necesita, se invoca al procedimiento escrito en el facet if-needed (éste podrı́a ser preguntarle al usuario, por ejemplo), e.g., 96 (frame bloque (largo (valor 3)) (ancho (valor 5)) (area (valor ?) (if-needed (func-area (ancho largo))))) (frame bloque1 (is-a bloque) (largo (valor 2)) (ancho (valor ?)) (area (valor ?))) (defun func-area (A L) (* A L)) IF-ADDED: al añadir un valor en un slot se puede activar un procedimiento (el cual puede afectar el valor de otro slot) (frame bloque1 (area (valor ?) (if-added (mult*2 area) (imprime: el doble del area)))) IF-REMOVED: al quitar un valor de un slot se activa un procedimiento También se puede tener: before y after, los cuales se activan antes y después de obetener un valor Se pueden combinar todos. 6.3.2 Estrategias 1. valores, defaults, demons en un nivel, y luego hacia arriba (herencia-Z). Idea: los valores que se puedan obtener en un nivel son más confiables que los de sus niveles superiores 97 2. valores hacia arriba, defaults hacia arriba y demons hacia arriba (herenciaN). Idea: si se pueden obtener un valor es más confiable que lo que de por default o por medio de los demons Procedimiento de Herencia: Sea F un frame y S un slot UNTIL se encontro un valor para S o F = nil IF F tiene un valor para S acaba ELSE sea F = superclase de F por medio del slot IS-A Con default o demon serı́a: Sea F un frame y S un slot UNTIL se encontro un valor para S o F = nil IF F tiene un (demon/default) para S Then (ejecuta el demon/asigna el default) y acaba ELSE sea F = superclase de F por medio del slot IS-A Para combinar: valor, demon, default Herencia-Z: Sea F un frame y S un slot UNTIL se encontro un valor para S o F = nil IF F tiene un valor para S Then asigna el valor ELSE IF F tiene un demon, Then ejecuta el demon ELSE IF F tiene un default para S, Then usa el default ELSE sea F = superclase de F por medio del slot IS-A Herencia-N: Realiza: • herencia con valor • henrecia con demons • herencia con defualts 98 6.3.2.1 Tipos Se les puede incluir restricciones: cardinalidad, rangos permisibles, tipo de datos, etc. e.g., (intersección (enteros (intervalo 0 100)) (not.one.of 23 36)) 6.3.2.2 Perspectivas Un objeto puede verse desde varias perspectivas, e.g., ladrillo ladrillo ladrillo ladrillo ladrillo ... 6.3.3 – – – – – estructural juguete regalo arma cultural – – – – – función función función función función = = = = = soporte juego adorno romper cabezas detener libros Herencia Múlitple y Ambigüedad A veces se quiere heredar información de más de un frame (la organización se vuelve más una red que un árbol) Esto puede provocar conflictos de información Con herencias múltiples no se tiene problemas mientras no exista conflicto en la información, e.g. En herencia múltiple se tiene que incluir un método que decida de donde heredar Algunos sistemas no deciden (escépticos) por ser contradictorio. Algúnos permiten varias conclusiones (crédulos) Se puede usar información adicional para resolver la ambigüedad (e.g., con un demonio: IF-NEEDED) 99 A veces se cancelan lineas de herencia para eliminar ambigüedades, e.g. En algunos sistemas se permiten que los valores de slots apunten a otros frames Los frames se pueden utilizar para entender historias (idea de los Scipts) e.g., (frame evento (lugar L) (dia D) (Tiempo T)) (frame terremoto (magnitud X) (falla Y)) (frame huracan (vel-viento V) (nombre N)) (frame boda (es-un evento-social) (novia NA) (novio NO) (padres-novia PNA) (padres-novio PNO) (vestido-novia VN)) (frame desastre (es-un evento) (muertos N) (heridos M) (sin-casa O) (danios P)) (frame inundacion (is-a desastre) (rio R)) (frame evento-social (es-un evento) (invitados I) (casa-de C)) 100 6.4 Scripts Un script es una forma de representar una situación prototı́pica (parecido a los frames), pero en lugar de tener una descripción de un objeto, el script describe una secuencia de eventos. A diferencia del frame, se presenta en un contexto particular. Para describir una secuencia de eventos, el script usa un conjunto de slots que tienen información acerca de gente, objetos y acciones involucrados en los eventos Algunos de los elementos tı́picos incluyen: • Condiciones (entry conditions): describen que se debe de satisfacer para poder aplicar el script • Objetos (props): tiene los objetos que se usan en la secuencia de eventos • Roles: la gente involucrada • Variantes (track): variantes que pueden ocurrir en un script particular • Escenas: describe la secuencia de eventos • Resultados: las condiciones que existen después de aplicar el script Script Restaurante Variante (track): comida rapida Roles: cliente, mesera, cajero Objetos (props): caja, menu, comida, dinero, servilletas, sal/salsa Condiciones: el cliente tiene hambre y dinero • Escena1: entrada – el cliente estaciona su coche – el cliente entra al restaurante 101 – el cliente espera a que lo atiendan – el mesero lleva al cliente a una mesa desocupada • Escena2: ordena – el mesero trae el menu al cliente – el cliente escoge que comer del menu – el cliente da su orden al mesero • Escena3: comer – el mesero trae la comida – el cliente come su comida • Escena4: salida – el cliente pide la cuenta – el mesero le trae la cuenta – el cliente va al cajero y paga su cuenta – el cliente sale del restaurante – el cliente se va en su coche • Escena4a: comida-corrida (opcional) – el cliente sale corriendo del restaurante – el cliente se va en su coche rechinando llanta Resultados: • el cliente ya no tiene hambre • el cliente tiene menos dinero • el cliente esta satisfecho (?) • el cliente no esta satisfecho (?) • el cliente esta demasiado lleno (?) 102 • el cliente tiene dolor de panza (?) Los scripts pueden predecir que se espera que pase en una situación Aunque no se mencione lo que pase, el script puede “llenar los huecos” (se utilizaron para entender historias) Para usar los scripts, estos se almacenan y se obtienen de memoria los que más se parescan a la situación (parecido a Case-Based Reasoning) Una vez seleccionado un script, el sistema checa que tan lejos ha llegado el texto y ve los valores asociados con los objetos 6.5 Programación Orientada a Objetos Historia: La mayorı́a de los lenguajes experimentales que se han producido en los últimos 10 años son orientados a objetos Al igual que los frames, se asocia a un objeto tanto datos como procedimientos en estructuras organizadas en jerarquı́as Los datos al igual que los procedimientos pueden ser heredados Los objetos se comunican entre ellos a través de un protocolo especial de pasar mensajes Cada objeto es una instancia de una clase y puede mandar su propio mensaje y hacer acciones independientes. Las clases se relacionan en una jerarquı́a Conceptos: • Abstracción: se enfoca en las caracterı́sticas escenciales de un objeto relativo a la perspectiva del observador • Modularidad: agrupa abstracciones en unidades discretras. Es la propiedad de un sistema que se ha descompuesto en un conjunto de modulos coherentes y poco acoplados 103 • Herencia: es clasificar u ordenar abstracciones. Las abstracciones forman una jerarquı́a. Los objetos pueden heredar propiedades de otros objetos. La herencia puede ser simple o múltiple. (C++: Privado, Protegido, Público) • Objeto: puede ser un objeto fı́sico, un concepto, un evento, o lo que sea que queremos describir (e.g., un coche, un curso, un programa, etc). Un objeto tiene un estado, exhibe un comportamiento bien definido y tiene una identidad única • Encapsulación: esconde los detalles de la implementación de un objeto • Reutilización: objetos (bien hechos) pueden utilizarse en otros dominios • Ejecución: por medio de propagación de mensajes • Mensajes: el código privado que tiene el objeto puede ser accesado solo por por medio de mensajes. El mensaje dice a que objeto se dirige, que procedimiento ejecutar y cuales son los arguments • Métodos: es un procedimiento privado de un objeto que dice que hacer con un mensaje y como hacerlo. Como cada objeto tiene sus propios métodos, los objetos pueden responder diferente al mismo mensaje. • Respuestas: una vez recibido un mensaje, el objeto manda su respuesta a otros objetos o al sistema. • “Tipeo”: es forzar que objetos de diferentes tipos no se mezclen o solo en casos restringidos Se pueden crear nuevos objetos por medio de instanciaciones, tomando copias de objetos existentes (padres) y especificando en que se diferencia del padre (muchas veces es solo instanciando variables). Normalmente los mensajes se mandan a instancias, que heredan sus métodos de clases. Cuando se manda un mensaje a un objeto, éste checa sus datos y métodos particulares para ver si puede manejar el mensaje. Si no puede, busca la forma de hacerlo en su objeto padre. 104 Los procedimientos pueden ser polimórficos (i.e., aceptar diferentes tipos o clases da datos y de todos modos saber que hacer) Se tiene que programar en términos de operaciones genéricas Mandar un mensaje no es lo mismo que llamar a un procedimiento. Lo único que se hace es que se dice el nombre del método y se mandan los argumentos, pero el objeto es el que decide que hacer. Las propiedades relevantes dependen de como se persive el objeto, e.g., un piano a un músico (como suena) a un cargador (cuanto pesa) De nuevo puede existir herencia múltiple (e.g., combinar ventanas) Que pasa cuando los métodos interactuan? Posibilidades: • Usar: before y after (hacer primero los métodos generales antes de hacer los particulares) • Hacer búsqueda depth–first y de izquierda–a–derecha • Algunos lenguajes (e.g., LOOPS) permiten invocar un método sin que se siga el proceso “normal” de herencia A pesar de que las ideas básicas de la POO pueden ser muy atractivas (e.g., organizar mejor el código), todavı́a requiere de decisiones de bajo-nivel (e.g., como buscar en la jerarquı́a). El combinar métodos puede obscurecer errores. Normalmente uno manda mensajes a clases para crear instancias con ciertas caracterı́sticas. En LOOPS existen meta-clases (clases cuyos elementos son clases) y se pueden crear instancias de ellas (clases). CLOS permite tener un método llamado: around (alrededor) para agrupar diferentes métodos (e.g., cuando se tiene que pasar una variable o se necesita hacer un control especial). 105 Resúmen: • la filosofı́a de representar el conocimiento en términos de objetos y agentes es adecuada para muchos problemas (en especial los que tienen un componente de simulación) • el tener datos y procedimientos, obliga a pensar en el tipo de objetos y el comportamiento que es relevante para el problema 6.6 6.6.1 Artı́culos de Frames A Framework for Representing Knowledge, Marvin Minsky Idea: al encontrar una situación nueva, seleccionar de memoria una estructura (frame) y adaptarla a la realidad cambiando detalles Frame: estructura de datos para representar situaciones estereotı́picas Tiene información asociada de cómo usar el frame, qué esperar que pase, qué hacer si las expectativas no se cumplen Organizados en jerarquı́as: Los frames de arriba prácticamente no cambian y los terminales tienen slots que se llenan con nuevos datos Los diferentes frames comparten los frames terminales. Esto es crı́tico para poder coordinar la información desde diferentes puntos de vista. Los frames terminales normalmente están llenos por asignaciones de default u omisión. Estas pueden ser remplazadas fácilmente con nueva información Utilizan defaults y demons que facilitan el llenado de slots El sistema de frames tiene asociado un proceso de apareo controlado por la información en los frames y las metas a cumplir 106 Lógica no es adecuada, por no poder representar aproximaciones (dadas por los defaults) imperfectas En el entendimiento de oraciones, si los niveles de arriba son satisfechos pero algunos de los terminales no lo son, entonces tenemos una oración sin sentido. Si los niveles superiores son débiles pero los inferiores son “sólidos” tenemos una oración gramaticalmente erronea pero con sentido. Se pueden describir escenarios Podemos pensar en frames sintácticos, semánticos, temáticos y narrativos. Una frame puede verse como una colección de preguntas a hacer acerca de una situación hipotética: especifica puntos a tratar y métodos para manejarlos Una terminal debe de ser no sólo la pregunta que se quiere resolver, sino también sugerencias de cómo responderla. Los valores por default u omisión siendo los más simples. 6.6.1.1 Algunos puntos de investigación • Cómo seleccionar un frame inicial y subframes para detalles adicionales (expectación y elaboración) • Cómo reemplazar un frame, qué hacer si un frame no es aceptable? (alteración y novedad) • Que frames almacenar/modificar como resultado de experiencias? (aprendizaje) • Interacción entre representaciones múltiples y combinación de estas Un frame se puede ver como una situación ideal, elegante, con simplificaciones, pero el poder está en el conocimiento adicional que se puede tener acerca de las posibles interacciones entre ellos. Se pueden pensar en varias situaciones para explicar discrepancias con la situación ideal: 107 • oclusión • variante funcional • roto • diferente contexto Se pueden tener clusters (con varios puntos tı́picos), con diferentes jerarquı́as. De hecho los clusters deben de surgir de la interacción con el mundo. Tener diferentes descripciones para construir analogı́as y resolver problemas (con diferentes análisis y en diferentes espacios) Se pueden tener diferentes puntos de vista (representaciones múltiples para atacar un mismo problema desde diferentes puntos de vista) 6.6.1.2 Crı́tica a Lógica • Lógica no contempla: causa–efecto, tiempo, propósito, proceso, tipos de conocimiento, etc. • La idea de seleccionar información relevante es clave (lógica no lo tiene) • Razonamiento no–monotónico • La separación de axiomas y deducción es impráctica • Sistemas lógicos son difı́cilmente escalables • Consistencia (no deseable) y completes. Lo importante es cómo manejar conflictos, aprender de errores, ... etc. El forzar consistencia produce limitaciones (demasiado inflexible). 6.6.2 The Logic of Frames, Patrick J. Hayes La intepretación implementacional de los frames es de mecanismos para organizar representaciones, su forma de recuperarlas e inferencias que manipulan estas representaciones. 108 Esto no toma en cuenta aspectos representacionales sino implementacionales (si confundimos implementación con representación LISP serı́a un lenguaje de representación universal) Una caracterización representacional es una teorı́a semántica: esto es, como las expresiones en le lenguaje se refieren al mundo que representan (esto define el sentido de las expresiones en el lenguaje). Los frames son estructuras de datos que intentan representar situaciones estereotı́picas, con slots y fillers que pueden ser a su vez otros frames. Si se ven a los frames como que denotan relaciones entre individuos, entonces son escencialmente agregados de propiedades Parecen simples alteraciones sintácticas para expresar relaciones entre individuos, i.e., otra forma de expresar lógica de predicados 6.6.2.1 Inferencia en los Frames • Instanciación: dado un frame representando un concepto, podemos generar una instancia de ese concepto llenando sus slots. • “Criteriality”: la poseción de atributos es suficiente y necesaria para que un objeto califique como instancia de un frame • Apareamiento: una instancia de un concepto puede verse como instancia de otro • Diferentes puntos de vista: un objeto puede tener propiedades aparentemente contradictorias si se le ve desde diferentes puntos de vista (traducción analógica, e.g., ver a un hombre como un cerdo) • Razonamiento por default: hacer ciertas deducciones (por default) y luego posiblemente eliminarlas al tener más información (razonamiento no–monotónico) • Razonamiento reflexivo: habilidad de hablar acerca de sı́ mismo (e.g., saber sobre su propio mecanismo de deducciones) 109 En principio, todos estos tipos de razonamiento se pueden hacer relativamente fácil usando lógica de primer orden, excepto el razonamiento por default y razonamiento reflexivo. Razonamiento por default requiere (segun Hayes) de la habilidad de que el sistema sea reflexivo (“hable de si mismo”) Aparte de la idea de sistema reflexivo, Hayes no ve ninguna aportación real (representacionalmente) de los frames y su fortaleza ha sido sobretodo implementacional. 6.6.3 An Overview of KRL: a Knowledge Representation Language, D. Bobrow y T. Winograd KRL = Knowledge Representation Language Motivación: actualmente (’77) los sistemas son muy frágiles Idea: Lenguaje de representación que integre conocimiento procedural con declarativo (aplicado eventualmente a lenguaje natural) Ideas: • Organizar el conocimiento alrededor de entidades conceptuales asociadas con desripciones y procedimientos • Una descripción debe de representar conocimiento parcial y acomodar múltiples descripciones (diferentes puntos de vista) • Comparación entre descripciones con especificaciones adicionales como una método central de las descripciones • Razonamiento dominado por comparación de objetos y eventos para almacenar eventos esperados y especializaciones de estos • Múltiples procesos activos con información de asignación de tareas del usuario y heurı́sticas de manejo de memoria • La información debe de agruparse (accesibilidad y eficiencia) 110 • Un conjunto flexible de herramientas disponibles para representar estrategias de procesamiento Operaciones: • aumentar una descripción para incorporar nuevo conocimiento • aparear dos descripciones para ver si son compatibles para los propósitos actuales • buscar referentes para entidades que aparean una descripción en particular El conocimiento declarativo está organizado en entidades conceptuales o “unidades” con “descripciones” asociadas Unit = grupo de desciptions (o slots) + nombre + categoria (7 tipos) Slots = nombre + conjunto de procedimientos asociados + lista de descriptors (un slot especial es SELF) Descriptors = asociado con un conjunto de features (existen 12 tipos) Categorias de una unidad (unit): • Basic: partición simple del mundo en objetos de diferente tipo • Abstract: agrupa descriptores y procedimientos a ser heredados por una entidad descrita por una perspectiva del cual la unidad abstracta es un prototipo • Specialization: distinción extra dentro de una categoria básica • Individual: entidades únicas diferentes • Manifestation: grupo de descripciones que pertencesn a un solo individuo • Relation: representa una relación o predicado como un mapeo abstracto 111 • Preposition: instanciación de la relación Tipos de descripciones (descriptions): especifican los valores o de dónde tomarlos Existen varios “modos” de descriptores (12 pero solo ponen 9): direct pointer, perspective, specification, prediction, logical boolean, restriction, selection, set specification, contingency, combinación de varias Se pueden tener múltiples “vistas” Se puede tener información redundante Aparte de los features de arriba, se puede tener una meta–description (e.g., default, hechos acerca de hechos, etc) Se pueden hacer descripciones de objetos por comparación con otros (normalmente con prototipos) indicando la perspectiva de cada uno de ellos (las cuales pueden contradecir los valores de default) 6.6.4 Apareamiento como Mecanismo de Razonamiento El razonamiento está dominado por un proceso de reconocimiento Existen varias dimensiones en la cual operar el apareador (puede usar la semántica y/o sintáxis de los descriptores, buscar por un descriptor referente, llamar funciones especiales de apareo, etc) El apareo se realiza por medio de subtareas, cada una apareando una parte del patrón con los datos Para realizar un apareamiento múltiple de descripciones, se necesitan estrategias para “alinear” los descriptores. Se pueden incorporar estrategias dadas por el usuario KRL puede variar el nivel al cual considerar puntos terminales Se pueden deducir propiedades de los hechos 112 Se puede intercalar el proceso de apareamiento con otros procesos El resultado puede ser: si, no, todavia no se (y se busca que también regrese una medida de calidad) Permite limitar la búsqueda, regresando lo que tiene/le falta Se puede forzar un apareo 6.6.4.1 Organización del Conocimiento Organización en grupos (clusters o chunks) para reducir la explosión combinatoria Utilización de objetos y herencia de propiedades Necesita identificar las propiedares relevantes Utiliza una agenda (tareas ordenadas por prioridad), por lo que puede pensarse en multiprocesamiento Puede tener ligas asociatvias que sirvan para la recuperación (el problema es decidir cuándo ponerlas y cuándo usarlas) Hablan también de un lista deenfoque o de contexto para explorar basados en contextos dependientes del dominio Se necesita un lenguaje de alto nivel o directorio de procedimientos con los cuales se pueden hacer los apareos 113 Capı́tulo 7 Esquemas Hı́bridos Las formas de representar conocimiento que vimos no son mutuamente exclusivas. Un esquema h’ibrido es una combinación de diversas formas de representación de conocimiento para resolver un problema. Hay dos formas básicas de combinar diversas representaciones: Externa e Interna. 7.1 Hı́bridos “Externos” En este esquema dos o mas módulos con diferentes formas de representación interactuan entre si. Cada módulo tiene una sola forma de representación y se combina con los otros módulos mediante variables de entrada/salida o mediante una estructura de datos común (Base de Datos). En principio cada subsistema tiene la forma de representación mas adecuada para resolver una parte del problema, y se combina con las demás para solucionar un problema mayor. En este esquema no existe una fuerte interacción entre las diversas representaciones. 114 7.2 Hı́bridos “Internos” En este tipo de sistemas se combinan varias formas de representación que interactuan para resolver cierto problema. Con esto se aprovechan diversas propiedades de las formas de representación que complementan sus capacidades. Por ejemplo, se combinan las reglas con prototipos aprovechando las abstracciones de marcos dentro de reglas, marcos y redes semánticas formando redes de prototipo, etc. Dos ejemplos de este tipo de esquemas son: Centaur, que combina marcos y reglas para diagnóstico médico; y Nexpert, una herramienta que involucra reglas y objetos para el desarrollo de sistemas expertos. 7.2.1 Centaur: Marcos y Reglas. Originalmente diseñado para el diagnóstico de enfermeda–des pulmonares, ha sido extendido para otro tipo de aplicaciones. La idea básica es la de asociar reglas a marcos. Es decir, que una estructura tipo marco provee un contexto explı́cito en el que actúan ciertas reglas. Las reglas se ligan a un atributo de un marco, y se ven simplemente como un “slot” adicional del prototipo correspondiente. De esta forma, el marco indica la “situación” o contexto en que aplica la regla, evitando los “trucos” que se tienen que hacer en sistemas de producción “puros” para tener un efecto similar. Reglas dentro de Prototipos. Centaur tiene una clasificación de enfermedades pulmonares que se estructuran en una jerarquı́a de prototipos. Cada prototipo contiene un numero de marcos (subprototipos) que incluyen el conocimiento e información referente ese tipo de enfermedad; y asociado a c/u de estos hay una serie de reglas que indican como obtener dicha información. También los marcos pueden tener meta-reglas que le indican como razonar con dichas estructuras. Jerarquı́a de prototipos en Centaur. 115 En operación , primero se dan ciertos datos iniciales de la enfermedad. Estos activan ciertas reglas que llevan a la activación de algunos prototipos. Se tiene una forma de darles prioridad a los prototipos, y se escoge para su evaluación el de mayor prioridad. Se obtiene la información referente a ese marco, y se continua el ciclo hasta llegar a cierto nivel de confidencia en los resultados. De esta forma se usan marcos para estructurar reglas en forma modular, y controlar la interacción entre ellas. 7.2.2 Nexpert: Reglas y Objetos Nexpert es una herramienta (coraza o shell ) de propósito general para el desarrollo de sistemas expertos. Se basa en la combinación de reglas y objetos. En cierta forma es similar a Centaur, ya que los objetos de Nexpert se pueden considerar como un sistema de prototipos. Sin embargo, la forma en que interactuan estas 2 representaciones es diferente, ya que en vez de agrupar reglas dentro de objetos, estas 2 representaciones se ven como dos dimensiones del conocimiento que interactuan (se intersectan) entre si. Interacción entre objetos y reglas: • Las reglas operan sobre atributos de objetos. • Las reglas pueden ser genéricas operando sobre clases o partes de objetos (pattern-matching). • Al evaluar reglas se pueden heredar atributos de la jerarquı́a de clases/objetos y se pueden disparar los métodos para obtener valores y demons. 7.3 Implementación Una regla puede ser representada por un frame: (frame reglaN 116 (if (valor: ...)) (then (valor: ...)) (notas (valor: ...))) Una regla puede apoyarse en la estructura de los frames: (Regla N (IF (frame1 propiedad1,i valor1,i ) (frame2 propiedad2,j valor2,j ) ...) (THEN (framen propiedadn,k valorn,k ) (framem propiedadm,l valorm,l ) ...)) La regla toma valores de frames en sus condiciones y modifica/genera frames en sus acciones. También se puede combinar con mecanismos de herencia para obtener valores de frames a partir de herencia de sus antecesores. Por ejemplo: (regla 37 (If (clase ?X camion) (valor peso ?X ?P) (> ?P 10000) (min-cardinalidad llantas ?X 10)) (THEN (clase ?X camion-grande))) Al disparar la regla a’nadimos a una instancia de cami’on la clase de cami’on-grande y por lo tanto hereda todos los valores del frame cami’ongrande. También se pueden organizar módulos de reglas al asociar éstos con los frames. Por ejemplo, un frame cami’on asociado a un m’etodo que invoque reglas de diagn’ostico (heredables a sus especializaciones). 117 Puede servir para guiar las reglas por especifidad. Algunos sistemas comerciales: • KEE: frames, reglas, Lisp • ART: OPS5, TMS • Knowledge Craft: OPS5, Prolog, CRL 118 Capı́tulo 8 Arquitecturas de Control 8.1 Arquitectura de Pizarrón Surgió a principios de los 70’s para resolver problemas en donde existı́an varios tipos de “expertos” independientes. Metáfora: una variedad de expertos cooperando a través de un pizarrón, cada experto contribuye cuando ve que el estado del pizarrón es tal, que puede hacer algo. Componentes: • Pizarrón: una estructura de datos multi-dimensional – Juega el papel de memoria común de comunicación de las KS’s – Almacena datos iniciales, soluciones parciales y finales, objetivos y toda la información relevante al problema – La información puede estar almacenada de diferentes maneras: jerarquı́as, niveles de abstracción, número de hipótesis, etc – Puede tener información de control • Fuentes de Conocimiento (KS’s): se pueden ver como sistemas expertos sin explicación 119 – Juegan el papel de operadores que transforman progresivamente los estados de solución del problema – Tienen una parte de activación basada en eventos (trigger), una de evaluación basada en las caracterı́sticas del estado (pre-condición) y una de acciones – Las partes de precondición dicen bajo que condiciones se debe de considerar la KS (normalmente con nuevas entradas al pizarrón). – La evaluación da estimaciones (normalmente subjetivas) de la cantidad de recursos que necesita, el tiempo que va a consumir y el beneficio esperado (e.g., cuantas hipótesis va a generar y que tan confiables son) Las fuentes de conocimiento pueden ser: – genéricas o especı́ficas – únicas o redundantes – locales o distribuı́das – homogéneas o hı́bridas Ası́ mismo, se pueden realizar acciones: – algorı́tmicas – heurı́sticas • Mecanismo de Control (scheduler): es el que lleva el razonamiento. El algoritmo de ejecución “tı́pico” es: – ve las nuevas entradas que se hicieron al pizarrón (observa los cambios) – ve cuales KS’s pueden hacer algo – construye una agenda de registros de activación (Knowledge Source Activation Records KSAR’s) con instancias de las precondiciones de los KS’s – ordena la agenda con un algoritmo – evoca al KS ganador – continua 120 El mecanismo de control funciona en base a un foco de atención el cual puede estar sobre: – fuentes de conocimiento – objetos del pizarrón – combinación En algunos sistemas de pizarrón, existen KS’s cuyo trabajo es controlar la activación de otros KS’s La arquitectura de pizarrón se puede ver como una generalización de un sistema para pasar mensajes (y por lo tanto es menos eficiente). Al pizarrón le entran mensajes que pueden ser vistos por todos, pero leı́dos por unos cuantos. Es como si se tuvieran mensajes anónimos (pueden existir muchos receptores o ningúno). La solución se hace en forma cooperativa. El proceso termina cuando no hay KS que puedan activarse o cuando se llego a la solución. 8.1.1 Hearsay-II El primer sistema de pizarrón, construı́do para entender voz. Resultado de un concurso de ARPA (71): crear un sistema para 1976 que: • aceptara voz continua • a través de un buen micrófono • en una sala silenciosa • 1,000 palabras • tiempo real 121 Hearsay-II tenı́a: Niveles Interface BD Fuentes de Conocimiento Frase parse Secuencia palabras Palabra Sı́labas Segmentos semant predict word-seq mow verify concat stop word-seq-ctl word-ctl rpol pom seg Parámetros Por ejemplo: word-seq ve hipótesis a nivel de palabras y crea o modifica hipótesis a nivel de secuencias de palabras. Las dimensiones del pizarrón son: Niveles, Tiempo (desde que empieza la frase), y Número de hipótesis. 8.1.2 OPM Sistema de planeación. Diferencia: el mecanismo de control está determinado por un conjunto de fuentes de conocimiento que razonan acerca de control. Dimensiones del pizarrón: nivel (salida, diseño, procedimiento, operación) y tiempo. La parte de control (que se puede ver como otro pizarrón) tenia los siguientes niveles: 122 • problema: descripciones generales del problema • estrategia: decisiones generales, e.g., top-down, bottom-up • foco: restricciones para guiar la atención (e.g., ve a diseño) • polı́tica: decisiones de criterios (e.g., considera primero los más confiables) • agenda: entradas a la agenda • KSAR: una entrada indicando la fuente de conocimiento a utilizar 8.2 Arquitectura de Capas Idea: extender la idea de las agendas a diferentes niveles con un solucionador a cada nivel. La idea fundamental es organizar los operadores y le información en capas (layers). La capa inferior tiene operadores que actúan directamente sobre el estado de solucı́on del problema. Las capas superiores tienen meta-operadores que actúan sobre los operadores de la capa inmediata inferior. El control se implementa capa por capa, siendo la responsabilidad de una capa controlar la ejecución de los operadores (o meta-operadores) de la capa inmediata inferior. La comunicación entre capas se realiza por medio de mensajes. 8.2.1 MOLGEN MOLGEN (Stefik, ’81): sistema que planea la realización de experimentos en genética molecular. 123 MOLGEN utiliza restricciones para reducir la búsqueda e incorpora algoritmos para formular, propagar y satisfacer restricciones. Las restricciones sirven para: 1. limı́tar posibles valores 2. forzar ciertos valores 3. comunicación entre subproblemas MOLGEN tiene 3 capas (cada una con operadores y objetos). Cada capa controla la creación y ordenamiento de los pasos de la capa inferior. 1. Espacio de laboratorio (o del dominio): tiene conocimiento de objetos y operaciones de un laboratorio genético (i.e., lo que se puede hacer pero no cuando hacerlo) (es lo más especı́fico) 2. Espacio de dise no: conocimiento acerca del dise no de planes (modela las acciones de un dise nador de experimentos) (genera planes) 3. Espacio de estrategia: sigue heurı́sitcas y least-commitment (genera meta-planes) 8.3 Sistemas Distribuı́dos Jerarquı́a Simple: Jerarquı́a Múltiple: Equipo: 124 Mercado Libre: 8.4 Inteligencia Artificial Dsitribuida (DAI) Inteligencia Artificial Distribuı́da: se puede ver como continuación en la lı́nea de los sistemas de pizarrón. Estudia como un grupo de agentes inteligentes (no necesariamente computacionales) debe de coordinar sus actividades para lograr sus metas (i.e., resolver problemas difı́ciles mediante la distribución de partes del problema entre agentes inteligentes). 8.4.1 Agentes Un agente es cualquier cosa que se pueda ver como persiviendo su ambiente a través de sensores y actuando en el ambiento por medio de efectores. Un agente racional es un agente que hace “buenas” acciones. Para ésto, necesitamos saber cómo y cuándo evaluar al agente. Usamos una medida de desempeño para el cómo. Hay que tomar en cuenta lo que puede percibir y las acciones que puede tomar. Un agente racional depende en todo momento de: • una medida de desempeño que define su grado de éxito • todo lo que el agente ha percibido o secuencia de percepción (percept sequence) • lo que sabe del ambiente • las acciones que puede tomar 125 Para cada posible secuencia de percepción, un agente racional ideal debe de tomar la acción con la que espera maximizar su medida de desempeño, en base a la evidencia dada por su secuencia de percepción y cualquier conocimiento incorporado que tenga. Las acciones se pueden usar para obtener información util. Idealmente, hay que hacer un mapeo entre las posibles acciones y los posibles secuencias de percepción (en la práctica pueden ser infinitos). A veces se pueden dar especificaciones (más que enumerarlas) de lo que hay que hacer. Un sistema es autónomo en la medida en que su comportamiento está determinado por sus propias experiencias. Inicialmente se le tiene que proveer de cierto conocimiento para no actuar de manera aleatoria. 8.4.1.1 Estructura de un Agente Agente = Arquitectura + P rograma Podemos describir agentes en términos de sus percepciones, acciones, metas y ambiente. 126 Tipo Sistema diagnóst. médico Percepción Sı́ntomas, respuestas pacientes Acciones Preguntas, pruebas, tratamientos Metas Paciente sano, costo mı́nimo Ambiente Paciente, hospital Análisis imágenes satélite Pixels de diferente color intensidad Imprimir una Categorización categorización correcta de la imágen Imágenes satélites Robot que toma partes Pixels de diferente intensidad Levantar partes y ordenarlas Poner partes en lugar adecuado Banda transport. con partes Control refineria Temp., presión Abrir/cerrar válvulas, ajustar temp. Minimizar contamin., max. segur. Refineria Tutor interactivo de Inglés Palabras Ejercicios, sugerencias, correcciones max. calif. estudiantes Estuds. Taxista Camaras, veloc., GPS, micrófono, sonar Bolante, acelerador, frenos, hablar con pasajero Seguro, rápido, Camino, maximizar coches, ganancias gente, señales No importa tanto si es ambiente “real” o “artificial” (e.g., softbots) sino la interacción entre percepción, comportamiento, ambiente y metas. El usar una tabla acciones – secuencia de percepciones en general no es adecuada por: • requiere tablas muy grandes • mucho tiempo para construir la tabla • no hay autonomı́a, por lo que si cambia el ambiente el agente deja de saber que hacer 127 • aunque se le de aprendizaje, necesitaria mucho tiempo para aprender todas las entradas de la tabla Para construir un mapeo entre percepciones y acciones podemos pensar en varios tipos de agentes. Agentes de reflejos simples: construir una tabla es imposible, pero podemos considerar algunas asociaciones comunes en términos de reglas situación– acción. e.g., IF el coche de enfrente esta frenando THEN empieza a frenar Agentes de reflejos simples y estado interno. Esto es muy simple, y normalmente se necesita un estado interno para (i) ver como cambia el ambiente independientemente del agente y (ii) como afectan las acciones del agente al ambiente. Agentes con información de metas. El agente necesita información de sus metas para escoger que acciones las pueden cumplir (pueden usarse técnicas de búsqueda y planificación). Esto lo puede hacer más flexible (e.g., si está lloviendo ajustar la efectividad de los frenos). Agentes con medida de utilidad. Las metas por si solas no son suficientes para generar un comportamiento de buena calidad. Para esto necesitamos una medida de utilidad (función que mapea un estado o secuencia de estados con un número real). Agentes con aprendizaje. La idea es que las percepciones no se usen solo para actuar, sino también para mejorar su desempeño en el futuro. 8.4.2 Ambientes • accesibles (los sensores detectan todos los aspectos relevantes y no se necesitan estados internos) o inaccesibles 128 • determinı́sticos (el siguiente estado está determinado por el actual y las acciones del agente) o indeterminı́sticos. En ambientes complejos se considera un ambiente determinı́stico o no desde el punto de vista del agente • episódicos (la calidad de la acción depende solo del episodio) o no espisódicos • estáticos o dinámicos (si el ambiente puede cambiar mientras el agente piensa) o semidinámicos (el desempeño del agente cambia) • discretos (número limitado y distinguible de percepciones y acciones) o continuos Los agentes son capaces de intercambiar y compartir información / conocimiento (metas y soluciones parciales), representar la información desde puntos de vista diferentes, y cooperar para llegar incrementalmente a una solución. Cuando tienen metas comúnes o que se traslapan, deben de actuar en forma cooperativa. Si tienen metas con conflictos, deben de competir inteligentemente. Su protocolo de comunicación a veces involucra “actos de habla” (speech acts) que reflejan creencias, intenciones, etc., de los agentes. DAI es apropiado cuando se tiene distribuı́da: la experiencia y el diseño, la información (e.g., oficina), los datos (e.g., sensores), las decisiones (e.g., control de manufactura), las bases de conocimiento se desarrollan independientemente y pueden interconectarse y reutilizarse. Caracteristicas de arquitecturas distribuı́das: • concurrencia • procesamiento ası́ncrono • indeterminismo • influencia restringida de cada agente (i.e., modularidad y encapsulamiento de agentes) 129 • control decentralizado • negociación entre agentes • habilidad de manejar información inconsistente • evolución continua Elementos que se distribuyen: • acciones • foco de atención • autoridad/responsabilidad • credibilidad • confiabilidad • interpretación • conocimiento • percepción • recursos • evaluación • trabajo Ejemplo: Se tiene una ficha roja (R) y 4 azules (A1, A2, A3, A4) en un tablero de N×N. El propósito del juego es capturar a la ficha roja. Reglas: • En cada paso, cada ficha puede quedarse donde está o moverse hacia arriba, abajo, izquierda o derecha • Los azules ganan si ocupan los 4 cuadros alrededor del rojo 130 • Los azules pierden si el rojo llega a un borde En general, cada agente tiene una representación interna (que puede ser parcial o incorrecta) del problema que puede diferir de la de los otros agentes, e.g., 1. Cada Ai puede tratar de ocupar un punto que rodea a R. Por si solo cada agente no resuelve el problema original, pero en conjunto si lo solucionan 2. Un agente es el que controla y el resto son sus esclavos. En este caso, solo el que controla debe de conocer el problema, el resto solo sigue ordenes y pueden no tener representado nada 8.4.3 Esquemas de Control 1) Control central Un agente (A1) controla todo y ordena a los demas (A2, A3 y A4) que hacer. Algoritmo: 1. A1 ve la posición de R y de los Aks 2. A1 calcúla cuadrantes y asigna uno por agente (dependiendo de su posición) 3. A1 dice como moverse para entrar a los cuadrantes 4. Los esclavos se mueven Para determinar los movimientos: • IF R no se mueve, moverse más cerca a R • IF R se mueve (a un cuadrante) entonces: – – – – si se mueve junto a Ak, Ak no se mueve un Ak se debe de mover para permanecer en su cuadrante el agente en el cuadrante opuesto debe de seguir a R los otros, se deben de mover perpendicularmente a R y dentro de su cuadrante 131 Requerimientos: • A1 debe de saber la posición de R y de los Aks todo el tiempo • A1 debe de poder calcular cuadrantes • A1 sabe que comandos obedecen los Aks y sabe como comunicarlos • A1 puede calcular movimientos adecuados • Los esclavos deben de percibir comandos (no necesitan reportar nada, porque A1 sabe todo el tiempo su posición) 2) Control central + agentes con percepción Ahora los agentes pueden percibir su posición y se la reportan a A1 el cual debe de poder combinarla para decidir como actuar. 3) Control central + agentes buscan a R Todos los agentes tienen la capacidad de detectar la posición de R dentro de un rango limitado. Variación al algoritmo: 1. cada Ak informa su posición 2. A1 asigna una región a cada Ak 3. A1 comanda que cada Ak “patrulle” su región 4. Cada Ak busca a R y si lo detecta le informa a A1 Requerimientos: • A1 sabe el rango de visibilidad de cada Ak y puede calcular su región de patrullaje • Los esclavos pueden transmitir la posición de R al controlador 4) Control central con comandos abstractos Los agentes pueden ejecutar comandos más complejos por si solos e.g, patrullar, ir a su región designada, acercarse al rojo, por lo que tienen cierta planeación limitada A1 no necesita saber las acciones de los Aks A1 debe de calcular los comandos de alto nivel para los esclavos y los de bajo nivel solo para él. El esclavo puede ahora transmitir su posición solo cuando se le pide o cuando se mueve a una nueva región. 132 5) Control distribuı́do Todos los agentes pueden participar en las decisiones globales. Una simplificación es que cada agente comunica toda su información a los otros agentes y todos usen el mismo método global para decidir que tareas hacer. Algoritmo: • todos los agentes dan su posición a los otros • cada agente calcula la asignación global de agentes a regiones para patrullar y sigue su propia tarea • el que detecta a R lo anuncia • cada agente calcula los cuadrantes y se va al que le corresponde Requerimientos: • cada agente anuncia a los otros • cada agente calcula una asignación global (siempre viendo lo óptimo desde una perspectiva global) 6) Control distribuı́do + agentes individuales Los agentes calculan sus costos locales (información local) pero tratan de optimizar sobre estimaciones globales. Se asume que los agentes son “honestos”. Algoritmo: • cada agente estima su propio costo de ocupar diferentes regiones en el tablero • cada agente anuncia su estimación a los otros agentes • cada agente hace una estimación global • ... Requerimientos: cada agente estima su costo y puede determinar una asignación global dado un conjunto de estimaciones Se necesita tener una representación (preferiblemente explı́cita) de lo que saben los agentes y de sus capacidades. Que se requiere especificar: 133 • los estados del ambiente y de los agentes • las transiciones de estados legales del ambiente • restricciones en el estado del ambiente • las habilidades de los agentes (razonamiento, percepción, comunicación, acciónes permisibles) • los recursos disponibles de los agentes y como tratan de optimizar su uso • la organización de los agentes Esto se puede simplificar, especificando los protocolos de comunicación de los agentes en las diversas organizaciones y sus habilidades y disposición en la organización. Sistemas “Reactivos”: • el ambiente cambia rápidamente y de manera impredecible • los agentes tienen razonamiento limitado • los agentes pueden percibir una pequeña parte del ambiente • los agentes pueden actuar concurrentemente entre ellos y con los eventos del ambiente Agentes que dan servicios a otros son vistos como recursos. Si un agente no interactua con otro es mejor ignorarlo o tratarlo como parte del medio ambiente. La información de cada agente puede ser: • el estado del medio ambiente de acuerdo al agente • el problema que el agente quiere resolver • un plan abstracto de su ejecución 134 • una agenda de tareas por hacer • las tareas actuales (algunas derivadas de cambios en el medio ambiente) • los recursos disponibles (protocolo de acceso, métrica de costo, modelo de uso del recurso, el estado del recurso) • asignación de recursos a las tareas actuales • las acciones que se están realizando Tendencia de muchos: combinación de métodos centralizados y distribuı́dos. Actualmente también existe mucha investigación en la interacción Humanos – Agentes Computacionales. 135 Capı́tulo 9 Modelos Cualitativos y QSIM 9.1 Introducción Conocimiento superficial vs. profundo. Normalmente los SE tienen conocimiento superficial en forma de reglas de producción. El conocimiento superficial representa conocimiento que puede utilizarse en situaciones especı́ficas, en donde las conclusiones se derivan directamente de las observaciones, e.g., IF el tanque esta vacio Then el coche no arranca Un sistema fı́sico puede describirse en términos de sus componentes y conecciones. La motivación es capturar conocimiento de sentido común de los expertos. El conocimiento profundo se refiere a las estructuras internas y causales de un sistema y considera las interacciones entre sus componentes. e.g., 136 Una forma de representar conocimiento profundo es por medio de modelos cualitativos. Normalmente se hace una simulación cualitativa. Surgió al tratar de resolver problemas de ingenierı́a y dandose cuenta que simuladores más grandes o mejores resolvedores de ecuaciones no resolverian totalmente el problema. Sistema Fı́sico Comportamiento Real Ecuaciónes Diferenciales solución numérica o analı́tica Restricciones Cualitativas simulación cualitativa fi : R → R Descripción del Comportamiento Un modelo cualitativo consiste en un conjunto de variables de estado (o parámetros) del sistema y un conjunto de restricciones que relacionan las variables. e.g., Restricciones CantA + CantB = Total PresA = M+ (CantA) PresB = M+ (CantB) PresA - PresB = ∆PAB flujoA−>B = M+ (∆PAB) Valores Corresp. (0 0) (∞∞) (0 0) (∞∞) (−∞ − ∞) (0 0)(∞∞) Variables CantA (0 AMax ∞) CantB (o BMax ∞) PresA (0 ∞) PresB (0 ∞) ∆PAB (-∞ 0 ∞) flujoA−>B (-∞ 0 ∞) Total (0 ∞) d CantB/dt = flujoA−>B d CantA/dt = - flujoA−>B Dada una descripción inicial queremos predecir el comportamiento. 137 Variables Cualitativas: Operan sobre funciones razonables Si [a, b] ⊆ R∗ , la función f : [a, b] → R∗ es una función razonable sobre [a, b] si: 1. f es continua es [a, b] 2. f es continuamente diferenciable en (a, b) 3. f tiene un número finito de puntos de inflección (crı́ticos) en cualquier intervalo cerrado 4. existen los lı́mites limt→a f ′ (t) = f ′ (a) y limt→b f ′ (t) = f ′ (b) Espacios Cualitativos: El espacio cualitativo está definido por un conjunto de sı́mbolos totalmente ordenado (valores landmark (caracterı́sticos)) l1 < l2 < . . . < lk . Cada landmark es un nombre simbólico de un valor particular cuyo valor actual no se conoce. Por default: (−∞, 0, ∞). Se debe de incluir un valor landmark por cada punto de inflección (i.e., f ′ (t) = 0), por lo que durante la simulación a veces es posible crear nuevos landmarks. Las restricciones representan versiones cualitativas de operaciones matemáticas comúnes, tales como suma, multiplicación y diferenciación, y permiten mapear directamente una gran cantidad de ecuaciones diferenciales. Dado un conjunto incompleto de estados de variables y un conjunto de restricciones, QSIM determina todos los posibles estados que son consistentes con las restricciones. El estado cualitativo de un variable es una lista con su valor cualitativo (en o entre valores caracterı́sticos) y la derivada cualitativa: aumentando (inc), decreciendo (dec) o constante (std). Defn: Sean l1 < . . . < lk los valores caracterı́sticos de f : [a, b] → R∗ , para cualquier t ∈ [a, b]. Un estado cualitativo de f en t, QS(f, t), en un par <qval,qdir> definido como: 138 qval = ( lj (lj , lj+1) if f (t) = lj ; un landmark if f (t) ∈ (lj , lj+1 ) if f ′ (t) > 0 if f ′ (t) = 0 if f ′ (t) < 0 inc qdir = std dec A pesar de que está definido continuamente, la descripción se hace en puntos discretos. Entre puntos distinguibles ti y ti+1 podemos definir un valor cualitativo QS(f, ti , ti+1 ) para todo el tiempo entre ti y ti+1 . Si un sistema, es un conjunto F = {f1 , . . . , fm } de funciones fi : [a, b] → R∗ , el comportamiento cualitativo de un sistema se describe como una secuencia de estados de la forma: QS(F, t0 ), QS(F, t0 , t1 ), QS(F, t1 ), . . ., QS(F, tn−1 , tn ), QS(F, tn ). Restricciones Cualitativas: El estado cualitativo se expresa en términos de los valores de las variables. Las relaciones entre las variables está dado por las restricciones cualitativas: suma, mult, menos, deriv, M + , M − y constante. Dada cualquier ODE (ecuaciones diferenciales ordinarias), estan las podemos traducir a su equivalente QDE (ecuaciones diferenciales cualitativas), pero una QDE puede mapear a un número infinito de ODE, e.g., d2 u/dt − du/dt + arctanku = 0 f1 = du/dt f2 = df1 /dt f3 = ku f4 = arctanf3 f2 − f1 + f4 = 0 deriv(u, f1) deriv(f1 , f2 ) mult(k, u, f3 ) M + (f3 , f4 ) suma(f2 , f4 , f1 ) Los valores correspondientes son tuplas de valores landmark que pueden tomar las variables en un tiempo determinado (e.g.,M + (x, y), [(0, 0)]). 139 [V ] = el signo de V [+] [V ]0 = signo(V ) [0] [–] if V > 0 if V = 0 if V < 0 [V ]V0 = signo(V − V0 ) SUMA: suma(x, y, z)[(x1 , y1, z1 ), ...] (corresponding values) 1. [Ẋ] + [Ẏ ] = [Ż] suma [+] [0] [−] [+] [+] [+] [+]/[0]/[-] [0] [+] [0] [-] [-] [+]/[0]/[-] [-] [-] 2. [X]xi + [Y]yi = [Z]zi MULT: mult(x, y, z)[(x1 , y1 , z1 ), ...] 1. [X]0 [Y ]0 = [Z]0 mult [+] [0] [−] [+] [+] [0] [-] [0] [0] [0] [0] [-] [-] [0] [+] 2. [Y ]0 [Ẋ] + [X]0 [Ẏ ] = [Ż] MENOS: 1. [X] = −[Y ] 2. [X]xi = −[Y ]yi 3. Valores correspondientes: (0 0), (-∞, ∞), (∞, -∞) 140 DERIV 1. [Ẋ] = [Y ]0 CONSTANT 1. [Ẋ] = 0 2. [X]a = 0 También pueden existir para operaciones de muchas variables. Se pueden combinar los landmark con valores cuantitativos para tener más información. Propagación de restricciones (eficiente, local, no simpre exitosa). Propagar descripciones cualitativas entre variables a traves de restricciones, e.g., si M + (x, y) y [x]∗ = [+] => [y]∗ = [+], si suma(x, y, z) y [x]0 = [+] y [z]0 = [−] => [y]0 = [−]. e.g., en el caso de tubo-U, dada la descripción inicial de Tanque A lleno y Tanque B vacı́o (CantA = AMax y CantB = 0), podemos propagar para conocer los otros valores de las otras variables. Satisfacción de restricciones (encuentra todas las soluciones, pero es computacionalmente caro), e.g., un resorte oscilando. 141 9.2 Simulación 9.2.1 Tabla de transiciones de estados Trans-P P1 P2 P3 P4 P5 P6 P7 QS(f, ti ) < lj , std > < lj , std > < lj , std > < lj , inc > < (lj , lj+1 ), inc > < lj , dec > < (lj , lj+1 ), dec > ⇒ QS(f, ti , ti+1 ) < lj , std > < (lj , lj+1), inc > < (lj−1 , lj ), dec > < (lj , lj+1), inc > < (lj , lj+1), inc > < (lj−1 , lj ), dec > < (lj , lj+1), dec > Trans-I I1 I2 I3 I4 I5 I6 I7 I8 I9 QS(f, ti , ti+1 ) < lj , std > < (lj , lj+1), inc > < (lj , lj+1), inc > < (lj , lj+1), inc > < (lj , lj+1), dec > < (lj , lj+1), dec > < (lj , lj+1), dec > < (lj , lj+1), inc > < (lj , lj+1), dec > ⇒ QS(f, ti+1 ) < lj , std > < lj+1, std > < lj+1, inc > < (lj , lj+1 ), inc > < lj , std > < lj , dec > < (lj , lj+1 ), dec > < l∗ , std > < l∗ , std > Entrada: 1. Un conjunto de {f1 , . . . , fm } de sı́mbolos representando funciones en el sistema 2. Un conjunto de restricciones aplicadas a los sı́mbolos funcionales: ADD(f, g, h), MULT (f, g, h), MINUS(f, g), DERIV (f, g), M + (f, g), M − (f, g). Cada una puede tener relacionada valores correspondientes 3. Cada función está asociada con un conjunto ordenado de sı́mbolos, representando valores caracterı́sticos (cada función tiene por los menos el conjunto: {−∞, 0, +∞}) 142 4. Cada función puede tener asociada lı́mites superiores e inferiores (valores caracterı́sticos donde las restricciones ya no aplican) 5. Un punto temporal inicial, t0 , y los valores cualitativos para cada de las fi en t0 Salida: una o más descripciones cualitativas para las funciones dadas. Cada descripción tiene: 1. Una secuencia {t0 , . . . , tn } de sı́mbolos, representando los puntos temporales 2. Cada función fi tiene un conjunto totalmente ordenado de valores caracterı́sitcos, posiblemente mayor que el original 3. Cada función tiene una descripción cualitativa en cada punto temporal o intervalo entre puntos temporales 9.2.2 Algoritmo Coloca en ACTIVOS el estado inicial. REPEAT Until ACTIVOS = vacı́o o Tiempo ≥ tiempo lı́mite. Paso 1: Selecciona un estado cualitativo de ACTIVOS Paso 2: Para cada función determina sus posibles transiciones (usando la tabla) Paso 3: Para cada restricción, genera un conjunto de tuples y filtra de acuerdo a consistencia Paso 4: Realiza filtrado de consistencia entre conjuntos de tuples (transiciones adyacentes deben de concordar con las transiciones de los parametros comunes) Paso 5: Genera todas las intepretaciones globales Paso 6: Aplica filtros globales y añade los estados restantes a ACTIVOS 143 Filtros: 1. No cambio 2. Valores infinitos 3. Reconocer estado estable (quiescent) 4. Nuevos landmarks 5. Nuevos valores correspondientes en puntos temporales 6. Aparear estados e identificar ciclos 7. Propagar inconsistencias hacia atrás 8. Regiones de transición Ejemplo: Tiro vertical Restricciones: deriv(Y, V ), deriv(V, A), A(t) = g Estado Inicial: QS(A, t0 , t1 ) =< g, std > QS(V, t0 , t1 ) =< (0, ∞), dec > QS(Y, t0 , t1 ) =< (0, ∞), inc > A V Y I1: I5: I6: I7: I9: I4: I8: < g, std > < (0, ∞), dec > < (0, ∞), dec > < (0, ∞), dec > < (0, ∞), dec > < (0, ∞), inc > < (0, ∞), inc > =>< g, std > =>< 0, std > =>< 0, dec > =>< (0, ∞), dec > =>< L∗ , std > =>< (0, ∞), inc > =>< L∗ , std > 144 deriv(Y,V) (I4,I5) c (I4,I6) c (I4,I7) (I4,I9) w (I8,I5) w (I8,I6) (I8,I7) c (I8,I9) c Y I4 I8 deriv(V,A) (I5,I1) c (I6,I1) (I7,I1) (I9,I1) c V A I7 I1 I6 I1 QS(A, t1 ) =< g, std > QS(V, t1 ) =< 0, dec > QS(Y, t1 ) =< Ymax , std > Se puede demostrar que QSIM garantiza incluir todos los comportamientos que exhiben las ecuaciones diferenciales originales (sound), pero no garantiza incluir solo esas (no complete) y normalmente genera comportamientos que no representan realidades fı́sicas. Uno de los problemas es ambigüedad en la derivada de expresiones complejas. Por ejemplo: z = xy, x = inc, y = dec, entonces z = inc, dec o std. Las derivadas solo están restringidas por consideraciones de continuidad y no por valores caracterı́sticos. Posibles soluciones (Kuipers y Chiu ’87) • Ignorar la dirección de cambio de una variable (Kuipers y Chiu ’87) • Restricciones de “curvatura” cuando la derivada de una variable es cero para validar o refutar las curvaturas propuestas por QSIM (Kuipers y Chiu ’87) • Restricciones en las trayectorias de las variables en el plano de la fase (NIC: Non-Intersection of phase-space Constraint) (Lee y Kuipers ’88, Struss ’88) 145 • Incorporación de conocimiento cuantitativo • Abstracciones de comportamientos en uno solo • Derivadas de alto orden 146 Capı́tulo 10 Representaciones Relacionales 10.1 Temporales La manipulación de datos acerca del tiempo involucra la selección de datos y capacidades de inferencia sobre esos datos. El razonamiento temporal es relevante para: • Bases de Datos y de Conocimiento • Inteligencia Artificial • Ingenieria de Software Los problemas tı́picos que involucran tiempo son: • Razonamiento sobre eventos del pasado para analizar el presente • Planeación de acciones futuras y predicción de consecuencias • Trabajar dentro de las restricciones de tiempos de respuestas • Manejo de datos imprecisos e incompletos 147 El razonamiento temporal incluye: • Manejo de dependencias entre diferentes datos sobre el tiempo • Razonamiento acerca del perı́odo de validez de valores de los datos • Manejo de datos acerca del tiempo incompletos Dentro de Inteligencia Artificial se ha trabajado con razonamiento temporal en: • Interpretación de datos y sus relaciones temporales, por ejemplo en Procesamiento de Lenguaje Natural • Planificación de tareas bajo restricciones de tiempo Puntos importantes: • Selección de las entidades primitivas de tiempo: tiempos puntuales vs intervalos de tiempos • Ordenamiento del tiempo: orden total (“flujo” lineal) vs orden parcial (ramificación en diferentes posibles evoluciones) vs circularidad (eventos/procesos recurrentes) • Estructura del tiempo: números racionales, reales, enteros • Intervalos abiertos/cerrados en tiempos puntuales • Métrica de tiempo: operaciones sobre el tiempo, distancias temporales, diferente granularidad o niveles de abstracción El razonamiento temporal requiere considerar: • La especificación de mecanismos para derivar información adicional. Una caracterı́stica de sistemas que involucran tiempo es que los datos acerca del tiempo son incompletos. La información temporal puede ser en declaraciones sobre tiempos absolutos y/o relativos 148 • El desarrollo del lenguaje temporal • El diseño de mecanismos de consistencia y persistencia En IA es común ignorar el tiempo. El frame problem surge al tratar de razonar rigurosa y efectivamente acerca del futuro. El problema general es como razonar eficientemente acerca de lo que es verdadero sobre perı́odos extendidos de tiempo. Balance entre: evitar riesgos y economizar el proceso de predicción. El problema es si tenemos: IF algo es verdadero en un cierto tiempo THEN ésto es verdadero en éste tiempo. El qualification problem es el problema de hacer predicciones válidas acerca del futuro sin tener que considerar todo el pasado. Inicialmente se uso cálculo de situaciones (situational calculus). En ésta lógica, un evento se representa como una función que toma una situación (“foto” del mundo) y regresa la situación resultante de aplicar el evento. Esto dió lugar a la representación basada en estados: Dada una descripción de un estado inicial y de uno final, encontrar la secuencia de acciones para llegar a la meta. Esto es adecuado cuando todos los cambios del mundo resultan de las acciones del agente (suposición STRIPS ). Bajo esta suposición no es necesario considerar tiempo, el futuro está completamente determinado por el estado inicial y la secuencia de acciones. Esto es inadecuado para: • eventos externos (aunque ver DEVISER) • introducir condiciones temporales al realizar una acción • acciones concurrentes 149 Otros problemas... El coche camina si tiene gasolina vs. El esposo es un ca...nijo si le pega a su esposa En resúmen: lógica monotónica de primer orden es inadecuada. 10.1.1 D. McDermott ’82 Ideas: 1. varias cosas pueden ocurrir en un instante dado (varios futuros posibles) 2. existen pocas cosas discontinuas (continuidad de instancias entre dos instancias) Su modelo tiene una colección infinita de estados (instantes) en el universo, ordenados por la relación ≤. McDermott define 44 axiomas lógicos para tratar el tiempo. Usa una lógica de tipos (sorted) i.e., (forall (x) P) en realidad es: (forall (x) (is sort x) P) Axioma 1: (iff (and (≤ ?s1 ?s2) (≤ ?s2 ?s1)) (= ?s1 ?s2)) (iff (< ?s1 ?s2) (and (≤ ?s1 ?s2) (not (= ?s1 ?s2)))) Ax. 2: Densidad 150 (forall (S1 S2 ) (if (< S1 S2 )(exists (S3 ))(< S1 S3 S2 ) Ax. 3: Transitividad (forall (S1 S2 S3 ) (if (and (=< S1 S2 ) (=< S2 S3 )) (=< S1 S3 ))) Cada estado tiene un tiempo (ℜ) de ocurrencia llamado: “date”. (if (< s1 s2)(< (d s1)(d s2))) Los estados están puestos en crónicas. Una crónica es una posible historia del universo (un conjunto totalmente ordenado de estados). Axioma 5: (iff (is CRONICA ?x) (and (forall (y) % todos son estados (if (elt y ?x)(is STATE y))) (forall (s1 s2) % estan ordenados (iff (and (elt s1 ?x)(elt s2 ?x)) (or (< s1 s2)(> s1 s2)(= s1 s2)))) (forall (t) % para todo tiempo (exists (s) (and (elt s ?x)(= (d s) t)))) )) Nota: (elty?x): hecho ?x verdadero en estado y. Una crónica es convexa: i.e., para todo par de estados dentro de la crónica, un estado intermedio también está dentro de la crónica. Todos los estados están en algúna crónica. Las crónicas se bifurcan en el futuro (indeterminado). Los hechos cambian su valor de verdad en el tiempo. Un hecho se ve como un conjunto de estados (aquellos en donde el hecho es verdadero). 151 (elt s p) = hecho p es verdadero en estado s Un evento es algo que está pasando • toma tiempo • pueden pasar cosas en el inter • algunos eventos no cambian hechos Idea: Los eventos se identifican con un conjunto de intervalos (aquellos donde el evento ocurre una vez), siendo un intervalo un conjunto convexo totalmente ordenado de estados. Se puede indicar entre que estados ocurre un evento: (elt [s1, s2 ] e) = def (Occ s1 s2 e) Un hecho es verdadero en un intervalo de tiempo: (subset [s1, s2] p) = def (TT s1 s2 p) Para un evento: (subset e1 e2) = e1 es una forma en que e2 puede pasar ó toda ocurrencia de e1 es ocurrencia de e2. Existen tres problemas principales que tiene que enfrentar un razonador temporal: 1. razonar acerca de causalidad 2. razonar acerca de cambio continuo 3. planear acciones Causalidad: si un evento sigue a partir de otro. Los eventos pueden causar: eventos o hechos. 152 Cuando un evento causa otro evento, normalmente existe una demora (delay). (ecause p e1 e2 rf i) = e1 es siempre seguido de e2 después de una demora en el intervalo i, a menos que p sea falso antes de que acabe la demora. La demora se mide a partir de rf (con referencia a e1). e.g., (ecause (partido ?x PXY) (elegido ?x) ($-a-investigación) 1 [(1 a no), (2 a no)]). El segundo tipo de causalidad es cuando un evento causa un hecho (relacionado con el “Frame Problem”) i.e., que es verdadero después de un intervalo arbitrario, dada información incompleta de lo que pasó en el intervalo. Para esto introduce el concepto de “persistencia”. Un hecho p “persiste” de estado s con tiempo de vida r, si en todas las crónicas permanece verdadero hasta que r termina o hasta que “deja” de ser cierto (se deduce “cesa(p)” ≈ WCA). Argumenta que lo que causa un evento, no es la verdad de un hecho sino su persistencia. (pcause p e q rf i r1) = evento e es siempre seguido de hecho q después de una demora en el intervalo i, a menos que p sea falso en el inter. La demora se mide a partir de rf y q es verdadero o persiste por un tiempo r1. (pcause (siempre) (mata ?x) (muerto ?x) 1 [0,0] para-siempre) (if (is ESTUFA ?x) (pcause (¬ apagón) (prende ?x) (caliente ?x) 1 [(1 min), (2 min)] (24 horas))) La lógica no dice que el hecho deja de ser verdadero después de un perı́odo, simplemente que ya deja de saber. Cambio Continuo: Un sistema que razona sobre tiempo debe de razonar sobre flujo o cambio continuo. Un afluente es aquello cuyos valores cambian continuamente en el tiempo (se pueden relacionar con cantidades fı́sicas). Define también continuidad, razón de cambio, etc. 153 Planeación: razonar acerca de acciones. El que un agente realice una acción es un evento. Define: prevenir, permitir, mantener, evitar. “limitante”: no considera probabilidades. Se tiene que razonar acerca de las tareas (acciones que deben de hacerse) y de llevar acabo las acciones. A veces, cuando no se realiza una tarea es porque se hizo otra acción a la prevista. Ideas de implementación: tener diferentes crónicas organizadas jerárquicamente, con frames para eventos y hechos. Predecir posibles futuros y quedarse con el “bueno”. 10.1.2 J. Allen ’83, R. Pelavin y J. Allen ’86 Utiliza una lógica temporal basada en intervalos de tiempo con un mecanismo de propagación de restricciones. Meta: usar una lógica que permita considerar eventos externos, su interacción en lo planes y acciones concurrentes. Un evento es un conjunto de intervalos temporales sobre el cual el cambio asociado al evento ocurre. 1. existe una noción de lo que está pasando mientras ocurre el evento 2. pueden existir varios eventos ocurriendo en el mismo intervalo (concurrentes) Existen 13 formas (mutuamente exclusivas) en que dos intervalos pueden relacionarse. Las relaciones entre intervalos están guardadas en un red (nodos = intervalos, arcos = relaciones). 154 Cada vez que una nueva relación es añadida, se hace una propagación de restricciones para calcular nuevas relaciones. Relación X before Y X equal Y Sı́mbolo < = Inverso > = X meets Y X overlaps Y m o mi oi X during Y d di X starts Y s si X finishes Y f fi Representación XXX YYY XXX YYY XXXYYY XXX YYY XXX YYYYY XXX YYYYY XXX YYYY Para N de nodos el número de modificaciones es: 13 × (N − 1)(N − 2) 2 El algoritmo no genera inconsistencias, pero no las detecta en la entrada. Para reducir requerimientos de espacio, introduce intervalos de referencia (intervalo que agrupa intervalos). Con esto se puede construir una jerarquı́a y encontrar relaciones entre ella. Hints: hacer arboles, escoger intervalos de referencia claves que dividan “naturalmente” el dominio. La mayorı́a de la red permanece intacta. Permite información disjunta pero solo si se refiere a la relación entre dos intervalos. En R. Pelavin y J. Allen ’86 hacen referencias a las 13 relaciones (un poco diferentes). 155 Diff. con McDermott: se puede expresar lo que puede y no puede hacerse. Una instancia de un plan es un objeto que se refiere a una acción en un tiempo de ejecución particular realizado de una forma especı́fica. El tiempo de ejecución está dado por un intervalo temporal (no solo el punto inicial) donde la instancia del plan puede ocurrir. Instancias de planes con acciones concurrentes se pueden formar al hacer la composición de dos instancias de plan con tiempos que se traslapan. Definen una lógica de tipos, denotanto intervalos temporales, instancias de eventos, instancias de planes, propiedades y objetos + predicados para especificar relaciones temporales entre intervalos, que una prop. se mantenga en un intervalo o que una instancia de un evento ocurra. • (prior i1 i2 ) = intervalo i1 está temporalmente antes o inmediatemente antes de i2 • (ends-before i1 i2 ) = intervalo i1 acaba antes o al mismo tiempo que i2 • (holds p i) = propiedad p se mantiene durante el intervalo i (y sus subintervalos) • (occ ei ) = ocurre la instancia de evento ei • e@i = instancia de evento o plan tiene un tiempo de ocurrencia i • (time-of ei ) = el tiempo de ocurrencia asociado al evento ei (= i (time-of e@i)) • (COMP pi1 pi2 ) = instancia de plan por la composición de las instancias de plan pi1 y pi2 En la teorı́a original de Allen no existe noción de pasado, presente y futuro. No hay noción de lo que posiblemente pase o posiblemente pudo haber pasado. Extensiones (para capturar posibilidades): 156 (INEV i P): en el intervalo i, P es inevitable ó independientemente de los eventos que ocurran después de i, P es verdadero. Su dual (el operador de posibilidad) es: (POS i P ) = (NOT P))) def (NOT (INEV i Si: IL1 , IL2 , . . . , ILn ⊢ IL0 ILi = declaración lógica de intervalos: inev(IL1 ), inev(IL2 ), . . . , inev(ILn ) ⊢ inev(IL0 ) La lógica de intervalos con INEV puede hacer aseveraciones acerca de posibilidades futuras (tı́picamente en mundos posibles arreglados en forma de arboles, parecido a McDermott), donde cada rama es una historia posible del mundo. La verdad de las oraciones modales, en un mundo h0 , dependen de las historias del mundo accesibles a h0 . La verdad de la oración (INEV i P ) en h0 depende de las historias de mundos posibles con respecto a h0 y que comparten un pasado común hasta el final del intervalo i. La verdad de las oraciones no modales (declaraciones lógicas de intervalos) dependen de instancias de eventos y propiedades en h0 . Un hecho es el mismo objeto en todos los mundos posibles. Si una relación temporal entre dos intervalos es verdadera, entonces es en todos los tiempos inevitable (i.e., linea de tiempo global). Lo que se quiere al construir son instancias de planes que en un tiempo i sea inevitable (no solo posibles) que P i realice la meta. Para cumplir una meta (M): (INEV Ip (IF (OCC pi ) M)) INEV puede representar que alguna condición futura es posible, pero no puede atribuir la causa de esa posibilidad a factores externos, las acciones del agente o la combinación de ambas. 157 Se trata no solo de que se cumpla bajo todas las posibles circunstancias externas, sino también los pasos requeridos. Para tener una noción de las condiciones necesarias para la ejecución de un plan se hace la distinción entre intentos de instancias de plan y ocurrencias de instancias de plan. Operador modal: IFTRIED (IFTRIED pi P ): si la instancia de plan pi se intenta, P serı́a verdadero. El intentar una instancia de plan no tiene efectos en las propiedades o eventos anteriores. Para especificar que pi es ejecutable: (IFTRIED pi (OCC pi)) = def (EXECUTABLE pi) Con esto se pueden expresar metas tales como: evitar alguna condición, realizar una acción en un orden determinado, prevenir que ocurra una precondición que posiblemente pueda ocurrir. Para composición de instancias de planes: 1. pi1 y pi2 son ejecutables por si solos, pero no juntos (e.g., comparten recursos) 2. (COMP pi1 pi2 ) es ejecutable pero no alguno de los dos solos (e.g., pi1 invalida algo de pi2 ) 3. (COMP pi1 pi2 ) es ejecutable pero ninguno de los dos solos (e.g., levantar algo) Se pueden especificar en forma de “restricciones” las posibles interacciones: (IF (PRIOR (TIME-OF ?pi1) (TIME-OF ?pi2)) (IFF (EXECUTABLE (COMP ?pi1 ?pi2)) (AND (EXECUTABLE ?pi1) (IFTRIED ?pi1 (EXECUTABLE ?pi2))))) 158 (IF (IFTRIED ?pi1 (IFTRIED ?pi2 (AND (OCC ?pi1)(OCC ?pi2)))) (IFTRIED (COMP ?pi1 ?pi2) (AND (OCC ?pi1) (OCC ?pi2)))) Cuando hay interacciones entre instancias, por ejemplo, para expresar que solo puede usarse una ornilla a la vez. (IF (AND (OCC (calentar ?pnx )@iHx ) (OCC (calentar ?pny )@iHy )) (OR (DISJOINT ?iHx ?iHy ) (AND (= ?pnx ?pny ) (= ?IHx ?IHy )))) También puede expresar restricciones debidas a agentes externos. (INEV ?ie (IF (HOLDS (hielo) Iref) (NOT (AND (OCC (carga bolsa1)@Ic) (OCC (carga bolsa2)@Ic))))) El problema de determinar si dos instancias de planes intervienen entre ellas se reduce a determinar si se pueden ejecutar juntas. La verdad de (IFTRIED pi P ) en h0 depende de las historias de mundos “más cercanas” a h0 donde la instancia de plan pi es intentada. Donde más cercano son mundos que difieren de h0 en la forma de ejecutar pi, en una acción básica que no puede ejecutarse junto con pi, o cualquier instancia de plan cuyas condiciones son violadas por pi. Para el “Frame Problem”, su lógica mantiene propiedades de planes de instancias (que no son de agentes externos). Lo que necesita es especificar “Frame Axioms” (describir no solo los efectos de las acciones, pero también lo que no afecta)!! Una alternativa es utilizar razonamiento por default con una noción de persistencia ≈ McDermott. 159 También hay investigación en combinar representaciones temporales con mecanismos de manejo de incertidumbre (redes bayesianas, lógica difusa) dando origen a las: redes bayesianas temporales y las redes difusas temporales [Kanazawa 91]. 10.2 Causales El concepto de “causalidad” es controversial! En muchos casos es muy difı́cil saber cuál es la causa y cuál es el efecto. Incluso algunas personas afirman que en realidad no existe objetivamente la causalidad, sino es una invención humana que existe sólo en la mente. Sin embargo, es importante poder representar y razonar acerca de causalidad, en particular en sistemas que intenten representar el “sentido común”. 10.2.1 CYC CYC [Lenat 90] distingue dos significados para “Evento 1 causa Evento 2”: 1. Precedencia temporal: Evento 1 precede temporalmente a Evento 2 (E1 empieza entes que E2). 2. Implicación mecanı́stica: Evento 1 ocaciona Evento 2 mediante algun mecanismo, posiblemente desconocido. CYC representa los diferentes tipos de causalidad y los utiliza de dos formas: 1. Predicción: si ocurre E1 predice que E2 ocurrirá. 2. Abducción: si ocurre E2 posiblemete ocurrió E1. 160 10.2.2 Redes causales Otro tipo de representación que se presta para representar y razonar sobre causalidad son las redes bayesianas, también conocidas como redes causales. En éstas, normalmente se interpreta que la variables al inicio de una arco causa la variable al final del arco. Esto es: E1 —–> E2 De manera análoga a CYC, podemos razonar en forma predictiva de causas a efectos y en forma evidencial de efectos (o evidencias) a causas. Entonces, mediante el uso de técnicas probabilı́sticas, en particular el teorema de Bayes, podemos hacer cierto razonamiento causal. Existen algunos problemas con este enfoque: • es difı́cil distinguir causalidad de simple correlación • no es posible representar “ciclos”, como en el caso de que E1 y E2 se sostengan mutuamente. Existe investigación actualmente que pretende distinguir redes bayesianas de redes causales y manejar ciclos [Pearl 96]. 10.3 Espaciales Las representaciones espaciales se refieren a representar y razonar acerca de la posición en el espacio de los objetos y las relaciones espaciales entre dos o más objetos. En principio se puede pensar en hacer una analogı́a espacio-tiempo y considerar una representación similar a las de tiempo. Sin embargo, existen dos diferencias fundamentales: 161 1. El tiempo es unidimensional mientras que el espacio es tridimensional. 2. El tiempo tiene cierta dirección mientras que en el espacio no hay esta distinción. 10.3.1 CYC CYC [Lenat 90] define una “Ontologı́a sobre modelos espaciales” que incluye dos aspectos: • Objetos (categorı́as) • Relaciones entre los objetos El objeto básico de la representación espacial de CYC es el “punto”; el cual puede ser descrito por su posición (x, y, z) respecto a un sistema de coordenadas de referencia. Un conjunto de puntos, descritos por ecuaciones o restricciones, describen un objeto en el espacio. Hay dos tipos básicos de relaciones espaciales en CYC: 1. Relaciones espaciales: relaciones espaciales básicas, análogas a las temporales, como: abajo, encima, a la izquierda, a la derecha, etc. 2. Relaciones espacio-temporales: se refieren a los cambios en relaciones espaciales respecto al tiempo, como: conectados fuertemente y conectados libremente (tiene que ver con los concepto de sólido, lı́quido, etc.). Un problema es que se tiene una explosión de relaciones, en particular si las combinamos. Se puede minimizar, si se restringe el número de combinaciones o si considera uns sola dimensión. CYC considera 4 formas de utilizar el conocimiento espacial: 1. Predicción: predecir el comportamiento de un dispositivo. 162 2. Diagnóstico: determinar la estructura del objeto en base al comportamiento observado. 3. Manufactura: sintetizar una secuencia que produzca cierto objeto. 4. Diseño: sintetizar un objeto (forma) que produzca cierto comportamiento. Se pueden considerar una serie de abstracciones o simplificaciones como el restringirse a objetos sólidos, el considerar ciertas formas regulares y su composición, etc. 10.4 Funcionalidad La representación de funcionalidad se refiere a representar la forma en que un dispositivo funciona; es decir, los mecanismo o secuencia de eventos que hacen que el objeto realize cierta función. Esto es en contraste con la estructura del objeto, que tiene que ver más bien con su representación espacial. Un enfoque para representar funcionalidad o comportamiento consiste en decribir los mecanismo causales que producen dicho comportamiento [Iwasaki 94]. Este cono–cimiento se puede utilizar de diversas formas: • Formulación: transformar ciertos requerimientos a un comportamiento esperado • Sı́ntesis: transformar el comportamiento a una estructura • Análisis: obtener el comportamiento de la estructura • Evaluación: comparar el comportamiento actual con el predicho El aspecto de funcionalidad esta muy relacionado con los aspectos temporales, causales y espaciales; ası́ como las representaciones basadas en modelos. 163 Capı́tulo 11 Sistemas de Mantenimiento de Verdad 11.1 Introduccion Uno de los apectos más importantes del comportamiento inteligente es la habilidad de razonar y adaptarse en ambientes cambiantes Los Sistemas de Mantenimiento de Verdad revisan sus conjuntos de creencias para mantener la consistencia del sistema cuando existe nueva información que contradiga la existente Los TMS’s trabajan junto con un mecanismo de razonamiento Posibles aplicaciones: 1. Problemas de Satisfacción de Restricciones: Especificados por un conjunto de variables y restricciones en subconjuntos de los valores de las variables. Proceso: asignar valores a variables incrementalmente checando consistencia 2. Problemas de Planificación: encontrar un camino entre un estado inicial y uno final, aplicando reglas que determinan los estados intermedios y verificando consistencias 164 El TMS/RMS (Truth/Reasoning Maintenance System) es un mecanismo de manejo de contradicciones Doyle (79), McAllester (80), McDermott (83), ... Si sabemos: A y If A and B Then C podemos poner If B Then C Pero, que pasa si cambia A? Hasta ahora hemos supuesto un proceso monotónico Ej. clásico: If (ave ?x) Then (vuela ?x) Pero que tal si ?x es un pingüino, no tiene alas o está muerto? Parche (sólo para casos simples): If (and (ave ?x) (not (ping”uino ?x)) (not (muerto ?x)) ... Then (vuela ?x) Problemas: • enumerar TODAS las excepciones • problemas para BWD-CHN para establecer que ?x no es algo Alternativa: usar estadı́sticas y asignar probabilidades Algo parecido: 165 If (and (ave ?x) (consistente (vuela ?x))) Then (vuela ?x) Donde: consistente = no puedo probar que: (not (vuela ?x)) Pero... If (and (medico ?x) (consistente (llama ?x doc))) Then (llama ?x doc) If (and (especialista eminente ?x) (consistente (not (llama ?x doc)))) Then (llama ?x don) Tratarı́a de probar (llama ?x doc), lo cual llamarı́a a la primera regla Se tiene que tener cuidado con el orden o la fuerza de las reglas Lo más común (aunque no muy eficiente) es hacer chronological backtracking (depth-first search - Prolog) Problema: se pueden explorar muchas alternativas que no tienen nada que ver con la contradicción, antes de encontrar al culpable Una forma simple (medio sucia) es indexar las deducciones y borrar todos los hechos a partir de la contradicción Pero... Tag12 Tag1022 Tag1092 (Fidel Velazquez es lider de la CTM) (Salinas es presidente) (Fidel Velazquez muere) Claramente lo que se tiene que guardar son las dependencias, osea guardar para cada hecho deducido la lista de hechos/reglas de la cual depende 166 Si se encuentra una contradicción, hacer un “backtracking” pero solo a los hechos de los cuales depende. A esto se llama dependency-directed backtracking En general, sin información, el escoger entre opciones no puede evitarse, sin embargo, podemos mejorar cuando eliminamos alternativas por contradicción (1) (3) (5) (7) x ∈ {0, 1} y ∈ {0, 1} z ∈ {0, 1} b 6= c (2) (4) (6) (8) a = e1 (x) b = e2 (x) c = e3 (x) a 6= b Donde ei (w) requiere de un cálculo complicado (costoso), e.g., ei (w) = (w + 1, 000, 000)! Problemas de búsqueda exhaustiva: 24 cálculos costosos • x = 0, y = 0, z = 0 (c) • x = 0, y = 0, z = 1 (c) • x = 0, y = 1, z = 0 (s) • x = 0, y = 1, z = 1 (c) • x = 1, y = 0, z = 0 (c) • x = 1, y = 0, z = 1 (s) • x = 1, y = 1, z = 0 (c) • x = 1, y = 1, z = 1 (c) Problemas de chronological backtracking (prolog): 14 cálculos costosos 1. x = 0 2. x = 0, y = 0 3. x = 0, y = 0, z = 0 (c) 167 4. x = 0, y = 0, z = 1 (c) 5. x = 0, y = 1 6. x = 0, y = 1, z = 0 (s) 7. x = 0, y = 1, z = 1 (c) 8. x = 1 9. x = 1, y = 0 10. x = 1, y = 0, z = 0 (c) 11. x = 1, y = 0, z = 1 (s) 12. x = 1, y = 1 13. x = 1, y = 1, z = 0 (c) 14. x = 1, y = 1, z = 1 (c) • Backtracking inútil: pasos (4) y (14), la selección de z no tiene efecto en pasos (3) o (13) • El re-descubrimiento de contradicciones: pasos (19) y (14), la contradicción del paso (3) depende sólo de y = 0 y z = 0, por lo que el paso (10) se pudo evitar • Re-descubrimiento de inferencias: pasos (6) y (7) y (9)–(14) no son necesarios • Orden incorrecto: si la prueba a 6= b se pone antes del cálculo de b, se pueden eliminar 4 cálculos costosos (1) x ∈ {1, 2} (3) x = 6 y∨x=y (5) r = (100xy)! (2) y ∈ {1, 2} (4) z = (1, 000xy)! (3), (4) y (5) no dependen de un resultado anterior y se pueden calcular en cualquier orden (en principio) Terminologá: 168 • Premisas: definen datos que son siempre ciertos (no dependen de otros datos) • Suposiciones: se creen en ellas hasta que se pruebe lo contrario (razonar con información incompleta) • Hechos derivados: se infieren de premisas, suposiciones y otros hechos derivados (dependen de ciertas suposiciones y son verdaderos si todas sus suposiciones tambien lo son) • Ambiente: conjunto de suposiciones que describen un estado • Contexto: el estado actual, comprende el ambiente y todos los datos que pueden ser derivados de el • Justificación: describe dependencias entre los datos. Al derivarse un nuevo dato, la justificación dice como se derivó (i.e., ligas entre hechos derivados y antecedentes) • Etiqueta: se pueden añadir a datos para indicar en que ambiente es válido • Nodo: una estructura de datos con un ı́ndice, dato, justificación y etiqueta En un TMS prototı́po (Doyle), los hechos y las reglas se guardan con etiquetas de nodos • Las reglas/hechos no son verdaderas o falsas, más bien se cree o no en ellas • se refieren a ellas como dentro IN, si están dentro de lo que se cree, y fuera OUT si están dentro de lo que no se cree • Se tiene un conjunto de nodos etiquetados con hechos/reglas y un conjunto de justificaciones algúnas válidas y otras no • Un nodo está IN si tiene una o más justificaciones válidas (se puede tener más de una justificación por la cual creamos en un hecho) 169 Existen dos tipos de Justificaciones: a) Support List (lista de soporte): (SL <lista de nodos> <lista de nodos>) Es válida si todos los nodos en la primera lista están IN y todos los nodos de la segunda lista están OUT b) Conditional Proof (prueba condicional): (CP Nodo <lista de nodos> <lista de nodos>) Es válida si Nodo está IN cuando puede ser deducido de cualquier forma cuando todos los nodos de la primera lista están IN y todos los nodos de la segunda lista están OUT Son usados para registrar inconsistencias Un nodo es una suposición si su lista OUT no está vacı́a Un nodo es un axioma si tiene una justificación: (SL () ()) Los CP sirven como soporte de reglas deducidas Nodo n1 n2 n3 n4 n5 Hecho/Regla A B If A Then B C If A and C Then B Justificación (puede no tener justificación) ... (CP n2 (n1) ()) ... (CP n2 (n4 n3) ()) Un TMS/RMS no es un sistema de razonamiento, es sólo un esclavo de uno Se puede hacer razonamiento por default, e.g., Si G es la regla que hace la llamada por default y tenemos: F1 , F2 , . . . , Fn , posibilidades. Si queremos que Fi sea el default, se le da una justificaión: (SL(G)(F1 F2 . . . Fi−1 Fi+1 . . . Fn )) Con esto Fi está IN si G está IN y el resto de los valores alternos están OUT (no hay razón por la cual creer en ellos) 170 Para no enumerar todas las posibilidades se puede crear un nodo arbitrario: (SL(G)(E)) y darle a E justificaciones de los valores posibles que se conozcan (i.e., (SL(Fj )())), e.g., Nodo n1 n2 n3 n4 Hecho/Regla salario = 100 salario 6= 100 salario = 93 salario = 112 Justificación (SL(. . .)(n2)) (SL(n3)())(SL(n4)()) ... ... n1 está IN a menos que se conozca otro salario Con un TMS/RMS podemos hacer dependency-directed backtracking, quitando suposiciones sin introducir contradicciones El TMS/RMS no tiene una noción de inconsistencia, ésto se le deja al sistema de razonamiento Algoritmo para quitar inconsistencias Supongase que N es un nodo (hecho/regla) que el sistema de razonamiento encuentra que introduce una contradicción Pasos: 1. Encuentra todos los supuestos que sostienen a la contradicción (i.e., sigue hacia atrás las dependencias desde N que están actualmente IN (y que provocan el problema)) 2. Selecciona sólo los supuestos máximos (i.e., aquellos que no apoyan a otros supuestos). Supongase que son: A1 , A2 , . . . An 3. Crea un nuevo nodo NB (no good ) para representar la ocurrencia de la contradicción, con la siguiente justificación: Nodo Hecho/Regla Justificación NB not(A1 A2 . . . An ) (CP N(A1 A2 . . . An )()) 4. Selecciona, en forma aleatoria, del conjunto de suposiciones máximas una suposición culpable. El objetivo es forzarla OUT para que N también quede OUT. Supongase que se escoge Ai . 171 5. Como Ai es un supuesto, tiene una lista OUT no vacı́a en una justificación. Encuentra los nodos D1 , D2 , . . ., Dk que están OUT de tal forma que si cualquiera estuviera IN, Ai quedarı́a OUT. Escoge uno, digamos Dj . 6. Dale a Dj la siguiente justificación para que quede IN: (SL (NB A1 . . . Ai−1 Ai+1 . . . An ) (D1 . . . Dj−1 Dj+1 . . . Dk )) Con ésto, Dj está IN, por lo que Ai queda OUT y N por lo tanto queda OUT. Si cualquier otra D entra o cualquier A se vuelve OUT, entonces Dj queda OUT. Esto puede regresar a Ai , pero no a N (por lo que la selección arbritaria de Ai se justifica) NB guarda la escencia de la contradicción por lo que el sistema de razonamiento no vuelve a encontrala (por lo menos de esa forma) e.g., Nodo n1 n2 n3 n4 Hecho/Regla t=6 t 6= 6 lugar = Tec lugar = IIE Justificación (SL () (n2)) (SL () (n4)) Los nodos IN son {n1, n3}. Supongamos que el sistema de razonamiento encuentra que: n5 ...contradicción... (SL (n1 n3) ()) No se puede estar en el Tec a la 6 El conjunto IN es {n1, n3, n5}. Para eliminar la contradicción, introducimos un NB: n6 not(n1 n3) (CP n5 (n1 n3) ()) Los supuestos máximos son n1 y n3. Escogemos a n3 (al azar). Tiene a n4 como nodo OUT. A n4 se le da la justificación: 172 n4 lugar = IIE (SL (n6 n1) ()) Los IN son ahora: {n1, n4, n6} y se resuelve el problema La existencia de n5 y n6 paran al sistema de razonamiento de hacer el mismo error de nuevo. En sistemas más sofisticados, la selección del “culpable” suele ser más cuidadosa En la práctica siguen existiendo complicaciones, e.g., IF ?x se esta quemando AND ?y esta en ?x AND ...condiciones para que se queme ?y... Then ?y se quemo Cuando “?x se está quemando” deja de ser válido, la conclusión “?y se quemó” sigue siendo verdadera, pero un TMS la eliminarı́a. Aqui el problema, más que con el TMS, es con el manejo de relaciones temporales, donde los efectos se mantienen aunque las causas se eliminen. 11.1.1 ATMS J. de Kleer (86) Problemas de los TMS: • Sólo considera una solución a la vez (e.g., x = 0, y = 1, z = 0 ó x = 1, y = 0, z = 1) • Demasiado “celoso” en la evitación de contradicciones. Una contradicción de A ∧ B indica que A y B no pueden ocurrir al mismo tiempo, pero puede ser importante hacer inferencias con A y con B independientemente 173 • El cambio de estados es difı́cil. La única forma es introduciendo una contradicción. • Un TMS sólo usa justificaciones, no suposiciones (las cuales a veces cambian) • Es muy caro computacionalmente, ya que requiere de un mecanismo de satisfacción de restricciones • Durante la solución de un problema, un dato puede obtenerse, quitarse por una contradicción y volverse a introducir por otra. Existe un problema de determinar cuales datos pueden volverse a restaurar (unouting) 11.1.2 Propagación de Restricciones El conocer y explotar las restricciones del problema, permiten reducir la búsqueda haciendo selecciones “inteligentes” Pueden detectar inconsistencias y remediarlas La propagación puede ser cualitativa o cuantitativa Opera sobre: variables de estado, valores y restricciones Dados unos valores iniciales, la propagación asigna valores a variables intermedias que satisfagan las restricciones e.g., f = m × a Si Si Si Si f = 40, m = 10 ⇒ a = 10 a = inc, m = std ⇒ f = inc a = 9.81 ⇒ f =?, m =? a = dec, m = inc ⇒ f =? En general, se puede modelar un sistema por medio de una red de restricciones y predecir su comportamiento mediante la propagación Util en diagnóstico de fallas 174 No se necesita saber todos los valores de las variables para realizar un diagnóstico e.g., i = ((a × b) + 1)(c + d) h = (a × b) − (c + d) Entrada: a = 1, b = 2, c = 2, d = 3 ó a = std, b = dec, c = std, d = inc(1 = std) Salida: e = 2, g = 3, f = 5, i = 15, h = −1 ó e = dec, g = dec, f = inc, h = dec, i =? Para hacer diagnóstico con propagación de restricciones: • tomar valores (medidos) • propagar valores (predichos) • identificar inconsistencias (compara medidos vs. predichos) ATMS sirve para diagnóstico de fallas múltiples (De Kleer y Williams 87) Suposiciones: 1. El tomar una medición no afecta al sistema 2. El sistema está estático Cada variable tiene asignado tres datos: Variable = Valor, Dependencias, Ambiente (ciclo) e.g., h=f ×g Si: f = 4, [componente1], 1 g = 2, [componente2], 1 Entonces: h = 8, [componente1, componente2, multiplacioni ], 2 175 Conflicto: diferencia entre valor dado (medido) y valor predicho (propagado) e.g., x = 3, y = 2, z (prop) = 5, z (medido) = 6 Dependencias: conjunto de posibles componentes con fallas e.g., las componentes [componente1, componente2, multiplacióni ] son las dependencas de h Conjunto conflicto: conjunto de componentes que explican el conflicto (i.e., explican el comportamiento si fallan) Conjunto conflicto mı́nimo: conjunto conflicto tal que no existe un subconjunto de él que sea conjunto conflicto Si medimos h y es diferente de 8 entonces sabemos que al menos uno de sus componentes en las dependencias está mal. Cada uno de ellos es un conjunto conflicto mı́nimo. A veces, necesitamos más de un componente para explicar los conflictos Una variable puede tener más de un valor predicho En el ATMS se propagan valores tomando en cuenta las restricciones hasta que: • las posibilidades de generar nuevos valores ya se agotaron • no hay suficiente información para continuar • una lista de dependencias es superconjunto de un conjunto conflicto mı́nimo Inicialmente el espacio de posibles conjuntos mı́nimos es el conjunto vacı́o. Al ir propagando y encontrando conflictos, se va incrementando este espacio para poder explicar adecuademente el comportamiento Si se encuentra que un componente funciona, éste puede eliminarse del espacio de conjunto mı́nimos, de las listas de dependencias y de las listas de conflictos 176 Ejemplo: f = (a × c) + (b × d) g = (c × e) + (b × d) El espacio de conjuntos mı́nimos es: m123s12 m123s1 m123s2 m12s12 m13s12 m23s12 m123 m12s1 m12s2 m13s1 m13s2 m1s12 m23s1 m23s2 m2s12 m3s12 m12 m12 m1s1 m1s2 m23 m2s1 m2s2 m3s1 m3s2 s12 m1 m2 m3 s1 s2 [] Entrada: a = 3, [], 0 b = 2, [], 0 c = 2, [], 0 d = 3, [], 0 e = 3, [], 0 Propagación inicial: x = 6, [m1], 0 y = 6, [m2], 0 z = 6, [m3], 0 f = 12, [m1, m2, s1], 0 g = 12, [m2, m3, s2], 0 En principio, se espera que éstos valores estén de acuerdo con futuras mediciones Si medimos: f = 10, [], 1 esto produce un conflicto con: [m1,m2,s1] Por lo que ahora los nuevos conjuntos conflicto mı́nimos son: [m1], [m2], [s1] Con la propagación obtenemos: x = 4, [m2, s1], 1 (de y = 6 y f = 10) y = 4, [m1, s1], 1 (de x = 6 y f = 10) g = 10, [m1, m3, s1, s2], 1 (de y = 4 y z = 6) 177 La propagación no se hace en superconjuntos de algún conflicto. Si ahora medimos: g = 12, [], 2, ésto produce un conflicto con: [m1,m3,s1,s2] (de g = 10) Con la propagación obtenemos: x = 4, [m3, s1, s2], 2 y = 6, [m3, s2], 2 z = 6, [m2, s2], 2 z = 8, [m1, s1, s2], 2 s1 y m1 siguen siendo conjuntos candidatos mı́nimos (i.e., ellos sólos explican el comportamiento) Pero ahora hay que considerar los superconjuntos de m2: {m12, m23, m2s1, m2s2}. Como m12 y m2s1 son superconjuntos de s1 y de m1, no se consideran. Por lo que los conjuntos candidatos mı́nimos son: [s1], [m1], [m23], [m2s2] Si ahora medimos x existen 3 posibilidades: • x = 4, el conjunto conflicto es [m1] y también es un candidato mı́nimo conflicto. • x = 6, los conjuntos conflictos son: [m2,s1],[m3,s1,s2] y los candidatos mı́nimos son: [s1], [m23], [m2s2]. m1 funciona correctamente y se puede eliminar • x 6= 4 6= 6, los conjuntos conflictos son: [m1], [m2,s1] y [m3, s1, s2]. [m1] y [s1] ya no explican por si mismos los conflictos, por lo que los candidatos mı́nimos son: [m1s1], [m123], [m12s2] 178 Capı́tulo 12 Razonamiento con Incertidumbre 12.1 Introducción 12.1.1 Causas de Incertidumbre • Información: – Incompleta (falta de análisis en medicina, falta de variables de campo en sistemas de control). – Poco confiable (medidores poco confiables, instrumentos imprecisos, análisis poco confiables). – Ruido, distorsión (ruido o distorsión en sistemas de visión, de reconocimiento de voz, de comunicaciones). • Conocimiento: – Impreciso (si tiene dolor de cabeza posiblemente tiene gripe, el lumen es una región obscura, grande y uniforme). – Contradictorio (si tiene dolor de cabeza es probable que tenga gripe, pero también es posible que no tenga gripe, opiniones encontradas de diferentes expertos). 179 • Representación: – No adecuada (no se selecciono la representación(es) idónea(s) para la aplicación). – Falta de poder descriptivo (las representaciones no permiten representar adecuadamente el conoci–miento del dominio, como lo expresa el experto). 12.1.2 Ejemplos de dominios con incertidumbre • Diagnóstico medico • Predicción financiera • Exploración minera / petrolera • Interpretación de imágenes (visión) • Reconocimiento de voz • Monitoreo / control de procesos industriales complejos 12.1.3 Efectos de Incertidumbre Si pierden varias propiedades de los sistemas que no tienen incertidumbre, principalmente aquellos basados en lógicas o reglas, lo cual hace el manejo de incertidumbre más complejo. Las principales dos caracterı́sticas de lógica de primer orden que, en general, ya no aplican son: 1. Modular 2. Monotónica Modular: Un sistema de reglas es modular, ya que para saber la verdad de una regla sólo tiene que considerarla a ésta, sin importar el resto del conocimiento. Por ejemplo: 180 Si A entonces B Si A es verdadero, B es verdadero independientemente otras reglas o datos. Pero si hay incertidumbre: Si A entonces posiblemente B, o si A entonces B con probabilidad = 0.7 Ya no puedo considerar la regla por si sola, debo tomar en cuenta otras reglas que involucren a B. Puede haber otra regla: Si C entonces B con probabilidad = 0.9 Si A y C son verdaderos, cual es la probabilidad de B ? 0.7? 0.9? C1ombinación de ambas? Monotónicas: Un sistema es monotónico si al agregar nueva información a su base de datos, entonces no se alteran las conclusiones que seguı́an de la base de datos original. Por ejemplo: Si A entonces B Si A es verdadero, B es verdadero sin importar si más información se agrega a la memoria de trabajo. Pero si tenemos: Si A entonces posiblemente B, o si A entonces B con probabilidad = 0.7 Ya no puedo considerar que la certeza en B no puede cambiar, debo tomar en cuanta otras reglas que involucren a B. Puede haber otra regla, como en el ejemplo anterior: Si C entonces B con probabilidad = 0.9 181 Entonces en un tiempo t 1 A es verdadera y C falsa, por lo que la probabilidad de B es 0.7, pero en un tiempo t 2 C se hace verdadera y entonces cambiarı́a la probabilidad de B. Ambos aspectos hacen más complejas las representaciones del conocimiento que toman en cuenta incertidumbre, lo que ha llevado al desarrollo de diversas técnicas para su manejo. 12.1.4 Desarrollo Histórico • Inicios de IA (50’s, 60’s) - no se consideró el uso de “números”, en general y probabilidad, en particular, ya que el enfoque era en manejo simbólico vs. el resto de computación que era numérico. Se trabajó en mundos “artificiales” que en general no requerı́an manejar incertidumbre. A principios de los 60’s se creı́a que lógica iba a ser suficientemente poderosa para resolver problemas reales. • Sistemas Expertos (70’s) - surgió la necesidad de manejo de incertidumbre en los primeros sistemas expertos en el mundo “real”. Por diversas razones, no se consideró el uso de probabilidad y surgieron mecanismos alternativos ad-hoc como el de MYCIN (medicina) y Prospector (exploración minera). En este tiempo, desligados de IA, surgen nuevas teorı́as para representar incertidumbre como lógica difusa y teorı́a de Dempster–Shafer. • Resurgimiento de probabilidad (80’s) - resurge el uso de probabilidad para manejo de incertidumbre con el desarrollo de las redes Bayesianas. También los investigadores de IA “descubren” otras teorı́as y las aplican en sistemas expertos. • Diversos formalismos (90’s) - continúan varios formalismos para el manejo de incertidumbre sin haber un “ganador” definitivo. Paradójicamente, la mayor parte de los shells comerciales siguen usando técnicas ad-hoc a pesar de haberse publicado problemas teóricos y prácticos con este tipo de métodos. 182 12.1.5 Técnicas • No-numéricas – Lógicas no-monotónicas – Sistemas de mantenimiento de verdad (TMS, ATMS) – Teorı́as de endosos • Numéricas – Empı́ricas (MYCIN, Prospector) – Métodos aproximados – Lógica difusa – Teorı́a de Dempster-Shafer – Redes Bayesianas Las reglas de producción se pueden ver como: IF Evidencia Then Hipótesis Se ha supuesto que si la evidencia es cierta, la hipótesis también lo es. En la práctica no existe la certeza y se extiende la regla con una medida de certidumbre. Un método de razonamiento con incertidumbre debe de proporcionar funciones para: • Calcular la incertidumbre en una hipótesis h asociada a la evidencia actual (i.e., propagar incertidumbre) (fprop ) • Combinar evidencias separadas (AND, OR) (fand , for ) • Combinar diferentes lı́neas de razonamiento (fco ), ésto es, obtener la misma hipótesis en más de una forma 183 12.2 Probabilidad (algunas nociones) Asociada a una descripción de experimentos. Todos los resultados posibles forman el espacio de muestra Ω. e.g., si tiramos un dado, Ω = {1,2,3,4,5,6}. Un subconjunto de Ω se llama un evento. Intersección (e1 ∩ e2 o ∩ni=1 ei ) y unión de eventos (e1 ∪ e2 o ∪ni=1 ei ). Los eventos e1 , . . . , en ⊆ Ω se llaman mutuamente exclusivos o eventos disjuntos si ei ∩ ej = ∅, i 6= j, 1 ≤ i, j ≤ n. Suposición: el resultado de un experimento es independiente de los resultados de experimentos anteriores. Si se hace un experimento N veces y n de ellos son del evento e, n/N (frecuencia relativa) se estabiliza a un valor cuando N aumenta. Este valor se llama probabilidad. Defn: Sea Ω el espacio muestra de un experimento. Si un número P(e) se asocia con cada subconjunto e ⊆ Ω tal que: • P (e) ≥ 0 • P (Ω) = 1 • P ( ni=1 ei ) = exclusivos S Pn i=1 P (ei ), si ei , i = 1, . . . , n ≥ 1 son eventos mutuamente entonces a la función P se llama función de probabilidad. B. Finetti (31): si A tiene creencias que violan los axiomas de probabilidad, entonces existe una estrategia para B para apostar con la cual A siempre pierde. Para cada e ⊆ Ω, el número P (e) es la probabilidad de que e ocurra. 184 P (e) = 1 − P (e) 12.2.1 Probabilidad Condicional y Teorema de Bayes Util en diagnóstico, i.e., probabilidad de H dado E. Para cada h, e ⊆ Ω, con P (e) ≥ 0, la probabilidad condicional de h dado e o P (h | e) (probabilidad a posteriori) es: P (h | e) = P (h ∩ e) P (e) En la práctica P (h | e) no se obtiene fácilmente, sin embargo P (e | h) sı́: Bayes: P (h | e) = P (e | h)P (h) P (e) Defn: los eventos e1 , . . . , en son (mutuamente) independientes si: P (e1 ∩ . . . ∩ en ) = P (e1 ) . . . P (en ) Defn: los eventos e1 , . . . , en son condicionalmente independientes dado un evento h ⊆ Ω, si: P (e1 ∩ . . . ∩ en | h) = P (e1 | h) . . . P (en | h) Si h y e son independientes: P (h | e) = P (h). 12.2.2 Aplicación a Sistemas Expertos Basados en Reglas Sean H ={h1 , . . . , hn } el conjunto de n posibles hipótesis y E ={e1 , . . . , em }, m posibles evidencias. Si asuminos que la hipótesis y los eventos son T o F, lo que queremos encontrar es la h ⊆ Ω más probable dado e ⊆ E. 185 Se tiene que calcular P (h | e) para cada subconjunto de h ⊆ H y seleccionar la de mayor probabilidad o por Bayes si existen n hipótesis: 2n ’s P (e | h). Suposición 1: (i) las hipótesis son mutuamente exclusivas y (ii) colectivamente exhaustivas (por (i) y (ii) se consideran sólo n hipótesis). Normalización: Muchas veces podemos calcular una probabilidad relativa y no tener que calcular P (e). Otra forma es haciendolo exhaustivamente: P (h | e) = P (e | h)P (h) P (e) y P (¬h | e) = P (e | ¬h)P (¬h) P (e) como P (h | e) + P (¬h | e) = 1, P (e) = P (e | h)P (h) + P (e | ¬h)P (e¬h) P (h | e) = P (e | h)P (h) P (e | h)P (h) + P (e | ¬h)P (e¬h) A esto se le llama normalización ya que P 1(e) se toma como una constante que permite que los términos condicionales sumen 1. En general: P (e | hi )P (hi ) P (hi | e) = Pn j=i P (e | hj )P (hj ) Para aplicar Bayes, se requiere calcular las probabilidades condicionales P (e | hi ) para cada combinación de evidencias (en general no se pueden calcular de sus componentes individuales). Esto implica que se tienen que conocer un número exponencial de probabilidades!! Suposición 2: las evidencias son condicionalmente independientes. 186 P (ej1 | hi ) . . . P (ejk | hi )P (hi) P (hi | ej1 . . . ejk ) = Pn l=1 P (ej1 | hl ) . . . P (ejk | hl )P (hl ) Con ésto, solo se requieren m × n probabilidades condicionales y n − 1 probabilidades a priori. Suposición 1 y 2 implica una aplicación a dominios muy restringidos. Con el surgimiento de los Sistemas Expertos aparecieron las probabilidades subjetivas (dadas por expertos humanos). En reglas tenemos expresiones ≈ fórmulas lógicas y en probabilidad ≈ subconjuntos. Tenemos que relacionar la probabilidad de un evento a la probabilidad de verdad de una proposición que declara la ocurrencia de un evento. conjunción disjunción ≈ intersección de eventos ≈ unión de eventos Con Bayes podemos calcular la co-conclusión (fco ), i.e., P (hi | Tm j=1 ej ). Sin embargo, no tiene mecanismos de funciones explı́citas de combinación (fand y for ) y propagación (fprop ). 12.3 Técnicas numéricas A diferencia de los métodos no-numéricos o cualitativos, las técnicas numéricas intentan dar una medida numérica a la incertidumbre (probabilidad, factor de certeza, etc.) Estas medidas son combinadas de alguna forma hasta llegar a una medida de la confiabilidad de una o más posibles hipótesis. En sistemas basados en reglas, esto tendrı́a en general una estructura similar a la siguiente: Si: se observa cierta evidencia E Entonces: se concluye cierta hipótesis H con probabilidad (certeza, ...) P De aquı́ surgen varias interrogantes: 187 • ¿Cómo obtener estas medidas? • ¿Cómo combinar estas medidas? • ¿Cómo interpretar estas medias? Existen varias alternativas para atacar estos problemas. Las primeras técnicas que surgen, cuando menos dentro del área de sistemas expertos, son técnicas empı́ricas o ad-hoc orientadas a resolver aplicaciones especificas y sin un fuerte fundamento teórico. Las más conocidas son las que corresponden a dos de los primeros sistemas expertos: • PROSPECTOR (exploración minera) • MYCIN (diagnóstico de enfermedades infecciosas en la sangre) 12.4 Método Bayesiano Subjetivo PROSPECTOR (R. Duda, P. Hart, N. Nilsson), 1976. Utiliza “odds”. P (h) = O(h) 1 + O(h) Si h, e ⊆ Ω, P (h) < 1, P (e) > 0, P (h | e) < 1, Odds “a priori”: O(h) = P (h) 1 − P (h) Odds “a posteriori”: O(h | e) = P (h | e) 1 − P (h | e) Positive likelihood ratio o nivel de suficiencia λ, representa el grado en que la evidencia e influye en la probabilidad de la hipótesis h: 188 λ= P (e | h) P (e | h) IF λ > 1 indica que e tiende a confirmar h IF λ < 1, h se confirma con cierto grado dado e IF λ = 1, e no influye en h Negative likelihood ratio λ o nivel de necesidad: λ= 1 − P (e | h) 1 − P (e | h) Si λ > 1 entonces λ < 1 (y viceversa). A cada regla se le asocia un λ y λ. Se necesita saber: λ, λ, P (h) y P (e). A partir de λ y λ podemos conocer P (e | h). P (e | h) = λ 1−λ λ−λ Para propagar probabilidades: (fprop ) P (h | e′ ) = P (h ∩ e | e′ ) + P (h ∩ e | e′ ) ... P (h | e′ ) = P (h | e ∩ e′ )P (e | e′ ) + P (h | e ∩ e′ )P (e | e′ ) Si conocemos e, e′ no nos proporciona ninguna información extra sobre h: P (h | e′ ) = P (h | e)P (e | e′ ) + P (h | e)P (e | e′ ) = [P (h | e) − P (h | e)] P (e | e′ ) + P (h | e) Que se puede ver como una función lineal (f(x) = mx + b). Se pueden interpolar los valores y ajustar los de los expertos. 189 P (h | e′ ) = (h|e) P (h | e) + P (h)−P · P (e | e′ ) P (e) if 0 ≤ P (e | e′ ) ≤ P (e) (h) · (P (e | e′ ) − P (e)) P (h) + P (h|e)−P 1−P (e) if P (e) < P (e | e′ ) ≤ 1 Cuando tenemos varias condiciones de las reglas, Prospector utiliza: P (e1 and e2 | e′ ) = min{P (e1 | e′ ), P (e2 | e′ )} P (e1 or e2 | e′ ) = max{P (e1 | e′ ), P (e2 | e′ )} Sólo falta la función de combinación: fco . Para eso usamos la forma odds likelihood del teorema de Bayes: O(h | e) = λ · O(h) Similarmente: O(h | e) = λ · O(h) Cuando varias reglas concluyen la misma hipótesis y asumiendo que ei son independientes dada h: donde, O(h | ∩ni=1 ei ) = λi = n Y i=1 λi O(h) P (ei | h) P (ei | h) Similarmente: O(h | ∩ni=1 ei ) = 190 n Y i=1 λi O(h) Si ei y ei no se saben con certeza, sino con probabilidades P (ei | e′i ), se puede ′) calcular el effective likelihood ratio λ′ (λ′ = O(h|e ) y hacer los cálculos con O(h) ′ respecto a e : O(h | ∩ni=1 e′i ) = 12.5 n Y i=1 λ′i O(h) Factores de Certeza/Certidumbre MYCIN (E. Shortliffe, B. Buchanan), 1975. Usado frecuentemente (debido a su simplicidad computacional) aunque tiene poco fundamento teórico. Fundamentos: Los autores de MYCIN [Buchanan 84] decidieron no seguir la te orı́a de probabilidad porque: 1. Los expertos se resisten a expresar sus procesos de razonamiento en términos probabilı́sticos coherentes. 2. La probabilidad requiere de grandes cantidades de datos y muchas aproximaciones y suposiciones. Entonces desarrollaron una nueva técnica, cuya base es el concepto de confirmación – interpretación lógica de probabilidad (subjetiva): Probabilidad es el grado de confirmación de una hipótesis h con respecto a la observación de la evidencia e, denotada C[h, e]. Para esto se considera que: • C[h, e] es diferente al concepto de probabilidad condicional, P (h | e) • La desconfirmación esta separada de la confirmación, es decir que C[h, e] no es necesariamente igual a 1 − C[h, e] 191 Bajo estas consideraciones se desarrolla la técnica de factores de certeza. Técnica: La técnica de factores de certeza se basa en dos medidas: • MB(h, e): medida del aumento en la creencia en la hipótesis h dada la evidencia e (i.e., qué tanto la evidencia aumenta la credibilidad de la hipótesis) • MD(h, e): medida en la disminución en la creencia en la hipótesis h dada la evidencia e Ambas medidas son relativas y se pueden expresar en términos de probabilidades como: MB(h, e) = ( 1 if P (h) = 1 (h) max{0, P (h|e)−P } otherwise 1−P (h) P (h | e) − P (h) representa cuánto aumenta nuestra creencia en h. MD(h, e) = ( 1 if P (h) = 0 P (h)−P (h|e) max{0, } otherwise P (h) Dada una h y e sólo una de las funciones MB, MD es positiva. Se asocia una MB o una MD a cada regla. Funciones de propagación (fprop ): MB(h, e′ ) = MB(h, e) · MB(e, e′ ) MD(h, e′ ) = MD(h, e) · MD(e, e′ ) Funciones AND y OR (fand , for ): MB(e1 and e2 , e′ ) = min{MB(e1 , e′ ), MB(e2 , e′ )} MB(e1 or e2 , e′ ) = max{MB(e1 , e′ ), MB(e2 , e′ )} MD(e1 and e2 , e′ ) = max{MD(e1 , e′ ), MD(e2 , e′ )} MD(e1 or e2 , e′ ) = min{MD(e1 , e′ ), MD(e2 , e′ )} 192 Funciones de combinación (fco ): 0 if MD(h, e1 co e2 ) = 1 MB(h, e2 )· MB(h, e1 co e2 ) = MB(h, e1 )+ (1 − MB(h, e1 ) otherwise Para MD es muy parecida. El problema es que la combinación puede dar que MB y MD > 0!! Después se decidió expresar MB y MD en términos de un solo número: factor de certidumbre o de certeza. CF (h, e) = MB(h, e) − MD(h, e) 1 − min{MB(h, e), MD(h, e)} CF está entre −1 y 1. Reglas de combinación: 1. Propagación (fprop ) o reglas en serie: CF (h, e′ ) = CF (h, e) × max{0, CF (e, e′ )} 2. AND (conjunción), OR (disjunción) de evidencias (fand , for ): CF (e1 and e2 , e′ ) = min{CF (e1 , e′ ), CF (e2 , e′ )} CF (e1 or e2 , e′ ) = max{CF (e1 , e′ ), CF (e2 , e′ )} 3. Co-Conclusión (fco) o reglas en paralelo: CF (h, e′1 co e′2 ) = CF (h, e′1 ) + CF (h, e′2 )(1 − CF (h, e′1 )) if CF (h, e′i ) > 0, i = 1, 2 CF (h,e′1 )+CF (h,e′2 ) 1−min{|CF (h,e′1 )|,|CF (h,e′2)|} if − 1 < CF (h, e′1 ) × CF (h, e′2 ) ≤ 0, CF (h, e′1 ) + CF (h, e′2 )(1 + CF (h, e′1 )) if CF (h, e′i ) < 0, i = 1, 2 193 e.g., R1: IF A and (B or C) Then H cf 0.8 R2: If D and F Then B cf 0.6 R3: If F or G Then H cf 0.4 R4: If A Then D cf 0.75 R5: If I Then G cf 0.3 Se conoce: CF(A,Ev) = 1, CF(C,Ev) = 0.5, CF(F,Ev) = 0.7, CF(I,Ev) = -0.4 En MYCIN los FC que están entre -0.2 y 0.2 se deshechan. Desventajas: Aunque pretendı́a apartarse de probabilidad, se ha demostrado [Heckerman 86] que la técnica de MYCIN corresponde a un subconjunto de probabilidad con una serie de supociciones implı́citas: • La evidencia es condicionalmente independiente de la hipótesis y su negación. • La red de inferencia debe corresponder a un árbol para que los resultados sean coherentes. • Las fórmulas para conjunción y disjunción (min y max) sólo son válidas si uno de los términos es subconjunto del otro. Estas supociciones no son válidas en muchas aplicaciones por lo que el método de MYCIN no se puede generalizar. 12.6 Teorı́a de Demptser–Shafer En los 60’s A. Demptser dió los fundamentos de una nueva teorı́a de incertidumbre. En los 70’s G. Shafer la extendió. En los 80’s se vió su utilidad a los S.E. pero con modificaciones. 194 Motivación: la probabilidad no distingue entre incertidumbre e ignorancia debido a información incompleta. En la teorı́a de Demptser–Shafer, se pueden asociar medidas de incertidumbre a un conjunto de hipótesis, e.g., Evidencia (sı́ntomas): {dolor de pecho, se extiende a brazos y cuello, no desaparece al descansar} Hipótesis (posibles enfermedades): {ataque cardiaco, pericarditis, embolia pulmonar, problema de la aorta} Si tenemos evidencia de problemas de corazón (e.g., 0.4) este número, se asocia al conjunto: {ataque cardiaco, pericarditis} Idea: empezar con un conjunto inicial de hipótesis. Para cada evidencia se asocia cierta incertidumbre con algunos subconjuntos hasta que se asocia incertidumbre a todos los subconjuntos. El conjunto inicial de hipótesis se llama marco de discernimiento (frame of discernment) y se asumen las hipótesis disjuntas. Defn: Sea Θ el marco de discernimiento. Si para cada subconjunto x ⊆ Θ se asocia un número m(x) tal que: • m(x) ≥ 0 • m(∅) = 0 • P x⊆Θ m(x) = 1 entonces m(x) (asignación de probabilidad básica) expresa creencia en el conjunto x (no en sus subconjuntos). e.g., Si Θ = {ataque cardiaco, pericarditis, embolia pulmonar, problema de aorta}. La asignación básica es a 24 (16) conjuntos. Elemento focal: es un conjunto x ⊆ Θ si m(x) > 0. 195 El nucleo de m (K(m)) es el conjunto de todos los elementos focales en m. Una función de probabilidad asocia un elemento con un número en el itervalo [0, 1], tal que la suma de todos es 1. La asignación de probabilidad básica asocia a cada elemento en 2Θ un número en el itervalo [0, 1] tal que la suma es 1. Si no hay evidencia de un diagnóstico: m0 (x) = ( 1 0 si x = Θ else Si sabemos {ataque cardiaco, pericarditis} = 0.4 0.6 m1 (x) = 0.4 0 si x = Θ si x = {ataque cardiaco,pericarditis} else Defn: la función de credibilidad (belief/credibility function) se define como: Bel(x) = X m(y) para cada x ⊆ Θ y⊆x Propiedades: • Bel(Θ) = 1 • Bel(x) = m(x), si x es un solo elemento, • Bel(x) + Bel(x) ≤ 1 Defn: la función de plausibilidad (plausibility function) se define como: P l(x) = X m(y) para cada x ⊆ Θ x∩y6=∅ 196 Indica la confianza/soporte no asignada a x. P l(x) = 1 − Bel(x). P l(x) − Bel(x) expresa la incertidumbre en x. El intervalo de creencia de x: [ Bel(x), P l(x) ]. [0,1] => no se sabe nada de x [1,1] => x se conoce [0.3,1] => existe evidencia en favor de x [0.15,0.75] => existe evidencia en favor y en contra de x Si P l(x) − Bel(x) = 0 para cada x ⊆ Θ, regresamos a la teorı́a convencional de probabilidad. Reglas de combinación: 1. m1 ⊕ m2 (∅) = 0 P Py∩z=x 2. m1 ⊕ m2 (x) = Bel1 ⊕ Bel2 (x) = e.g., y∩z6=∅ P y⊆x m1 (y)×m2 (z) m1 (y)×m2 (z) para toda x 6= ∅ m1 ⊕ m2 (y). Aplicaciones a Sistemas Expertos: A principios de los 80’s sólo soluciones tipo ad hoc poco satisfactorias. 12.7 Redes Bayesianas Introducción Las redes bayesianas o probabilı́sticas son una representación gráfica de dependencias para razonamiento probabilı́stico en sistemas expertos, en la cual los nodos y arcos representan: 197 • Nodo: Variable proposicional. • Arcos: Dependencia probabilı́stica. Definición: Una red probabilı́stica (RP) es un gráfo acı́clico dirigido (DAG) en la cual cada nodo representa una variable y cada arco una dependencia probabilı́stica, en la cual se especifica la probabilidad condicional de cada variable dados sus padres. La variable a la que apunta el arco es dependiente (causa–efecto) de la que está en el origen de éste. Podemos interpretar a una RP de dos formas: 1. Distribución de probabilidad: Representa la distribución de la probabilidad conjunta de las variables representadas en la red. Por ejemplo: P (A, B, C, D, E, F, G) = P (G|D)P (F |C, D)P (E|B) P (D|A, B)P (C|A)P (B)P (A) 2. Base de reglas: Cada arco representa un conjunto de reglas que asocian las variables involucradas, Por ejemplo: Si C, D entonces F Dichas reglas están cuantificadas por las probabilidades respectivas. La topologı́a o estructura de la red nos da información sobre las dependencias probabilı́sticas entre las variables. La red también representa las independencias condicionales de una variable (o conjunto de variables) dada otra variable(s). Ej.: {E} es cond. indep. de {A,C,D,F,G} dado {B} Esto es: P (E|A, C, D, F, G, B) = P (E|B) 198 Esto se representa gráficamente por en nodo B separando al nodo E del resto de las variables. En general, el conjunto de variables A es independiente del conjunto B dado C si al remover C hace que A y B se desconecten. Es decir, NO existe una trayectoria entre A y B en que las siguientes condiciones sean verdaderas. 1. Todos los nodos con flechas convergentes están o tiene descendientes en C. 2. Todos los demás nodos están fuera de C. Esto se conoce como Separación–D. En una RP todas la relaciones de independencia condicional representadas en el grafo corresponden a relaciones de independencia en la distribución de probabilidad. Dichas independencias simplifican la representación del conocimiento (menos parámetros) y el razonamiento (propagación de las probabilidades). Propagación de Probabilidades El razonamiento probabilı́stico o propagación de probabilidades consiste en propagar de los efectos de la evidencia a través de la red para conocer la probabilidad a posteriori de las variables. La propagación consiste en darle valores a ciertas variables (evidencia), y obtener la probabilidad posterior de las demás variables dadas las variables conocidas (instanciadas). Los algoritmos de propagación dependen de la estructura de la red: • Árboles • Poliárboles • Redes multiconectadas Propagación en Árboles 199 Cada nodo corresponde a una variables discreta, A = {A1 , A2 , . . . , An }, con su respectiva matriz de probabilidad condicional, P (B|A) = P (Bj |Ai ) Dada cierta evidencia E —representada por la instanciación de ciertas variables— la probabilidad posterior de cualquier variable B, por el teorema de Bayes: P (Bi |E) = P (Bi)P (E|Bi )/P (E) Ya que la estructura de la red es un árbol, el Nodo B la separa en dos subárboles, por lo que podemos dividir la evidencia en dos grupos: E − : Datos en el árbol que cuya raı́z es B E + : Datos en el resto del árbol Entonces: P (Bi |E) = P (Bi)P (E − , E + |Bi )/P (E) Pero dado que ambos son independientes y aplicando nuevamente Bayes: P (Bi |E) = αP (Bi|E + )P (E − |Bi ) Donde α es una constante de normalización. Esto separa la evidencia para actualizar la probabilidad de B. Además vemos que no requerimos de la probabilidad a priori, excepto en el caso de la raı́z donde: P (Ai |E + ) = P (Ai) Si definimos los siguientes términos: λ(Bi ) = P (E − |Bi ) π(Bi ) = P (Bi |E + ) Entonces: P (Bi |E) = απ(Bi)λ(Bi ) Dado que los hijos son condicionalmente independientes dado el padre: 200 λ(Bi ) = Y P (Ek− |Bi ) = k Y λk (Bi ) k Donde Ek− corresponde a la evidencia que proviene del hijo k de B, denotado por Sk . Condicionando cada término en la ecuación anterior respecto a todos los posibles valores de cada nodo hijo, obtenemos: λ(Bi ) = YX [ P (Ek− |Bi , Sjk )P (Sjk |Bi )] j k Dado que B es condicionalmente de la evidencia bajo cada hijo dado éste y usando la definición de λ: λ(Bi ) = YX [ k P (Sjk |Bi )λ(Sjk )] j En forma análoga obtenemos una ecuación para π. Primero la condicionamos sobre todos los posibles valores del padre: π(Bi ) = X P (Bi |E + , Aj )P (Aj |E + ) j Podemos eliminar E + del primer termino dada independencia condicional. El segundo término representa la probabilidad posterior de A sin contar la evidencia de subárbol de B, por lo que podemos expresarla usando la ecuación para P (Bi |E) y la descomposición de λ. π(Bi ) = X j " P (Bi|Aj ) απ(Aj ) Y k Donde k incluye a todos los hijos de A excepto B. 201 λk (Aj ) # Mediante estas ecuaciones se integra un algoritmo de propagación de probabilidades en árboles. Cada nodo guarda los valores de los vectores π y λ, ası́ como las matrices de probabilidad P. La propagación se hace por un mecanismo de paso de mensajes, en donde cada nodo envı́a los mensajes correspondientes a su padre e hijos: Mensaje al padre (hacia arriba) — nodo B a su padre A: λB (Ai ) = X P (Bj |Ai )λ(Bj ) j Mensaje a los hijos (hacia abajo) — nodo B a su hijo S k : πk (Bi ) = απ(Bj ) Y λl (Bj ) l6=k Al instanciarse ciertos nodos, éstos envı́an mensajes a sus padres e hijos, y se propagan hasta a llegar a la raı́z u hojas, o hasta encontrar un nodo instanciado. Ası́ que la propagación se hace en un solo paso en un tiempo proporcional al diámetro de la red. Esto se puede hacer en forma iterativa, instanciando ciertas variables y propagando su efecto; y luego instanciando otras y propagando la nueva información, combinando ambas evidencias. Propagación en poliárboles. Un poliárbol es una red en la que un nodo puede tener varios padres, pero sin existir múltiples trayectorias entre nodos (red conectada en forma sencilla SCG) El algoritmo de propagación es muy similar al de árboles. La principal diferencia es que se requiere de la probabilidad conjunta de cada nodo dado todos sus padres: P (Bi |A1 , ....An ) En forma análoga al inciso anterior, podemos deducir una expresión de la probabilidad en un nodo cualquiera B en términos de sus padres e hijos: 202 − P (Bi |E) = αP (Bi|E1+ , ..., En+ )P (E1− |Bi ) · · · P (Em |Bi ) A partir de esta ecuación se puede también obtener un mecanismo de propagación local similar al de árboles, con el mismo orden de complejidad. Propagación en Redes Multiconectadas Una red multiconectada es un grafo no conectado en forma sencilla, es decir, en el que hay múltiples trayectorias entre nodos (MCG). En este tipo de RP los métodos anteriores ya no aplican, pero existen otras técnicas alternativas: • Condicionamiento • Simulación estocástica • Agrupamiento Condicionamiento: Si instanciamos una variable, ésta bloquea las trayectorias de propagación. Entonces asumiendo valores para un grupo seleccionado de variables podemos descomponer la gráfica en un conjunto de SCG. Propagamos para cada valor posible de dichas variables y luego promediamos las probabilidades ponderadas. Simulación Estocástica: Se asignan valores aleatorios a las variables no instanciadas, se calcula la distribución de probabilidad y se obtienen valores de cada variable dando una muestra. Se repite el procedimiento para obtener un número apreciable de muestras y en base al numero de ocurrencias de cada valor se determina la probabilidad de dicha variable. Agrupamiento: El método de agrupamiento consiste en transformar la estructura de la red para obtener un árbol, mediante agrupación de nodos usando la teorı́a de grafos [Lauritzen 88]. Para ello se parte de la gráfica original y se siguen los siguientes pasos: 1. Se triangulariza el grafo agregando los arcos adicionales necesarios. 203 2. Se identifican todos los conjuntos de nodos totalmente conectados (cliques). 3. Se ordenan los cliques de forma que todos los nodos comunes estén en un solo clique anterior (su padre). 4. Se construye un nuevo grafo en que cada clique es un nodo formando un árbol de cliques. Para la propagación de probabilidades se realiza en este árbol de macronodos (cliques), obteniendo la probabilidad conjunta de cada clique. A partir de esta se puede obtener la probabilidad individual de cada variable en el clique. En general, la propagación en una red probabilı́stica con una estructura compleja es un problema de complejidad NP-duro [Cooper 90]; sin embargo, en muchas aplicaciones prácticas la estructura de la red no es tan compleja y los tiempos de propagación son razonables. 12.8 Lógica Difusa L. Zadeh ’65. Surge como propuesta para la formalización de razonamiento aproximado, para tratar conocimiento de sentido común (i.e., pequeño, cerca, muchos, etc). En teorı́a de conjuntos, un elemento pertenece o no a un conjunto. En un conjunto difuso su frontera no está precisamente definida, y la prueba de pertenencia regresa un valor entre 0 y 1. Para ésto, existe un grado de pertenencia (µ) el cual es subjetivo y dependiente del dominio. Las operaciones de conjuntos en conjuntos difusos son: • Intersección: µ(A and B) = min{µ(A),µ(B)} • Union: µ(A or B) = max{µ(A),µ(B)} 204 • Complemento: µ(not A) = 1 - µ(A) Inferencia con reglas difusas: En el caso difuso, si el antecedente tiene cierto grado de pertenencia, entonces el consecuente también lo tiene pero siempre con grado no mayor. Pasos: 1. discriminar las variables de los patrones (e.g., Temperatura: helado, frio, templado, caliente, hirviendo) y definir sus conjuntos difusos 2. discriminar las variables de control (e.g., mucho más frio, más frio, no tocar, más caliente, mucho más caliente) y definir sus conjuntos difusos 3. analizar cada regla a ver si se cumplen sus antecedentes 4. combinar los valores difusos 5. defusificar el resultado E.g., R1: If temp. del agua es helado Then ajusto a mucho mas caliente R2: If temp. del agua es frio Then ajusto a mas caliente R3: If temp. del agua es templado Then ajusto a no tocar R4: If temp. del agua es caliente Then ajusto a mas frio R5: If temp. del agua es hirviendo Then ajusto a mucho mas frio En principio, con m variables y n valores difusos para cada una, necesitariamos de mn reglas!! El resultado es un conjunto difuso el cual se tiene que defusificar para producir un valor. La defusificación artimética se puede hacer: 205 • Tomando el valor máximo (maximum method) • Tomar el centro del área (moments method) Existen operadores difusos (hedges) que pueden aplicarse, aparte de las operaciones básicas de conjuntos. Pueden verse como modificadores a los “términos” difusos. • concentración (e.g., alto → muy alto) con(µ)(a) = µ2 (a) • dilatación (e.g., alto → medio alto) dil(µ)(a) = µ1/2 (a) • normalización norm(µ)(a) = µ(a) max (µ(a)) • intensificación int(µ)(a) = ( 2µ2 (a) 1 − 2(1 − µ(a))2 para 0 ≤ µ(a) ≤ 0.5 para 0.5 ≤ µ(a) ≤ 1 Con ellos podemos crear otros términos. Si queremos combinar dos predicados (e.g., alto y pesado), tenemos que definir una relación (matriz). Las operaciones de conjuntos difusos se pueden extender fácilmente a relaciones. Para hacer la composición de dos relaciones µ : A × B → I y λ : B × C → I: λ ◦ µ(a, b) = MaxMin{µ(a, b′ ), λ(b′ , c)} 206 Capı́tulo 13 Adquisición de Conocimiento 13.1 Introducción Los sistemas basados en conocimiento (e.g., S.E.) dependen de la calidad de su conocimiento La adquisición consiste en capturar experiencia. La experiencia es: • especı́fica (aplicable a un sólo dominio) • inflexible (no sirve en situaciones no previstas) • enfocada (sólo se ve un tipo de solución) Los epecialistas aprenden “más de menos” (o “cobran más y hacen menos”) El problema de adquisición de conocimiento es fundamental para los S.E. En la literatura recomiendan separar: • adquisición • representación en la práctica se mezclan 207 13.1.1 Errores Comunes 1. El conocimiento no se obtiene desde diferentes perspectivas 2. Se captura conocimiento irrelevante 3. No se explora suficientemente el rango y la flexibilidad del conocimiento experto 4. No se reconoce el clásico “demo effect” (los expertos se comportan diferente cuando se les está observando) 13.1.2 Niveles de Conocimiento • superficial (shallow): para situaciones especı́ficas • profundo (deep): estructura interna y propiedades de causalidad, e interacción entre componentes e.g., (S) IF focos estan bajos THEN bateria esta fallando (D) La bateria está conectada al sistema eléctrico. Parte de éste proporciona electricidad a las luces. Cuando la bateria no tiene sificiente carga, las luces se bajan. ... (S) no puede explicar su conocimiento, pero es más fácil de capturar (D) se requiere si queremos que sea útil para varias situaciones El que sea (D) o (S) no depende de la representación que usemos 13.1.3 Cómo se adquiere el conocimiento? 1. Entrevistas y protocolos 208 2. Aprendizaje por interacción 3. Aprendizaje por inducción Cual se utiliza depende del problema, expertos e información disponible. En principio, se pueden utilizar los tres. Para describir conocimiento relevante tenemos que: • nombrar objetos claves • describir caracterı́sticas de los objetos que impactan en las decisiones • organización de los objetos relevantes • relacionar el conocimiento • identificar restricciones entre propiedades de los objetos 13.2 Estrategias 1. vemos lo que hace el experto y tratamos de identificar su estructura (tardado y mucha interacción) 2. formulamos un modelo analı́tico y tratamos de “encajar” el conocimiento y el comportamiento del experto dentro del modelo (más dirigido y usado en herramientas de adquisición) 13.2.1 Adquisición manual: entrevistas y protocolos I) Entrevistas: Recomendaciones: • ser especı́fico • hablar el lenguaje del experto 209 • dejar al experto completar sus ideas • grabar entrevistas • dar retroalimentación al experto Depende mucho de la habilidad del ingeniero de conocimiento II) Protocolos verbales: e.g., • sabes el nombre de la enfermedad? • cuál de estas tres enfermedades exhibe tal comportamiento (malaria, tifoidea, cólera)? • dá el nombre de la enfermedad • sábes el nombre de la enfermedad y cómo llegaste a esa conclusión? Problemas: • consumen mucho tiempo • expertos poco disponibles • pueden olvidarse de algo importante • expertos tienen dificultad en expresarse 13.3 Adquisición Automática Existen dos tendencias: extracción de conocimiento por interacción y por aprendizaje 210 13.3.1 Métodos Interactivos Idea: capturar descripciones básicas de objetos en términos de sus propiedades. Se enfoca a nombrar, describir y organizar Repertory grids (Kelly, ’55) • identificar selectores o clases • identificar atributos (lo que distingue a las selecciones o clases) Se manejan atributos y sus opuestos A veces se expresan en tendencias Proceso: 1. compara ejemplos prototı́picos a los cuales el experto tiene que proveer los atributos o tendencias que los distinguen 2. usa factores de certeza para decir en donde cae dentro de un valor y su opuesto 3. construye una rejilla 13.4 Validación de Conocimiento Ciclo tı́pico: 1. el ingeniero de conocimiento busca errores sintáticos y semánticos 2. corre pruebas para encontrar discrepancias 3. el experto corre pruebas 211 Lleva mucho tiempo y no garantiza que el conocimiento quede sin errores La mayorı́a de las técnicas surgieron de desarrollos de proyectos grandes enfocados a la adquisisición automática de conocimiento (e.g., Teiresias, Emycin, Mole, AutopIntelligence, etc) Los S.E. son fáciles de modificar y frecuentemente son actualizados para mejorar capacidades Primeros sistemas de verificación: Teiresias (Davis ’76) - Mycin, Check - Les, Inspector - Kee Problemas usuales con reglas: • conflictivas • redundantes • especializaciones (subsumption) • condiciones inecesarias • incompletas • circularidades • valores de atributos no mencionados • valores de atributos ilegales • condiciones/acciones inalcanzables Pruebas que se realizan: • errores sintácticos • reglas, hechos y preguntas sin usar • valores incorrectamente usados • construcciones redundantes 212 • reglas con valores ilegales • instanciaciones erroneas Para ésto, se construye un diccionario de conocimiento con una lista de expresiones y sus categorias: metas, condiciones de reglas, acciones, preguntas (con valores legales), hechos (con valores), etc. La validación es todavı́a más difı́cil si el S.E. arroja estimaciones, e.g., el sistema dice: tifoidea (cf 0.7), cólera (cf 0.6) el experto dice: tifoidea (cf 0.65), cólera (cf 0.4) 213 Capı́tulo 14 Aprendizaje 14.1 Introducción “Cambios adaptivos en el sistema para hacer la misma tarea(s) de la misma población de una manera más eficiente y efectiva la próxima vez” [Simon 83] Objetivos • ingenieril (resolver tareas) • simulación cognitiva • análisis teórico Programar una máquina en muy lento y se trata de abrir nuevas posibilidades de instruı́r a la máquina mediante aprendizaje suavizando el proceso de programación 14.1.1 Criterios de aprendizaje (D. Michie) • débil: utiliza datos para mejorar su desempe no en nuevos datos 214 • fuerte: se pueden ver explı́citamente los conceptos generados • extra fuerte: se puede ver su mejora de una manera operacionalmente efectiva (i.e., permite al experto mejorar su desempe no) La mayor parte de los sistemas infieren: • reglas clasificatorias • árboles de decisión • redes con pesos asociados a partir de ejemplos para clasificación/predicción 14.1.2 Dimensiones • El conjunto de ejemplos y su presentación • Lenguaje de hipótesis: sintáxis usada en la constricción de hipótesis • Criterio de éxito 14.1.3 Aprendizaje Visto como Búsqueda El lenguaje de hipótesis determina el espacio de donde seleccionar reglas o hipótesis Es necesario estructurar el espacio de hipótesis (se puede hacer con un modelo de generalización) La búsqueda puede hacerse: • de general a especı́fico • de especı́fico a general 215 • en ambos sentidos ejemplo1: 4 de espadas (+) ?? Num? 4? ?Negro NumNegro 4Negro ?Espadas NumEspadas 4Espadas ejemplo2: 7 de espadas (+) ?? Num? ?Negro NumNegro ?Espadas NumEspadas ejemplo3: 5 de corazones (–) ?Negro NumNegro ?Espadas NumEspadas 14.2 “Similarity-based learning” (SBL) e ID3 ejemplos = objetos (pares atributo/valor) + clasificación Objetivo: inducir árboles de decisión que determinen la clase de cualquier objeto Método de aprendizaje: 216 • ejemplos de entrenamiento y prueba • utilización de teorı́a de la información • incrementalmente por medio de “ventanas” Ejemplo Ambiente soleado soleado nublado lluvia lluvia lluvia nublado soleado soleado lluvia soleado nublado nublado lluvia Temp. alta alta alta media baja baja baja media baja media media media alta media Humedad alta alta alta alta normal normal normal alta normal normal normal alta normal alta Viento no si no no no si si no no no si si no si Clase N N P P P N P N P P P P P N Ambiente soleado Humedad alta normal N P nublado lluvia P Viento si N Como generar un árbol? Atributoi 217 no P Ejem1 Ejem2 ... Ejemn • partición de ejemplos • crucial que prueba hacer Selección basada en teorı́a de la información Sea: p = ejemplos de clase C (positivos o de clase P) n = ejemplos de otras clases (negativos o de clase N) Se asume que la probabilidad de pertenecer a la clase es: p1 = p n y n1 = p+n p+n entropia = − n X pi log2 (pi ) i=1 I(p, n) = −p1 log2 (p1 ) − n1 log2 (n1 ) E(A) = n X i=1 { pi + ni }I(pi, ni ) p+n Ganancia(A) = I(p, n) − E(A) e.g., 14 ejemplos, 9 de P y 5 de N I(p, n) = − 9 9 5 5 log2 ( ) − log2 ( ) = 0.940 14 14 14 14 218 Ambiente soleado: p1 = 2, n1 = 3, I(p1, n1 ) = 0.971 nublado: p2 = 4, n2 = 0, I(p2 , n2 ) = 0 lluvia: p3 = 3, n3 = 2, I(p3 , n3 ) = 0.971 E(ambiente) = 5 4 5 I(p1 , n1 ) + I(p2 , n2 ) + I(p3 , n3 ) 14 14 14 = 0.694 Ganancia(Ambiente) = 0.940 - 0.694 = 0.246 Ganancia(Temperatura) = 0.029 Ganancia(Humedad) = 0.151 Ganancia(Viento) = 0.048 14.2.1 Manejo de Ruido • valores de atributos erroneos, subjetivos • clasificación equivocada • valores desconocidos 14.2.1.1 Algunas Propuestas • pre-pruning: parar la construcción del árbol • post-pruning: cortar ramas una vez construı́do el árbol Cuando decidir parar? (pre-pruning) • Un valor mı́nimo de ganancia, pero en la práctica puede perder buenas soluciones • Comparar errores de árbol con atributo y árbol sin atributo (clase mayoritaria) 219 • otros... Problema básico: basado en información local Como cortar (post-pruning)? Problemas: (i) cual árbol cortado considerar (ii) estimar el error de clasificación (claramente no cortar siempre es “mejor”) 14.2.1.2 Ejemplos con más de una Clase • proporción de clase (e.g., 0.8 de clase1) • clase mayoritaria 14.2.1.3 Valores Deconocidos • Bayes: prob(A = Ai | Clase = P ) = = prob(A = Ai ∧ clase = P ) prob(clase = P ) pi p • Construı́r un árbol de decisión para determinar el valor del atributo • Tomar el valor más común • Usar un valor “desconocido” • Utilizar una proporción: nva.-pi = pi + pu · razóni pi + ni razóni = P i pi + ni 220 14.2.1.4 Clasificación con Valores Desconocidos Explorar todas las ramas usando “razóni ” y tomar la clase con valor más alto 14.2.1.5 Criterios de Selección La selección basada en teorı́a de la información favorece atributos con más valores Propuestas: • árboles binarios • Nva.Gan. = pi = ganancia(A) P − vi=1 pi log2 (pi ) pi + ni p+n • ... 14.2.2 Kardio (Bratko et al.) Idea: usar un modelo cualitativo (del corazón) como base en la construcción de un sistema de diagnóstico de fallas (arrı́tmeas) • Simular fallas en el modelo y propagar sus consecuencias hasta que se llegue a un estado estable • Utilizar un sistema de aprendizaje Modelo Cualitativo Simulación Cualitativa 221 Conocimiento Operacional (ejemplos) Programa de Aprendizaje Conocimiento Operacional Comprimido (reglas) Algoritmo: • selecciona una componente a fallar • cambia su estado a un estado no válido • añade el comportamiento a una Agenda • UNTIL Agenda = ∅ – toma el primer componente de la Agenda – crea una lista de todos los componentes conectados para cada componente y dispara la primera regla (cualitativa) – Si cambia su estado, añadelo a la Agenda Una vez generados todos los estados aplica filtros: • quitar estados duplicados • quitar estados iguales a estados normales • ... D. Pearce (88): Modelo de fallas de circuito eléctrico de un satélite • Envisage: 110 reglas, tiempo: 6 meses, 72% + errores • Mod. Cual.: 75 reglas, tiempo: 3.5 meses, 100% Ventajas: 222 • El modelo cualitativo es más parecido a la descripción del experto sobre el funcionamiento del sistem • No se necesita saber datos numéricos exactos • La simulación cualitativa es más sencilla • Puede servir de base para construir explicaciones Sistema Aplicación MYCIN diagnóstico médico configuración 8,000 180 VAX configuración 2,800 1 sistema de separación hidrocarburos configuración > 30,000 9 equipo de protección incendios edificios XON GASOIL BMT 14.3 No. de Reglas 400 Des. Mant. A/H A/H 100 N/A no 0.1 si 2 si Limitantes de SBL: • lenguaje de respresentación restringido • incapacidad de incluir conocimiento del dominio Inducción de Programación Lógica 223 no 30 Tendencias Actuales • no introducen nuevos términos Apr. • programación lógica • aprendizaje Objetivo: Dados: K, E + , E − Encontrar: H K ∪ H ⊢ E + y K ∪ H 6⊢ E − Ejemplos: Conocimiento: ordena([2,1],[1,2]). ordena([0,3,1],[0,1,3]). ordena([4,2,6],[2,4,6]). ordena([1],[1]). ordena([ ],[ ]). ... junta([ ],L,L). junta([H|L1],L2,[H|L3]) ← junta(L1,L2,L3). divide(El,[H|T],Men,[H|May]) ← El < H, divide(T,Men,May). divide(El,[H|T],[H|Men],May) ← El > H, divide(T,Men,May). divide( ,[ ],[ ],[ ]). Hipótesis: ordena([ ],[ ]). ordena([H|T],LOrd) ← divide(H,T,Men,May), ordena(Men,MenOrd), ordena(May,MayOrd), junta(MenOrd,[H|MayOrd],LOrd). 224 14.3.1 Posibles Aplicaciones • sı́ntesis de proteinas • planeación • lenguaje natural • razonamiento temporal/espacial • música • razonamiento cualitativo • ... 14.3.2 Investigación Actual • balance entre ruı́do y falta de conocimiento • modelos de generalización más adecuados • noción de relevancia • aplicaciones reales 14.4 Conclusiones • Aprendizaje necesario – generación de nueva información – instrucción a la máquina menos demandante – digestor de información (e.g., Bases de Datos) • Tendencia a tener más expresividad • Aplicable a problemas reales 225 14.5 Razonamiento Basado en Casos (CBR) A pesar del éxito de los sistemas basados en conocimiento, existen varios problemas: • El proceso de extracción de conocimiento es difı́cil • Su construcción requiere de habilidades especiales • Normalmente son lentos e incapaces de accesar grandes cantidades de información • Son difı́ciles de mantener Un Razonador Basado en Casos resuelve problemas nuevos mediante la adaptación de soluciones previas usadas para resolver problemas similares (Riesbeck, Schank 89) • No requiere de un modelo explı́cito del dominio y el proceso de extracción se reduce a juntar casos históricos • Su construcción se reduce a identificar atributos relevantes con los cuales describir los casos. Puede empezar con unos cuantos casos y elimina el que el sistema sea completo. • Permite dar explicaciones. • Usan técnicas de base de datos para manipular grandes volumenes de información. • CBR puede aprender adquiriendo nuevo conocimiento como casos haciendo su mantenimiento más fácil. • Pueden ir creciendo reflejando la experiencia acumulada. 226 14.5.1 Historia Schank y Abelson (77) Scripts Schank (82) MOPs (Memory Organization Packets) o patrones de situaciones Gentner (83) entorno teórico para razonamiento analógico Wittgenstein (53) los “conceptos naturales” se definen por un conjunto de instancias (casos) con semejansas familiares Schank y su grupo en Yale produjeron el primer modelo y aplicación de CBR → Jane Kolodner - CYRUS (83) Porter (Texas) - PROTOS modelo de memoria de casos Aplicaciones en leyes 14.5.2 Ciclo (las 4 “Re”) 1. Recuperar (retrieve) los casos más parecidos (un nuevo problema se aparea con casos similares guardados en la base de casos) 2. Reutiliza (reuse) la solución propuesta en los casos para tratar de resolver el problema 3. Revisar (revise) la solución propuesta (en caso de ser necesario) 4. Almacenar (retain) la nueva solución como parte de un nuevo caso El ciclo completo raramente ocurre sin la intervensión del humano 14.5.3 Representación Un caso es un pedazo de conocimiento contextualizado representando una experiencia. Los casos tienen: 227 1. el problema que describe el estado del mundo cuando ocurrió el caso 2. una descripción de la solución encontrada y/o 3. un resultado describiendo el estado del mundo después de que ocurrió el caso Los casos pueden representarse de diversas formas, pero la representación frames/objetos es la más usada No existe un consenso en cuanto a que información debe de estar en un caso, sin embargo, se debe de considerar: (i) la funcionalidad y (ii) la facilidad de adquisición de la información representada en el caso 14.5.4 Idexación Asignar ı́ndices para facilitar la recuperación. Los ı́ndices deben de: • ser predictivos • contemplar el propósito para el cual el caso se va a utilizar • ser suficientemente abstractos para ensanchar el uso de la base de casos • ser suficientemente concretos para ser reconocidos en el futuro Dentro de los métodos de indexación automáticos están: • Indexación por atributos o dimensiones que son responsables de la solución o que influyen en el resultado (checklist) • Indexación basada en diferencias: selecciona por ı́ndices que diferencian un caso de otro • Métodos basados en similaridades o en explicaciones: produce un conjunto de ı́ndices para casos abstractos creados a partir de casos que comparten atributos comunes. Los atributos que no comparten se utilizan como ı́ndices de los casos originales. 228 • Métodos inductivos: identifica atributos predictivos y los utiliza como ı́ndices (variantes de ID3) • Técnicas basadas en explicaciones: determina los atributos relevantes a cada caso e indexalos por medio de ellos 14.5.5 Almacenamiento Se debe de establecer un balance entre métodos que preservan el sentido semántico de los casos y métodos que simplifican el acceso (se busca eficiencia) Dentro de los modelos de memoria de casos están: 1. modelo de memoria dinámico (Schank, Kolodner) 2. modelo de ejemplos de categorias o category–examplar (Porter, Bareiss) Modelo de Memoria Dinámico: Se compone de MOPs los cuales son frames o unidades que se dividen en: • instancias (casos, eventos, objetos) • abstracciones (versiones generalizadas de instancias) Se organizan jerárquicamente (episodic memory organization packets o EMOPs) o episodios generalizados (GE’s) La idea es organizar casos especı́ficos que comparten propiedades en una estructura más general o GE’s Un GE tiene: normas (atributos comunes), casos e ı́ndices (atributos que discriminan entre casos) Los ı́ndices (pares atributo - valor) apuntan a otros GE’s más especı́ficos o a casos 229 Cuando un nuevo caso aparea un atributo de un caso existente, se crea un nuevo GE con ı́ndices que discriminan a los dos casos La memoria en ese sentido es dinámica y los casos se indexan por los GE’s a través de sus diferencias En la práctica se limita el número de ı́ndices permitidos Modelo de Ejemplos de Categorias (category-examplar) Los casos se llaman exemplars y se organizan en una red semántica de categorı́as, relaciones semánticas, casos e ı́ndices Cada caso se asocia a una categorı́a A los atributos de los casos se les asigna diferente importancia con la cual se describe la pertenencia a una categorı́a Existen 3 ı́ndices • ligas que apuntan de atributos (descriptores del problema) a casos o categorı́as • ligas que apuntan de categorı́as a sus casos asociados • ligas que apuntan de categorı́as a los casos vecinos que difieren en un número pequeño de atributos Un exemplar se almacena de acuerdo al grado de pertenencia de una categorı́a prototı́pica Un nuevo caso con pequeñas diferencias con otro, puede no almacenarse y en lugar “fundirse” con el 14.5.6 Recuperación El problema de encontrar el “mejor” caso se ha tratado en analogı́a. Esto involucra heurı́sticas para restringir/dirigir la búsqueda 230 El razonamiento basado en casos servirá para problemas de gran escala cuando se resuelva los problemas de recuperación eficiente con miles de casos Las heurı́sticas deben de permitir hacer apareos parciales Métodos: • Vecinos más cercanos: suma pesada de atributos que aparean. Problema: como determinar los pesos. Algoritmo tı́pico: Pn i=1 wi × sim(fiI , fiR ) Pn i=1 wi donde: wi es el peso de importancia de un atributo sim es la función de similitud fiI y fiR son los valores del atributo i en el caso de entrada (I) y el caso recuperado (R) • Inducción (e.g., ID3) determina que atributos mejor discriminan casos y genera un árbol de decisión para organizar los casos en memoria • Basado en conocimiento: aplica conocimiento del dominio (no necesariamente completo) para identificar los atributos (y luego se puede usar por ejemplo inducción tipo ID3) • Por medio de templates: parecido a queries tipo SQL, recupera todos los casos que cumplen con ciertos parámetros (muchas veces se usa antes de las otras técnicas) 14.5.7 Adaptación Una vez que se recupera un caso, la solución debe de adaptarse. La adaptación se fija en las diferencias entre los casos y aplica reglas de adaptación. La adaptación puede ser: • Estructural: la adaptación con reglas es sobre la solución 231 • Derivacional: reutiliza los algoritmos, métodos o reglas usados para generar la solución (la solución debe de guardarse con la secuencia o plan utilizado). También se conoce como reinstanciación Tipos de adaptación: • Nula (e.g., útil con problemas complejos con soluciones simples) • Ajuste de parámetros (compara parámetros especı́ficos) • Abstracción y re–especialización • Adaptación basada en crı́ticas (combinaciones de atribrutos) • Reinstanciación (instanciación de atributos usados) • Volver a derivar la solución • Reparación guiada por modelos • Substitución basada en casos (usar CBR para sugerir adaptaciones) 14.5.8 Aplicaciones • Adquisición de conocimiento (Refiner) • Leyes (Judge, Hypo, Grebe, Kics) • Explicación de muertes anomalas en hombre y animales (Swale) • Diagnóstico (Caseline (BA), Protos (oido), Casey (corazón), Cascade (VMS), Pakar (edificios)) • Arbitro (Mediator, Persuader) • Diseño (Cyclops, Julia (comida), Cadet (mecánico), Archie (arquitectura)) • Planeación (Batlle, Bolero (diagnóstico), Totlec (manufactura)) 232 • Reparación–Adaptación (Chef (nuevas recetas), Plexus (planes), Coach (football)) • Tutores (decider) • + de 100 aplicaciones comerciales Existen herramientas comerciales: CBR–Express, CasePoint, ART*Enterprise, Casuel, ReCall, etc 14.5.9 Problemas • Representación de los casos • Organzación e indices a utilizar • Estructuración de relaciones entre casos • Bases de casos muy grandes • Desarrollar de heurı́sticas de adaptación general • Olvidar casos para mantener eficiencia • Aprender acerca de ı́ndices que no se pensaron inicialmente 14.5.10 Eliminar Casos Asi como hay varias técnicas para eliminar “conocimiento” en EBL, la idea de utilizarlas directamente en CBR no ha resultado La diferencia es que sistemas como Prodigy y Soar, aprenden Chunks o pedazos de conocimiento para acelerar su desempeño CBRs por otro lado no tiene un resolvedor de problemas. Sin casos no puede resolver problemas!! Las polı́ticas de EBL se hacen para acelerar el sistema pero su capacidad para resolver problemas no se ve afectada 233 En CBR eliminar casos puede ser desastroso en su capacidad de resolver problemas En CBR todos los casos no son iguales. Algunos contribuyen a su desempeño (velocidad) (auxiliary cases) y otros a su capacidad de solución (pivotal cases) Se pueden distinguir otros dos tipos de casos: spanning y support que reducen la capacidad del CBR dependiendo de los casos que permanecen La clave para catergorizar los casos se basa en: (i) lo que cubren (coverage): cuantos problemas metas puede un caso resolver y (ii) alcance (reachability): desde el problema meta es el conjunto de casos que pueden usarse para resolverlo • Casos pivotes: si se eliminan, reducen la capacidad de solución de problemas de CBR (es pivote si es reachable solo por su propio caso). Son generalmente casos aislados • Casos auxiliares: no afectan la capacidad del CBR y su eliminación solo reduce su eficiencia. Es auxiliar si lo que cubren (su coverage) es subsumida por lo que cubre (el coverage de) un caso accesible (reachable). Tienden a estar dentro de grupos de casos • Casos spanning: no afectan la capacidad del CBR y sirven para ligar regiones de cubrimiento (coverage) (se deben de mantener si se elimina algún caso de una de sus regiones) • Casos de soporte: casos especiales de casos spanning. De nuevo no afectan la capacidad y existen en grupos. Eliminar uno o un subconjunto no afecta, pero eliminar el grupo entero es análogo a remover un caso pivote. Finalmente lo que se bueca es eliminar el mayor grupo de casos manteniendo la capacidad del sistema CBR para resolver problemas Idea: eliminar primero casos auxiliares, luego de soporte, luego spanning y al final pivotes 234 14.6 Aprendizaje y Relación con Representación de Conocimiento Un elemento determinante dentro de los sistemas de aprendizaje es su lenguaje de representación de hipótesis. El lenguaje de hipótesis determina el espacio de búsqueda y su expresividad (la representación que se obtiene). Sistemas de Aprendizaje SBL (árboles de decisión, reglas de producción) Perceptrón Redes Neuronales Algoritmos genéticos Programación lógica inductiva CBR EBL ... Expresividad lógica proposicional funciones linealmente separables funciones no lineales - codificación del cromosoma lógica de predicados - representación de casos lógica de predicados ... 235 Capı́tulo 15 Ontologı́as 15.1 Introducción El conocimiento se puede ver como información acerca de información. Básicamente en información semánticamente “rica”. Un conjunto de conocimiento formalmente representado se basa en una conceptualización: los objetos y otras entidades que se asumen existir en un área de interes y las relaciones entre ellas. Una conceptualización es un vista abstracta, simplificada del mundo que queremos representar con un propósito. Cada base de conocimiento, sistema basado en conocimiento o agente a nivel de conocimiento está sujeto, explı́cita o implı́citamente, a una conceptualización. Una ontologı́a es una especificación explı́cita de una (o una parte de una) conceptualización. Lo que incluye es un vocabulario de términos y especificación de su sentido. El grado de formalidad de esta especificación va desde: muy informal, semi– informal, semi–formal, rigurosamente formal. Ontologás son acuerdos acerca de conceptualizaciones compar236 tidas. Conceptualizacines compartidas incluyen ambientes para modelar conocimiento del dominio; protocolos de comunicación de contenido especı́ficos para agentes inter–operativos; y acuerdos acerca de la representación de teorı́as de dominios particulares. El término es tomando de filosofı́a, donde Ontologı́a se refiere a Existencia. Para IA, lo que “existe” es aquello que puede ser representado. Una agente se asocia a una ontologı́a. Esto garantiza consistencia, pero no completes. 15.2 Motivación La creciente automatización de procesos en general ha provocado una proliferación de sistemas de información con semánticas que se translapan. Por otro lado existe la necesidad de reutilización de conoci–miento, para eficientar esta automatización. Los desarrollos de sistemas basados en conocimiento y de software en general, normalmente se hacen en diferentes contextos, puntos de vista y suposiciones acerca de su materia de estudio. Cada uno usa su propio vocablo, pueden tener diferentes conceptos que a veces se traslapan y diferentes métodos y estructuras. Esto ha provocado problemas de comunicación por falta de entendimiento compartido. Esto limita: • la inter–operabilidad • el potencial de reutilizar y compartir información Cómo resolverlo: teniendo un entendimiento compartido que unifique los diferentes puntos de vista y que sirva para: 237 • propósitos de comunicación • inter–operabilidad entre sistemas • re–utilización • confiabilidad • especificación Una posibilidad es tener un modelo de conocimiento, haciendo una analogı́a con un modelo de datos. Un modelo de datos describe la estructura lógica de los datos y su aplicación. Uno de los trabajos seminales fué el del modelo de entidad–relación. El modelo es una descripción esquemática de las instancias del modelo. Estas instancias, representan los datos que son usados por la aplicación. Se han hecho muchas extensiones al modelo entidad–relación para tratar de capturar el significado de los datos (la parte semántica). Una extensión común es usar je–rarquı́as de clases–subclases. Algunas de sus limitaciones son: • El modelo de datos toma un solo punto de vista del mundo. Describe los objetos o instancias de interés, pero bajo una sola posible intepretación. Si uno quiere re-utilizar algún término, se hace evidente que el término puede tener diferentes interpretaciones dependientes del contexto. La reutilización de conocimiento complejo es imposible sin tomar en cuenta los diferentes puntos de vista. Algo de ésto existe en bases de datos, pero toda la información tiene que estar presente. Esto es, los puntos de vista no añaden información, por lo que la visión global es limitada. • Por otro lado, existen desarrollos en modelo de datos orientados a objetos. Sin embargo, siguen siendo pobres en su representación de relaciones entre objetos. La jerarquı́a y herencia basada en la relación IS-A es sólo una de las posibles relaciones que pueden existir. 238 Una posible solución es hacer accesible la semántica de la información almacenada: qué contiene, qué propiedades y cómo puede usarse? Si algún agente entiende la ontologı́a puede usar la información. Las ontologı́as en sı́ mismas también puede ser reutilizadas. Ası́ como existe una frontera difusa entre conocimiento e información, existe una frontera difusa entre ontologı́as y modelos de datos. Finalmente, una ontologı́a se puede ver como un modelo de datos de conocimiento. Principio 1 : la representación de objetos del mundo real siempre dependen del contexto en el que los objetos son usados. Este contexto puede verse como un punto de vista tomado del objeto. Es generalmente imposible enumerar de antemano todos los posibles puntos de vista útiles de (o clases de) objetos . Principio 2 : la reutilización de algún pedazo de cono–cimiento requiere de una descripción explı́cita de los puntos de vista que están inherentemente presentes en el conocimiento. De otra forma, no hay forma de saber si el pedazo de conocimiento es aplicable a una nueva aplicación y porqué. Una ontologı́a especifica una conceptualización, una forma de ver al mundo. Por lo que cada ontologı́a incorpora un punto de vista. Una ontologı́a contiene definiciones que nos proveen del vocabulario para referirse a un dominio. Las definiciones dependen del lenguaje que usamos para describirlas. Algunas de las caracterı́sticas tı́picas de las ontologı́as son: • Pueden existir ontologı́as múltiples: El propósito de una ontologı́a es hacer explı́cito algún punto de vista. A veces necesitamos combinar dos o más ontologı́as. Cada ontologı́a introduce conceptualizaciones especı́ficas. • Podemos identificar niveles de abstracción de las ontologı́as. 239 Estos niveles de generalización nos da una topologı́a de ontologı́as. La idea es caracterizar una red de ontologı́as usando multiplicidad y abstracción. Como no podemos aspirar a tener una descripción completa del mundo, podemos pensar en una estrategia de construcción gradual de abajo hacia arriba. • Multiplicidad de la representación. Un concepto puede ser representado de muchas formas, por lo que pueden coexistir múltiples representaciones de un mismo concepto. • Mapeo de ontologı́as. Establecer relaciones entre los elementos de una o más ontologı́as, para establecer conecciones, especializaciones, generalizaciones, etc. 15.3 Tipos de Ontologı́as En KACTUS identificaron 4 tipos de ontologı́as de acuerdo a su alcance de aplicabilidad: 1. Ontologı́a de la aplicación: usadas por la aplicación. Ontologı́a de procesos de producción, de diagnóstico de fallas, de diseño intermedio de barcos, etc. 2. Ontologı́a del dominio: especı́ficas para un tipo de artefacto, generalizaciones sobre tareas especı́ficas en algún dominio. Por ejemplo, ontologı́a del proceso de producción de hidrocarburos, de la red eléctrica, de barcos, etc. 3. Ontologı́as técnicas básicas: describe caracterı́sticas generales de artefactos. Por ejemplo: componentes, procesos, funciones. 4. Ontologı́as genéricas: describe la categorı́a de mas alto nivel. Otra forma de indentificar ontologı́as es desde su punto de vista: por ejemplo: fı́sico, de comportamiento, funcional, estructural, topológico, etc. Por otro lado tambien se puede caracterizar por su estructuración, i.e., qué tan estructurada está. 240 15.4 Criterio de Diseño de Ontologı́as Cuando decidimos cómo representar algo en una ontologı́a estamos haciendo decisiones de diseño. 1. Claridad: una ontologı́a debe de poder comunicar de manera efectiva el significado de sus términos. Las definiciones deben de ser objetivas y comentadas en lenguaje natural 2. Coherencia: debe de permitir hacer inferencias que sean consistentes con las definiciones 3. Extendible: debe de anticipar usos y permitir extenciones y especializaciones monotónicas 4. Sesgo de codificación mı́nimo (Minimal encoding bias): debe de especificar al nivel de conocimiento sin depender de una codificación particular a nivel de sı́mbolo. 5. Mı́nimo compromiso ontológico: debe de hacer la menor cantidad de “pretensiones” acerca del mundo modelado. En estos criterios de decisión se tienen que hacer balances. 15.5 Usos de Ontologı́as 1. Comunicación • modelos normativos: creado la semántica de un sistema y modelo para extenderlo y tranformarlo entre diferentes contextos • red de relaciones: • consistencia y falta de ambigüedad • integración de diferentes perspectivas de usuarios 241 2. Inter–operabilidad: Usar ontologı́as como una inter–lingua. La inter–operabilidad puede ser: (i) interna: bajo el control de una unidad organizacional, (ii) externa: aislada del resto, (iii) integrada entre dominios, (iv) integrada entre herramientas. 3. Ingenierı́a de sistemas: especificación, confiabilidad y reutilización 15.6 Metodologı́a de Construcción usada en KACTUS 1. Especificar el contexto de aplicación y el punto de vista del modelado. El contexto de aplicación describe el dominio de aplicación, los objetos de interes del dominio y las tareas que se van a realizar por la ontologı́a (para que se va a construir). El modealdo del punto de vista describe el tipo de modelo, tales como, dinámico - estático, funcional - causal, etc. Por ejemplo: dentro de la electricidad podemos pensar en 4 grandes conceptos: generación, distribución, transporte y consumo. Los componentes de la funcionalidad son: generadores, lı́neas de transmisión, capacitores, transformadores, cargas, etc. Algunas variables son: voltage, intensidad, potencia, y sus leyes. 2. Hacer un diseño preliminar basandose en una ontologı́a existente. Implica una estapa de análisis y de mapeo de ontologı́as El mapeo puede ser: • de formalización: de la especificación o del modelado. • para aumentar la parte declarativa de la ontologı́a • para especializar términos creando subtipos o restricciones de tipos • mezcla de todos Este paso es el más difı́cil e implica mayor trabajo. 242 Por ejemplo, una lı́nea de transmisión es un elemento que transporta energı́a eléctrica, genera pérdidas y baja el voltage. El proceso de transporte de energı́a es caso especı́fo de un proceso fı́sico, por lo que podemos tomar una ontologı́a de procesos fı́sicos. Por otro lado, la descomposición de procesos es otro aspecto que podemos incorporar usando una ontologı́a de descomposición. Después tenemos que verificar que los conceptos encontrados en las ontologı́as son adecuados para nuestro propósito. 3. Hacer un diseño definitivo y evaluarlo Básicamente debemos de considerar que la ontologı́a cosntruida va a ser reutilizada. Algunos principios generales de reutilización son: abstracción (lo más abstracto posible, pero suficientemente concreto) modularización (aislar conceptos), jerarquización (orden) y estandarización (e.g., STEP). 4. Documentación y reutilización. La documentación tiene que hacerse en forma paralela a los puntos anteriores y debe de tener el tipo de mapero en que se basa la nueva teorı́a, diferencias semánticas con las ontologı́as seleccionadas, justificación de las decisiones tomadas, evaluación, conocimiento adicional para usarla, etc. También debe de ser indexada y colocada (ordenada) con las ontologı́as existentes para su reutilización. 15.7 Metodologı́a Genérica 1. Indetificar el propósito y alcance (usuarios potenciales) 2. Construcción de la ontologı́a • Captura: (i) identificación de los conceptos y relaciones claves en el dominio de interes, (ii) producción de definiciones no ambigüas de conceptos y de sus relaciones, (iii) identificación de términos para referirnos a esos conceptos y relaciones 243 • Codificación: representación explı́cita de la conceptualización en un lenguaje formal: (i) comprometerse a términos básicos de especificación (a veces se llama meta–ontologı́a), (ii) escoger el lenguaje de representación adecuado (iii) codificarlo • Integración de ontologı́as existentes: cómo, cuáles y si vamos a usar alguna ontologı́a existente 3. Evaluación 4. Documentación 15.7.1 Metodologı́a (tips) para la definición de términos • hacer tormentas de ideas para producir todos los términos relevantes y frases, y estructuración inicial para identificar referencias cruzadas entre las áreas • Producir definiciones • Determinar la meta–ontologı́a: inicialmente no casarse con ninguna • Dividir en áreas que tengan el traslape semántico más grande y trabajar primero en ellas. • Proceder de en medio hacia afuera: esto es definir los términos considerados fundamentales y moverse a niveles más abstractos y especı́ficos. Una metodologı́a de abajo hacia arriba produce demasiado nivel de detalle, aumenta esfuerzo, difı́cil identificar cuestiones comunes entre conceptos relacionados, lo cual aumenta el riesgo de tener inconsistencias. Una metodologı́a de arriba a abajo, puede resultar en establecer una categorización arbitraria, con posible poca estabilidad y puede no identificar cuestiones comunes en una red compleja. De en medio hacia afuera es un balance entre los dos. Los detalles surgen sólo si se necesitan y las categorias surgen naturalmente. 244 15.8 Proyectos de Ontologı́as 15.8.1 Para inter–operabilidad • Formato de proceso de intercambio (Process Interchange Format - PIF): es un proyecto para intercambiar modelos de procesos de negocioas usando diferentes representaciones. Usa una inter–lingua con traductores locales entre PIF y representaciones de procesos locales. • Ontologás de planes KRSL: proyecto ARPA para desarrollar un lenguaje de especificación de representación de conocimiento (KRSL) para representar planes e información de planificación. Su objetivo es proveer un vocabulario común de conceptos, relaciones y condiciones comunes para actividades de planificación. Tiene dos aspectos: (i) una ontologı́a abstracta con las categorı́as principales (tiempo, espacio, agentes, acciones y planes) y un conjunto de ontologı́as modulares especializadas con conceptos y teorı́as alternativas comunes a sistemas de planificación (e.g., ontologı́as especı́ficas para puntos de tiempo, relaciones temporales, etc). La ontologı́a abstracta busca capturar las categorı́as generales en donde existe poco desacuerdo, y las especı́ficas permiten expresar diferentes puntos de vista de un mismo concepto. 15.8.2 Estandares y Lenguajes de especificación de ontologı́as 15.8.2.1 Lenguajes En principio podemos usar cualquier lenguaje de programación, pero a veces carecen de expresividad para escribir lo que queremos decir. Algunas de las primitivas que se añaden son: 245 • contructores para agregados, multiples jerarquı́as clase-subclase, reglas y axiomas • varias formas de modularización, para poder escribir diferentes ontologı́as y sus inter–relaciones. • la posibilidad de tomar una visión a un meta–nivel. Algunos lenguages utilizados son: EXPRESS (STEP), CML (CommonKADS), Ontolingua. Se busca en el lenguaje: (i) expresividad y (ii) uso. Todavı́a no hay un estandar. Lo importante es el contenido más que la sintáxis. 15.8.3 Estandares • Workflow management coalition (WfMC) • STEP y su lenguaje de especificación EXPRESS STandard for the Exchange of Product model data: es una inter–lingua para definir y especificar productos, asociado a su ciclo de vida: diseño, manufactura, uso, mantenimiento y desecho. El objetivo es dar un mecanismo capaz de describir datos del producto durante su ciclo de vida. • CORBA The Common Object Request Broker Arquiteture está surgiendo como estandar para recuperar objetos y para invocar operaciones en objetos a través de la red. Provee un mecanismo en donde los objetos pueden hacer peticiones y recibir respuestas de forma transparente. El lenguaje (IDL - Interface Definition Languaje) especifica los objetos y las operaciones para aplicaciones remotas/distribuidas. Incorpora nociones informales de ontologı́as. 246 • KIF y gráfos conceptuales Knowledge Interchange Format y los grafos conceptuales son lenguajes para representar ontologı́as basados en lógica de primer orden. KIF pretende ser un lenguaje capaz de representar la mayorı́a de los conceptos y distinciones actuales de los lenguajes más recientes de representación de conocimiento. KIF está basado en lógica de predicados con extensiones pare definir términos, meta–conocimiento, conjuntos, razonamiento no–monotónico, etc. 15.8.4 Integración de Ontologı́as • CYC proyecto de MCC (Microelectronics and Computer technology Corporation) que da los fundamentos para razonamiento de sentido común mediante el desarrollo de ontologı́as para una gran variedad de aplicaciones especı́ficas del dominio. Todo el conocimiento esta representado declarativamente en una variante de lógica de primer orden en un lenguaje llamado: CYCL. Tiene mecanismo de inferencia y de control. Las ontologı́as están organizadas en conjuntos modulares llamados microteorı́as. Cada microteorı́a captura el conocimiento y razonamiento requerido para un dominio especı́fico, tales como espacio, tiempo, causalidad o agentes. Pueden existir múltiples microteorı́as para un solo dominio reflejando diferentes perspectivas Se puede ver la ontologı́a de CYC, más como una ontologı́a monolı́tica, como una red de microteorı́as. • TOVE TOronto Virtual Enterprise: desarrollar una ontologı́a para empresas. Usa definiciones basadas en lógica de primer orden y permite deducir respuestas a preguntas de sentido común (usando Prolog). 247 • Enterprise Proyecto parecido a TOVE pero Inglés, pero el énfasis es sobretodo en proveer un ambiente de integración de herramientas y métodos usados en los negocios. • KACTUS Proyecto ESPRIT para el desarrollo de una metodologı́a de reutilización de conocimiento técnico. Usa CML (Conceptual Modelling Language) desarrollado como parte de KADS dentro del proyecto de CommonKADS. Hace disticiones explı́citas entre conocimiento del dominio, de inferencia, de tareas y de resolución de problemas. Una parte central es la biblioteca de ontologı́as organizadas por los niveles de abstracción. • Plinius El objetivo es la extracción semi–automática de cono–cimiento a partir de textos en lenguaje natural enfocado a materiales cerámicos. Usa un lexicón para mapear tokens de lenguaje natural a expresiones formales en el lenguaje de representación de conocimiento. La ontologı́a define el lenguaje en que la parte semántica esté expresada. 15.9 Herramientas de Soporte: El servidor de ontologı́as (KSL) Existe un servidor puesto por el laboratorio de sistemas de conocimiento de la Universidad de Stanford que permite: crear, editar, evaluar, publicar, mantener y revisar ontologı́as. Permite trabajo colaborativo a través de internet (http://www-ksl.stanford.edu/) Usa Ontolingua (parecido a KIF). 248 15.10 Trabajo Futuro • desarrollo de ontologı́as como soporte de inter–lingua e interoperabilidad entre herramientas en algún dominio (traductores e integración) • desarrollo de herramientas para apoyar el diseño y evaluación de ontologı́as • desarrollo de bibliotecas de ontologı́as • desarrollo e integración de nuevas ontologı́as • metodologı́as de diseño y evaluación de ontologı́as 249 Capı́tulo 16 Artı́culos Seminales de Representación de Conocimiento 16.1 Some Problems and Non-Problems in Representation Theory, Patrick J. Hayes Objetivo: dar cuenta de algunos problemas en representación de conocimiento. 16.1.1 Semántica Existen muchas formas de represertar conocimiento en forma sintáctica. El autor se refiere a un scheme: representación sistemática de conocimiento (e.g., lógica, lenguajes de programación, notación musical, convenciones de mapas, etc). Una configuración es una expresión de un scheme, por lo que un scheme es un conjunto de configuraciones. Todos son formales en el sentido que pueden contestar si una expresión 250 está bien formada (well-formed ). Ejemplos que fallan (no se pueden establecer que algo sea well/ill-formed ): pinturas, fotografı́as, poemas, conversaciones, conciertos musicales, etc. Esto permite hacer la distinción entre schemes (formales) que pueden ser usados por una máquina y escenas o situaciones de percepción (informales) que requieren el uso de conocimiento para su interpretación. El scheme sirve como mecanismo de convenir un cierto sentido acerca del mundo, por lo que debe de tener asociado una teorı́a semántica (i.e., correspondencia entre configuraciones del scheme y situaciones del mundo externo). Con una teorı́a semántica (y sólamente con una) se pueden hacer preguntas de equivalencias (entre diferentes representaciones o schemes). Algo que resalta es la semántica de lógica de primer orden (a la Tarsky). El que se tenga una semántica, no quiere decir que sea precisa, sin embargo, sin ella no se puede decir lo que expresa una configuración. El pensar en un formalismo sólamente como un lenguaje de programación es otro asunto. 16.1.2 Linguı́stica y Representación Directa Distinción entre representaciones que son descripciones en un lenguaje, y representaciones que son de algúna forma modelos de lo que representan. Para hacer la distinción en forma precisa se requiere establecer el nivel de representación (cualquier representación puede ser descriptiva o representacional dependiendo de su nivel). Cualquier representación es una representación directa de algo. El sentido de algunas configuraciones puede ser obtenido del sentido de sus partes. 251 La representación directa tiende a depender de la similitud entre el medio en el que la representación está embebida y lo que representa (e.g., un mapa de un cuarto es una representación directa de las relaciones espaciales, en el plano horizontal, del cuarto). El medio en el cual uno construye configuraciones, esto es arreglos de marcas en que las relaciones exhibidas directamente en el medio se cumplen entre las marcas. Un lenguaje se define (sintácticamente) en terminos de sı́mbolos primitivos y de reglas gramaticales (que definen expresiones en términos de sus partes). Un modelo asocia un significado a cada sı́mbolo primitivo y una regla semántica a cada regla gramatical que define el significado de configuraciones de términos en función del significado de sus partes. El significado de las configuraciones debe existir en un espacio que es similar al medio de representación, y las relaciones sintácticas que se despliegan directamente por la configuración simbólica deben de igualar las representaciones semánticas correspondientes. Esto depende de que exista una relación de homomorfismo entre la configuración y la realidad. El problema entonces radica en caracterizar el “medio” y la “similaridad”. Representaciones directas pueden tener una teorı́a de modelo precisa (a la Tarsky), se pueden usar sistemas deductivos eficientes, y la noción de “medio” captura la idea de niveles de representación. La selección de las relaciones primitivas definen tanto el medio como el nivel al cual el análisis deja de existir. La eficiencia dbe de considerar las propiedades computacionales del medio. 252 16.1.3 Exhaustividad y Platicidad Un scheme (con semántica Tarskiana) es en general una descripción parcial del medio ambiente. Restringe las formas de satisfacer el mundo pero, en general, nos las determina de manera única. Esto permite añadir libremente nueva información (tratando de mejorar la especificación del mundo) y por lo tanto deja abierta la posibiliadad a crear inconsistencias (un mundo imposible). La plasticidad (facilidad de hacer cambios a configuraciones) es escencial en aprendizaje y para cualquier sistema que trabaje con información limitada de un mundo incierto. A veces, nos gustarı́a poder decir que tenemos una representación exhaustiva (en algún sentido), lo cual trae a colación el frame problem (i.e., la imposibilidad de representar todo lo relevante). Podemos pensar que tenemos descripciones exhaustiva, formadas por ciertas propiedades desde un cierto punto de vista, lo cual podrı́a usarse para hacer analogı́as de forma deductiva. También se puede hablar de representaciones directas fuertes (e.g., un mapa), donde existe una correspondencia entre todos los objetos y sus representaciones. Aquı́ sin embargo, no se tiene la propiedad de “plasticidad”, ya que el añadir nueva información implica hacer alteraciones (las cuales pueden haberse usado para otras deducciones). Con ésto, surge la necesidad de manterner información de dependencias, ya que al eliminar/cambiar un hecho puede afectar otros que fueron deducidos a partir de él (TMS). Una alteración más fuerte serı́a en la ontologı́a. El paso primordial es introducir una nueva noción y luego definir la noción vieja en términos de la nueva. Una restricción fuerte en la teorı́a nueva es que debe de “explicar” la teorı́a vieja. Desde este punto de vista, alteraciones son de alguna forma 253 refinamientos. 16.1.4 Razonamiento Evidencial El poder representar que algo sea (sirva de) evidencia para otro objeto. Si A implica B, A es buena evidencia para B. Esto puede servir para guiar el razonamiento. El problema es cómo expresar adecuadamente la noción que un pedazo de conocimiento es buena evidencia de otro. Pueden existir varias nociones de “buenas evidencias”. Esto sugiere la noción de explicaciones alternativas y plausibilidad. Si existen varias explicaciones para A sugiere que A es evidencia de que una de ellas es verdadera. El problema es cómo descubrir esa colección de posibles explicaciones evidenciales. 16.1.5 Control Un sistema que hace inferencias para generar nuevos hechos debe de poder controlar sus capacidades de su mecanismo de inferencia de algı́n modo. Un sistema tiene que representar y usar conocimiento acerca de su propio comportamiento deductivo. Esta información meta-deductiva se debe de hacer explı́cita y separarla de la información de hechos representados en el esquema (por razones de claridad, platicidad y poder deductivo). Un problema, es entonces, encontrar un conjunto de primitivas de control adecuadas. Es importante que la información de control esté representada en un squeme compatible con el scheme usado para representar el conocimiento del sistema, para que el control pueda estar involucrado en inferencias hechas y cambios. 254 Uno de los problemas principales (en general) está entre el balance del poder expresivo y su implementación (ver artı́culo de Brachman y Levesque). En general, se debe de poder tener una buena noción de una teorı́a (un pedazo de conocimiento organizado acerca de un área). 16.1.6 Substancias, Partes y Objetos Compuestos La mayorı́as de las representaciones están basadas en la idea en representar entidades individuales y las relaciones entre ellas. Sin embargo, existen otras “cosas” como las substancias (masas), por ejemplo, agua, madera, acero, etc. y cómo representarlas vs. cosas individuales. A veces nos referimos a las substancias como entidades con ciertas propiedades y sus relaciones con otras. Pero existen ciertos problemas. Por ejemplo, si se conservan propiedades al juntar o dividir substancias. Por ejemplo si juntamos dos “masas” nos quedamos con una, por lo que debemos de hablar de cantidades. Existen propiedades relacionadas con el material en si (densidad, temperatura, etc.) y otras relacionadas con el objeto (masa, peso, forma, etc.). Ver también CYC. Existen propiedades que se transmiten y otras que no. Otro problema relacionado es cuando se acumulan elementos hasta que dejan de ser reconocidos como un objeto y pasan a ser otro (e.g., un monton de arena vs. una montaña). Se tiene que representar que si un individuo lo divides deja de existir como tal y distinguir entre lo que puede armarse (e.g. un coche) y lo que no (e.g., un perro). Tenemos que hacer una clara distinción entre objetos hechos de algo (material) y compuest de algo (partes). Serı́a interesante explorar nociones ontológicas donde coexistan estas nociones. 255 16.1.7 Otros Aspectos 16.1.7.1 Clasificaciones irrelevantes Por cierto tiempo se han defendido los resolvedores generales de problemas cuyas únicas entradas son las descripciones del problema y sus salidas su solución (vistas como cajas negras). La falacia viene, no tanto de la insistencia en la generalidad, sino en el énfasis que se comporten como cajas negras y que no se haga “trampa”, lo cual provocó poca útiles en problemas reales. En realidad, se necesita tanto generalidad como conocimiento especı́fico. Los resolvedores generales de problemas no deben deshecharse sino incorporarse a sistemas más flexibles. 16.1.7.2 Semántica Se ha hecho trabajo reciente (70’s) dentro de lenguaje natural para considerar la semántica. El punto fundamental es que el significado de las expresiones linguı́sticas radica en expresiones extra–linguı́sticas, y esto no se ha considerado. 16.1.7.3 Difuso Otros autores han propuesto otras lógicas, en particular, difusas, para capturar las imprecisiones en las deducciones del hombre. El autor no ve la necesidad de usar lógica difusa. El punto principal que hace es que en todo case se mantengan las escalas difusas, pero no afectar el sistema inferencial. 256 16.2 Epistemological Problems in Artificial Intelligence, John McCarthy IA se puede dividir en dos partes: • la parte epistemológica: (i) qué hechos del mundo son observables, (ii) cómo pueden representarse, y (iii) qué reglas permiten derivar conclusiones legı́timas de esos hechos (resumiendo: qué información puede representarse) • la parte heurı́stica: cómo buscar espacios de posibilidades y aparear patrones (hacer accesible la información) La solución a un problema epistemoógico puede servir para muchos problemas, soportar diferentes enfoques heurı́sticos, sin embargo, como se verá, es difı́cil formalizar hechos de conocimiento común. El uso de lógica de primer orden en investigación epistemológica es diferente a plantearse si lógica de primer orden nos da estructuras de datos adecuadas para representarlas en un programa. Por otro lado, si lógica de primer orden es un buen lenguaje de programación también es un asunto aparte. Una teorı́a no es adecuada epistemológicamente si no puede cumplir cierta meta haciendo deducciones de la teorı́a sin importar la velocidad a la que corra el programa. Una teorı́a, considerada epistemológicamente adecuada, se considera heirı́sticamente inadecuada si ningún programa corriendo a una velocidad adecuada puede resolver el problema con cualquier representación de los hechos que se use. El que los programas de IA no sean epistemológicamente adecuados para lograr inteligencia (i.e., no pueden resuelver metas que requieren inteligencia independientemente de la velocidad que puedan correr) es porque no se han resuelto los problemas epistemológicos. Problemas epistemológicos: 257 1. Para resolver un problema se requiere la colaboración de alguien? o de sobreponerse a alguien? En cualquier caso, se deben de tomar en cuenta los deseos y metas de la otra persona. Predecir sus acciones (ponerse en el lugar de la otra persona). En algunos casos se debe de negociaciar. Se podrı́a hacer la suposición de considerar a la otra persona como máquina. 2. Se requiere adquirir conocimiento? Tenemos que razonar con lo que la otra persona pueda saber y cómo se obtiene la información (directamente o en forma más compleja (se generan nuevas oraciones o sólo se instancian variables). 3. Existen eventos/acciones concurrentes? Cómo expresar reglas que dan efectos de acciones y eventos que ocurren concurrentemente? Es necesario considerar al tiempo, pero cómo representarlo? Los formalismos para expresar hechos acerca de paralelismo y programas indeterminados proveen de nuna axiomatización inicial al respecto. 4. Se debe de expresar conocimiento acerca de espacio, localizaciones, formas y acomodo de objetos en el espacio. Una forma de representar información geométrica del tipo observable por la gente. Parte del problema es la limitante del lenguaje para expresar conocimiento visual (e.g., describir una cara o un paisaje). 5. Se necesita un formalismo que trate a los objetos tridimensionales como instancias de patrones y a los bidimensionales como proyecciones de esos patrones (relación entre 3D y 2D). 6. Relación entre objetos y sus materiales. Los objetos puede tener partes y separarse, cortarse y destruirse. Falta una forma adecuada de representar esta información. 7. Representación de conceptos modales, como causalidad o capacidad de acción. Falta también incorporar información de habilidades. 258 8. El frame problem: expresar qué es lo que no cambia al realizarse un evento. 9. El qualification problem (más general que el frame problem): A que nivel tenemos que llegar para especificar el problema (siempre nos van a quedar situaciones no previstas). Por lo que tenemos que poder hacer deducciones para conjeturar que nada previene la realización de cierta acción. 16.2.1 Cirscunscription Propone usar circunscripción para tratar de resolver el qualification problem. Existe la idea de que no todo el razonamiento humano es deductivo, por lo que un sistema lógico formal no es en principio un buen candidato para formalizar todo el conocimiento. Idea: conocemos objetos en una clase y sabemos como generar más. Concluı́mos entonces que ésto nos da a todos los objetos de la clase, i.e., “circunscribimos” la clase a los objetos que sabemos como generar. e.g., tenemos 3 objetos que satisfacen P P (a) ∨ P (b) ∨ P (c) ∨ ∀x(P (x) ⊃ P (f (x))) ∨ ∀xy(P (x) ∨ P (y) ⊃ P (g(x, y))) Se puede cirsunscribir como: Φ(a) ∨ Φ(b) ∨ Φ(c) ∨ ∀x(Φ(x) ⊃ Φ(f (x))) ∨∀xy(Φ(x) ∨ Φ(y) ⊃ Φ(g(x, y))) ⊃ ∀x(Φ(x) ⊃ P (x)) Donde Φ en un predicado variable que se puede substituir por cualquier predicado. Es una conjetura, porque puede existir otro objeto, d que cumpla con P (d). 259 La circunscripción no es: (i) transitiva (no se cumple que si: p ⊢ q y q ⊢ r entonces p ⊢ r), ni (ii) monotónica (no se cumple que si A ⊢ p y A ⊂ B entonces B ⊢ p), por lo que no es un proceso deductivo. No es monotónico porque hace la conjetura que las formas que conocemos para generar p son todas las que existen. Un conjunto más grande de oraciones puede tener otras formas de generar p. Circuscripción lo podemos expresar en toerı́a de conjuntos como: (∀Φ)(a ∈ Φ ∨ b ∈ Φ ∨ c ∈ Φ ∨ (∀x)(x ∈ Φ ⊃ f (x) ∈ Φ)∨ (∀xy)(x ∈ Φ ∨ y ∈ Φ ⊃ g(x, y) ∈ Φ)) ⊃ P ⊂ Φ El axioma esquemático de inducción en aritmética es el resultado de aplicar circunscripción a la constante 0 y la operación de sucesor. Se puede aplicar cirscunscripción a oraciones arbitrarias en cálculo de predicados. La relativization de p con respecto a Φ (pΦ ) se define como la oración resultante de remplazar los cuantificadores universales (∀xE) y existenciales (∃xX) por: ∀x(Φ(x) ⊃ E y ∃x(Φ(x) ∨ E). La circunscripción de p es: pΦ ⊃ ∀x(P (x) ⊃ Φ(x)). Si hay constantes y sı́mbolos funcionales hay que añadir Φ(c) para cada constante y ∀x(Φ(x) ⊃ Φ(f (x))) para cada sı́mbolo funcional unario (o sus equivalentes para sı́mbolos funcionales de aridad superior). Su intepretación es que los únicos objetos que existen que satisfacen P son aquellos que la oración p los fuerza a existir. Aplicar el esquema de circunscripción requiere inventar un predicado adecuado para substituir el sı́mbolo Φ. La interpretación semántica de aplicar cirscunscripción serı́a probar por circunscripción que una oración p es verdadera en todos los modelos mı́nimos de p (donde una deducción de p es verdadera en todos los modelos de p, y mı́nimo está en términos de ≤, osea que todos los elementos de un domunio son elementos de otro y los comunes tienen el mismo valor de verdad). 260 No siempre existen los modelos mı́nimos y cuando existen no siempre son únicos. 16.2.2 Conceptos como Objetos Si se remplaza un término por otro igual en lógica de primer orden, podemos hacer concluciones no válidas (e.g., yo se algo que es igual a otra cosa, eso no quiere decir que yo sepa la otra cosa). Se pueden usar operadores modales para expresar conocimiento, creencias, deseos y necesidades y realizar remplazos sólo en ciertos contextos. Esto complica la discusión semántica. Por otro lado, podemos tratar conceptos como objetos individuales. Por lo que podemos expresar que dos conceptos no son iguales (aunque se llamen igual) si denotan objetos diferentes (e.g., denotes(pegasos,X) no existe para ningúna X, significando que no existen pegasos aunque si exista el concepto). Mientras que un concepto denota un solo objeto, el mismo objeto puede ser denotado por varios conceptos. Un problema de IA que necesita conceptos para su formalización exitosa es la relación entre conocimiento y habilidad (conocimiento y acción). La semántica de razonamiento acerca de objetos se vuelve más complicada si uno se refiere a ellos únicamente a través de conceptos. Otro aspecto es la capacidad de inferir algo que no se sabe (argumenta que circunscripción puede ayudar). Esto involucra decidir qué conocimiento es relevante y construir modelos o predicados de circunscripción. Notas filosóficas: la filosofı́a tiene una relación más directa con IA que con cualquier otra ciencia. Ambas requiere formalizar el sentido común. 1. El construir una visión del mundo en la estructura de un programa no da la habilidad al programa de expresar explı́citamente esa visión. 261 2. El sentido común requiere de una formulación cientı́fica. 3. Se requiere de una formalización, pero la estructura fundamental del mundo todavı́a no se conoce, por lo que se requiere de formulaciones imprecisas y a veces inconsistentes. 4. Necesitamos conceptos que tienen sentido sólo en teorı́as aproximadas. Se requiere de un formalismo que permita ir más alla de los aseveraciones hacia un siguiente nivel de aproximaciones cuando sea posible y necesario. 5. Existen dos formas genéricas de hacer programas: (i) empı́ricamente (teorı́as que conectan datos con acciones) (ii) realisticamente (hechos que existen independientemente del programa y que la realidad no es sólo lo que interactua con el programa). El autor le da preferencia a la realista. 16.3 Prologue to “Reflection and Semantics in a Procedural Language”, Brian C. Smith Habilidad de auto-reflexión, introspección, auto-referencia, etc., y su importancia dentro de la mente, que se ha llamado meta-X (meta-reglas, metaconocimiento, meta-control, etc) ha cobrado gran relevancia dentro de los sistemas de IA (1982). Una de las preocupaciones principales en la representación de conocimiento, es la flexibilidad y modularidad en el proceso de razonamiento. Aunque se han obtenido buenos resultados en tareas especı́ficas, todavı́a falta mucho por hacer para simular el sentido común o qué hacer en situaciones novedosas. Si las estrategias de solución de problemas y el comportamiento de formación de hipótesis pueden tratarse como parte del dominio de estudio, entonces (por lo menos en principio) serı́a posible construir sistemas que exhiban la misma modularidad acerca de su proceso de pensamiento como lo hacen con el sujeto primario de dominio. La habilidad de razonar acerca del procesamiento de razonamiento no 262 hace a los sistemas automáticamente flexibles, sin embargo demostrar esa habilidad se cree que es un pre-requisito para que lo sean. Se usa la hipótesis de representación de conocimiento, que dice que cualquier proceso capaz de razonar en forma inteligente acerca del mundo debe de alguna forma tener en parte estructuras que representen aquel conocimiento y creencias que el proceso tenga. Se supone que existe un proceso que revisa las estructuras representacionales de tal forma que el comportamiento inteligente es el resultado de la interacción de estas partes. Además se asume que reaccion sólo a la forma de las representaciones sin considerar lo que signifiquen, lo cual es la escencia de que la computación involucra manipulación formal simbólica. La hipótesis de representación de conocimiento podemos resumirla como sigue: Cualquier mecanismo que contenga procesos inteligentes tendrá ingredientes estructurales que (a) como observadores externos asuminos que representan una forma proposicional del conocimiento que el proceso en general exhibe, y (b) independientemente de la atribución semántica externa, juega un papel formal y escencialmente causal engendrando el comportamiento que manifiesta ese conocimiento. Esta hipótesis dice que: el conocimiento es representacional. Por lo que se busca, más que especular en qué es lo que se está representanddo, descubrir la forma general y categórica de la representación. Requiere demostrar que un pensamiento particular puede surgir de la representación. De alguna forma descubrir la estructura de la mecanización mental en donde nuestras creencias están inscritas. Hay que distinguir la versión fuerte de que el conocer es representarlo con una versión más débil que dice que es posible construir un “conocedor” representacional. Dada la hipótsis de representación, la sugerencia de construir sistemas auto-reflectivos, llamada la hipótesis de reflexión es: 263 En tanto que un proceso conputacional se pueda construir para razonar acerca de un mundo externo utilizando un interprete para manipular formalmente representaciones del mundo, también se puede tener un proceso computacional para razonar acerca de si mismo usando un interprete que manipule formalmente representaciones de sus propias operaciones y estructuras. Básicamente, contruir sistemas reflexivos se trata de darle a sistema representaciones formales de su propia constitución y comportamiento. El proceso de meta-razonamiento es uno de los más importantes dentro de representación de conocimiento en la última decada (70’s). 16.3.1 Relación entre Representación y Reflexión En los inicios de IA se desarrollaron sistemas de propósito general, con descripciones básicamente declarativas y en donde se demostró la dificultad de aplicarlos a sistemas particulares. Esto creo una reacción hacia un enfoque procedural en donde la idea era manipular y razonar para resolver tareas especı́ficas en mundos de juguete, pero mostraron ser poco generales y modulares. La reacción a ésto fue el desarrollo de procesos diseñados para trabajar sobre representaciones generales de objetos y categorı́as, dando pie a la hipótesis representacional, con el fin de darle generalidad, modularidad y flexibilidad a los sistemas, pero manteniendo la efectividad procedural en el componente de control (i.e., sistemas expertos). Esto es, la representación como un método emergió como solución para proveer formas flexibles y generales de reflejar el mundo. La inflexibilidad de razonamiento de estos sistemas es muy parecida a la inflexibilidad en conocimiento que tenian los primeros sistemas, por lo que sugiere diseñar un sistema de inferencia sobre meta-conocimiento acerca del razonamiento. Notas de advertencia: el proceso está constituido por sı́mbolos que tomamos como estructuras representacionales, pero el interprete no sabe que son rep264 resentaciones, por lo que queda la duda si el método representacional va a ser útil en obtener comportamiento reflexivo. A pesar de la exitación que los sistemas reflexivos han generado, no existe una teorı́a al respecto. El hecho que un sistema reflexivo A sea implementado en un sistema B no quiere decir que B exhiba comportamiento reflexivo. Se requieren teorı́as para clarificar la relación entre reflexión y representación (un sistema reflexivo necesita representar sus propios estados mentales, no es suficiente tener un conjunto de de representaciones formales inspeccionadas por su interprete). Se requieren teorı́as de referencias. Se necesitan guı́as de cómo distinguir entre aspectos de estructuras computacionales explı́citas e implı́citas. En el aspecto representacional, no existe tampoco un esquema que tenga aceptación generalizada e inclusive la noción de representación permanece poco clara. La opinión generalizada no es que estamos representando conocimiento, sino que el conocimiento o entendimiento es representacional. También es poco claro la relación entre las representaciones estructurales y los procesos que las intepretan. Que está relacionado con el proceso de interpretación y todo el proceso en el cual la intepretación es sólo una parte. Términos como nodo, frame, unidad, concepto, esquema, script, patrón, clase y plan, por ejemplo, tienen conotaciones similares y significados débilmente definidos. Por otro lado la tendencia de los reportes de investigación es más demostrativa, por lo que es difı́cil extraer generalidades y hacer comparaciones. Se requiere de una reconstrucción racional de la práctica actual. No va a existir un avance práctico mientras no se haga uno teórico. Tenemos que tener teorı́as adecuadas de representación y reflexión ya que esa teorı́a va a jugar un papel central en la parte reflexiva. El conocimiento, de todo tipo, es siempre relativo a una teorı́a. Las 265 hipótesis de representación implican que nuestras teorı́as de razonamiento y reflexión deben de ser explı́citas. 16.4 A Fundamental Tradeoff in Knowledge Representation and Reasoning, Hector J. Levesque y Ronald J. Brachman Existe un balance entre la expresividad de un lenguaje de representación y su tractabilidad computacional. Este balance muestra la diferencia entre lso diferentes formalismos de representación de conocimiento y motiva mucha de la investigación en el área. El análisis es a nivel de conocimiento (lo que se representa y no cómo se representa). Estamos interesados en saber si algoritmos de cierto tipo eexisten o no. Tomando la hipótesis de representación de conocimiento de Smith (ver artı́culo anterior), existen dos propiedades que una estructura de conocimiento debe de satisfacer: • es posible intepretar las estructuras como proposiciones representando el conocimiento global del sistema (las expresiones deben de ser expresiones en un lenguaje con una teorı́a de verdad) • las estructuras juegan un papel causal en el comportamiento del sistema y la influencia que tienen en el comportamiento del sistema debe de ser acorde con nuestro entendimiento de ellas como proposiciones representando conocimiento. Lo que un sistema basado en conocimiento debe de ser capaz de determinar es, si una oración α es verdadera asumiendo que el mundo es tal que lo que conocemos es verdadero. Esto es, contestar: KB |= α. 266 Para ésto, debe de seleccionar estructuras simbólicas y mecanismos de razonamiento adecuados. Se puede pensar en conocimiento declarativo y procedural (como razonar acerca del declarativo). La ventaja de tomar un formalismo de representación basado en lógica es que el contestar si una oración es verdadera o no tiene un definición precisa. Desde un punto de vista lógico KB |= α sii cada intepretación que satisface KB también satisfacen α. Si asumimos que KB es finito se puede mostrar que: KB |= α sii ⊢ (KB ⊃ α), por lo que se reduce a prueba de teoremas. Desafortunadamente, probar un teorema en l’goca de primer orden es indecidible. Si restringimos el lenguaje eliminando cuantificadores es un problema NP (peor de los casos). Posibles (pseudo) soluciones: • Mejorar aspectos computacionales • Relajar la noción de correcto (regresar un valor aunque sea “no se”) • Limitar la expresividad del lenguaje haciendo el proceso de inferencia tratable computacionalmente El poder de lógica de primer orden (que sirve para formalizar colecciones infinitas de entidades) se usa en representación sobretodo para manejar información incompleta. FOL determina, no tanto lo que se puede decir, sino lo que deja de decirse. Al reducir la expresividad se controla lo que puede dejarse sin decir y se puede llegar a mecanismos de inferencia tratables. Para representar la información en una base de datos, podemos usar predicados atómicos (sin variables) sin sı́mbolos funcionales, por lo que la infer267 encia se reduce a cálculo. Básicamente se le da acceso al usuario a la información, más que usar la información para responder a preguntas acerca del mundo representado. No tenemos que razonar por casos o por contradicción. Existe una correspondencia entre la representación y el dominio (un análogo) que facilita la inferencia, pero que no permite que no se deje de especificar algo acerca del dominio. Por otro lado, si usamos una representación basada en cláusulas de Horn (e.g., Prolog), necesitamos para contestar preguntas hacer inferencias y se vuelve indecidible determinar lo que es implı́cito en la base de conocimiento. Lo que necesitamos son representaciones intermedias. 16.4.1 Redes Semánticas Utilizan sólo predicados atómicos (no vars.) binarios y unarios, sin sı́mbolos funcionales y la suposición del mundo cerrado. Los predicados están organizados en taxonomı́as y existen tipos que restringen los valores. Una propiedad de la representación es que se puede usar una representación gráfica, por lo que se pueden realizar inferencias usando técnicas de búsqueda en grafos. La representación gráfica, por otro lado, sugiere diferentes tipos de inferencia basadas en la estructura (gráfica), e.g., similaridad entre conceptos, y también muy importante, la capacidad de heredar información. También ha dado pie a formas de razonamiento (e.g., default) que no aplican en las formas lógicas clásicas (es más fácil desarrollar algoritmos que razonan sobre la estructura que justificar el tipo de razonamiento explicando lo que dice la estructura acerca del mundo). 268 16.4.2 Frames Es una extensión de las redes semánticas. El énfasis es sobre la estructura de los frames, en particular sobre sus atributos, los cuales pueden tener: (i) valores, (ii) defaults, (iii) restricciones y/o (iv) procedimientos asociados. También se tiene una taxonomı́a en donde se puede razonar acerca de subsumsión y disjunción. Aunque ésto puede definirse en lógica, existen procedimientos eficientes en lenguajes de frames. Un ejemplo claro de el balance entre expresividad y tractabilidad es definiendo un lenguaje de frames cuya única diferencia es que uno de ellos considera restricciones en los valores de los atributos y el otro no. La noción de subsumsión se puede hacer en términos de extensión. Un frame subsume a otro cuando todas sus instancias - i.e., sus extenciones - son también instancias del segundo. Determinar subsumsión es un lenguaje sin restricciones en O(n2 ) pero es intratable si añadimos las restricciones. 16.4.3 Conclusiones • no podemos decir que una representación es superior a otra, sólo toman diferentes posturas con respecto al balance entre expresividad y tractabilidad • se deben de seguir buscando representaciones, aunque sean casos especiales de lógica de primer orden, en términos de lo que representan y las estrategias de razonamiento que permiten • usar sistemas hı́bridos con mecanismos de inferencia propias para cada uno • hacer análisis de la forma lógica de las representaciones encontradas • buscar representaciones intermedias entre lógica de primer orden y lógica de predicados 269 16.5 From Micro-Worlds to Knowledge Representation: AI at an Impasse, Hubert L. Dreyfus Desde la escritura de What Computers Can’t Do (Dryfus 72) ha existido un cambio y desarrollo considerable de IA, sin embargo, nada de ésto cambia el eceptisismo del autor hacia el área. El análisis de divide en dos: micro-mundos y representación de conocimiento. A principios de los 70’s en el MIT se desarrollaron varios sistemas trabajando en micro-mundos. 16.5.1 Micro-Mundos 16.5.1.1 SHRDLU Winograd SHRDLU (72) simula un brazo robótico y permite mover objetos a través de un diálogo con el usuario. Lo que caracteriza el perı́odo a principios de los 70’s es el concepto de micro-mundos, dominios que pueden analizarse en forma aislada. El autor argumenta que mientrás este tipo de estrategia ha sido útil en teorı́as fı́sicas no aplica a procesos de inteligencia. La crı́tica principal, es que el sistema no entiende en realidad lo que está haciendo. A los micro-mundos se les tiene que especificar todo el conocimiento y asumir muchas restricciones poco reaslistas. Asumen (los sistemas de micro-mundos) que se pueden analizar dominios aislados y que lo que se aprenda servirá para lograr una verdadera inteligencia artificial. El programa de Winograd no entiende porque no puede tomar en cuenta 270 el singnificado. Los micro-mundos no pueden combinarse para tomar en cuenta el mundo real. 16.5.1.2 SEE Otro ejemplo es el programa SEE de Guzmán Arenas (68) y la extensión de Waltz (72) en visión. La idea de esos programas es analizar escenas de figuras poliédricas haciendo propagación de restricciones acerca de las posibles uniones que existen en este tipo de escenas. Sin embargo, estas restricciones no son generalizables, por lo que se gana al asumir un dominio restringido, se pierde en alcance. No hay duda que es un logro ingenieril, pero es muy poca contribución hacia un la construcción de sistemas inteligentes. El problema está en suponer que el éxito en micro-mundos restringidos y libres de contexto puedan contribuir al entendimiento de la mente. Por otro lado, la precepción parece no estar gobernada en términos de atributos formales. 16.5.1.3 ARCH Otro ejemplo, en ésta lı́nea, es el programa ARCH de Winston (70). El programa aprende descripciones de arcos utilizando ejemplos “cercanos” y descripciones predefinidas. Una de las crı́ticas, es que la definición, selección y peso de los atributos relevantes es la parte más relevante dentro del aprendizaje y es justamente lo que Winston elimina de su sistema. Como los “arcos” pueden definirse de muchas formas, las definiciones que 271 obtiene el sistema no son ni suficientes ni necesarias y dependen del contexto. No se pueden capturar caracterı́sticas contextuales con los atributos libres de contexto de Winston. El progreso en reconocimiento se va a dar hasta que las computadoras tengan capturado en una forma simbólica abstracta lo que los humanos implı́citamente saben, o cuando las computadoras hagan lo que hacen los humanos. En los siguientes 9 años después del trabajo de Winston no se vió mucho avance en el área de aprendizaje y no existe ningúna evidencia empı́rica que las categorı́as pueden representarse de manera formal. Sin embargo, existen algunos dominios en donde las técnicas de IA pueden ser aplicadas, por ejemplo en juegos y donde se han usado los sistemas expertos (e.g., MYCIN, DENDRAL). Sin embargo, debe de quedar claro que estos avances no están más cerca de lograr inteligencia que los avances en micro-mundos. 16.5.2 Represebtación de Conocmiento Durante la segunda mitad de los setentas se empezaron a preocupar más los investigadores de IA en cómo representar conocimiento. En particular, se tenı́a (tiene) la idea de que la inteligencia está determinada por el conocimiento que se tenga. 16.5.2.1 Frames En ’72, Husserl dijo que una de las mayores debilidades de los investigadores de IA era que los programas no podian usar expectativas. En ’74, Minsky propuso una estructura muy similar a lo que habı́a propuesto Husserl para representar situaciones prototı́picas (frames). 272 Durante 20 años Husserl trató de llenar los componentes usando objetos de la vida diaria, para finalemente concluir que la tarea era infinita. Heidegger (sucesor de Husserl), después dijo que el concocimiento dependı́a de cuestiones internas que no estaban bien entendidas. Dryfus piensa que Minsky está embarcado en la misma tarea infinita. El comportamiento inteligente presupone conocimiento cultural. El problema de los frames es que siguen teniendo definiciones con atributos libres de contexto. 16.5.2.2 Scripts La versión de Schank de los frames (scripts) se usaron para entender historias sencillas. Schank inventó un lenguaje basado en descripciones de eventos: ATRANS, PTRANS, INGEST, etc., y con ellos construye escenarios y llena huecos en las historias. El problema es que las primitivas hacen sentido sólo si el contexto ya ha sido interpretado. Lo que normalmente sucede en un script se selecciona y predetermina, pero se deja fuera todo el conocimiento que está atrás de esto, por lo que la historia en realidad no se puede entender. En una historia lo que cuenta como relvante depende de la historia en sı́. 16.5.2.3 KRL Winograd y colaboradores se metieron a la tarea del desarrollo de un nuevo lenguaje basado en frames (KRL), para capturar creencias en descripciones prototı́picas multidimensionales, cuyos aspectos relevantes son función del contexto. Esto permite definir representaciones en términos de otras y tener varias 273 representaciones para un mismo objeto (desde varias perspectivas). Las definiciones de los conceptos evocan ejemplares (exemplars) que poseen ciertas propiedades. Sin embargo existen varios problemas con el enfoque: • El comparar dos prototipos depende del entendimiento que se tenga del contexto para justificar lo que se considera relevante en esa comparación. • Debe de existir un número finito de prototipos con los cuales hacer el apareo • El apareo se da una vez que ya se encontraron los candidatos adecuados, y la selección de esos frames sigue entando sin resolverse • Cómo determinar el contexto actual y el considerar las metas y foco actual es demasiado vago para ser útil • No existe razón para suponer que los sentimientos y habilidades puedan ser capturados en una red de creencias. Todos los proyectos asumen la hipótesis de sistemas fı́sicos simbólicos (physical symbol systems), lo cual limita el campo y no garantiza que vaya a tener éxito. 16.5.3 Conclusiones Lo que sugiere Dreyfus es que los aspectos del pensamiento humano (incluyendo los aspectos no formales) están tan inter-relacionados que no se pueden abstraer sólo los aspectos formalizables y tener algún exito. Básicamente, si existen aspectos no representables entonces no se va a poder lograr ningún avance congnitivo. Durante el periodo referido (70-80) los investigadores en IA se han topado con la representación del contexto, pero lo han tratado como un objeto (su274 posición metafı́sica). No existe ninguna evidencia de porqué la suposición tenga que ser cierta. La especificación de ese contexto asume que aplica si todo lo demás permanece igual, pero todo lo demás e igual no puede especificarse completamente. Existe conocimiento humano que no tiene que representarse (habilidades, prácticas culturales, etc) o posiblemente representarse de manera no formal (imagenes). La organización del conocimiento del mundo es el mayor obstáculo de los investigadores de IA porque asumen que el mundo es un objeto y que nuestras habilidades son conocimiento. Como la inteligencia debe de ser situada, no puede separarse del resto de la vida humana. Pensar que aspectos como habilidades sensorial-motoras, situaciones sociales, información cultural, etc., ser ignoradas al formalizar los aspectos intelectuales en forma de hechos y reglas es altamente poco plausible para el autor. 275