Inteligencia Artificial Distribuida Unidad 3. Representación del conocimiento Conocimiento en un agente Representa lo que sabe el agente. Lo integra tanto el conocimiento que ha adquirido en experiencias pasadas y que le sirve para hallar soluciones o seleccionar acciones a seguir en cualquier momento, como el conocimiento previo (o inicial) con el que fue programado. El conocimiento permite al agente entender el mundo, lo que los demás agentes tratan de decirles y sus razonamientos internos y explica sus ideas y decisiones a los demás agentes. Hay tres clases de conocimiento a tener en cuenta: -Conocimiento inicial – conocimiento propio o básico del agente una vez que éste existe, y no puede cambiar con el tiempo. -Conocimiento know-that – conocimiento de hechos, o saber qué hacer ante un problema o un conjunto de acciones. Puede cambiar con el tiempo y la experiencia adquirida por el agente. -Conocimiento know-how – conocimiento de cómo actuar o cómo hacer las cosas. Es la habilidad para ejecutar acciones convenientes (dependiendo de la solución del problema) en un mundo cambiante. Se puede definir como la habilidad o potencial de un agente para tomar una acción efectiva, y las destrezas que él demuestra cuando hace cosas que le atribuyen inteligencia. Al igual que el know-that, este tipo de conocimiento puede cambiar con el tiempo y la experiencia adquirida por el agente. Se puede decir que: “Un agente conoce cómo al acanzar a p al realizar la acción a, si el agente tiene el know-that que le indica qué ejecutar a lo que lo lleva a alcanzar a p”. “Un agente conoce cómo ejecutar una acción a, si el agente tienen el know-how qué le indica cómo ejecutar a”. Estructuras de conocimiento y mantenimiento del mismo Los agentes pueden ser considerados como sistemas basados en conocimiento cuya sofisticación depende del SMA. Un agente puede ser clasificado en función de la estructura de conocimiento que emplea: -hecho o creencia -objetivos e intenciones -preferencias -motivaciones -deseos, ente otros Usualmente, un agente adquiere nuevos hechos o creencias como resultado de la recepción de mensajes de otros agentes o del medio ambiente. En un SMA, un agente posee una visión parcial de la situación y del problema qué está siendo resulto. La información que manipula es parcial, incierta o errónea. Por lo que el 1 agente necesita mecanismos para efectuar el mantenimiento de sus bases o para revisar sus creencias cuando adquiera algún conocimiento contradictorio. Habilidades del razonamiento Los agentes por lo general deben razonar sobre los diferentes aspectos de la realidad, deben de tratar con obligaciones, permisos y prohibiciones. Un agente también debe poder: -explorar varias hipótesis antes de tomas una decisión -razonar sobre la base de sus propias creencias, deseos e intenciones -razonar a cerca del comportamiento y conocimiento de otros agentes para cambiar las creencias, y hasta el funcionamiento de otros agentes. Esta característica es deseable en el proceso de negociación de un SMA. En los que respecta al razonamiento de las creencias de otros agentes, la mayoría de sistemas se basan en el modelo de mundos posibles. En este modelo decimos que un agente conoce un hecho, si este hecho es verdadero. Estas situaciones son descritas usando lógica modal proposicional y estructuras Kripke. Un agente no lo conoce que un hecho es verdadero sino que conoce lo que todos conocen. Habilidades de adaptación y aprendizaje Un agente puede tener la necesidad de adaptarse a su ambiente y al funcionamiento de otros agentes. Existen diversas maneras de obtener este comportamiento de un agente. Por ejemplo: haciendo que compartan sus tareas y conocimiento, otro ejemplo: por medio de mecanismos tales como el libre mercado y evolución natural, razonamiento inductivo, etc. Algunas definiciones Agente inteligente – Describe su conocimiento y el ambiente mediante “conocimiento”, trata de incrementar su conocimiento basándose en la experiencia, con la comunicación con otros agentes, incorporación de los resultados como conocimiento nuevo. Base de conocimiento – Forma avanzada de una base de datos que no solo pretende almacenar, recuperar, y modificar grandes cantidades de información, sino también, plasmar elementos de conocimiento (generalmente en forma de hechos y reglas de inferencia), así como la forma en que éste ha de ser utilizado. Creencias – Información sobre el entorno. Componente informativo del agente. Deseos – Algo que el agente quiere conseguir y que por tanto tiene preferencia. Metas del agente. Componente motivacional del agente. Estructura de Kripke -- Una estructura de Kripke es un tipo de máquina de estados finitos no determinista propuesto por Saul Kripke en 1963, utilizado en la comprobación del modelo para representar el comportamiento de un sistema. Se trata básicamente de 2 un grafo cuyos nodos representan los estados accesibles del sistema y cuyas aristas representan las transiciones de estado. Una función asigna el etiquetado de cada nodo a un conjunto de propiedades que tienen en el estado correspondiente. Las lógicas temporales se clasifican tradicionalmente en términos de estructuras de Kripke. Intenciones – Son los objetivos elegidos. Existe un compromiso por parte del agente a conseguir sus intenciones. Componente liberativo del sistema. Es la forma de lograr los objetivos, incluye un modelo de planes para lograr los objetivos. Influyen las creencias. Lógica modal -- Una lógica modal es un sistema formal que intenta capturar el comportamiento deductivo de algún grupo de operadores modales.[1] Los operadores modales son expresiones que califican la verdad de los juicios.[1] Por ejemplo, en la oración "es necesario que 2+2=4", la expresión "es necesario que" es un operador modal que califica de necesaria a la verdad del juicio "2+2=4". En un sentido más restringido, sin embargo, se llama lógica modal al sistema formal que se ocupa de las expresiones "es necesario que" y "es posible que". Este artículo trata exclusivamente sobre este sistema formal. Otros sistemas de lógica modal conocidos son la lógica deóntica, la lógica temporal, la lógica epistémica y la lógica doxástica. (http://es.wikipedia.org/wiki/L%C3%B3gica_modal) Lógica temporal -- La lógica temporal es un tipo de lógica modal usada para describir un sistema de reglas y simbolismos para la representación y el razonamiento sobre proposiciones en las que tiene presencia el factor tiempo. Existe una cierta relación con la lógica modal. Por ejemplo, la sentencia: "Tengo hambre"; aunque su significado es independiente del tiempo, el valor de verdad o falsedad de la misma puede variar con el tiempo en un determinado sistema que incluya acciones de comer; así, en función del sistema, algunas veces será cierta y otras falsa, aunque nunca será cierta y falsa simultáneamente. Algunos sistemas lógicos basados en lógica temporal son: Lógica computacional en árbol (Computational tree logic, CTL), lógica linear temporal (Linear temporal logic, LTL) y Lógica temporal de intervalos (Interval temporal logic, ITL). Lógica de acciones temporal (Temporal Logic of Actions, TLA). (http://es.wikipedia.org/wiki/L%C3%B3gica_temporal) Objetivos – Subconjunto de deseos consistentes entre sí que el agente debe perseguir. Ontología – Conjunto de símbolos o términos junto con su correspondiente interpretación o significado. Ingeniería del conocimiento) conocimiento (Construcción de una base de Está orientada a dar respuestas a las preguntas siguientes: ¿Cómo elicitar conocimientos sobre un entorno? ¿Cómo modelar/estructurar el conocimiento? ¿Cómo usar un lenguaje de representación del conocimiento (LRC) para modelar conocimiento sobre un entorno? 3 Una Base de Conocimientos (BC (otra definición)) es un conjunto de sentencias expresadas en un lenguaje de representación del conocimiento y representa alguna aserción acerca del mundo. Es el componente principal de un agente basado en conocimiento. La palabra aserción tiene varios significados, entre ellos están: - Proposición en que se afirma o da por cierta alguna cosa. - Declaración de que una cosa es cierta. aserto, aseveración. - Acción de afirmar o dar por cierto - Discurso, palabras que afirman o dan por cierto algo Un ingeniero en Conocimientos es alguien que investiga un dominio concreto, aprende que conceptos son los importantes en ese dominio y crea una representación formal de los objetos y relaciones del dominio. Es un experto en la adquisición, modelado y representación del conocimiento, no tiene por qué ser experto en el dominio de la aplicación. Analogía de la Ingeniería del conocimiento con respecto a la programación convencional Ingeniería del conocimiento -Ingeniero del conocimiento -Lenguaje de representación conocimiento -BC -Reglas de inferencia -Inferencia en la BC Lenguaje de programación -Analista/programador del -Lenguaje de programación -Programa -Compilador -Ejecución del programa Un lenguaje de representación del conocimiento (LRC) está compuesto de: - Sentencias – describen las características relevantes del entorno - Inferencia – consiste en sacar conclusiones a partir de esas características - Semántica – relaciona las sentencias LRC con los hechos del entorno Tipos de LRC - Lógicos – lógica de predicados, lógica modal, lógica temporal, lógica difusa - Cognoscitivos – reglas, marcos, TMS, redes bayesianas - Interoperabilidad – KIF, KQML, ACL TMS – sistema de mantenimiento del (http://webdiis.unizar.es/asignaturas/ISBC/IA/~1st-IAIC1.html) razonamiento De todo lo anterior, también se puede decir, que una BC es un conjunto de sentencias en un LRC + un mecanismo de inferencia automática. La BC de un agente contiene los conocimientos del agente sobre su entorno: - conocimiento general del dominio - conocimiento del caso La interacción con la BC se hace para: 4 - Informar (sentencia): añadir nueva información a la BC Preguntar(sentencias): determinar si una sentencia puede inferir a partir de los conocimientos de la BC Proceso de la ingeniería del conocimiento: 1) Identificar la tarea – El ingeniero en Conocimientos (IC) debe delinear el rango de las preguntas que la BC debe soportar y los tipos de hechos que estarán disponibles para cada instancia del problema en particular. La tarea determinará qué conocimiento debe ser representado para conectar las instancias de los problemas a las respuestas. 2) Recopilar el conocimiento relevante – El IC o deberá ser ya un experto en el dominio, o deberá trabajar con expertos reales para extraer el conocimiento que ellos poseen. En esta fase el conocimiento no se representa formalmente. La idea es entender el alcance de las BC, tal como se determino en la tarea, y entender cómo trabaja realmente el dominio. 3) Decidir el vocabulario de los predicados, funciones y constantes – Es decir, traducir los conceptos importantes del nivel del dominio a nombres del nivel lógico. Una vez que se ha realizado las elecciones, el resultado es un vocabulario que se conoce por la ontología del dominio. Ontología indica una teoría concreta sobre la naturaleza del ser o de la existencia de algo. Establece que tipo de cosas existen, pero no determina sus propiedades e interrelaciones específicas. 4) Codificar el conocimiento general acerca del dominio – El IC anota todos los axiomas para todos los términos del vocabulario (axioma - verdad evidente que no requiere demostración, es una expresión lógica). Esto hace que se defina (en todo lo posible) el significado de los términos, permitiendo al experto comprobar el contenido. Si se detectan lagunas en el vocabulario o ideas equivocadas, regresar al paso 3. 5) Codificar una descripción de la instancia de un problema específico – Si la ontología está bien pensada, este paso será fácil. Consiste en escribir sentencias atómicas sencillas acerca de instancias de conceptos que ya son parte de la ontología. Para un agente lógico, las instancias del problema se obtienen de los sensores, para una BC se obtienen de sentencias adicionales de la misma manera que un programa tradicional las obtiene de los datos de entrada. 6) Plantear peticiones al procedimiento de inferencia y obtener respuestas – Fase donde se obtiene la recompensa: podemos dejar al procedimiento de inferencia trabajar sobre los axiomas y los hechos del problema concreto para derivar los hechos que estamos interesados en conocer. 7) Depurar la BC – Rara vez, las respuestas a las peticiones son correctas en un primer intento. Las respuestas serán correctas para la BC como si fueran escritas, asumiendo que procedimiento de inferencia sea sólido, pero no serán las que el usuario estaba esperando. Por ejemplo, si falta un axioma, algunas peticiones no serán respondidas por la BC. Esto podría resultar un proceso de depuración considerable. Axiomas ausentes o que son demasiado débiles se pueden identificar fácilmente fijándonos en los sitios donde la cadena del razonamiento para (se detiene) inesperablemente. Los axiomas incorrectos se pueden identificar por que son enunciados falsos acerca del mundo. La falsedad de estas sentencias se pueden determinar independientemente del resto de la BC. De lo anterior: x NoPatas(x,4) => Mamifereos(x), esto es falso para: reptiles, anfibios, mesa A continuación se da un ejemplo de una función basada en un agente BC: 5 funcion AgenteBC(percepción) devuelve acción inicio Variables estáticas BC, t=0 (tiempo) Decir(BC, construir_sentencia_de_percepción (percepción, t)) Accion Pregunta (BC, PedirAccion(t)) Decir(BC, construir_sentencia_de_acción (acción, t)) t t+1 devolver acción fin Arquitectura de un agente basado en conocimientos Percepción Informar(percepción) Preguntar(x) Selección de acciones {x/respuesta} Base de conocimiento Informar(acción) Ejecutar acción Acción Compartir el conocimiento Modelo de representación de el conocimiento común - representación de conocimiento común: ontología - lenguaje de comunicación común: KQML, KIF, ACL FIPA (Foundation for Intelligent Physical) y KSE (Knowdlegde Sharing Effort ARPA) están trabajando en estas representaciones. Algunos lenguajes, estándares, especificaciones y protocolos de interacción: -Interlingua -KIF (Knowledge Interchange Formalism) -KRSS (Knowledge Representation System Specification) -SRKB (Shared, Reusable Knowledge Bases) -KQML -ACL www.cs.umbc.edo/kse www.fipa.org www.omg.org 6