Notas

Anuncio
5
LÓGICA DE PRIMER ORDEN
Como mencionamos en el primer capítulo del curso, la lógica proposicional nos permite expresar conocimiento sobre situaciones que son de nuestro interés, mediante
enunciados declarativos. Decimos que estos enunciados son declarativos en el sentido lingüístico del término, esto es, se trata de expresiones del lenguaje natural que son
o bien verdaderas, o bien falsas; en contraposición a los enunciados imperativos e interrogativos. La Lógica Proposicional es declarativa en este sentido, las proposiciones
representan hechos que se dan o no en la realidad. La Lógica de Primer Orden, que
introduciremos en este capítulo, tienen un compromiso ontólogico más fuerte [39],
donde la realidad implica además, objetos y relaciones entre ellos. Consideren los
siguientes ejemplos de enunciado declarativo:
1. Julia es madre y Luis es hijo de Julia.
2. Toda madre ama a sus hijos.
donde el enunciado (1) se refiere a los objetos de discurso Julia y Luis, usando propiedades de estos objetos, como ser madre; así como relaciones entre éstos, como
ser hijo de alguien. El enunciado (2) se refiere a relaciones que aplican a todas las
madres, en tanto que objetos de discurso. A esto nos referimos cuando hablamos de
representación de un problema en el contexto de la Programación Lógica, a describir
una situación en términos de objetos y relaciones entre ellos.
Al igual que en el caso proposicional, si se aplican ciertas reglas de razonamiento
a tales representaciones, es posible obtener nuevas conclusiones. Por ejemplo, conociendo (1) y (2) es posible inferir (vía una versión de Modus Ponens un poco distinta
de la proposicional) que:
3. Julia ama a Luis.
De forma que, sería deseable poder describir los objetos que conforman un universo
de discurso, personas en el ejemplo; así como las relaciones entre ellos, siguiendo con
el ejemplo hijo y madre; y computar tales descripciones para obtener conclusiones
como (3). Al describir el problema que queremos resolver, también podemos hacer
uso de funciones, relaciones en las cuales sólo hay un valor dada una entrada. Por
ejemplo, “madre de” puede representarse como una función (todo hijo tiene una sola
madre), pero “hijo de” no. Esto se ilustra en la figura 5.1.
Como en todo sistema formal, al igual que hicimos con la Lógica Proposicional,
será necesario especificar cuidadosamente los siguientes elementos:
• Languaje. Este elemento está asociado a la sintaxis de la Lógica de Primer Orden.
El lenguaje de un sistema formal está dado por un conjunto de símbolos conocido como alfabeto y una serie de reglas de construcción o sintácticas. Una
61
62
������ �� ������ �����
luis
madre de
madre de
pedro
maria
maria
juana
hijo de
hijo de
juana
luis
pedro
Figura 5.1: La relación madre de es una función; mientras que hijo de no lo es.
expresión es cualquier secuencia de símbolos pertenecientes al alfabeto. Cualquier expresión es, o no es, una fórmula bien formada (fbf). Las fórmulas bien
formadas son las expresiones que pueden formarse con los símbolos del alfabeto a partir de las reglas de construcción y por tanto, pertenecen al languaje de
la Lógica de Primer Orden.
• Teoría de modelo. Este elemento está asociado a la semántica de la Lógica de
Primer Orden. La teoría del modelo establece la interpretación de las fbfs en
un sistema formal. Su función es relacionar las fbfs con alguna representación
simplificada de la realidad que nos interesa, para establecer cuando una fbf
es falsa y cuando verdadera. Esta versión de realidad corresponde a lo que
informalmente llamamos “modelo”. Sin embargo, en lógica, el significado de
“modelo” está íntimamente relacionado con el lenguaje del sistema formal: si
la interpretación M hace que la fbf ↵1 sea verdadera, se dice que M es un
modelo de ↵ o que M satisface ↵, y se escribe M |= ↵. Una fbf es válida si
toda interpretación es un modelo para ella.
• Teoría de prueba. Este elemento está asociado con el razonamiento deductivo.
La teoría de la prueba tiene como objetivo hacer de cada enunciado matemático,
una fórmula demostrable y rigurosamente deducible. Para ello, la actividad matemática debería quedar reducida a la manipulación de símbolos y sucesiones
de símbolos regulada por un conjunto de instrucciones dadas al respecto. La
construcción de tal teoría implica, además del lenguaje del sistema formal, un
subconjunto de fbf que tendrán el papel axiomas en el sistema, y un conjunto
de reglas de inferencia que regulen diversas operaciones sobre los axiomas. Las
fbf obtenidas mediante la aplicación sucesiva de las reglas de inferencia a partir
de los axiomas se conocen como teoremas del sistema.
Este capítulo del curso introduce los elementos de la Lógica de Primer Orden, necesarios para abordar la resolución como regla de inferencia única de una forma
restringida de Lógica de Primer Orden que nos permite automatizar su uso en el
lenguaje de programación Prolog [8, 12].
1 Los símbolos griegos se siguen usando como meta variables.
�.� �� �������� �� �� ������ �� ������ �����
Brazo robótico
E
A
D
B
C
Mesa
�.�
Figura 5.2: El mundo de los bloques, usado en los ejemplos subsiguientes.
�� �������� �� �� ������ �� ������ �����
Básicamente, la Lógica de Primer Orden, también conocida como Cálculo de Predicados, introduce un conjunto de símbolos que nos permiten expresarnos acerca de los
objetos en un dominio de discurso dado. El conjunto de todos estos objetos se conoce
como universo de discurso (U). Los miembros del universo de discurso pueden ser
objetos concretos, ej., un libro, un robot, etc; abstractos, ej., números; e incluso, ficticios, ej., unicornios, etc. Un objeto es algo sobre lo cual queremos expresarnos. Como
ejemplo, consideren el multi citado mundo de los bloques [20] que se muestra en la
figura 5.2. El universo de discurso para tal escenario es el conjunto que incluye los
cinco bloques, la el brazo robótico y la mesa: U = {a, b, c, d, e, brazo, mesa}.
Una función es un tipo especial de relación entre los objetos del dominio de discurso. Este tipo de relaciones mapea un conjunto de objetos de entrada a un objeto
único de salida. Por ejemplo, es posible definir la función parcial sombrero que mapea
un bloque al bloque que se encuentra encima de él, si tal bloque existe. Las parejas
correspondientes a esta función parcial, dado el escenario mostrado en la figura 5.2
son: {(b, a), (c, d), (d, e)}. El conjunto de todas las funciones consideradas en la conceptualización del mundo se conoce como base funcional.
Un segundo tipo de relación sobre los objetos del dominio de discurso son los
predicados. Diferentes predicados pueden definirse en el mundo de los bloques, por
ejemplo, el predicado sobre que se cumple para dos bloques, si y sólo si el primero
está inmediatamente encima del segundo. Para la escena mostrada en la figura 5.2,
sobre/2 se define por los pares {(a, b), (d, c), (e, d)}. Otro predicado puede ser libre/1,
que se cumple para un bloque si y sólo si éste no tiene ningún bloque encima. Este
predicado tiene los siguientes elementos {a, e}. El conjunto de todos los predicados
usados en la conceptuación se conoce como base relacional.
Para universos de discurso finitos, existe un límite superior en el número posible
de predicados n-arios que pueden ser definidos. Para un universo de cardinalidad
b (cardinalidad es el número de elementos de un conjunto), existen bn distintas ntuplas. Cualquier predicado n-ario es un subconjunto de estas bn tuplas. Por lo tanto,
n
un predicado n-ario debe corresponder a uno de máximo 2(b ) conjuntos posibles.
Además de las funciones y predicados, la flexibilidad de la Lógica de Primer Orden
resulta del uso de variables y cuantificadores. Las variables, cuyos valores son objetos
del universo de discurso, se suelen representar por cualquier secuencia de caracteres
63
64
������ �� ������ �����
que inicie con una mayúscula. El cuantificador “para todo” (8) nos permite expresar hechos acerca de todos los objetos en el universo del discurso, sin necesidad de
enumerarlos. Por ejemplo, toda madre . . . El cuantificador “existe” (9) nos permite
expresar la existencia de un objeto en el universo de discurso con cierta propiedad
en partícular, por ejemplo, 9X libre(X) ^ enLaMesa(X) expresa que hay al menos un
objeto que no tiene bloques sobre él y aue se encuentra sobre la mesa. Revisemos
estos conceptos formalmente.
El alfabeto de la Lógica de Primer Orden se obtiene al extender la lógica proposicional con un conjunto numerable de símbolos de predicados (Pred) y funciones (Func).
Se asume un conjunto infinito de variables (Var) que toman valores en el universo
de discurso. |f| denota la aridad del predicado o función f, es decir, su número de
argumentos. Las funciones de aridad cero se asumen como constantes.
Los términos de nuestro lenguaje de Primer Orden se forman de variables, constantes y funciones aplicadas a términos. Por ejemplo: calif(hermano(alex), sma) denota
la calificación obtenida por el hermano de Alex en el curso de Sistemas Multi-Agentes.
Esta función debería regresar un entero entre cero y cien. Utilizando notación BNF:
Definición 5.1 (Términos). Un término se define por:
t ::= x | c | f(t, . . . , t)
donde x 2 Var; c 2 Func tal que |c| = 0; y f 2 Func tal que |f| > 0.
Observen que los constructores básicos de los términos son las variables y las constantes (functores de aridad 0). Se pueden formar términos más complejos usando
functores de aridad mayor a cero, cuyos argumentos son a su vez términos. Por lo
tanto, la noción de término depende del conjunto Func.
Definición 5.2 (Sintaxis LLPO ). El lenguaje de la Lógica de Primer Orden LLPO se construye a partir de las variables Var, los functores Func y los predicados Pred como sigue:
::= P(t1 , . . . , tn ) | ¬( ) | ( ^ ) | ( _ ) | (
!
) | (8x
) | (9x
)
donde P 2 Pred es un símbolo de predicado de aridad n > 1; ti denota términos sobre Func;
y x 2 Var.
Observen que los argumentos de un predicado son siempre términos. También es
posible considerar predicados de aridad cero, los cuales puden verse como variables
proposicionales.
�.�
�� ��������� �� �� ������ �� ������ �����
Antes de introducir las definiciones formales de la semántica del Cálculo de Predicados, consideremos algunas expresiones posibles en está lógica, usando como ambiente
el mundo de los bloques (Figura 5.2). Si queremos expresar que al menos algún bloque no tiene nada encima, podemos usar los predicados bloque y libre en la siguiente
expresión: 9X bloque(X) ^ libre(X). Esta fbf expresa que existe un X tal que X es un
bloque y X está libre (no tiene otro bloque encima).
�.� �� ��������� �� �� ������ �� ������ �����
Observen que cuando usamos cuantificadores, siempre tenemos en mente el universo de discurso o dominio. El dominio puede especificarse en término de conjuntos.
Luego, si el dominio D es el conjunto de constantes {a, b, c, d, e, mesa, mano}, podemos decir que B = {a, b, c, d, e} es el conjunto de bloques en D. Entonces plantear
una expresión equivalente a 9X bloque(X) ^ libre(X), usando la fbf 8X libre(X), si
especificamos que libre tiene como dominio B. En tal caso, se dice que B es la interpretación del predicado libre. Para un predicado de aridad dos, como sobre cuyos
argumentos son bloques, podemos decir que su interpretación está en B ⇥ B.
Para obtener un modelo para el lenguaje LLPO formamos la tupla hD, Vi, donde
D es el universo de discurso, ej. cualquier clase de objetos sobre la que queremos
expresarnos, y V es una función, tal que para cualquier predicado de aridad n se obtienen las n-tuplas que corresponden a la interpretación del predicado. En el ejemplo
de la figura 5.2, consideren el predicado sobre de aridad dos. Su interpretación es un
subconjunto de B ⇥ B. Para la escena mostrada, V(sobre) = {(a, b), (e, d), (d, c)}. Para
una constante, la función V regresa la misma constante, ej. V(a) = a. Algunas veces
la expresión V(↵), donde ↵ 2 Const [ Pred, se abrevia ↵V y se conoce como una
interpretación. Una posible interpretación V para la escena mostrada en al figura 5.2
y su base relacional es:
aV
= a
bV
= b
V
= c
V
d
= d
eV
= e
c
V
= {(a, b), (e, d), (d, c)}
enLaMesa
V
= {b, c}
libre
V
= {a, e}
sobre
porEncimaV
= {(a, b), (e, d), (e, c), (d, c)}
Todo esto puede especificarse formalmente con la siguiente regla semántica:
Definición 5.3 (Interpretación). Una interpretación V, con respecto a un dominio de discurso D es una función que satisface las siguientes propiedades: i) Si ↵ 2 Func y |↵| = 0,
entonces V(↵) = ↵ (el caso de las constantes); ii) Si ↵ 2 Pred y |↵| = n tal que n > 0,
entonces V(↵) ✓ Dn (el caso de los predicados).
Observen que las variables no están incluidas en la interpretación. En lo que sigue,
se asume que las variables en las fbf están acotadas, es decir, bajo el alcance de un
cuantificador. Decimos que µ es una asignación de variables basada en el modelo
M = hD, Vi si para todo ↵ 2 Var, µ(↵) 2 D. Podemos escribir M |= Vµ (↵) para
expresar que ↵ es verdadera en el modelo hD, Vi cuando las variables en ↵ toman
valores de acuerdo a la asignación µ, y tenemos que:
Definición 5.4 (Semántica átomos). M |= ↵ si y sólo si Vµ (↵) 2 V.
Definición 5.5 (Semántica negación). M |= ¬↵ si y sólo si M 6|= ↵.
Definición 5.6 (Semántica disyunción). M |= (↵ _ ) si y sólo si M |= ↵ o M |= .
65
66
������ �� ������ �����
Para formular las reglas semánticas de las expresiones que contienen cuantificadores, necesitamos el concepto de asignación de variables alternativa. La idea es que
queremos que Vµ (8X ↵) sea verdadera, no solo cuando Vµ (↵) es verdadera, sino cuando V⇢ (↵) es verdadera para cualquier valor en D regresado por cualquier función de
asignación ⇢. Observen que las variables libres en ↵ deben conservar el mismo valor
en tal asignación. Se dice que la asignación de variables ⇢ es x-alternativa de µ, si y
sólo si para toda variable ↵, excepto posiblemente X, ⇢(↵) = µ(↵). Entonces, tenemos
que:
Definición 5.7 (Semántica cuantificador universal). M |= 8X ↵ Si y sólo si V⇢ (↵) 2 V
para toda asignación de variables x-alternativa ⇢ de µ.
Definición 5.8 (Semántica cuantificador existencial). M |= 9X ↵ Si y sólo si existe una
asignación de variables x-alternativa ⇢ de µ, tal que V⇢ (↵) es verdadera.
Una fbf ↵ es válida en el modelo M si y sólo si M |= ↵ para toda asignación de
variable µ basada en hD, Vi. Una fbf que es válida en todo modelo se conoce como
universalmente válida.
Un resultado estándar importante es el principio de remplazo, expresado de la
siguiente forma: Sea ↵ cualquier fbf y X e Y dos variables cualesquiera. Sea M cualquier modelo de LLPO . Sea µ cualquier asignación de variables. Entonces cuando ⇢
es casi igual a µ excepto que ⇢(X) = µ(Y), V⇢ (↵) = Vµ (↵[Y/X]). Otro resultado es
el principio de concordancia que expresa que cuando µ y ⇢ concuerdan en todas las
variables libres de una fbf ↵, entonces V⇢ (↵) = Vµ (↵). Como consecuencia, cuando ↵
no contiene variables libres, entonces V⇢ (↵) = Vµ (↵) para cualquier ⇢ y µ.
�.�
���������� �� �� ������ �� ������ �����
Volvamos al ejemplo de la introducción:
1. Toda madre ama a sus hijos.
2. Julia es madre y Luis es hijo de Julia.
Conociendo (1) y (2) es posible concluir que:
3. Julia ama a Luis.
Podemos formalizar este ejemplo en Lógica de Primer Orden como sigue:
1. 8X 8Y madre(X) ^ hijo_de(Y, X) ) ama(X, Y)
2. madre(julia) ^ hijo_de(luis, julia)
3. ama(julia, luis)
Una vez que hemos formalizado nuestros enunciados, el proceso de inferencia puede verse como un proceso de manipulación de fbf, donde a partir de formulas como
(1) y (2), llamadas premisas, se produce la nueva fbf (3) llamada conclusión. Estas
manipulaciones se pueden formalizar mediante reglas de inferencia. Entre las reglas
de inferencia de la lógica de primer orden encontramos:
�.� ���������� �� �� ������ �� ������ �����
• Modus Ponens. O regla de eliminación de la implicación. Esta regla dice que
siempre que las fbfs de la forma ↵ y ↵ ) pertenezcan a las premisas o sean
concluidas a partir de ellas, podemos inferir :
↵ ↵)
() E)
• Eliminación de cuantificador universal. Esta regla expresa que siempre que una
fbf de la forma 8X↵ pertenezca a las premisas o sea concluida a partir de ellas,
una nueva fbf puede ser concluida al remplazar todas las ocurrencias libres de
X en ↵ por algún término t que es libre con respecto a X (todas las variables en
t quedan libres al substituir X por t. La regla se presenta como sigue:
8X↵(X)
(8E)
↵(t)
• Introducción de conjunción. Cuando las fbf ↵ y pertenezcan a las premisas o
sean concluidas a partir de ellas, podemos inferir ↵ ^ :
↵
↵^
(^I)
La correctez de estas reglas puede ser demostrada directamente a partir de la definición de la semántica de las fbf en LLPO . El uso de las reglas de inferencia puede
ilustrarse con el ejemplo formalizado. Las premisas son:
1. 8X8Ymadre(X) ^ hijo_de(Y, X) ) ama(X, Y)
2. madre(julia) ^ hijo_de(luis, julia)
Al aplicar la eliminación de cuantificador universal (8E) a (1) obtenemos:
3. 8Y(madre(julia) ^ hijo_de(Y, julia) ) ama(julia, Y)
Al aplicar nuevamente (8E) a (3) obtenemos:
4. madre(julia) ^ hijo_de(luis, julia) ) ama(julia, luis)
Finalmente, al aplicar Modus Ponens a (2) y (4):
5. ama(julia, luis)
La conclusión (5) ha sido obtenida rigurosamente, aplicando las reglas de inferencia.
Esto ilustra el concepto de derivación. El hecho de que una fórmula ↵ sea derivable
a partir de un conjunto de fórmulas se escribe
` ↵. Si las reglas de inferencia
son consistentes (sound), siempre que
` ↵ entonces
|= ↵. Esto es, si nuestra
lógica es consistente, cualquier fbf que puede ser derivada de otra fbf, es tambien una
consecuencia lógica de ésta última.
Definición 5.9 (Consistencia y completitud). Un conjunto de reglas de inferencia se dice
consistente si, para todo conjunto de fbf cerradas (sin ocurrencia de variables libres)
y
cada fbf cerrada ↵, siempre que ` ↵ se tiene que |= ↵. Las reglas de inferencia se dicen
completas si ` ↵ siempre que |= ↵.
67
68
������ �� ������ �����
�.�
��������������
Formalmente, como ya se mencionó, una substitución es un mapeo de las variables
del lenguaje a los términos del mismo:
Definición 5.10 (Substitución). Una substitución es un conjunto finito de pares de la forma
{X1 /t1 , . . . , Xn /tn } donde cada tn es un término y cada Xn es una variable, tal que Xi 6= ti
y Xi 6= Xj si i 6= j. La substitución vacía se denota por ✏.
Asumamos que Dom({X1 /t1 , . . . , Xn /tn }) denota al conjunto {X1 , . . . , Xn }, también
conocido como dominio; y Range({X1 /t1 , . . . , Xn /tn }) denota al conjunto {t1 , . . . , tn },
también conocido como rango. Entonces la regla anterior expresa que las variables en
el dominio de una substitución son únicas y no incluyen la substitución de la variable
por si misma.
La aplicación X✓ de la substitución ✓ a la variable X se define como:
X✓ =
t Si X/t 2 ✓
X En otro caso
observen que para las variables no incluidas en Dom(✓), ✓ aparece como la función
identidad. Es importante extender el concepto de substitución a las fbf:
Definición 5.11 (Aplicación de una substitución). Sea ✓ = {X1 /t1 , . . . , Xn /tn } una substitución y ↵ una fbf. La aplicación ↵✓ es la fbf obtenida al remplazar simultáneamente ti por
toda ocurrencia de Xi en ↵ (1 6 i 6 n). ↵✓ se conoce como un caso (instance) de ↵.
Ejemplos:
ama(X, Y) ^ madre(X){X/julia, Y/luis} = ama(julia, luis) ^ madre(julia)
p(f(X, Z), f(Y, a)) {X/a, Y/Z, W/b} = p(f(a, Z), f(Z, a))
p(X, Y) {X/f(Y), Y/b} = p(f(Y), b)
Definición 5.12 (Composición). Sean ✓ y
dos substituciones de la forma:
✓ = {X1 /s1 , . . . Xm /sm }
= {Y1 /t1 , . . . Yn /tn }
La composición ✓ se obtiene a partir del conjunto:
{X1 /s1 , . . . Xm /sm , Y1 /t1 , . . . Yn /tn }
de la manera siguiente: eliminar todas las Xi /si para las que Xi = si (1 6 i 6 m) y
eliminar también aquellas Yj /tj para las cuales Yj 2 Dom(✓) (1 6 j 6 n).
Por ejemplo:
{X/f(Z), Y/W}{X/a, Z/a, W/Y} = {X/f(a), Z/a, W/Y}
Definición 5.13 (Substitución idempotente). Una substitución ✓ se dice idempotente si
✓ = ✓✓.
�.� ���������� � �������� ���������
Se puede probar que una substitución ✓ es idempotente si y sólo si Dom(✓) \
Range(✓) = ;, es decir si el dominio y el rango de la substitución son disjuntos. Otras
propiedades de las substituciones son:
Definición 5.14 (Propiedades de las substituciones). Sean ✓, ↵ y
E una fbf. Entonces:
substituciones y sea
• E(✓↵) = (E✓)↵
• (✓↵) = ✓(↵ )
• ✏✓ = ✓✏ = ✓
Observen que, aunque las substituciones son asociativas, éstas no son conmutativas.
Las substituciones son importantes para definir una regla de inferencia de especial
relevancia para nosotros, conocida como la regla de resolución. Con las definiciones
introducidas en este capítulo podemos abordar el tema de los programas lógicos definitivos.
�.�
���������� � �������� ���������
1. El material aquí presentado está basado principalmente en los textos de Genesereth y Nilsson [20], capítulo 2; y el de Nilsson y Maluszynski [33], capítulo 1. Una lectura complementaria a estos textos son los capítulos 8 y 9 del texto
de Russell y Norvig [39]. Una aproximación más computacional a la Lógica de
Primer Orden, puede encontrarse en Huth y Ryan [22], capítulo 2.
2. Consideren el Mundo de Tarski [2] mostrado en la figura 5.3. Escriban una interpretación para la escena mostrada, considerando los siguientes predicados con
su significado evidente: triángulo/1, cuadrado/1, pentágono/1, mediano/1,
grande/1, pequeño/1, másPequeñoQue/2, aLaIzquierdaDe/2,
enLaMismaColumna/2.
3. En la intepretación anterior, cuales de las siguientes fórmulas son safisfacibles y
cuales no:
a) triángulo(a) ^ cuadrado(c) ^ pentágono(e)
b) mediano(a) ^ ¬grande(a) ^ ¬pequeño(a) ^ pequeño(f) ^ grande(c)
c) másPequeño(f, a) ^ másPequeño(a, c) ^ aLaIzquierdaDe(f, a) ^
aLaIzquierdaDe(e, b)
d) 8X8Y(aLaIzquierdaDe(X, Y) _ mismaColumna(X, Y) _
aLaIzquierdaDe(Y, X))
e) 8X8Y(cuadrado(X) ^ pentagono(Y) =) aLaIzquierdaDe(X, Y))
f) 9X9Y(triángulo(X) ^ cuadrado(Y) ^ mismaColumna(X, Y))
4. En la misma interpretación, introduzca un predicado que exprese una relación
entre tres objetos del universo de discurso. Utilice el predicado introducido en
una fórmula bien formada satisfacible.
69
70
������ �� ������ �����
Figura 5.3: Mundo de Tarski para los ejercicios 1 y 2.
Descargar