You are on page 1of 66

Computational Logic and Human Thinking: How to be

artificially intelligent
Robert A. Kowalski
Department of Computing
Imperial College

Traduce: Jacinto Dvila

Robert A. Kowalski (IC)

Lgica Computacional 01 (1)

Traduce: Jacinto Dvila

1 / 66

Contenido

Captulo A1: La Sintaxis de la Forma Lgica

Robert A. Kowalski (IC)

Lgica Computacional 01 (2)

Traduce: Jacinto Dvila

2 / 66

Atomos

En todas las variantes de la lgica, el bloque de construccin bsico es la


frmula atmica o tomo, para decirlo en breve. Al igual que en la fsica,
en donde un tomo puede ser visto como una coleccin de electrones que
son mantenidos juntos por un ncleo, los tomos en lgica son colecciones
de trminos, como "tren", "conductor" y "estacin", mantenidos juntos
por smbolos de predicados, como "en" o "parada". Los mbolos de
predicados son como los verbos en Ingls, y los trminos son como los
sustantivos o frases de sustantivos.

Robert A. Kowalski (IC)

Lgica Computacional 01 (3)

Traduce: Jacinto Dvila

3 / 66

tomos

Donde hemos escrito informalmente:


El conductor detiene el tren
en Lgica Simblica, se escribira normalmente as:
detiene(conductor, tren).

Robert A. Kowalski (IC)

Lgica Computacional 01 (4)

Traduce: Jacinto Dvila

4 / 66

tomos
En esa forma, el smbolo del predicado se escribe primero, seguido de los
trminos del tomo, que son llamados sus argumentos, rodeados por
parntesis y separados por comas. Cada smbolo de predicado tiene un
nmero estndar de argumentos, escrito un rden fijo, pero arbitrario. En
el ejemplo, el smbolo detiene tiene dos argumentos, con el sujeto
conductor primero y el objeto tren de segundo.
La ventaja de la forma simblica de la lgica para escribir tomos es que
distingue, sin ambigedad, entre el predicado y sus argumentos y, adems,
identifica los diferentes roles (tales como sujeto u objeto) de sus
argumentos por su posicin dentro de los parntesis. Es esta precisin lo
que hace de la Lgica Simblica apropiada para el procesamiento
computacional.

Robert A. Kowalski (IC)

Lgica Computacional 01 (5)

Traduce: Jacinto Dvila

5 / 66

tomos

Sin embargo, esta ventaja tiene un costo: tener que sobredefinir los
componentes de un tomo. Por ejemplo, una representacin igualmente
apropiada de la oracin el conductor detiene el tren es la frmula atmica:
ocurre(detiene, conductor, tren)
Esta otra representacin trata a detiene como un trmino en lugar de un
smbolo de predicado. Es tambin posible, an si no muy til, representar
la misma oracin con un predicado sin argumentos, digamos
ocurre-detiene-conductor-tren() o sin los parntesis, simplemente
ocurre-detiene-conductor-tren.

Robert A. Kowalski (IC)

Lgica Computacional 01 (6)

Traduce: Jacinto Dvila

6 / 66

tomos
De hecho, la representacin ms cercana a lo pretendido, subrayando el
significado de la oracin en lenguaje natural, es la coleccin de oraciones
atmicas:
ocurre(evento-0014). tipo(evento-0014, detiene). agente(evento-0014,
007). objeto(evento-0014, el-escocs-volador). esun(007,
conductor-de-tren). esun(el-escocs-volador, tren).
Esta representacin vuelve explcito que el conductor 007 es un
identificador individual, y que el tren es un tren particular con su propio
identificador nico el-escocs-volador. El mismo evento es un evento
nico, con un identificador evento-0014 que lo distingue de cualquier otro
evento en el cul el mismo conductor detiene el mismo tren en alguna otra
ocasin.

Robert A. Kowalski (IC)

Lgica Computacional 01 (7)

Traduce: Jacinto Dvila

7 / 66

tomos
An cuando tales representaciones son un tanto incmodas en
comparacin con las oraciones en lenguaje natural, suele ser necesarias en
las implementaciones computacionales de la lgica, donde las distinciones
que ellas introducen son inevitables. Se puede argumenta que tales
distinciones son inevitables tambin en un lenguaje del pensamiento para
un agente humano.
La representacin informal que usamos en la mayor parte de este libro
tiene la ventaja de que oculta esa complejidad subyacente en las
representaciones ms precisa. Sin embargo, el lector debe tener presente
que, para representar el significado de aparentemente simples oraciones en
lenguaje natural, tendran que ser traducidas esas oraciones a una
representacin ms precisa como la ilustrada ac.

Robert A. Kowalski (IC)

Lgica Computacional 01 (8)

Traduce: Jacinto Dvila

8 / 66

Smbolos de Predicado (o simplemente predicados)

Los smbolos de predicados o predicados tienen cero, uno o ms


argumentos. Las frmulas atmicas cuyos predicados tienen cero
argumentos son llamadas por algunos frmulas proposicionales. Estas
incluyen los dos tomos especiales verdadero y falso. El caso especial de la
Lgica Simblica en el cual todos los tomos son frmulas proposicionales
es conocido como lgica proposicional. El caso ms general, en el que los
predicados tienen cualquier nmero de argumentos, se denomina lgica de
predicados.

Robert A. Kowalski (IC)

Lgica Computacional 01 (9)

Traduce: Jacinto Dvila

9 / 66

Smbolos de Predicado (o simplemente predicados)

Las frmulas proposicionales son oraciones que denotan directamente


proposiciones. Los predicados con un argumento denota propiedades de
individuos y los predicados con ms de un argumento denotan relaciones
entre individuos. Esta distincin entre proposiciones, propiedades y
relaciones es significativa en el lenguaje natural, pero es una complicacion
innecesaria y no es bienvenida en la Matemtica. Es ms simple y ms
conveniente referirse a esas tres nociones como relaciones, que pueden
mantener cero, uno o ms individuos. Con esta convencin, podemos decir
directamente que los smbolos de predicados denotan (o representan)
relaciones.

Robert A. Kowalski (IC)

Lgica Computacional 01 (10)

Traduce: Jacinto Dvila

10 / 66

Smbolos de Predicado (o simplemente predicados)


No obstante, no todas las relaciones deben ser representadas por smbolos
de predicados. Las relaciones pueden ser tambin representadas por
predicados, propiamente dichos, que son expresiones compuestas
construidas a partir de expresiones ms simples que se combinan usando
las conectivas lgicas como "y", "o", "no" y "si". Por ejemplo, la
propiedad de ser alto y atractivo puede denotarse con un predicado,
digamos alto(X) y atractivo(X), que no tiene porque ser expresado a travs
de un nuevo smbolo de predicado. Ser conveniente, con frecuencia,
hablar de tales predicados, sin tener que forzarles una representacin con
smbolos de predicados particulares.
La Denotacin es una relacin semntica entre los smbolos y los objetos
que esos smbolos representan. Es uno de los grandes logros de la Lgica
Simblica, que atrae la envidia incluso de muchos de sus crticos, el tener
una semntica apropiada. Pero antes de discutir la semntica, debemos
completar la discusin de la sintaxis.
Robert A. Kowalski (IC)

Lgica Computacional 01 (11)

Traduce: Jacinto Dvila

11 / 66

Trminos
El tipo de trmino ms simple es una constante, como 007, que denota un
individuo, digamos la persona nacida el 1 de Abril del 200, hijo de Mary
Smith y John Smith de Petworth, Inglaterra. Pero tambin es una trmino
una variable, que representa a una clase completa de individuos. Es comn
en Lgica Simblica usar letras como la X y la Y para designar variables,
como en la frmula algebraica:
X+Y=Y+X
que se cumple para todos los nmeros X y Y. En este libro, usamos la
convencin, tomada en prstamo del lenguaje de programacin Prolog, de
que las variables comienzan con un letra en mayscula, como esa X y esa
Y, y que las constantes y los smbolos de predicados comienzan con
minsculas.
Robert A. Kowalski (IC)

Lgica Computacional 01 (12)

Traduce: Jacinto Dvila

12 / 66

Trminos
Trminos ms complejos se pueden construir a partir de los ms simples,
como madre de X, escrito as madre(X), o 2 + 3, escrito como +(2,3). En
estos casos madre y + son smbolos de funciones. Sin embargo, las
funciones son un caso especial de relaciones, as que los smbolos de
funciones son, estrictamente hablando, innecesarios. En lugar de escribir,
por ejemplo:
madre(cain) = eva
+(2,3) = 5
podemos escribir:
madre(cain, eve)
+(2,3,5)
Robert A. Kowalski (IC)

Lgica Computacional 01 (13)

Traduce: Jacinto Dvila

13 / 66

Trminos

Representar funciones como relaciones tiene la ventaja de que los smbolos


de funciones pueden permanecer reservados para construir nombres de
individuos. Los smbolos de funciones usando de esa manera son algunas
veces conocidos como funciones Skolem, en honor al lgico Thoralf
Skolem.
Usados para nombrar, los smbolos de funciones hacen posible en
nombramiento de una infinidad de individuos con un vocabulario finito.
Por ejemplo, en lgica matemtica, es comn nombrar los nmeros
naturales 0,1,2,... con los trminos 0, s(0), s(s(0)), ... en donde el smbolo
de funcin s es llamado la funcin sucesor.

Robert A. Kowalski (IC)

Lgica Computacional 01 (14)

Traduce: Jacinto Dvila

14 / 66

Trminos
El trmino s(X) es equivalente a X+1. Usando la funcin sucesor y
representando la suma como una relacin, podemos representar 2+3=5
con:
+(s(s(0)), s(s(s(0))), s(s(s(s(s(0))))) )
Esta ltima no es muy fcil de leer, pero es mucho ms apropiada para los
estudios tericos que el uso de sistemas numricos alternativos como el
decimal, el binario o los nmeros romanos.
Los trminos que no contienen variable alguna son llamados trminos
bsicos (literalmente, trminos a tierra). Juegan un papel especial en la
semntica, pues constituyen el reservorio del cual se obtienen los nombres
de los individuos.

Robert A. Kowalski (IC)

Lgica Computacional 01 (15)

Traduce: Jacinto Dvila

15 / 66

Condicionales
Estrictamente hablando, una condicional es una oracin con esta forma:
A B, en donde A y B son oraciones. Sin embargo, podemos usar el
trmino condicional con un poco ms de flexibilidad para referirnos a
oraciones que pueden contener variables. Ms an, en general, limitaremos
la atencin a condicionales que puedan escribirse en cualquiera de estas
dos formas equivalentes:
C 1 ... Cn D1 ... Dm E
es decir, si C1 y .. y C n y no D 1 y .. y no D m entonces E
y
E C 1 ... Cn D1 ... Dm
es decir, E si C1 y .. y C n y no D 1 y .. y no D m
Robert A. Kowalski (IC)

Lgica Computacional 01 (16)

Traduce: Jacinto Dvila

16 / 66

Condicionales
en donde la conclusin E es una frmula atmica, las condicionesCi son
frmulas atmicas y las condiciones Dj son las negaciones de frmulas
atmicas. A tales condicionales tambin se les conoce como clusulas y
cuando se las reune en conjuntos de tales condicionales se les llama a esos
conjuntos programas lgicos.
Como se suele hacer con las definiciones matemticas, la cantidad de
condiciones positivas n y la cantidad de condiciones negativas m pueden
una o la otra o ambas ser 0. Si m es 0, entonces la condicional es una
clusula definida.
Las clusulas definidas son importantes por dos razones. Primero, son la
forma adecuada de representar cualquier predicado computable. Segundo,
como veremos en el captulo A2, tienen una semntica muy simple en
trminos de modelos mnimos.
Robert A. Kowalski (IC)

Lgica Computacional 01 (17)

Traduce: Jacinto Dvila

17 / 66

Condicionales

Si la cantidad de condiciones n + m es 0, entonces la condicional


degenerada E (o E ) es, de hecho, simplemente una oracin atmica,
y normalmente se le escribe sin la flecha. Simplemente como E.
La flecha hacia atrs se lee si, y la flecha hacia adelante tiene el
mismo significado, pero en direccin opuesta. El smbolo es usando en
lugar de la conectiva y. Las expresiones conectadas por se denominan
conjunciones.
Los smbolos de predicados y los smbolos constantes que aparecen en
clusulas diferentes son una especie de pegamento que atra esas clusulas
entre s. Las variables son tambin un tipo de pegamento, interno a las
clusulas.

Robert A. Kowalski (IC)

Lgica Computacional 01 (18)

Traduce: Jacinto Dvila

18 / 66

Condicionales

Por ejemplo, la variable X en la clusula:


sorprendente(X ) puede_volar (X )
tiene el efecto de expresar que todo lo que puede volar es sorprendente.
Por otro lado, sin son dos variables en la clusula como en:
sorprendente(X ) puede_volar (Y )
se tiene la expresin de si algo puede volar entonces todo es sorprendente!.

Robert A. Kowalski (IC)

Lgica Computacional 01 (19)

Traduce: Jacinto Dvila

19 / 66

Condicionales
Las variables en las clusulas se dice entonces que estn cuantificadas
universalmente dentro del alcance de la clusula en la que aparecen. En
Lgica Simblica, la cuantificacin de variables se escribe normalmente
con los smbolos que significa para todo y que significa existe, y el
alcance de esos cuantificadores es indicado por los parntesis. De esta
forma, las condicionales anteriores se escribiran:
X (sorprendente(X ) puede_volar (X ))
X Y (sorprendente(X ) puede_volar (Y ))
Puesto que todas las variables en una clusula estn universalmente
cuantificadas y su alcance es toda la clusula, no se introduce ninguna
ambigedad si se omiten completamente los cuantificadores.
Robert A. Kowalski (IC)

Lgica Computacional 01 (20)

Traduce: Jacinto Dvila

20 / 66

Condicionales

Puesto, adems, que las condicionales pueden no tener condicionales, las


oraciones atmicas pueden contener tambin variables universalmente
cuantificadas. Considere este ejemplo simptico:
le_gusta(bob, X ).
Las oraciones atmicas que no contienen tales variables se llaman tambin
hechos.

Robert A. Kowalski (IC)

Lgica Computacional 01 (21)

Traduce: Jacinto Dvila

21 / 66

Condicionales
En la versin ms simple de la Lgica Simblica, las variables como X y Y
se pueden referir a cualquier tipo de individuos. As, por ejemplo, la
clusula sorprendente(X ) puede_volar (Y ) implica que si una piedra
puede volar entonces esa piedra es sorprendente. De forma similar, la
ecuacin matemtica X + Y = Y + X , si fuese escrita en notacin lgica,
implicara que podra Ud sumar dos piedras en cualquier orden y el
resultado sera el mismo.
Para superar ese uso poco natural de variables sin restricciones, se han
desarrollado lgicas con tipo o tipeadas, en las cules las variables si estn
restringidas, de manera que se refieren solamente a individuos de ciertas
clases, llamadas tipos. Un efecto similar puede obtenerse, con algo de
dificultad, en una lgica sin tipos incluyendo una condicin extra para cada
variable, en cuyo predicado se exprese el tipo de la variable.

Robert A. Kowalski (IC)

Lgica Computacional 01 (22)

Traduce: Jacinto Dvila

22 / 66

Condicionales
Por ejemplo, para establecer que todo animal que puede volar es
sorprendente, tendramos que escribir algo como esto en una lgica sin
tipos:
sorprendente(X ) puede_volar (X ) animal(X )
Para concluir que toda persona que puede volar es sorprendente,
necesitaramos una clusula adicional que exprese que las personas son
animales:
animal(X ) persona(X )
O, como los seguidores de la orientacin por objetos en Computacin
preferiran que dijeramos, la clase de todas las personas hereda la
propiedad de volar de la ms abstracta clase de todos los animales.
Robert A. Kowalski (IC)

Lgica Computacional 01 (23)

Traduce: Jacinto Dvila

23 / 66

Condicionales
En la versin informal de la Lgica Computacional que usamos en este
libro, no slo omitimos los cuantificadores universales, sino que tambin
usamos palabras como cualquiera o todos, en lugar de variables sin tipo.
Las con tipo suelen tambin se reemplazadas por nombre comunes, como
un animal, una estacin o un ave. La virtud de este uso informal es que es
neutral respecto a si se le formaliza en alguna versin de lgica con tipo o
se usa, en su lugar, una lgica sin tipos con predicados para representar los
tipos correspondientes. Por ejemplo, en lugar de escribir:
X (sorprendente(X ) puede_volar (X ) animal(X ))
escribimos:
Si un animal puede volar entonces ese animal es sorprendente
o cualquier animal que pueda volar es sorprendente
Robert A. Kowalski (IC)

Lgica Computacional 01 (24)

Traduce: Jacinto Dvila

24 / 66

Condicionales

Ms an, la versin informal es compatible con otras representaciones


formales, tales como:
sorprendente(X ) puede_volar (X ) esun(X , animal)
esun(X , animal) esun(X , persona)

Robert A. Kowalski (IC)

Lgica Computacional 01 (25)

Traduce: Jacinto Dvila

25 / 66

Definiciones Recursivas

Las condicionales se usan frecuentemente para definir predicados. Por


ejemplo, aqu tenemos la definicin del predicado n
u mero_natural:
n
u mero_natural(0)
n
u mero_natural(s(X )) n
u mero_natural(X )
Se dice que esta es una definicin recursiva, porque el predicado
n
u mero_natural, que se define en la conclusin de la segunda oracin,
aparece entre sus condiciones (y viceversa). La habilidad de expresar las
definiciones recursivas le da a las condicionales el poder completo de un
lenguaje de programacin de propsito general.

Robert A. Kowalski (IC)

Lgica Computacional 01 (26)

Traduce: Jacinto Dvila

26 / 66

Definiciones Recursivas

Considere esta definicin recursiva de la suma:


+(0, Y , Y )
+(s(X ), Y , s(Z )) +(X , Y , Z )
Por simplicidad, omito las condiciones calificadoras de X, Y y Z como
nmeros naturales. En la notacin funcional, la definicin es mucho ms
simple y luce algo as como:
0+Y=Y
s(X) + Y = s(X+Y)

Robert A. Kowalski (IC)

Lgica Computacional 01 (27)

Traduce: Jacinto Dvila

27 / 66

Definiciones Recursivas

Eso tambin puede ser escrito en una forma todava ms simple (X+1)+Y
=(X+Y)+1. Pero esto puede confundir, porque ese signo + en la expresin
+1 es diferente del signo +, por ejemplo, en (X+Y). Dir otras cosas
sobre la relacin entre funciones y relaciones ms tarde en este captulo.

Robert A. Kowalski (IC)

Lgica Computacional 01 (28)

Traduce: Jacinto Dvila

28 / 66

Clusulas Meta
En la Lgica Computacional, usamos las condicionales (incluyendo hechos
y otras oraciones atmicas) para representar creencias, cuyas variables
estn todas universalmente cuantificadas. Adems, usamos conjunciones
para representar metas cuyas variables estn todas existencialmente
cuantificadas.
En general, una clusula meta es una conjuncin existencialmente
cuantificada de tomos o negaciones de tomos:
X1 ...Xm (C1 ... Cn D1 ... Dm )
es decir, existe X 1 .. y existe Xm tales que C1 y ... y Cn y no D1 y .. y no Dm
Si m es 0, entonces la clusula meta se conoce como una clusula meta
definida.
Puesto que todas la variables en una clusula meta estn existencialmente
cuantificadas dentro del alcance de la clusula, es normal omitir el uso
explcito del cuantificador existencial.
Robert A. Kowalski (IC)

Lgica Computacional 01 (29)

Traduce: Jacinto Dvila

29 / 66

Clusulas Meta
Por ejemplo, la clusula meta:
le_gusta(bob, X )
expresa realmente que
X le_gusta(bob, X )
Tales metas existencialmente cuantificadas son suficientes para representar
las metas por lograr de un agente. Sin embargo, como veremos en mayor
detalle ms tarde, no alcanzan a representar metas de mantenimiento y
restricciones.

Robert A. Kowalski (IC)

Lgica Computacional 01 (30)

Traduce: Jacinto Dvila

30 / 66

Clusulas Meta
Tanto las clusulas definidas (que incluyen las oraciones atmicas) como
las clusulas metas definidas son normalmente etiquetadas como clusulas
de Horn, en honor al Lgico Alfred Horn, quien estudi algunas de sus
propiedades matemticas. Las clusulas de Horn tienen el poder expresivo
de las Mquinas de Turing, el modelo matemtico estandar de
computacin mecnica.
En programacin lgica, las clusulas metas representan la computacin
que se habr de realizar. Por ejemplo, la clusula meta:
+(s(s(0)), s(s(0)), X ) +(X , Y , s(s(s(s(s(0))))))
representa el problema de computar la suma X de 2 mas 2 y calcular un
nmero Y que sumado a X de 5.

Robert A. Kowalski (IC)

Lgica Computacional 01 (31)

Traduce: Jacinto Dvila

31 / 66

Otras Clases de Oraciones

Los condicionales, usados para representar creencias, y las clusulas metas,


usadas para representar metas por lograr, tienen todas una sintaxis muy
simple. Sin embargo, las condicionales son lgicamente equivalente a
oraciones ms complejas en la sintaxis de la lgica clsica. Ac van
algunos ejemplos de tales equivalencias:
X Y (sorprendente(X ) puede_volar (Y ))
es equivalente a:
X (sorprendente(X ) Y puede_volar (Y ))

Robert A. Kowalski (IC)

Lgica Computacional 01 (32)

Traduce: Jacinto Dvila

32 / 66

Otras Clases de Oraciones


sorprendente(X ) puede_volar (X )
sorprendente(X ) estrella_de_cine(X )
es equivalente a:
sorprendente(X ) (puede_volar (X ) estrella_de_cine(X ))
generoso_con(X , Z ) le_gusta(X , Y ) da(X , Y , Z )
es equivalente a:
(generoso_con(X , Z ) le_gusta(X , Y )) da(X , Y , Z )
Robert A. Kowalski (IC)

Lgica Computacional 01 (33)

Traduce: Jacinto Dvila

33 / 66

Otras Clases de Oraciones

El smbolo es usado en lugar de la conectiva o. Las expresiones


conectadas porson denominadas disjunciones. En general, un disjuncin
tiene la forma:
C1 ... Cn
es decir, C1 o .. o Cn
(NT: En Espaol, es la o no acentuada. La acentuada forzara la
exclusin entre las condiciones).

Robert A. Kowalski (IC)

Lgica Computacional 01 (34)

Traduce: Jacinto Dvila

34 / 66

Otras Clases de Oraciones


Veremos ms adelante que, adems de permitir el uso de los
cuantificadores existenciales y las disjunciones, es til extender la sintaxis
de la lgica condicional para representar metas y creencias ms complejas.
En particular, es til incluir los cuantificadores existenciales y las
disjunciones en las conclusiones de metas de mantenimiento. Por ejemplo:
Las metas de mantenimiento:
hambriento(yo) X come(yo, X )
ataca(X , yo) huye(yo) ataca(yo, X )
Los cuantificadores existenciales en las conclusiones de las metas
condicionales son tan comunes que es conveniente omitirlos, conviniendo
que las variables en la conclusin de una meta condicional que no aparecen
en las condiciones de la meta estn existencialmente cuantificadas, con un
alcance sobre la conclusin de la meta. Por ejemplo, meta de
mantenimiento:
Robert A. Kowalski (IC)

Lgica Computacional 01 (35)

Traduce: Jacinto Dvila

35 / 66

Otras Clases de Oraciones

La inclusin de disjunciones en las conclusiones de las condicionales otorga


a la lgica de las condicionales en poder de la lgica clsica. Diremos
algunas otras cosas acerca de la relacin entre la lgica de los
condicionales y la lgica clsica en el captulo A2. Nos enfocamos en la
forma condicional de la lgica en este libro, porque es ms fcil de
entender tanto para los computadores como para los humanos.
Se puede argumenta que la relacin entre la lgica clsica y la lgica de las
condicionales es como la relacin entre el lenguaje de comunicacin entre
humanos y el lenguaje del pensamiento humano.

Robert A. Kowalski (IC)

Lgica Computacional 01 (36)

Traduce: Jacinto Dvila

36 / 66

Otras Clases de Oraciones


Una forma de entender esta relacin es ver que el razonamiento involucra
dos clases de reglas de inferencia, aplicadas en dos etapas. El primer tipo
de reglas, aplicada en la primera etapa, transforma oraciones complicadas
en oraciones ms simples. El segundo tipo de reglas, aplicado en la
segunda etapa, razona con esas oraciones ms simples.
Este proceso de razonamiento de dos etapas es usado en muchos
procedimientos de prueba desarrollados para la lgica clsica en
Computacin. En sistemas basados en el principio de Resolucin (Robinso,
1965) en particular, la primera etapa transforma las oraciones de la lgica
clsica a su forma clausal. La segunda etapa procesa las clusulas usando
refinamientos de la regla de inferencia llamada Resolucin. Discutimos el
principio de Resolucion en el captulo adicional A5.

Robert A. Kowalski (IC)

Lgica Computacional 01 (37)

Traduce: Jacinto Dvila

37 / 66

Otras Clases de Oraciones

Las comunicaciones en lenguaje natural pueden ser vistas como un proceso


similar de dos etapas. La primera etapa transforma (o compila) oraciones
del lenguaje natural en oraciones ms simples en el lenguaje del
pensamiento. La segunda etapa procesa esas oraciones ms simples usando
reglas de inferencia, como las de razonamiento hacia adelante y hacia
atrs, que son casos simples de Resolucin. Mientras ms cercana estn las
oraciones del lenguaje natural al lenguaje del pensamiento, menos esfuerzo
requerirn para ser transformadas en oraciones en ese lenguaje del
pensamiento, y sern ms fciles de entender.

Robert A. Kowalski (IC)

Lgica Computacional 01 (38)

Traduce: Jacinto Dvila

38 / 66

La Negacin
En la lgica clsica, las oraciones positivas y negativas tiene el mismo
estatus. Ser o no ser - no hay razn para preferir una a la otra. Pero en la
Lgica Computacional, las oraciones positivas son ms bsicas que las
negativas, y estas normalmente slo llenan los espacios entre oraciones
positivas. Este estatus ms bsico de las oraciones positivas se refleja en
las sintaxis de las condicionales, las cules normalmente slo tienen
conclusiones positivas, pero pueden tener condiciones negativas C (que
tambin se escribe no C). Por ejemplo:
sancionable(X ) presiona_alarma(X ) no hay _emergencia
puede_volar (X ) ave(X ) no ping uino(X )

Robert A. Kowalski (IC)

Lgica Computacional 01 (39)

Traduce: Jacinto Dvila

39 / 66

La Negacin
Tal como se explica en el captulo 5 y en otros lugares, es natural concluir
que una condicin negativa no C se cumple si la condicin C
correspondiente no se cumple. Esta interpretacin de la negacin se llama
negacin por falla. De esta forma, dada una situacin en la cual se nos
dice que ave(juan), pero en la que no tenemos ningn indicio para creer
ping uino(juan), se deriva por negacin por falla que puede_volar (juan).
Considere esta definicin de los nmeros pares e impares, que usa slo
conclusiones positivas y una condicin negativa:
par (0)
par (s(s(X ))) par (X )
impar (X ) no par (X )
Robert A. Kowalski (IC)

Lgica Computacional 01 (40)

Traduce: Jacinto Dvila

40 / 66

La Negacin
Puesto que no se puede demostrar que par (s(0)), se deriva de esas
clusulas y por negacin por falla que impar (s(0))se cumple.
Adems de las condiciones negativas interpretadas por la negacin por
falla, las oraciones negativas puede tener la forma de restricciones, que son
metas condicionales con falso por conclusin. Por ejemplo, en el contexto
de un agente que supervisa sus acciones candidatas, la restriccin:
sancionable(X ) falso
es decir, no seas sancionable,
sirve como una prohibicin que impide acciones, como el que Ud presione
el botn de la seal de alarma inapropiadamente o que Ud deje de pagar
sus impuestos, que lo convertiran en sancionable.
Robert A. Kowalski (IC)

Lgica Computacional 01 (41)

Traduce: Jacinto Dvila

41 / 66

La Negacin
Ms an, como se ve en el captulo sobre la Abducin, una restriccin, tal
como:
par (X ) impar (X ) falso
es decir, nada es par e impar,
que es una propiedad de la definicin de los nmeros pares e impares,
puede ser usada para eliminar explicaciones incorrectas de las
observaciones.
Veremos en su momento que ambos tipos de negaciones (la negacin por
falla y las restricciones) tienen la misma semntica de la negacin en
lgica clsica. Sin embargo, cumplen funciones muy diferentes en la
representacin del conocimiento y en el razonamiento.
Robert A. Kowalski (IC)

Lgica Computacional 01 (42)

Traduce: Jacinto Dvila

42 / 66

Las Funciones, las Relaciones y la Igualdad


En este libro raramente usamos smbolos de funciones y lo hacemos
solamente para construir nombres compuestos de individuos. Otros tipos
de funciones son tratadas como relaciones (o predicados), como en las
bases de datos relacionales. En lugar de escribir f (X ) = Y , donde f es un
smbolo de funcin, escribimos f (X , Y ), en el que f es un smbolo de
predicado (o relacin). En esta representacin relacional, el hecho de que
la relacin es una funcin se representa con la restriccin:
f (X , Y1 ) f (X , Y2 ) Y1 = Y2
Hemos logrado combinar esa representacin relacional de las funciones con
una nocin simple de igualdad, comprendida como identidad, y definida
por un slo axioma:
X =X
Robert A. Kowalski (IC)

Lgica Computacional 01 (43)

Traduce: Jacinto Dvila

43 / 66

Las Funciones, las Relaciones y la Igualdad


Esta representacin, de las funciones como relaciones y de la igualdad
como la identidad, funciona muy bien solamente si los individuos tienen
nombres nicos. As, por ejemplo, no es suficiente decir bob detuvo el tren
si la misma persona se llama robert y si ms de una persona se llama
tambin bob. Tenemos que darle a bob un nombre nico, digamos 007 por
ejemplo, y decir algo como:
detiene(007, el_tren)
nombre(007, bob)
nombre(007, robert)
nombre(008, bob)
Consideraciones similares se deben aplicar al nombre del tren, desde luego,
y quizs tambin a el nombre del evento, como se mostr antes en este
captulo.
Robert A. Kowalski (IC)

Lgica Computacional 01 (44)

Traduce: Jacinto Dvila

44 / 66

Las Funciones, las Relaciones y la Igualdad

La definicin de igualdad como identidad significa que dos individuos son


idnticos si y slo si tienen el mismo nombre nico. Esto constrasta con la
nocin ms convencional de igualdad, en la que el mismo individuo puede
tener varios nombres. Por ejemplo:
el lucero de la ma
nana = la estrella de la tarde
doctor _jekyll = mister _hyde

Robert A. Kowalski (IC)

Lgica Computacional 01 (45)

Traduce: Jacinto Dvila

45 / 66

Las Funciones, las Relaciones y la Igualdad


Para razonar con las igualdades de este tipo, es normal usar axiomas
adicionales, tales como las clusulas definidas siguientes:
X =X
f (X1 , . . . , Xn ) = f (Y1 , . . . , Yn ) X1 = Y1 . . . Xn = Yn
p(X1 , . . . , Xn ) = p(Y1 , . . . , Yn ) X1 = Y1 . . . Xn = Yn
para cada smbolo de funcin f y para cada smbolo de predicado p. Sin
embargo, razonar con tales axiomas es costoso computacionalmente. Ms
an, su uso requiere cierta precaucin, si es que queremos hacer
distinciones como:
bueno(doctor _jekyll) malo(mister _hyde)
Robert A. Kowalski (IC)

Lgica Computacional 01 (46)

Traduce: Jacinto Dvila

46 / 66

La Lgica Clsica
La sintaxis de la lgica clsica es una extensin de la sintaxis de la forma
condicional de la lgica usada en este libro. Los trminos y frmulas
atmicas en lgica clsica son los mismos que en la lgica de los
condicionales. Sin embargo, las oraciones no atmicas pueden construirse
usando una combinacin arbitraria de las conectivas lgicas , , y ,
y los cuantificadores y .
La lgica clsica est peor estructurada que la forma condicional de la
lgica. Por ejemplo, en la forma condicional, hay una sola forma de
expresar que todas las aves pueden volar y que Juan es un ave:
puede_volar (X ) ave(X )

ave(juan)

Robert A. Kowalski (IC)

Lgica Computacional 01 (47)

Traduce: Jacinto Dvila

47 / 66

La Lgica Clsica

Pero en la lgica clsica, las mismas creencias pueden ser descritas en


muchas formas equivalentes, incluyendo:
(X ((puede_volar (X ) ave(X )) ave(juan)))
(X ((puede_volar (X ) ave(juan)) (ave(X ) ave(juan))))

Robert A. Kowalski (IC)

Lgica Computacional 01 (48)

Traduce: Jacinto Dvila

48 / 66

La Lgica Clsica

Para traducir la lgica clsica en oraciones en la forma condicional de la


lgica, es preciso emplear reglas de inferencia que preservan tales
equivalencias, como:
reemplace X A con X A
reemplace A B con (A B)
reemplace A B con A B

Robert A. Kowalski (IC)

Lgica Computacional 01 (49)

Traduce: Jacinto Dvila

49 / 66

La Lgica Clsica

La lgica clsica y la lgica condicional tambin se distinguen en el uso de


los cuantificadores. En la lgica condicional, todas las variables en las
condicionales estn cuantificadas universalmente, y todas las variables en
las clusulas metas estn existencialmente cuantificadas, por lo que los
cuantificadores pueden ser omitidos. Pero en la lgica clsica, todas las
variables pueden estar en cualquier caso cuantificadas universal o
existencialmente, por lo que los cuantificadores deben ser explcitos.

Robert A. Kowalski (IC)

Lgica Computacional 01 (50)

Traduce: Jacinto Dvila

50 / 66

La Lgica Clsica

En la lgica condicional, los cuantificadores existenciales se evitan


otorgando un nombre a cada cosa que existe, el cual es o bien una
constante o bien un smbolo de funcin que se aplica a otros nombres. En
lugar de decir, por ejemplo, X ave(X ), decimos ave(juan)o ave(007).
Hacemos eso porque otorgar nombres explcitos a los individuos transmite
ms informacin. Si Ud sabe que juan es un ave, porque habra de ocultar
la identidad de Juan diciendo solamente que alguien es un ave,
especialmente cuando est Ud hablando con Ud mismo en su propio
lenguaje de pensamiento.

Robert A. Kowalski (IC)

Lgica Computacional 01 (51)

Traduce: Jacinto Dvila

51 / 66

La Relacin entre La Lgica Clsica, Lgica Clausal y La


Lgica Computacional
Cualquier cosa que se puede decir en lgica clsica puede tambin decirse
en la forma condicional de la lgica, pero tiene que ser dicha usando
solamente variables cuantificadas universalmente y permitiendo
disjunciones en las conclusiones de las condicionales. Para decirlo mejor,
cualquier oracin de la lgica clsica puede ser traducida en un conjunto
de clusulas con la forma:
C1 . . . Cn D1 . . . Dm
donde cada condicin Ci y cada conclusin Dj es una frmula atmica, y
toda variable en la clsula est implicitamente cuantificada
universalmente, con alcance en toda la clusula. Si n es 0, entonces
C1 . . . Cn es equivalente a cierto. Si m es 0, entonces D1 . . . Dm es
equivalente a falso.
Robert A. Kowalski (IC)

Lgica Computacional 01 (52)

Traduce: Jacinto Dvila

52 / 66

La Relacin entre La Lgica Clsica, Lgica Clausal y La


Lgica Computacional
Tradicionalmente, tales clusulas estn escritas en la forma lgicamente
equivalente de una disjuncin universalmente cuantificada (llamada forma
clausal):
C1 . . . Cn D1 . . . Dm
An cuando las oraciones de la lgica clsica pueden ser siempre
traducidas a la forma clausal, la oracin original y su traduccin no
siempre son logicamente equivalentes. Por ejemplo, la oracin
X Y (mother (X , Y ) person(X ))puede ser traducida como la clusula
mother (X , mom(X )) person(X ). Esta clusula usa una funcin Skolem
para nombrar un nombre y es, en cierta forma, ms informativa que la
original. Pero no es equivalente.
Robert A. Kowalski (IC)

Lgica Computacional 01 (53)

Traduce: Jacinto Dvila

53 / 66

La Relacin entre La Lgica Clsica, Lgica Clausal y La


Lgica Computacional
En teora, el uso de las funciones Skolem para reemplazar cuantificadores
existenciales implica razonar con la igualdad. Por ejemplo,
mom(cain) = eve. Sin embargo, tal tipo de de calificadores existenciales
ocurre en la conclusin de las metas, en lugar de en las creencias. El
procedimiento de prueba del captulo A6 opera con cuantificadores
existenciales explcitos en las conclusiones de las metas. De forma que los
problemas de razonar con la igualdad, creados por las funciones Skolem,
no parecen sugir mucho en la prctica.
En la lgica clausal, las metas de logro se resuelve por reductio ad
absurdum, suponiendo su negacin y derivando falso del o con el conjunto
de clusulas que resulta.

Robert A. Kowalski (IC)

Lgica Computacional 01 (54)

Traduce: Jacinto Dvila

54 / 66

La Relacin entre La Lgica Clsica, Lgica Clausal y La


Lgica Computacional
Por ejemplo, la negacin de la meta de logro:
X1 ...Xm (C1 . . . Cn )
es equivalente tanto a la negacin (universalmente cuantificada) siguiente:
(C1 . . . Cn ) falso
como a esta clusulas ordinaria (universamente cuantificada):
C1 . . . Cn

Robert A. Kowalski (IC)

Lgica Computacional 01 (55)

Traduce: Jacinto Dvila

55 / 66

La Relacin entre La Lgica Clsica, Lgica Clausal y La


Lgica Computacional
Las metas de mantenimiento en lgica clausal se resuelven de la misma
manera, convirtiendo su negacin a la forma clausal y derivado falso. Sin
embargo, puesto que las metas de mantenimiento estn universalmente
cuantificadas, su negaciones estarn existencialmente cuantificadas y estos
cuantificadores existenciales deben ser reemplazados por constantes
Skolem. Por ejemplo, para resolver la meta de mantenimiento:
ataca(X , yo) huye(yo) ataca(yo, X )
es necesario reemplazar la variable X con una constantes Skolem, digamos
: ( y convertir la negacin de la condicional skolemizada en las siguientes
clusulas:

Robert A. Kowalski (IC)

Lgica Computacional 01 (56)

Traduce: Jacinto Dvila

56 / 66

La Relacin entre La Lgica Clsica, Lgica Clausal y La


Lgica Computacional
ataca(0 : (0 , yo)
huye(yo)
ataca(yo,0 : (0 )
Si esta forma de resolver metas de mantenimiento tiene xito (deriva
falso), entonces tiene xito al resolverlas de una vez y para siempre.
Sin embargo, en este libro resolvemos las metas de mantenimiento de una
forma diferente, demostrando que cuando quiera quer sus condiciones son
cierto, sus conclusiones tambin son cierto. Esta forma alternativa de las
metas de mantenimiento se discute informalmente en el captulo 8 y se
formaliza en el captulo A6.
Robert A. Kowalski (IC)

Lgica Computacional 01 (57)

Traduce: Jacinto Dvila

57 / 66

La Relacin entre La Lgica Clsica, Lgica Clausal y La


Lgica Computacional
El tratamiento diferente de las metas de mantenimiento refleja el hecho de
que ni la lgica clsica, ni la lgica clausal establecen distincin
fundamental alguna entre metas y creencias. Por el contrario, nosotros
distinguimos entre metas y creencias por medio de pequeas variantes de
la forma clausal, para las metas, y la forma de programa lgico:
C1 . . . Cn D1 . . . Dm E

E C . . . Cn D1 . . . Dm
para las creencias. Como se dijo antes, las conclusiones de las metas (pero
no las de las creencias) pueden contener tanto disjunciones como variables
existencialmente cuantificadas.
Robert A. Kowalski (IC)

Lgica Computacional 01 (58)

Traduce: Jacinto Dvila

58 / 66

La Relacin entre La Lgica Clsica, Lgica Clausal y La


Lgica Computacional

Agregando confusin, cosa que suele pasar en la literatura, yo uso el


trmino clusula para referirme a las clusulas escritas como condicionales,
a las clusulas escritas como disjunciones y a clusulas para programacin
lgica. Todava peor, uso el trmino condicional tanto para las clusulas
escritas como condicionales con conclusiones disjuntivas como para las
clusulas en programacin lgica. Tambin llamo a la combinacin
resultante de las dos clases de condicionales, la forma condicional de la
lgica y la forma de la Lgica Computacional usada en este libro. Con
suerte, en la mayora de los casos el contexto har que el significado que
pretendo sea obvio.

Robert A. Kowalski (IC)

Lgica Computacional 01 (59)

Traduce: Jacinto Dvila

59 / 66

Conclusiones y otras referencias

Este recorrido a vuelo de pjaro sobre la sintaxis de la forma condicional


de la lgica y sus relaciones con las formas estndar y clausal de la lgica
clsica ha cubierto mucho terreno, pero slo ha tocado la superficie.
La forma condicional de la lgica es tan poderosa, pero ms simple, que la
oraciones sin forma definida de la lgica clsica. Las reglas de inferencia de
la forma condicional son tambin ms simples. Las reglas de inferencia de
la lgica clsica son ms complejas porque, de hecho, adems de las reglas
necesarias para razonar con condicionales, tambin incluyen reglas para
traducir oraciones de la lgica clsica en oraciones equivalentes en la forma
condicional.

Robert A. Kowalski (IC)

Lgica Computacional 01 (60)

Traduce: Jacinto Dvila

60 / 66

Conclusiones y otras referencias

Esta distincin entre las dos clases de reglas de inferencia en la lgica


clsica corresponde a la distincin entre las dos clases de razonamiento en
el lenguaje natural. Las reglas de inferencia necesarias para traducir la
lgica clsica en condicionales corresponde a el razonamiento necesario
para traducir el lenguaje natural en lenguaje del pensamiento, LOT. Y las
reglas de inferencia necesarias para razonar con condicionales corresponden
a las necesarias en el LOT.

Robert A. Kowalski (IC)

Lgica Computacional 01 (61)

Traduce: Jacinto Dvila

61 / 66

Conclusiones y otras referencias

Para defender esta perspectiva de la relacin entre la lgica clsica y la


lgica condicional y entre el lenguaje natural y el LOT, me apoyo en las
guas de buen estilo al escribir propuestas en libros como los de Williams
(1990, 1995). Esas guas, que plantean la necesidad de claridad,
simplicidad y coherencia en los escritos, pueden ser reinterpretadas como
la defensa de un estilo de escritura que minimiza la diferencia entre la
sintaxis de las comunicaciones en lenguaje natural y la representacin de
sus significados en LOT.

Robert A. Kowalski (IC)

Lgica Computacional 01 (62)

Traduce: Jacinto Dvila

62 / 66

Conclusiones y otras referencias

La forma condicional de la lgica evolucion de la forma clausal de la


lgica, y esta a su vez evolucin a partir de la lgica clsica estandar. Uno
de los primeros usos de la forma clausal se le debe a Martin Davis y Hillary
Putnam (1960) en uno de los primeros procedimientos de prueba
mecnicos para la lgica clsica. Tambin se le us con la regla de
resolucin desarrollada por Alan Robinson (1965a).

Robert A. Kowalski (IC)

Lgica Computacional 01 (63)

Traduce: Jacinto Dvila

63 / 66

Conclusiones y otras referencias

La aplicacin de la forma clausal a la representacin del conocimiento y de


la regla de resolucin a la resolucin de problemas fue propuesta
inicialmente por Cordell Green (1969). Sin embargo, los probadores de
teoremas con resolucin que estuvieron disponibles en esa poca no fueron
muy efectivos y, as, se hicieron objeto de ataques y crticas dirigidas al
propio mtodo de resolucin por los defensores de las representaciones del
conocimiento procedimentales, contrarias a las representaciones
declarativas (Hewitt, 1971; Winograd, 1971, 1972).

Robert A. Kowalski (IC)

Lgica Computacional 01 (64)

Traduce: Jacinto Dvila

64 / 66

Conclusiones y otras referencias

En defensa de la lgica clausal, Kowalski y Kuehner (1971) mostraron que


la llamada resolucion-SL, bsicamente una interpretacin por resolucin
del procedimiento de prueba del modelo de eliminacin, de Loveland
(1968), poda ser interpretado procedimentalmente en trminos de
reduccin de metas. En 1971 y 1972, tuve la oportunidad de colaborar con
Alain Colmenauer en Marseille, resultando en el desarrollo que hiciera
Colmenauer de Prolog en 1972, y en la interpretacin procedimental de
Resolucin-SLD (Kowalski, 1974), una variante de resolucin-SL aplicada a
las clusulas de Horn.

Robert A. Kowalski (IC)

Lgica Computacional 01 (65)

Traduce: Jacinto Dvila

65 / 66

Conclusiones y otras referencias

En Lgica para Resolver Problemas (Kowalski, 1974, 1979), defend con


mayor generalidad el uso de la forma clausal para representacin del
conocimiento y razonamiento. Un anlisis detallado de la relacin entre la
lgica clausal y la lgica clsica se hace en los captulos 2 y 10 de aquel
libro. La combinacin, en la Lgica Computacional, de la lgica clausal
para las metas y de los programas lgicos para la creencias proviene de la
programacin lgica abductiva (ALP) (Kakas, Kowalski y Toni, 1998). Los
detalles tcnicos de ALP se discuten en el captulo A6.

Robert A. Kowalski (IC)

Lgica Computacional 01 (66)

Traduce: Jacinto Dvila

66 / 66

You might also like