Cómo ser artificialmente Inteligente
Un libro de Agentes y Lógica Computacional
escrito por el
Profesor Emérito Robert A. Kowalski <[email protected]>
Imperial College, Reino Unido
Traducido, con permiso del Autor, por Jacinto Dávila <[email protected]>
a partir del texto original:
(How to be artificially intelligent)
http://www-lp.doc.ic.ac.uk/~rak/rak.html
(Universidad de Los Andes, Venezuela).
(version preliminar, Enero 2006)
Por favor, reportar errores y omisiones a [email protected]
--------
Contenido:
Capítulo 1. Qué hacer en caso de
emergencia
Imagine que Ud viaja en el metro de Londres (o el de cualquier ciudad) y
repentinamente siente una mano ajena en uno de sus bolsillos. Para su fortuna, ve Ud un
aviso que le dice exactamente qué debe hacer.
Emergencias
Pulse el botón de la alarma
para alertar al conductor.
El conductor se detendrá
si alguna parte del tren está dentro de una estación.
de lo contrario, el tren continuará hasta la siguiente estación,
donde será más fácil conseguir ayuda.
Se penalizará con 50 libras
el uso inapropiado.
El Aviso de Emergencia del Metro de Londres
entendido como un programa lógico
El propósito del Aviso de Emergencia es el de regular la conducta de los pasajeros en
caso de emergencias. En este sentido, funciona como un programa, no para controlar un
computador, sino para controlar a las personas.
Para cumplir con su propósito, el Aviso no debe ser ambigüo, de tal forma que no se
pueda mal-interpretar el significado establecido. Además, debe ser fácil de entender, de
manera que el lector le pueda procesar con el mínimo de esfuerzo. Al igual que un
programa para un computador, debe también ser eficiente, alcanzando su propósito
(obtener ayuda, en este caso) tan rápido como sea posible.
La naturaleza computacional del Aviso de Emergencia es más fácil de notar en a primer
oración.
Pulse el botón de la alarma
para alertar al conductor.
Esta oración tiene la forma de un procedimiento de reducción de metas:
Reduzca la meta de alertar al conductor
a la sub-meta de presionar el botón de alarma.
En general, buena parte de nuestra comunicación entre humanos puede ser entendida en
tales términos computacionales, en los que un humano intenta programar a otros, para
obtener una respuesta que desea. En este caso, la gerencia del Metro intenta programar a
los pasajeros para que se comporten con efectividad y eficiencia en caso de emergencia.
Esta interpretación de la comunicación humana puede ser indignante a primera vista,
porque parece contemplar a la gente como meras máquinas. Esa no es mi intención. Lo
que intento proponer es que el pensar en las personas como agentes computacionales
puede, algunas veces, ayudarnos a formular formas de comunicarnos con ellas en
términos más efectivos y más eficientes. Más efectivos porque nuestros "programas"
servirán mejor a nuestras intenciones. Más eficientes porque el receptor podrá procesar
y reaccionar al programa con menos esfuerzo.
La lógica de la segunda y tercer oración del Aviso de
Emergencia
La comunicación humana, sin embargo, también puede ser comprendida en términos
lógicos. Así entendida, una comunicación es una colección de oraciones con una forma
subyacente que le proporciona su significado. Para entender una oración en lenguaje
natural, el lector o quien escucha tiene que descifrar su estructura superficial para
extraer su significado. Necesita luego asimilar su significado para acomodarlo en su red
de creencias. Estas creencias incluyen tanto creencias generales fundamentales como
aquellas obtenidas de oraciones anteriores en la misma comunicación.
Luego de extraer esa colección de significados, el receptor de la comunicación puede
usarlos para resolver problemas que surjan en su ambiente y en los que esos
significados sean relevantes. En ese sentido, las oraciones del lenguaje natural son como
un programa para el computador. El proceso de extraer los significados lógicos de las
oraciones es como el compilar un programa de su forma externa a su forma interna, y el
proceso de usar esos significados para resolver problemas es como el ejecutar el
programa compilado.
En el ejemplo del Aviso de Emergencia, la relación entre la forma externa de la oración
en Español (o en Inglés) y su forma lógica interna es más evidente en los casos de la
segunda y la tercera oración del Aviso, gracias mayormente a su uso de los términos
lógicos como "si", "alguna" y "de lo contrario".
Uno puede verse tentado a afirmar que el Aviso es tan fácil de entender debido a que la
estructura superficial de su forma externa es tan cercana a la forma interna del
significado pretendido para esas oraciones.
De hecho, la segunda y la tercera oración son más ambigüas de lo que parece a primera
vista. En particular, la segunda oración no dice claramente que es lo que el conductor
dejará de hacer (se detendrá, de qué?). Es poco probable que sea, por ejemplo, que:
El conductor dejará de causar la emergencia si alguna parte del tren está dentro de una estación.
En lugar de eso, es casi seguro que signifique que:
El conductor detendrá el tren en una estación si alguna parte del tren está dentro de esa estación.
Sin embargo, incluso esta interpretación no termina de capturar el significado
pretendido para la oración. Si se le ubica en el contexto de la primer oración, la segunda
oración tiene una condición adicional implícita, es decir, que el conductor ha sido
alertado acerca de una emergencia. Por lo tanto, el significado pretendido de la segunda
oración es:
El conductor detendrá el tren en una estación si él está al tanto de una emergencia y alguna parte del tren está dentro de esa estación.
Sin la condición adicional, la oración significa literalmente que el conductor detendrá el
tren cuando quiera que el tren esté en una estación, haya o nó una emergencia. Si ese
fuese el caso, un tren nunca podría salir de la estación una vez que llegara a ella. Para
entender la oración, el lector del Aviso necesita tanto conocimiento contextual general
acerca del cómo se comportan normalmente los conductores de trenes así como
conocimiento específico del contexto de las oraciones anteriores en el Aviso.
Siguiendo con nuestra interpretación de la segunda oración, es claro ahora que el significado
pretendido para la tercera oración es:
El conductor detendrá el tren en la siguiente estación y allí se puede brindar ayuda mejor que entre las estaciones. si ha sido alertado de una emergencia y ninguna parte del tren está en una estación
En el lenguaje natural, es costumbre omitir condiciones tales como “parte del tren está
en una estación”, que se pueden obtener del contexto. En lógica formal, sin embargo, las
oraciones no pueden confiarse al contexto y deben ser planteadas con claridad.
Puesto que las oraciones en lógica formal no pueden confiarse al contexto, Ud bien
podría tomar una colección de oraciones escritas en lógica formal, arrojarlas al aire,
como con un mazo de cartas, y atraparlas en cualquier orden. La colección resultante de
oraciones tiene el mismo significado que la colección en el orden original.
Así que, en teoría, si este libro fuese escrito es forma puramente lógica, Ud podría leerlo
al revés, al derecho o en cualquier orden y, en todo caso, tendría el mismo significado.
De hecho, en buena medida, el trabajo de escribir un libro como este está en encontrar
un orden apropiado para presentar las ideas, de manera que sean tan fáciles de entender
como sea posible.
Labor
La primera oración del Aviso de Emergencia vista
como un Programa Lógico.
La primera oración del Aviso ha sido escrita en forma de un procedimiento, lo cual
oculta su forma lógica subyacente. En general, un procedimiento para reducir metas
con la forma:
Reduzca meta a sub-metas.
oculta una implicación lógica como: meta si sub-metas.
La conducta reductora de metas de ese procedimiento pueden obtenerse de esta
implicación razonando hacia atrás:
Para concluir que una meta puede ser resuelta,
muestre que las sub-metas pueden ser resueltas
De manera que la primera oración del Aviso de Emergencia tiene esta forma lógica
oculta:
Ud alerta al conductor
si pulsa el botón de la señal de alarma.
El uso del razonamiento hacia atrás para convertir implicaciones en procedimientos de
redución de metas se conoce como programación lógica. Las implicaciones así
dispuestas son llamadas programas lógicos. La programación lógica fue bastante
popular durante un tiempo en la década de los 1980 y luego cayó en desuso. Una de las
metas de este libro es mostrar que la programación lógica puede ser útil, no sólo para
hacer computación, sino también para el razonamiento humano.
El razonamiento hacia atrás contrasta con el razonamiento hacia adelante que,
probablemente, es más familiar para más personas. Dada una implicación con la forma:
si condiciones entonces conclusión.
y una colección de oraciones que puedan compararse y aparearse con las condiciones, el
razonamiento hacia adelante deriva la conclusión como una consecuencia lógica de las
condiciones.
Cuando debemos usar razonamiento hacia atrás o hacia adelante es uno de los asuntos más
importantes investigados en este libro[1].
La cuarta oración del Aviso de Emergencia como una
restricción
En los lenguajes naturales, las implicaciones frecuentemente se ocultan bajo la
superficie, bien en forma de procedimientos, bien en forma declarativa. Por ejemplo, la
última oración del Aviso es una oración declarativa con la siguiente forma lógica
subyacente:
Ud obtiene una multa de 50 libras
si pulsa el botón de alarma cuando no es apropiado.
Razonando hacia atrás, esta implicación se convierte en el procedimiento:
Para obtener una multa de 50 libras,
pulse el botón de alarma cuando no es apropiado.
Es poco probable que un pasajero quiera ganarse una multa de 50 libras y, por tanto, es
poco probable que el pasajero quiera razonar hacia atrás para reducir esa tan poco
atractiva meta a sus sub-metas.
Es más probable que el pasajero use el razonamiento hacia adelante para derivar que
usar la señal de alarma cuando no es apropiado tendrá consecuencias no deseables. Así
que oración actúa como una restricción sobre la conducta del pasajero, antes que como
un generador.
Puesto que los procedimientos de reducción de metas restringen las implicaciones al
razonamiento hacia atrás, la forma procedimental de esa oración no es la apropiada.
Esto explica porque esa oración es escrita declarativamente y no en forma de
procedimiento.
De hecho, sólo la primera oración del Aviso de Emergencia es escrita en forma
procedimental, y sólo esta oración del Aviso funciona como un programa normal, para
invocar la conducta deseada en los pasajeros del tren. La cuarta oración, por su parte,
funciona como una restricción, para evitar conductas indeseadas.
Las oraciones segunda y tercera, por otro lado, describen parte de un programa que debe
ser ejecutado por un agente diferente: el conductor del tren. Estas oraciones son escritas
declarativamente y no procedimentalmente, precísamente porque deben ser ejecutadas
por un agente diferente, no por el agente que observa la emergencia en primer lugar.
Programas con propósitos
Se sobreentiende que el propósito[2] (o meta) del Aviso es explicar a los pasajeros como pueden
obtener ayuda en una emergencia. Esta es la razón para que la tercera oración incluya la frase: donde será más fácil conseguir ayuda.
Esta frase explica el porqué el conductor no detiene el tren inmediatamente cuando no
está en una estación.
La primera oración del Aviso podría ser reescrita con tres oraciones, para hacer
explícito su propósito:
Si ocurre una emergencia, consiga ayuda.
Ud consigue ayuda si alerta al conductor.
Ud alerta al conductor si pulsa el botón de la señal de alarma.
Aquí, para variar, he escrito las oraciones segunda y tercera como programas lógicos.
Usados para razonar hacia atrás, se comportan como los procedimientos:
Para conseguir ayuda, alerte al conductor.
Para alertar al conductor, pulse el botón de la señal de alarma.
La primera oración también tiene la forma de una implicación. Pero su conclusión es
imperativa (consiga ayuda) antes que declarativa (Ud conseguirá ayuda). Es como una
regla de condición-acción, pero más general, puesto que su conclusión es una meta, en
lugar de ser sólo una acción.
Las implicaciones con conclusiones imperativas (incluyendo reglas de condición-
acción) pueden ser usadas para “razonar hacia adelante”, como las implicaciones
lógicas. Sin embargo, aquellas no tienen todas las propiedades de las implicaciones
lógicas con conclusiones declarativas. Las implicaciones lógicas pueden ser usadas para
razonar hacia adelante y hacia atrás, pero las implicaciones con conclusiones
imperativas sólo pueden ser usadas para razonar hacia adelante. Las oraciones
declarativas pueden ser ciertas o falsas. Las oraciones imperativas sólo pueden ser
obedecidas o des-obedecidas. Veremos en capítulos posteriores como las oraciones
imperativas pueden ser transformadas a formas declarativas asignándoles el estatus de
metas y distinguiendolas de las creencias.
¿Hacia donde vamos?
Este capítulo pretende dar una impresión general del resto del libro. Muestra, con un
ejemplo, como las oraciones en Español (y también en el original en Inglés) pueden ser
vistas tanto en términos lógicos como en términos computacionales. También muestra
como estas dos visiones se integran en la programación lógica, un caso particular de la
lógica computacional, tópico de este libro.
La lógica computacional ha sido usada para desarrollar aplicaciones para computadores,
especialmente en la Inteligencia Artificial. Sin embargo, en este libro me concentro en
las potencialidades de su uso para que las personas mejoren su propias habilidades de
razonamiento y comunicación.
La lógica tradicional fue, originalmente, un modelo del razonamiento humano, que ha
caído en descrédito en los últimos años. Otros modelos tales como las reglas de
condición-acción han tomado buena parte de su espacio. Uno de los propósitos
principales de este libro es mostrar como las reglas de condición-acción y la lógica
pueden ser reconciliadas y combinadas.
Una buena parte del problema con la lógica tradicional es su falta de consideración para
con una cantidad de asuntos muy importantes para el razonamiento de lo humanos.
Entre tales cosas, la necesidad de:
distinguir entre metas y
creencias. estar abierta a cambios en el mundo. vincular el pensar acerca de las acciones con el hecho de realizarlas vincular el uso de la lógica para pensar con el uso de la probabilidad y de la utilidad
para decidir cuál acción realiza. razonar por omisión y con reglas con excepciones. combinar argumentos tanto a favor como en contra de una conclusión.
Veremos cómo la lógica computacional contempla estos problemas en los siguientes capítulos. Además, compararemos y trataremos de reconciliar la lógica computacional con puntos de vista
rivales acerca del razonamiento humano, tales como: Reglas de condición-acción.
Búsqueda. Modelos mentales. Orientación a objetos. Esquemas y estereotipos. Redes neuronales. .
Finalmente, investigaremos la aplicación de la lógica computacional a dos áreas mayores:
Razonamiento legal. Comunicación humana.
El problema que este libro contempla puede ser ilustrado de esta manera:
[1] Es normal en la lógica formal el escribir implicaciones en dirección hacia adelante,
así: si condiciones entonces conclusiones. Esta es la razón por la que el razonamiento
desde las condiciones y hacia las conclusiones es llamado razonamiento hacia adelante.
Lo cierto es que las implicaciones lógicas se pueden usar para razonar tanto hacia
adelante como hacia atrás, no importa cómo estén escritas. Sin embargo, solemos
escribirlas de una manera en lugar de la otra cuando tenemos una dirección preferida en
mente.
[2] Los términos “meta” y “propósito” son intercambiables. Otros términos que algunas
veces tienen el mismo significado son “motivación”, “razón”, “interes”, “deseo”,
“objetivo”, “misión”, “objeto”, “blanco”, etc (N.T. Hemos agregado algunos términos
en la lista, respecto al original en inglés, i.e. “blanco” en el sentido de “tiro al blanco”
que se aborda con la palabra inglesa “target”. Es notable que meta y propósito son
también intercambiables en Español, aunque en el uso cotidiano “propósito” es más
trascendente. Otro término que se confunde o intercambia con “meta” y “propósito”,
especialmente con este último, es “intención”).
Capítulo 2 La Zorra y el Cuervo
Algunas personas son proactivas. Les gusta planificar por adelantado, prever obstáculos
y llevar una vida ordenada. Otra gente es reactiva. Les gusta permanecer abiertos a lo
que ocurre alrededor, aprovechar nuevas oportunidades y ser espontáneos. La mayoría
de las personas son tanto proactivos como reactivos, en momentos diferentes y en varios
niveles.
En este capítulo, veremos cómo el pensamiento proactivo puede ser modelado usando la
lógica para razonar acerca del mundo y para reducir metas a sub-metas. En el siguiente
capítulo, veremos cómo el pensamiento reactivo puede ser modelado con reglas de
condición-acción. Y, en el capítulo subsiguiente, cómo los dos tipos de pensamiento se
pueden combinar reformulando las reglas de condición-acción en forma lógica.
La Zorra y el Cuervo
Es muy probable que el lector conozca la antigua fábula Griega, atribuida a Esopo,
según la cúal una zorra proactiva engaña a un cuervo reactivo. El cuento comienza,
inocentemente, con un cuervo descansando en la rama de un árbol y sosteniendo un
queso en su boca. Aparece entonces la zorra, que quiere comerse el queso.
En esta versión de la historia, veremos el cuento desde el punto de vista de la zorra. Para
modelar su forma proactiva de pensar, representaremos sus creencias y sus metas en
forma lógica.
Meta Yo tengo el queso.
Creencias El cuervo tiene el queso.
Un animal tiene un objeto
si el animal está cerca del objeto
y el animal toma el objeto.
Yo estoy cerca del queso
si el cuervo tiene el queso
y el cuervo canta.
El cuervo canta si Yo alabo al cuervo.
Como pueden ver, la zorra no sólo es una lógica, sino también una física. En particular,
la creencia acerca de su proximidad al queso cuandoquiera que el cuervo cante combina
una declaración simple sobre su ubicación con el conocimiento de las leyes de la
gravedad.
Razonando informalmente:
La zorra sabe que si el cuervo canta, tendrá que abrir su pico y entonces el queso caerá a
tierra junto al árbol. La zorra también sabe que, puesto que ella está junto al árbol,
estará entonces cerca del queso. De esta forma, la zorra sabe que estará cerca del queso
si el cuervo canta.
La zorra también es una psicóloga conductista. Como conductista, está únicamente
interesada en la conducta externa, de entrada-salida, del cuervo y no en los mecanismos
internos al cuervo que podrían estar causando su conducta. De hecho, aunque ella
representa sus propias creencias acerca del cuervo en términos lógicos, no asume que el
cuervo usa lógica para representar sus creencias acerca del mundo. Por lo que concierne
a la zorra, la conducta del cuervo bien podría ser generada por medio de reglas de
condición-acción sin forma lógica. O, quizás, podrían estar “cableadas” directamente en
su cuerpo, sin ni siquiera pasar por su cerebro.
Justo como vimos con las creencias de la zorra acerca de su proximidad al queso si el
cuervo cantaba, las creencias de la zorra acerca de la conducta del cuervo bien podrían
derivarse de otras creencias suyas – Quizás a partir de unas creencias más generales
acerca del cómo un agente reactivo e ingenuo responde a las alabanzas, sin pensar en las
posibles consecuencias de sus acciones.
La zorra, además, está dotada con el ordinario sentido común. Sabe que un animal
tendrá un objeto si está cerca del objeto y lo recoge (lo toma). Sabe la zorra que esta es
una ley general, que se aplica universalmente a cualquier animal y a cualquier objeto
(aunque pareciera no entender que la ley también se aplica a los robots, a menos que
crea que los robots son una especie de animal). Sabe también, la zorra, suficiente lógica
como para instanciar la ley general y aplicarla al caso particular en el que la zorra es el
animal y el queso el objeto.
Las creencias de la zorra como un Programa Lógico
Las creencias de la zorra, no sólo tienen forma lógica, sino que también tienen la forma
de un programa lógico. Como vimos antes, un programa lógico es una colección de
implicaciones con la forma:
Conclusión si Condiciones.
Tanto la conclusión como las condiciones se escriben en forma declarativa.
Las implicaciones se escriben hacia atrás, la conclusión primero, para indicar se pueden
usar para razonar hacia atrás, de las conclusiones a las condiciones. Como consecuencia
de razonar hacia atrás, cada implicación se comporta como un procedimiento reductor
de metas[1]:
Para derivar la Conclusión, derive las Condiciones.
Aún los “hechos”, que registran observaciones, tales como la creencia de que el cuervo
tiene el queso, pueden ser considerados como implaciones que tienen una conclusión,
pero no tienen condiciones:
Conclusión si nada.
Estos hechos también se comportan como procedimientos:
Para derivar la Conclusión, [no] haga nada.
(N.T. El [no] lo usamos para acomodar la oración al Español, en el que usamos la doble
negación en forma opuesta al sentido formal en Lógica).
Por lo tanto, las creencias de la zorra pueden ser usadas como una colección de
procedimientos:
Para [ob]tener un objeto,
esté (ubíquese) cerca del
objeto
y tome el objeto.
Para [ob]tener el queso,
verifique que el cuervo tiene el queso
y haga que el cuervo cante.
Para hacer que el cuervo cante,
alabe al cuervo.
Para verificar que el cuervo tiene el queso, [no] haga nada.
Estos procedimientos pueden ser aplicados, uno después del otro, para reducir la meta
superior:
Yo tengo el queso.
a las sub-metas con las dos acciones:
Yo alabo al cuervo y Yo tomo el queso.
Juntas, estas dos acciones constituyen un plan para alcanzar la meta original.
Grafos de reducción de metas
La reducción que hace la zorra trocando su meta original en las dos acciones sub-metas,
puede ser representada con la ayuda de un grafo en el cual las implicaciones con la
forma:
Conclusión if Condición1 and Condición2; son representadas por sub-grafos con la forma
siguiente:
El grafo tiene la forma de un árbol al revés, con la meta superior en la llamada raíz del
árbol (que está al tope de la figura):
Para que la zorra pueda resolver la meta superior es suficiente si “crece” el árbol,
comenzando desde la raíz, reduciendo metas a sub-metas hasta que no es posible reducir
más. Si todas las metas en las “hojas” del árbol son acciones irreductibles, entonces
estas acciones constituyen un plan para resolver la meta superior.
Razonamiento hacia atrás
La operación de resolver una meta a una sub-meta pueder también ser vista, en términos
lógicos, como razonamiento hacia atrás con una implicación, apareando la meta con la
conclusión de la implicación y derivando las condiciones de la implicación como sub-
metas.
Por ejemplo, la meta superior:
Yo tengo el queso.
se aparea con la conclusión de la implicación general:
Un animal tiene un objeto
si el animal está cerca del objeto
y el animal toma el objeto.
Razonando hacia atrás podemos obtener las dos sub-metas:
Yo estoy cerca del queso y Yo tomo el queso.
Reemplazando por los términos específicos “Yo” y “el queso”, los más generales “el
animal” y “el objeto” respectivamente (N.T. Noten que en Español tenemos que lidiar
con algunos otros ajustes morfológicos, como la conjugación verbal. Así, en el apareo
anterior, el “toma” se convierte en “tomo” y el “está” en “estoy”). .
La segunda de estas dos sub-metas es una acción que no corresponde con la conclusión
de ninguna implicación. Sólo puede ser resuelta si se le ejecuta exitosamente. La
primera sub-meta, por su parte, puede ser reducida a otras sub-metas con tres pasos más
de razonamiento hacia atrás.
El resultado final de esta cadena de razonamiento hacia atrás es una prueba lógica de
que la zorra tiene el queso si alaba al cuervo y toma el queso. La prueba tiene la misma
estructura de árbol que el grafo de reducción de metas que vimos antes.
En lógica tradicional, es más común mostrar las pruebas en la dirección hacia adelante.
En este caso, la prueba tradicional sería algo como esto:
Yo alabo el cuervo.
Por lo tanto El cuervo canta. El cuervo tiene el queso.
Por lo tanto Yo estoy cerca del queso.
Yo tomo el queso.
Por lo tanto Yo tengo el queso.
¿Fin de la historia?
Para un fundamentalista de la lógica, este sería el fin del cuento. No hay diferencia entre
el mundo de la zorra y sus creencias sobre ese mundo, y no hay diferencia entre el plan
de la zorra para obtener el queso y el que ya lo tenga.
Sin embargo, el sentido común nos dice que hay más en la vida que el sólo pensar – y,
quizás, más en el pensar que la mera lógica. Además de pensar, un agente inteligente
necesita observar los cambios en el mundo y, quizás como respuesta, actuar para
cambiarlo. Y podría haber otras maneras de pensar – maneras que no usen la lógica e
incluso quizás maneras que no usan ninguna representación mental del mundo.
Regresaremos a esta historia y a la discusión de estos temas en los siguientes capítulos.
Pero antes:
¿Cuál es la moraleja del cuento?
Se supone que la fábula de Esopo tiene un propósito – Una lección que nos dice que no
es bueno confiar en las palabras y en las acciones de otro agente, sin antes tratar de
entender sus metas e intenciones. O, puesto aún más simple, que antes de hacer algo,
debes pensar acerca de sus posibles consecuencias.
El cuervo en el cuento responde a las alabanzas de la zorra espontáneamente – sin
pensar, se podría decir. Un cuervo más inteligente reflexionaría sobre las acciones que
pretende, antes de realizarlas, para establecer si acaso pudieran tener consecuencias no
previstas o no deseables.
Si tan sólo el cuervo supiera lo que sabe la zorra, podría razonar como sigue:
Yo quiero cantar.
Pero si canto, la zorra se acercará (estará cerca) del queso.
Si la zorra está cerca del queso y lo toma (al queso),
entonces la zorra tendrá el queso.
Quizás la zorra quiere el queso y, entonces, lo tomaría.
Pero si la zorra toma el queso, yo no tendré (más) el queso.
Así que, puesto que Yo quiero el queso, Yo no canto.
(N.T. En Español, la variedad de los tiempos y conjugaciones verbales es mayor y
perturba el aparear de los términos y de los verbos al razonar).
Note que esta línea de razonamiento que traza el cuervo usa varias creencias que tiene
también la zorra, pero los usa hacia adelante, no hacia atrás como en aquel caso.
Investigaremos este uso dual de las creencias para razonar hacia adelante o hacia atrás,
dentro de dos capítulos.
Entretanto, note que, aunque el usar la lógica podría no ser siempre la forma más natural
de pensar, podría ayudarnos (y también al cuervo) algunas veces a pensar y
comportarnos con más efectividad.
Resumen
La visión de la lógica en la mente de un agente inteligente, como hemos visto en este
capítulo, es algo así:
Esa visión será enriquecida mucho más en los siguiente capítulos.
[1] En Español, hay una transformación morfológica considerable al pasar del
procedimiento a la forma declarativa. Los procedimientos, por ejemplo, se suelen
plantear con el verbo en infinitivo. En la forma declarativa este se usa muy poco.
Capítulo 3. El Piojo y el explorador de
Marte
El Fundamentalismo Lógico, que concibe la vida como puro pensamiento sin acción, le
ha dado a la lógica una mala reputación. Además, ha ocultado a su cercano familiar, la
Lógica Tolerante, que reconoce que la lógica es sólo una forma de pensar y que el
pensar no lo es todo.
La anti-tesis del Fundamentalismo Lógico es el Conductismo Extremo, el cual niega
cualquier forma de Vida Mental y que, por el contrario, ve la vida completamente en
términos de conducta. El Conductismo Extremo, a su vez, puede ser fácilmente
confundido con el modelo del pensar que constituyen las reglas de condición-acción.
Conductismo
Imagine que Ud está analizando la conducta del termostato, que regula la temperatura
de un cuarto calentándolo cuando está muy frio y enfriándolo cuando está muy caliente.
Ud bien podría describir la conducta de entrada-salida del termostato en forma de
condiciones-acciones:
Si la temperatura actual es T grados y la temperatura deseada es T’ y T < T’ - 2°
entonces el termostato aumenta la temperatura.
Si la temperatura actual es T grados y la temperatura deseada es T’ y T > T’ + 2°
entonces el termostato reduce la temperatura.
Pero seguramente Ud no le atribuiría al termostato una mente que manipula tales
descripciones para generar su conducta.
Tal como Ud ve el termostato en este ejemplo, el conductista ve a los agentes en
general.
Por tanto, en el cuento de la zorra y el cuervo, un conductista, incapaz por principios de
considerar el estado mental, interno de la zorra, explicaría su conducta de la misma
forma en que la zorra explica la conducta del cuervo:
Si la zorra ve que el cuervo tiene un queso entonces la zorra alaba al cuervo. Si la zorra está cerca del queso entonces la zorra toma el queso.
La descripción conductista de la zorra comienza y termina la conducta de la zorra
observable “desde afuera”. El conductista justifica su rechazo a la atribución de
cualquier actividad mental interna a la zorra, en el hecho de que es imposible verificar
tales atribuciones por el supuesto método científico de la observación y la
experimentación.
De acuerdo con el conductista, la zorra es un agente puramente reactivo, que
simplemente responde a los cambios en el mundo a su alrededor. Si, durante el proceso
de reaccionar a esos cambios, la zorra obtiene el queso, entonces este resultado es
meramente un efecto indirecto “emergente”, nunca uno causado deliberadamente por la
zorra gracias a su razonar proactivo y orientado a una meta.
El conductista tampoco ve ninguna razón para distinguir entre la conducta del
termostato y la de un humano. El conductista podría usar una implicación
Si un pasajero observa una emergencia en el metro,
entonces el pasajero pulsa el botón de la señal de alarma.
Para describir la conducta de un pasajero del metro. Pero el uso de esta implicación no dice
nada acerca de cómo genera el pasajero esa conducta. Por lo que concierne al conductista,
pulsar el botón de la señal de alarma cuando hay una emergencia podría ser simplemente un
instinto, cuyo propósito el pasajero ignora completamente.
El conductismo es apoyado circunstancialmente por el Darwinismo, puesto que este
sostiene que los organismos evolucionaron a través de adaptaciones frente al ambiente,
en lugar de por un proceso de auto-mejora dirigido a metas.
El conductismo también comparte con las reglas de condición-acción esa orientación a
modelar la conducta como reacciones a cambios en el ambiente. Sin embargo, mientras
el conductismo restringe su atención a las descripciones de la conducta, las reglas de
condición-acción son usadas en los llamados sistemas de producción para generar
conductas.
Sistemas de Producción
Son pocos los psicólogos que, hoy en día, suscriben incluso las versiones moderadas del
conductismo. Por el contrario, la mayoría se adhiere al punto de vista de las ciencias
cognitivas, según el cual, los agentes inteligentes realizan cierta forma de pensar que
bien puede ser entendida como la aplicación de procedimientos computacionales a
representaciones mentales del mundo.
Paul Thagard declara en su libro La Mente: una introducción a la Ciencia Cognitiva
(Mind: Introduction to Cognitive Science) que, entre los varios modelos del pensar
investigados en las ciencias cognitivas, los sistemas de producción son “los que tienen
más aplicaciones en psicología” (página 51). Steven Pinker en Cómo trabaja la mente
(How the Mind Works) también utiliza sistemas de producción como su principal
ejemplo de un modelo computacional de la mente (página 69).
Un sistema de producción es una colección de reglas de condición-acción imbuídas en
el componente pensante del ciclo observación-pensamiento-decisión-acción de un
agente.
Las reglas de condición-acción (también llamadas reglas de producción) son muy
parecidas a las descripciones de conducta de los conductistas. Sin embargo, puesto que
son usadas por cada agente internamente para generar su conducta, sus conclusiones
pueden ser expresadas en modo imperativo en lugar del declarativo.
Si (estas) condiciones (se cumplen) entonces haga (estas) acciones.
Los sistemas de producción fueron inventados en la década de 1930 por el lógico Emil
Post, pero fueron propuestos como un modelo computacional de la inteligencia humana
por Alan Newell.
El ciclo del Sistema de Producción
Los sistemas de producción incorporan las reglas de condición-acción en ciclo de
observación-pensamiento-decisión-acción del agente:
Para “ciclar” o para que cicle, observe el mundo, piense, decida cuáles acciones realizar, actúe, cicle de nuevo.
El pensar es, así, una forma de razonamiento hacia adelante, que comienza con una
observación que se aparea con una de las condiciones de una regla de condición-acción.
En tales casos, se dice que la observación dispara la regla de condición-acción. Tal
como en lógica, si las restantes condicciones también se verifican, se deriva la
conclusión.
En lógica, la conclusión es una consecuencia inescapable de las condiciones. Sin
embargo, en los sistemas de producción, se trata solamente de una recomendación de
realizar las acciones que están en la conclusión. Si sólo una de las reglas es disparada
por las observaciones, entonces las recomendación es, de hecho, una orden inequívoca.
Pero, si más de una regla es disparada, el agente debe escoger entre las varias
recomendaciones, para decidir cuál acción realizar. Está decisión es normalmente
etiquetada como resolución de conflicto, puesto que las recomendaciones pueden
contradecirse unas a otras.
Por ejemplo:
Si alguien me ataca, responde igual.
Si alguien me ataca, consigue ayuda.
Si alguien me ataca, trata de escapar.
Decidir que hacer, cuando hay conflicto entre las recomendaciones, puede ser más
difícil que generar las recomendaciones. Volveremos al problema de decisión más
adelante.
Sistemas de Producción sin ninguna representación del
mundo
En el caso más simple, el estado mental del agente podría consistir únicamente de reglas
de producción, sin ninguna representación mental del mundo. En tal caso, las
condiciones de una regla se verifican por apareo directo con las observaciones actuales
del agente. En este caso, se puede decir (y se ha dicho) que el mundo sirve como su
propia representación: Si quieres averiguar acerca del mundo, no pienses al respecto,
sólo observa!.
Observar el estado actual del mundo es mucho más fácil que tratar de predecirlo a partir
de las observaciones pasadas y suposiciones acerca de la persistencia de los estados
pasados. Y es mucho más confiable, porque las suposiciones de persistencia fácilmente
pueden ser erróneas, especialmente cuando hay otros agentes alrededor, cambiando el
mundo a placer. Es muy pronto aún, para discutir este tema en este capítulo, pero
volveremos a él más tarde, cuando revisemos en detalle que implica el razonar acerca de
la persistencia de estados en el tiempo.
Qué se siente ser un Piojo
Para entender en qué consiste ser un sistema de producción sin ninguna representación
del mundo, imagine que Ud es un piojo de la madera y que toda su conducta de vida se
puede resumir en las siguiente tres reglas:
Si al frente está libre entonces me muevo adelante.
Si hay un obstáculo al frente entonces volteo a la derecha.
Si estoy cansando, entonces me detengo.
Puesto que es Ud tan elemental forma de vida, su visión se limita a la porción del
mundo que está directamente en frente suyo. Además, puede Ud sentir cuando está
cansado. Es decir, su cuerpo es parte del mundo, externo a su mente. Tal como ocurre
con otros objetos externos, su cuerpo genera observaciones como estar cansado o estar
hambriento, que deben ser atendidas por su mente.
No importa de donde provienen las reglas. Si son un producto del proceso evolutivo o si
le fueron otorgadas por un Gran Diseñador. Lo importante es que, ahora que las tiene,
ellas gobiernan y regulan su vida.
Suponga, para propósitos ilustrativos, que Ud percibe la siguiente secuencia de
observaciones:
Al frente está libre.
Al frente está libre.
Hay un obstáculo al frente.
Al frente está libre y estoy cansado.
Apareando las observaciones, en ese mismo orden, con las condiciones de sus reglas, se
obtiene la siguiente secuencia combinada de observaciones y acciones:
Observe: Al frente está libre.
Haga: Me muevo adelante.
Observe: Al frente está libre.
Haga: Me muevo adelante.
Observe: Hay un obstáculo al frente.
Haga: Volteo a a derecha.
Observe: Al frente está libre y estoy cansando.
En este punto, las observaciones actuales disparan dos reglas diferentes y las acciones
correspondientes que ellas recomiendan están en conflicto. Ud no puede moverse
adelante y detenerse al mismo tiempo. Necesita un método para resolver el conflicto,
para decidir que hará.
Existen muchas estrategias para resolver conflictos. Pero, en este, como en muchos otros casos,
el conflicto puede resolverse simplemente[1] asignando prioridades distintas a las reglas y
seleccionando la acción generada por la regla con la mayor prioridad. En nuestro caso, es obvio
que la tercer regla debe tener mayor prioridad que la segunda (NT: lo es?. Suponemos que el
cansancio impide el movimiento). Así que la acción apropiada es:
Haga: Me detengo.
Una vez que un piojo ha aprendido sus reglas, su estado interno permanece fijo. Las
observaciones vienen y van y las acciones asociadas se realizan sin que se les registre o
recuerde. El precio a pagar por esta simplicidad es que el piojo vive en el aquí y ahora
solamente y no tiene idea de grandioso mundo que le rodea. Pero, para un piojo, ese es,
probablemente, un pequeño precio a pagar por el disfrute de una vida simple.
Sistemas de Producción con Memoria
Aunque la vida simple pueda parecer atractiva, la mayoría de las personas
probablemente preferiría algo más excitante. Para tenerlo, Ud necesita, por lo menos, un
sistema de producción con una memoria interna. La memoria puede ser usada, no sólo
para registrar las observaciones del estado actual del mundo, sino también para
almacenar los registros históricos de las observaciones pasadas.
Normalmente, una observación individual tiene la forma de una oración atómica [2], llamada
así porque no se puede subdividir en subpartes que sean también oraciones. Esto
implica que la forma lógica de una observación no contiene a ninguna de las conectivas
lógicas “y”, “o”, “si” y “no”, que transforman oraciones simples en otras más
complejas. Cada oración atómica es también llamada átomo.
En un sistema de producción con memoria, una regla se dispara con una observación
que se aparee con una de las condiciones de la esa regla. Todas las otras condiciones
son también verificadas evaluándo si corresponden a los registros de observaciones
pasadas, futuras y las del momento. Si todas las condiciones concuerdan con
observaciones, las acciones de la regla se separan como candidatas para ejecución.
Qué se siente se un Explorador de Marte
Para imaginar cómo es ser un sistema de producción con memoria, imagine que Ud ha
superado su vida como piojo y ha reencarnado como un robot que fue enviado a Marte
en busca de rastros de vida marciana.
Por fortuna, su vida anterior como piojo le da a Ud una buena idea de como comenzar
esta nueva reencarnación. Más aún, siendo un robot, Ud nunca se cansa y nunca tiene
que descansar. No obstante, todavía hay 2 problemas que debe resolver: cómo reconocer
la vida cuando la vea y cómo evitar caminar en círculos.
Para el primer problema, sus diseñadores lo han equipado a Ud con un módulo de
reconocimiento de vida, que le permite identificar signos de vida, y también con un
transmisor para informar al centro de control de sus descubrimientos. Para el segundo
problema, necesita Ud una memoria que le permita reconocer cuando ya ha estado en un
lugar antes, de manera que evite visitarlo de nuevo.
Un sistema de producción con memoria, que es una versión mejorada del sistema de
producción de un piojo, podría verse así:
Si el espacio adelante está libre
y yo no he estado en ese espacio antes,
entonces vaya a ese espacio.
Si el espacio adelante está libre
y he estado en ese espacio antes,
entonces volteo a la derecha.
Si hay un obstáculo adelante
y no muestra signos de vida,
entonces volteo a la derecha.
Si hay un obstáculo adelante
y muestra signos de vida,
entonces lo reporto al centro de control
y volteo a la derecha.
Para saber si Ud ha estado en un lugar antes, necesita Ud un mapa del terreno. Puede
hacerlo, por ejemplo, dividiendo el terreno en espacios cuadrados e identificando cada
espacio con unas coordenadas, (E, N), donde E es la distancia hacia el Este desde el
centro del cuadrado y hasta un punto de origen o referencia, mientras que N es la
distancia al Norte desde ese origen. Ud comienza en el cuadrado (0,0).
Para que esto funcione, cada cuadrado tiene que tener el mismo tamaño que el paso que
Ud da al moverse adelante. Suponiendo que Ud conoce las coordenadas de su posición
actual, Ud puede usar aritmética simple para calcular las coordenadas tanto del
cuadrado adelante, como del cuadrado a la derecha, con lo que estaría obteniendo las
coordenadas de su siguiente posición.
Cada vez que Ud pasa a un nuevo cuadrado, registra su observación del cuadrado con
sus coordenadas. Así, para establecer si ha estado ya en ese lugar antes, sólo tiene que
consultar su memoria de observaciones pasadas.
Suponga que, por ejemplo, Ud está en el origen, mirando al Este. Suponga, también,
que las siguientes oraciones atómicas describen el mundo a su alrededor:
Vida en (2,1)
Libre el (1, 0)
Libre el (2, 0)
Obstáculo en (3, 0)
Obstáculo en (2, -1)
Obstáculo en (2, 1).
Aunque hay vida en su vecindario, Ud no puede verla. Al arrancar, lo único que Ud
sabe del mundo es que está libre en (1,0).
Suponga también que, aún cuando su misión es buscar vida, Ud es la única cosa que se
mueve. Esta descripción del mundo se cumple en todos los estados del mundo que
encontrará (suponiendo que, cuando Ud ocupe un lugar, este se considerará libre).
Dadas esas suposiciones, Ud no tiene elección. Su conducta está completamente
predeterminada:
Observe: Libre el (1, 0)
Haga: Vaya a (1, 0)
Observe: Libre el (2, 0)
Haga: Vaya a (2, 0)
Observe: Obstáculo en (3, 0)
Haga: Volteo a la derecha
Observe: Obstáculo en (2, -1)
Haga: Volteo a la derecha
Observe: Libre el (1, 0)
Recuerde: Visité (1, 0)
Haga: Volteo a la derecha
Observe: Obstáculo en (2, 1) y Vida en (2, 1)
Haga: Reporte vida en (2, 1) al centro de control.
Haga: Volteo a la derecha.[3]
Observe que el reportar su descubrimiento de vida al centro de control es simplemente
otra acción más, como moverse adelante o voltear a la derecha. Ud no tiene idea de que,
para sus creadores, esta es su misión fundamental.
Sus diseñadores lo han dotado con un sistema de producción que logra la meta de
descubrir vida como una propiedad emergente. Quizás, incluso para ellos, esta meta es
una sub-meta de otra de nivel todavía superior, tal como satisfacer su propia curiosidad
científica. Pero ninguna de esas metas o sub-metas es evidente para Ud.
El uso de los sistemas de producción para simular la
reducción de metas
Los sistemas de producción han sido usados, no sólo para construir modelos
computacionales de agentes inteligentes, sino también para construir aplicaciones, con
frecuencia con la forma de sistemas expertos. En muchas de esas aplicaciones, se usan
reglas de condición-acción para simular explícitamente la reducción de metas, en lugar
de confiar en las propiedades emergentes para procurar metas de nivel superior
implícitamente.
Por ejemplo, la reducción de la Zorra que obtiene de la meta de tener el queso, la de estar cerca
del queso y tomarlo, puede ser simulada con la siguiente regla de condición-acción[4]:
Si yo quiero tener un objeto
entonces paso a creer que yo quiero estar cerca de ese objeto
y tomo el objeto.
Aquí la Meta se representa anotando en la memoria del sistema una pseudo-creencia
con la siguiente forma:
Yo quiero Meta.
La reducción de Meta a Sub-metas se simula con una regla de condición-acción que
tiene por condición a Meta y cuyas acciones bien pueden tener la forma:
Agrega a mis creencias que yo quiero Sub-metas
que se convierte luego en una actualización interna de la memoria de sistema , o bien
pueden ser acciones genuinas realizadas externamente.
El problema principal con este método simulado es que pierde la conexión entre la
reducción de la meta y la creencia que la justifica, en este caso, con la creencia:
Un animal tiene un objeto
si el animal está cerca del objeto y el animal toma el objeto.
Como hemos visto, la conexión a la que nos referimos es que la reducción de la meta es lo
mismo que razonar hacia atrás con la creencia, tal como se postula en la idea principal de la
programación lógica.
Thagard (página 45) da un ejemplo similar con una regla de condición-acción, pero la usa para
ilustrar su afirmación de que “a diferencia de la lógica, los sistemas basados en reglas pueden
también representar fácilmente información estratégica acerca de lo que hay que hacer”:
si Ud quiere ir a casa y tiene Ud el dinero del pasaje del bus entonces Ud puede tomar el bus.
Razonando hacia adelante con la regla se puede reducir la meta (ir a casa) a la sub-meta
(tomar el bus), lo cual simula el razonamiento hacia atrás con la creencia[5]:
Vas a casa si tienes el pasaje del bus y tomas un bus.
Así pues, el argumento de Thagard en contra de la Lógica puede, por el contrario, ser
visto como un argumento en favor de la programación lógica porque esta puede
“representar fácilmente información estratégica acerca de lo que hay que hacer” (lo que un
Agente debe hacer).
De hecho, tal parece que todos los argumentos de Thagard en favor de la reglas de
producción pueden ser entendidos como argumentos en favor de la lógica
computacional. Esto se debe a que él confunde reglas de producción:
Si condiciones entonces haga acciones.
con implicaciones lógicas:
Si condiciones entonces conclusiones.
Una lamentable confusión
La confusión de Thagard es quizás más evidente cuando escribe (en página 47) que “las
reglas se pueden usar para razonar bien hacia adelante o bien hacia atrás”. Esto, sin
embargo, no es cierto de las reglas de producción sino más bien es una característica de
las implicaciones lógicas.
Puesto que las condiciones en las reglas de producción aparecen primero y las acciones
ocurren después, las verdaderas reglas de producción sólo pueden ser usadas hacia
adelante, cuando se cumplen las condiciones para derivar acciones sugeridas. Mientras
que debido a que, en lógica, las conclusiones siempre se expresan en modo declarativo,
las implicaciones lógicas se pueden usar para razonar bien hacia adelante o hacia atrás.
Thagard, entonces, erróneamente le atribuye a las reglas de producción una propiedad
que no tienen, pero que sí tienen las implicaciones lógicas, para luego usar esa
atribución para argumentar que “las reglas” son mejores que la lógica.
Siendo justos, debemos reconocer que Thagard sólo está exhibiendo una confusión muy
generalizada. En este caso, la regla que él usa como ejemplo simula reducción de
metas, que es un caso especial de razonamiento hacia atrás con una creencia
expresada en forma lógica. Veremos también, como la reducción de metas y las reglas
de producción se pueden combinar en un contexto más general que usa lógica tanto para
creencia como para metas.
Resumen
El uso de los sistemas de producción para generar la conducta de un agente inteligente,
como hemos visto en este capítulo, se puede perfilar así:
[1] Un método todavía más simple es evitar tener que resolver los conflictos, cambiando
las reglas con una condición extra “y Ud no está cansado” en las primera y segunda
regla. Un método más complicado es a través de la llamada Teoría de Decisiones, que
compararía las diferentes alternativas y seleccionaría la alternativa con el máximo
beneficio esperado. Sin importar como se haga, sin embargo, en este caso el resultado
seguramente será el mismo: mejor descansar cuando Ud está cansado que forzarse y
seguir en contra de todo.
[2] Aquí se asume que la experiencia de un agente en el mundo se puede expresar en
términos lingüisticos. Esto, ciertamente, no es cierto del lenguaje natural ordinario, pero
podría, con un esfuerzo de la imaginación, servir para el “Lenguaje del Pensamiento”.
Más de esto más adelante.
[3] Le dejo al lector el derivar que pasa después, y me disculpo por adelantado.
[4] La regla puede ser parafraseada en Español con mayor naturalidad, aunque quizás
menos precisa, así: Si quiero tener un objeto, entonces debo estar cerca del objeto y
tomar el objeto.
[5] En esta forma es, quizás, menos obvio que el procedimiento servirá sólo si el bus que
Ud toma pasa por su casa.
Capítulo 4 Un Sistema Lógico que combina reducción de metas,
reglas de condición-acción y otros recursos lógicos
¿Qué tienen en común el pasajero del metro, la zorra, el piojo, el explorador marciano e,
incluso, el termostato?. Seguramente no se trata de su manera de vestir, sus compañías o
sus modales. Se trata de que todos ellos están constantemente ocupados en lidiar con el
cambiante mundo – Una lidia que algunas veces amenaza su existencia y otras veces les
provee con oportunidades para sobreponerse y prosperar.
Para que la lógica sea relevante en tal contexto, tiene que resolver primero un gran
problema: la lógica tradicional, tal como se le entiende normalmente, está cerrada ante
los cambios en el mundo. Para recuperar su relevancia, la lógica debe ser puesta primero
en el lugar adecuado: en el componente pensante de ciclo del agente:
Para ciclar, observa el mundo,
piensa,
decide cuáles acciones realizar,
actúa, cicla de nuevo.
A este nivel, el más alto, el ciclo del agente es igual que el ciclo de los sistemas de
producción, pero no pierde generalidad y así, puede acomodar otros tipos de
pensamiento, incluyendo el razonamiento lógico. Imbuída como el componente
pensante del ciclo del agente, la lógica queda tanto para asimilar las entradas que el
agente recibe de su mundo, como para producir las salidas que el agente usa para
cambiar ese mundo.
La lógica de las metas y creencias
Otra limitación importante en la lógica tradicional es que no le presta atención a la
distinción entre las metas de un agente y sus creencias. Esta distinción es fundamental
para la supervivencia de los agentes y los inteligentes la aprovechan tanto como pueden.
Las metas de un agente representan la visión de cómo le gustaría que fuese el mundo a
ella o él. Las metas incluyen acciones que el jagente puede realizar. También incluyen
metas por lograr, para alcanzar algun estado futuro deseado, metas de mantenimiento,
para preservar alguna relación deseada entre el agente y el cambiante estado de mundo,
y restricciones, para prevenir estados indeseable. Voy a proponer que las reglas de
condición-acción sean entendidas como metas de mantenimiento y también voy a
mostrar que, en general, las metas pueden ser descritas naturalmente en forma lógica.
Las creencias del agente, por otro lado, representan su visión del mundo tal como
realmente es, gústele o nó. Incluyen oraciones atómicas que registran las observaciones
del agente. También incluyen sus creencias acerca de las leyes de la naturaleza, además
de las definiciones y taxonomías que el agente usa para clasificar y organizar sus
experiencias. Voy a insistir en que muchas, quizás todas, las creencias pueden
expresarse naturalmente en forma de programas lógicos.
El cuento de la zorra y el cuervo revisado
El cuento en el capítulo 2 comienza cuando la zorra adquiere la meta de tener el queso
del cuervo. Pero, ¿de donde vino la meta de la zorra?
Quizás, como un muchachito malcriado, la zorra quiere tener todo lo que ella ve que
otros tienen. O quizás, ella simplemente está buscando su siguiente comida. En
cualquier caso, la meta de la zorra de tener el queso proviene de una meta de nivel
superior – bien la meta de poseer cualqueir cosa que otro tenga o la meta de tener que
comer cuando tenga hambre.
Así, la meta de la zorra de tener el queso puede verse como una meta por lograr cierto
estado futuro en el mundo, que corresponde al observar un cambio en el mundo que
dispara una meta de nivel superior de mantener cierta relación con el mundo que la
rodea.
Démosle el beneficio de la duda a la zorra y asumamos que ella quiere el queso
simplemente porque tiene hambre (y no debido a algún problema de conducta). Esto se
puede representar así como una meta de nivel superior:
Si me da hambre entonces necesito tener comida y comer-la comida
Esta meta puede ser parafraseada de muchas maneras. Por ejemplo, en forma imperativa
(y jugando un poco con la auto-disciplina en Español):
Si me da hambre, consigue comida y cóme-la comida.
Esta formulación imperativa se asemeja a una regla de condición-acción, salvo porque
la conclusión contiene la meta “consigue comida” en lugar de una acción simple que
puede ser realizada sin más.
Por otro lado, la meta puede ser planteada en modo declarativo, pero con una indicación
de que se trata de una meta en lugar de una creencia.
Meta: si tengo hambre, entonces (ob)tengo comida y como la comida.
La ventaja de expresar la meta como una declaración es que, entonces, obtiene una
forma lógica. La forma lógica puede ser usada para verificar si la proposición es
verdadera o falsa y puede usarse en deducciones lógicas con razonamiento hacia
adelante, hacia atrás y de otros tipos. El hecho de que es una meta, no una creencia,
implica que el agente debe procurar que se haga cierta.
Para mostrar que una implicación
Si condiciones entonces conclusión
es cierta, es necesario mostrar que cuando quiera que las condiciones son ciertas,
entonces la conclusión es también cierta. El que sea una meta o un creencia es
irrelevante.
Sin embargo, para hacer cierta una implicación, siendo una meta, no es sólo que hace
falta hacer que la conclusión sea cierta cuando quiera que las condiciones lo son, sino
que es todo lo que hay que hacer. No sólo es una condición necesaria, sino que es
suficiente también.
En teoría, es posible hacer que la implicación sea cierta haciendo ciertas tanto las
condiciones como la conclusión. Sin embargo, hacer que las condiciones sean ciertas es
un trabajo innecesario. En la práctica, el agente no intenta hacer que las condiciones de
las metas en forma de implicación sean satisfechas expresamente. O bien es el mundo el
que las hace ciertas, o bien el agente las hace ciertas por algún otro motivo[1].
En un mundo abierto y en constante cambio, puede no ser posible hacer que las
implicaicones permanezcan ciertas para siempre. Puede que sea necesario mantener su
verdad por un periodo indefinido, haciendo que las instancias individuales de cada
condición sean ciertas en cada ocasión en que surgan. El proceso completo consiste de
los siguientes tres pasos:
razonar hacia adelante, apareando nuevas observaciones con algunas
condiciones de la implicación, generando una nueva instancia de la implicación.
Razonar hacia adelanta o hacia atrás, para verificar todas las restantes
condiciones de esa instancia de la implicación.
Derivar la nueva meta de hacer la conclusión cierta.
La nueva meta es una sub-meta de una meta de mantenimiento de nivel superior.
Normalmente es una meta de alcance, para obtener cierto estado final.
Veamos como funciona la derivación de una meta de alcance a partir de una meta de
mantenimiento, en esta versión de la Zorra y el Cuervo:
Meta: si me da hambre, consigue comida y come la comida.
Creencias:
El cuervo tiene el queso.
Un animal tiene un objeto
si el animal está cerca del objeto
y el animal toma el objeto.
Estoy cerca del queso
si el cuervo tiene el queso y el cuervo canta.
El cuervo canta si alabo/halago/adulo al cuervo
El queso es un tipo de comida.
La comida es un tipo de objeto.
Para que este cuento funcione, la Zorra necesita el conocimiento taxonómico de que el
queso es un tipo de comida y de que la comida es un tipo de objeto. Este conocimiento
puede ser representado de varias maneras y hay, inclusive, lógicas especializadas para
cada propósito. Sin embargo, para el simple propósito de recontar el cuento, esos
detalles no tienen importancia. Es suficiente reconocer que este conocimiento es
necesario simplemente para asistir el razonamiento, como veremos más adelante.
Para ver como es que funciona el derivar una meta de alcance a partir de una meta de
mantenimiento en este ejemplo, suponga que la Zorra tiene la meta y la creencia que se
indicó antes y, de pronto, su cuerpo le dice que tiene hambre.
Observe: Me da hambre.
Puesto que su cuerpo es parte del mundo, la Zorra se hace-vuelve consciente de su
hambre por medio de una observación. La observación dispara la meta de alto-nivel y el
razonar hacia adelante deriva la sub-metas:
Sub-metas: Tengo comida y Como la comida.
Así, la verdadera meta de mantenimiento no es tan específica como obtener el queso del
cuervo, sino la más general de obtener cualquier clase de comida. Pero esta meta de
mantenimiento es apenas la mitad de la historia. La otra mitad es que la Zorra también
necesita comerse esa comida. Tener comida y no comerla es una tontería.
Derivar sub-meta de mantenimiento a partir de metas de más alto nivel es una
generalización del derivar acciones a partir una regla de condición-acción, porque las
sub-metas pueden ser (pero no necesariamente son) acciones atómicas (ejecutables de
inmediato). En el caso general, las sub-metas son, a su vez, metas que deben se
reducidas a otras sub-metas de nivel inferior. Esta es también una generalización de las
reglas de condición-acción porque las reglas de alcance así derivadas podrían ser para
alcanzar en algún momento en el futuro y no sólo en el siguiente instante de tiempo.
El Factor Tiempo
Nuestra nueva versión del cuento de la Zorra y el Cuervo es todavía una gran
simplificación debido, principalmente, a que ignora el tema del tiempo. No distingue
entre distintas ocurrencias de tener hambre en momentos diferentes. Tampoco se indica
cuanto tiempo ha transcurrido entre la observación del hambre y el momento de comer.
De hecho, no se indica que la Zorra necesita tener la comida antes de que pueda
comerla.
Ese ejercicio de ignorancia del tiempo fue hecho a propósito, porque resulta que el
razonamiento de sentido común sobre el tiempo es mucho más complicado de lo que
parece. Volveremos sobre ese problema más adelante. Entretanto, seguiremos usando
esta versión supersimplificada del cuento, sin tiempo, tanto para simplificar el ejemplo
como para concentrarnos en cómo la Zorra entrelaza su razonamiento con sus
observaciones y acciones en el contexto del ciclo del agente.
Incorporando la historia en el ciclo de los
agentes
Vamos a recontar el cuento, comenzando en esta ocasión en el instante en el que la
Zorra comienza a tener hambre. Para que la historia sea más interesante, asumimos que
la Zorra sólo tiene tiempo para realizar un paso de razonamiento en cada ciclo. También
asumiremos que la Zorra observa si sus acciones tienen éxito o fallan.
El primer ciclo.
Observación: Me da hambre.
Razonando hacia adelanta, sub-metas: Tengo la comida y como la comida.
No hay acciónes por ejecutar.
Este es el caso clásico de una observación que dispara una meta de mantenimiento y
produce una meta de alcance.
El segundo ciclo.
Ninguna observación.
Razonando hacia atrás, nuevas sub-metas: Estoy cerca de la comida y Tomo
la comida y Como la comida.
Ninguna acción por ejecutar.
El único pensar que la Zorra puede hacer en este ciclo es razonar hacia atrás, para
reducir la sub-meta de obtener la comida a la sub-metas de estar cerca de la comida y
tomarla. Este razonar incorpora el razonamiento taxonómico que aparea “comida” con
“objeto”.
El tercer ciclo.
Observación: El cuervo tiene el queso
Razonando hacia adelante, nueva creencia: Estoy cerca del queso si el cuervo
canta.
Ninguna acción por ejecutar.
En este ciclo, la Zorra tiene la alternativa de continuar el razonamiento hacia atrás a
partir de sus sub-metas actuales o de razonar hacia adelante a partir d e esta nueva
observación. Normalmente es una buena idea darle mayor prioridad al razonar con las
nuevas observaciones, porque puede tratarse de una emergencia que requiere atención
inmediata o una oportunidad que no debiera desperdiciarse.
La observación se aparea con una de las condiciones de su creencia:
Estoy cerca del queso si el cuervo tiene el queso y el cuervo canta.
Puesto que su creencia está expresada en forma lógica, puede ser usada para razonar
tanto hacia adelante como hacia atrás. Si se usa para razonar hacia adelante, como en
este caso, produce una nueva creencia:
El cuarto ciclo.
Ninguna observación.
Razonando hacia atrás, la nueva sub-metas: El cuervo canta y Tomo el queso y
Como el queso
Ninguna acción por ejecutar.
La Zorra usa sus nueva creencia hacia atrás, para reducir la meta de estar cerca de la
comida a la sub-meta de hacer que el cuervo cante. Para hacerlo, aparea “comida” con
“el queso”. Esto tiene el efecto colateral de precisar qué es lo que va a comer su la
nueva sub-meta termina con éxito.
El quinto ciclo.
Ninguna observación.
Razonando hacia atrás, la nueva sub-metas: Adulo al cuervo y Tomo el queso y
Como el queso.
Acción: Adulo al cuervo.
La Zorra reduce la meta de hacer que el cuervo cante a la sub-meta de adular al cuervo.
Luego intenta resolver esta nueva sub-meta realizando la acción. No hay otras acciones
pendientes para ejecutar en este momento, así que no hay necesidad de resolver ningún
conflicto entre acciones.
El sexto ciclo.
Observación: Adulo al cuervo.
Razonando hacia adelante, nuevas sub-metas: Tomo el queso y Como el queso.
Acción: Tomo el queso.
La Zorra observa el resultado de la acción que acaba de intentar en el ciclo anterior. La
observación, que confirma que ha tenido éxito, resuelve la primera de las tres sub-
metas, dejando las otras dos para tratar luego. La siguiente sub-meta también es una
acción y hay otras acciones candidatas a ser realizadas en este momento.
El séptimo ciclo.
Observación: No tomo el queso.
No piensa.
Acción: Tomo el queso.
La Zorra observa el resultado de su acción. Sin embargo, esta vez suponemos que falla,
bien porque el Cuervo todavía no ha comenzado a cantar, bien porque el queso no ha
llegado al suelo, bien debido a su ineptitud física[2] . Supondremos, además, que la
Zorra intentará la misma acción otra vez[3].
El octavo ciclo.
Observación: Tomo el queso.
Razonamiento hacia adelante, nuevas sub-metas: Como el queso.
Acción: Como el queso.
La Zorra observa que, esta vez, la acción ha sido exitosa. La observación resuelve la
sub-meta acción asociada, dejando pendiente solamente la última acción, que la Zorra
decide tratar en el siguiente ciclo:
El noveno ciclo.
Observación: Como el queso.
La observación resuelve la última de las sub-metas acción. Noten que la meta de
mantenimiento todavía permanece allí, para ser disparada en otra ocasión futura.
Este patrón general de razonamiento de este ejemplo, que se despliega sobre varios
otros ciclos y, posiblemente, se entrelaza con otras observaciones y acciones, es algo
así:
Observación: Un evento ocurre.
Razonamiento hacia adelante: El evento se aparea con las condiciones
de una meta de mantenimiento o de una creencia
Meta de logro o alcance: En algún momento la conclusión una meta de
mantenimiento es convertida en una meta de logro o alcance.
Razonamiento hacia atrás: Las creencias son usadas para reducir las metas
de logro en acciones.
Acciones: Una sub-meta acción es seleccionada para ser
ejecutada.
Observación: El agente verifica si la acción tiene éxito o falla.
Este patrón no es excepcional. Algo parecido ocurre en el ejemplo del metro de Londres
con su Aviso de Emergencias.
De vuelta en el metro
Recuerde nuestra última versión del ejemplo::
Si hay una emergencia entonces consiga ayuda.
Ud consigue ayuda si alerta al conductor.
Ud alerta al conductor si presiona el botón de la señal de alarma.
La primera oración presenta una meta de mantenimiento. Podemos reescribirla como
una oración declarativa, indicando al lado que se trata de una meta y no de una creencia.
Entretanto, para capturar mejor el significado pretendido de la segunda y tercera
oración, reemplazamos la segunda persona “Ud” por la tercera persona.
Meta: Si hay una emergencia entonces Yo consigo ayuda.
Creencias: Una persona consigue ayuda si la persona alerta al conductor. Una persona alerta al conducto si presiona el botón de la señal de alarma.
Para establecer hay una emergencia, necesitamos creencias adicionales. Por ejemplo:
Creencias: Hay una emergencia si hay fuego. Hay una emergencia si una persona ataca a otras.
Hay una emergencia si alguién se enferma gravemente.
Hay una emergencia si hay un accidente.
Podríamos continuar esta reducción de los conceptos abstractos de alto nivel hacia los
mas concretos de bajo nivel hasta cualquier nivel de detalle deseado. Por ejemplo,
tratándose de reconocer el fuego, podríamos agregar:
Creencia adicionales: Hay fuego si hay llamas. Hay fuego si hay humo.
Con todo, pronto nos parecerá cada vez más difícil definir todo los conceptos de bajo
nivel en términos lingüísticos. Al final, debe haber un punto en el que hay un nivel
mínimo, que es irreductible y en el cual el sistema sensorial del agente transforma las
sensaciones que recibe del ambiente en observaciones que pueden ser representadas en
términos conceptuales.
Suponga, en este ejemplo, que el concepto de reconocer el fuego es ese nivel mínimo.
Suponga, más aún, que Ud está viajando en el metro y observa humo:
Observación: Hay llamas.
Razonando hacia adelante, nueva creencia: Hay fuego.
Razonando hacia adelante, nueva creencia: Hay una emergencia.
Razonando hacia adelante, meta de logro: Yo consigo ayuda!
Razonando hacia atrás, sub-meta: Yo alerto al conductor!
Razonando hacia atrás, acción: Yo presiono el botón de la señal
de alarma!
En tres pasos de razonamiento hacia adelante, Ud deriva la meta de alcance de obtener
ayuda. En el primer paso, Ud reconoce que hay fuego. En el segundo, que hay una
emergencia. En el tercero, Ud usa la meta de mantenimiento para derivar la meta de
alcance de obtener ayuda. Luego, en dos paso de razonamiento hacia atrás, Ud reduce la
meta de obtener ayuda a la sub-meta de acción de presionar el botón de alarma.
La acción de presionar el botón de alarma, en forma similar a como dijimos de la
observación de la emergencia, puede ser reducida aún más a términos de nivel inferior.
Por ejemplo, mover primero su dedo y luego empujar el botón con ese dedo. Mover su
dedo hacia el botón puede, a su vez, ser reducida a todavía más bajas sub-metas, tales
como primero mover su brazo cerca de botón y luego mover el dedo hacia el botón. Con
todo, al final tiene que haber un punto donde su cuerpo releva a la mente y realiza las
acciones por su propia cuenta.
Toda esta pensadera toma un tiempo durante el cual Ud puede que tenga que dar cuenta
de otras observaciones y realizar otras acciones. Programar estas acciones, de manera
que todo se realice en el momento apropiado, es una tarea para el componente que toma
decisiones en el ciclo del agente. Hemos preservado los ejemplos del capítulos tan
simples muy a propósito para evitar ese tipo de decisiones sobre el tiempo. Vamos a
referirnos a esos temas en el siguiente capítulo.
Resumen
Los ejemplos en este capítulo muestran como la lógica puede ser usada en el contexto
del ciclo de observación-pensamiento-decisión-acción de un agente. Puesta en este
contexto, la lógica es usada por los niveles superiores del pensar tanto para razonar
hacia adelante, a partir de las observaciones, disparando metas de mantenimiento y
derivando metas de alcance, como para razonar hacia atrás, para reducir metas de
alcance en acciones.
Bajo el nivel lógico, los procesos de percepción transforman las sensaciones crudas en
observaciones y los procesos motores transforman las representaciones conceptuales en
actividad física en el ambiente.
Todo esto se puede representar así:
Hemos visto que el razonamiento hacia adelante con metas en forma de implicación
sirve como generalización de las reglas de condición-acción, mientras que el
razonamiento hacia atrás con creencias en forma de implicación sirve para generalizar
los procedimientos de reducción de metas. En el siguiente capítulo, veremos cómo es
que el razonamiento hacia atrás puede ser usado para inferir las consecuencias de las
soluciones que se deriven en ciertos momentos. También veremos como la combinación
de búsqueda más inferencia provee información para la siguiente etapa del ciclo, de
forma que las soluciones alternativas puedan ser comparadas y que se tome así, una
decisión final con más información.
[1] También es posible hacer que la implicación sea cierta, haciendo que sus condiciones
se vuelva falsas. En el caso de la Zorra, ella podría tratar de satisfacer su meta evitando
sentir hambre.
[2] Esta complicación sirve para indicar una limitación de nuestra formulación del ciclo
del agente: No hay chequeo explícito en el ciclo para determinar si las acciones de bajo
nivel de hecho alcanzan las metas de nivel superior. El ciclo chequea si las acciones
tienen éxito o no, pero no chequea si ese éxito conduce al éxito de las metas superiores
que se propuso alcanzar. Si las creencias que fueron usadas para reducir esas metas a
sub-metas se pudieran garantizar como ciertas, entonces estos chequeos serían
innecesarios. Así que una manera de corregir esta limitación es agregar al ciclo un
componente de aprendizaje general y de verificación de validez. Volveremos con esto
más tarde.
[3] Esto supone que hay un tiempo asociado antes del cuál debe ser realizada la acción y
que tal tiempo no ha sido alcanzado. Veremos como se hace esto, con todo detalle, más
adelante cuando revisemos la representación del tiempo.
Unidad 5. Pensar = Inferencia +
Búsqueda + Inferencia.
Jonathan Baron (1994) en su libro“Pensando y Decidiendo” escribe, en la página 4:
“El pensar acerca de acciones, creencias y metas personales puede todo
ser descrito en términos de un mismo marco referencial, en el cual se explique
que el pensar consiste de búsqueda e inferencia. Buscamos ciertos objetos y
luego inferimos a partir y acerca de los objetos que hemos encontrado”
A diferencia de Baron, quien ve el papel de la lógica limitado exclusivamente a la
inferencia, en nuestro modelo basado en lógica del pensar, la búsqueda es realizada por
el razonar hacia atrás y la inferencia por el razonar hacia adelante. Aquello por lo que
buscamos son las metas. Como Baron, distinguimos entre el papel del pensar, para
generar candidatas a soluciones y derivar sus consecuencias, y el papel del decidir, para
evaluar las diversas soluciones y escoger entre ellas.
Al parecer es común creer que la lógica no tiene nada que ver con la búsqueda. De
hecho, Paul Thagard, en la introducción a su libro Cognitive Science (pg. 45) dice “En
los sistemas basados en lógica, la operación fundamental del pensamiento es la
dedución lógica, pero desde la perspectiva de los sistemas basados en reglas, la
operación fundamental del pensamiento es la búsqueda”.
Para ver como la lógica está relacionada con la búsqueda, considere el siguiente
problema:
Ir de A a B.
Todo tenemos una idea del cómo buscar objetos en un espacio físico y del cómo
solucionar para llegar de un lugar otro:
Para ir de A a B,
si A está directamente conectado a B entonces
vaya directamente de A a B.
Para ir de A a B,
si C está entre A y B entonces
vaya de A a C y
vaya de C a B.
(NT: Para traducir estas oraciones a la forma lógica que sugiere Kowalski es mejor
escribirlas así:
(Para ir de A a B,
vaya directamente de A a B)
si A está directamente conectado a B.
Para ir de A a B,
vaya de A a C y
vaya de C a B
si C está entre A y B.
aunque se vean un poco extrañas en Español y en Lógica).
En términos más generales y dispuestos en forma lógica:
Un agente va de A a B si
A está directamente conectado a B y
ese agente va directamente de A a B.
Un agente va de A a B si
C está entre A y B y
el agente va de A a C y
ese agente va de C a B.
Estos procedimientos y creencias sirven, no sólo para desplazarse en espacios físicos,
sino también para lugares conceptuales como “pobres” y “ricos”.
Los procedimientos de reducción de metas son un caso especial de las creencias. Son el
caso especial en el cuál las creencias son usadas para razonar hacia atrás y “el agente”
es el mismo agente que los usa para reducir metas a sub-metas. A diferencia de los
procedimientos, las creencias puede también ser usadas para razonar hacia adelante, por
ejemplo para determinar las consecuencias de las observaciones acerca de la conducta
de otro agente.
Puede que haya muchas maneras de escoger un lugar C, entre A y B. Por ejemplo, Ud
puede ir de pobre a rico bien consiguiendo un buen empleo, bien robando un banco. De
la misma manera, puede haber muchas formas de ir de A a C y de ir de C a B. Por
ejemplo, Ud puede conseguir un buen empleo comenzando justo después de graduarse
o haciendo un postgrado antes para luego ir a trabajar mejor calificado.
Algunas decisiones al escoger el lugar intermedio C podrían no ser buenas para resolver
las otras sub-metas de ir desde A a C o desde C a B. Por ejemplo, aunque Ud pudiera
conseguir un buen trabajo justo al terminar su pregrado, puede que, aún así, no alcance
a volverse rico.
En general, por tanto, para resolver la meta de ir de A a B, Ud necesita buscar la
solución. En lugar de buscar en un espacio material, Ud puede ahorrarse algún esfuerzo
(físico quizás), haciendo parte de la búsqueda en su cabeza.
Ud puede aprovechar sus creencias, por ejemplo, si Ud está planificando sus
vacaciones, para obtener un plan para ir de A a B, mucho antes de que comiencen sus
vacaciones. Podría Ud explorar planes alternativos, o inclusive, buscar un plan que
optimice el resultado, quizás minimizando sus costos o maximizando sus beneficios.
Más aún, Ud puede entrelazar ese planificar con otras actividades, suspendiéndolo
cuando tenga compromisos más úrgentes que atender, y reanundándolo cuando no
tenga algo más importante que hacer.
Cómo ir hasta la Riviera Francesa
Si aún no se convence, considere la meta:
Meta: Yo voy desde Wimbledon a la Riviera Francesa.
Suponga que tengo la siguiente información:
Crencias: Niza está entre Wimbledon y la Riviera Francesa
París está entre Wimbledon y la Riviera Francesa
Heathrow está entre Wimbledon y la Riviera Francesa
Gatwick está entre Wimbledon y Niza
Clapham Junction está entre Wimbledon y Gatwick.
Wimbledon está directamente conectado a Clapham Junction.
Clapham Juction está directamente conectado a Gatwick.
Gatwick está directamente conectado a Niza.
Niza está directamente conectada a la Riviera Francesa.
etc.
Yo podría tener toda esta información almacenada previamente en mi memoria,
directamente como una colección de hechos. O podría obtenerla de otras fuentes.
Razonando hacia atrás, tengo dos planes alternativos para tratar de resolver mi meta:
Wimbledon está directamente conectado a la Riviera Francesa y
yo voy (va) directamente desde Wimbledon a la Riviera Francesa.
O puedo usar las sub-metas:
C está entre Wimbledon y la Riviera Francesa y
yo voy de Wimbledon y C y
yo voy de C y la Riviera Francesa.
A cuáles de estos genero primero o si genero todos simultáneamente depende de mi
estrategia de búsqueda. Si genero el primero de primero, tengo que decidir sobre cuál
sub-meta trabajar primero: la sub-meta Wimbledon está directamente conectado a la
Riviera Francesa o la sub-meta Voy de Wimbledon a la Riviera Francesa directamente.
Imagine que decido trabajar en la primer sub-meta primero. Con sólo las creencias que
listé arriba, no puedo resolver esta sub-meta. Debo, por tanto, abandonar o suspender
esta línea de pensamiento (de búsqueda) o, por el contrario, debo realizar alguna acción
sobre el ambiente para procurar información adicional en caso de que exista alguna
conexión de la que aún no sé. Suponga ahora que decido suspender esta línea de
búsqueda.
Me queda la alternativa de tratar de resolver mi meta superior:
C está entre Wimbledon y la Riviera Francesa y
Yo voy de Wimbledon a C y
Yo voy de C a la Riviera Francesa
Suponga que decido trabajar en la primera de las tres sub-metas (no tiene sentido
trabajar en una de las otras dos puesto que aún no he seleccionado el lugar intermedio
C). Dada la poca información que he listado antes, hay tres formas de resolver esta sub-
meta. Debo decidir cuál tratar primero.
De esta manera continúa la búsqueda, considerando alternativas, decidiendo sobre
cuáles sub-metas tratar primero y decidiendo acerca de las acciones (en el ambiente)
que debo realizar para obtener más información, hasta que consigo una o más
soluciones. En este caso, si decido no hacer ninguna acción externa, la única solución es
el plan:
Yo voy de Wimbledon a Clapham Junction directamente y
Yo voy de Clapham Junction a Gatwick directamente y
Yo voy de Gatwick a Niza directamente y
Yo voy de Niza a la Riviera Francesa directamente.
Puedo derivar este plan, buscando en mi mente, bien hacia adelante a partir de
Wimbledon o hacia atrás a partir de la Riviera Francesa, dependiendo en cada caso de
sobre cuál sub-metas decida trabajar primero.
Sin embargo, en ambos casos, busco en mi mente realizando un razonamiento hacia
atrás desde las metas hacia las sub-metas.
Por supuesto, si tuviera más información, podría encontrar más soluciones para alcanzar
mi meta original. Necesitaría entonces escoger entre las alternativas, no sólo para
decidir cual plan ejecutar, sino también y antes de eso, para seguir buscando la solución.
Puesto que el propósito del pensar, en este caso, es finalmente decidir que hacer, podría
usar los mismo criterios que use para escoger entre las soluciones - por ejemplo, el
criterio de mayor beneficio por menor costo – como una estrategia de búsqueda,
explorando las líneas de pensamiento o búsqueda más prometedoras solamente o por lo
menos, antes que las menos prometedoras.
Razonamiento lógico = Búsqueda + Inferencia
Hay, sin embargo, otra forma muy interesante para explicar, en lógica, como se
combinan la búsqueda y la inferencia – es la forma en que Johathan Baron explica el
pensar en genera: “Buscamos ciertos objetos y luego inferimos a partir y sobre los
objetos que hemos encontrado”.
En nuestro marco lógico conceptual, buscamos por soluciones razonando hacia atrás a
partir de las metas. Sin embargo, para ayudarnos a decidir entre soluciones alternativas,
exploramos ese espacio de las inferencias hacia adelante, para prever cualquier
consecuencia adicional, deseable o indeseable, de las soluciones.
Para ilustrar el sentido en el que el pensar combina búsqueda e inferencia, Baron
presenta el ejemplo de una estudiante tratando de decidir que curso electivo tomar.
Primero considera ella un curso en historia moderna, que suena interesante pero exige
demasiado. Luego considera otro curso en historia moderna que también suena
interesante, pero que quizás no demande tanto. Entonces trata de encontrar a alguien
que haya tomado ese curso antes para ver que tanto trabajo realmente exige.
Este ejemplo de Baron es muy parecido a nuestro ejemplo del viaje de vacaciones a la
Riviera Francesa, pero además illustra la importancia de las acciones en procura de
información.
Muestra que Ud no puede confiar que tiene, en su memoria desde el principio, toda la
información que requiere para resolver un problema. Es posible que tenga que consultar
fuente externas.
El propósito principal de este ejemplo es ilustrar el uso de la inferencia para derivar las
consecuencias de las soluciones candidatas, para ayudar a decidir que hacer. En el
ejemplo de Baron la inferencia es simple: Si la estudiante toma el primer curso, tendrá
que trabajar muy duro.
Decidir que hacer, sobre la base de estas inferencias es mas complicado. Implica
comparar las ventajas y desventajas de distintos candidatos a cursos de acción. Puesto
que es poco probable que algún curso supere a todos los demás en todos las aspectos
relevantes, es muy probable que se tenga que tomar algunas decisiones difíciles, quizás
comprometiendo las ventajas de un curso para evitar algunas de sus desventajas. Para
complicar las cosas todavía más, el estudiante tendrá que basar sus estimados de costos
y beneficios de las diversas altenativas en información incierta, quizás hasta de caracter
estocástico.
Incertidumbre
La incertidumbre acerca de la circunstancias futuras fuera de nuestro control es
característica de la mayoría de las situaciones y problemas en la vida. Considere,
nuevamente el problema de pasar de pobre a rico y suponga que estoy considerando el
robo de un banco como una manera de hacerme rico. Robar un banco no es una opción
fácil. Voy a tener que pensar mucho para construir un plan que tenga algún chance de
tener éxito. Tendré que escoger un banco, decidir si iré solo o con una banda organizada
para ayudarme, decidir si lo haré en plena luz del día o en la oscuridad y planificar mi
escape.
Pero antes de construir un plan con todos sus detalles, podría explorar en mi mente las
consecuencias más probables de robar el banco, para establecer si hay otros efectos
deseables o indeseables. Separando cualquier consideración moral, si robo un banco y
me atrapan y me condenan, terminaré en la cárcel. Pero yo no quiero ir a la cárcel.
Puedo decidir si trataré o no de robar el banco. Pero no puedo controlar si seré
capturado o condenado al intentarlo. No sólo es que estas posibilidades están
completamente fuera de mi control. Es que no puedo siquiera predecir su probable
ocurrencia con un nivel de certeza predefinido. Lo más lejos que pueda llegar es a
estimar esas probabilidades.
Si creo que los chances de ser capturado y luego convicto son muy altos, no robaré el
banco, puesto que no quiero ir a la carcel. Ni siquiera comenzaría a considerar el cómo
robarlo, pues todas la alternativas tienen la misma conclusión indeseable.
Pensar el robo de banco no sólo muestra el valor de inferir las consecuencias de cada
solución, sino que también expone la necesidad calcular o estimar probabilidades
asociadas a circunstancias fuera de nuestro control.
Esa combinación de estimaciones de probabilidad con evaluaciones de la utilidad de las
diferentes resultados es el tema de lo que se conoce como Teoría de Decisiones.
Volveremos a ese tema más adelante. Entretanto, es suficiente con notar que en muchos
casos, pensar, entendido como la búsqueda de las opciones y el cálculo de sus
consecuencias, puede con frecuencia ser mucho más fácil que decidir que hacer.
Pensar sin buscar
Esa caracterización de pensar como búsqueda más inferencia constituye un gran avance
con respecto a otras teorías en las que el pensar es visto como apenas algo más que sólo
búsqueda. No obstante, no sirve para dar cuenta del tipo de pensar que es necesario para
lidiar con cambios en el ambiente – especialmente cuando tales cambios requieren una
respuestas rápida y no hay mucho tiempo para buscar la solución óptima.
Pensar, buscando e infiriendo consecuencias es suficiente en muchas situaciones, como
cuando Ud está planificando sus vacaciones, planificando un curso electivo o el robo de
un banco, ocasiones todas en las que Ud dispone de todo el tiempo necesario para
buscar soluciones alternativas. Sin embargo, hay otras situaciones, como las de
emergencia, cuando Ud no tiene tiempo para considerar todas las alternativas y no tiene
tiempo para terminar su pensar antes de comenzar a actuar.
Suponga, por ejemplo, que Ud es un explorador de Marte, tipo 2, equipado con toda la
capacidad para pensar lógicamente. Ud se encuentra buscando vida en Marte cuando un
Exterminador Marciano se atravieza en su camino. Afortunadamente, Ud ha sido
advertido de tales emergencias y está equipado con la meta de mantenimiento
apropiada:
Meta: Si el Exterminador Marciano está a la vista, entonces vaya desde donde estoy
hacia la nave espacial.
Observación: El Exterminado Marciano está a la vista.
Razonando hacia adelante,
Meta de logro Vaya desde donde estoy hacia la nave espacial.
En teoría, Ud podría simplemente sentarse a pensar en todas la formas de volver a la
seguridad de su nave espacial, tal como si Ud estuviera planificando sus vacaciones en
la Riviera Francesa. Pero, en la práctica, su vida terminaría antes de que pudiera
comenzar con esos planes.
Lo que Ud necesita es pensar rápido, con el mismo conocimiento que Ud usa al
planificar las vacaciones, pero sin explorar todo el espacio mental de alternativas.
Debe Ud escoger un lugar C contiguo al lugar donde Ud está y más cerca de su nave
espacial y, de inmediato, comenzar a moverse hacia ese lugar, incluso antes de ponerse
a pensar que hará despues. Cuando haya llegado a C, Ud selecionará otro lugar C'
contiguo a su nueva posición C y también en dirección a la nave y, de nuevo, se moverá
hacia allá. Ud seguirá de esta forma, pensando donde ir y moviendose hacia allá, hasta
que llegue a la nave espacial si es que tiene la suerte de su lado. O será capturado por el
Exterminador Marciano si no está de suerte.
Pensando en el tiempo
En el caso general, para lograr el balance perfecto entre pensar y actuar, un agente
necesita pensar en el tiempo – Tanto acerca de los tiempos en que debe realizar las
acciones, como en la duración del pensar dado el tiempo disponible para hacerlo. Este
tema del pensar acerca del tiempo será tratado muy pronto en este libro.
Pensar = Inferencia + Búsqueda + Inferencia
Tenemos ahora una visión más completa del papel de la lógica en el ciclo de
observación-pensamiento-decisión-acción:
El significado de la Vida
No parece muy atractivo ser un Explorador de Marte y no saber que nuestro propósito
en la vida es encontrar vida en Marte. Pero es todavía peor ser un piojo de la madera y
no tener nada más que hacer en la vida que seguir unas reglas sin sentido.
Metas: Si está libre al frente, entonces muévete adelante. Si hay un obstáculo al frente, entonces voltea a la derecha.
Si estoy cansando, entonces descansa.
De hecho, es peor que el sinsentido.
Si comida, el piojo morirá y sin hijos, los genes del piojo desaparecerán. ¿De qué sirve
merodear por allí si no se ocupa de comer y tener hijos?.
Parte del problema es que el cuerpo del piojo no le está dando las señales adecuadas –
no le hace sentir hambre cuando se le está acabando la energía y no le hace sentir el
deseo de aparearse cuando debería estar reproduciendose. Su cuerpo también debería ser
capaz de reconocer el alimento y comerlo, y debería identificar parejas potenciales y
procurarlas.
¿Qué puede hacer entonces el piojo?. Si llegó hasta aquí por la evolución entonces ya no
puede ir ningún otro sitio (como individuo) y está camino a la muerte.
Pero si le debe su vida a alguna Gran Diseñadora, entonces le puede rogar que lo
rediseñe, esta vez desde arriba hacia abajo. La Gran Diseñadora tendrá que re-pensar las
metas superiores del piojo, decidir cómo se les debe reducir a sub-metas y derivar, en
ese proceso, una nueva especificación de la conducta de entrada-salida del piojo.
Imagine ahora que la Gran Diseñadora establece las siguientes metas superiores para el
piojo:
Metas superiores El piojo vive tanto tiempo como sea posible y
El piojo tiene tantos hijos como es posible.
Por supuesto, algún crítico ateo bien podría preguntar: ¿A cuál propósito sirven estas
metas? Y ¿Por qué esas metas y no otras?. Quizás sobrevivir sea sólo otra sub-meta de
tener hijos. Y, quizás, tener hijos sea solamente una forma de promover la supervivencia
de nuestros genes. Tarde o temprano, sin embargo, nuestro crítico tendrá que dejar de
preguntar. No puede seguir preguntando para siempre (NT: ¿No?).
Para reducir las metas superiores a sub-metas, la Diseñadora necesita usar sus creencias
acerca del mundo, que incluyen sus creencias acerca de las capacidades del cuerpo del
piojo. Más aún, podría aprovechar su diseño anterior, con el que el piojo terminaba
moviendose sin propósito, y modificarlo para darle propósito a esos movimientos.
Podría usar creencias como:
Creencias:
El piojo vive tanto tiempo como es posible,
si cuandoquiera que está hambriento, busca comida y
cuando tiene comida enfrente, la come, y
cuandoquiera que está cansado, descansa, y
cuandoquiera que es amenazado, se defiende.
El piojo tiene tantos hijos como es posible,
si cuandoquiera que desea aparearse, busca pareja, y
cuando tiene la pareja al frente, trata de encargar bebés.
El piojo busca un objeto,
si cuandoquiera que está libre al frente, se mueve adelante, y
cuandoquiera que hay un obstáculo al frente y
no es el objeto buscado, entonces voltea a la derecha, y
cuando el objeto está al frente, entonces se detiene.
El piojo se defiende si ataca primero.
La comida es un objeto.
Una pareja es un objeto.
Si el piojo fuese tan inteligente como la diseñadora, la diseñadora podría simplemente
explicarle estas creencias directamente al propio piojo. El piojo podría entonces razonar
para adelante o para atrás, cuando sea necesario, y no tendría problema alguno para
alcanzar sus metas, siempre, claro, que las creencias de las Gran Diseñadora sean
válidas.
Pero el piojo no tiene ni el intelecto de la Diseñadora, ni cuerpo de supermodelo, ni
educación universitaria. Así que la Diseñadora tiene que, no sólo precisar los
requerimientos del piojo, sino también derivar una especificación de entrada-salida de la
conducta del piojo que pueda ser implantada (implementada) en el piojo con sus
limitadas capacidades físicas y mentales.
Una forma para el proceder de la diseñadora es que ella misma razone por el piojo
antes.
Puede comenzar razonando hacia atrás a partir de las metas superiores del piojo, para
generar el siguiente nivel de sub-metas:
Sub-metas:
Cuandoquiera que el piojo está hambriento, busca comida y
cuando la comida está al frente, la come, y
cuandoquiera que el piojo está cansado, descansa, y
cuandoquiera que el piojo es amenazado, se defiende, y
cuandoquiera que el piojo desea aparearse entonces busca pareja, y
cuando tiene la pareja al frente, trata de encargar bebés.
Las palabras “cuandoquiera” y “cuando” se pueden interpretar como el “si” condicional
pero también tienen una implicación temporal. Nos distraeriamos mucho si explicamos
ese punto aquí. Por esta razón, es útil re-escribir esas sub-metas en términos lógicos más
convencionales. Al mismo tiempo, nos aprovecharemos de esa re-escritura para eliminar
la ambigüedad asociada con al “alcance” de las palabras “y cuando”.
Sub-metas:
Si el piojo está hambriento entonces busca de comer, y
Si el piojo está hambriento y tiene comida al frente entonces se la come, y
Si el piojo está cansado entonces descansa, y
Si el piojo está amenazado entonces se defiende, y
Si el piojo desea aparearse entonces busca pareja, y
Si el piojo desea aparearse y hay una pareja al frente entonces trata de encargar bebés.
Sin embargo, el trabajo de la Diseñadora no ha terminado aquí. Alguna de las conclusiones de
las sub-metas implican otras metas (como buscar comida, defenderse y buscar pareja) que
deben ser reducidas a otras sub-metas de nivel aún más bajo. Por fortuna, para la
Diseñadora, esto es fácil. Sólo hace falta un poco más de razonamiento hacia atrás y
algo de simplificaciones lógicas[3], para derivar una especificación de la que estaría
orgullosa cualquier conductista.
Nuevas metas:
Si el piojo está hambriento y está libre al frente entonces el piojo se mueve adelante.
Si el piojo está hambriento y hay un obstáculo al frente y no es comida entonces el piojo
voltea a la derecha.
Si el piojo está hambriento y hay comida adelante entonces el piojo se detiene y come la
comida.
Si el piojo está cansado entonces el piojo descansa.
Si el piojo está amenazado entonces el piojo ataca primero.
Si el piojo desea aparearse y está libre al frente entonces el piojo se mueve adelante.
Si el piojo el piojo desea una pareja y hay un obstáculo al frente y no es una pareja
entonces el piojo voltea a la derecha.
Si el piojo desea aparearse y hay un obstáculo al frente y es una pareja entonces el piojo
se detiene y trata de encargar bebés.
Las nuevas metas definen la conducta de entrada-salida del piojo y pueden ser
implementadas directamente como un sistema de producción sin memoria. Sin
embargo, hay inconsistencias potenciales. Si el piojo desea aparearse y está hambriento
al mismo tiempo puede que se encuentre en una situación difícil, por ejemplo, en la que
debiera tanto detenerse y comer como voltear a la derecha y buscar pareja, todo al
mismo tiempo. Para evitar tales inconsistencias, el piojo tendrá que resolver los
conflictos.
Pero, si era demasiado esperar que el piojo razonara con lógica, es quizás también
pedirle demasiado que resuelva los conflictos. Menos aún que aplique Teoría de
Decisiones para que pese las ventajas relativas de satisfacer su hambre con las de
satisfacer su deseo de aparearse. La solución más simple es la Diseñadora tome esas
decisiones por el piojo y se las incluya en la especificación.
Si el piojo está hambriento y no está amenazado y está libre al frente
entonces el piojo se mueve adelante
Si el piojo está hambriento y no es amenazado y hay un obstáculo al frente y no es comida y no desea aparearse entonces el piojo voltea a la derecha.
Si el piojo está hambriendo y no es amenazado y hay comida al frente
entonces el piojo se detiene y come la comida.
Si el piojo está cansado y no es amenazado y
no tiene hambre y no desea aparearse entonces el piojo descansa.
Si el piojo es amenazado entonces el piojo ataca primero
Si el piojo desea aparearse y no está amenazado y está libre al frente
entonces el piojo se mueve adelante.
Si el piojo desea aparearse y no está amenazado y no está hambriendo y hay un obstáculo adelante y no es una pareja entonces el piojo voltea a la derecha.
Si el piojo desea aparearse y no está amenazado y hay una pareja al frente
entonces el piojo se detiene y trata de encargar bebés.
Si el piojo desea aparearse y está hambriento y no es amenazado y hay un obstáculo al frente y no es una pareja y no es comida entonces el piojo voltea a la derecha.
La nueva especificación es una colección de asociaciones entrada-salida que le otorga
prioridad máxima al reaccionar contra un ataque, pioridad mínima a descansar cuando
está cansado e igual prioridad a aparearse y comer. Ahora, la única situación en la que
podría surgir el conflicto es cuando hay comida y pareja al frente al mismo tiempo. Uno
tiene que preocuparse por las cosas importantes.
El problema mente-cuerpo
Normalmente, el trabajo de una diseñadora termina cuando ha construido una
descripción declarativa de la conducta de entrada-salida de su objeto de estudio. El
cómo se “implante” esa conducta dentro del objeto no es asunto suyo.
En Computación, esta distinción entre el diseño de un objeto y su implementación es
llamada encapsulamiento. La implementación (implantación) queda encapsulada en el
objeto. Los objetos pueden interactuar con otros objetos, considerando solamente su
conducta de entrada-salida.
La noción de encapsulamiento es una justificación parcial del método conductista. No
es solamente que resulta imposible en muchos casos determinar lo que hay dentro del
otro objeto, sino también que, para muchos propósitos prácticos, es innecesario e
incluso indeseable.
Nuestro piojo no es la excepción. Sería fácil, dada la especificación de entrada-salida,
implementar la conducta del piojo con un sistema de producción primitivo sin memoria
y sin resolución de conflictos. ¿Acaso el piojo necesita una mente – para representar
conceptos como hambre y comida y para derivar representaciones simbólicas de sus
acciones?. De verdad ¿un piojo necesita cargar con todo este aparato mental, cuando
toda la conducta instintiva necesaria podría ser “cableada”, como una colección de
asociaciones de entrada-salida, directamente en el cuerpo del piojo[4]?
De la misma manera, una diseñadora podría especificar el diseño de un termostato en
términos simbólicos:
Metas:
Si la temperatura actual es T grados y la temperatura deseada es T' y T < T’ - 2°
entonces el termostato aumenta el calor.
Si la temperatura actual es T grados y la temperatura deseada es T' y T > T’ + 2°
entonces el termostato disminuye el calor.
Pero esto no implica que el termostato manipule expresiones simbólicas para generar su
conducta. Muchas personas estarían satisfechas si el diseño se implantara en un
dispositivo mecánico o electrónico simple.
De la misma forma como la conducta del termostato puede ser vista desde afuera en
términos de lógica simbólica, sin que esto implique que el propio termostato manipule
expresiones simbólicas, la conducta de nuestro piojo podría ser implantada como una
colección de asociaciones entrada-salida en un cuerpo sin mente.
Estas posibilidades se pueden ilustrar así:
La gente no es así Aún cuando mucha de nuestra conducta es instintiva e, incluso, inconsciente, casi
siempre podemos separarnos de lo que hacemos, reflexionar con cuidado sobre nuestros
propósitos finales y, hasta cierto punto, controlar nuestra conducta para alcanzar mejor
nuestra metas. Es como si pudiéramos ser un piojo y la diseñadora del piojo al mismo
tiempo.
Esta es, de hecho, la meta superior de este libro – investigar cómo podemos usar la
lógica para supervisar nuestra conducta y cómo podemos alcanzar nuestra metas más
efectivamente como resultado de esa supervisión. Para ello, debemos investigar la
relación entre pensamiento instintivo y pensamiento lógico. Hemos visto un ejemplo de
esta relación en este capítulo. Pero, en este ejemplo, los niveles lógico e instintivos
estaban separados en individuos diferentes. En el próximo capítulo, veremos como
pueden estar presentes en el mismo individuo.
[1] Es muy interesante notar que tanto la interpretación temporal como la lógica de la
claramente ambigüa palabra “entonces” tienen sentido aquí.
[2] Por simplicidad, asumimos que atacar primero, descansar y tratar de encargar bebés
son todas acciones que el piojo puede ejecutar directamente sin reducirlas a otras sub-
metas de nivel inferior.
[3] Esta simplificación reemplaza las oraciones con la forma “si A, entonces si B
entonces C”, con oraciones “si A y B entonces C”.
[4] Este argumento ha sido presentado, entre otros por Rodney Brooks del MIT, quien
ha implementado varias generaciones de robots sin procesador, muy parecidos a un
piojo, que despliegan conductas inteligentes muy impresionantes.
Niveles de Conciencia
Hay un sentido en el que la conciencia puede ser entendida tanto en términos
computacionales como en términos lógicos. Me refiero a cuando se dice que un agente
está conciente cuando está al tanto de lo que está haciendo y del porqué lo está
haciendo. Sea o no conciente un agente (en este sentido), la manifestación exterior de su
conducta es la misma. Sin embargo, si el agente está conciente de lo que hace, entonces
su conducta es “a propósito” y está bajo su control (NT: ¿Bajo “su reflexión”?). Si no
está conciente, entonces su conducta es automática e instintiva.
La interpretación computacional de la conciencia como el “estar al tanto” dice que
cuando un agente está conciente su conducta es generada por un programa de alto nivel,
que manipula símbolos que tienen significado en el ambiente. Por otro lado, cuando un
agente no es conciente, entonces su conducta es producida por un programa de bajo
nivel o un dispositivo físico, cuya estructura está determinada, en todo caso, por las
características del cuerpo del agente.
La interpretación lógica es que, cuando un agente es conciente, su conducta es
producida por el razonar con metas y creencias. Cuando el agente no está conciente,
entonces su conducta está determinada por asociaciones entrada-salida de bajo nivel.
Estas asociaciones se puede representar, a su vez, a diferentes niveles, incluyendo un
nivel lógico-simbólico y el más básico nivel físico del cuerpo del agente.
Ambas interpretaciones se encuentran en la lógica computacional:
Conciencia en el metro
Recuerde nuestra última versión del ejemplo del Aviso en el Metro:
Metas: Si hay una emergencia entonces Yo obtengo ayuda.
Creencias: Una persona obtiene ayuda si la persona alerta al conductor.
Una persona alerta al conductor si la persona presiona el botón de la señal de alarma.
Hay una emergencia si hay fuego.
Hay una emergencia si una persona ataca a otra.
Hay una emergencia si alguien se enferma gravemente.
Hay una emergencia si hay un accidente.
Hay fuego si hay llamas.
Hay fuego si hay humo.
Un pasajero puede usar la meta y las creencias explícitamente, razonando hacia adelante
a partir de las observaciones, para reconocer cuando hay una emergencia y derivar la
meta de conseguir (ob-tener) ayuda, y luego, razonando hacia atrás, conseguir ayuda al
presionar el botón de la señal de alarma.
Sin embargo, el pasajero podría llegar a la misma conducta usando asociaciones de
entrada-salida de bajo nivel o reglas de condición-acción, que puede también ser
representadas en forma lógica.
Metas: Si hay llamas entonces Yo presiono el botón de la señal de alarma.
Si hay humo entonces Yo presiono el botón de la señal de alarma.
Si una persona ataca a otra entonces Yo presiono el botón de la señal de alarma.
Si alguien se enferma gravemente entonces Yo presiono el botón de la señal de
alarma.
Si hay un accidente entonces Yo presiono el botón de la señal de alarma.
La nueva meta es más eficiente que la meta y la creencia original. Sólo requieren un
paso de razonamiento hacia adelante para asociar la acción apropiada de salida con la
observación relevante en la entrada. Al respecto, se asemejan a un programa escrito en
un lenguaje de bajo nivel, que es más eficiente que un programa con la misma
funcionalidad en un lenguaje de nivel más alto.
De hecho, en este caso, ambos programas están escritos en el mismo lenguaje lógico. El
programa original está escrito a mayor nivel, lo cual requiere, no solamente más
recursos computacionales, sino también mecanismos de razonamiento más sofisticados.
En Computación, los lenguajes de diferentes niveles y las representaciones de diferentes
niveles en el mismo lenguaje tienen diferentes ventajas y son complementarios. Las
representaciones de bajo nivel son más eficientes. Pero las de alto nivel son más
flexibles, fáciles de desarrollar y fáciles de cambiar.
En este ejemplo, la representación de bajo nivel “no está al tanto”, lo que si ocurre con
la representación de mayor nivel, de la meta de conseguir ayuda que es el propósito de
presionar el botón de la señal de alarma. Si algo sale mal con la representación de bajo
nivel, por ejemplo si el botón no sirve o el conductor no consigue ayuda, entonces el
pasajero podría no darse cuenta que hay un problema. Además, si el ambiente cambia, y
se desarrollan métodos nuevos y mejores para resolver emergencias, será más difícil
modificar la representación para adaptarla al cambio.
En Computación, ambos niveles de representación son útiles. Típicamente, la
representación de nivel superior es la primera en ser desarrollada, algunas veces ni
siquiera en la forma de un programa, sino como un análisis de los requerimientos del
programa[1]. Esta representación de alto nivel es luego transformada, bien
manualmente o por medio de programas que algunas veces se llaman compiladores, en
un representación de más bajo nivel que se puede ejecutar más eficientemente.
El proceso inverso también es posible. Los programas de bajo nivel pueden, en ciertas
circunstancias, ser decompilados en programas equivalentes de mayor nivel. Esto es
muy útil cuando el programa de más bajo nivel debe ser modificado, quizás porque debe
operar en un ambiente diferente o porque se ha descubierto que tiene una falla de
programación. La representación de alto nivel puede entonces ser modificada y
recompilada en una nueva forma de bajo nivel mejorada.
Este proceso inverso, sin embargo, no siempre es posible. Los llamados sistemas
legados, desarrollados directamente en lenguajes de bajo nivel y que han sido
modificados durante años pueden carecer de la estructura necesaria para que se pueda
identificar sus metas sin ambiguedades y se les pueda decompilar en la forma de nivel
superior. Pero inclusive en estos casos, se les podría decompilar parcialmente y
aproximar con programas de alto nivel. Este proceso de reconstrucción racional pueden
servir para mejorar la mantenibilidad de los sistemas legados, aún cuando una re-
implementación completa no sea posible.
Compilando por medio del razonamiento adelantado.
Uno puede realizar parte del trabajo de compilar un programa de alto nivel en una
forma de bajo nivel, realizando por adelantado algo de la computación que se realizaría
al invocar el programa original.
En el ejemplo del metro, en lugar de aguardar a que ocurra la emergencia, un
compilador puede anticipar la necesidad de reducir la conclusión de la meta de
mantenimiento de nivel superior:
Meta: Si hay una emergencia entonces consigue ayuda.
Haciendo todo el razonamiento hacia atrás necesario, por adelantado. En dos de esos
pasos de inferencia, la meta puede ser transformada en una versión declarativa de una
regla de condición-acción:
Meta: Si hay una emergencia entonces presiono el botón de la señal de alarma.
De la misma manera, el compilador puede anticipar la necesidad de reconocer que hay
una emergencia, haciendo todo el razonamiento hacia adelante por adelantado. En dos
pasos de inferencia, que corresponden a las dos maneras de reconocer que hay fuego, el
compilador puede derivar las nuevas creencias:
Creencias: Hay una emergencia si hay llamas. Hay una emergencia si hay humo.
En cinco pasos adicionales de inferencia, que corresponden a los cinco tipos de
emergencia, el compilador obtiene las asociaciones simples de entrada-salida que vimos
antes:
Metas:
Si hay llamas entonces presiono el botón de la señal de alarma.
Si hay humo entonces presiono el botón de la señal de alarma.
Si una persona ataca a otra entonces presiono el botón de la señal de alarma.
Si alguien se enferma gravemente entonces, presiono el botón de la señal de
alarma.
Si hay un accidente entonces presiono el botón de la señal de alarma.
Esta representación es tan baja como puede serlo, pero preserva la forma lógica. Sin
embargo, es posible bajar más aún, si esas asociaciones son implantadas con conexiones
físicas directas entre las partes relevantes de los sistemas sensoriales y motores
humanos. Esto último equivale a implantar el software en el hardware.
Combinando el pensamiento racional con
el pensamiento intuitivo.
En la psicología cognitiva se ha hace una distinción similar a la discutida en la sección
anterior entre el pensamiento racional (deliberative thinking) y el pensamiento
intuitivo (intuitive thinking). El pensamiento racional, conciente de sí mismo y
controlado, incluye al pensar lógico. El pensamiento intuitivo, que es opaco y
automático, lleva los procesos de percepción hasta los niveles subconcientes del pensar.
Los psicologos cognitivistas han propuesto varios modelos de procesamiento dual del
pensamiento humano, en los cuáles interactúan esos dos tipos de pensamiento.
La interacción más simple ocurre el pensamiento racional se desplaza hacia el nivel
intuitivo con el paso del tiempo, por ejemplo, cuando una persona aprende a usar el
teclado, tocar un instrumento musical o conducir un carro. Esta migración del
pensamiento racional hacia el intuitivo es equivalente a compilar un programa de alto
nivel en un programa de nivel inferior – pero no razonando por adelantado, sino
razonando con los hechos. Luego de usar la misma combinación de procedimientos de
propósito general de alto nivel durante mucho tiempo (o muchas repeticiones), la
combinación colapsa en un “atajo computacional” de bajo nivel. Este atajo es un
procedimiento especializado que alcanza el mismo resultado que el procedimiento
general original, pero con mayor eficiencia.
Algunas veces podemos ir en la dirección opuesta, reflexionando sobre el conocimiento
subconciente y representándolo concientemente en términos explícitos – Por ejemplo,
cuando un lingüista trata de construir una gramática formal para un lenguaje. Mientras
el hablante nativo de un lenguaje conoce la gramática tácita y subconcientemente, el
lingüista intenta formular una gramática explícita. Un maestro podría usar la gramática
resultante para enseñar a los estudiantes. Si estos practican lo suficiente, llegarán a
compilar la gramática explícita en sus propios subconcientes y aprenderán a hablar el
lenguaje con mayor correctitud y eficiencia.
De la misma manera que muchos programa de bajo nivel no pueden ser completamente
decompilados, sino que sólo se les puede aproximar con programas de nivel superior, es
probable que mucho de nuestro pensar subconciente sólo pueda ser aproximado hasta
cierto punto por el pensar conciente. Las gramáticas formales de los lingüistas siguen
siendo un buen ejemplo.
En el pensar humano, los dos niveles del pensar pueden operar en cascada. En el
modelo dual de Kahneman-Tverksy, el nivel subconciente e intuitivo “rápidamente
propone respuestas intuitivas a los problemas de elección en la medida en que surgen”,
mientras que el nivel conciente, racional “supervisa la calidad de esas propuestas y
puede apoyarlas, corregirlas o reemplazarlas”[2].
El uso de la gramática formal para supervisar y corregir el uso instintivo del lenguaje
natural es un ejemplo familiar.
La lógica como el lenguaje de alto nivel
del pensamiento.
La imagen de la lógica que emerge de estas consideraciones es la de un lenguaje de alto
nivel para el pensamiento racional, controlado y conciente. En ese alto nivel, el
razonamiento lógico reduce metas a sub-metas, deriva las consecuencias de las
observaciones e infiere las consecuencias de las candidatas a acciones. Este
razonamiento se puede hacer cuando haga falta para actuar o se le puede hacer por
adelantado. Cuando se hace por adelantado, sirve para transformar representaciones de
alto nivel de metas y creencias en representaciones de bajo nivel más eficientes. En este
nivel inferior de representación, la conducta es instintiva, automática y subconciente.
Todas esta relaciones se puede apreciar en este figura:
[1] Como en el ejemplo de la diseñadora del piojo.
[2] “Representatividad revisada: Substitución de atributos en juicio intuitivo”-
“Representativeness revisited: Attributive substitution in intuitive judgement”, Daniel
Kahneman and Shane Frederick. In Heuristics of Intuitive Judgement: Extensions and
Applications, Cambridge University Press, 2002.
El Dilema del Prisionero
Imagine que, en su desesperación por enriquecerse tan rápido como sea posible, Ud
considera varias alternativas, infiere sus consecuencias más probables y decide que la
mejor es asaltar el banco más cercano. Persuade Ud a su mejor amigo, Keith, conocido
por su meticulosidad y atención a los detalles, de que le ayude a planear y ejecutar el
crimen. Gracias al esfuerzo coordinado, ambos tienen éxito en entrar al Banco durante
la noche, abrir la bóveda y huir con un buen millón de libras esterlinas (1.65 millones de
dólares al momento de escribir esto) como botín que guardan en el compartimiento de
las maletas de su vehículo.
Desafortunamente, tanto tiempo en la pobreza se reflejan en el estado de ese vehículo y
Ud es detenido por la policía que le reclama conducir de noche sin uno de los faros. Al
revisar su vehículo, los policias descubren el buen millón en la cajuela. Ud se declara
ignorante del origen del dinero, pero tanto Ud como su amigo son arrestados como
sospechosos de un robo.
Sin testigos y sin confesión alguna, la policia no puede condenarlos salvo por poseer
propiedad robada, que apenas implica una pena de 1 año. Sin embargo, si alguno
confiesa el crimen (en detrimento del otro) y el otro no confiesa, el primero obtiene la
libertad plena y el segundo es condenado a 6 años de cárcel. Si ambos confiesan,
entonces ambos compartirán la pena de 3 años de cárcel.
Este es un ejemplo con el clásico Dilema del Prisionero. En teoría de Juegos, el
problema de decidir entre esas alternativas de acción se presenta frecuentemente como
una tabla, en la que las filas y columnas representan las acciones de los agentes y las
celdas representan los resultados esperados. En este caso, la tabla es así:
Ud confiesa Ud no confiesa
Keith confiesa Ud se gana 3 años de cárcel
Keith se gana 3 años de cárcel
Ud se gana 6 años de cárcel
Keith se gana 0 años de cárcel
Su amigo no confiesa Ud se gana 0 años de cárcel
Keith se gana 6 años de cárcel
Ud se gana 1 año de cárcel
Keith se gana 1 año de cárcel
Si los dos prisioneros pudieran consultarse, se pondrían, obviamente (??) de acuerdo de
que la mejor opción para ambos es no confesar y evitar perjudicar al otro. Para evitar
esto, la policía los separa antes de que puedan hablarse. Así que cada uno debe decidir
que hacer sin saber lo que el otro hará.
La lógica del Dilema del Prisionero.
El Dilema del Prisionero tiene una representación natural en términos de las metas y
creencias del Prisionero.
Meta: Si me arrestan entonces confieso o no confieso.
Creencias: Me arrestan.
Un prisionero es condenado a 0 años de cárcel
si el prisionero confiesa
y el otro prisionero no confiesa.
Un prisionero es condenado a 6 años de cárcel
si el prisionero no confiesa
y el otro prisionero confiesa
Un prisionero es condenado a 3 años de cárcel
si el prisionero confiesa
y el otro prisionero también confiesa.
Un prisionero es condenado a 1 año de cárcel
si el prisionero no confiesa
y el otro prisionero tampoco confiesa
En todo se asume, desde luego, que los prisioneros creen lo que les dice la policía.
También se asume que ambos prisioneros saben que el mismo trato le ha sido ofrecido
al otro prisionero. Sin embargo, el análisis que hacemos al final de este capítulo puede
ser fácilmente modificado para cubrir otros casos.
La Lógica de los Juegos.
En general, cualquier juego de dos que se represente con una tabla puede también ser
representado con metas y creencias. Por ejemplo, la tabla:
Primer jugador hace A Primer jugador hace B
Segundo jugador hace
C
Primer jugador se gana AC
Segundo jugador se gana CA
Primer jugador se gana BC
Segundo jugador se gana CB
Segundo jugador hace
D
Primer jugador se gana AD
Segundo jugador se gana DA
Primer jugador se gana BD
Segundo jugador se gana DB
Puede ser representada con metas y creencias que, en el caso del primer jugador, son:
Meta: El primer jugador realiza acción A o El primer jugador realiza acción B.
Creencias: El primer jugador obtiene el resultado AC
si El primer jugador realiza la acción A
y el segundo jugador realiza la acción C.
El primer jugador obtiene el resultado BC
si El primer jugador realiza la acción B
y el segundo jugador realiza la acción C.
El primer jugador obtiene el resultado AD
si El primer jugador realiza la acción A
y el segundo jugador realiza la acción D.
El primer jugador obtiene el resultado BD
si El primer jugador realiza la acción B
y el segundo jugador realiza la acción D.
Noten que, de acuerdo a las circunstancias, un jugador puede saber o no los resultados
del otro agente.
¿Debo llevar el paragüas?
Antes de discutir como resolver el dilema del prisionero, es útil compararlo con el
aparentemente no relacionado problema de decidir si debo o nó llevar el paragüas al
salir de casa en la mañana.
Podemos representar el problema del paragüas como un juego contra la naturaleza:
Llevo el paragüas No llevo el paragüa.
Llueve Sigo seco.
Cargo el paragüas.
Me mojo.
No llueve. Sigo seco.
Cargo el paragüas.
Sigo seco.
Podemos modelar el juego desde el lado del agente, usando metas y creencias para el
agente[1]:
Meta: Si salgo entonces Llevo el paragüas o no llevo el paragüas
Creencias: Salgo.
Cargo el paragüas
si llevo el paragüas.
Sigo seco
si llevo el paragüas.
Sigo seco
si no llueve.
Me mojo
si no llevo el paragüas
y llueve.
Ud puede controlar si lleva o no el paragüas, pero no puede controlar si llueve o no
llueve. Lo mejor que puede hacer es estimar la probabilidad de que llueva.
Esto suena familiar. En el capítulo anterior, cuando consideraba si robar o no el banco,
escribí:
“Puede controlar si robas o no el banco. Pero no puedes controlar si vas a ser capturado
y condenado. No sólo son posibilidades lejos de tu control, sino que ni siquiera puedes
predecir su ocurrencia con certeza. Lo mejor que puedes hacer es estimar sus
probabilidades”
Es el mismo cuento. Para decidir entre acciones diferentes, Ud debe inferir sus
consecuencias, juzgar las utilidades y probabilidades de esas consecuencias, y escoger
la acción con la mayor utilidad esperada global.
Suponga que Ud juzga que el beneficio de seguir seco, si llueve, es significativamente
superior al costo del inconveniente de tener que cargar el paragüas, llueva o no
llueva.[2]. En ese caso, Ud debe llevar el paragüas, si Ud estima que la probabilidad de
que llueva es relativamente alta. Pero, Ud debe dejar el paragüas si Ud estima que la
probabilidad de que llueva es relativamente baja.
Aplicando Teoría de Decisiones al caso del Paraguas
Esta clase de “pensamiento”[3], que combina juicios de utilidad con estimados de
probabilidad es el tema de la llamada Teoría de Decisiones. De acuerdo a esos
postulados, uno debe sopesar la utilidad de cada resultado posible de un acción con su
probabilidad y luego sumar todas las utilidades alternativas, así sopesadas, para medir la
utilidad esperada total de esa acción. Al final, uno debe seleccionar la acción con la
mayor utilidad esperada[4].
En el caso de decidir si llevar o no el paraguas, suponga que Ud considera que:
El beneficio de permanecer seco es D.
El costo cargar el paraguas es C.
El costo de mojarse es W.
La probabilidad de que llueva es P,
y en consecuencia, de que no llueva es (1 – P).
entonces, la utilidad esperada de llevar el paraguas es igual a el beneficio de
permanecer seco menos el costo de cargar el paraguas
= D – C.
La utilidad esperada de no llevar el paraguas es
el beneficio de permanecer seco si no llueve
menos el costo de mojarse si llueve
= (1 – P) ·D – P·W.
Por ejemplo, si el beneficio de permanecer seco es igual a un barra de chocolate, el
costo de cargar el paragua es de 2 barras de chocolate y el costo de mojarse es de 9
barras de chocolate, entonces:
D = 1
C = 2
W = 9.
La utilidad esperada de llevar el paraguas es = – 1.
La utilidad esperada de no llevar el paraguas es = (1 – 10P).
Por lo tanto, si la probabilidad de que llueva es mayor que .20, entonces Ud debería
llevar su paraguas. Si es menor que .20, Ud no debería llevar su paraguas. Si es
exactamente del .20, entonces no hay diferencia, en barras de chocolate, si Ud lleva o no
el paraguas.
El uso de la Teoría de Decisiones es normativo, por cuanto postula una situación ideal
(caracterizada por estimado y cálculos utilitarios), que sólo podemos aproximar en la
realidad. En la vida real, tendemos a compilar esas decisiones rutinarias en reglas más
simples, representadas por metas y creencias:
Metas: Si salgo
y es probable que llueva ,
entonces cargo el paraguas.
Creencias: Es probable que llueva si hay nubes negras en el cielo.
Es probable que llueva si ha sido pronosticado por el canal del clima.
Resolviendo el Dilema del Prisionero.
Tal como en el caso anterior con el paraguas, en el que Ud decide cuando sale, Ud
puede controlar sus acciones, aún si se encuentra en el Dilema del Prisionero, pero no
puede controlar el mundo a su alrededor. En este caso, Ud no puede controlar las
acciones del otro prisionero. Puede, no obstante, tratar de predecirlas tan bien como sea
posible.
Suponga que Ud emplea el método de Teoría de Decisiones y considera que:
La utilidad de ganarse N años en la cárcel es de –N.
La probabilidad de que Keith confiese es de P,
y, por tanto, de que no confiese es (1 – P).
entonces, la utilidad esperada de que Ud confiese
es 3 si Keith confiesa,
y 0 si no lo hace
= –3·P + 0·(1 – P)
= –3·P.
La utilidad esperada de no confesar, para Ud,
es –6 se Keith confiesa,
y –1 si no lo hace
= –6·P – 1·(1 – P)
= –1 – 5·P.
Pero resulta que la utilidad de que Ud confiese es mayor que la de no confesar, –3·P >
–1 – 5·P, para todo P. Por lo tanto, sin importar cuál sea la probabilidad P de que Keith
confiese, Ud siempre estará en ventaja confesando.
Desafortunadamente, si Keith es tan sagaz como Ud y tiene las mismas creencias, metas
y utilidades suyas, entonces va a decidir, de la misma manera, confesar en contra suya,
en cuyo caso ambos tendrán, con toda seguridad, ganados sus 3 años en la cárcel.
Ambos estarían mejor olvidando todo este asunto de la Teoría de Decisiones,
arriesgándose y reusándose a confesar, en cuyo caso ambos obtendrían 1 año de cárcel.
Pero hay otra moraleja para esta historia – que lo malo no es la Teoría de Decisiones,
sino su propio juicio egoísta acerca de la utilidad:
Suponga que, en lugar de lo que ha hecho, Ud se preocupara (y ocupara) tanto por Keith
como por Ud mismo y considerara que:
La utilidad de que Ud gane N años en la cárcel y Keith M es – (N + M).
Entonces, la utilidad esperada de que Ud confiese
es –6 si Keith confiesa, y
es –6 si no lo hace
= –6·P – 6·(1 – P)
= –6.
La utilidad esperada de que Ud no confiese
es –6 si Keith confiesa, y
es –2 si no lo hace
= –6·P – 2·(1 – P)
= –2 – 4·P.
Pero, ahora, la utilidad de su confesión es menor o igual que la de no confesar, –6 ≤ –2
– 4·P, para cualquier valor de P. Por lo tanto, de nuevo sin importar el valor que se
asigne a la probabilidad P de que Keith confiese, no hay ninguna ventaja para Ud en el
confesar.
En este caso, además, si Keith tiene las mismas (generosas) creencias, metas y
utilidades suyas, entonces va a decidir de la misma manera, no confesar y ambos
tendrán asegurado el año de cárcel mínimo.
Pero preocuparse tanto por Keith como por Ud mismo podría sonar un poco ingenuo.
Para ser más realista, suponga que Ud quiere a Keith la mitad de lo que se quiere Ud
mismo:
La utilidad de que Ud gane N años en la cárcel y Keith M es – (N + 1/2·M).
Entonces, la utilidad esperada de que Ud confiese
es –4.5 si Keith confiesa, y
es –3 si no lo hace
= –4.5·P – 3·(1 – P)
= –3 –1.5·P.
La utilidad esperada de que Ud no confiese
es –6 si Keith confiesa, y
es –1.5 si no lo hace
= –6·P – 1.5·(1 – P)
= –1.5 – 4.5·P.
Note que –3 –1.5·P = –1.5 – 4.5·P cuando P = .5. Por lo tanto, si Ud cree que la
probabilidad P de que Keith confiese es menor de .5 entonces Ud no debe confesar .
Pero si Ud cree que la probabilidad es mayor que .5 entonces Ud debe confesar – quid
pro quo.
Tal como ocurre en el caso de decidir si cargo o no el paragua al salir, estos cálculos son
un ideal normativo, al que apenas nos podemos aproximar en la práctica. En la realidad,
tendemos a compilar esta decisiones en reglas de conducta, representadas con metas y
creencias. Por ejemplo:
Metas: Si me ofrecen un trato
y el trato me beneficia
y el trato daña a alguien más de lo que me beneficia
y la persona es mi amigo
entonces rechazo el trato.
Si me ofrecen un trato
y el trato me beneficia
y el trato daña a alguien más
y la persona NO es mi amigo
entonces acepto el trato.
Estas reglas no son muy gentiles, pero debe estar claro que pueden ser redefinidas, tanto
para cubrir otros casos como para distinguir más precisamente otras características del
trato en consideración.
Conclusiones
Hay tres conclusiones. La primera es acerca del Dilema propiamente – es que vale la
pena cooperar con otros agentes y simplemente tratar de optimizar sobre sus propios
intereses. Esta conclusión es, desde luego, bien conocida en la literatura del Dilema del
Prisionero. Lo que quizás no es tan conocido es hasta que punto los beneficios de la
cooperación pueden obtenerse simplemente al considerar en bienestar de otros en la
función de utilidad.
La segunda conclusión es más general – que para decidir entre distintos cursos de
acción necesitamos, no solamente juzgar costos y beneficios de nuestras acciones, sino
también estimar las probabilidades de circunstancias fuera de nuestro control. Hemos
visto eso antes, pero debe ser enfatizado una vez más, no sólo porque es importante,
sino porque ha sido ampliamente ignorado en la lógica tradicional. La estrategia
mostrada en este capítulo muestra una forma en que la lógica y la probabilidad se
pueden combinar.
La tercer conclusión es más sutil. Es que los cálculos en la Teoría de Decisiones son un
ideal normativo, que algunas veces aproximamos en la vida real usando reglas más
simples basadas en metas y creencias. Esta relación entre la Teoría de Decisiones “de
nivel superior” y las reglas de decisión “de nivel inferior” es como la relación entre
representaciones lógicas de alto nivel y asociaciones de entrada-salida de bajo nivel.
Hemos visto, en otros capítulos, que podemos compilar representaciones lógicas de
metas y creencias en asociaciones de entrada-salida y, algunas veces, decompilar esas
asociaciones en representaciones lógicas. Más aún, pareciera que el pensamiento
humano, ambos niveles de pensamiento pueden ocurrir en cascada. Las asociaciones de
entrada-salida proponen, con mucha eficiencia, salidas candidatas como respuestas a
ciertas entradas, mientras que el razonamiento con metas y creencias supervisa la
calidad de esas respuestas.
Parece haber una relación parecida entre Teoría de Decisiones y reglas de decisión. Las
reglas puede ser ejecutadas eficientemente, pero la Teoría de Decisión da resultados de
mejor calidad. Como en el caso de las representaciones de nivel superior e inferior, la
Teoría de Decisiones puede ser usada para supervisar la aplicación de las reglas y
proponer modificaciones de las reglas que deben ser cambias, bien porque hay fallado o
porque el mismo ambiente ha cambiado. En su libro, Pensando y Decidiendo, Baron
discute, en detalle, relaciones similares entre las formas descriptivas, prescriptivas y
normativas de tomar decisiones.
[1] Note que la representación en términos de creencias es más informativa que la
reprseentación del juego, puesto que indica con más precisión que la tabla, las
condiciones de las que depende el resultado de cada acción. Por ejemplo, la
representación con creencias indica que permanecer seco depende solamente de cargar
el paraguas y no depende de que llueva.
[2] En general, se asume que podemos cuantificar los beneficios y costos en las mismas
unidades, por tanto utilidad = beneficios – costos.
[3] De acuerdo Baron, en su “pensar y decidir”, nuestro “pensar” no es tal, sino un
“decidir” entre opciones diferentes. Es un asunto interesante hasta que punto “decidir”
podría involucrar “pensar” en un nivel diferente (quizás un meta-nivel). Habrá más de
esto más adelante.
[4] En términos matemáticos, si una acción tiene n resultados alternativos, con
utilidades u1, u2, ..., un que tienen, respectivamente, probabilidades p1, p2, ..., pn
entonces la utilidad esperada de la acción es p1·u1 + p2·u2 + ... + pn·un.
Actualizado por última vez: Mayo 2007
El cambiante mundo
He propuesto que el propósito de la lógica sea el de ayudar a la gente a sobrevivir y
prosperar en el mundo. La lógica favorece tal tarea al proveer al agente con un medio
para construir representaciones simbólicas del mundo y con un medio para procesar esas
representaciones y razonar acerca del mundo. Podemos imaginar esta relación entre
lógica y el mundo de la siguiente manera:
Sin embargo, aún no hemos considerado la naturaleza de esta relación en detalle. En
particular, hemos obviado cualquier consideración acerca de la forma en que las
representaciones lógicas se conectan con la estructura del mundo.
Cabrían dos tipos de consideraciones: Cuál es la relación entre la lógica y los estados
estáticos del mundo y cuál es la relación entre la lógica y el cambio. Vamos a enfrentar
esas consideraciones a continuación:
Las Estructuras del Mundo (o el Universo)
La relación entre la lógica y el mundo puede ser vista desde dos puntos de vista. Desde
el punto de vista del mundo, las oraciones de la lógica representan ciertas características
de ese mundo. Desde la perspectiva de la lógica, el mundo le otorga su significado a las
oraciones. Este segundo punto de vista es conocido también como “semántica”.
Aún cuando un agente real sólo debe preocuparse por el mundo real, es conveniente
considerar otros mundos posibles, incluso mundos imaginarios y artificiales, como el
mundo en la historia de la zorra y el cuervo. Ambos tipos de mundo, tanto el real como
los posibles, pueden ser entendidos como Estructuras del Mundo. Una estructura del
mundo es simplemente una colección de individuos y de relaciones entre ellos. Las
relaciones son también denominadas “hechos”. En la lógica tradicional, “las estructuras
del mundo” son normalmente conocidas como “interpretaciones”, “modelos” o, en otras
ocasiones, “mundos posibles”. Por simplicidad, las propiedades de los individuos son
consideradas como relaciones.
La lógica tradicional tiene una semántica muy simple, en la que tan sólo se debe
establecer si las oraciones son o no son verdaderas o falsas en la estructura del mundo.
La oraciones que son verdaderas son, normalmente, más útiles para el agente que las
oraciones que son falsas.
Una estructura del mundo generalmente se corresponde con un sólo estado, estático, del
mundo. Por ejemplo:
En la historia de la Zorra y el Cuervo, la Zorra, el Cuervo, el queso, el árbol, el área del
suelo bajo el árbol y el espacio entre el Cuervo y el suelo son todos individuos; por otro
lado, algo que (sos)tiene algo es una relación entre dos individuos. La oración “El
Cuervo tiene el queso” es cierta en la estructura del mundo al comienzo de la historia y
falsa en la estructura del mundo al final del la historia.
Una oración atómica es cierta en una estructura del mundo si la relación que expresa se
cumple en la estructura del mundo. De lo contrario es falsa.
La forma más simple de representar la estructura del mundo en términos lógicos es
representarla como un conjunto de oraciones atómicas que son ciertas en la estructura –
en este ejemplo, podríamos representar la estructura del mundo al comienzo de la
historia con las siguientes oraciones atómicas:
El cuervo tiene el queso.
El cuervo está en el árbol.
El árbol está suspendido en el aire.
El aire está arriba del suelo.
El árbol está arriba del suelo.
La zorra está en el suelo.
La diferencia entre esas oraciones atómicas y la estructura del mundo que ellos
representan es que en la estructura del mundo, los individuos y las relaciones entre ellos
tienen una especie de existencia que es independiente del lenguaje. Las oraciones
atómicas son, por otro lado, meras expresiones simbólicas que representan tales
relaciones externas. En particular, frases como “el Cuervo”, “el queso”, “el árbol”, etc
son nombres de individuos y “tiene”, “está en”, etc son nombres de relaciones entre
individuos.
El atractivo de la lógica como representación del mundo proviene, esencialmente, de su
habilidad para representar regularidades entre las estructuras del mundo por medio de
oraciones no-atómicas. Por ejemplo, en el ejemplo anterior:
Un objeto está sobre otro
si El primer objeto está arriba de un tercer objeto
y el tercer objeto está arriba del segundo.
El valor de verdad de las oraciones no-atómicas se define a partir de los valores de
verdad de oraciones más simples – por ejemplo, por medio de “meta-oraciones” como:
Una oración con la forma “conclusión si condiciones” es cierta
si “condiciones” es cierta y “conclusión” es cierta
o “condiciones” no es cierta.
Una oración de la forma “todo tiene propiedad P” es cierta
si para cada cosa P en el mundo, “T tiene propiedad P” es cierta.
Estructuras del mundo dinámicas
Las estructuras del mundo en la lógica tradicional son estáticas, puesto que representan
un sólo estado (estático) del mundo. Una forma natural de entender el cambio es ver las
acciones y otros eventos como los causantes del cambio de estado de una estructura
estática del mundo a otra. Por ejemplo:
Esta visión del cambio es la base de la semántica de la lógica modal.
En la lógica modal, las oraciones reciben un valor de verdad relativo a una estructura
estática del mundo, imbuida en una colección de estructuras del mundo conectadas por
eventos que transforman el mundo. Las expresiones tales como “en el pasado”, “en el
futuro”, “después”, “desde” y “hasta” son tratadas como operadores modales, que se
convierten así en conectores lógicos como “y”, “o”, “si”, “no” y “todos”. Los valores de
verdad de las oraciones que contienen tales operadores modales se obtienen a partir de
los valores de verdad de las oraciones más simples – Por ejemplo, por medio de meta-
oraciones tales como:
Una oración con la forma “en el futuro P” es cierta en una estructura del mundo S si hay
una estructura del mundo S' que puede ser alcanzada desde S a través de una secuencia
de eventos que transforman los estados intermedios y la oración “P” es cierta en S'.
Por ejemplo, en la lógica modal, es posible escribir la oración:
“En el futuro el cuervo tiene el queso.”
Esta oración es cierta en la estructura del mundo al principio de la historia y falsa en la
estructura del mundo al final de la historia (suponiendo que el mundo se acaba luego de
que la Zorra toma el queso).
Un objeción contra la lógica modal es que su semántica, basada en la validez de
oraciones sobre una estructura del mundo en una colección de estructuras del mundo
conectadas por eventos que transforman estados, es demasiado complicada. Una
alternativa, que resuelve la objeción, es simplificar la semántica e incrementar el poder
expresivo del lenguaje lógico tratando los estados del mundo como individuos. Tratar
algo como un individuo, como si existiera, es reificarlo (NT: cosificarlo, hacerlo cosa)
y el proceso correspondiente es llamado reificación.
La ventaja de la reificación es que nos hace más fácil el hablar de las cosas (N.T. Es
decir, tendremos cosas de qué hablar). La desventaja es que parece molestar mucho a
algunas personas. Parece estar bien eso de hablar de objetos materiales como la zorra, el
cuervo y el queso, como individuos. Pero les parece más dificil el hablar acerca de
estados del mundo y otros objetos abstractos como si ellos también fuesen individuos
comunes.
El cálculo de situaciones
El cálculo de situaciones[1], que fuera desarrollado por McCarthy y Hayes en la
Inteligencia Artificial, comparte con la lógica modal el mismo método de ver el cambio
como la transformación de un estado del mundo en otro pero, a diferencia de esa lógica,
el cálculo reifica los estados como individuos. Como consecuencia, las estructuras del
mundo son dinámicas, puesto que incluyen las transiciones de estado como relaciones
entre estados.
Por ejemplo, con el cálculo de situaciones, en la historia de la Zorra y el Cuervo, hay
una sola estructura del mundo que contiene, además de los individuos ordinarios,
individuos que son estados globales. Es posible expresar tales oraciones así:
“El cuervo tiene el queso en el estado al principio de la historia”.
“El cuervo tiene el queso en el estado que es
luego de que la zorra toma el queso, que es
luego de que el queso termina de caer, que es
luego de que el queso comienza a caer, que es
luego de que el cuervo cante, que es
luego de que la zorra adula al cuervo, que es
luego del estado inicial de la historia”.
La primera de estas dos oraciones es cierta y la segunda es falsa en la estructura del
mundo del cálculo de situaciones para nuestro ejemplo de la historia de la Zorra y el
Cuervo.
Reificar los estados del mundo como individuos hace posible representar y razonar
acerca de los efectos de las acciones en los estados. Si además reificamos los “hechos”,
entonces esta representación puede ser formulada como dos axiomas en el cálculo de
situaciones:
Un hecho se cumple en el estado que es luego de una acción
si el hecho es iniciado por la acción
y la acción es posible en el estado antes de la acción.
Un hecho se cumple en el estado que es luego de una acción
si el estado se cumplía en el estado del mundo que es antes de la acción
y la acción es posible en el estado antes de la acción
y el hecho no es terminado por la acción.
Nuestra versión original de la historia de la Zorra y el Cuervo puede ser reformulada
para el cálculo de situaciones así (luego de simplificar el primer axioma y
particularizarlo para este caso especial):
Un animal tiene un objeto en el estado del mundo que es luego de que animal tome
el objeto
si el animal está cerca del objeto
en el estado del mundo que es antes de que el animal tome el objeto
Estoy cerca del queso en el estado del mundo que es luego de que el cuervo canta
si el cuervo tiene el queso
en el estado del mundo que es antes de que el cuervo canta
El cuervo canta en el estado de el mundo que es después de que yo adule al cuervo.
En teoría, un agente, tal como la Zorra, podría incluir tales axiomas entre sus creencias,
para planificar sus acciones, inferir sus consecuencias e inferir las consecuencias de las
acciones de otros agentes. En la práctica, sin embargo, el uso del segundo axioma
(llamado el “axioma marco”), para razonar acerca de los hechos que no son afectados
por las acciones, es explosivo computacionalmente. Este problema, conocido como el
“problema del marco” (The frame problem) es, con mucha frecuencia, considerado
como un problema inherente al uso de la lógica para razonar acerca del cambio.
Podemos decir que no es la lógica la fuente del problema, sino la visión del cambio
plasmada en el cálculo de situaciones, que comparte con la lógica modal y que resulta
demasiado global. Cada acción, sin importar que tal aislada sea su ocurrencia, se
considera que cambia el estado de todo el mundo. Peor que eso, para razonar acerca del
estado del mundo luego de realizar una secuencia de acciones, es necesario conocer
todas las otras acciones que ocurren en todo el mundo en el intermedio.
Así, para razonar acerca del estado del mundo que es luego de que la zorra adula al
cuervo, el cuervo canta, el queso cae y la zorra toma el queso, es necesario conocer y
razonar acerca de todo lo que ha ocurrido en todas partes del mundo entre el inicio y en
fin de la historia. Este ejercicio de pensamiento no es muy difícil en el mundo
imaginario de la zorra y el cuervo, pero es prácticamente imposible para un agente real
que vive en el mundo real.
Una visión del cambio orientada a los eventos
Una alternativa es abandonar la visión de que la acciones transforman estados globales
del mundo, reemplazándola con la visión de que las acciones y otros eventos pueden
ocurrir, incluso simultáneamente, en diferentes partes del mundo, en forma
independiente y sin afectar otras partes del mundo. En este método, el foco está sobre la
ocurrencia de los eventos y en el efecto de los eventos sobre los estados de cosas
locales.
Los eventos se dice que incluyen tanto acciones ordinarias (que son realizadas por
agentes) como otro tipo de eventos (como el aterrizar del queso en el suelo) que pueden
ser entendidos metafóricamente como acciones realizadas por objetos inanimados.
Por simplicidad, asumimos que los eventos ocurren simultáneamente. Para ello, un
evento con duración puede ser descompuesto en un evento instantáneo que lo comienza,
seguido por un estado de cambio continuo, seguido de por otro evento instantáneo que
lo termina.
Así, la caida del queso al suelo puede ser descompuesta en el evento en el que el queso
comienza a caer, que inicia el estado durante el cual el queso está cayendo, que es
terminado por el evento instantáneo en el que el queso aterriza en el suelo.
Los eventos inician y terminan relaciones entre individuos. Estas relaciones, junto con
los periodos para los que se cumplen, pueden ser considerados como estados locales.
Podemos ilustrar tal estado local y los eventos que lo inician y terminan así:
En el cuento de la Zorra y el Cuervo, podemos ilustrar el efecto de los eventos sobre el
estado del queso así:
Un cálculo de eventos simplificado
Aún cuando podemos representar las estructuras del mundo con oraciones atómicas, la
lógica nos permite hacerlo en forma todavía más compacta por medio de oraciones no-
atómicas. En particular, podemos obtener información acerca de estados locales a partir
de información acerca de la ocurrencia de eventos, por medio del siguiente axioma el
cálculo de eventos[2]:
Un hecho se cumple en un momento
si un evento ocurrió antes
y ese evento inició el hecho
y no hay otro evento
que ocurra luego del evento iniciador, antes del momento y
que termine el hecho.
Puesto que este axioma usa información acerca de la ocurrencia de eventos para
“calcular” información acerca de estados locales, le llamamos el “cálculo de eventos”.
El cálculo de eventos puede ser usado por un agente, al igual que el cálculo de
situaciones, para planificar sus acciones, inferir sus consecuencias e inferir las
consecuencias de las acciones de otros agentes. Puesto que requiere solamente
conocimiento local sobre el efecto de las acciones, es potencialmente más práctico que
el cálculo de situaciones.
Para aplicar el cálculo de eventos, en la práctica, necesitamos aumentarlo con otros
axiomas que definan la iniciación, terminación y el orden temporal de las cosas y
eventos. En el caso del cambio de ubicación del queso en la historia de la Zorra y el
Cuervo, necesitamos información acerca de eventos que efecten esa ubicación – por
ejemplo:
El queso cae en el momento 3.
El queso aterriza en el momento 5.
La zorra toma el queso en el momento 8.
Necesitamos saber cuáles estados son iniciados y terminados por esos eventos:
La caída de un objeto inicia el hecho de que un objeto está suspendido en el aire.
El aterrizaje de un objeto inicia el hecho de que el objeto está en el suelo.
El que el agente tome un objeto inicia el hecho de que el agente tenga el objeto.
Necesitamos también alguna explicación del hecho de que el cuervo tiene el queso al
comienzo de la historia. Esto se puede obtener, por ejemplo, suponiendo un evento
adicional, tal como:
El cuervo toma el queso en el momento 0.
Finalmente, necesitamos establecer las relaciones temporales entre momentos y eventos.
Puesto que, en este ejemplo, hemos usado convenientemente números para referirnos a
los momentos, podemos establecer esas relaciones con aritmética simple. Sin embargo,
debido a que el axioma de cálculo de eventos es muy vago acerca del tiempo, podemos
usar cualquier sistema para medirlo (al tiempo), siempre que podamos precisar cuando
es que un evento ocurre antes que otro y cuando un momento es después de cierto
evento. El que usemos números, fechas o cantidades horarias no tiene mayor
importancia.
Registrando el tiempo
Lo importante es registrar el tiempo para garantizar que Ud hace lo que debe hacer antes
de que sea muy tarde. Así, si Ud está hambriento, entonces necesita conseguir comida y
comerla antes de se desmaye por falta de energía. Si un vehículo se dirige hacia Ud,
entonces Ud debe apartarse antes de que lo arrolle. Si Ud tiene una cita a las 9:00 en el
trabajo, entonces Ud debe levantarse, lavarse, comer, vestirse, viajar al sitio y llegar
antes de las 9:00.
Para hacer todo a tiempo, necesita alguna clase de reloj interno, tanto para marcar los
eventos observados externamente, como para comparar el tiempo actual con los tiempos
prefijados para cualquier acción en el futuro derivada por su pensar. Esto implica más
complicaciones del ciclo del agente:
Para ciclar,
observe el mundo, registre cualquier observación junto con su momento de observación
piense,
decida que accciones realizar, escogiendo sólo acciones que no han excedido su límite.
actúe, cicle de nuevo.
Considere, por ejemplo, el problema de la Zorra cuando le da hambre. Cuando su
cuerpo le avisa que está hambrienta, debe estimar cuanto tiempo pasará sin comer y
derivar las metas de conseguir comida y comerla antes de que sea muy tarde. Una forma
de hacer esto es por medio de una meta de mantenimiento, con una representación
explícita del tiempo:
Si Yo estoy hambriento en Thambre
y Yo me desmayaré a las Tcolapso si Yo no como.
entonces Yo ob-tengo comida en Tcomida
y Yo como la comida a las Tcomida
y Tcomida es posterior a Thambre pero anterior a Tcolapso.
También necesita lidiar con cualquier ataque de algún cazador local:
Si unos cazadores me atacan en el momento Tataque
y Me atraparían a las T atrapan si Yo no huyo
entonces Yo huyo de los cazadores a las Thuida
y Thuida es posterior a Tataque pero anterior a Tatrapan.
Suponga que la zorra está hambrienta y siendo atacada por el cazador al mismo tiempo.
Entonces la zorra necesita hacer algunos cálculos mentales rápidos, para estimar cuanto
tiempo tiene para encontrar comida y cuanto para huir del cazador. Necesita calcular la
probabilidad y las utilidades de dos acciones diferentes, y programarlas para maximar
su utilidad esperada global. Si la zorra ha hecho sus cuentas bien y tiene la fortuna de su
lado, tendrá suficiente tiempo para satisfacer su hambre y escapar del cazador. De lo
contrario morirá, bien de hambre o bien por culpa del cazador.
Un critíco, sin embargo, podría objetar que este tipo de razonamiento es un ideal
normativo, más apropiado para un robot que para un ser biológico inteligente. Una
persona común, en particular, simplemente le daría mayor prioridad a escapar del ataque
que a satisfacer su hambre. Las reglas de mantenimiento de la persona sería “reglas
heurísticas” que se parecerían a:
Si Yo estoy hambriento en el momento Thambre
entonces Yo ob-tengo comida en el tiempo Tcomida
y Yo como la comida en el tiempo Tcomida
y Tcomida es tan pronto como se puede luego de Thambre.
Si alguien me ataca a las Tataque
entonces Yo huyo de los atacantes a las Thuida
y Thuida es inmediatamente después de Tataque.
De esta forma, suponiendo que Ud es la persona hambrienta y atacada al mismo tiempo,
digamos en el momento 1, sus metas lucirían así:
Yo ob-tengo comida en el tiempo Tcomida
y Yo como la comida en el tiempo Tcomida
y Yo huyo de los atacantes a las Thuida
y Thuida es inmediatamente después de 1 .
y Tcomida es tan pronto como se puede luego de 1 .
Entonces será fácil para Ud decidir, no sólo que Thuida debe ser antes que Tcomida sino
que Thuida debe ser el siguiente momento inmediato.
Sería lo mismo si Ud es atacado luego de darle hambre, pero antes de que pudiera
conseguir comida. Huiría inmediatamente y volvería a buscar comida luego si ha
logrado escapar del ataque.
Las reglas heurísticas dan un resultado rápido y fácil, que no siempre es óptimo. Si Ud
estuviera huyendo de un ataque y notara una pieza de queso en el suelo, un cálculo
normativo podría decirle que tiene suficiente tiempo para recoger el queso y para
continuar su escape. Pero las reglas heurísticas, que están diseñadas para lidiar con los
casos más comunes, probablemente no reconozcan esa posibilidad.
La relación entre cálculos normativos y reglas heurísticas es la misma que la relación
entre pensamiento racional y pensamiento intuitivo que se discutió en el capítulo sobre
niveles de conciencia.
Conclusión
El mundo es un lugar difícil que no se queda quieto. En el momento en el que Ud
termina de entender un problema, surge otro que es todavía más urgente. Le marea y le
mantiene en puntillas (o de puntitas).
Hacemos lo mejor que podemos para lidiar con el mundo formando representaciones
mentales. Pero no nos lo pone fácil. Borra el pasado y esconde el futuro, mostrando
apenas lo que es ahora y aquí.
En la lucha por sobrevivir y prosperar, usamos nuestra memoria de las observaciones
pasadas para generar creencias hipotéticas, explicar el pasado y precedir el futuro.
Comparamos esas prediciones con la realidad y revisamos nuestras creencias como haga
falta y si hace falta. Este proceso de formar hipótesis y revisar las creencias ocurre
aparte del ciclo del agente, en momentos en el que el mundo desacelera lo suficiente
como para que tomemos aliento. Este es uno de los temas principales que tenemos
pendiente todavía para discutir en el resto del libro.
Ultima modificación: Mayo 2007
[1] situación es simplemente otro nombre para estado global. .
[2] Es conveniente adoptar la convención de que un hecho se cumple justo en el
momento luego de que ocurre un evento que lo inicie, pero no en el momento del evento
que lo termina.
Lógica y objetos.
¿Cual es la diferencia entre la zorra y el cuervo, por un lado, y el queso por el otro?.
Desde luego, la zorra y el cuervo tienen “anima” y el queso es inanimado. Las cosas
animadas incluyen a los agentes, quienes observan cambios en el mundo y realizan los
suyos propios en el mismo mundo. Las cosas inanimadas son completamente pasivas.
Pero si Ud es un Conductista a ultranza, Ud creerá otra cosa. Quizás Ud cree que la
zorra, el cuervo y el queso son simplemente objetos, que pueden distinguirse unos de
los otros por sus diversas conductas de entradas y salidas.
Si la zorra ve al cuervo y el cuervo tiene comida en su boca entonces la zorra alaba al
cuervo.
Si el cuervo es alabado por la zorra
entonces el cuervo canta.
Si el queso está en el pico del cuervo y el cuervo canta
entonces el queso cae al suelo.
Si el queso está junto a la zorra
entonces la zorra toma el queso.
Ese Conductismo Extremo fue la moda en Psicología a mediados del siglo XX. Pues
bien, en Computación, ha sido moda también, en los últimos 25 años, con la forma de la
Orientación a los Objetos, OO.
Es fácil burlarse de los conductistas fundamentalistas del pasado. Pero no es tan fácil
confrontar a los Computistas e Ingenieros de Sistemas actuales que defienden la llamada
Orientación a los Objetos. La orientación a los objetos domina en cada aspecto de la
computación moderna: desde el modelado de sistemas, pasando por la especificación de
requerimientos y hasta el diseño e implementación de software y hardware.
Por un tiempo, durante los 1980s, parecía como si la Lógica Computacional podría
ocupar el papel central que ocupa la orientación a los objetos en la computación
moderna. Desafortunadamente, para la lógica, la orientación a los objetos ganó la
carrera.
Si llegamos a entender que es lo que hace la OO tan atractiva en la computación de hoy,
entonces podríamos aplicar las lecciones que aprendamos para mejorar la lógica
computacional, no sólo para efectos en Computación, sino también quizás para efectos
en el razonamiento humano.
Los objetos como individuos del cambiante mundo
En la forma en que la OO ve las cosas, el mundo consiste de objetos encapsulados, que
interactúan con los otros a través de su conducta de entrada-salida, previamente
declarada a los demás. No hay diferencia, en este aspecto, entre un agente inteligente y
un objeto inanimado. Un agente es simplemente otro objeto imbuido en el mundo. La
orientación a los objetos nos voltea la imagen anterior en la que mostramos la relación
entre un agente y su mundo:
En esta imagen, los objetos corresponden a los individuos desde la perspectiva lógica
que hemos venido construyendo. Se trata de entidades semánticas, antes que de
entidades lingüísticas (o simbólicas). Sin embargo, mientas que en la lógica tradicional,
la relaciones estáticas entre los individuos son el tema principal y la conducta dinámica
es apenas un asunto secundario, en la orientación a los objetos todo es completamente al
revés – la conducta es lo primero y las relaciones estáticas son secundarias y muy poco
importantes en comparación.
Con la lógica imbuida en el componente pensante de un agente inteligente, el cambio se
resuelve tanto al nivel semántico como al nivel lingüístico-simbólico. En el nivel
semántico, el cambio es resuelto a través de la dinámica del ciclo de observación-
pensamiento-acción del agente. En el nivel lingüístico-simbólico, el cambio es
representado en el lenguaje mental del agente que describe metas y creencias, usando
bien la lógica modal, bien el cálculo de situaciones, bien el cálculo de eventos.
Con los objetos, el cambio es resuelto esencialmente en el nivel semántico. Los objetos,
tanto animados como inanimados, interactúan unos con otros, enviando y recibiendo
mensajes. Los mensajes recibidos corresponden a las observaciones que recibe el agente
de su ambiente. Los mensajes enviados corresponden a las acciones que el agente
realiza en el mundo.
Entre los objetos, el cambio puede ocurrir simultáneamente en diferentes partes del
mundo, así como en forma independiente y sin afectar otras partes del mundo. El
cálculo de eventos ve el mundo de una forma parecida. Pero mientras en el cálculo de
eventos esa perspectiva es meramente simbólica – para hablar del cambio sin tener que
realizarlo, en los sistemas orientados a objetos, esos cambios ocurren de hecho.
Al tomar en cuenta la naturaleza dinámica de los objetos, nuestra imagen orientada a los
objetos del mundo debería ser más o menos así:
Por ejemplo, en la versión orientada a los objetos de la historia de la zorra, el cuervo y
el queso, las diversas acciones y eventos corresponden a mensajes entre los objetos. Los
candidatos naturales para actuar como objetos que envían y reciben esos mensajes son
los mismos personajes: la zorra, el cuervo y el queso.
Los defensores naturales de la orientación a los objetos la consideran una forma natural
de ver tanto al mundo natural como a los mundos artificiales por construir. Los
ingenieros de sistemas, en particular, construyen sistemas complejos combinando
objetos que procuran una meta global. Normalmente, los objetos componentes, que
constituyen el sistema, son sub-sistemas ellos mismos, tal como en el caso de los
termostatos, impresoras, computadores, vehículos y aeroplanos, que se componen, a su
vez, de objetos más simples.
Encapsulamiento
Un objeto consiste de un estado local, que es una colección de valores de atributos, y
una colección de métodos, que los objetos usan para responder a mensajes o para
calcular valores de los atributos. Métodos y atributos quedan encapsulados dentro del
objeto, ocultos para otros objetos.
El encapsulamiento de los métodos de un objeto es una propiedad inherente del mundo
natural, puesto que no hay objeto que pueda conocer completamente todo lo que pasa
dentro de otro objeto. En teoría, si Ud pudiera ver dentro de otro objeto, podría
descubrir que es simplemente igual que Ud. Todo objeto – oso, árbol, río, montaña o
piedra – podría tener un espíritu, que conforma su estado mental interno. Por otro lado,
podría Ud descubrir que ningún otro objeto, aparte de Ud mismo, tiene algún tipo de
estado interno.
El encapsulamiento de métodos sirve una función diferente en los mundos artificiales.
Reduce la complejidad en la construcción de sistemas complejos a partir de objetos
componentes, puesto que el ingeniero se concentra solamente en la conducta externa de
los componentes. Más aún, si uno de los componentes de un sistema que funciona se
deteriora o se torna obsoleto, puede ser reemplazado por otro componente que tenga la
misma conducta externa, sin afectar la conducta global del sistema.
En orientación por objetos no se distingue entre el estado interno y externo de los
objetos. Todos los valores de los atributos de un objeto están encapsulados dentro del
objeto. La única manera de conocer el valor de un atributo de un objeto es enviando un
mensaje al objeto pidiéndole el valor o recibiendo un mensaje del objeto que dice el
valor. Voy a explicar, más adelante, que esto es demasiado extremo.
Sin embargo, en otro aspecto, la OO es menos extrema que el conductismo extremo.
Cuando un ingeniero construye un sistema orientado a los objetos, el ingeniero necesita
adentrarse dentro del sistema, tanto para combinar los componentes pre-existentes como
para crear nuevos objetos.
Métodos
Para crear un objeto, los ingenieros necesitan iniciar (inicializar) los valores de sus
atributos y codificar sus métodos. Los valores de los atributos en el estado inicial
pueden ser dados expresamente en el momento de la creación o pueden ser obtenidos
por medio de métodos.
Los lenguajes OO, usados comúnmente para implementar métodos, son lenguajes
típicos de programación procedimental, cuya sintaxis es herencia de los lenguajes de
programación anteriores a la OO. A diferencia de la lógica, esos lenguajes no se pueden
leer declarativamente, puesto que no hacen ningún esfuerzo por representar el mundo a
su alrededor.
No obstante, aún cuando los métodos sean implementados en lenguajes de
programación procedimental, es natural plantear sus especificaciones en forma lógica.
Estas especificaciones tienen la forma de reglas de condición-acción en modo
declarativo:
Si un objeto recibe un mensaje con la forma R
entonces el objeto envía un mensaje con la forma S.
Por ejemplo,
Si la zorra recibe un mensaje que dice que el cuervo tiene el queso en la boca,
entonces la zorra envía un mensaje de alabanza al cuervo.
Si el cuervo recibe un mensaje de alabanza de la zorra,
entonces el cuervo envía un mensaje de canto.
Si el queso recibe un mensaje de canto del cuervo,
entonces el queso envía un mensaje de caída al suelo.
(Nota de Ernesto Ponsot:
Si el suelo recibe mensaje de caída del queso
entonces el suelo envía mensaje a la zorra de que está junto al queso.)
Si el queso envía un mensaje de que está junto a la zorra,
entonces la zorra envía un mensaje de que ella toma el queso.
Los métodos que implementan estas especificaciones dentro de un objeto se pueden
programar de muchas maneras. También pueden ser implementados, como veremos más
tarde y como debiera ser obvio para los lectores, por medio de metas y creencias en
forma lógica.
Clases
La OO se enorgullece de facilitarle al ingeniero la creación de nuevos objetos a través
de la instanciación de clases más generales de objetos, que le heredan a los nuevos
objetos sus métodos originales.
Por ejemplo, un ingeniero podría crear una nueva zorra creando una instancia de la clase
general de todos las zorras. La clase de las zorras podría tener métodos generales para
mensajes tales como la visión de otro animal con comida y la visión de la comida en su
poder. Podría, incluso, tener valores por omisión para atributos como el color de su piel
y la forma de su cola. Una nueva clase de zorra podría, entonces, heredar esos métodos
y valores de atributos tal como estén o con algunas modificaciones, quizás luego de
agregar ciertos métodos y atributos únicos para ese tipo de zorra.
Las clases se organizan en jerarquías taxonómicas. Por ejemplo, la clase de todos los
zorros podría heredar la mayoría de sus métodos y atributos de la clase de todos los
animales. La clase de todos los animales podría, a su vez, heredar de la clase de todos
los seres animados. La clase de los seres animados podría heredar de la clase de todos
los objetos materiales y, esta, finalmente, de la clase de todas las cosas.
Cambio de estado
Objetos y clases tienen diferentes tipos de existencia. Los objetos son individuos
concretos que, típicamente, existen y sufren cambios de estados. Las clases son
individuos abstractos ajenos al tiempo.
Por ejemplo, en la historia de la zorra y el cuervo, el queso cambia en respuesta a los
eventos locales que ocurren a su alrededor:
Estos cambios de estado son generados por métodos heredados de la clase de todos los
quesos, algunos de los cuáles, como la tendencia a estar en el aire luego de comenzar a
caer, son heredados a su vez de la clase de todas las cosas materiales. Sin embargo, las
clases en sí mismas no cambian de estado de la misma manera.
Los sistemas OO son entidades semánticas antes que simbólicas. Como consecuencia,
los objetos no tienen que tener memoria de su pasado. Cuando un objeto cambia de
estado, el estado suele limpiar el estado anterior reemplazándolo con uno nuevo.
Por su parte, las representaciones lógicas del cambio de estado lo describen sin, de
hecho, realizarlo. Por lo tanto, además de registrar el estado actual de un objeto, pueden
registrar los estados anteriores y predecir y explorar los futuros.
Reconciliando la lógica con los objetos
Hay una forma obvia de reconciliar la lógica con los objetos: usando lógica para
implementar los métodos asociados con los objetos y clases de objetos. Una
implementación típica podría incluir metas de mantenimiento y creencias, que
terminarían reduciendo metas a sub-metas con mensajes a otros objetos entre ellas. Por
ejemplo:
Meta: Si recibo un mensaje con la forma R
entonces resuelvo la meta G.
Creencias: G' si condiciones.
…
G si otras condiciones y Yo envío un mensaje con la forma S.
...
etc.
Crear un nuevo objeto instanciando una clase se convierte entonces en una forma de
instanciación lógica, reemplazando términos concretos (tales como Yo) por términos
abstractos (tales como “cualquier zorra”), quizás luego de agregarle métodos
especializados y asignarle valores particulares a algunos atributos del objeto.
La lógica, usada para implementar los métodos de esa manera, puede ampliar el alcance
de los sistemas orientados a objetos. Algunos objetos inteligentes podrían usar lógica,
no solamente para reaccionar a los mensajes que reciben, reduciendo metas a sub-metas,
sino también para representar el mundo, generando cursos alternativos de acción y
derivando sus consecuencias probables. Otros, quizás menos inteligentes podrían
también usar la lógica como lenguaje de implementación de alto nivel. En procura de
eficiencia, esas implementaciones pueden ser compiladas a más bajo nivel, incluso en
hardware. Por otro lado, estas implementaciones de bajo nivel podrían ser decompiladas
en su forma lógica, para analizar la conducta de los objetos sólos o en grupo y
mejorarla.
El combinar lógica con orientación por objetos puede extender nuestro modelo de
agente basado en lógica. Más aún, la combinación ofrece un contexto para extender
agentes aislados a sistemas multi-agentes, al imbuir a los agentes en una estructura
semántica compartida. Los diversos objetos en esta estructura pueden tener diversos
grados de inteligencia y diversos grados de actividad.
La estructura semántica de la OO es tal que los objetos pueden cambiar de estado
concurrentemente en diferentes sitios del mundo, con total independencia y sin afectar a
los demás. Estos cambios pueden ocurrir destructivamente, sin dejar ningún registro del
pasado. Sin embargo, aparte de esos cambios que ocurren externamente en la estructura
semántica, un agente inteligente puede usar lógica internamente para representar los
cambios antes de que ocurran. Estas representaciones internas no son destructivas como
las externas que acaban con los estados anteriores de mundo.
Para alcanzar esos beneficios, no tenemos que abandonar la distinción que se hace en la
lógica entre estructuras del mundo y sus representaciones simbólicas – tampoco la
visión de que las estructuras del mundo consisten de individuos, quizás con eventos y
con relaciones entre individuos. Por otro lado, puede que tengamos que dejar de lado la
versión extremista de la OO, que insiste en que todos los atributos de los individuos
están encapsulados y que todas la interacciones ocurren con mensajes.
Considere, por ejemplo, una vez más la historia de la zorra y el cuervo y,
particularmente, la observación de la zorra de que el cuervo tiene el queso. En la versión
estricta de la OO, la observación es un mensaje que es enviado a la zorra desde otro
objeto. Pero, ¿cúal objeto?. Los candidatos obvios son el cuervo y el queso. Pero, es
claro que el objeto cuervo no tiene ninguna razón (meta) para enviar tal mensaje a la
zorra y que un verdadero queso no tiene metas reales de ningún tipo. Aún si aceptamos
que uno de ellos debe ser el responsable de enviar ese mensaje, ¿Por qué enviarlo a la
zorra?. ¿Por qué no a todas las otras criaturas del área también?.
En nuestra versión anterior de la historia y, con mayor generalidad, en nuestro modelo
basado en lógica, la zorra y el cuervo, no el queso, son agentes e interactúan entre sí,
pero no por pase de mensajes, sino observando el mundo y realizando acciones sobre
ese mundo. Las acciones que realizan pueden ser observadas por otros agentes en el
área.
Pareciera que la orientación a los objetos tiene poco que ofrecer a nuestra comprensión
de la historia, excepto porque nos recuerda que:
Es importante distinguir entre el mundo y cualquier representación que los
agentes puedan tener del mundo.
Es útil entender el mundo en términos de jerarquías, y
Los métodos usados por los agentes para interactuar con el mundo deben ser
encapsulados para que no sea observados directamente por otros agentes.
La OO tiene otra virtud: muestra como construir mundo artificiales en los que objetos
diferentes pueden cambiar de estado concurrentemente y con independencia. Pero esto
no es muy relevante en la historia de la zorra y el cuervo, en la que tan solo nos interesa
contar la historia, no construir el mundo.
Orientación a objetos moderada
Sin embargo, al comparar la lógica con la OO, parece que la OO va demasiado lejos –
encapsula todas las relaciones entre individuos dentro de objetos. Así, el hecho de que
el cuervo tiene el queso al comienzo de la historia queda atrapado dentro bien de uno o
de ambos, el cuervo y el queso, al alcance solamente de otros objetos si estos pueden
enviar y recibir mensajes del cuervo y el queso.
La alternativa es adoptar una forma menos extremista de orientación por objetos en la
que solamente aquellos individuos que activamente cambian de estado son considerados
objetos, y solamente aquellos métodos que ellos usan para interactuar con el mundo son
encapsulados. Las relaciones entre objetos y otro tipo de individuos no son
encapsuladas, sino que se dejan ver en el mundo externo.
Los objetos, en esta forma moderada de OO, interactúan con el mundo, no solamente
enviando y recibiendo mensajes, sino, en forma más generalista, observando relaciones
en el mundo y realizando acciones que cambian esas relaciones. Los mensajes pueden
ser vistos como actos verbales, en los que un objeto realiza un tipo especial de acción
cuyos efectos deben ser observados por otro objeto.
Otro tipo de individuos, como las propias clases, los eventos, los números, los
momentos del tiempo, pueden participar en relaciones sin ser forzados dentro de objetos
encapsulados.
Esta forma modelada de orientación por objetos es compatible con nuestro modelo de
agente basado en lógica. Le da cierta libertad a nuestra noción de agente, incluyendo
tipos más primitivos de objetos encapsulados. Enriquece nuestra noción de ambiente de
agente, al incluir, no sólo individuos simples y relaciones, sino individuos que son
objetos que pueden cambiar de estado concurrentemente usando métodos encapsulados
ocultos del mundo exterior.
Las redes semánticas como una
variante de la orientación por objetos.
Hay varios otros paradigmas de computación que soportan variantes similares de la
orientación por objetos. Entre esos se incluyen las redes semánticas y las plantillas o
frames, desarrollados como formalismos para representar conocimiento en Inteligencia
Artificial, y como el modelo de entidad-relación en bases de datos.
Las redes semánticas representan el universo como una red de relaciones entre
individuos. Por ejemplo, la red que representaría el estado inicial en el cuento de la
zorra y el cuero luciría así:
Aquí los nodos representan individuos y los arcos relaciones binarias entre pares de
individuos. La representación se puede extender a relaciones no binarias.
Las redes semánticas son representaciones orientadas a objetos por cuanto todos los
hechos sobre un individuo están ubicados en un mismo lugar, es decir, en torno al nodos
que representa al individuo. Estos hechos están representados por flechas conectadas a
ese nodo y por otros nodos a los cuáles están conectados esos actos.
Sin embargo, contrario a la orientación por objetos ortodoxa, las relaciones acá están
representadas sólo una vez y conectadas con todos los individuos que participan en la
relación. Más aún, son visibles desde el exterior y no están encapsulados dentro objetos.
Las redes semánticas también han sido usadas para representar información dinámica,
reificando eventos. Por ejemplo:
Aquí los términos de las red semántica “objeto” y “agente” apenas si están asociados
con nuestras nociones de objeto y agente usadas en este libro. El término “agente” es
análogo al sujeto de una oración en Español y el término “objeto” al objeto de tales
oraciones.
La red semántica también ha sido usada para representar jerarquías de clases. Por
ejemplo:
A pesar de su nombre, las redes semánticas no son estructuras semánticas en el mismo
sentido que las estructuras OO, sino más bien son como estructuras semánticas
representadas por conjuntos de oraciones atómicas en lógica. De hecho, las conexiones
e las redes semánticas con esta forma:
Son símplemente representaciones de oraciones atómicas. Como las oraciones en lógica,
cuando se les usa para representar información dinámica con eventos reificados, las
redes semánticas representan el cambio sin realizarlo.
Por otro lado, las redes semánticas son como estructuras semánticas por cuanto
representan solamente hechos atómicos, antes que regularidades más generales. Aún
cuando se han desarrollado varias extensiones de las redes semánticas para representar
regularidades, estas extensiones no son convincentes.[1]
No obstante, las redes semánticas muestran que es posible usar objetos para estructurar
representaciones del mundo y no sólo la propia estructura del mundo. También ilustran
cómo suscribir una forma moderada de OO, en la cual los objetos dan estructura a
nuestra comprensión del mundo sin ocultar todo dentro de ellos mismos. Los frames y
las bases de datos entidad-relación son similares en este sentido.
Oraciones orientadas a objetos.
Las redes semánticas son objetos unidireccionales que se pueden usar para estructurar
representaciones del mundo. Los objetos son usados también para dar estructura a
representaciones lingüísticas más generales.
Vimos en el capítulo 1 que las oraciones en lógica se pueden escribir en cualquier
orden. Sin embargo, algunas oraciones resultan mucho más fáciles de entender que
otras. Agrupar las oraciones en conjuntos de oraciones acerca de objetos es una forma
de hacerlas más fácil de entender.
Por ejemplo, podemos agrupar las oraciones atómicas que describen el comienzo del
cuento de la zorra y el cuervo en los siguiente conjuntos de oraciones:
El cuervo:
El cuervo tiene el queso.
El cuervo está en el árbol.
El árbol:
El árbol está sobre el suelo.
La zorra:
La zorra está en el suelo.
Por supuesto, podemos agrupar las mismas oraciones a través de otros objetos:
El queso:
El cuervo tiene el queso.
El árbol:
El cuervo está en el árbol.
El suelo:
El árbol está arriba del suelo.
La zorra está en el suelo.
Para obtener una buena organización, es preciso decidir cuáles objetos son los más
importantes.
Los lenguajes naturales, como el Inglés o el Español, llevan la orientación por objetos
un paso más allá, al usar las formas gramaticales en las que el comienzo de una oración
indica su tópico y la siguiente parte indica un comentario acerca de ese tópico. Esta
forma suele coincidir, aunque no es obligatorio, con la estructura gramatical de las
oraciones que tienen sujeto y predicado.
Las dos formas de orientación por objetos – agrupar los conjuntos de oraciones por
objetos y ordenar oraciones individuales por objetos – son frecuentemente combinadas.
Considere, por ejemplo, este par de oraciones:[2]:
La primer ministro bajó del avión.
Los periodistas la rodearon.
Ambas oraciones están en la forma activa, lo cual parecer estar respetando algunas guias
y normas de estilo que se proponen para muchos textos en Inglés y Español.
Las dos oraciones se refieren a los tres objetos, la primer ministro (mencionada a través
del “la” en la segunda oración), los periodistas y el avión. La primer ministro es el único
objeto común entre ambas oraciones. Así que la primer ministro es el objeto que
conecta ambas oraciones. Sin embargo, el tópico cambia de la primer ministro a los
periodistas al cambiar de oración.
Ahora considere el siguiente par de oraciones lógicamente equivalente a las anteriores:
La primer ministro bajó del avión.
La rodearon de inmediato los periodistas.
En este caso, no sólo es que ambas oraciones se refieren a un objeto común, sino que
comparten el tópico. Sin embargo, la segunda oración se expresa en voz pasiva. A pesar
de esto y de contradecir aquellos manuales del buen estilo simplificados, mucha gente
opina que el segundo par de oraciones es más fácil de entender (NT ¿Qué opina el
lector?). Esto sugiere que la gente prefiere organizar sus pensamientos en forma
orientada a objetos, y esa preferencia tiene prioridad sobre la preferencia de voz activa
sobre voz pasiva.
La orientación por objetos no es la única forma de ordenar oraciones. En ambos pares
anteriores, las oraciones están ordenadas por la secuencia temporal de los eventos.
Ahora considere el siguiente conjunto de oraciones:
La zorra adula al cuervo.
El cuervo canta una canción.
El queso cae al suelo.
La zorra toma el queso.
Aquí las oraciones están agrupadas por proximidad temporal y ordenadas siguiendo la
secuencia temporal. Las oraciones están organizadas, no por objetos, sino por agentes,
tal como se acostumbra en la voz activa.
Es importante dejar las cosas en perspectiva. La orientación por objetos NO lo es todo.
En el caso del Inglés, no tiene nada que ver con el contenido de las oraciones vistas por
separado, pero es una forma de agrupar y ordenar las oraciones. Comparado con la
lógica, la OO es como el índice de un libro, y lógica es cómo el lenguaje en el que se
escribe el libro.
Conclusiones
En comparación con la lógica, la atracción principal de la OO es que nos muestra como
construir mundos artificiales en los que los objetos pueden cambiar de estado al mismo
tiempo e independientemente de otros objetos. La OO facilita la construcción de nuevos
objetos a partir de los que existen y por medio de métodos encapsulados, reduciendo la
complejidad y aumentando la mantenibilidad.
Sin embargo, comparada con la lógica y con formas mas moderadas de OO, tales como
las redes semánticas, la OO extremista lleva el encapsulamiento muy lejos. En lugar de
esconder los atributos y las relaciones entre individuos dentro de los objetos, sería más
natural hacerlos visibles al exterior. En lugar de tratar todos los individuos como objetos
encapsulados, los objetos se pueden reducir a ser individuos que interactúan con el
universo.
La OO extremista también va muy lejos con la metáfora del pase de mensajes. El lugar
de forzar toda las interacciones entre objetos y el mundo a ser mensajes, sería más
natural para los agentes y otros objetos interactuar con el mundo haciendo
observaciones y realizando acciones.
La lógica computacional se puede reconciliar con ambas, la OO extremista y la
moderada, usando la lógica como un lenguaje de más alto nivel para implementar
métodos y para definir jerarquías de clasificación. Aunque no hemos discutido la
posibilidad en este capítulo, también puede ser usada por un diseñador de sistemas para
mostrar que una colección de objetos alcanza una meta común.
Las redes semánticas y los lenguajes naturales, como el Inglés y el Español, muestran
que la OO no se limita a el modelado de estructuras semánticas, sino que puede servir
para dar estructura a representaciones del mundo. Los ejemplos en lenguaje natural
muestran, en particular, que en el área de representaciones lingüísticas, la lógica y la
OO apuntan en direcciones diferentes. La lógica pretende representar el mundo,
mientras que la OO sólo se ocupa de una forma de ordenar las representaciones. Como
hemos visto, la OO necesita combinarse con otras formas de ordenar representaciones
para ser útil. Sería interesante, por ejemplo, ver como la OO podría ser usada para
ordenar una colección de oraciones tan complejas como las usadas para armar este
capítulo.
[1] Yo mismo he contribuido a esas extensiones en Deliyanni, A. and Kowalski, R.,
"Logic and Semantic Networks", en CACM, Vol. 22, No. 3, 1979, pp. 184-192.
[2] Este capítulo viene de “Discourse Analysis” de Gillian Brown y George Yule,
Cambridge University Press, 1983, pag 130.
Top Related