programación para la inteligencia artificial ...programaciónparalainteligenciaartificial...

101
Programación para la Inteligencia Artificial Programación Lógica Dr. Alejandro Guerra-Hernández Universidad Veracruzana Centro de Investigación en Inteligencia Artificial Sebastián Camacho 5, Xalapa, Ver., México 91000 mailto:[email protected] https://www.uv.mx/personal/aguerra/pia Maestría en Inteligencia Artificial 2018 Dr. Alejandro Guerra-Hernández (UV) Programación para la Inteligencia Artificial MIA 2018 1 / 101

Upload: others

Post on 03-Jul-2020

15 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Programación para la Inteligencia Artificial ...ProgramaciónparalaInteligenciaArtificial ProgramaciónLógica Dr.AlejandroGuerra-Hernández Universidad Veracruzana CentrodeInvestigaciónenInteligenciaArtificial

Programación para la Inteligencia ArtificialProgramación Lógica

Dr. Alejandro Guerra-Hernández

Universidad VeracruzanaCentro de Investigación en Inteligencia Artificial

Sebastián Camacho 5, Xalapa, Ver., México 91000mailto:[email protected]

https://www.uv.mx/personal/aguerra/pia

Maestría en Inteligencia Artificial 2018

Dr. Alejandro Guerra-Hernández (UV) Programación para la Inteligencia Artificial MIA 2018 1 / 101

Page 2: Programación para la Inteligencia Artificial ...ProgramaciónparalaInteligenciaArtificial ProgramaciónLógica Dr.AlejandroGuerra-Hernández Universidad Veracruzana CentrodeInvestigaciónenInteligenciaArtificial

Lógica de Primer Orden Introducción

Objetivo

I A la programación lógica le concierne el uso de la Lógica de PrimerOrden para representar y resolver problemas.

I Usamos una lógica de primer orden restringida a cláusulas de Horn yresolución-SLD [2].

I Hoy revisaremos algunos conceptos preliminares de la Lógica dePrimer Orden, necesarios para formalizar los conceptos citados.

Dr. Alejandro Guerra-Hernández (UV) Programación para la Inteligencia Artificial MIA 2018 2 / 101

Page 3: Programación para la Inteligencia Artificial ...ProgramaciónparalaInteligenciaArtificial ProgramaciónLógica Dr.AlejandroGuerra-Hernández Universidad Veracruzana CentrodeInvestigaciónenInteligenciaArtificial

Lógica de Primer Orden Introducción

Representación

I Cuando describimos situaciones de nuestro interés, usamosenunciados declarativos.

I Expresiones del lenguaje natural que son o bien verdaderas, o bienfalsas (a diferencia de interrogativas, admirativas, etc.).

I Las proposiciones representan hechos que se dan o no en la realidad.I La Lógica de Primer Orden tienen un compromiso ontólogico más

fuerte [3], donde la realidad implica además, objetos y relacionesentre ellos.

Dr. Alejandro Guerra-Hernández (UV) Programación para la Inteligencia Artificial MIA 2018 3 / 101

Page 4: Programación para la Inteligencia Artificial ...ProgramaciónparalaInteligenciaArtificial ProgramaciónLógica Dr.AlejandroGuerra-Hernández Universidad Veracruzana CentrodeInvestigaciónenInteligenciaArtificial

Lógica de Primer Orden Introducción

Razonamiento

I Consideren los siguientes enunciados declarativos:1. Julia es madre y Luis es hijo de Julia.2. Toda madre ama a sus hijos.

I Conociéndolas es posible inferir:3. Julia ama a Luis.

I Para ello asumimos un conjunto de reglas de inferencia.I Ejemplo: Modus Ponens

P,P → QQ (M.P.)

Dr. Alejandro Guerra-Hernández (UV) Programación para la Inteligencia Artificial MIA 2018 4 / 101

Page 5: Programación para la Inteligencia Artificial ...ProgramaciónparalaInteligenciaArtificial ProgramaciónLógica Dr.AlejandroGuerra-Hernández Universidad Veracruzana CentrodeInvestigaciónenInteligenciaArtificial

Lógica de Primer Orden Introducción

Componentes de un Sistema Formal

Sistema Formal

Sintáxis

Semantica

Alfabeto

Reglas sintácticas

Teoría del Modelo

Teoría de PruebaAxiomas

Reglas de Inferencia

Universo de Discurso

Intepretación

Dr. Alejandro Guerra-Hernández (UV) Programación para la Inteligencia Artificial MIA 2018 5 / 101

Page 6: Programación para la Inteligencia Artificial ...ProgramaciónparalaInteligenciaArtificial ProgramaciónLógica Dr.AlejandroGuerra-Hernández Universidad Veracruzana CentrodeInvestigaciónenInteligenciaArtificial

Lógica de Primer Orden Lenguaje (informal)

El mundo de los bloques [1]

Mesa

B

A

C

D

E

Brazo robótico

I Necesitaremos símbolospara:I ObjetosI RelacionesI FuncionesI Variables

Dr. Alejandro Guerra-Hernández (UV) Programación para la Inteligencia Artificial MIA 2018 6 / 101

Page 7: Programación para la Inteligencia Artificial ...ProgramaciónparalaInteligenciaArtificial ProgramaciónLógica Dr.AlejandroGuerra-Hernández Universidad Veracruzana CentrodeInvestigaciónenInteligenciaArtificial

Lógica de Primer Orden Lenguaje (informal)

Universo de discurso

Mesa

B

A

C

D

E

Brazo robótico

I Se denota como U y es elconjunto de todos objetos sobrelos cuales queremos expresarnos.

I Para el mundo de los bloques:

U = {a, b, c, d , e, brazo,mesa}

I Seguiré la notación usada porProlog, las constantes soncadenas que inician conminúscula.

Dr. Alejandro Guerra-Hernández (UV) Programación para la Inteligencia Artificial MIA 2018 7 / 101

Page 8: Programación para la Inteligencia Artificial ...ProgramaciónparalaInteligenciaArtificial ProgramaciónLógica Dr.AlejandroGuerra-Hernández Universidad Veracruzana CentrodeInvestigaciónenInteligenciaArtificial

Lógica de Primer Orden Lenguaje (informal)

Funciones

Mesa

B

A

C

D

E

Brazo robótico

I Son relaciones especiales entrelos miembros de U . Mapean unconjunto de objetos de entradaa un objeto único de salida.

I La función parcial sombrero ={(b, a), (c, d), (d , e)}:

sombrero(b) 7→ a

I Base funcional es el conjuntode todas las funcionesconsideradas.

Dr. Alejandro Guerra-Hernández (UV) Programación para la Inteligencia Artificial MIA 2018 8 / 101

Page 9: Programación para la Inteligencia Artificial ...ProgramaciónparalaInteligenciaArtificial ProgramaciónLógica Dr.AlejandroGuerra-Hernández Universidad Veracruzana CentrodeInvestigaciónenInteligenciaArtificial

Lógica de Primer Orden Lenguaje (informal)

Predicados

I Denotan relaciones entre losmiembros de U . Mapean a falso overdadero.

I El predicadosobre = {(a, b), (d , c), (e, d)}:

sobre(a, b) 7→ true

I El predicado libre = {a, e}:

libre(d) 7→ false

I Base relacional es el conjunto detodos los predicados considerados.

Mesa

B

A

C

D

E

Brazo robótico

Dr. Alejandro Guerra-Hernández (UV) Programación para la Inteligencia Artificial MIA 2018 9 / 101

Page 10: Programación para la Inteligencia Artificial ...ProgramaciónparalaInteligenciaArtificial ProgramaciónLógica Dr.AlejandroGuerra-Hernández Universidad Veracruzana CentrodeInvestigaciónenInteligenciaArtificial

Lógica de Primer Orden Lenguaje (informal)

Predicados y Funciones

Mesa

B

A

C

D

E

Brazo robótico

I sobre = base = {(a, b), . . . }I Los predicados pueden verse

como funciones booleanas:

sobre(a, b) 7→ true

I Las funciones en este contexto,tienen su codomino en algúnsubconjunto de U :

base(a) 7→ b

Dr. Alejandro Guerra-Hernández (UV) Programación para la Inteligencia Artificial MIA 2018 10 / 101

Page 11: Programación para la Inteligencia Artificial ...ProgramaciónparalaInteligenciaArtificial ProgramaciónLógica Dr.AlejandroGuerra-Hernández Universidad Veracruzana CentrodeInvestigaciónenInteligenciaArtificial

Lógica de Primer Orden Lenguaje (informal)

Extensión de un predicado

I Para universos de discurso finitos, existe un límite superior en elnúmero posible de predicados n-arios.

I Para un universo de discurso de cardinalidad b , existen bn distintasn-tuplas.

I Cualquier predicado n-ario es un subconjunto de estas bn tuplas.I Por lo tanto, un predicado n-ario debe corresponder a uno de máximo

2(bn) conjuntos posibles.

Dr. Alejandro Guerra-Hernández (UV) Programación para la Inteligencia Artificial MIA 2018 11 / 101

Page 12: Programación para la Inteligencia Artificial ...ProgramaciónparalaInteligenciaArtificial ProgramaciónLógica Dr.AlejandroGuerra-Hernández Universidad Veracruzana CentrodeInvestigaciónenInteligenciaArtificial

Lógica de Primer Orden Lenguaje (informal)

Variables y cuantificadores

I Toman valores de U .I El cuantificador “para todo” (∀)

expresa hechos acerca de todos losobjetos en U , sin necesidad deenumerarlos:

∀X libre(X )⇐ . . .

I El cuantificador “existe” (∃) expresa laexistencia de un objeto en U concierta propiedad en partícular:

∀X ∃Y ocupado(X )⇐ sobre(Y ,X )

Mesa

B

A

C

D

E

Brazo robótico

Dr. Alejandro Guerra-Hernández (UV) Programación para la Inteligencia Artificial MIA 2018 12 / 101

Page 13: Programación para la Inteligencia Artificial ...ProgramaciónparalaInteligenciaArtificial ProgramaciónLógica Dr.AlejandroGuerra-Hernández Universidad Veracruzana CentrodeInvestigaciónenInteligenciaArtificial

Lógica de Primer Orden Sintaxis

Alfabeto de la Lógica de Primer Orden

Const El conjunto de símbolos de constantes;Var El conjunto de símbolos de variables;Pred El conjunto de símbolos de predicados;Func El conjunto de símbolos funcionales (Const ⊂ Func);¬ El operador monario de negación;∨ El operador binario de disyunción;∀ El símbolo de cuantificación universal;() Los paréntesis.

Dr. Alejandro Guerra-Hernández (UV) Programación para la Inteligencia Artificial MIA 2018 13 / 101

Page 14: Programación para la Inteligencia Artificial ...ProgramaciónparalaInteligenciaArtificial ProgramaciónLógica Dr.AlejandroGuerra-Hernández Universidad Veracruzana CentrodeInvestigaciónenInteligenciaArtificial

Lógica de Primer Orden Sintaxis

Reglas sintácticas (términos)

1. Si α ∈ Const entonces α ∈ Term;2. Si α ∈ Var , entonces α ∈ Term;3. Si α/n ∈ Func, entonces α(φ1, . . . , φn) ∈ Term si y sólo siφ1≤i≤n ∈ Term.

4. Ninguna otra expresión es un término.

I Ejemplos:I a, b, c,mesa, . . .I X ,Y ,Z ,Cubo1,Cubo2, . . .I base(b), sombrero(X ), . . .

Dr. Alejandro Guerra-Hernández (UV) Programación para la Inteligencia Artificial MIA 2018 14 / 101

Page 15: Programación para la Inteligencia Artificial ...ProgramaciónparalaInteligenciaArtificial ProgramaciónLógica Dr.AlejandroGuerra-Hernández Universidad Veracruzana CentrodeInvestigaciónenInteligenciaArtificial

Lógica de Primer Orden Sintaxis

Reglas sintácticas (fórmulas bien formadas)

1. Si α/n ∈ Pred , entonces α(φ0, . . . , φn) ∈ LFOL si y sólo siφi ∈ Term, i = 0 . . . n;

2. Si α ∈ LFOL, entonces ¬α ∈ LFOL;3. Si α ∈ LFOL y β ∈ LFOL, entonces (α ∨ β) ∈ LFOL

4. Si α ∈ LFOL y X ∈ Vars es una variable que ocurreen α, entonces ∀X α ∈ LFOL

5. Nada más es una fórmula bien formada (fbf).

I Ejemplos:I sobre(a, b), libre(X ), ama(X , hijo(X )), . . .I ¬libre(a),¬libre(Y ), . . .I sobre(X ,Y ) ∧ ¬libre(X ), . . .I ∀X ama(X , hijo(X )), . . .

Dr. Alejandro Guerra-Hernández (UV) Programación para la Inteligencia Artificial MIA 2018 15 / 101

Page 16: Programación para la Inteligencia Artificial ...ProgramaciónparalaInteligenciaArtificial ProgramaciónLógica Dr.AlejandroGuerra-Hernández Universidad Veracruzana CentrodeInvestigaciónenInteligenciaArtificial

Lógica de Primer Orden Sintaxis

Definiciones auxiliares

Conjunción. (α ∧ β) =def ¬(¬α ∨ ¬β);Implicación material. (α→ β) =def (¬α ∨ β);Equivalencia material. (α ≡ β) =def ((α→ β) ∧ (β → α));

Falso. f =def ¬α ∧ α;Verdadero. t =def ¬f

Cuantificador existencial. ∃X α =def ¬(∀X ¬α)

Dr. Alejandro Guerra-Hernández (UV) Programación para la Inteligencia Artificial MIA 2018 16 / 101

Page 17: Programación para la Inteligencia Artificial ...ProgramaciónparalaInteligenciaArtificial ProgramaciónLógica Dr.AlejandroGuerra-Hernández Universidad Veracruzana CentrodeInvestigaciónenInteligenciaArtificial

Lógica de Primer Orden Sintaxis

Términos BNF

I Un término se define como:

t ::= x | c | f (t, . . . , t)

donde x ∈ Var ; c ∈ Func tal que |c| = 0; y f ∈ Func tal que |f | > 0.

Dr. Alejandro Guerra-Hernández (UV) Programación para la Inteligencia Artificial MIA 2018 17 / 101

Page 18: Programación para la Inteligencia Artificial ...ProgramaciónparalaInteligenciaArtificial ProgramaciónLógica Dr.AlejandroGuerra-Hernández Universidad Veracruzana CentrodeInvestigaciónenInteligenciaArtificial

Lógica de Primer Orden Sintaxis

Fórmulas bien formadas BNF

I Las fbf del lenguaje de la Lógica de Primer Orden se construye apartir de las variables Var , los functores Func y los predicados Predcomo sigue:

φ ::= P(t1, . . . , tn) | ¬(φ) | (φ ∧ φ) | (φ ∨ φ) | (φ→ φ) | (∀x φ) | (∃x φ)

donde P ∈ Pred es un símbolo de predicado de aridad n ≥ 1; tidenota términos; y x ∈ Var .

Dr. Alejandro Guerra-Hernández (UV) Programación para la Inteligencia Artificial MIA 2018 18 / 101

Page 19: Programación para la Inteligencia Artificial ...ProgramaciónparalaInteligenciaArtificial ProgramaciónLógica Dr.AlejandroGuerra-Hernández Universidad Veracruzana CentrodeInvestigaciónenInteligenciaArtificial

Lógica de Primer Orden Sintaxis

Notación extra

I En una fbf de la forma ∀X α, se dice que la fbf α está bajo el alcancedel cuantificador ∀X .

I En tal caso, se dice que la ocurrencia de X en α está acotada, encaso contrario se dice que la ocurrencia de la variable es libre.

I Ejemplo. En ∃X sobre(X ,Y ) la variable X está acotada, mientras queY está libre.

I Un término sin variables se conoce como término de base.I Ejemplo. sobre(a, b).

Dr. Alejandro Guerra-Hernández (UV) Programación para la Inteligencia Artificial MIA 2018 19 / 101

Page 20: Programación para la Inteligencia Artificial ...ProgramaciónparalaInteligenciaArtificial ProgramaciónLógica Dr.AlejandroGuerra-Hernández Universidad Veracruzana CentrodeInvestigaciónenInteligenciaArtificial

Lógica de Primer Orden Interpretaciones y Modelos

Interpretación

I Para expresar que al menos hay un bloque que no tiene nada encima,escribimos: ∃X bloque(X ) ∧ libre(X ).

I Cuando usamos cuantificadores siempre tenemos en mente al U , eneste caso {a, b, c, d , e, brazo,mesa}.

I Una interpretación de esta expresión es un subconjunto de U tal quelos miembros de ese subconjunto satisfacen el significado esperado dela expresión. En este caso {a, e}.

Dr. Alejandro Guerra-Hernández (UV) Programación para la Inteligencia Artificial MIA 2018 20 / 101

Page 21: Programación para la Inteligencia Artificial ...ProgramaciónparalaInteligenciaArtificial ProgramaciónLógica Dr.AlejandroGuerra-Hernández Universidad Veracruzana CentrodeInvestigaciónenInteligenciaArtificial

Lógica de Primer Orden Interpretaciones y Modelos

Teoría del modelo

I Para obtener un modelo para el lenguaje LFOL formamos el parM = 〈D,V 〉, donde D es el universo de discurso y la interpretación Ves una función, tal que:I Para cualquier predicado α de aridad n ≥ 1, V (α) regresa las n-tuplas

que corresponden a la interpretación esperada del predicado.I Para una constante, la función V regresa la misma constante, ej.

V (c) = c.I Algunas veces la expresión V (α) se abrevia αV .

Dr. Alejandro Guerra-Hernández (UV) Programación para la Inteligencia Artificial MIA 2018 21 / 101

Page 22: Programación para la Inteligencia Artificial ...ProgramaciónparalaInteligenciaArtificial ProgramaciónLógica Dr.AlejandroGuerra-Hernández Universidad Veracruzana CentrodeInvestigaciónenInteligenciaArtificial

Lógica de Primer Orden Interpretaciones y Modelos

Interpretación para el mundo de bloques

aV = abV = bcV = cdV = deV = e

sobreV = {(a, b), (e, d), (d , c)}enLaMesaV = {b, c}

libreV = {a, e}porEncimaV = {(a, b), (e, d), (e, c), (d , c)}

Mesa

B

A

C

D

E

Brazo robótico

Dr. Alejandro Guerra-Hernández (UV) Programación para la Inteligencia Artificial MIA 2018 22 / 101

Page 23: Programación para la Inteligencia Artificial ...ProgramaciónparalaInteligenciaArtificial ProgramaciónLógica Dr.AlejandroGuerra-Hernández Universidad Veracruzana CentrodeInvestigaciónenInteligenciaArtificial

Lógica de Primer Orden Semántica

Interpretación y asignación de variables

I Una interpretación V , con respecto a un dominio de discurso D, esuna función que satisface las siguientes propiedades:I Si α ∈ Const, entonces V (α) = α;I Si α/n ∈ Pred , tal que n ≥ 1, entonces V (α) ⊆ Dn.

I Ejemplo: libreV ⊂ {a, b, c, d , e,mesa,mano}.I Ejemplo: sobreV ⊂ D × D.I Decimos que U es una asignación de variables basada en el modelo

M = 〈D,V 〉 si para todo α ∈ Var , U(α) ∈ D.

Dr. Alejandro Guerra-Hernández (UV) Programación para la Inteligencia Artificial MIA 2018 23 / 101

Page 24: Programación para la Inteligencia Artificial ...ProgramaciónparalaInteligenciaArtificial ProgramaciónLógica Dr.AlejandroGuerra-Hernández Universidad Veracruzana CentrodeInvestigaciónenInteligenciaArtificial

Lógica de Primer Orden Semántica

Asignación de términos

I La asignación de términos T , dadas la interpretación V y laasignación de variables U, es un mapeo de términos a objetos deluniverso de discurso que se define como sigue:I Si α ∈ Const, entonces TVU(α) = V (α).I Si α ∈ Var , entonces TVU(α) = U(α).I Si α ∈ Term y es de la forma α(φ1, . . . , φn); y V (α) = g ; y

TVU(φi) = xi , entonces TVU(α(φ1, . . . , φn)) = g(x1, . . . , xn).

Dr. Alejandro Guerra-Hernández (UV) Programación para la Inteligencia Artificial MIA 2018 24 / 101

Page 25: Programación para la Inteligencia Artificial ...ProgramaciónparalaInteligenciaArtificial ProgramaciónLógica Dr.AlejandroGuerra-Hernández Universidad Veracruzana CentrodeInvestigaciónenInteligenciaArtificial

Lógica de Primer Orden Semántica

Satisfacción

I El hecho de que el enunciado α sea satisfecho bajo una interpretaciónV y una asignación U, se escribe:

|=V α[U]

I Entonces podemos escribir M |= VU(α) para expresar que α esverdadera en el modelo M = 〈D,V 〉 cuando las variables en α tomanvalores de acuerdo a la asignación U.

I Ejemplo. M |= VU(sobre(X , b)) si X\a ∈ U.

Dr. Alejandro Guerra-Hernández (UV) Programación para la Inteligencia Artificial MIA 2018 25 / 101

Page 26: Programación para la Inteligencia Artificial ...ProgramaciónparalaInteligenciaArtificial ProgramaciónLógica Dr.AlejandroGuerra-Hernández Universidad Veracruzana CentrodeInvestigaciónenInteligenciaArtificial

Lógica de Primer Orden Semántica

Satisfacción:

I Dado un modelo M = 〈D,V 〉 y una asignación de términos TVU :1. |=V (φ = ψ)[U] si y sólo si TVU(φ) = TVU(ψ).2. |=V φ(τ1, . . . , τn)[U] si y sólo si (TVU(τ1), . . . ,TVU(τn)) ∈ φV .3. |=V (¬φ)[U] si y sólo si 6|=V φ[U].4. |=V (φ ∧ ψ)[U] si y sólo si |=V φ[U] y |=V ψ[U].5. |=V (φ ∨ ψ)[U] si y sólo si |=V φ[U] o |=V ψ[U].6. |=V (φ→ ψ)[U] si y sólo si 6|=V φ[U] o |=V ψ[U].7. |=V (∀νφ)[U] si y sólo si para todo d ∈ D es el caso que |=V φ[W ],

donde νW = d y µW = µU para µ 6= ν.8. |=V (∃νφ)[U] si y sólo si para algún d ∈ D es el caso que |=V φ[W ],

donde νW = d y µW = µU para µ 6= ν.

Dr. Alejandro Guerra-Hernández (UV) Programación para la Inteligencia Artificial MIA 2018 26 / 101

Page 27: Programación para la Inteligencia Artificial ...ProgramaciónparalaInteligenciaArtificial ProgramaciónLógica Dr.AlejandroGuerra-Hernández Universidad Veracruzana CentrodeInvestigaciónenInteligenciaArtificial

Lógica de Primer Orden Semántica

Definiciones complementarias

I Si una interpretación V safisface a un enunciado α para todaasignación de variables, se dice que V es un modelo de α.

I Un enunciado se dice satisfacible si existe alguna interpretación yasignación de variables que lo satisfaga.

I De otra forma, se dice que el enunciado es insatisfacible.I Se dice que una fbf α es válida, si y sólo si se satisface en toda

intepretación y asignación de variables.I Las fbf válidas lo son en virtud de su estructura lógica, por lo que no

proveen información acerca del dominio descrito.I Ejemplo: p(X ) ∨ ¬p(X ) es una fbf válida.

Dr. Alejandro Guerra-Hernández (UV) Programación para la Inteligencia Artificial MIA 2018 27 / 101

Page 28: Programación para la Inteligencia Artificial ...ProgramaciónparalaInteligenciaArtificial ProgramaciónLógica Dr.AlejandroGuerra-Hernández Universidad Veracruzana CentrodeInvestigaciónenInteligenciaArtificial

Lógica de Primer Orden Inferencia

Mi mamá me ama

I Retomemos el ejemplo de la introducción:1. Toda madre ama a sus hijos.2. Julia es madre y Luis es hijo de Julia.3. Julia ama a Luis.

I Se puede formalizar como:1. ∀X ∀Y madre(X ) ∧ hijo_de(Y ,X )→ ama(X ,Y )2. madre(julia) ∧ hijo_de(luis, julia)3. ama(julia, luis)

Dr. Alejandro Guerra-Hernández (UV) Programación para la Inteligencia Artificial MIA 2018 28 / 101

Page 29: Programación para la Inteligencia Artificial ...ProgramaciónparalaInteligenciaArtificial ProgramaciónLógica Dr.AlejandroGuerra-Hernández Universidad Veracruzana CentrodeInvestigaciónenInteligenciaArtificial

Lógica de Primer Orden Inferencia

Reglas de inferencia

I La inferencia puede verse como un proceso de manipulación de fbf,donde a partir las premisas, se producen las conclusiones.I Modus Ponens. O de eliminación de la implicación:

α α→ β

β(→ E )

I Eliminación de cuantificador universal.:

∀Xα(X )α(t) (∀E )

I Introducción de conjunción.:

α β

α ∧ β(∧I)

Dr. Alejandro Guerra-Hernández (UV) Programación para la Inteligencia Artificial MIA 2018 29 / 101

Page 30: Programación para la Inteligencia Artificial ...ProgramaciónparalaInteligenciaArtificial ProgramaciónLógica Dr.AlejandroGuerra-Hernández Universidad Veracruzana CentrodeInvestigaciónenInteligenciaArtificial

Lógica de Primer Orden Inferencia

Ejemplo de derivación

I Inicio:1. ∀X∀Ymadre(X ) ∧ hijo_de(Y ,X ) =⇒ ama(X ,Y )2. madre(julia) ∧ hijo_de(luis, julia)

I Al aplicar la eliminación de cuantificador universal (∀E ) a (1)obtenemos:3. ∀Y (madre(julia) ∧ hijo_de(Y , julia) =⇒ ama(julia,Y )

I Al aplicar nuevamente (∀E ) a (3) obtenemos:4. madre(julia) ∧ hijo_de(luis, julia) =⇒ ama(julia, luis)

I Finalmente, al aplicar Modus Ponens a (2) y (4):5. ama(julia, luis)

Dr. Alejandro Guerra-Hernández (UV) Programación para la Inteligencia Artificial MIA 2018 30 / 101

Page 31: Programación para la Inteligencia Artificial ...ProgramaciónparalaInteligenciaArtificial ProgramaciónLógica Dr.AlejandroGuerra-Hernández Universidad Veracruzana CentrodeInvestigaciónenInteligenciaArtificial

Lógica de Primer Orden Inferencia

Solidez y robustez

I Un conjunto de reglas de inferencia se dice sólido, si para todoconjunto de fbf cerradas (sin ocurrencia de variables libres) ∆ y cadafbf cerrada α, siempre que ∆ ` α se tiene que ∆ |= α.

I Las reglas de inferencia se dicen completas si ∆ ` α siempre que∆ |= α.

Dr. Alejandro Guerra-Hernández (UV) Programación para la Inteligencia Artificial MIA 2018 31 / 101

Page 32: Programación para la Inteligencia Artificial ...ProgramaciónparalaInteligenciaArtificial ProgramaciónLógica Dr.AlejandroGuerra-Hernández Universidad Veracruzana CentrodeInvestigaciónenInteligenciaArtificial

Programas definitivos Lenguaje

Enunciados declarativos

I Describen relaciones positivas entre elementos de U :I Incondicionadas (hechos) y Condicionadas (reglas).

1. Antonio es hijo de Juan.

2. Ana es hija de Antonio.

3. Juan es hijo de Marcos.

4. Alicia es hija de Juan.

5. El nieto de una persona es elhijo del hijo de esa persona.

1. hijo_de(antonio, juan)

2. hijo_de(ana, antonio)

3. hijo_de(juan,marcos)

4. hijo_de(alicia, juan)

5. ∀X∀Y (nieto_de(X ,Y )←∃Z (hijo_de(Z ,Y ) ∧hijo_de(X ,Z )))

Dr. Alejandro Guerra-Hernández (UV) Programación para la Inteligencia Artificial MIA 2018 32 / 101

Page 33: Programación para la Inteligencia Artificial ...ProgramaciónparalaInteligenciaArtificial ProgramaciónLógica Dr.AlejandroGuerra-Hernández Universidad Veracruzana CentrodeInvestigaciónenInteligenciaArtificial

Programas definitivos Lenguaje

Formas alternativas para una regla

I La fórmula:

∀X∀Y (nieto_de(X ,Y )← ∃Z (hijo_de(Z ,Y ) ∧ hijo_de(X ,Z )))

I Se puede escribir como:I ∀X∀Y (nieto_de(X ,Y ) ∨ ¬∃Z (hijo_de(Z ,Y ) ∧ hijo_de(X ,Z )))I ∀X∀Y (nieto_de(X ,Y ) ∨ ∀Z¬(hijo_de(Z ,Y ) ∧ hijo_de(X ,Z )))I ∀X∀Y ∀Z (nieto_de(X ,Y ) ∨ ¬(hijo_de(Z ,Y ) ∧ hijo_de(X ,Z )))I ∀X∀Y ∀Z (nieto_de(X ,Y )← (hijo_de(Z ,Y ) ∧ hijo_de(X ,Z )))

I Con equivalencias como:I α→ β ≡ ¬α ∨ β óI ∀Xα ≡ ¬∃X¬α.

Dr. Alejandro Guerra-Hernández (UV) Programación para la Inteligencia Artificial MIA 2018 33 / 101

Page 34: Programación para la Inteligencia Artificial ...ProgramaciónparalaInteligenciaArtificial ProgramaciónLógica Dr.AlejandroGuerra-Hernández Universidad Veracruzana CentrodeInvestigaciónenInteligenciaArtificial

Programas definitivos Lenguaje

Literales

I Una literal es un átomo o la negación de un átomo.I Una literal positiva es un átomo.I Una literal negativa es la negación de un átomo.I Ejemplos:

I hijo_de(juan,marcos).I ¬hijo_de(juan, alicia).

I Son los bloques de construcción αi en:

α0 ← α1 ∧ · · · ∧ αn (n ≥ 0)

Dr. Alejandro Guerra-Hernández (UV) Programación para la Inteligencia Artificial MIA 2018 34 / 101

Page 35: Programación para la Inteligencia Artificial ...ProgramaciónparalaInteligenciaArtificial ProgramaciónLógica Dr.AlejandroGuerra-Hernández Universidad Veracruzana CentrodeInvestigaciónenInteligenciaArtificial

Programas definitivos Lenguaje

Cláusulas

I Una cláusula es una disyunción finita de cero o más literales.I Una cláusula se dice definitiva, si tiene exactamente una literal

positiva.α0 ∨ ¬α1 ∨ · · · ∨ ¬αn (n ≥ 0)

I Lo cual es equivalente a la forma general de fbf que nos interesaba:

α0 ← α1 ∧ · · · ∧ αn (n ≥ 0)

I La cláusula vacía (sin literales) se denota como � y es equivalente a�← � (en nuestra notación previa ⊥ ← >).

Dr. Alejandro Guerra-Hernández (UV) Programación para la Inteligencia Artificial MIA 2018 35 / 101

Page 36: Programación para la Inteligencia Artificial ...ProgramaciónparalaInteligenciaArtificial ProgramaciónLógica Dr.AlejandroGuerra-Hernández Universidad Veracruzana CentrodeInvestigaciónenInteligenciaArtificial

Programas definitivos Lenguaje

Hechos y reglas revisitados

I En α0 ← α1 ∧ · · · ∧ αn (n ≥ 0), tenemos que:I Si n = 0, la literal α0 será positiva, por lo que la cláusula definitiva será

un hecho.I Si n > 0 la cláusula definitiva toma la forma de una regla, donde α0 es

la cabeza de la regla; y la conjunción α1 ∧ · · · ∧ αn su cuerpo.

I Una forma restringida de cuantificación:

∀X∀Y (nieto_de(X ,Y ) ∨ ¬∃Z (hijo_de(Z ,Y ) ∧ hijo_de(X ,Z ))).

Dr. Alejandro Guerra-Hernández (UV) Programación para la Inteligencia Artificial MIA 2018 36 / 101

Page 37: Programación para la Inteligencia Artificial ...ProgramaciónparalaInteligenciaArtificial ProgramaciónLógica Dr.AlejandroGuerra-Hernández Universidad Veracruzana CentrodeInvestigaciónenInteligenciaArtificial

Programas definitivos Lenguaje

Programa y Meta Definitivos

I Un programa definitivo es un conjunto finito de cláusulas definitivas.I Una cláusula sin literales positivas es una meta definitiva.

← α1 ∧ · · · ∧ αn (n ≥ 1)

Dr. Alejandro Guerra-Hernández (UV) Programación para la Inteligencia Artificial MIA 2018 37 / 101

Page 38: Programación para la Inteligencia Artificial ...ProgramaciónparalaInteligenciaArtificial ProgramaciónLógica Dr.AlejandroGuerra-Hernández Universidad Veracruzana CentrodeInvestigaciónenInteligenciaArtificial

Programas definitivos Lenguaje

Ejemplo

I Considere las siguientes consultas:

Consulta Meta definitiva¿Es Ana hija de Antonio? ← hijo(ana, antonio)¿Quién es nieto de Ana? ← nieto(X , ana)¿De quién es nieto Antonio? ← nieto(antonio,X )¿Quién es nieto de quién? ← nieto(X ,Y )

I ¿Cuales serían las respuestas computadas?

Dr. Alejandro Guerra-Hernández (UV) Programación para la Inteligencia Artificial MIA 2018 38 / 101

Page 39: Programación para la Inteligencia Artificial ...ProgramaciónparalaInteligenciaArtificial ProgramaciónLógica Dr.AlejandroGuerra-Hernández Universidad Veracruzana CentrodeInvestigaciónenInteligenciaArtificial

Programas definitivos Lenguaje

Respuestas obtenidas

I Puesto que la primer meta no contiene variables, la respuesta sería Si(Yes).

I Puesto que el programa no contiene información sobre los nietos deAna, la respueta a la segunda consulta es No (o ninguno).

I Puesto que Antonio es nieto de Marcos, la respuesta obtenida seríaX = marcos.

I La consulta final obtiene tres respuestas: X = antonio Y = alicia,X = alicia Y = marcos, X = ana Y = juan.

Dr. Alejandro Guerra-Hernández (UV) Programación para la Inteligencia Artificial MIA 2018 39 / 101

Page 40: Programación para la Inteligencia Artificial ...ProgramaciónparalaInteligenciaArtificial ProgramaciónLógica Dr.AlejandroGuerra-Hernández Universidad Veracruzana CentrodeInvestigaciónenInteligenciaArtificial

Programas definitivos Lenguaje

Cláusulas de Horn

I Una cláusula de Horn es una cláusula ó una meta definitivas.I La cláusula vacía � es una meta definitiva y, por lo tanto, una

cláusula de Horn.I Las cláusulas de Horn implican restricciones expresivas. Por ejemplo,

no podemos expresar p(a) ∨ p(b)I Debido a su estructura restringida, las cláusulas de Horn

son más fáciles de manipular que las cláusulas generales.

Dr. Alejandro Guerra-Hernández (UV) Programación para la Inteligencia Artificial MIA 2018 40 / 101

Page 41: Programación para la Inteligencia Artificial ...ProgramaciónparalaInteligenciaArtificial ProgramaciónLógica Dr.AlejandroGuerra-Hernández Universidad Veracruzana CentrodeInvestigaciónenInteligenciaArtificial

Programas definitivos Lenguaje

Significado lógico de las metas

I El significado lógico de las metas puede explicarse haciéndo referenciaa la fbf equivalente cuantificada universalmente:

∀X1 . . .Xm¬(α1 ∧ · · · ∧ αn)

donde todas las Xi ocurren en la meta. Equivale a:

¬∃X1 . . .Xm(α1 ∧ · · · ∧ αn)

I Prolog tratará de encontrar términos ti . . . tm tales que las fbfobtenidas a partir de α1 ∧ · · · ∧ αm al remplazar la variableXi por ti (1 ≤ i ≤ m) son verdaderas en todo modelodel programa (contra ejemplo).

Dr. Alejandro Guerra-Hernández (UV) Programación para la Inteligencia Artificial MIA 2018 41 / 101

Page 42: Programación para la Inteligencia Artificial ...ProgramaciónparalaInteligenciaArtificial ProgramaciónLógica Dr.AlejandroGuerra-Hernández Universidad Veracruzana CentrodeInvestigaciónenInteligenciaArtificial

Programas definitivos Modelo de Herbrand

Conocimiento positivo

I Los programas definitivos solo pueden expresar conocimiento positivo,tanto los hechos, como las reglas, nos dicen que elementos de unaestructura están en una relación, pero no nos dicen cuales no.

I Por lo tanto, al usar el lenguaje de los programas definitivos, no esposible construir descripciones contradictorias, i.e. conjuntos de fbf nosatisfacibles.

I Todo programa definitivo tiene un modelo.

Dr. Alejandro Guerra-Hernández (UV) Programación para la Inteligencia Artificial MIA 2018 42 / 101

Page 43: Programación para la Inteligencia Artificial ...ProgramaciónparalaInteligenciaArtificial ProgramaciónLógica Dr.AlejandroGuerra-Hernández Universidad Veracruzana CentrodeInvestigaciónenInteligenciaArtificial

Programas definitivos Modelo de Herbrand

Modelos e interpretaciones (recordatorio)

I Sea α una fbf y V una intepretación. V es un modelo de α si |=V α.I Sea ∆ un conjunto finito de fbf y V una interpretación. V es un

modelo de ∆ si |=V α para toda α ∈ ∆.I Una clase interesante de modelos para los programas definitivos se

conoce como interpretaciones de Herbrand.

Dr. Alejandro Guerra-Hernández (UV) Programación para la Inteligencia Artificial MIA 2018 43 / 101

Page 44: Programación para la Inteligencia Artificial ...ProgramaciónparalaInteligenciaArtificial ProgramaciónLógica Dr.AlejandroGuerra-Hernández Universidad Veracruzana CentrodeInvestigaciónenInteligenciaArtificial

Programas definitivos Modelo de Herbrand

Universo y Base de Herbrand

I Sea L un alfabeto extraído de un programa definitivo ∆, donde|Const| ≥ 1.

I El Universo de Herbrand (UL) es el conjunto de todos los términosformados con las constantes y functores de L.

I La Base de Herbrand (BL) es el conjunto de todos los átomos quepueden formarse con los predicados y los términos en UL.

Dr. Alejandro Guerra-Hernández (UV) Programación para la Inteligencia Artificial MIA 2018 44 / 101

Page 45: Programación para la Inteligencia Artificial ...ProgramaciónparalaInteligenciaArtificial ProgramaciónLógica Dr.AlejandroGuerra-Hernández Universidad Veracruzana CentrodeInvestigaciónenInteligenciaArtificial

Programas definitivos Modelo de Herbrand

Ejemplo: impar

I Sea ∆ = {impar(s(0)), impar(s(s(X )))← impar(X )}.I [UL = {0, s(0), s(s(0)), s(s(s(0))), . . . }I BL = {impar(0), impar(s(0)), impar(s(s(0))), . . . }

Dr. Alejandro Guerra-Hernández (UV) Programación para la Inteligencia Artificial MIA 2018 45 / 101

Page 46: Programación para la Inteligencia Artificial ...ProgramaciónparalaInteligenciaArtificial ProgramaciónLógica Dr.AlejandroGuerra-Hernández Universidad Veracruzana CentrodeInvestigaciónenInteligenciaArtificial

Programas definitivos Modelo de Herbrand

Otro ejemplo

I Sea ∆ = {p(a), q(a, f (b)), q(X ,X )← p(X )}I UL = {a, b, f (a), f (b), f (f (a)), f (f (b)), . . . }I BL = {p(a), p(b), p(f (a)), p(f (b)), . . . }

Dr. Alejandro Guerra-Hernández (UV) Programación para la Inteligencia Artificial MIA 2018 46 / 101

Page 47: Programación para la Inteligencia Artificial ...ProgramaciónparalaInteligenciaArtificial ProgramaciónLógica Dr.AlejandroGuerra-Hernández Universidad Veracruzana CentrodeInvestigaciónenInteligenciaArtificial

Programas definitivos Modelo de Herbrand

Interpretación de Herbrand

I Sea ∆ un programa definitivo y L el alfabeto compuesto por lossímbolos de ∆.

I V es una interpretación de Herbrand de ∆, si y sólo si:I El dominio de V es UL.I Para cada constante c ∈ L, cV = c.I Para cada functor f /n ∈ L, f V : Un

L 7→ UL.I Para cada predicado p/n ∈ L, pV ⊆ Un

L .

Dr. Alejandro Guerra-Hernández (UV) Programación para la Inteligencia Artificial MIA 2018 47 / 101

Page 48: Programación para la Inteligencia Artificial ...ProgramaciónparalaInteligenciaArtificial ProgramaciónLógica Dr.AlejandroGuerra-Hernández Universidad Veracruzana CentrodeInvestigaciónenInteligenciaArtificial

Programas definitivos Modelo de Herbrand

Modelo de Herbrand

I Sea ∆ un programa definitivo; L el alfabeto compuesto por lossímbolos en ∆; y V una interpretación de Herbrand de ∆. Si V es unmodelo de toda fbf en ∆, se dice que es un modelo de Herbrand de ∆.

Dr. Alejandro Guerra-Hernández (UV) Programación para la Inteligencia Artificial MIA 2018 48 / 101

Page 49: Programación para la Inteligencia Artificial ...ProgramaciónparalaInteligenciaArtificial ProgramaciónLógica Dr.AlejandroGuerra-Hernández Universidad Veracruzana CentrodeInvestigaciónenInteligenciaArtificial

Programas definitivos Modelo de Herbrand

Ejemplo: impar

I Consideren el programa ∆ en el ejemplo impar/1.I Una posible interpretación de este programa es

imparV = {s(0), s(s(s(0)))}

I Una intepretación de Herbrand se puede especificar mediante unafamilia de tales relaciones (una por cada símbolo de predicado).

Dr. Alejandro Guerra-Hernández (UV) Programación para la Inteligencia Artificial MIA 2018 49 / 101

Page 50: Programación para la Inteligencia Artificial ...ProgramaciónparalaInteligenciaArtificial ProgramaciónLógica Dr.AlejandroGuerra-Hernández Universidad Veracruzana CentrodeInvestigaciónenInteligenciaArtificial

Programas definitivos Modelo de Herbrand

Otro ejemplo

I Consideren ahora algunas interpretaciones de Herbrand de∆ = {p(a), q(a, f (b)), q(X ,X )← p(X )}:

V1 = {p(a), p(b), q(a, b, ), q(b, b)}V2 = {p(a), q(a, a), q(a, f (b))}V3 = {p(f (f (a))), p(b), q(a, a), q(a, f (b))}V4 = {p(a), p(b), q(a, a), q(b, b), q(a, f (b))}

I V2 y V4 son modelos de Herbrand de ∆I V1 y V3 no lo son.

Dr. Alejandro Guerra-Hernández (UV) Programación para la Inteligencia Artificial MIA 2018 50 / 101

Page 51: Programación para la Inteligencia Artificial ...ProgramaciónparalaInteligenciaArtificial ProgramaciónLógica Dr.AlejandroGuerra-Hernández Universidad Veracruzana CentrodeInvestigaciónenInteligenciaArtificial

Programas definitivos Propiedades

Resultados de interés

I Para poder determinar si una interpretación de Herbrand V es unmodelo de una fbf cuantificada universalmente ∀α, es suficienteverificar si α es verdadera en V , para todas las asignaciones posiblesde las variables de α.

I Para el lenguaje restringido de cláusulas definitivas, si queremosverificar que una fbf atómica α es consecuencia de un programadefinitivo ∆ basta con verificar que todo modelo de Herbrand de ∆ estambién un modelo de Herbrand de α.

Dr. Alejandro Guerra-Hernández (UV) Programación para la Inteligencia Artificial MIA 2018 51 / 101

Page 52: Programación para la Inteligencia Artificial ...ProgramaciónparalaInteligenciaArtificial ProgramaciónLógica Dr.AlejandroGuerra-Hernández Universidad Veracruzana CentrodeInvestigaciónenInteligenciaArtificial

Programas definitivos Propiedades

Programa definitivo extendido con meta definitiva

I Sea ∆ un programa definitivo y γ una meta definitiva. Sea L unalfabeto compuesto por los símbolos en el programa y la metadefinitivos.

I Si V ′ es un modelo de ∆ ∪ {γ}, entonces V = {α ∈ BL| |=V ′ α} esun modelo de Herbrand de ∆ ∪ {γ}.

Dr. Alejandro Guerra-Hernández (UV) Programación para la Inteligencia Artificial MIA 2018 52 / 101

Page 53: Programación para la Inteligencia Artificial ...ProgramaciónparalaInteligenciaArtificial ProgramaciónLógica Dr.AlejandroGuerra-Hernández Universidad Veracruzana CentrodeInvestigaciónenInteligenciaArtificial

Programas definitivos Propiedades

Consistencia

I Sea ∆ un programa definitivo y α una cláusula definitiva. Sea∆′ = ∆ ∪ {¬α}. Entonces ∆ |= α si y sólo si ∆′ no tiene modelo deHerbrand.

I Esto es, si ∆′ es no satisfacible, lo cual es cierto sólo si ∆′ no tienemodelos y por lo tanto, no tiene modelo de Herbrand.

Dr. Alejandro Guerra-Hernández (UV) Programación para la Inteligencia Artificial MIA 2018 53 / 101

Page 54: Programación para la Inteligencia Artificial ...ProgramaciónparalaInteligenciaArtificial ProgramaciónLógica Dr.AlejandroGuerra-Hernández Universidad Veracruzana CentrodeInvestigaciónenInteligenciaArtificial

Programas definitivos Propiedades

Intersección de modelos de Herbrand

I Sea M una familia no vacía de modelos de Herbrand de un programadefinitivo ∆. Entonces la intersección V =

⋂M es un modelo de

Herbrand de ∆.I Al tomar la intersección de los modelos de Herbrand de un programa

definitivo (todos tienen al menos un modelo, e.g., B∆), obtenemos elmodelo mínimo de Herbrand.

Dr. Alejandro Guerra-Hernández (UV) Programación para la Inteligencia Artificial MIA 2018 54 / 101

Page 55: Programación para la Inteligencia Artificial ...ProgramaciónparalaInteligenciaArtificial ProgramaciónLógica Dr.AlejandroGuerra-Hernández Universidad Veracruzana CentrodeInvestigaciónenInteligenciaArtificial

Programas definitivos Propiedades

Ejemplo

I Sea ∆ el programa definitivo {masculino(adan), femenino(eva)} consu interpretación obvia. ∆ tiene los siguientes modelos de Herbrand:1. {masculino(adan), femenino(eva)}2. {masculino(adan),masculino(eva), femenino(eva)}3. {masculino(adan),masculino(eva), femenino(eva)}4. {masculino(adan),masculino(eva), femenino(eva), femenino(adan)}

I La intersección de los modelos nos lleva a un modelo de Herbrand.I El modelo mínimo es el único que corresponde con el modelo

pretendido del programa.

Dr. Alejandro Guerra-Hernández (UV) Programación para la Inteligencia Artificial MIA 2018 55 / 101

Page 56: Programación para la Inteligencia Artificial ...ProgramaciónparalaInteligenciaArtificial ProgramaciónLógica Dr.AlejandroGuerra-Hernández Universidad Veracruzana CentrodeInvestigaciónenInteligenciaArtificial

Programas definitivos Propiedades

Consecuencia Lógica

I El modelo mínimo de Herbrand de un programa definitivo ∆, M∆, esel conjunto de todas las consecuencias lógicas atómicas de base delprograma. Esto es: M∆ = {α ∈ B∆|∆ |= α}.

I La prueba de este teorema pasa por demostrar queM∆ ⊇ {α ∈ BL|∆ |= α} y que M∆ ⊆ {α ∈ B∆|∆ |= α}.

Dr. Alejandro Guerra-Hernández (UV) Programación para la Inteligencia Artificial MIA 2018 56 / 101

Page 57: Programación para la Inteligencia Artificial ...ProgramaciónparalaInteligenciaArtificial ProgramaciónLógica Dr.AlejandroGuerra-Hernández Universidad Veracruzana CentrodeInvestigaciónenInteligenciaArtificial

Programas definitivos Modelo mínimo de Herbrand

Operador de consecuencia inmediata

I Sea base(∆) el conjunto de todas las cláusulas de base en ∆. T∆ esuna función sobre las interpretaciones de Herbrand de ∆ definidacomo sigue:

T∆(V ) = {α0 | α0 ← α1, . . . , αn ∈ base(∆) ∧ {α1, . . . , αn} ⊆ V }

I Se puede demostrar que existe un punto fijo T∆(V ) = V y que V esidéntica al modelo mínimo de Herbrand de ∆!

Dr. Alejandro Guerra-Hernández (UV) Programación para la Inteligencia Artificial MIA 2018 57 / 101

Page 58: Programación para la Inteligencia Artificial ...ProgramaciónparalaInteligenciaArtificial ProgramaciónLógica Dr.AlejandroGuerra-Hernández Universidad Veracruzana CentrodeInvestigaciónenInteligenciaArtificial

Programas definitivos Modelo mínimo de Herbrand

Notación

I Existe una notación estándar para denotar a los miembros de estasecuencia de interpretaciones construídas a partir de ∆:

T∆ ↑ 0 = ∅T∆ ↑ (i + 1) = T∆(T∆ ↑ i)

T∆ ↑ n =∞⋃i=0

T∆ ↑ i

I el conjunto construído de esta manera es identico al modelo mínimode Herbrand de ∆.

Dr. Alejandro Guerra-Hernández (UV) Programación para la Inteligencia Artificial MIA 2018 58 / 101

Page 59: Programación para la Inteligencia Artificial ...ProgramaciónparalaInteligenciaArtificial ProgramaciónLógica Dr.AlejandroGuerra-Hernández Universidad Veracruzana CentrodeInvestigaciónenInteligenciaArtificial

Programas definitivos Modelo mínimo de Herbrand

Ejemplo

I Tomando ∆ como el programa de impar/1 tenemos:

T∆ ↑ 0 = ∅T∆ ↑ 1 = {impar(s(0))}T∆ ↑ 2 = {impar(s(0)), impar(s(s(s(0))))}

...T∆ ↑ m = {impar(sn(0)) | n ∈ {1, 3, 5, . . . }}

Dr. Alejandro Guerra-Hernández (UV) Programación para la Inteligencia Artificial MIA 2018 59 / 101

Page 60: Programación para la Inteligencia Artificial ...ProgramaciónparalaInteligenciaArtificial ProgramaciónLógica Dr.AlejandroGuerra-Hernández Universidad Veracruzana CentrodeInvestigaciónenInteligenciaArtificial

Programas definitivos Modelo mínimo de Herbrand

Fin

I Sea ∆ un programa definitivo y V∆ su modelo mínimo de Herbrand.Entonces, V∆ es la interpretación mínima de Herbrand, tal que:I T∆(V∆) = V∆.I V∆ = T∆ ↑ n.

Dr. Alejandro Guerra-Hernández (UV) Programación para la Inteligencia Artificial MIA 2018 60 / 101

Page 61: Programación para la Inteligencia Artificial ...ProgramaciónparalaInteligenciaArtificial ProgramaciónLógica Dr.AlejandroGuerra-Hernández Universidad Veracruzana CentrodeInvestigaciónenInteligenciaArtificial

Resolución-SLD Una estrategia de razonamiento

Programas y metas definitivos

I Consideren el siguiente programa definitivo ∆:

papa(juan,marta).recien_nacido(marta).

orgulloso(X ) ← padre(X ,Y ), recien_nacido(Y ).padre(X ,Y ) ← papa(X ,Y ).padre(X ,Y ) ← mama(X ,Y ).

I ¿Cómo interpretamos la meta ← orgulloso(Z ). ?

Dr. Alejandro Guerra-Hernández (UV) Programación para la Inteligencia Artificial MIA 2018 61 / 101

Page 62: Programación para la Inteligencia Artificial ...ProgramaciónparalaInteligenciaArtificial ProgramaciónLógica Dr.AlejandroGuerra-Hernández Universidad Veracruzana CentrodeInvestigaciónenInteligenciaArtificial

Resolución-SLD Una estrategia de razonamiento

Metas

I En realidad la meta ← orgulloso(Z ).I Es una abreviatura de ∀Z¬orgulloso(Z )I Que a su vez es equivalente a ¬∃Z orgulloso(Z ).I Si demostramos que ese enunciado es contradictorio en ∆, entonces

sabremos que ∆ |= ∃Z orgulloso(Z ). Pero eso solo respondería si , ala pregunta original.

I El objetivo en realidad es encontrar una substitución θ tal que elconjunto ∆ ∪ {¬orgulloso(Z )θ} sea insatisfacible, lo que equivale aque ∆ |= orgulloso(Z )θ.Ejemplo: ∆ ∪ ¬orgulloso(Z ){Z/juan}

Dr. Alejandro Guerra-Hernández (UV) Programación para la Inteligencia Artificial MIA 2018 62 / 101

Page 63: Programación para la Inteligencia Artificial ...ProgramaciónparalaInteligenciaArtificial ProgramaciónLógica Dr.AlejandroGuerra-Hernández Universidad Veracruzana CentrodeInvestigaciónenInteligenciaArtificial

Resolución-SLD Una estrategia de razonamiento

Razonamiento

I Asumimos la meta G0 – Para cualquier Z , Z no está orgulloso.I La inspección del programa ∆ revela que una regla describe una

condición para que alguién esté orgulloso:

orgulloso(X )← padre(X ,Y ), recien_nacido(Y ).

I Lo cual es lógicamente equivalente a:

∀(¬orgulloso(X )→ ¬(padre(X ,Y ) ∧ recien_nacido(Y )))

Dr. Alejandro Guerra-Hernández (UV) Programación para la Inteligencia Artificial MIA 2018 63 / 101

Page 64: Programación para la Inteligencia Artificial ...ProgramaciónparalaInteligenciaArtificial ProgramaciónLógica Dr.AlejandroGuerra-Hernández Universidad Veracruzana CentrodeInvestigaciónenInteligenciaArtificial

Resolución-SLD Una estrategia de razonamiento

Estrategia

I Partiendo de:

∀(¬orgulloso(X )→ ¬(padre(X ,Y ) ∧ recien_nacido(Y )))

I Al renombrar X por Z , eliminar el cuantificador universal y usarmodus ponens con respecto a G0, obtenemos G1:

¬(padre(Z ,Y ) ∧ recien_nacido(Y ))

I o su equivalente:

← padre(Z ,Y ), recien_nacido(Y ).

I G1 que es verdadera en todo modelo ∆ ∪ {G0}.

Dr. Alejandro Guerra-Hernández (UV) Programación para la Inteligencia Artificial MIA 2018 64 / 101

Page 65: Programación para la Inteligencia Artificial ...ProgramaciónparalaInteligenciaArtificial ProgramaciónLógica Dr.AlejandroGuerra-Hernández Universidad Veracruzana CentrodeInvestigaciónenInteligenciaArtificial

Resolución-SLD Una estrategia de razonamiento

Resolución

I Ahora solo queda probar que ∆ ∪ {G1} es no satisfacible. Observenque G1 es equivalente a la fbf:

∀Z∀Y (¬padre(Z ,Y ) ∨ ¬recien_nacido(Y ))

I G1 no es satisfacible para ∆, si en todo modelo de ∆ hay una personaque es padre de un recién nacido:

padre(X ,Y )← papa(X ,Y ).

I Por lo que G1 se reduce a G2:

← papa(Z ,Y ), recien_nacido(Y ).

Dr. Alejandro Guerra-Hernández (UV) Programación para la Inteligencia Artificial MIA 2018 65 / 101

Page 66: Programación para la Inteligencia Artificial ...ProgramaciónparalaInteligenciaArtificial ProgramaciónLógica Dr.AlejandroGuerra-Hernández Universidad Veracruzana CentrodeInvestigaciónenInteligenciaArtificial

Resolución-SLD Una estrategia de razonamiento

Estretegia recursiva

I El programa declara que juan es padre de marta:

papa(juan,marta).

I Así que sólo resta probar que “marta no es una recién nacida” no sepuede satisfacer junto con ∆:

← recien_nacido(marta).

I pero el programa contiene el hecho:

recien_nacido(marta).

I equivalente a ¬recien_nacido(marta)→ �I lo que conduce a una refutación �.

Dr. Alejandro Guerra-Hernández (UV) Programación para la Inteligencia Artificial MIA 2018 66 / 101

Page 67: Programación para la Inteligencia Artificial ...ProgramaciónparalaInteligenciaArtificial ProgramaciónLógica Dr.AlejandroGuerra-Hernández Universidad Veracruzana CentrodeInvestigaciónenInteligenciaArtificial

Resolución-SLD Una estrategia de razonamiento

Resumiendo

I Para probar la existencia de algo:I Suponer lo opuestoI y usar modus ponens y la regla de eliminación del cuantificador

universal,I para encontrar un contra ejemplo al supuesto.

Dr. Alejandro Guerra-Hernández (UV) Programación para la Inteligencia Artificial MIA 2018 67 / 101

Page 68: Programación para la Inteligencia Artificial ...ProgramaciónparalaInteligenciaArtificial ProgramaciónLógica Dr.AlejandroGuerra-Hernández Universidad Veracruzana CentrodeInvestigaciónenInteligenciaArtificial

Resolución-SLD Una estrategia de razonamiento

Unificador

I Una meta es un conjunto de átomos a ser probados.I Seleccionamos un átomo de la meta p(s1, . . . , sn) y una cláusula del

programa con la forma p(t1, . . . , tn)← A1, . . .AnI Si encontramos una substitución θ que hace que p(s1, . . . , sn)θ y

p(t1, . . . , tn)θ sean idénticos. Tal substitución se conoce comounificador.

I La nueva meta se construye remplazando el átomo seleccionado en lameta original, por los átomos de la cláusula seleccionada, aplicando θa todos los átomos obtenidos de esta manera.

Dr. Alejandro Guerra-Hernández (UV) Programación para la Inteligencia Artificial MIA 2018 68 / 101

Page 69: Programación para la Inteligencia Artificial ...ProgramaciónparalaInteligenciaArtificial ProgramaciónLógica Dr.AlejandroGuerra-Hernández Universidad Veracruzana CentrodeInvestigaciónenInteligenciaArtificial

Resolución-SLD Una estrategia de razonamiento

Resolución-SLD

I La regla de inferencia principio de resolución SLD combina modusponens, eliminación del cuantificador universal y en el paso final unreductio ad absurdum.

I Si se prueba en k pasos que la meta definitiva en cuestión no puedesatisfacerse, probamos que:

← (α1, . . . αm)θ1 . . . θk

I es una instancia que no puede satisfacerse. Por tanto:

∆ |= (α1 ∧ · · · ∧ αm)θ1 . . . θk

Dr. Alejandro Guerra-Hernández (UV) Programación para la Inteligencia Artificial MIA 2018 69 / 101

Page 70: Programación para la Inteligencia Artificial ...ProgramaciónparalaInteligenciaArtificial ProgramaciónLógica Dr.AlejandroGuerra-Hernández Universidad Veracruzana CentrodeInvestigaciónenInteligenciaArtificial

Resolución-SLD Una estrategia de razonamiento

Observaciones

I Esta computación no es determinista: cualquier átomo de la metapuede ser seleccionado y pueden haber varias cláusulas del programaque unifiquen con el átomo seleccionado.

I Pueden existir unificadores alternativos para dos átomos.I Por otra parte, es posible también que el atomo seleccionado no

unifique con ninguna cláusula en el programa: No es posible construirun contra ejemplo para la meta definida inicial.

I La computación puede caer en un ciclo y de esta manera no producirsolución alguna.

Dr. Alejandro Guerra-Hernández (UV) Programación para la Inteligencia Artificial MIA 2018 70 / 101

Page 71: Programación para la Inteligencia Artificial ...ProgramaciónparalaInteligenciaArtificial ProgramaciónLógica Dr.AlejandroGuerra-Hernández Universidad Veracruzana CentrodeInvestigaciónenInteligenciaArtificial

Resolución-SLD Substitución

Substitución

I Una substitución θ es un conjunto finito de la forma:

{X1/t1, . . . ,Xn/tn}, (n ≥ 0)

donde las Xi son variables, distintas entre si, y los ti son términos.Decimos que ti substituye a Xi . La forma Xi/ti se conoce comoligadura de Xi . La substitución θ se dice se dice de base (grounded) sicada término ti es un término base.

I La substitución vacía se conoce como substitución de identidad y sedenota por ε.

Dr. Alejandro Guerra-Hernández (UV) Programación para la Inteligencia Artificial MIA 2018 71 / 101

Page 72: Programación para la Inteligencia Artificial ...ProgramaciónparalaInteligenciaArtificial ProgramaciónLógica Dr.AlejandroGuerra-Hernández Universidad Veracruzana CentrodeInvestigaciónenInteligenciaArtificial

Resolución-SLD Substitución

Caso (expresiones)

I Sea θ = {X1/t1, . . . ,Xn/tn} una substitución y α una expresión.Entonces αθ, el caso (instance) de α bajo θ, es la expresión obtenidaal substituir simultáneamente Xi por ti para 1 ≤ i ≤ n.

I Si αθ es una expresión de base, se dice que es un caso base y se diceque θ es una substitución de base para α.

I Si Σ = {α1, . . . , αn} es un conjunto finito de expresiones, entoncesΣθ denota {α1θ, . . . , αnθ}.

Dr. Alejandro Guerra-Hernández (UV) Programación para la Inteligencia Artificial MIA 2018 72 / 101

Page 73: Programación para la Inteligencia Artificial ...ProgramaciónparalaInteligenciaArtificial ProgramaciónLógica Dr.AlejandroGuerra-Hernández Universidad Veracruzana CentrodeInvestigaciónenInteligenciaArtificial

Resolución-SLD Substitución

Ejemplo

I Sea α la expresión p(Y , f (X )) yI sea θ la substitución {X/a,Y /g(g(X ))}.I El caso de α bajo θ es αθ = p(g(g(X )), f (a).I Observen que X e Y son simultáneamente remplazados por sus

respectivos términos, lo que implica que X en g(g(X )) no es afectadapor X/a.

Dr. Alejandro Guerra-Hernández (UV) Programación para la Inteligencia Artificial MIA 2018 73 / 101

Page 74: Programación para la Inteligencia Artificial ...ProgramaciónparalaInteligenciaArtificial ProgramaciónLógica Dr.AlejandroGuerra-Hernández Universidad Veracruzana CentrodeInvestigaciónenInteligenciaArtificial

Resolución-SLD Substitución

Composición de substituciones

I Sean θ = {X1/s1, . . . ,Xm/sm} y σ = {Y1/t1, . . .Yn/tn} dossubstituciones. Consideren la secuencia:

X1/(s1σ), . . . ,Xm/(smσ),Y1/t1, . . . ,Yn/tn

I Si se borran de esta sencuencia las ligaduras Xi/siσ cuando Xi = siσy cualquier ligadura Yj/tj donde Yj ∈ {X1, . . . ,Xm}, obtenemos lacomposición de θ y σ denotada por θσ.

Dr. Alejandro Guerra-Hernández (UV) Programación para la Inteligencia Artificial MIA 2018 74 / 101

Page 75: Programación para la Inteligencia Artificial ...ProgramaciónparalaInteligenciaArtificial ProgramaciónLógica Dr.AlejandroGuerra-Hernández Universidad Veracruzana CentrodeInvestigaciónenInteligenciaArtificial

Resolución-SLD Substitución

Ejemplo

I Sea θ = {X/f (Y ),Z/U} y σ = {Y /b,U/Z}.I Construimos la secuencia de ligaduras

X/(f (Y )σ),Z/(U)σ,Y /b,U/Z lo cual es X/f (b),Z/Z ,Y /b,U/Z .I Al borrar la ligadura Z/Z obtenemos la secuencia

X/f (b),Y /b,U/Z = θσ.

Dr. Alejandro Guerra-Hernández (UV) Programación para la Inteligencia Artificial MIA 2018 75 / 101

Page 76: Programación para la Inteligencia Artificial ...ProgramaciónparalaInteligenciaArtificial ProgramaciónLógica Dr.AlejandroGuerra-Hernández Universidad Veracruzana CentrodeInvestigaciónenInteligenciaArtificial

Resolución-SLD Substitución

Caso (substituciones)

I Sean θ y σ dos substituciones. Se dice que θ es un caso de σ, si existeuna substitución γ, tal que σγ = θ.

I La substitución θ = {X/f (b),Y /a} es un caso deσ = {X/f (X ),Y /a}, puesto que σ{X/b} = θ.

Dr. Alejandro Guerra-Hernández (UV) Programación para la Inteligencia Artificial MIA 2018 76 / 101

Page 77: Programación para la Inteligencia Artificial ...ProgramaciónparalaInteligenciaArtificial ProgramaciónLógica Dr.AlejandroGuerra-Hernández Universidad Veracruzana CentrodeInvestigaciónenInteligenciaArtificial

Resolución-SLD Substitución

Propiedades de las substituciones

I Sea α una expresión, y sea θ, σ y γ substituciones. Las siguientesrelaciones se cumplen:1. θ = θε = εθ2. (αθ)σ = α(θσ)3. (θσ)γ = θ(σγ)

Dr. Alejandro Guerra-Hernández (UV) Programación para la Inteligencia Artificial MIA 2018 77 / 101

Page 78: Programación para la Inteligencia Artificial ...ProgramaciónparalaInteligenciaArtificial ProgramaciónLógica Dr.AlejandroGuerra-Hernández Universidad Veracruzana CentrodeInvestigaciónenInteligenciaArtificial

Resolución-SLD Unificación

Unificación

I Uno de los pasos principales en el cómputo de una meta, es que dosfbf atómicas se vuelvan sintácticamente equivalentes.

I Este proceso se conoce como unificación y posee una soluciónalgorítmica.

I Sean α y β términos. Una substitución θ tal que α y β sean idénticos(αΘ = βΘ) es llamada unificador de α y β.

I unifica(conoce(juan,X ), conoce(Y ,Z )) = {Y /juan,X/Z}

Dr. Alejandro Guerra-Hernández (UV) Programación para la Inteligencia Artificial MIA 2018 78 / 101

Page 79: Programación para la Inteligencia Artificial ...ProgramaciónparalaInteligenciaArtificial ProgramaciónLógica Dr.AlejandroGuerra-Hernández Universidad Veracruzana CentrodeInvestigaciónenInteligenciaArtificial

Resolución-SLD Unificación

Unificador más general (MGU)

I Una substitución θ se dice más general que una substitución σ, si ysólo si existe una substitución γ tal que σ = θγ.

I Un unificador θ se dice el unificador más general (MGU: Most GeneralUnifier) de dos términos, si y sólo si θ es más general que cualquierotro unificador entre esos términos.

Dr. Alejandro Guerra-Hernández (UV) Programación para la Inteligencia Artificial MIA 2018 79 / 101

Page 80: Programación para la Inteligencia Artificial ...ProgramaciónparalaInteligenciaArtificial ProgramaciónLógica Dr.AlejandroGuerra-Hernández Universidad Veracruzana CentrodeInvestigaciónenInteligenciaArtificial

Resolución-SLD Unificación

Forma resuelta y MGU

I Un conjunto de ecuaciones {X1 = t1, . . . ,Xn = tn} está en formaresuelta, si y sólo si X1, . . . ,Xn son variables distintas que no ocurrenen t1, . . . , tn.

I Sea {X1 = t1, . . . ,Xn = tn} un conjunto de ecuaciones en formaresuelta. Entonces {X1/t1, . . . ,Xn/tn} es un MGU (idempotente) dela forma resuelta.

Dr. Alejandro Guerra-Hernández (UV) Programación para la Inteligencia Artificial MIA 2018 80 / 101

Page 81: Programación para la Inteligencia Artificial ...ProgramaciónparalaInteligenciaArtificial ProgramaciónLógica Dr.AlejandroGuerra-Hernández Universidad Veracruzana CentrodeInvestigaciónenInteligenciaArtificial

Resolución-SLD Unificación

Equivalencia

I Dos conjuntos de ecuaciones E1 y E2 se dicen equivalentes, si tienenel mismo conjunto de unificadores.

I Para computar el MGU de dos términos α y β, primero intentetransformar la ecuación {α = β} en una forma resuelta equivalente.Si esto falla, entonces mgu(α, β) = fallo. Sin embargo, si una formaresuelta {X1 = t1, . . . ,Xn = tn} existe, entoncesmgu(α, β) = {X1/t1, . . . ,Xn/tn}.

Dr. Alejandro Guerra-Hernández (UV) Programación para la Inteligencia Artificial MIA 2018 81 / 101

Page 82: Programación para la Inteligencia Artificial ...ProgramaciónparalaInteligenciaArtificial ProgramaciónLógica Dr.AlejandroGuerra-Hernández Universidad Veracruzana CentrodeInvestigaciónenInteligenciaArtificial

Resolución-SLD Unificación

Algoritmo de unificación

1: function Unifica(E) . E es un conjunto de ecuaciones2: repeat3: (s = t)← seleccionar(E)4: if f (s1, . . . , sn) = f (t1, . . . , tn) (n ≥ 0) then5: remplazar (s = t) por s1 = t1, . . . , sn = tn6: else if f (s1, . . . , sm) = g(t1, . . . , tn) (f /m 6= g/n) then7: return(fallo)8: else if X = X then9: remover la X = X

10: else if t = X then11: remplazar t = X por X = t12: else if X = t then13: if subtermino(X ,t) then14: return(fallo)15: else remplazar todo X por t16: end if17: end if18: until No hay accion posible para E19: end function

Dr. Alejandro Guerra-Hernández (UV) Programación para la Inteligencia Artificial MIA 2018 82 / 101

Page 83: Programación para la Inteligencia Artificial ...ProgramaciónparalaInteligenciaArtificial ProgramaciónLógica Dr.AlejandroGuerra-Hernández Universidad Veracruzana CentrodeInvestigaciónenInteligenciaArtificial

Resolución-SLD Unificación

Ejemplo 1

I El conjunto {f (X , g(Y )) = f (g(Z ),Z )} tiene una forma resuelta,pues:

{f (X , g(Y )) = f (g(Z ),Z )} → {X = g(Z ), g(Y ) = Z}→ {X = g(Z ),Z = g(Y )}→ {X = g(g(Y ),Z = g(Y )}

Dr. Alejandro Guerra-Hernández (UV) Programación para la Inteligencia Artificial MIA 2018 83 / 101

Page 84: Programación para la Inteligencia Artificial ...ProgramaciónparalaInteligenciaArtificial ProgramaciónLógica Dr.AlejandroGuerra-Hernández Universidad Veracruzana CentrodeInvestigaciónenInteligenciaArtificial

Resolución-SLD Unificación

Ejemplo 2

I El conjunto {f (X , g(X ), b) = f (a, g(Z ),Z )} no tiene forma resuelta,puesto que:

→ {X = a, g(X ) = g(Z ), b = Z}→ {X = a, g(a) = g(Z ), b = Z}→ {X = a, a = Z , b = Z}→ {X = a,Z = a, b = Z}→ {X = a,Z = a, b = a}→ fallo

Dr. Alejandro Guerra-Hernández (UV) Programación para la Inteligencia Artificial MIA 2018 84 / 101

Page 85: Programación para la Inteligencia Artificial ...ProgramaciónparalaInteligenciaArtificial ProgramaciónLógica Dr.AlejandroGuerra-Hernández Universidad Veracruzana CentrodeInvestigaciónenInteligenciaArtificial

Resolución-SLD Unificación

Ejemplo 3

I El conjunto {f (X , g(X )) = f (Z ,Z )} no tiene forma resuelta, puestoque:

→ {X = Z , g(X ) = Z}→ {X = Z , g(Z ) = Z}→ {X = Z ,Z = g(Z )}

→ fallo

Dr. Alejandro Guerra-Hernández (UV) Programación para la Inteligencia Artificial MIA 2018 85 / 101

Page 86: Programación para la Inteligencia Artificial ...ProgramaciónparalaInteligenciaArtificial ProgramaciónLógica Dr.AlejandroGuerra-Hernández Universidad Veracruzana CentrodeInvestigaciónenInteligenciaArtificial

Resolución-SLD Unificación

Consideraciones

I Este algoritmo termina y regresa una forma resuelta equivalente alconjunto de ecuaciones de su entrada, o bien regresa fallo si la formaresuelta no existe.

I Sin embargo, el computar subtermino(X , t) (verificación deocurrencia) hace que el algoritmo sea altamente ineficiente.

I El standard ISO Prolog (1995) declara que el resultado de launificación es no decidible.

I Al eliminar la verificación de ocurrencia es posible que al intentarresolver X = f (X ) obtengamos X = f (f (X )) · · · = f (f (f . . . )).

Dr. Alejandro Guerra-Hernández (UV) Programación para la Inteligencia Artificial MIA 2018 86 / 101

Page 87: Programación para la Inteligencia Artificial ...ProgramaciónparalaInteligenciaArtificial ProgramaciónLógica Dr.AlejandroGuerra-Hernández Universidad Veracruzana CentrodeInvestigaciónenInteligenciaArtificial

Resolución-SLD Unificación

Como búsqueda en un latice de generalización

?

>

f(X, Y )

f(X, b) f(a, Y ) f(X, c)

......

......

......

...

f(a, b) f(a, c)...

...

Dr. Alejandro Guerra-Hernández (UV) Programación para la Inteligencia Artificial MIA 2018 87 / 101

Page 88: Programación para la Inteligencia Artificial ...ProgramaciónparalaInteligenciaArtificial ProgramaciónLógica Dr.AlejandroGuerra-Hernández Universidad Veracruzana CentrodeInvestigaciónenInteligenciaArtificial

Resolución-SLD Resolución-SLD

Formalizando

I El método de razonamiento descrito informalmente al inicio de estasesión, puede resumirse con la siguiente regla de inferencia:

∀¬(α1 ∧ · · · ∧ αi−1 ∧ αi ∧ αi+1 ∧ · · · ∧ αm) ∀(β0 ← β1 ∧ · · · ∧ βn)∀¬(α1 ∧ · · · ∧ αi−1 ∧ β1 ∧ · · · ∧ βn ∧ αi+1 ∧ · · · ∧ αm)θ

I donde:1. α1, . . . , αm son fbf atómicas.2. β0 ← β1, . . . , βn es una cláusula definitiva en el programa ∆ (n ≥ 0).3. MGU(αi , β0) = θ.

Dr. Alejandro Guerra-Hernández (UV) Programación para la Inteligencia Artificial MIA 2018 88 / 101

Page 89: Programación para la Inteligencia Artificial ...ProgramaciónparalaInteligenciaArtificial ProgramaciónLógica Dr.AlejandroGuerra-Hernández Universidad Veracruzana CentrodeInvestigaciónenInteligenciaArtificial

Resolución-SLD Resolución-SLD

Observaciones

I La regla tiene dos premisas: una meta y una cláusula definitivas.I El alcance de los cuantificadores es disjunto.I Solo hay un cuantificador universal para la conclusión. Por lo tanto,

se requiere que el conjunto de variables en las premisas sea disjunto.I Puesto que todas las variables en las premisas están cuantificadas, es

siempre posible renombrar las variables de la cláusula definitiva paracumplir con esta condición.

Dr. Alejandro Guerra-Hernández (UV) Programación para la Inteligencia Artificial MIA 2018 89 / 101

Page 90: Programación para la Inteligencia Artificial ...ProgramaciónparalaInteligenciaArtificial ProgramaciónLógica Dr.AlejandroGuerra-Hernández Universidad Veracruzana CentrodeInvestigaciónenInteligenciaArtificial

Resolución-SLD Resolución-SLD

S de selección

I La meta definida puede incluir muchas fbf atómicas que unifican conla cabeza de alguna cláusula en el programa.

I En este caso, es deseable contar con un mecanismo determinista paraseleccionar un átomo αi a unificar.

I Se asume una función que selecciona una submeta de la metadefinida (función de selección).

Dr. Alejandro Guerra-Hernández (UV) Programación para la Inteligencia Artificial MIA 2018 90 / 101

Page 91: Programación para la Inteligencia Artificial ...ProgramaciónparalaInteligenciaArtificial ProgramaciónLógica Dr.AlejandroGuerra-Hernández Universidad Veracruzana CentrodeInvestigaciónenInteligenciaArtificial

Resolución-SLD Resolución-SLD

Usando la resolución-SLD

I El punto de partida es una meta definida G0:

← α1, . . . , αm (m ≥ 0)

I Una submeta αi será seleccionada. Una nueva meta G1 se construyeal seleccionar una cláusula del programa β0 ← β1, . . . , βn (n ≥ 0)cuya cabeza β0 unifica con αi , resultando en θ1. G1 tiene la forma:

← (α1, . . . , αi−1, β1, . . . , βn, . . . , αm)θ1

I Ahora es posible aplicar el principio de resolución a G1 para obtenerG2, y así sucesivamente.

Dr. Alejandro Guerra-Hernández (UV) Programación para la Inteligencia Artificial MIA 2018 91 / 101

Page 92: Programación para la Inteligencia Artificial ...ProgramaciónparalaInteligenciaArtificial ProgramaciónLógica Dr.AlejandroGuerra-Hernández Universidad Veracruzana CentrodeInvestigaciónenInteligenciaArtificial

Resolución-SLD Resolución-SLD

Terminación

I El proceso puede terminar o no. Hay dos situaciones donde no esposible obtener Gi+1 a partir de Gi :1. cuando la submeta seleccionada no puede ser resuelta (no es unificable

con la cabeza de una cláusula del programa).2. cuando Gi = � (meta vacía = f).

Dr. Alejandro Guerra-Hernández (UV) Programación para la Inteligencia Artificial MIA 2018 92 / 101

Page 93: Programación para la Inteligencia Artificial ...ProgramaciónparalaInteligenciaArtificial ProgramaciónLógica Dr.AlejandroGuerra-Hernández Universidad Veracruzana CentrodeInvestigaciónenInteligenciaArtificial

Resolución-SLD Resolución-SLD

Derivación-SLD

I Sea G0 una meta definitiva, ∆ un programa definitivo y R unafunción de selección. Una derivación SLD de G0 (usando ∆ y R) esuna secuencia finita o infinita de metas:

G0α0 G1 . . .Gn−1

αn−1 Gn

I αi ∈ ∆. Las variables en αi se renombran con subíndices i .

Dr. Alejandro Guerra-Hernández (UV) Programación para la Inteligencia Artificial MIA 2018 93 / 101

Page 94: Programación para la Inteligencia Artificial ...ProgramaciónparalaInteligenciaArtificial ProgramaciónLógica Dr.AlejandroGuerra-Hernández Universidad Veracruzana CentrodeInvestigaciónenInteligenciaArtificial

Resolución-SLD Resolución-SLD

Substitución computada

I Cada derivación SLD nos lleva a una secuencias de MGUs θ1, . . . , θn.La composición

θ ={θ1θ2 . . . θn si n > 0ε si n = 0

de MGUs se conoce como la substitución computada de la derivación.

Dr. Alejandro Guerra-Hernández (UV) Programación para la Inteligencia Artificial MIA 2018 94 / 101

Page 95: Programación para la Inteligencia Artificial ...ProgramaciónparalaInteligenciaArtificial ProgramaciónLógica Dr.AlejandroGuerra-Hernández Universidad Veracruzana CentrodeInvestigaciónenInteligenciaArtificial

Resolución-SLD Resolución-SLD

Ejemplo

I Consideren la meta definida ← orgulloso(Z ) y el programa del iniciode esta clase. Entonces

G0 = ← orgulloso(Z ).α0 = orgulloso(X0)← padre(X0,Y0), recien_nacido(Y0).

I La unificación de orgulloso(Z ) y orgulloso(X0) nos da el MGUθ1 = {X0/Z}. Asumamos que nuestra función de selección es tomarla submeta más a la izquierda:

G1 = ← padre(Z ,Y0), recien_nacido(Y0).α1 = padre(X1,Y1)← papa(X1,Y1).

con θ2 = {X1/Z ,Y1/Y0}.

Dr. Alejandro Guerra-Hernández (UV) Programación para la Inteligencia Artificial MIA 2018 95 / 101

Page 96: Programación para la Inteligencia Artificial ...ProgramaciónparalaInteligenciaArtificial ProgramaciónLógica Dr.AlejandroGuerra-Hernández Universidad Veracruzana CentrodeInvestigaciónenInteligenciaArtificial

Resolución-SLD Resolución-SLD

Ejemplo

I La derivación continua como sigue:

G2 = ← papa(Z ,Y0), recien_nacido(Y0).α2 = papa(juan,marta).G3 = ← recien_nacido(marta).α3 = recien_nacido(marta).G4 = �

I la substitución computada para esta derivación es:

θ1θ2θ3θ4 = {X0/Z}{X1/Z ,Y1/Y0}{Z/juan,Y0/marta}ε= {X0/juan,X1/juan,Y1/marta,

Z/juan,Y0/marta}

Dr. Alejandro Guerra-Hernández (UV) Programación para la Inteligencia Artificial MIA 2018 96 / 101

Page 97: Programación para la Inteligencia Artificial ...ProgramaciónparalaInteligenciaArtificial ProgramaciónLógica Dr.AlejandroGuerra-Hernández Universidad Veracruzana CentrodeInvestigaciónenInteligenciaArtificial

Resolución-SLD Resolución-SLD

Refutación-SLD y derivación fallida

I Una derivación SLD finita:

G0α0 G1 . . .Gn−1

αn−1 Gn

donde Gn = �, se llama refutación SLD de G0.I Una derivación de la metaG0 cuyo último elemento no es la meta

vacía y no puede resolverse con ninguna cláusula del programa, esllamada derivación fallida.

Dr. Alejandro Guerra-Hernández (UV) Programación para la Inteligencia Artificial MIA 2018 97 / 101

Page 98: Programación para la Inteligencia Artificial ...ProgramaciónparalaInteligenciaArtificial ProgramaciónLógica Dr.AlejandroGuerra-Hernández Universidad Veracruzana CentrodeInvestigaciónenInteligenciaArtificial

Resolución-SLD Resolución-SLD

Arbol-SLD

I Sea ∆ un prog. definitivo, G0 una meta definitiva, y R una función deselección. El árbol-SLD de G0 (usando ∆ y R) es un árboletiquetado, posiblemente infinito, que cumple con:I La raíz del árbol está etiquetada por G0.I Si el árbol contiene un nodo etiquetado como Gi y existe una cláusula

renombrada αi ∈ ∆ tal que Gi+1 es dervidada de Gi y αi via R,entonces el nodo etiquetado como Gi tiene un hijo etiquetado Gi+1 Elarco entre ambos es αi .

Dr. Alejandro Guerra-Hernández (UV) Programación para la Inteligencia Artificial MIA 2018 98 / 101

Page 99: Programación para la Inteligencia Artificial ...ProgramaciónparalaInteligenciaArtificial ProgramaciónLógica Dr.AlejandroGuerra-Hernández Universidad Veracruzana CentrodeInvestigaciónenInteligenciaArtificial

Resolución-SLD Resolución-SLD

Ejemplo

← orgulloso(Z )

← padre(Z ,Y0), recien_nacido(Y0)

← papa(Z ,Y0), recien_nacido(Y0)

← recien_nacido(marta)

← mama(Z ,Y0), recien_nacido(Y0)

Dr. Alejandro Guerra-Hernández (UV) Programación para la Inteligencia Artificial MIA 2018 99 / 101

Page 100: Programación para la Inteligencia Artificial ...ProgramaciónparalaInteligenciaArtificial ProgramaciónLógica Dr.AlejandroGuerra-Hernández Universidad Veracruzana CentrodeInvestigaciónenInteligenciaArtificial

Resolución-SLD Resolución-SLD

Propiedades de la resolución-SLD

Correctez Sea ∆ un programa definitivo, R una función de selección, yθ una substitución de respuesta computada a partir de ∆ yR para una meta ← α1, . . . , αm. Entonces∀((α1 ∧ · · · ∧ αm)θ) es consecuencia lógica del programa ∆.

Completez Sea ∆ un programa definitivo, R una función de selección y← α1, . . . , αm una meta definitiva. Si∆ |= ∀((α1 ∧ · · · ∧ αm)σ), entonces existe una refutación de← α1, . . . , αm vía R con una substitución de respuestacomputada θ, tal que (α1 ∧ · · · ∧ αm)σ es un caso de(α1 ∧ · · · ∧ αm)θ.

Dr. Alejandro Guerra-Hernández (UV) Programación para la Inteligencia Artificial MIA 2018 100 / 101

Page 101: Programación para la Inteligencia Artificial ...ProgramaciónparalaInteligenciaArtificial ProgramaciónLógica Dr.AlejandroGuerra-Hernández Universidad Veracruzana CentrodeInvestigaciónenInteligenciaArtificial

Resolución-SLD Resolución-SLD

Referencias I

M Genesereth y N Nilsson. Logical Foundations for Artificial Intelligence. Palo Alto, CA.,USA: Morgan Kauffman Publishers, Inc., 1987.

S-H Nienhuys-Cheng y R de Wolf. Foundations of Inductive Logic Programming. Ed. porJG Carbonell y J Sickmann. Vol. 1228. Lecture Notes in Artificial Intelligence. BerlinHeidelberg: Springer-Verlag, 1997.

S Russell y P Norvig. Artificial Intelligence: A Modern Approach. Tercera. Prentice HallSeries in Artificial Intelligence. USA: Prentice Hall, 2009.

Dr. Alejandro Guerra-Hernández (UV) Programación para la Inteligencia Artificial MIA 2018 101 / 101