133
gentes que razonan de forma Lógica M.C. Juan Carlos Olivares Rojas [email protected] [email protected] @jcolivares http://antares.itmorelia.edu.mx/~jc olivar

Agentes que razonan de forma Lógica M.C. Juan Carlos Olivares Rojas [email protected] [email protected] @jcolivares jcolivar

Embed Size (px)

Citation preview

Page 1: Agentes que razonan de forma Lógica M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar

Agentes que razonan de forma Lógica

M.C. Juan Carlos Olivares Rojas

[email protected]@hotmail.com

@jcolivareshttp://antares.itmorelia.edu.mx/~jcolivar

Abril, 2010

Page 2: Agentes que razonan de forma Lógica M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar

Outline

Representación del Conocimiento

Lógica de Proposiciones

Lógica de Predicados

Deducción Automática

Page 3: Agentes que razonan de forma Lógica M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar

Outline

Sistemas de Deducción

Sistemas de Reacción

Encadenamiento Progresivo y Regresivo

Modelamiento Cognitivo

Modelos para la Resolución de Problemas

Page 4: Agentes que razonan de forma Lógica M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar

Representación del Conocimiento

• El conocimiento debe estar expresado en un lenguaje simbólico para que pueda ser reconocido por una computadora o ‘agente’.

• Los agentes pueden consultar a la base de conocimientos para resolver problema o bien agregar nuevos conocimientos.

• Los agentes pueden obtener esta nueva información a través de la inferencia lógica.

Page 5: Agentes que razonan de forma Lógica M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar

Representación del Conocimiento

• Inicialmente el agente cuenta con unos conocimientos básicos llamados antecedentes o hechos.

• Se cuenta con una serie de reglas que definen la forma de deducir conocimiento.

• El agente pregunta a estas reglas y hechos para poder razonar que opción le conviene más ejecutar.

Page 6: Agentes que razonan de forma Lógica M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar

El Juejo del Wumpus

Percepciones: (4 sensores)

{Hedor, Brisa, Resplandor, Nada}

El agente no percibe su situación

Acciones:

Ir hacia adelante, girar izda/dcha 90º

Agarrar (estando en la casillla)

Disparar (sólo una flecha)

Objetivo: salir con el oro lo antes posible

1000 ptos: salir con el oro

1 pto penaliza cada acción. Penaliz. Máxima: 10000 ptos

Page 7: Agentes que razonan de forma Lógica M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar

Lógica de Proposiciones

• La sintaxis nos indica cuáles son los enunciados que se pueden construir.

• Los enunciados atómicos se componen de una sola proposición.

• Una proposición tiene un solo valor de verdad: Verdadero o Falso.

Page 8: Agentes que razonan de forma Lógica M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar

Lógica de Proposiciones• Los enunciados complejos se forman a partir

de enunciados más simples y el empleo de conectivos lógicos.

• Los Conectivos Lógicos son cinco:– NO (~) también conocida como Negación.– Y (^) también conocida como Conjunción.– O (v) también conocida como Disyunción.– Implicación (⇒) también conocida como

Condicional.– Sí y sólo si (⇔) también conocida como

Bicondicional.

Page 9: Agentes que razonan de forma Lógica M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar

Lógica de Proposiciones

• Las expresiones que contienen conectivos lógicos se interpretan siguiendo el orden de precedencia que corresponde al mostrado en la tabla anterior.

• Por ejemplo: ~P ^Q v R ⇒ S equivale a:• (~(P) ^(Q v R)) ⇒ S

• Además, se emplean los paréntesis para evitar ambigüedades.

Page 10: Agentes que razonan de forma Lógica M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar

Lógica de Proposiciones

• La semántica nos define las reglas que permiten determinar el valor de verdad de un enunciado respecto de algún modelo.

• Con dos símbolos proposicionales existen 4 modelos posibles para cada uno de los 5 conectivos lógicos, ¿Cómo quedarían las tablas de verdad?

Page 11: Agentes que razonan de forma Lógica M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar

Lógica en Wumpus

• Regresemos al mundo del Wumpus para visualizar la construcción de la base de conocimiento.

• Notación:– Bij indica que hay brisa en la celda (i,j).– Pij indica que hay un pozo en la celda (i,j).

• A partir de un conocimiento inicial:– E1: ~P11

Page 12: Agentes que razonan de forma Lógica M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar

Lógica en Wumpus

• Cuando hay brisa en una casilla implica que en una casilla contigua hay un pozo:

• E2: B11 ⇔ P12 v P21

• Ahora agregamos la primera percepción, no se percibe brisa en la celda (1,1): E3: ~B11

• ¿Cómo relacionar los enunciados 2 y 3 para obtener nuevo conocimiento?

Page 13: Agentes que razonan de forma Lógica M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar

Lógica de Proposiciones

• Cuando los resultados de una Tabla de Verdad son todos verdaderos, a esa proposición compuesta se le llama Tautología. Como ejemplo tenemos a: (p v ~p)

• Cuando los resultados de una Tabla de Verdad son todos falsos, a esa proposición compuesta se le llama Contradicción. Como ejemplo tenemos a: (p ^ ~p)

Page 14: Agentes que razonan de forma Lógica M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar

Lógica de Proposiciones

• Básicamente la inferencia es la implementación de una implicación.

• Los enunciados conocidos como verdaderos forman parte del antecedente.

• El consecuente es un nuevo enunciado cuya veracidad se desprende de los anteriores. Simbólicamente se representa así:

• antecedente :: consecuente

Page 15: Agentes que razonan de forma Lógica M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar

Lógica de Proposiciones

• La equivalencia lógica se presenta cuando dos enunciados α y β tienen los mismos valores de verdad para el mismo conjunto de modelos.

• A continuación mostramos una tabla con las equivalencias lógicas más comunes:

• Doble Negación: ~( ~p ) ≡ p

Page 16: Agentes que razonan de forma Lógica M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar

Lógica de Proposiciones

• Leyes Conmutativas( p v q ) ≡ ( q v p )( p ^ q ) ≡ ( q ^ p )

• Leyes Asociativas( p v q ) v r ≡ p v ( q v r )

( p ^ q ) ^ r ≡ p ^ ( q ^ r )

Page 17: Agentes que razonan de forma Lógica M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar

Lógica de Proposiciones

• Leyes Distributivasp v ( q ^ r ) ≡ ( p v q ) ^ ( p v r )p ^ ( q v r ) ≡ ( p ^ q ) v ( p ^ r )

• Leyes de Idempotencia( p v p ) ≡ p( p ^ p ) ≡ p

Page 18: Agentes que razonan de forma Lógica M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar

Lógica de Proposiciones

• Leyes de DeMorgan~( p v q ) ≡ ~p ^ ~q~( p ^ q ) ≡ ~p v ~q

• Leyes de Identidad( p v ~p ) ≡ t( p ^ ~p ) ≡ f( p v f ) ≡ p( p v t ) ≡ t

Page 19: Agentes que razonan de forma Lógica M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar

Lógica de Proposiciones

• Leyes de Identidad( p v f ) ≡ f( p v t ) ≡ p

• Leyes de la Implicación(p ⇔ q) ≡ (p ⇒ q) ^ (q ⇒ p)

(p ⇒ q) ≡ (~q ⇒ ~p)(q ⇒ p) ≡ (~p ⇒ ~q)(p ⇒ q) ≡ (~p v q)

Page 20: Agentes que razonan de forma Lógica M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar

Lógica de Proposiciones

• Reglas de Inferencias• La siguiente implicación lógica se llama

Modus Ponens y corresponde a la siguiente inferencia:

p ^ ( p ⇒ q ) :: q

• Ejemplo:p: Estudiop ⇒ q: Si estudio aprobaré Matemáticasq: Entonces, Aprobaré Matemáticas

Page 21: Agentes que razonan de forma Lógica M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar

Lógica de Proposiciones

• La siguiente implicación lógica se llama Modus Tollens y corresponde a la siguiente inferencia:

( p ⇒ q ) ^ ~q :: ~p

• Ejemplo:p ⇒ q: Si estudio apruebo Matemáticas~q: No aprobé Matemáticas~p: Entonces, no Estudié

Page 22: Agentes que razonan de forma Lógica M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar

Lógica de Proposiciones• La siguiente implicación lógica se llama

Silogismo Hipotético y corresponde a la siguiente inferencia:

( p ⇒ q ) ^ ( q ⇒ r ) :: ( p ⇒ r )

• Ejemplo:p ⇒ q: Si estudio apruebo Matemáticasq ⇒ r: Si apruebo Matemáticas me regalan un

autop ⇒ r: Entonces, Si estudio me regalan un auto

Page 23: Agentes que razonan de forma Lógica M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar

Lógica de Proposiciones

• La siguiente implicación lógica se llama Silogismo Disyuntivo y corresponde a la siguiente inferencia:

( p v q ) ^ ~p :: q

• Ejemplo:p v q: Hay que estudiar Francés o Alemán~p: No estudio Francésq: Entonces, Estudio Alemán

Page 24: Agentes que razonan de forma Lógica M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar

Lógica de Proposiciones

• La simplificación conjuntiva consiste en eliminar uno de los términos de una conjunción:( p ^ q ) :: q o también: ( p ^ q ) :: p

• Por el otro lado, la amplificación disyuntiva permite agregar un nuevo término:

p :: ( p v q )

Page 25: Agentes que razonan de forma Lógica M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar

Lógica en Wumpus• Se tiene que:• E2: B11 ⇔ P12 v P21• E3: ~ B11

• Por lo que tenemos el siguiente razonamiento:• E4: (B11 ⇒ (P12 v P21)) ^ ((P12 v P21) ⇒ B11)• E5: ((P12 v P21) ⇒ B11)• E6: ~B11 ⇒ ~(P12 v P21)• E7: ~(P12 v P21)• E8: ~P12 ^ ~P21

Page 26: Agentes que razonan de forma Lógica M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar

Lógica en Wumpus

• Del razonamiento anterior concluimos que no hay un pozo en la casilla (1,2) ni en la (2,1).

• Ahora veamos el razonamiento cuando el agente llega a la celda (1,2).

• E9: ~B12• E10: B12 ⇔ P11 v P13 v P22• E12: ~P22

Page 27: Agentes que razonan de forma Lógica M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar

Lógica en Wumpus

• Concluimos que no hay pozo ni en la casilla (1,3) ni en la (2,2).

• E11: ~P13• E12: ~P22

• Pero cuando el agente visitó la celda (2,1) percibió una brisa:

• E13: B21• E14: B21 ⇔ P11 v P31 v P22

Page 28: Agentes que razonan de forma Lógica M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar

Lógica en Wumpus

• Dado que ya verificamos que no hay pozo en las celdas (1,1) y (2,2), resulta evidente la conclusión que:

• E15: P31

• Es conveniente que nuestra base de conocimiento esté basada solamente en conjunciones y disyunciones.

Page 29: Agentes que razonan de forma Lógica M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar

Lógica Proposicional

• Cualquier enunciado compuesto puede ser transformado a uno equivalente que esté en la FNC

• La Forma Normal Conjuntiva es la conjunción de n disyunciones de k elementos:( p11 v … v p1k ) ^ … ^ ( pn1 v … v

pnk )

Page 30: Agentes que razonan de forma Lógica M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar

Lógica Proposicional

• A continuación se describe un procedimiento para convertir a nuestra FNC:

• Eliminar ⇔ usando la equivalencia:(p ⇔ q) ≡ (p ⇒ q) ^ (q ⇒ p)

• Eliminar ⇒ usando la equivalencia:(p ⇒ q) ≡ (~p v q)

Page 31: Agentes que razonan de forma Lógica M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar

Lógica Proposicional

• Simplificar ~ usando las equivalencias:~( ~p ) ≡ p

~( p v q ) ≡ ~p ^ ~q~( p ^ q ) ≡ ~p v ~q

• Finalmente, aplicar la ley distributiva donde sea necesario.

p v ( q ^ r ) ≡ ( p v q ) ^ ( p v r )

Page 32: Agentes que razonan de forma Lógica M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar

Lógica Proposicional

• E2: B11 ⇔ (P12 v P21)

(B11 ⇒ (P12 v P21)) ^ ((P12 v P21) ⇒ B11 )(~B11 v P12 v P21) ^ (~(P12 v P21) v B11 )(~B11 v P12 v P21) ^ ((~P12 ^ ~P21) v B11

)

(~B11 v P12 v P21) ^ (~P12 v B11) ^ (~P21 v B11)

Page 33: Agentes que razonan de forma Lógica M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar

Lógica Proposicional

• Para demostrar que una implicación BC :: α es válida, se utiliza el método de reducción al absurdo.

• Esto es, probar que su negación: BC ^ ~α es una contradicción.

• Para ello se lleva a la FNC y luego se prueba que es equivalente a una cláusula vacía.

Page 34: Agentes que razonan de forma Lógica M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar

Lógica Proposicional

• Probar que: E2 ^ E4 :: ~P12.

• (B11 ⇔ (P12 - P21)) ^ ~B11 :: ~P12

• Se convierte a FNC:• (~B11 v P12 v P21) ^ (~P12 v B11) ^

(¿P21 v B11) ^ ~B11 :: ~P12

Page 35: Agentes que razonan de forma Lógica M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar

Lógica Proposicional

• Y para probar por reducción al absurdo, tenemos la negación:

• (~B11 v P12 v P21) ^ (~P12 v B11) ^ (~P21 v B11) ^ ~B11 ^ P12

• El proceso de simplificación funciona como sigue:

• Si tomamos los primeros dos paréntesis, observamos que contienen a: ~B11 y B11, respectivamente.

Page 36: Agentes que razonan de forma Lógica M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar

Lógica Proposicional

• Como no pueden ser ambos verdaderos simultáneamente, entonces, o (P12 v P21) o bien (~P12 ) son verdaderos, lo que se reduce a la siguiente expresión:

• (P12 v P21 v ~P12)

• Como (P12 v ~P12 ) es una tautología, la expresión anterior se reduce a: (P21)

Page 37: Agentes que razonan de forma Lógica M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar

Lógica Proposicional

• Similarmente, los dos paréntesis siguientes, también contienen a: ~B11 y B11, por lo que la

• expresión simplificada queda: (~P21)

• Como ambas no pueden ser verdaderas, la conjunción resulta en una expresión nula.

Page 38: Agentes que razonan de forma Lógica M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar

Ejercicios

• ( p ⇒ q ) ^ ( q ⇒ r )

• p ^ ( p ⇒ q )

• ((p ^ q) ⇔ (p v ~q))

• ((~(p ⇒ q) ^ r ) v ~(p ⇔ ~q))

Page 39: Agentes que razonan de forma Lógica M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar

Lógica de Predicados

• Hay que aprovechar la característica declarativa y la composicionalidad de la lógica proposicional. Para ello definimos dos tipos de elementos:

• Los objetos (Agente, Flecha, Wumpus, Pozo)• Las relaciones entre ellos, generalmente

vinculadas por un verbo.

• El Agente lanzó una Flecha

Page 40: Agentes que razonan de forma Lógica M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar

Lógica de Predicados

• Las relaciones unitarias también se conocen como Propiedades y se vincula un objeto con una característica por el verbo SER:

• La Pelota es roja.

• Las Funciones son un tipo especial de relación que involucra un solo objeto y devuelven un valor:

• El padre de• Uno más que

Page 41: Agentes que razonan de forma Lógica M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar

Lógica de Predicados

• Uno sumado a Dos es igual a Tres– Objetos: Uno, Dos y Tres.– Relación: es igual a.– Función: sumado a; el resultado es un objeto,

llamado: Uno sumado a Dos.

• Las Casillas que rodean al Wumpus apestan.– Objetos: Casillas y Wumpus.– Relación: que rodean al.– Propiedad: apestan.

Page 42: Agentes que razonan de forma Lógica M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar

Lógica de Primer Orden

• La lógica de primer orden se construye sobre: Hechos, Objetos y Relaciones.

• La lógica de primer orden es universal porque puede expresar cualquier cosa que pueda ser programada.

• El dominio de un modelo es el conjunto de objetos que contiene.

Page 43: Agentes que razonan de forma Lógica M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar

Lógica de Primer Orden

• Una relación binaria es un conjunto de pares ordenados.

• Por ejemplo, si Hugo, Paco y Luis son hermanos se denota así:

• H = { (Hugo, Paco), (Hugo, Luis), (Paco, Luis),

• Por ejemplo, si Pepe es el padre de Hugo, Paco y Luis, tenemos entonces:

Page 44: Agentes que razonan de forma Lógica M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar

Lógica de Primer Orden

• Padre_de(Hugo) → Pepe• Padre_de(Paco) → Pepe• Padre_de(Luis) → Pepe

• Padre_de(Pepe) ?

• A continuación se muestra la gramática de la LPO en BNF.

Page 45: Agentes que razonan de forma Lógica M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar

Lógica de Primer Orden

• Los símbolos se agrupan en tres clases:

• Símbolos de constante, que representan a los Objetos. Cada símbolo constante nombra a exactamente un objeto en el mundo, no todos los objetos necesitan tener nombres y algunos pueden tener más de un nombre.

• Ejemplo: Juan, Casa, Wumpus.

Page 46: Agentes que razonan de forma Lógica M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar

Lógica de Primer Orden

• Símbolos de predicado, que representan a las Relaciones. Ejemplos: Vecino, Hermano, …

• Símbolos de función. Ejemplos: Coseno, Padre_de, Oficina_de

• Los símbolos de predicado y de función tienen una Aridad que establece el número de argumentos.

Page 47: Agentes que razonan de forma Lógica M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar

Lógica de Primer Orden

• ⟨Enunciado → Sentencia Atómica | ⟩ ⟨ ⟩( Enunciado Conector Enunciado ) | ⟨ ⟩⟨ ⟩⟨ ⟩Cuantificador Variable … Enunciado ⟨ ⟩⟨ ⟩ ⟨ ⟩

| ~ Sentencia⟨ ⟩

• ⟨Sentencia Atómica → Predicado⟩ ⟨ ⟩( Término …) | Término = Término⟨ ⟩ ⟨ ⟩ ⟨ ⟩

• ⟨Término → Función ( Término …) | ⟩ ⟨ ⟩ ⟨ ⟩Constante | Variable⟨ ⟩ ⟨ ⟩

Page 48: Agentes que razonan de forma Lógica M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar

Lógica de Primer Orden

• ⟨Conector → . | - | ⇔ | ⇒⟩• ⟨Cuantificador → ∀ | ∃⟩• ⟨Constante → Martin | 59302 | Gato | X | …⟩• ⟨Variable → a | x | s | …⟩

• ⟨Predicado → Previo | Gusta | Llueve | Falla ⟩| …

• ⟨Función → Padre_de | Cabello_de | ⟩Oficina_de | …

Page 49: Agentes que razonan de forma Lógica M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar

Lógica de Primer Orden

• Un término es una expresión lógica que se refiere a un objeto.– Los símbolos constantes son términos– Los símbolos de función son términos.– Las variables también son términos.

• Una sentencia atómica está formada por un símbolo predicado seguido por una lista entre paréntesis de términos.

Page 50: Agentes que razonan de forma Lógica M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar

Lógica de Primer Orden

• Por ejemplo: Hermano(Roberto,Juan) indica que Roberto es el hermano de Juan.

• Las sentencias atómicas pueden tener argumentos que son términos complejos: Casado(Padrede(Roberto),Madrede(Juan))

• Se pueden usar conectores lógicos para construir sentencias más complejas.

Page 51: Agentes que razonan de forma Lógica M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar

Lógica de Primer Orden

• Ejemplo:• Hermano(Roberto,Juan) ∧

Hermano(Juan,Roberto)

• Es verdadero si Juan y Roberto son hermanos, pues la relación es simétrica.

• Los cuantificadores nos permiten expresar propiedades de colecciones de objetos.

Page 52: Agentes que razonan de forma Lógica M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar

Lógica de Primer Orden

• Hay dos cuantificadores en lógica de primer orden: universal y existencial.

• Cuando un enunciado abarca a todos los posibles valores del dominio de una variable, entonces se emplea el Cuantificador Universal, que se denota por ∀. El cual se enuncia con frases similares a: “Para todos …”, “Todos …”

• Ejemplo: Todos los gatos son mamíferos.

Page 53: Agentes que razonan de forma Lógica M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar

Lógica de Primer Orden

• Esta proposición es falsa si al menos un solo valor de la variable no satisface al enunciado.

• La representación simbólica es:• ∀x Gato(x) ⇒ Mamifero(x)

• Sin embargo, mucha gente cae en el error de interpretarla como:

• ∀x Gato(x) ∧ Mamifero(x)

Page 54: Agentes que razonan de forma Lógica M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar

Lógica de Primer Orden

• Aparentemente son equivalentes, pero esta segunda forma es más fuerte que la anterior, pues la primera será verdadera cuando el antecedente es falso (v.gr. x es un perro)

• Cuando un enunciado indica que al menos uno de los posibles valores del dominio de una variable, entonces se emplea el Cuantificador Existencial, el cual se denota por ∃.

Page 55: Agentes que razonan de forma Lógica M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar

Lógica de Primer Orden

• Y se enuncia con frases similares a: “Hay ...” o “Existe ...” o “Para algunos ...”

• Ejemplo: En mi clase hay mujeres.• Esta proposición es falsa si no existe

ningún valor de la variable que satisfaga al enunciado.

• La representación simbólica es:• ∃x Alumnodemiclase(x) ∧ Mujer(x)

Page 56: Agentes que razonan de forma Lógica M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar

Lógica de Primer Orden

• Semejante al caso anterior, mucha gente cae en el error de interpretarla como:

• ∃x Alumnodemiclase(x) ⇒ Mujer(x)

• Pero esta segundo enunciado es más débil que el anterior y sería verdadero para los estudiantes que no están en mi clase.

• Se pueden realizar afirmaciones muy complejas si se anidan cuantificadores.

Page 57: Agentes que razonan de forma Lógica M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar

Lógica de Primer Orden

• Sin mezclar tipos de cuantificadores, podemos decir cosas como:

• ∀x,y Hermano(x,y) ⇒ Hermano(y,x)

• También podemos mezclar cuantificadores,

• ∀x ∃y Buenopara(x,y) “Todos somos buenos para alguna cosa"

• ∃y ∀x Buenopara(x,y) “Alguien es bueno para todo"

Page 58: Agentes que razonan de forma Lógica M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar

Lógica de Primer Orden

• Se pueden cambiar los cuantificadores mediante la negación.

• Considerar la sentencia:• ∀x ~Gusta(x,Verduras) “Para todo x, x no

le gustan las verduras."

• Es equivalente a decir: “No existe un x que le gusten las verduras.“

• ~∃x Gusta(x, Verduras)

Page 59: Agentes que razonan de forma Lógica M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar

Lógica de Primer Orden

• Similarmente, los siguientes enunciados son equivalentes:

• ∃x P = ~∀x ~P• ∀x P = ~∃x ~P• ~∀x P = ∃x ~P• ∀x ~P = ~∃x P

• Con frecuencia el símbolo de igualdad se incluye como un símbolo especial.

Page 60: Agentes que razonan de forma Lógica M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar

Lógica de Primer Orden

• Ejemplo: Padre(Juan) = José

• Afirmar que el objeto que es padre de Juan es el mismo que el objeto José.

• Los axiomas capturan los hechos básicos acerca de un dominio. Ejemplos:

• ∀x,y Padre(x,y) ⇔ Hijo(y,x)• ∀x,y Abuelo(x,y) ⇔ ∃z Padre(x,z) . Padre(z,y)• ∀x Masculino(x) ⇔ ~Femenino(x)

Page 61: Agentes que razonan de forma Lógica M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar

Lógica de Primer Orden

• Algunos axiomas son considerados como Definiciones.

• Los axiomas son luego usados para probar teoremas.

• FOL en Wumpus:

• El primer paso es definir la interface entre el agente y el mundo.

Page 62: Agentes que razonan de forma Lógica M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar

FOL Wumpus

• Un ejemplo de percepción sería:• Percepción([Hedor,Brisa,Brillo,Nada,Nada],5

)

• El vector de percepciones contiene 5 elementos que son: Hedor, Brisa, Brillo, Golpe con un muro y Grito. Además incluye un sexto elemento para el tiempo.

• Las acciones posibles del agente pueden ser las siguientes:

Page 63: Agentes que razonan de forma Lógica M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar

FOL Wumpus

• Girar(Derecha)• Girar(Izquierda)• Avanzar• Disparar• Tomar

• Para determinar cuál es la mejor acción, el agente realiza una petición como esta:

• PREGUNTAR(BC, ∃x MejorAcción(x,5))

Page 64: Agentes que razonan de forma Lógica M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar

FOL Wumpus

• Esta petición retornará una lista de acciones posibles, tal como: {a/Tomar}.

• Antes de realizar esa acción, el agente deberá DECIR a la base de conocimiento su decisión de hacer la acción de Tomar:

• DECIR(BC, Acción(5)=Tomar)

• Reglas de diagnóstico: nos llevan de los efectos observados a sus causas.

Page 65: Agentes que razonan de forma Lógica M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar

FOL Wumpus• Por ejemplo: si una casilla tiene brisa significa

que una casilla adyacente tiene un pozo.• ∀x Brisa(x) ⇒ ∃y Adyacente(y,x) ∧ Pozo(y)

• Reglas Causales: reflejan conclusiones respecto de las percepciones y sus causas. Por ejemplo: un pozo en una casilla provoca brisa en todas las casillas adyacentes.

• ∀y Pozo(y) ⇒ [∀x Adyacente(x,y) ⇒ Brisa(x)]

Page 66: Agentes que razonan de forma Lógica M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar

Lógica de Primer Orden

• La Ingeniería del Conocimiento es un proceso general para la construcción de una base de conocimiento. A continuación se describen los pasos de este proceso:

• Identificación de la tarea.• Recopilación del conocimiento. • Decidir el vocabulario. • Codificar el conocimiento.

Page 67: Agentes que razonan de forma Lógica M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar

Deducción Automática

• Para el hecho: Contrata(Telmex,Toño), podemos construir índices para las siguientes peticiones:

• Contrata(Telmex,Toño) ¿Contrata Telmex a Toño?

• Contrata(x,Toño) ¿Quién Contrata a Toño?• Contrata(Telmex,y) ¿A quién Contrata

Telmex?• Contrata(x,y) ¿Quién Contrata a quién?

Page 68: Agentes que razonan de forma Lógica M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar

Deducción automática

• El primer paso consiste en transformar los enunciados en sentencias lógicas.

• Posteriormente se aplican las técnicas anteriores para convertirlas en un conjunto de cláusulas positivas de primer orden.

• Luego se encadenan esos conocimientos para obtener nuevos enunciados.

Page 69: Agentes que razonan de forma Lógica M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar

Deducción Automática

• Pasar a FNC la siguiente base de conocimientos:

1.Asterix es un galo2.Los romanos que son amigos de algún

galo odian a César3.Asterix ayudó a Marco4.Marco es amigo de quien le ayuda5.Quien odia a algún romano, lucha contra

él6.Marco es romano

Page 70: Agentes que razonan de forma Lógica M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar

Deducción Automática

1. Asterix es un galo• galo(Asterix) (en FNC)

1. Los romanos que son amigos de algún galo odian a César

• ∀x [romano(x) . (∃y galo(y) . amigo(x, y)) ⇒ odia(x,Cesar)]

Page 71: Agentes que razonan de forma Lógica M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar

Deducción Automática

• Reemplazando la cláusula existencial:• ∀x [romano(x) . (galo(G) . amigo(x, G))

⇒ odia(x,Cesar)]

3.Asterix ayudó a Marco• ayuda(Asterix,Marco) (en FNC)

4.Marco es amigo de quien le ayuda• ∀x [ayuda(x,Marco) ⇒ amigo(Marco, x)]

Page 72: Agentes que razonan de forma Lógica M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar

Deducción Automática

5. Quien odia a algún romano, lucha contra él

• ∀x ∃y [romano(y) . odia(x, y) ⇒ lucha(x, y)]

• Reemplazando la cláusula existencial:• ∀x [romano(R) . odia(x, R) ⇒ lucha(x, R)]

6. Marco es romano• romano(Marco) (en FNC)

Page 73: Agentes que razonan de forma Lógica M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar

Deducción Automática

• Los Miembros del equipo de tenis son: Juan, Sara, Beto y Elena.

• Juan está casado con Sara.

• Beto es hermano de Elena.

• El cónyuge de un miembro del equipo también es miembro del equipo.

Page 74: Agentes que razonan de forma Lógica M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar

Deducción Automática

• La última reunión fue en casa de Juan.

• Representar los enunciados anteriores en lógica de predicados. Demostrar que:

• La última reunión fue en casa de Sara.• Elena no está casada.

• Agregue los hechos que necesite para las demostraciones.

Page 75: Agentes que razonan de forma Lógica M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar

Deducción Automática

• A Paco le gustan los cursos fáciles.

• Los cursos de Física son difíciles.

• Los cursos de Humanidades son fáciles.

• El curso de Ética es del área de Humanidades.

• ¿Qué curso le gustaría tomar a Paco?

Page 76: Agentes que razonan de forma Lógica M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar

Deducción Automática

• A Beto le gusta la comida italiana.

• En un restaurante hay comida mexicana a no ser que se anuncie explícitamente lo contrario.

• En “La Conchita” no anuncian que tipo de comida sirven.

Page 77: Agentes que razonan de forma Lógica M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar

Deducción Automática

• A las personas no les gusta ir a restaurantes donde sirven comida que no es de su preferencia.

• ¿Se puede concluir que a Beto no le gusta ir a “La Conchita”?

Page 78: Agentes que razonan de forma Lógica M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar

Deducción Automática

• Formaliza los siguientes hechos:• Todo dragón está feliz si todos sus hijos

pueden volar.• Los dragones verdes pueden volar. Un

dragón es verde si es hijo de al menos un dragón verde.

• Demuestra por resolución que la conjunción de los hechos anteriores implica que:

• Todos los dragones verdes son felices.

Page 79: Agentes que razonan de forma Lógica M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar

Deducción Automática

• Considere las siguientes relaciones:

• Feliz(x) para x es feliz.• Volar(x) para x puede volar.• Verde(x) para x es verde.• Dragón(x) para x es dragón• Rojo(x) para x es rojo.• Hijo(x,y) para x es hijo de y.

Page 80: Agentes que razonan de forma Lógica M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar

Sistemas de Deducción

• Los sistemas de deducción pueden variar dependiendo del problema pero en general se utiliza el método de resolución visto en la unidad pasada.

• Los lenguajes utilizados en IA como LISP y PROLOG tienen su propio motor de inferencia y están sujetos a reglas muy particulares.

Page 81: Agentes que razonan de forma Lógica M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar

Sistemas de Deducción

• ¿Cuál es la diferencia entre un hecho y una afirmación?

• Un hecho es algo que se considera verdadero, una afirmación es una proposición afirmativa que necesita ser demostrada.

• Ejemplos de reglas para identificar animales:

Page 82: Agentes que razonan de forma Lógica M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar

Sistemas de Deducción

• Z1 Si X tiene pelo entonces X es mamífero• Z2 Si X da leche entonces X es mamífero• Z3 Si X tiene plumas entonces X es ave

• Z4 Si X vuela y X come carne entonces es mamífero

• Z5 Si X es mamífero y X come carne entonces X es carnívoro

Page 83: Agentes que razonan de forma Lógica M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar

Sistemas de Reacción• Los sistemas de reacción permite inferir

conocimiento a través de una concatenación de reglas, las cuales pueden ser Progresivas o Regresivas.

• Los sistemas de reacción tratar de anclar consecuentes con antecedentes de las reglas teniendo así sistemas más inteligentes.

• Los sistemas de reacción implican la ejecución de acciones.

Page 84: Agentes que razonan de forma Lógica M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar

Sistemas Reacción

B1 Si el paso es la verificación de la orden

Papas fritas se van a empacarNo se va a empacar PepsiEntonces pregunte al cliente si no le

gustarían llevar una botella de Pepsi.

• Otras reglas por definir son eliminar y añadir elementos.

Page 85: Agentes que razonan de forma Lógica M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar

Encadenamiento Progresivo y Regresivo

• El encadenamiento de reglas puede ser hacia adelante. En ésta, se inicia con cláusulas atómicas de la base de conocimiento. Luego se aplica el modus Ponens Generalizado hacia delante hasta que ya no se puedan obtener nuevas cláusulas atómicas.

• Las inferencias realizadas son de la forma:• Situación ⇒ Respuesta

Page 86: Agentes que razonan de forma Lógica M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar

Encadenamiento Progresivo o Regresivo

• Reglas:• R1: si A entonces B.• R2: si B entonces C.• R3: si C entonces Z

• Hechos:• H1: A (dato de partida)• H3: Z (objetivo a alcanzar)

Page 87: Agentes que razonan de forma Lógica M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar

Encadenamiento Progresivo y Regresivo

• En el encadenamiento regresivo se aplica todo lo contrario; es decir, dado un objetivo se pretende llegar al hecho para dar una solución a un problema.

• El encadenamiento regresivo o backtracking permite regresar a una opción anterior en caso de que existieran varios encadenamientos de regla que no llevan a la resolución

Page 88: Agentes que razonan de forma Lógica M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar

Modelamiento Cognitivo

• Los sistemas basados en reglas pueden verse como sustratos, de esta forma se puede tener una forma de introspección del como obtuvieron la deducción; es decir, muestran como se formaron las reglas.

• Los sistemas basados en reglas se les conoce como sabios idiotas, ya que sólo respondan a preguntas fáciles y carecen de muchas de las características del experto del dominio.

Page 89: Agentes que razonan de forma Lógica M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar

Modelos para la Resolución de Problemas

• Los sistemas basados en reglas pueden funcionar como sistemas de producción.

• Siendo sistemas de producción pueden utilizarse para generar nuevo conocimiento de las reglas ya existentes.

Page 90: Agentes que razonan de forma Lógica M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar

PROLOG

• Hechos:• las aves vuelan • los pingüinos no vuelan • "pichurri" es un ave • "sandokan" es un perro • "alegría" es un ave

Page 91: Agentes que razonan de forma Lógica M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar

PROLOG

• Reglas o Restricciones:

• una mascota vuela si es un ave y no es un pingüino

• Preguntas• ¿ "pichurri" vuela ? • ¿ qué mascotas vuelan ?

Page 92: Agentes que razonan de forma Lógica M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar

PROLOG

• Términos: constantes (a), variables (X), funciones (f(X, Y ))

pepe, juan, Cliente, cliente-de(X, Y )

• Fórmulas atómicas: predicados definidos sobre términos

tipo-cliente(X,bueno)

Page 93: Agentes que razonan de forma Lógica M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar

PROLOG• Fórmulas bien formadas (wff): fórmulas

atómicas unidas por conectivas (^, _,!, ¬) y cuantificadas (1A universal, 1B existencial)

• 1AX, 1BZ cliente(X) ^ compra(X, Z) ^ caro(Z) tipo-cliente(X, bueno)

• abuelo(X,Y) :- padre(X,Z), padre(Z,Y).• 1AX, Y 1BZ padre(X, Z) ^ padre(Z, Y)

abuelo(X, Y )

Page 94: Agentes que razonan de forma Lógica M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar

PROLOG

• abuelo(X,Y) :- padre(X,Z), madre(Z,Y).• abuelo(X,Y) :- padre(X,Z), padre(Z,Y).

• abuelo(X, Y) = {(pepe, juan), (pepe, ana), … , (luis, javier)}

• progenitor(X, Y ) :- padre(X, Y ).• progenitor(X, Y ) :- madre(X, Y ).

Page 95: Agentes que razonan de forma Lógica M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar

PROLOG

• abuelo(X,Y) :- padre(X,Z), madre(Z,Y).• abuelo(X,Y) :- padre(X,Z), padre(Z,Y).

• abuelo(X,Y) :- padre(X,Z), progenitor(Z,Y).

• hechos: A. (A átomo)• reglas: A :- A1, ..., An. (n>0, y A, A1, ...,

An átomos)

Page 96: Agentes que razonan de forma Lógica M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar

PROLOG

• Hechos:– padece(jon, gripe). – padece(jon, hepatitis). – padece(ana, gripe). – padece(carlos, alergia).– es-síntoma(fiebre, gripe).– es-síntoma(cansancio, gripe).– es-síntoma(estornudos, alergia).– suprime(paracetamol, fiebre).– suprime(antihistamínico, estornudos).

Page 97: Agentes que razonan de forma Lógica M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar

PROLOG

• Reglas:– debe-tomar(Per, Far) :- padece(Per, Enf),

alivia(Far, Enf).– alivia(Far, Enf) :- es-síntoma(Sin, Enf),

suprime(Far, Sin).

• Preguntas:– ? padece(carlos, gripe).– ? padece(jon, Z).– ? alivia(paracetamol, gripe).

Page 98: Agentes que razonan de forma Lógica M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar

PROLOG– ? alivia(X, gripe).– ? debe-tomar(Y, antihistamínico).– ? alivia(X, Y).– ? suprime(X, fiebre), suprime(X,

estornudos).

• ¿Qué devuelve cada pregunta como resultado?

Page 99: Agentes que razonan de forma Lógica M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar

PROLOG

• hija (*A, *B) <- mujer (*A), padre (*B, *A). • hija (*A, *B) <- mujer (*A), madre (*B,

*A).

• A continuación se muestra un programa completo en PROLOG:

%% declaracionespadrede('juan', 'maria'). padrede('pablo', 'juan').

Page 100: Agentes que razonan de forma Lógica M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar

PROLOGpadrede('pablo', 'marcela'). padrede('carlos', 'debora'). %%Reglas% A es hijo de B si B es padre de A

hijode(A,B) :- padrede(B,A). abuelode(A,B) :- padrede(A,C), padrede(C,B). hermanode(A,B) :- padrede(C,A) ,

padrede(C,B), A \== B. familiarde(A,B) :- padrede(A,B).

Page 101: Agentes que razonan de forma Lógica M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar

PROLOG

familiarde(A,B) :- hijode(A,B). familiarde(A,B) :- hermanode(A,B). %% consultas % juan es hermano de marcela? ?- hermanode('juan', 'marcela'). Yes?- hermanode('carlos', 'juan'). No?- abuelode('pablo', 'maria'). Yes?- abuelode('maria', 'pablo'). no

Page 102: Agentes que razonan de forma Lógica M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar

PROLOG

%unificación con evaluación. ?- X is 3+5.X = 8

%unificación simbólica ?- X = 3+5. X = 3+5

Page 103: Agentes que razonan de forma Lógica M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar

PROLOG

%comparación con evaluación ?- 3+5 =:= 2+6. yes

%comparación simbólica. ?- 3+5 == 2+6. no ?- 3+5 == 3+5. yes

Page 104: Agentes que razonan de forma Lógica M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar

PROLOG• Los programas en PROLOG se definen a través

de Algoritmos, Lógica y Control.

• En caso de que una consulta de más de un resultado, el prompt no aparece en la shell. Se puede utilizar el operador . Para terminar el resultado, o bien, el operador ; para continuar con los emparejamientos de resultados.

• Se pueden combinar preguntas para obtener respuestas más exactas.

Page 105: Agentes que razonan de forma Lógica M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar

PROLOG

• %Combinación de preguntas• legusta(pepe, pesca).• legusta(maria, bailar).• legusta(ana, pesca).• legusta(pepe, musica).• legusta(maria, musica).• legusta(ana, bailar).

• %preguntas

Page 106: Agentes que razonan de forma Lógica M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar

PROLOG• ¿Le gusta la música a Pepé y a María?• ?_ legusta(pepe,musica), legusta(maria, musica).

• ¿Le gusta bailar a Pepé o le gusta la música a maria?

• ?_ legusta(pepe,bailar); legusta(maria, musica).

• ¿Le gusta bailar a Pepé y a maria no le gusta la música?

• legusta(pepe,bailar), not(legusta(maria,musica)).

Page 107: Agentes que razonan de forma Lógica M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar

PROLOG

• El portal de redes sociales de la UVAQ desea diseñar un Sistema Experto para encontrar la pareja ideal de cada estudiante si es que existiere. Para lograr esto, se tienen en la base de conocimientos registrados los gustos de cada usuario (color de ojos, altura, complexión, carro, etc.). Se da un punto por cada coincidencia. Diseñar la regla o reglas que determinen la mejor pareja de cada usuario. (Se deben tener al menos 2 hombres y 2 mujeres con 5 gustos c/u).

Page 108: Agentes que razonan de forma Lógica M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar

PROLOG• Se puede aplicar recursividad en PROLOG

además de que algunos programas en programación estructurada pueden ser implementados.

• %Sucesiones• sucesor(1,2).• sucesor(2,3).• sucesor(3,4).• sucesor(4,5).• sucesor(5,6).

Page 109: Agentes que razonan de forma Lógica M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar

PROLOG

• sucesor(6,7).• suma(1,X,R):-sucesor(X,R).• suma(N,X,R):-sucesor(M,N), suma(M,X,

R1), sucesor(R1, R).

• %Como se crearía una consulta?• %¿Qué es lo que el programa haría?

Page 110: Agentes que razonan de forma Lógica M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar

PROLOG

• Una lista es una secuencia lineal de objetos en donde todas las manipulaciones se hacen del lado izquierdo de la lista.

• La lista vacía se representa []. Una lista que no es vacía debe contener al menos dos elementos, uno del lado izquierdo y otro del lado derecho. Ejemplo: [X | Y], [X, Y | Z].

Page 111: Agentes que razonan de forma Lógica M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar

PROLOG

• agregar([], L, L).• agregar([A|R], L, [A|T]):-agregar(R, L, T).

• %Como se realiza la consulta?• ?- agregar([1,2,3 | [] ], [1, 5,7 | [] ], R).

• Dos predicados com el mismo nombre pero diferente aridad (numero de argumentos) son diferentes.

Page 112: Agentes que razonan de forma Lógica M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar

PROLOG

• %Programa aridad• ama(juan).• ama(pepe, maria).

• La unificación es el proceso en el cual uma variable toma un valor.

• Cuando una variable tiene un valor, este no cambia.

Page 113: Agentes que razonan de forma Lógica M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar

PROLOG• Dos términos se ejecutan cuando existe una

posible ligadura en sus variables y en sus valores. Ejemplo: a(X, 3) = a(2, Y).

• edad(luis,25).• edad(hugo,32).• edad(paco,29).• edad(jaime,67).• edad(laura,85).• es_viejo(Persona) :- edad(Persona,Valor),

valor > 60.

Page 114: Agentes que razonan de forma Lógica M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar

Ejercicio

• padre(X,Y) – X es padre de Y• madre(X,Y) – X es madre de Y• es_padre(X) – X es un padre• es_madre(X) – X es una madre• es_hijo(X) – X es un hijo (hombre)• hermana(X,Y) – X es hermana de Y• abuelo(X,Y) – X es abuelo (hombre) de Y• tia(X,Y) – X es tía de Y• primo(X,Y) – X es primo (hombre) de Y

Page 115: Agentes que razonan de forma Lógica M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar

PROLOG• Prolog tiene la característica de ser reversible;

es decir, los argumentos pueden ser de entrada y salida. Si se tiene un predicado abuelo se puede saber quienes son los nietos de ese abuelo.

• Esto no sucede con los operadores aritméticos.

• Otro tipo de datos utilizado en Prolog es el registro. El cual es una combinación de elementos.

Page 116: Agentes que razonan de forma Lógica M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar

PROLOG

• Por ejemplo: persona(‘Eva’, ‘López’, ‘Cárdenas’, 25)

• Define a una persona teniendo como atributos su nombre, sus apellidos y su edad. Dado que los términos son anidados se pueden tener registros como:

• Persona(“Helena”, edad(22), dirección(‘Miguel Hidalgo 33’, ‘Centro’, ‘Morelia’))

Page 117: Agentes que razonan de forma Lógica M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar

PROLOG

• Se pueden utilizar estructuras de datos recurrentes como árboles, en donde el primer elemento podría ser un nodo, el segundo el hijo izquierdo y el tercer elemento, el hijo derecho.

• arbol(dato1, temp, temp)• arbol(dato1, arbol(dato2, temp, temp),

temp)

• En donde temp indica un campo vacío.

Page 118: Agentes que razonan de forma Lógica M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar

PROLOG

• ¿Qué diferencia existe entre las siguientes listas?

• L= [1, 2, 3, 4, 5],• M = [0, L].

• L = [1, 2, 3, 4, 5],• M = [0 | L].

• Las listas pueden ser de elementos heterogéneos como: [1, p(a), [a, b], f(g(h))]

Page 119: Agentes que razonan de forma Lógica M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar

PROLOG• El predicado member nos permite saber si

un elemento existe en la lista• ?- member(3, [1,2,3,4,5,6]). %regresa true

• El método append/3 sirve para concatenar listas

• ?- append([1,2,3], [a, b, c], X).

• Las cadenas pueden ser tratadas como listas cuando se escriben con comillas dobles.

Page 120: Agentes que razonan de forma Lógica M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar

PROLOG

• Por ejemplo la cadena X=“ABC” es equivalente a X=[65, 66, 67].

• Los predicados utilizados para listas, también nos sirven para cadenas.

• La función number_codes/2 convierte un número a cadena.

• ? number_codes(12, X). % X=[49, 50].

Page 121: Agentes que razonan de forma Lógica M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar

PROLOG

• La función atom_codes/2 proporciona el código equivalente de una cadena.

• ?- atom_codes(juan, X).• X = [106, 117, 97, 110].

• //Comprobación de tipos• es_lista([]).• es_lista([_|B]):-es_lista(B).

Page 122: Agentes que razonan de forma Lógica M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar

PROLOG

• ?- es_lista([a]).

• Existen ya predicados definidos para la comprobación de tipos de datos básicos como: integer/1, float/1, number/1, atom/1, var/1, novar/1, ground/1.

Page 123: Agentes que razonan de forma Lógica M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar

PROLOG

• % Ejemplo • entrada(paella). • entrada(gazpacho). • entrada(consome). • carne(filete_de_cerdo). • carne(pollo_asado). • pescado(trucha). • pescado(bacalao). • postre(flan).

Page 124: Agentes que razonan de forma Lógica M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar

PROLOG

• postre(nueces_con_miel). • postre(naranja). • calorias(paella, 200). • calorias(gazpacho, 150). • calorias(consome, 300). • calorias(filete_de_cerdo, 400). • calorias(pollo_asado, 280). • calorias(trucha, 160). • calorias(bacalao, 300).

Page 125: Agentes que razonan de forma Lógica M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar

PROLOG

• calorias(flan, 200). • calorias(nueces_con_miel, 500). • calorias(naranja, 50). • plato_principal(P):- carne(P); pescado(P). • comida(Entrada, Principal, Postre):-

entrada(Entrada), plato_principal(Principal), postre(Postre).

• valor(Entrada, Principal, Postre, Valor):- calorias(Entrada, X), calorias(Principal, Y), calorias(Postre, Z), sumar(X, Y, Z, Valor).

Page 126: Agentes que razonan de forma Lógica M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar

PROLOG• comida_equilibrada(Entrada, Principal, Postre):-

comida(Entrada, Principal, Postre), valor(Entrada, Principal, Postre, Valor), menor(Valor, 800).

• sumar(X, Y, Z, Res):- Res is X + Y + Z. • menor(X, Y):- X < Y. • dif(X, Y):- X \==Y. •  • Encontrar: ¿Cuántas calorías tiene la

combinación paella, trucha, naranja? ¿Qué comida que tiene cónsome de entrada es la más balanceada?

Page 127: Agentes que razonan de forma Lógica M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar

PROLOG

• Se pueden definir funciones recursivas como el factorial:

• fac(0,1).• fac(N,F) :- N > 0, M is N - 1, fac(M,Fm),

F is N * Fm.

• ¿Cómo se expresa la serie de fibonnaci?

Page 128: Agentes que razonan de forma Lógica M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar

PROLOG

• Algo sumamente importante en cualquier lenguaje de programación son las interfaces de E/S y Prolog no es la excepcion.

• Se cuenta con los predicados read/1 para leer el valor de variables seguidas por un punto y get para leer carácter por carácter regresando el código ASCII correspondiente.

Page 129: Agentes que razonan de forma Lógica M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar

Prolog

• Para salida estándar se cuenta con las funciones write/1 para cualquier valor, put/1 para colocar un carácter. Adicionalmente se cuenta con las relaciones nl/0 para nueva línea y display/1 para mostrar mensajes en pantalla.

• A continuación se muestra el ejemplo de un programa que utiliza entrada y salida, así como un manejo estructurado de programa.

Page 130: Agentes que razonan de forma Lógica M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar

PROLOG

• sumar_lista([],Parcial,Parcial).

• sumar_lista([Num|Resto],Parcial,Result) :- NParcial is Num+Parcial, sumar_lista(Resto,NParcial,Result).

• leer_numero(Num) :- read(Num), number(Num).

Page 131: Agentes que razonan de forma Lógica M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar

PROLOG

• suma :- suma_aux([]).

• suma_aux(Lista) :- leer_numero(Num), suma_aux([Num|Lista]).

• suma_aux(Lista) :- sumar_lista(Lista,0,Result), nl, display('LA SUMA ES : '), display(Result), nl.

Page 132: Agentes que razonan de forma Lógica M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar

Referencias

• Carreón, J. (2007) Material de la Asignatura de Inteligencia Artificial, Universidad Vasco de Quiroga, Morelia, Michoacán, México.

• Nilsson, N. (2001). Inteligencia Artificial. Una nueva síntesis. McGraw-Hill, España.

• Russel, S. y Norving, P. (2004). Inteligencia Artificial. Un Nuevo enfoque. Pearson Prentice Hall, España

Page 133: Agentes que razonan de forma Lógica M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx juancarlosolivares@hotmail.com @jcolivares jcolivar

Questions?