Agentes que razonan de forma Lógica M.C. Juan Carlos Olivares Rojas jolivares@uvaq.edu.mx...

Preview:

Citation preview

Agentes que razonan de forma Lógica

M.C. Juan Carlos Olivares Rojas

jolivares@uvaq.edu.mxjuancarlosolivares@hotmail.com

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

Abril, 2010

Outline

Representación del Conocimiento

Lógica de Proposiciones

Lógica de Predicados

Deducción Automática

Outline

Sistemas de Deducción

Sistemas de Reacción

Encadenamiento Progresivo y Regresivo

Modelamiento Cognitivo

Modelos para la Resolución de Problemas

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.

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.

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

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.

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.

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.

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?

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

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?

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)

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

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

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 )

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

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

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)

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

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é

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

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

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 )

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

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

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

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.

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 )

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)

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 )

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)

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.

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

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.

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)

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.

Ejercicios

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

• p ^ ( p ⇒ q )

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

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

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

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

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.

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.

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:

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.

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.

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.

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⟨ ⟩ ⟨ ⟩

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 | …

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.

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.

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.

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.

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)

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 ∃.

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)

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.

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"

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)

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.

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)

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.

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:

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))

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.

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)]

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.

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?

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.

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

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)]

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)]

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)

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.

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.

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?

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.

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”?

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.

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.

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.

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:

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

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.

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.

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

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)

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

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.

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.

PROLOG

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

PROLOG

• Reglas o Restricciones:

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

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

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)

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 )

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 ).

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)

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).

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).

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

estornudos).

• ¿Qué devuelve cada pregunta como resultado?

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').

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).

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

PROLOG

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

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

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

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.

PROLOG

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

• %preguntas

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)).

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).

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).

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?

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].

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.

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.

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.

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

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.

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’))

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.

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))]

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.

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].

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).

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.

PROLOG

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

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).

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).

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?

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?

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.

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.

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).

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.

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

Questions?

Recommended