Inteligencia Artificial Conocimiento y razonamiento 3. Lógica de primer orden Dr. Edgard Iván Benítez Guerrero 1
Lógica de primer orden La lógica proposicional asume que el mundo tiene hechos La lógica de primer orden asume que el mundo contiene: Objetos: personas, casas Relaciones: hermano de, mayor que, parte de, entre, Funciones: suma,.. 2
Sintaxis Constantes: John, 2, Inglaterra,... Predicados: Hermano,>,... Funciones: RaízCuadrada,PiernaIzquierdaDe,... Variables: x,y,a,b,... Conectores:,,,, Igualdad: = Cuantificadores:, 3
Sentenciaatómica Sentencias atómicas predicado(término 1,...,término n ) termino 1 =termino 2 Término Función(término 1,...,término n ) Constante Variable Porejemplo: Hermano(John,Richard) >(Largo(PiernaIzqDe(Richard)),Largo(PiernaIzqDe(John))) 4
Sentencias compuestas Hechas de sentencias atómicas usando conectores S, S1 S2, S1 S2, S1 S2, S1 S2, Ejemplos: Hermano(John,Richard) Hermano(Richard,John) >(1,2) (1,2) >(1,2) >(1,2) 5
Semántica Sentencias son verdaderas con respecto a un modelo y a una interpretación Un modelo contiene objetos (elementos del dominio) y relaciones entre ellos Una interpretación define referentes para Símbolos constantes objetos Símbolos de predicado relaciones Símbolos de función relaciones funcionales Una sentencia atómica predicado(término 1,...,término n ) es verdadera sii los objetos a los que se refieren término 1,...,término n están en la relación a la que se refiere predicado 6
Ejemplo de modelo 7
Cuantificación universal <variables><sentencia> Todas las personas en Inglaterra son listas: x En(x, Inglaterra) Listo(x) x P es verdadera en un modelo m sii P es verdadera con x siendo cada posible objeto del modelo Vagamente hablando, esto es equivalente a la conjunción de todas las posibles instanciaciones de P En(John, Inglaterra) Listo(John) En(Richard, Inglaterra) Listo(Richard) 8
Error común a evitar Típicamente, es el conector principal para Errorcomún:usar comoelconectorde : x En(x, Inglaterra) Listo(x) significa Todas las personas en Inglaterra y todas las personas son listas 9
Cuantificación existencial <variables><sentencia> Alguien en Inglaterra es listo: x En(x, Inglaterra) Listo(x) x P es verdadera en un modelo m sii P es verdadera con x siendo algún posible objeto del modelo Vagamente hablando, equivalente a la disyunción de las instanciaciones de P En(John, Inglaterra) Listo(John) En(Richard, Inglaterra) Listo(Richard)... 10
Otro error común a evitar Típicamente, es el conector principal con Errorcomún:usar comoelconectivoprincipalde : x En(x, Inglaterra) Listo(x) esverdaderasihayalguienquenoestáeninglaterra! 11
Propiedades de los cuantificadores x yeslomismoque y x x yeslomismoque y x x ynoeslomismoque y x x y Ama(x,y) Hayunapersonaqueamaatodosenelmundo y x Ama(x,y) Todaslaspersonasdelmundosonamadasalmenosporunapersona Dualidad de los cuantificadores: cada uno puede ser expresado usando el otro x Gusta(x,Helado) x Gusta(x,Brocoli) x Gusta(x,Helado) x Gusta(x,Brocoli) 12
Igualdad término 1 = término 2 es verdadera en cualquier interpretación sii término 1 y término 2 se refieren al mismo objeto E.g., definición de Hermano en términos de Progenitor: x,y Hermano (x,y) [ (x = y) m,f (m = f) Progenitor(m,x) Progenitor(f,x) Progenitor(m,y) Progenitor(f,y)] 13
Usando lógica de primer orden: el dominio familia Elmaridodeunapersonaesunesposomasculino x,y Marido(x,y) (Masculino(x) Esposo(x,y)) Una madre es el progenitor femenino de una persona m,c Madre(c) = m (Femenino(m) Progenitor(m,c)) Elabueloeselpadredelpadredeuno x,y Abuelo(x,y) z Padre(x,z) Padre(z,y) 14
Instanciación universal (IU) Toda instanciación de una sentencia cuantificada universalmente está implicada por ésta v α Subst({v/g}, α) para cualquier variable v y término aterrizado g E.g., x King(x) Greedy(x) Evil(x) produce: King(John) Greedy(John) Evil(John) King(Richard) Greedy(Richard) Evil(Richard) King(Father(John)) Greedy(Father(John)) Evil(Father(John)) 15
Instanciación existencial (IE) Para cualquier sentencia α, variable v, y símbolo constante k que no aparece en ningún otro lado(constante de Skolem) en la base de conocimiento: v α Subst({v/k}, α) E.g., x Crown(x) OnHead(x,John) produce: Crown(C1) OnHead(C1,John) dadoquec1seaunnuevosímboloconstante 16
Reducción a inferencia proposicional Supongamos que la BC contiene lo siguiente x King(x) Greedy(x) Evil(x) King(John) Greedy(John) Brother(Richard,John) Instanciando la sentencia cuantificada de todas las formas posibles, se obtiene King(John) Greedy(John) Evil(John) King(Richard) Greedy(Richard) Evil(Richard) King(John) Greedy(John) Brother(Richard,John) La nueva BC es reducida a un conjunto de proposiciones King(John), Greedy(John), Evil(John), King(Richard), etc. 17
Problemas con la reducción a lógica proposicional La reducción genera muchas sentencias irrelevantes Por ejemplo, de: x King(x) Greedy(x) Evil(x) King(John) ygreedy(y) Brother(Richard,John) puede verse que Evil(John), pero la reducción produce muchos hechos como Greedy(Richard) que son irrelevantes 18
Unificación Se puede inferir más rápidamente el hecho si se encuentra una sustitución θ tal que King(x) y Greedy(x) empaten con King(John) and Greedy(y) θ ={x/john,y/john} Unificar(α,β)=θsiαθ=βθ p q θ Knows(John,x) Knows(John,Jane) Knows(John,x) Knows(y,OJ) Knows(John,x) Knows(y,Mother(y)) Knows(John,x) Knows(x,OJ) {x/jane}} {x/oj,y/john}} {y/john,x/mother(john)}} {fail} Laestandarizacióndevariableseliminatraslapes,e.g.,Knows(z 17,OJ) 19
Unificación Para unificar Knows(John,x) y Knows(y,z) θ = {y/john, x/z} o bien θ = {y/john, x/john, z/john} El primer unificador es más general que el segundo Para cada par de expresiones unificable hay un unificador más general(umg) que es único respecto al nombramiento de las variables UMG = { y/john, x/z } 20
Algoritmo de unificación 21
Algoritmo de unificación 22
Modus Ponens Generalizado (MPG) p1',p2',,pn',(p1 p2 pn q) qθ donde p i θ = p i θ para todo i Ejemplo: p1' es King(John) p2' es Greedy(y) p1 es King(x) p2 es Greedy(x) θes{x/john,y/john} qesevil(x) qθesevil(john) MPG usado con una base de conocimiento de clausulas determinadas (aquellas que tienen exactamente una literal positiva) Se asume que todas las variables están universalmente cuantificadas 23
Ejemplo de base de conocimiento LaleydeEstadosUnidosdicequeesuncrimenqueun uno de sus ciudadanos venda armas a naciones hostiles. El país Nono, un enemigo de EU, tiene algunos misiles y todos sus misiles fueron vendidos por el Coronel West, quien es ciudadano estadounidense ProbarqueelCoronelWestesuncriminal 24
Base de conocimiento...esuncrimenqueunciudadanodeeuvendaarmasanacioneshostiles: American(x) Weapon(y) Sells(x,y,z) Hostile(z) Criminal(x) Nono tiene misiles, i.e., x Owns(Nono,x) Missile(x): Owns(Nono,M1) and Missile(M1) todos sus misiles fueron vendidos por el coronel West Missile(x) Owns(Nono,x) Sells(West,x,Nono) Los misiles son armas: Missile(x) Weapon(x) UnenemigodeEues hostil : Enemy(x,America) Hostile(x) West,quienesciudadanodeEU American(West) ElpaísNono,unenemigodeEU Enemy(Nono,America) 25
Algoritmo de encadenamiento hacia adelante 26
Encadenamiento hacia adelante 27
Encadenamiento hacia atrás 28
Encadenamiento hacia atrás 29
Programación lógica: Prolog Algoritmo = Lógica + Control Base: encadenamiento hacia atrás con clausulas de Horn Programa=conjuntodeclausulas=cabeza:-literal 1, literal n. criminal(x) :- american(x), weapon(y), sells(x,y,z), hostile(z). Encadenamiento hacia atrás en profundidad primero y de izquierda a derecha Equipado con Predicados aritméticos, e.g., X is Y*Z+3 Predicados que tienen efectos colaterales(e.g., entrada y salida, assert/retract) Suposición del mundo cerrado ("negación como falla") e.g., dado alive(x):- not dead(x). alive(joe) es cierto si dead(joe) falla 30