Está en la página 1de 19

Lógica de Primer Orden

Ref. Cap VII


http://www.massey.ac.nz/~mjjohnso/notes/59302/l07.html
Lógica de Primer Orden
La lógica proposicional sólo puede representar hechos acerca del mundo.
La lógica de primer orden describe un mundo que consta de objetos y
propiedades (o predicados) de esos objetos.
Entre los objetos, se verifican varias relaciones p.ej.
Progenitor(Marcos, José).
Una función es una relación en la cual sólo hay un valor para un input
dado.
Ejemplos
Objetos: gente, casas, números, planetas,...
Relaciones: progenitor, hermano-de, mayor-que,...
Propiedades: rojo, pequeño, primo,...
Funciones: padre-de, uno-más-que
Lógica de Primer Orden
Ejemplos:
“Uno más uno igual a dos."
“Cuadrados vecinos del Wumpus son malolientes."
La lógica de primer orden es universal porque puede expresar cualquier
cosa que pueda ser programada.

Syntaxis y semántica

La lógica de primer orden tiene sentencias como lógica proposicional y,


además, tiene términos, que representan objetos. Para construír
términos se usan símbolos constantes, variables y funciones, y
cuantificadores y símbolos predicado son usados para construír
sentencias.
Lógica de Primer Orden: BNF
<Sentencia> := <Sentencia Atómica>
| <Sentencia> <Conector> <Sentencia>
| <Cuantificador> <Variable>,... <Sentencia>
| <Sentencia>
| (<Sentencia>)

<Sentencia Atómica> := <Predicado>(<Término>,...)


| <Término> = <Término>

<Término> := <Función>(<Término>,...)
| <Constante>
| <Variable>

<Conector> :=^ | | <=> | =>


<Cuantificador> :=  | 
<Constante> := Martin | 59302 | Gato | X | ...
<Variable> := a | x | s | ...
<Predicado> := Previo | Gusta | Llueve | Falla | ...
<Función> := Padre | Cabellode | 10043nota | ...
Lógica de Primer Orden
Símbolos constantes: A, B, C, 1, Juan,...
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.
Símbolos predicado: Vecino, Hermano,...
Un símbolo predicado se refiere a una relación particular en el
modelo. Por ejemplo, Hermano ; dado que Hermano es un símbolo
de relación binaria, la relación a que se refiere debe ser también
binaria, es decir, debe darse o fallar entre pares de objetos.
Símbolos de función: Coseno, Padrede, PiernaIzquierdade
Una relación funcional relaciona un objeto a exactamente otro único
objeto. El último elemento en la tupla es el valor de la función para
los otros elementos. ej. Oficinade(María,bas1.240)
Lógica de Primer Orden
Términos
Un término es una expresión lógica que se refiere a un objeto. Los
símbolos constantes son términos. Los términos también se pueden
construír a partir de símbolos de funciones y símbolos de constantes,
ej., Padrede(Juan).
La semántica formal de los términos es la siguiente: Una interpretación
especifica una relación funcional referida por el símbolo funcion y
objetos referidos por los símbolos constantes. En consecuencia, un
término función se refiere a el objeto n+1 en una tupla cuyos primeros
n elementos son aquellos referidos por los argumentos de la función.
Sentencias atómicas
Una sentencia atómica está formada por un símbolo predicado seguido
por una lista entre paréntesis de términos, por ejemplo,
Hermano(Roberto,Juan) indica que el objeto referido por Roberto es el
hermano del objeto referido por Juan.
Lógica de Primer Orden
Las sentencias atómicas pueden tener argumentos que son términos
complejos:
Casado(Padrede(Roberto),Madrede(Juan))
Sentencias complejas
Podemos usar conectores lógicos para construír sentencias más
complejas. La semántica de éstas es la misma usada en lógica
proposicional.
Ejemplos
Hermano(Roberto,Juan)  Hermano(Juan,Roberto) es verdad en el caso
en que Juan es hermano de Roberto y Roberto es hermano de Juan.
Mayor(Juan,30)  Menor(Juan,30) es verdad cuando Juan es mayor de
30 o es menor que 30.
Lógica de Primer Orden
Cuantificadores
Nos permiten expresar propiedades de colecciones de objetos.
Hay dos cuantificadores en lógica de primer orden: universal y
existencial.

Cuantificación universal ()


Usando esta cuantificación podemos decir cosas tal como, “Todos los
hamsters son mamíferos."

x Hamster(x) Mamifero(x)
En consecuencia, una sentencia x (x) es verdad en un modelo solo
si  es verdad para todos los objetos en el modelo.
Lógica de Primer Orden
Notar la diferencia entre
x Hamster(x)Mamifero(x) y x Hamster(x)Mamifero(x)
Las afirmaciones universales son verdad si son verdad para cada
individuo en el mundo. Se pueden pensar como una conjunción infinita.
Cuantificación existencial
Realiza afirmaciones acerca de al menos algún objeto. Para decir, por
ejemplo que Mancha tiene una hermana que es un hamster, escribimos
x Hermana(x,mancha)  Hamster(x)
x P es verdad si P es verdad para algún objeto en el mundo. Se puede
pensar como una disyunción infinita.
Cuantificadores anidados
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 Progenitor(x,y)  Hijo(y,x)
También podemos mezclar cuantificadores,
xy Buenopara(x,y) “Todos somos buenos para alguna cosa"
Conexiones entre  y 
Hay una íntima conexión entre los dos cuantificadores. Para ver esto,
considerar la sentencia
x Gusta(x,LideresDecepcionantes)
“Para todo x, x no gusta de los líderes decepcionantes."
Otra forma de decir esto es, “No existe un x que guste de los líderes
decepcionantes.“ x Gusta(x,LideresDecepcionantes)
Esto es verdad en general porque  es una conjunción sobre todos los
objetos y  es una disyunción sobre todos los objetos.
Lógica de Primer Orden
De hecho, todo lo siguiente también es verdad
x P  x P PQ  (PQ)
x P  x P (PQ)  P  Q
x P  x P P  Q  (P  Q)
x P  x P P  Q  (P  Q)
Igualdad
Con frecuencia el símbolo de igualdad se incluye como un símbolo
especial. Esto se debe a que la noción de igualdad es muy importante
en nuestro modo de pensar. Con este símbolo, podemos escribir cosas
como Padre(Juan)=Jose, con el objeto de afirmar que el objeto que es
padre de Juan es el mismo que el objeto José. Igualdad puede ser
pensada como un símbolo de relación binaria ordinaria, así la interpre-
tación de = es un conjunto de pares.
Lógica de Primer Orden

La igualdad puede ser usada para decir que hay dos o más individuos
con una propiedad particular
x,y Hermana(Mancha,x)  Hermana(Mancha,y)  (x=y)
“Hay un x y un y que son hermanas de Mancha y no son el mismo
individuo."
El símbolo de igualdad también puede ser usado para restringir el
número de objetos que tienen cierta propiedad, por ejemplo,
x,y P(x)  P(y)  x=y
“Todo par de objetos con la propiedad P son iguales." Esta afirmación
los restringe a ser un objeto con la propiedad P.
Con frecuencia se usa la forma reducida ! x Rey(x) que significa
x Rey(x)  y Rey(y)  x=y
Lógica de Primer Orden
En la representación del conocimiento, un dominio es una sección del
mundo acerca del cual deseamos expresar algún conocimiento. Un
ejemplo simple y muy conocido del uso de LPO para codificar dominios
es el dominio de relaciones familiares.
Axiomas, Definiciones y Teoremas
Los axiomas capturan los hechos básicos acerca de un dominio. Los
axiomas son luego usados para probar teoremas.

Haciendo preguntas y obteniendo respuestas


Para agregar sentencias a la base de conocimiento, llamamos a TELL,
por ej., TELL(KB, m,c Madre(c)=m  Hembra(m)  Progenitor(m,c))
TELL se usa para axiomas(como aquí arriba) y hechos específicos
acerca de una situación particular como
TELL(KB,(Hembra(Maxi)Progenitor(Maxi,Mancha)Progenitor(Mancha,Boots)))
Lógica de Primer Orden
Con el agregado de estos hechos podemos

ASK(KB,Abuela(Maxi,Boots))

Y recibir respuesto si/no. También podemos hacer preguntas para


obtener información adicional en las respuestas, como

ASK(KB, x hijo(x,Mancha)).

Aquí no solo queremos la respuesta si/no, querríamos conocer el


término x que denota objetos en el dominio. En general, para un query
con variables existencialmente cuantificadas, queremos conocer las
particularizaciones de dichas variables. Entonces, ASK retorna una lista
de particularizaciones, ej., {x/boots}.
Agentes lógicos para el
mundo de Wumpus

•Agente reflejo. Meramente clasifica sus


percepciones y actúa de acuerdo a dicha
clasificación.
•Agente basado en modelo. Construye una
representación interna del mundo y la usa
para actuar.
•Agente basado en objetivos. Forma
objetivos y trata de alcanzarlos
Agentes lógicos para el
mundo de Wumpus

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


secuencia de percepción debe contener las percepciones y el
momento en que ocurrieron. Usaremos enteros para las etapas
temporales, asi una típica sentencia de percepción sería
Percepcion([Hedor,Brisa,Brillo,Nada,Nada],5)
La acción del agente debe ser una de:
Girar(Derecha), Girar(Izquierda), Avanzar, Disparar, Tomar, Liberar,
Trepar
Para determinar cuál es la mejor acción, creamos un query tal como
Accion(a,5). Si hemos presentado las cosas de manera correcta, este
query retornará una lista de particularizac. tal como {a/Tomar}.
Cálculo de situación

Cálculo de situación es el nombre dado a un modo particular de


describir cambio en LPO. Concibe al mundo como una secuencia de
situaciones, cada una de las cuales es un instante en el estado del
mundo. Las situaciones son generadas a partir de situaciones previas
por medio de acciones.
Cada relación cuya verdad pueda cambiar con el tiempo, es manejada
dándole un argumento extra de situación al correspondiente símbolo
de predicado. Por convención, ubicamos el argumento de situación
siempre al final. Así, en vez de En(Agente,Ubicacion), deberemos tener
En(Agente,[1,1],S0)  En(Agente,[1,2],S1).
Las relaciones o propiedade que no cambian con el tiempo no
necesitan el argumento extra, ej., ParedEn([0,1]).
Cálculo de situación

También podría gustarte