TEMA 3 (parte 2). Representación del Conocimiento Francisco José Ribadas Pena INTELIGENCIA ARTIFICIAL 5 Informática ribadas@uvigo.es 13 de noviembre de 2009 – FJRP ccia [Inteligencia Artificial] – 3.2.2 Lógica de Predicados Mayor expresividad que la lógica de proposiciones En lógica de proposiciones: hecho = proposición Tantas proposiciones como hechos se quieran representar Proposiciones no tienen estructura interna No se puede expresar conocimiento sobre conjuntos de hechos Ejemplo: Mundo de los bloques B C A sobre C B sobre A C ¬sobre B A ¬sobre B C ¬sobre C A ¬sobre A B ... sobre sobre sobre sobre ... ... ... C C B B B A A C → ¬libre → ¬libre → ¬libre → ¬libre C C B B Solución: Lógica de predicados de 1er orden Representa un mundo constituido por objetos (=elementos individuales del dominio) Esos objetos tienen propiedades Existen relaciones entre objetos Se puede generalizar sobre los objetos, sus propiedades y relaciones – FJRP ccia [Inteligencia Artificial] – 1 (a) SINTAXIS ELEMENTOS Términos: Representan objetos del dominio • Constantes: Representan un objeto individual en concreto ◦ notación: cadenas de caracteres, comienzan en mayúsculas ◦ Ejemplos: Juan, M i coche, ... • Funciones: Representan (implı́citamente) un objeto individual que está relacionado con los n objetos que participan en la función ◦ notación: sı́mbolo de función (cadena, comienza con Mays.) con aridad n + n argumentos (términos) entre paréntesis ◦ Ejemplos: P adre de(Juan), Hijo de(P edro, Ana), Coseno(45)... • Variables: Representan objetos sin indicar cuáles referirse a un objeto especı́fico no identificado ◦ Uso: referirse a un conjunto de objetos ◦ notación: cadenas de caracteres en minúsculas ◦ Ejemplos: x, y, padre, hijo, ... Predicados: Representan una propiedad de un término (si aridad 1) o relaciones entre k términos (si aridad k > 1) notación: cadenas de caracteres + k términos (variables, constantes, funciones) entre paréntesis • Átomos: fórmulas bien formadas (f.b.f.) compuestas por un único predicado • Literales: Átomo o negación de un átomo. Ejemplos: Asesina(Juan, x), Es alto(Juan), V ive con(Juan, P adre de(Juan)), ... – FJRP ccia [Inteligencia Artificial] – 2 FÓRMULAS BIEN DEFINIDAS (oraciones lógicas) Formadas a partir de átomos (=predicados) aplicando conectivas lógicas y cuantificadores Conectivas: ∧, ∨, →, ↔, ¬ • IDEM que en lógica proposicional • Ejemplos: Hermano(Juan, Luis)∧Hijo(Luis, P edro) → T io(Juan, P edro) Cuantificadores: (∀, ∃) Permiten expresar propiedades sobre grupos de objetos sin tener que enumerarlos todos • cuantificador universal (∀): ”para todo” ◦ Afirmaciones sobre un conjunto de objetos ◦ ∀x α: afirma que α es cierto para cualquier valor por el que sustituya la variable x ◦ ∀x Hermano(Juan, Luis) ∧ Hijo(Luis, x) → T io(Juan, x) ” Juan es el tio de los hijos de Luis” • cuantificador existencial (∃): ”existe” ◦ Afirmaciones sobre ”algunos” objetos del dominio ◦ ∃x α: afirma que existe al menos un objeto del dominio para el cual α es cierto Alcance del cuantificador: sentencia lógica que le sigue • La variable que sigue al cuantificador está definida en todo el alcance del cuantificador ◦ variables cerradas (ligadas): asociadas a sı́mbolos cuantificadores ◦ variables libres: no cuantificadas • Una f.b.f. con todas las variables ligadas se dice que es una f.b.f. cerrada, si no es ası́ se dirá f.b.f. abierta nota: Lógica de proposiciones = lógica de predicados de orden 0 • los predicados no tienen argumentos (son proposiciones) • no existen constantes, variables, funciones, cuantificadores – FJRP ccia [Inteligencia Artificial] – 3 (b) SEMÁNTICA Representamos un mundo donde hay: Un no infinito de objetos individuales representados por sı́mbolos de constantes y variables • Pueden ser entidades concretas (personas, cosas) o abstractas (números, eventos) Un no infinito de objetos definidos en función de otros objetos, representados por sı́mbolos de función Relaciones entre los objetos del dominio, representadas por sı́mbolos de predicado • Si la aridad es 1, se habla de propiedades de objetos INTERPRETACIONES: Una interpretación establece las relaciones anteriores entre los sı́mbolos de la lógica y los elementos del mundo real • asocia a las constantes objetos del mundo • asocia a las funciones relaciones funcionales entre objetos • asocia a los predicados relaciones entre objetos Más compleja que en lógica de proposiciones – FJRP ccia [Inteligencia Artificial] – 4 dominio de una interpretación: Conjunto de objetos del mundo que se manejan en una interpretación • Formalmente: Dada una conceptualización formada por: ◦ U : universo de discurso (conj. de individuos/objetos) ◦ R: conj. finito de relaciones entre objetos de U ◦ F : conj. finito de funciones que asocian a 1 objetos de U con 1 o más objetos de U Una interpretación i es una función que asocia sı́mbolos del lenguaje con elementos del la conceptualización verificando: ◦ Si c es un sı́mbolo de constante, i(c) ∈ U ◦ Si P es un sı́mbolo de predicado de aridad k, i(P ) ⊆ U k ◦ Si f es un sı́mbolo de función de aridad k, i(f ) = U k −→ U Conceptualmente se pueden definir estas relaciones sobre U extensionalmente, enumerando en forma de tuplas, los objetos del mundo real que participan en ellas Ejemplo: – FJRP ccia [Inteligencia Artificial] – 5 SATISFACTIBILIDAD Asignación de variables(A): Función que asina a objetos de U con las variables de una f.b.f. Los átomos (predicados) pueden tener variables. Sólo se pueden asignar valores de verdad a una fórmula atómica si todas sus variables están asignadas El valor de verdad de un átomo con todas sus variables asignadas, es verdadero si y sólo si los objetos del dominio cumplen la relación que representa ese predicado → el valor de verdad de una interpretación i depende de la asignación de variables considerada Para las f.b.f. no atómicas, su valor de verdad se obtiene combinando valores de verdad de acuerdo a las tablas de verdad de las conectivas (idem que lóg. proposiciones) y al significado de los cuantificadores ∀x α : será V si α es V en cq. asignación de la variable x ∃x α : será V si α es V en al menoa 1 asignación de la var. x interpretación (i) ⇒ La asignación de verdad es relativa a: asignac. de variables (A) nota: Una f.b.f. puede ser V o F en una misma conceptualización dependiendo de la interpretación y la asignación de variables Def.:sactisfactibilidad En una conceptualización, una interpretación i y una asignación de variables A, satisfacen una f.b.f. Ψ si hacen V a esa f.b.f. Notación: |=iA Ψ (”Ψ se satisface para i y A”) • Ψ es satisfactible si y sólo si ∃ i y ∃ A tales que |=iA Ψ • Ψ es válida si y sólo si ∀ i y ∀ A tales que |=iA Ψ Una f.b.f. válida sin variables se denomina tautologı́a Extensión a conjuntos de f.b.f. Φ = {Ψ1, ..., Ψn} idem que en lógica proposicional – FJRP ccia [Inteligencia Artificial] – 6 MODELOS Una interpretación i es modelo de Ψ (respectivamente de Φ) si Ψ se satisface con esa i para todas las posibles asignaciones de variables Notación: |=i Ψ modelo mı́nimo: Ningún subconjunto de esa interpretación es un modelo conclusión: Inaplicable tabla de verdad exhaustiva como mecanismo de evaluación EQUIVALENCIA E IMPLICACIÓN LÓGICA Ψ1 y Ψ2 son lógicamente equivalentes si sus valores de verdad son idénticos bajo todas las interpretaciones y asignaciones de variables. Ψ1 ≡ Ψ2 Implicación lógica Φ |= Ψ si y sólo si ∀ interpretación i y ∀ asignación A para las cuales se satisface Φ, también se satisface Ψ Φ |= Ψ sii Φ |=iA Ψ ∀i ∀A Equivalencias Lógicas (sobre cuantificadores) ¬(∀x α) ≡ ∃x ¬α Leyes de DeMorgan: ¬(∃x α) ≡ ∀x ¬α ∀ ≈ conjunción infinita, ∃ ≈ disyunción infinita ∀x α ≡ ∀y α Renombrado de variables: ∃x α ≡ ∃y α ∀x∀y α ≡ ∀y∀x α ≡ ∀x, y α Ordenación cuantificadores: ∃x∃y α ≡ ∃y∃x α ≡ ∃x, y α – FJRP ccia [Inteligencia Artificial] – 7 (c) REGLAS DE INFERENCIA Reglas inferencia de lógica proposicional siguen siendo válidas Se deben generalizar para manejar variables Existen nuevas reglas de inferencia para manejar cuantificadores SUSTITUCIÓN sust(Θ, α) representa a la f.b.f. resultado de aplicar la sustitución Θ a la f.b.f. α • Una sustitución es un conjunto ordenado de pares de términos (termino, termino), donde al menos uno de ellos es un sı́mbolo de variable Ejemplo: Θ = {x/Juan, y/Ana, z/P adre de(Juan), ...} • Una sustitución reemplaza en α el primer término de cada par de la lista por el término asociado. • Los reemplazos se realizan iterativamente de forma ordenada REGLAS INFERENCIA CUANTIFICADORES eliminación del universal (generaliza introd. de la conjunción) Dada una f.b.f. α, una variable v y un término g (constante o función): ∀v α sust({v/g}, α) Ejemplo: Usando la sustitución {x/BillGates} ∀x T ieneDinero(x) → EsRico(x) T ieneDinero(BillGates) → EsRico(BillGates) – FJRP ccia [Inteligencia Artificial] – 8 introducción del existencial (generaliza introd. de la disyunción) Dada una f.b.f. α, una variable v no presente en α y un término g presente en α: α ∃v sust({g/v}, α) Ejemplo: Usando la sustitución {Juan/x} Casados(Juan, Ana) ∃x Casados(x, Ana) ” hay alguien casado con Ana” nota: Ambos son sólidos (correctos) GENERALIZACIÓN MODUS PONENS Siendo pi, qi y r literales y Θ una sustitución que asegure sust(Θ, pi) = sust(Θ, qi) ∀i (todos los pi unifican con los qj ) p1, p2, ..., pn q1 ∧ q2 ∧ ... ∧ qn → r sust(Θ, r) Tenemos n literales + 1 implicación con n antecedentes. Si hay una sustitución que unifique los n literales con los n antecedentes, obtenemos el resultado de aplicar la sustitución sobre el consecuente. Ejemplo: Mediante la sustitución Θ = {x/Juan, y/Ana} Hombre(Juan), M ujer(Ana), Liados(Juan.Ana) ∀x∀y Hombre(x) ∧ M ujer(y) ∧ Liados(x, y) → Casados(x, y) Casados(Juan, Ana) [= sust(Θ, Casados(x, y))] – FJRP ccia [Inteligencia Artificial] – 9 RESOLUCIÓN EN LÓGICA DE PREDICADOS Unificación • Procedimiento sintáctico mediante el cual, dadas dos f.b.f. α y β se encuentra una sustitución Θ que aplicada sobre ellas, ambas resultan idénticas, esto es unif icador(α, β) = Θ tal que sust(Θ, α) = sust(Θ, β) • Θ se denomina unificador de las 2 f.b.f. α y β • En caso de no existir un unificador el algoritmo falla • Unificador más general (m.g.u.) ◦ El m.g.u. de α y β es aquel unificador Θ tal que cualquier otro unificador σ podrá obtenerse a partir de σ mediante una sustitución τ , esto es σ = sust(τ, Θ) → cualquier otro unificador se puede construir a partir del m.g.u. Regla Resolución en lógica de predicados • Siendo pi y qj dos literales para los cuales existe un unificador de la forma Θ = unif icador(pi, ¬qj ) p1 ∨ p2 ∨ ... ∨ pi ∨ ... ∨ pn q1 ∨ q2 ∨ ... ∨ qj ∨ ... ∨ qm sust(Θ, p1 ∨ ... ∨ pi−1 ∨ pi+1 ∨ ... ∨ pn ∨ q1 ∨ ... ∨ qj−1 ∨ qj+1 ∨ ... ∨ qm ) – FJRP ccia [Inteligencia Artificial] – 10 PROCEDIMIENTO DE REFUTACIÓN Al igual que en lóg. proposicional, el conocimiento tiene que estar representado en forma de cláusulas (F.N.C.) • Conjunción de disyunciones (claúsulas) • Sólo hay cuantificadores universales Paso a Forma Normal Conjuntiva 1. Eliminar implicaciones α → β ≡ ¬α ∨ β • Usar relaciones: α ↔ β ≡ (α → β) ∧ (β → α) 2. Reducir ámbito de las negaciones 8 < ¬∀xα ≡ ∃x¬α • Usar DeMorgan + doble neg.: ¬∃xα ≡ ∀x¬α : ¬¬α ≡ α 3. Independizar variables cuantificadas (renombrar variables ligadas) • Asegurar que cada sı́mbolo de variable esté ligado a un único cuantificador • Ejemplo: ∀xP (x) ∧ ∃xQ(x) ≡ ∀x1P (x1) ∧ ∃x2Q(x2) 4. Eliminar cuantificadores existenciales (skolemización) • Las ocurrencias de variables cuantificadas existencialmente se sustituyen por: a) Una constante (Sk ) no presente en la f.b.f. si el ∃ aparece al principio de la expresión ∃xP (x) ∧ Q(x) P (Sk ) ∧ Q(Sk ) {x/Sk } b) Una función (Sk (...)) con tantos argumentos como cuantificadores universales (∀) haya antes del ∃ que cuantifica la variable ∀x∀y∃zP (x)∧Q(y, z) – FJRP ccia [Inteligencia Artificial] – P (x)∧Q(y, Sk (x, y)) {z/Sk (x, y)} 11 5. Mover cuantificadores universales a la izquierda de la f.b.f. 6. Reordenar f.b.f. para obtener FNC • Distribuir ∨ sobre ∧: α ∨ (β ∧ γ) = (α ∨ β) ∧ (α ∨ γ) 7. Abandonar cuantificadores universales 8. Renombrar variables (si es necesario) para que ninguna variable aparezca en más de una cláusula Ejemplo 1: Pasar {∀xP (x)} → {∀x∀y∃z[P (x, y, z) → ∀wR(x, y, z, w)]} a FNC 1. 2. 3. 4. 5. 6. 7. 8. {¬∀xP (x)} ∨ {∀x∀y∃z[¬P (x, y, z) ∨ ∀wR(x, y, z, w)]} {∃x¬P (x)} ∨ {∀x∀y∃z[¬P (x, y, z) ∨ ∀wR(x, y, z, w)]} {∃x1 ¬P (x1 )} ∨ {∀x2 ∀y∃z[¬P (x2 , y, z) ∨ ∀wR(x2 , y, z, w)]} ¬P (SK1 ) ∨ {∀x2 ∀y[¬P (x2 , y, SK2 (x2 , y)) ∨ ∀wR(x2 , y, SK2 (x2 , y), w)]} ∀x2 , ∀y, ∀w ¬P (SK1 ) ∨ [¬P (x2 , y, SK2 (x2 , y)) ∨ R(x2 , y, SK2 (x2 , y), w)] Nada ¬P (SK1 ) ∨ ¬P (x2 , y, SK2 (x2 , y)) ∨ R(x2 , y, SK2 (x2 , y), w) Nada Ejemplo 2: ∀x[P (x) → ∃x(Q(x) → R(x))] – FJRP ccia [Inteligencia Artificial] – 12 REFUTACIÓN MEDIANTE RESOLUCIÓN (como en lóg. proposicional) 1. Convertir f.b.f. de Φ a FNC 2. Negar f.b.f. Ψ a demostrar y convertir a FNC 3. Unir cláusulas resultantes de Φ y ¬Ψ en Π 4. Aplicar de forma exhaustiva la regla de resolución para lógica de predicados sobre Π. Seleccionar un par de cláusulas con dos átomos p y q tales que unifiquen con Θ = m.g.u.(p, ¬q) Añadir resolvente a Π Parar si: • Se generar la cláusula vacı́a (hay contradicción) → Se verifica: Φ |= Ψ • No hay resolventes nuevos (no contradicción) → Se verifica: Φ |= / Ψ nota: Además de comprobar si una f.b.f. Ψ es consecuencia lógica de Φ o no, la refutación mediante resolución permite ”responder” preguntas mediante las sustituciones que dan lugar a la cláusula vacı́a. – FJRP ccia [Inteligencia Artificial] – 13 Ejemplo: Pasar a FNC la siguiente base de conocimientos 1. 2. 3. 4. 5. 6. Asterix es un galo Los romanos que son amigos de algún galo odian a César Asterix ayudó a Marco Marco es amigo de quien le ayuda Quien odia a algún romano, lucha contra él Marco es romano Comprobar si a partir de este conocimiento es posible demostrar que ’’Marco odia a César’’ mediante refutación. Base de conocimiento (Φ) 1. galo(Asterix) (en FNC) 2. ∀x [romano(x) ∧ (∃y galo(y) ∧ amigo(x, y)) → odia(x, Cesar)] 3. ayuda(Asterix, M arco) (en FNC) 4. ∀x [ayuda(x, M arco) → amigo(M arco, x)] 5. ∀x∃y [romano(y) ∧ odia(x, y) → lucha(x, y)] 6. romano(M arco) (en FNC) Hipótesis (Ψ = odia(M arco, Cesar)) – FJRP ccia [Inteligencia Artificial] – 14 PROPIEDADES PROCEDIMIENTO DE REFUTACIÓN Refutación mediante resolución en lógica de predicados es sólida (correcta) • Si se llega a la cláusula vacı́a (Φ `REFUTACION) entonces Φ |= Ψ. Refutación mediante resolución en lógica de predicados es completa • Si Φ |= Ψ, el procedimiento de refutación por resolución generará la cláusula vacı́a Refutación mediante resolución en lógica de predicados no es decidible • Si Φ |= / Ψ el procedimiento de refutación mediante resolución puede no terminar (”bucle infinito”) → Siempre parará si Φ |= Ψ, pero puede no parar si Φ /|= Ψ • No existe un método que nos pueda decir siempre si Φ |= / Ψ • Se dice que la lógica de proposiciones es semidecidible ◦ Se puede determinar Φ |= Ψ, pero ”a veces” no se puede probar Φ |= / Ψ soluciones: • Renunciar a la solidez o a la completitud • Utilizar un lenguaje de representación menos expresivo → cláusulas de Horn – FJRP ccia [Inteligencia Artificial] – 15 CLÁUSULAS DE HORN Todas las variables están cuantificadas universalmente (∀ implı́cito) Cláusulas que tienen como máximo un literal positivo (sin negar) Todas las variables se suponen cuantificadas universalmente Cláusulas de Horn pueden escribirse como implicaciones • Consecuente: literal atómico positivo • Antecedente: conjunción de literales positivos (DeMorgan) ¬p1 ∨ p2 ∨ ...¬pn ∨ q ≡ p1 ∧ p2 ∧ ... ∧ pn → q Distinguimos • reglas: q ← p1 ∧ p2 ∧ ... ∧ pn • hechos: h ← • objetivos: ← o1 ∧ o2 ∧ ... ∧ ok Regla de resolución para cláusulas de Horn Si b y di unifican mediante Θ = unif icador(b, di), inferimos: b ← a1 ∧ a2 ∧ ... ∧ am (≡ b ∨ ¬a1 ∨ ... ∨ ¬am ) c ← d1 ∧ d2 ∧ ... ∧ dn (≡ c ∨ ¬d1 ∨ ... ∨ ¬dn ) sust(Θ, (c ← d1 ∧ ... ∧ di−1 ∧ a1 ∧ ... ∧ am ∧ di+1 ∧ ... ∧ dn )) Cláusulas de Horn son la base de los intérpretes Prolog Se añaden simplificaciones para mejorar eficiencia • Todas las inferencias se realizan por encadenamiento hacia atrás (desde objetivos a hechos) usando búsqueda en profundidad • El orden de las cláusulas y de los antecedentes dentro de ellas es relevante (establece orden de búsqueda) ◦ Búsqueda en los antecedentes de IZQ a DER ◦ Procesamiento de las cláusulas en orden de definición • Se omite el test de ocurencia (occur check, test de ciclicidad) en la rutina de unificación ◦ Hace unificaciones más eficientes (menos comprobaciones) ◦ Existe la posibilidad de no terminación (sustituciones cı́clicas) • Se omite la negación (si se soporta negación por fallo) – FJRP ccia [Inteligencia Artificial] – 16 3.2.4 Representación del conocimiento en lógica de predicados Fases generales en base de conocimientos la construcción y utilización de una 1. Conceptualización Decidir qué conceptos son relevantes en el dominio → identificar objetos, propiedades y relaciones relevantes Definir un vocabulario para asignar sı́mbolos a los conceptos relevantes → vocabulario de predicados, funciones y constantes Se tratará de construir una ontologı́a: conjunto, normalmente estructurado, de términos relevantes en un dominio 2. Codificación Traducción, de acuerdo al vocabulario, de todo el conocimiento considerado de interés a su representación en lógica de predicados Se construyen los axiomas del dominio (conjunto de f.b.f. Φ) • Fórmulas que se consideran ciertas en el dominio actual (Base de Conocimiento) • Codificar reglas y propiedades generales • Codificar conocimiento especı́fico de partida ◦ Añadir predicados concretos (hechos iniciales) ◦ Los valores de verdad/falsedad de esos predicados deben de estar respaldados por algún tipo de percepción del dominio real representado (sensores, consulta a BD, preguntas al usuario, etc,...) – FJRP ccia [Inteligencia Artificial] – 17 3. Actualización del conocimiento y consulta Durante la ejecución del sistema inteligente • Se ”consulta”/desencadena el procedimiento de inferencia (modus ponens, resolución, ...) para obtener respuestas ◦ Distintas alternativas: Sistemas que sólo usan modus ponens, bien de forma progresiva (razonamiento hacia adelante) o regresiva (razonamiento hacia atrás) Sistemas que sólo usan resolución y refutación Etc,... • Se actualiza el conocimiento → introducir nuevos hechos → modificar hechos existentes Sus valores de verdad deben estar respaldados por el ”mundo real” Pasos comunes a los demás mecanismos de representación del conocimiento En general es un proceso largo, que se suele hacer de forma iterativa → se amplı́a y refina de forma iterativa la representación Suele necesitar la intervención de expertos del dominio (entrevistas, etc...) – FJRP ccia [Inteligencia Artificial] – 18