4.3 Reglas y Programación Lógica

Page 1

Programaci贸n L贸gica y Reglas Lo que es nacido de la carne, carne es; lo que es nacido del Esp铆ritu, esp铆ritu es. Jesucristo Jn.3.6


Resolución de Primer-OrdenLetras mayúsculas: ∀x, P(x) → Q(x) P(A) Q(A)

∀x, ¬P(x) v Q(x) P(A) Q(A)

¬P(A) v Q(A) P(A) Q(A)

Silogismo: Todos los hombres son mortales Sócrates es un hombre Sócrates es mortal

Equivalencia por definición de implicación

constantes Letras minúsculas: variables

Dos nuevas cosas: •Convertir LPO a forma clausal •Resuelva con la sustitución de variables

Sustituya A por x, sigue verdadero Entonces Resolución proposicional


Sustituciones


Sustituciones P(x, f(y), B) : una sentencia axiomรกtica


Sustituciones P(x, f(y), B) : una sentencia axiom谩tica Instancias de la sustituci贸n

Sustituci贸n {v1/t1, .., vn/tn}

Comentarios


Sustituciones P(x, f(y), B) : una sentencia axiom谩tica Instancias de la sustituci贸n

Sustituci贸n {v1/t1, .., vn/tn}

Comentarios

P(z, f(w), B)

{x/z, y/w}

Variante alfab茅tica


Sustituciones P(x, f(y), B) : una sentencia axiom谩tica Instancias de la sustituci贸n

Sustituci贸n {v1/t1, .., vn/tn}

Comentarios

P(z, f(w), B)

{x/z, y/w}

Variante alfab茅tica

P(x, f(A), B)

{y/a}


Sustituciones P(x, f(y), B) : una sentencia axiom谩tica Instancias de la sustituci贸n

Sustituci贸n {v1/t1, .., vn/tn}

Comentarios

P(z, f(w), B)

{x/z, y/w}

Variante alfab茅tica

P(x, f(A), B)

{y/a}

P(g(z), f(A), B)

{x/g(z), y/A}


Sustituciones P(x, f(y), B) : una sentencia axiom谩tica Instancias de la sustituci贸n

Sustituci贸n {v1/t1, .., vn/tn}

Comentarios

P(z, f(w), B)

{x/z, y/w}

Variante alfab茅tica

P(x, f(A), B)

{y/a}

P(g(z), f(A), B)

{x/g(z), y/A}

P(C, f(A), B)

{x/C, y/A}

Motivo de la instancia


Sustituciones P(x, f(y), B) : una sentencia axiomática Instancias de la sustitución

Sustitución {v1/t1, .., vn/tn}

Comentarios

P(z, f(w), B)

{x/z, y/w}

Variante alfabética

P(x, f(A), B)

{y/a}

P(g(z), f(A), B)

{x/g(z), y/A}

P(C, f(A), B)

{x/C, y/A}

Aplicando una sustitución: P(x, f(y), B) {y/A} = P(x, f(A), B) P(x, f(y), B) {y/A, x/y } = P(A, f(A), B)

Motivo de la instancia


Unificación  Las expresiones ω1 y ω2 son unificables ssi

existe una sustitución x tal que ω1 s = ω2 s


Unificación  Las expresiones ω1 y ω2 son unificables ssi

existe una sustitución x tal que ω1 s = ω2 s  Sea ω1 = x y ω2 = y las siguientes son unificadores s

ω1 s

ω2 s


Unificación  Las expresiones ω1 y ω2 son unificables ssi

existe una sustitución x tal que ω1 s = ω2 s  Sea ω1 = x y ω2 = y las siguientes son unificadores s

ω1 s

ω2 s

{y/x}

x

x


Unificación  Las expresiones ω1 y ω2 son unificables ssi

existe una sustitución x tal que ω1 s = ω2 s  Sea ω1 = x y ω2 = y las siguientes son unificadores s

ω1 s

ω2 s

{y/x}

x

x

{x/y}

y

y


Unificación  Las expresiones ω1 y ω2 son unificables ssi

existe una sustitución x tal que ω1 s = ω2 s  Sea ω1 = x y ω2 = y las siguientes son unificadores s

ω1 s

ω2 s

{y/x}

x

x

{x/y}

y

y

{x/f(f(A)), y/f(f(A))}

f(f(A))

f(f(A))


Unificación  Las expresiones ω1 y ω2 son unificables ssi

existe una sustitución x tal que ω1 s = ω2 s  Sea ω1 = x y ω2 = y las siguientes son unificadores s

ω1 s

ω2 s

{y/x}

x

x

{x/y}

y

y

{x/f(f(A)), y/f(f(A))}

f(f(A))

f(f(A))

{x/A, y/A}

A

A


Unificador mรกs general


Unificador más general  g es un unificador más general de ω1 y ω2 ssi para

todo unificador s, existe s´ tal que ω1 s = (ω1 g) s´ y ω2 s= (ω2 g) s´


Unificador más general  g es un unificador más general de ω1 y ω2 ssi para

todo unificador s, existe s´ tal que ω1 s = (ω1 g) s´ y ω2 s= (ω2 g) s´ ω1

ω2

UMG

P(x)

P(A)

{x/A}


Unificador más general  g es un unificador más general de ω1 y ω2 ssi para

todo unificador s, existe s´ tal que ω1 s = (ω1 g) s´ y ω2 s= (ω2 g) s´ ω1

ω2

UMG

P(x)

P(A)

{x/A}

P(f(x), y, g(x))

P(f(x), x, g(x))

{y/x} o{x/y}


Unificador más general  g es un unificador más general de ω1 y ω2 ssi para

todo unificador s, existe s´ tal que ω1 s = (ω1 g) s´ y ω2 s= (ω2 g) s´ ω1

ω2

UMG

P(x)

P(A)

{x/A}

P(f(x), y, g(x))

P(f(x), x, g(x))

{y/x} o{x/y}

P(f(x), y, g(y))

P(f(x), z, g(x))

{y/x, z/y}


Unificador más general  g es un unificador más general de ω1 y ω2 ssi para

todo unificador s, existe s´ tal que ω1 s = (ω1 g) s´ y ω2 s= (ω2 g) s´ ω1

ω2

UMG

P(x)

P(A)

{x/A}

P(f(x), y, g(x))

P(f(x), x, g(x))

{y/x} o{x/y}

P(f(x), y, g(y))

P(f(x), z, g(x))

{y/x, z/y}

P(x, B,B)

P(A, y, z)

{x/A, y/B, z/B}


Unificador más general  g es un unificador más general de ω1 y ω2 ssi para

todo unificador s, existe s´ tal que ω1 s = (ω1 g) s´ y ω2 s= (ω2 g) s´ ω1

ω2

UMG

P(x)

P(A)

{x/A}

P(f(x), y, g(x))

P(f(x), x, g(x))

{y/x} o{x/y}

P(f(x), y, g(y))

P(f(x), z, g(x))

{y/x, z/y}

P(x, B,B)

P(A, y, z)

{x/A, y/B, z/B}

P(g(f(v)), g(u))

P(x, x)

{x/g(f(v)), u/f(v)}


Unificador más general  g es un unificador más general de ω1 y ω2 ssi para

todo unificador s, existe s´ tal que ω1 s = (ω1 g) s´ y ω2 s= (ω2 g) s´ ω1

ω2

UMG

P(x)

P(A)

{x/A}

P(f(x), y, g(x))

P(f(x), x, g(x))

{y/x} o{x/y}

P(f(x), y, g(y))

P(f(x), z, g(x))

{y/x, z/y}

P(x, B,B)

P(A, y, z)

{x/A, y/B, z/B}

P(g(f(v)), g(u))

P(x, x)

{x/g(f(v)), u/f(v)}

P(x, f(x))

P(x, x)

No es UMG!


Algoritmo de unificaci贸n unificar(Expr x, Expr y, Subst a) {


Algoritmo de unificaci贸n unificar(Expr x, Expr y, Subst a) { Si a= falla, retorne falla de lo contrario si x= y, retorne a


Algoritmo de unificaci贸n unificar(Expr x, Expr y, Subst a) { Si a= falla, retorne falla de lo contrario si x= y, retorne a de lo contrario si x es una variable, retorne unify-var(x, y, s) de lo contrario si y es una variable, retorne unify-var(y, x, s)


Algoritmo de unificaci贸n unificar(Expr x, Expr y, Subst a) { Si a= falla, retorne falla de lo contrario si x= y, retorne a de lo contrario si x es una variable, retorne unify-var(x, y, s) de lo contrario si y es una variable, retorne unify-var(y, x, s) de lo contrario si x es un predicado o funci贸n, Si y tiene el mismo operador, retorne unify(args(x), args(y), s)


Algoritmo de unificaci贸n unificar(Expr x, Expr y, Subst a) { Si a= falla, retorne falla de lo contrario si x= y, retorne a de lo contrario si x es una variable, retorne unify-var(x, y, s) de lo contrario si y es una variable, retorne unify-var(y, x, s) de lo contrario si x es un predicado o funci贸n, Si y tiene el mismo operador, retorne unify(args(x), args(y), s) De lo contrario retorne falla


Algoritmo de unificaci贸n unificar(Expr x, Expr y, Subst a) { Si a= falla, retorne falla de lo contrario si x= y, retorne a de lo contrario si x es una variable, retorne unify-var(x, y, s) de lo contrario si y es una variable, retorne unify-var(y, x, s) de lo contrario si x es un predicado o funci贸n, Si y tiene el mismo operador, retorne unify(args(x), args(y), s) De lo contrario retorne falla de lo contrario ; x y y deben ser listas retorne unify(rest(x), rest(y), unify(primero(x), primero(y), s))


Subrutina Unify-var Sustituyendo var y x tanto cuanto posible, entonces agregue una nueva uni贸n Unify-var(Variable var, Expr x, Subst s){


Subrutina Unify-var Sustituyendo var y x tanto cuanto posible, entonces agregue una nueva uni贸n Unify-var(Variable var, Expr x, Subst s){ Si var es unida a val en s, retorne unify(val, x, s)


Subrutina Unify-var Sustituyendo var y x tanto cuanto posible, entonces agregue una nueva uni贸n Unify-var(Variable var, Expr x, Subst s){ Si var es unida a val en s, retorne unify(val, x, s) de lo contrario si x es limitado a val en s, retorne unify-var(var, val, s)


Subrutina Unify-var Sustituyendo var y x tanto cuanto posible, entonces agregue una nueva uni贸n Unify-var(Variable var, Expr x, Subst s){ Si var es unida a val en s, retorne unify(val, x, s) de lo contrario si x es limitado a val en s, retorne unify-var(var, val, s) de lo contrario si var ocurre en cualquier lugar en (x, s), retorne falla de lo contrario retorne suma((var/x), s) }


Algunos ejemplos ω1

ω2

UMG

A(B,C)

A(x,y)

{x/B, y/C}

A(x, f(D,x))

A(E, f(D, y))

{x/E, y/E}

A(x, y)

A(f(C, y), z)

{x/f(C, y), y/z}

P(A, x, f(g(y)))

P(y, f(z), f(z))

{y/A, x/f(z), z/g(y)}

P(x, g(f(A)), f(x))

P(f(y), z, y)

ninguno

P(x, f(y))

P(z, g(w))

ninguno


Lógica en la práctica  Lenguaje de la lógica es extremadamente poderoso  Dice que es verdad y no como se usa

∀ x, y (∃ z Padres (x, z) ∧ Padres (z, y)) ↔ Abuelos (x, y) Dado padres, encuentre abuelos Dado abuelos, encuentre padres


Lógica en la práctica  Lenguaje de la lógica es extremadamente poderoso  Dice que es verdad y no como se usa

∀ x, y (∃ z Padres (x, z) ∧ Padres (z, y)) ↔ Abuelos (x, y) Dado padres, encuentre abuelos Dado abuelos, encuentre padres  Pero el probador-de-teoremas de resolución es ineficiente!  Para recobrar viabilidad:  Limite el lenguaje  Simplifique el algoritmo de prueba  Sistemas basados en reglas  Programación Lógica


Cláusulas Horn  Una cláusula es Horn si tiene como máximo

un literal positivo   

¬P1 v … v ¬Pn v Q (Regla) Q (Hecho) ¬P1 v … v ¬Pn (restricción consistente)

 No se trabajará con restricciones consistentes


Cláusulas Horn  Una cláusula es de Horn si tiene como

máximo un literal positivo

¬P1 v … v ¬Pn v Q (Regla)  Q (Hecho)  ¬P1 v … v ¬Pn (restricción consistente)  No se trabajará con restricciones consistentes 

 Notación de regla   

P1 ^ … ^Pn → Q (Lógica) If P1 … Pn Then Q (Sistema basado en reglas) Q : - P1, …, Pn (Prolog)

 Pj son llamados antecedentes (o cuerpo)  Q es llamado consecuente (o cabeza)


Limitaciones  No se puede concluir con negación 

P→¬Q

 No se puede concluir con disyunciones 

P1 ^ P2 → Q1 v Q2


Inferencia: Backchaining  Para “probar” una literal C  Poner C y una literal Ans (respuesta) en una pila


Inferencia: Backchaining  Para “probar” una literal C  Poner C y una literal Ans (respuesta) en una pila  Repita hasta que la pila solo tenga la literal Ans o no haya acciones disponible. 

Saque la literal L de la pila


Inferencia: Backchaining  Para “probar” una literal C  Poner C y una literal Ans (respuesta) en una pila  Repita hasta que la pila solo tenga la literal Ans o no haya acciones disponible.  

Saque la literal L de la pila Seleccione una regla ( o hecho) cuyo consecuente unifique con L  Empuje los antecedente ( en orden) en la pila  Aplique el unificador a la pila completa  Renombre las variables de la pila


Inferencia: Backchaining  Para “probar” una literal C  Poner C y una literal Ans (respuesta) en una pila  Repita hasta que la pila solo tenga la literal Ans o no haya acciones disponible.  

Saque la literal L de la pila Seleccione una regla ( o hecho) cuyo consecuente unifique con L  Empuje los antecedente ( en orden) en la pila  Aplique el unificador a la pila completa  Renombre las variables de la pila

Si no hace match, falla


Ejemplo 1. 2. 3. 4. 5.

Padre(A, B) ; hecho Madre(B, C) ; hecho Abuelo(?x, ?z) :- Padres(?x, ?y), Padres(?y, ?z) Padres(?x, ?y) :- Padre(?x, ?y) Padres(?x, ?y) :- Madre(?x, ?y)


Ejemplo Padre(A, B) ; hecho Madre(B, C) ; hecho Abuelo(?x, ?z) :- Padres(?x, ?y), Padres(?y, ?z) Padres(?x, ?y) :- Padre(?x, ?y) Padres(?x, ?y) :- Madre(?x, ?y) Probar:

1. 2. 3. 4. 5. • •

Abuelo(?g, C), Ans(?g)


Ejemplo Padre(A, B) ; hecho Madre(B, C) ; hecho Abuelo(?x, ?z) :- Padres(?x, ?y), Padres(?y, ?z) Padres(?x, ?y) :- Padre(?x, ?y) Padres(?x, ?y) :- Madre(?x, ?y) Probar:

1. 2. 3. 4. 5. • •

Abuelo(?g, C), Ans(?g) •

{3, ?x/?g, ?z/ C; ?y ⇒ ?y1, ?g ⇒?g1}

Padres(?g1, ?y1), Padres(?y1, C), Ans (?g1)


Ejemplo 1. 2. 3. 4. 5. •

Padre(A, B) ; hecho Madre(B, C) ; hecho Abuelo(?x, ?z) :- Padres(?x, ?y), Padres(?y, ?z) Padres(?x, ?y) :- Padre(?x, ?y) Padres(?x, ?y) :- Madre(?x, ?y) Probar: • Abuelo(?g, C), Ans(?g) • •

Padres(?g1, ?y1), Padres(?y1, C), Ans (?g1) •

{3, ?x/?g, ?z/ C; ?y ⇒y1, ?g ⇒?g1}

{4, ?x/?g1, ?y/?y1; ?y1 ⇒?y2, ?g1/?g2

Padre(?g2, ?y2) , Padres(?y2, C), Ans(?g2) •

{ 1, ?g2/A, ?y2/B}


Ejemplo Padre(A, B) ; hecho Madre(B, C) ; hecho Abuelo(?x, ?z) :- Padres(?x, ?y), Padres(?y, ?z) Padres(?x, ?y) :- Padre(?x, ?y) Padres(?x, ?y) :- Madre(?x, ?y) Probar:

1. 2. 3. 4. 5. • •

Abuelo(?g, C), Ans(?g) •

Padres(?g1, ?y1), Padres(?y1, C), Ans (?g1) •

{4, ?x/?g1, ?y/?y1; ?y1 ⇒?y2, ?g1/?g2

Padre(?g2, ?y2) , Padres(?y2, C), Ans(?g2) •

{3, ?x/?g, ?z/ C; ?y ⇒y1, ?g ⇒?g1}

{ 1, ?g2/A , ?y2/B}

Padres(B, C), Ans(A)


Ejemplo Padre(A, B) ; hecho Madre(B, C) ; hecho Abuelo(?x, ?z) :- Padres(?x, ?y), Padres(?y, ?z) Padres(?x, ?y) :- Padre(?x, ?y) Padres(?x, ?y) :- Madre(?x, ?y) Probar:

1. 2. 3. 4. 5. • •

Abuelo(?g, C), Ans(?g) •

Padres(?g1, ?y1), Padres(?y1, C), Ans (?g1) •

{ 1, ?g2/A , ?y2/B}

Padres(B, C), Ans(A) <falla> •

{4, ?x/?g1, ?y/?y1; ?y1 ⇒?y2, ?g1/?g2

Padre(?g2, ?y2) , Padres(?y2, C), Ans(?g2) •

{3, ?x/?g, ?z/ C; ?y ⇒y1, ?g ⇒?g1}

{5, ?x/B, ?y/C}

Madre(B,C), Ans (A)


Ejemplo Padre(A, B) ; hecho Madre(B, C) ; hecho Abuelo(?x, ?z) :- Padres(?x, ?y), Padres(?y, ?z) Padres(?x, ?y) :- Padre(?x, ?y) Padres(?x, ?y) :- Madre(?x, ?y) Probar:

1. 2. 3. 4. 5. • •

Abuelo(?g, C), Ans(?g) •

Padres(?g1, ?y1), Padres(?y1, C), Ans (?g1) •

{5, ?x/B, ?y/C}

Madre(B,C), Ans (A) •

{ 1, ?g2/A , ?y2/B}

Padres(B, C), Ans(A) <falla> •

{4, ?x/?g1, ?y/?y1; ?y1 ⇒?y2, ?g1/?g2

Padre(?g2, ?y2) , Padres(?y2, C), Ans(?g2) •

{3, ?x/?g, ?z/ C; ?y ⇒y1, ?g ⇒?g1}

Ans(A)

{2}


Árbol de Prueba A(?g, C)

Ps(?g, ?y)

P(?g, ?y)

P(A,B)

Ps(?y, C)

M(?g, ?y)

M(B, C)

P(?y, C)

P(A, B)

1.P(A, B) 2. M(B, C) 3. A(?x, ?z) :- Ps(?x, ?y), Ps(?y, ?x) 4. Ps(?x, ?y) :- P (?x, ?y) 5. Ps(?x, ?y) :- M (?x, ?y) Probar A(?g, C), Ans(?g) • Ps(?g1, ?y1), Ps(?y1, C), Ans(?g1) • P(?g2, ?y2), Ps(y2, C), Ans(?g2) • Ps(B,C) Ans(A) • P(B,C), Ans(A) • <Falla> • M(B,C), Ans(A) • Ans(A)

M(?y, C)

M(B, C)


Árbol de Prueba A(?g, C)

Ps(?g, ?y)

P(?g, ?y)

P(A,B)

Ps(?y, C)

M(?g, ?y)

M(B, C)

P(?y, C)

P(A, B)

1.P(A, B) 2. M(B, C) 3. A(?x, ?z) :- Ps(?x, ?y), Ps(?y, ?x) 4. Ps(?x, ?y) :- P (?x, ?y) 5. Ps(?x, ?y) :- M (?x, ?y) Probar A(?g, C), Ans(?g) • Ps(?g1, ?y1), Ps(?y1, C), Ans(?g1) • P(?g2, ?y2), Ps(y2, C), Ans(?g2) • Ps(B,C) Ans(A) • P(B,C), Ans(A) • <Falla> • M(B,C), Ans(A) • Ans(A)

M(?y, C)

M(B, C)


Árbol de Prueba A(?g, C)

Ps(?g, ?y)

P(?g, ?y)

P(A,B)

Ps(?y, C)

M(?g, ?y)

M(B, C)

P(?y, C)

P(A, B)

1.P(A, B) 2. M(B, C) 3. A(?x, ?z) :- Ps(?x, ?y), Ps(?y, ?x) 4. Ps(?x, ?y) :- P (?x, ?y) 5. Ps(?x, ?y) :- M (?x, ?y) Probar A(?g, C), Ans(?g) • Ps(?g1, ?y1), Ps(?y1, C), Ans(?g1) • P(?g2, ?y2), Ps(y2, C), Ans(?g2) • Ps(B,C) Ans(A) • P(B,C), Ans(A) • <Falla> • M(B,C), Ans(A) • Ans(A)

M(?y, C)

M(B, C)


Árbol de Prueba A(?g, C)

Ps(?g, ?y)

P(?g, ?y)

P(A,B) ?g/A, ?y/B

Ps(?y, C)

M(?g, ?y)

M(B, C)

P(?y, C)

P(A, B)

1.P(A, B) 2. M(B, C) 3. A(?x, ?z) :- Ps(?x, ?y), Ps(?y, ?x) 4. Ps(?x, ?y) :- P (?x, ?y) 5. Ps(?x, ?y) :- M (?x, ?y) Probar A(?g, C), Ans(?g) • Ps(?g1, ?y1), Ps(?y1, C), Ans(?g1) • P(?g2, ?y2), Ps(y2, C), Ans(?g2) • Ps(B,C) Ans(A) • P(B,C), Ans(A) • <Falla> • M(B,C), Ans(A) • Ans(A)

M(?y, C)

M(B, C)


Árbol de Prueba A(?g, C)

Ps(?g, ?y)

P(?g, ?y)

P(A,B) ?g/A, ?y/B

Probar A(?g, C), Ans(?g) • Ps(?g1, ?y1), Ps(?y1, C), Ans(?g1) • P(?g2, ?y2), Ps(y2, C), Ans(?g2) • Ps(B,C) Ans(A) • P(B,C), Ans(A) • <Falla> • M(B,C), Ans(A) • Ans(A)

Ps(B, C)

M(?g, ?y)

M(B, C)

1.P(A, B) 2. M(B, C) 3. A(?x, ?z) :- Ps(?x, ?y), Ps(?y, ?x) 4. Ps(?x, ?y) :- P (?x, ?y) 5. Ps(?x, ?y) :- M (?x, ?y)

P(?y, C)

P(A, B)

M(?y, C)

M(B, C)


Árbol de Prueba A(?g, C)

Ps(?g, ?y)

P(?g, ?y)

P(A,B) ?g/A, ?y/B

Probar A(?g, C), Ans(?g) • Ps(?g1, ?y1), Ps(?y1, C), Ans(?g1) • P(?g2, ?y2), Ps(y2, C), Ans(?g2) • Ps(B,C) Ans(A) • P(B,C), Ans(A) • <Falla> • M(B,C), Ans(A) • Ans(A)

Ps(B, C)

M(?g, ?y)

M(B, C)

1.P(A, B) 2. M(B, C) 3. A(?x, ?z) :- Ps(?x, ?y), Ps(?y, ?x) 4. Ps(?x, ?y) :- P (?x, ?y) 5. Ps(?x, ?y) :- M (?x, ?y)

P(?y, C)

P(A, B)

M(?y, C)

M(B, C)


Árbol de Prueba A(?g, C)

Ps(?g, ?y)

P(?g, ?y)

P(A,B) ?g/A, ?y/B

Probar A(?g, C), Ans(?g) • Ps(?g1, ?y1), Ps(?y1, C), Ans(?g1) • P(?g2, ?y2), Ps(y2, C), Ans(?g2) • Ps(B,C) Ans(A) • P(B,C), Ans(A) • <Falla> • M(B,C), Ans(A) • Ans(A)

Ps(B, C)

M(?g, ?y)

M(B, C)

1.P(A, B) 2. M(B, C) 3. A(?x, ?z) :- Ps(?x, ?y), Ps(?y, ?x) 4. Ps(?x, ?y) :- P (?x, ?y) 5. Ps(?x, ?y) :- M (?x, ?y)

P(B, C)

P(A, B)

M(?y, C)

M(B, C)


Árbol de Prueba A(?g, C)

Ps(?g, ?y)

P(?g, ?y)

P(A,B) ?g/A, ?y/B

Ps(B, C)

M(?g, ?y)

M(B, C)

P(B, C)

P(A, B) Falla

1.P(A, B) 2. M(B, C) 3. A(?x, ?z) :- Ps(?x, ?y), Ps(?y, ?x) 4. Ps(?x, ?y) :- P (?x, ?y) 5. Ps(?x, ?y) :- M (?x, ?y) Probar A(?g, C), Ans(?g) • Ps(?g1, ?y1), Ps(?y1, C), Ans(?g1) • P(?g2, ?y2), Ps(y2, C), Ans(?g2) • Ps(B,C) Ans(A) • P(B,C), Ans(A) • <Falla> • M(B,C), Ans(A) • Ans(A)

M(?y, C)

M(B, C)


Árbol de Prueba A(?g, C)

Ps(?g, ?y)

P(?g, ?y)

P(A,B) ?g/A, ?y/B

Probar A(?g, C), Ans(?g) • Ps(?g1, ?y1), Ps(?y1, C), Ans(?g1) • P(?g2, ?y2), Ps(y2, C), Ans(?g2) • Ps(B,C) Ans(A) • P(B,C), Ans(A) • <Falla> • M(B,C), Ans(A) • Ans(A)

Ps(B, C)

M(?g, ?y)

M(B, C)

P(B, C)

P(A, B) Falla

1.P(A, B) 2. M(B, C) 3. A(?x, ?z) :- Ps(?x, ?y), Ps(?y, ?x) 4. Ps(?x, ?y) :- P (?x, ?y) 5. Ps(?x, ?y) :- M (?x, ?y)

M(B, C)

M(B, C)


Cómo y por qué?  CONSULTA 

           

El sistema esta en este modo cuanto un usuario esta interactuando con él. El usuario interactúa entrando datos y el sistema responde por medio del motor de inferencia que presenta el razonamiento; involucrado en la derivación la respuesta a la pregunta dada por el usuario. El rol del motor de inferencia es buscar que los hechos dados por el usuario emparejen la parte condicional de la regla. Utiliza la heurística para responder. El siguiente ejemplo es un caso hipotético pero ilustra el accionar típico del sistema. System: What is the patient's name? User: George Washington System: What is the patient's age? User: 252 years System: Is the patient male or female? User: Male System: What are the symptoms? User: Headache dizziness upset stomach high fever System: When did these symptoms first appear? User: December 13,1799 System: I conclude that the patient has a viral infection , my recommendation is that he should take two aspirin, drink plenty of fluid, get lots of rest and call me in the morning. George Washington died the next day of a viral infection no antibiotics


Cómo y por qué? 

EXPLICACIÓN

Este modo permite al sistema explicar su conclusión y su proceso de razonamiento. Esta modalidad viene de la estructura del árbol AND/OR creado durante el proceso de razonamiento. Como un resultado de los sistemas mas expertos pueden responder las siguientes preguntas: Como y Por que?

¿Por qué preguntas eso? [muestra los antecedentes de la regla que esta intentando utlizar] ¿Cómo llegaste esa conclusión? [ guarda la traza de las preguntas y respuestas]

            

Ilustración del comportamiento del sistema experto en medicina MYCIN. El Mycin ha sido informado que un paciente contrajo meningitis en un hospital. Los doctores desean interrogar al Mycin para chequear el diagnóstico. El Mycin hace al doctor esta pregunta. Mycin: Es la Meningitis una enfermedad que se adquiere en un hospital? Doctor: Por que? Mycin: [2.0] esto ayudaría a determinar los organismos que podrían esta causando la infección. Hasta ahora se ha establecido. [2.1] la infección que requiere terapia es meningitis [2.2] no fueron vistos organismos en el cultivo de sangre [2.3] el tipo de infección de bacterial [2.4] la neurocirugia no es item relevante del paciente 100 [2.5] la edad del paciente 100 es mayor que 25 Por tanto si [2.6] la infección fue adquirida mientras el paciente estaba en el hospital entonces hay una evidencia que el organismo que podría estar causando la infección son (0.75) staphylococcus-coagpos(0.3) pseudomonas-aeruginosa(0.3) klebsiella-pneumoniae(0.5)


Cómo y por qué?           

Si el doctor quiere saber como se llego a una conclusión, podría preguntar Doctor: Como 2.3 El sistema entonces responde con: Mycin: Las siguientes reglas concluyen acerca de la probabilidad que el tipo de la infección sea bacterial: [2.7] RULE148 (0.19) [2.8] RULE500 (0.51) [2.9] RULE501 (0.95) [3.0] RULE502 (0.97) [3.1] RULE526 (0.98) [3.2] RULE504 (0.97) [3.3] RULE524 (0.98)


Lenguaje Natural •Entendiendo el Lenguaje Natural •Entender el significado de un texto o del habla •No es solamente emparejar patrones •Aplicaciones del Lenguaje Natural •Interfaces a base de datos ( clima, finanzas...) •Servicio al cliente automatizado (bancaria, viajes...) •Control de máquinas por medio de voz (PC´s, VCR´s, carros) •Resumir (noticias, manuales..) •Enrutamiento de emails •Búsqueda inteligente en la web •Traducción de documentos •etc


Tomado

del

Instituto Tecnológico de Massachusetts www.owc.mit.edu 6.034 Artificial Intelligence 2004 Archivo ch11-logicpro.pdf 

Leer

capitulo 8,9 del libro de Russell & Norvig


Ejercicios Teniendo la siguiente KB realice una búsqueda regresiva (backchaining) para verificar si “aprueba” es o no verdadera. Se sabe que “estudia” es verdadero. a)Diga la secuencia de reglas que se utilizan en la búsqueda. b) Dibuje el árbol de prueba. R1.- p & q -> aprueba R2.- s -> p R3.- w & r -> t R4.- t & u -> q R5.- v -> s R6.- m -> u R7.- estudia -> v, w R8.- estudia -> v & r & q


Ejercicios b.- Encuentre el UMG de los siguientes ejercicios s1 s2 UMG Eq(f(f(Bob), f(Bob)) Eq(f(x), x) A(B,C) A(x,y) A(x, f(D,x)) A(E, f(D, y)) A(x, y) A(f(C, y), z)

c. Declare un universo (elementos) e interpretación (¿qué significan H, G y F?) que haga las primeras sentencias verdaderas y la tercera falsa. Use un universo de 2 elementos. 1.∀x. H(x) → G(x) 2.∀x. F(x) → G(x) 3.∃x. F(x) ∧ H(x)


Turn static files into dynamic content formats.

Create a flipbook
Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.