Lgica Prctica y Aprendizaje Computacional
Jacinto Dvila
2
Dedicatoria
A Pal, quien a todo le da sentido.
Agradecimientos
A Pal y Magaly1, por la aventura que ac no se cuenta. A Bob2, por fraguar
la aventura que se cuenta y la que no se cuenta. A Maye3, por inspirar muchas de
estas ideas. A Kay4, el otro padre de Galatea, por su efectiva compaa y apoyo
solidario. A Peter5, por su hospitalidad, su comprensin y sus consejos diligentes.
A Jose6, por contagiarme su entusiasmo por aprender a aprender y por ensearme
a conar. A Nelcy Patricia7, caro8, Jos9 y Virginia10, por sumar su esfuerzo a la
causa lgica. A Marisol11, Yaritza12, Lili13 y Nelson14, por ayudarnos a entender
los modelos y las maneras de la burocracia. A Giorgio15, por, una vez ms, leer y
corregir cuidadosamente un texto original. A todos mis estudiantes de lgica, por
algunas veces soportar y otras veces animar a esos mgicos agentes.
Reconozco y agradezco formalmente el apoyo de Fonacit, MPPCT de la Repbli-
ca Bolivariana de Venezuela, Subvencin S3-2006000290, para mi estada postdoc-
toral en la Universidad de Bristol en Julio de 2006.
1Pal Arams Dvila Reyes y Ana Magaly Reyes Hill.2Robert A. Kowalski, Profesor Emrito del Imperial College. Londres, Reino Unido.3Mayerlin Y. Uzctegui S. Profesora de la Universidad de Los Andes. Mrida, Venezuela.4Kay A. Tucci K. Profesor de la Universidad de Los Andes. Mrida, Venezuela.5Peter Flach, Profesor del Machine Intelligence Group de la Universidad de Bristol, Reino
Unido.6Jose H. Lpez P. Profesor de la Universidad del Tchira. San Cristobal, Venezuela.7Nelcy Patricia Pia, Profesora de La Universidad del Zulia. Maracaibo, Venezuela.8caro Alzuru, Profesor de la Universidad de Los Andes. Mrida, Venezuela.9Joskally C. Carrero. Licenciada en Computacin de La Universidad del Zulia. Punto Fijo,
Venezuela10Virginia Padilla S. Profesora de la Universidad de Guayana. Puerto Ordaz, Venezuela.11Marisol Ruiz. Doctoranda del programa de Fortalecimiento de los Servicios Pblicos. Mrida,
Venezuela.12Yaritza de Jess Vargas Q. Ingeniera de Sistemas de la Universidad de Los Andes, Venezuela.13Liliana Lilibeth Andrade P. Ingeniera de Sistemas de la Universidad de Los Andes. Venezuela.14Nelson Vicua. Profesor de la Universidad de Oriente. Cuman, Venezuela.15Giorgio Tonella. Profesor Emrito de la Universidad de Los Andes. Mrida, Venezuela
ndice general
1. Lgica Prctica 15
1.1. Introduccin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
1.2. La Semntica de la Lgica Prctica . . . . . . . . . . . . . . . . . . . 15
1.2.1. Sobre la validez de un argumento . . . . . . . . . . . . . . . . 18
1.3. Una realizacin computacional. . . . . . . . . . . . . . . . . . . . . . 21
1.3.1. Una Teora de Agentes en Lgica . . . . . . . . . . . . . . . . 22
1.3.2. Una Prctica de Agentes en Lgica . . . . . . . . . . . . . . . 23
2. Simulacin con Agentes y Lgica 43
2.1. Directo al grano . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
2.2. El primer modelo computacional . . . . . . . . . . . . . . . . . . . . . 43
2.2.1. Nodos: componentes del sistema a simular . . . . . . . . . . . 45
2.2.2. El esqueleto de un modelo Galatea en Java . . . . . . . . . . . 47
2.2.3. El mtodo principal del simulador . . . . . . . . . . . . . . . . 47
2.2.4. Cmo simular con Galatea, primera aproximacin . . . . . . . 51
2.3. El primer modelo computacional multi-agente . . . . . . . . . . . . . 53
2.3.1. Un problema de sistemas multi-agentes . . . . . . . . . . . . . 54
2.3.2. Conceptos bsicos de modelado multi-agente . . . . . . . . . . 54
2.3.3. El modelo del ambiente . . . . . . . . . . . . . . . . . . . . . . 56
2.3.4. El modelo de cada agente . . . . . . . . . . . . . . . . . . . . 61
2.3.5. La interfaz Galatea: primera aproximacin . . . . . . . . . . . 63
2.3.6. El programa principal del simulador multi-agente . . . . . . . 65
2.3.7. Cmo simular con Galatea. Un juego multi-agente . . . . . . . 65
2.4. Modelando Procesos Humanos con Galatea . . . . . . . . . . . . . . . 66
2.5. Asuntos pendientes . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
2.5.1. El porqu Galatea es una familia de lenguajes . . . . . . . . . 69
2.5.2. Combinando lenguajes de programacin para el cambio es-
tructural: Java+Prolog . . . . . . . . . . . . . . . . . . . . . . 70
2.5.3. El ejemplo del Gerente Bancario . . . . . . . . . . . . . . . . . 71
3. Aprendizaje Computacional 79
3.1. Introduccin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
3
4 NDICE GENERAL
3.1.1. Una intuicin sobre Aprendizaje . . . . . . . . . . . . . . . . . 79
3.1.2. El papel de la memoria . . . . . . . . . . . . . . . . . . . . . . 80
3.1.3. Redes Neuronales . . . . . . . . . . . . . . . . . . . . . . . . . 80
3.1.4. Redes Neuronales Artciales y el Aprendizaje Conectivista . . 81
3.1.5. Taxonoma de sistemas de aprendizaje: Supervisados o no su-
pervisados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
3.2. Aprendizaje Supercial . . . . . . . . . . . . . . . . . . . . . . . . . . 83
3.3. Gloria: Un agente lgico, basado en lgica y aprendiz supercial . . . 86
3.4. Una breve historia de la Planicacin . . . . . . . . . . . . . . . . . . 87
3.4.1. Qu es un Programa Lgica Abductivo? . . . . . . . . . . . . 90
3.4.2. Qu es una consulta? . . . . . . . . . . . . . . . . . . . . . . . 91
3.4.3. Cul es la semntica de un Programa Lgico Abductivo? . . . 92
3.4.4. Planicacin como Abduccin . . . . . . . . . . . . . . . . . . 93
3.5. Una Breve Historia del Aprendizaje Computacional . . . . . . . . . . 94
3.6. Una especicacin elemental de un Agente Aprendiz . . . . . . . . . . 95
3.7. De la Planicacin al Aprendizaje . . . . . . . . . . . . . . . . . . . . 98
3.8. Del Aprendizaje a la Planicacin . . . . . . . . . . . . . . . . . . . . 98
3.9. Combinando el aprendizaje con otras actividades mentales . . . . . . 99
3.10. Aprendiendo, paso a paso, en un mundo de bloques . . . . . . . . . . 100
3.11. Agentes que aprenden en una simulacion . . . . . . . . . . . . . . . . 104
3.11.1. El modelo de los agentes que aprenden a ser exitosos en la
reserva forestal . . . . . . . . . . . . . . . . . . . . . . . . . . 104
3.11.2. Experimento de simulacin con agentes aprendices . . . . . . . 106
3.11.3. Resultados de los experimentos de simulacin . . . . . . . . . 109
4. Conclusiones 115
A. De la mano de Galatea para aprender Java 117
A.1. Java desde Cero . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118
A.1.1. Cmo instalar java . . . . . . . . . . . . . . . . . . . . . . . . 118
A.1.2. Cmo instalar galatea . . . . . . . . . . . . . . . . . . . . . . 118
A.1.3. Hola mundo empaquetado . . . . . . . . . . . . . . . . . . . . 118
A.1.4. Induccin rpida a la orientacin por objetos . . . . . . . . . . 119
A.1.5. Qu es un objeto (de software) . . . . . . . . . . . . . . . . . 121
A.1.6. Qu es una clase . . . . . . . . . . . . . . . . . . . . . . . . . 121
A.1.7. Qu es una subclase . . . . . . . . . . . . . . . . . . . . . . . 121
A.1.8. Qu es una superclase . . . . . . . . . . . . . . . . . . . . . . 122
A.1.9. Qu es poliformismo . . . . . . . . . . . . . . . . . . . . . . . 123
A.1.10.Qu es un agente . . . . . . . . . . . . . . . . . . . . . . . . . 124
A.1.11.Qu relacin hay entre un objeto y un agente . . . . . . . . . 124
A.1.12.Por qu objetos . . . . . . . . . . . . . . . . . . . . . . . . . . 125
NDICE GENERAL 5
A.2. Java en 24 horas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126
A.2.1. Java de bolsillo . . . . . . . . . . . . . . . . . . . . . . . . . . 126
A.2.2. Los paquetes Java . . . . . . . . . . . . . . . . . . . . . . . . . 128
A.2.3. Java Libre . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129
A.2.4. Un applet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130
A.2.5. Anatoma de un applet . . . . . . . . . . . . . . . . . . . . . . 131
A.2.6. Parametrizando un applet . . . . . . . . . . . . . . . . . . . . 131
A.2.7. Objetos URL . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131
A.2.8. Grcos: colores . . . . . . . . . . . . . . . . . . . . . . . . . . 132
A.2.9. Ejecutando el applet . . . . . . . . . . . . . . . . . . . . . . . 133
A.2.10.Capturando una imagen . . . . . . . . . . . . . . . . . . . . . 133
A.2.11.Eventos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133
A.2.12.paint():Pintando el applet . . . . . . . . . . . . . . . . . . . 135
A.2.13.El AppletMonteCarlo completo . . . . . . . . . . . . . . . . . 135
B. ULAnix Oraculum, probando a Galatea 137
B.1. ULAnix Oraculum . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137
B.1.1. Qu es . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137
B.1.2. Cmo usarlo . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138
B.2. Netbeans . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139
B.2.1. Qu es . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139
B.2.2. Cmo usarlo . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139
B.3. Galatea en ULAnix Oraculum . . . . . . . . . . . . . . . . . . . . . . 140
B.3.1. Cmo descargarla desde el repositorio . . . . . . . . . . . . . . 140
B.3.2. Cmo usarla . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140
B.3.3. Cmo ejecutar los modelos de simulacin. . . . . . . . . . . . 140
Bibliografa 143
6 NDICE GENERAL
ndice de guras
1.1. Burocratn . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
1.2. El Usuario frente a Burocratn . . . . . . . . . . . . . . . . . . . . . . 23
1.3. Matraqun . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
1.4. Mataqun . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
1.5. Agente Web Semntica . . . . . . . . . . . . . . . . . . . . . . . . . . 28
1.6. Gea: El Agente Catastral . . . . . . . . . . . . . . . . . . . . . . . . . 29
1.7. Kally . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
1.8. La Gramtica Espaola de Kally . . . . . . . . . . . . . . . . . . . . 30
1.9. El Lxico Espaol de Kally . . . . . . . . . . . . . . . . . . . . . . . . 31
1.10. El Artista . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
1.11. Rentn . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
2.1. Salida del modelo en un terminal . . . . . . . . . . . . . . . . . . . . 52
2.2. Smbolos ambientales . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
2.3. Servicio en Galatea . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
2.4. Proceso . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
2.5. Un Proceso Organizacional . . . . . . . . . . . . . . . . . . . . . . . . 67
2.6. Ocupacin de un servicio . . . . . . . . . . . . . . . . . . . . . . . . . 68
2.7. Inclinacin hacia la estabilidad . . . . . . . . . . . . . . . . . . . . . . 68
2.8. Interfaz al Usuario del Modelo del Proceso . . . . . . . . . . . . . . . 69
2.9. Fragmento de traza del Banco con nueva estructura . . . . . . . . . . 77
3.1. El problema de optimizacin con dos agentes . . . . . . . . . . . . . . 109
3.2. El problema genrico de optimizacin que resuelven los agentes apren-
dices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113
7
8 NDICE DE FIGURAS
ndice de cuadros
1.1. La semntica de y . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
1.2. La semntica de o . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
1.3. La semntica del no . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
1.4. La semntica de si . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
3.1. El predicado cycle de Gloria . . . . . . . . . . . . . . . . . . . . . . . 96
3.2. El predicado cycle de una Gloria Aprendiz . . . . . . . . . . . . . . . 98
3.3. Comparacin de resultados entre el modelo terico y la simulacin
multiagente . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112
9
10 NDICE DE CUADROS
ndice de algoritmos
1.1. Codicando una interpretacin . . . . . . . . . . . . . . . . . . . . . 17
2.1. Delta.java . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
2.2. Analisis.java . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
2.3. Modelo.java . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
2.4. contrib.biocaparotoy.Delta.java primera parte . . . . . . . . . . . . . 59
2.5. contrib.biocaparotoy.Delta.java segunda parte . . . . . . . . . . . . . 60
2.6. contrib.biocaparotoy.Colono.java . . . . . . . . . . . . . . . . . . . . . 62
2.7. contrib.biocaparotoy.Interfaz.java . . . . . . . . . . . . . . . . . . . . 64
2.8. El Gerente Bancario. Primera Parte (NETWORK) . . . . . . . . . . . . . 72
2.9. El Gerente Bancario. Segunda Parte (AGENTS) . . . . . . . . . . . . . 72
2.10. El Gerente Bancario. Tercera Parte (INTERFACE, DECL e INIT) . . . . 73
2.11. gerente.kb . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
2.12. Interfaz.java . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
2.13. gerente.main . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
3.1. El agente que aprende a construir un arco . . . . . . . . . . . . . . . 100
3.2. El agente que aprende a construir un arco, sin tiempo explcito . . . . 101
3.3. Operador de Generalizacin en Gloria Aprendiz . . . . . . . . . . . . 107
3.4. Operador de Especializacin en Gloria Aprendiz . . . . . . . . . . . . 108
3.5. La aproximacin en programacin lineal al optimizador con dos agentes111
11
12 NDICE DE ALGORITMOS
Introduccin
Cmo evaluar los lenguajes que usamos para comunicarnos con el computador?.
Por qu tendramos que hacer eso?. Los ejemplos de lgica que se presentan en este
libro ilustran la sosticacin que ha alcanzado la disciplina y exponen una variedad
de aplicaciones de la tecnologa de la Inteligencia Articial. Pero, realmente estamos
progresando? Cmo sabemos que podemos comunicarnos cada vez ms y mejor con
las mquinas para lograr que hagan lo que queremos?. Habr algn paralelismo
posible entre ese problema y el que ocurren entre humanos?.
Los lgicos computacionales parecemos decididos a enfrentar uno de los proble-
mas ms difciles entre los legados por los padres fundadores de la disciplina. En
el afn por construir un lenguaje perfecto[27], los fundadores disearon el lengua-
je ms simple que pudieron. El propsito principal parece haber sido "evitar la
ambigedad" o, cuando no se pueda, poder detectarla fcilmente. De all viene la
exigencia de "consistencia" que se le hace a cualquier cdigo lgico y que, desde
luego, obedece a la mejor de las razones: un cdigo inconsistente permite derivar
cualquier cosa, en particular una proposicin y su opuesta. Es decir, es intil. No
tiene ningn valor prctico.
Ese esfuerzo para evitar la ambigedad, sin embargo, parece haber ido muy lejos
en muchos casos. Al despojar a los lenguajes lgicos de la riqueza estructural de
los lenguajes naturales, pareciera que se los despoja tambin de su expresividad.
Es decir, podra ocurrir que una verdad expresable en un lenguaje, puedo no serlo
en otro. La falta de expresividad no es, tcnicamente, fcil de establecer. Es un
juicio que involucra a dos lenguajes ( el "juzgado" y el de referencia) o, quizs ms
propiamente, a dos juegos lingsticos [95].
Pareciera entonces que estamos condenados a un juicio relativo. Por ejemplo,
uno puede reexpresar lo que se supone no es expresable en un lenguaje y "hacerlo
expresable". Un ejemplo clsico de esos desafos es la disputa entre lgica clsica y
lgica modal. En esta ltima, los smbolos p se usan para indicar lo que en Espaoldiramos como "es posible p" o "posiblemente p es el caso". Segn muchos lgicos
(modales), eso no se puede expresar en lgica clsica. Pero en esta se puede decir
U(cierto(p, U)), queriendo decir que existe un universo (o algo) U en el que p escierto. No es esa una forma equivalente? [41].
Como ilustra brevemente ese caso, la lgica modal abrevia la sintaxis (usando
13
14 NDICE DE ALGORITMOS
smbolos ms expresivos, que dicen ms con menos smbolos) en detrimento de la
semntica que se torna ms compleja (esto es, comparando sintaxis y semnticas
entre la lgica modal y la clsica). Pero la expresividad de ambos lenguajes, consid-
erados como un todo (es decir, lenguaje = sintaxis + semntica) es la misma.
Ser posible identicar una autntica limitacin en el lenguaje? (es decir, las
condiciones de posibilidad para que sintaxis + semntica "no alcancen").
Los lingsticas modernos cuentan con una tercera categora para evaluar la
expresividad de un lenguaje (natural): la pragmtica. La pragmtica se reere al
irreductible contexto en el que se dice algo. Es decir, las oraciones (o cualquier otra
estructura lingstica) adquieren uno u otro signicado de acuerdo al contexto en
el que se insertan. Este es el elemento ms bsico o crudo de lo que Wittgenstein
llama juego lingstico[95] y es lo mejor, segn el lsofo, que podemos acercarnos
a una caracterizacin del "lenguaje siendo usado" (o dinmica lingstica).
La lgica computacional, tal como se le muestra en este texto, est conectada a
esa posibilidad de "lenguaje siendo usado". El humano y la mquina se enfrentan en
una forma degenerada de juego lingstico16. Un juego degenerado por la declarada
falta de consciencia en la mquina. Pero un juego en el que los contextos tambin
determinan signicados.
De esta manera, para evaluar un lenguaje computacional uno puede recurrir a un
modelo de lenguaje (l mismo escrito en algn lenguaje) que d cuenta del cmo sus
formas (las del lenguaje) signican (en su semntica) respecto a cada contexto de uso
posible. El usuario del lenguaje, lector comprometido, juzgar, tan sistemticamente
como quiera, si el lenguaje "alcanza" para tal o cual uso.
Este libro es una composicin atrevida de tres temas, uno para cada captulo:
lgica, simulacin y aprendizaje automtico. La idea que conecta los tres temas
es la nocin de agente. En el captulo 1 se revisa una forma de lgica, la Lgica
Computacional, descrita magistralmente en [57] y se le usa como lenguaje de alto
nivel para modelar un conjunto de agentes y sus formas de razonamiento. En el
captulo 2, el foco del libro gira hacia el modelado de los ambientes en los que los
agentes se desenvuelven, objetivo habitual de la simulacin de sistemas, por lo que se
presenta una familia de lenguajes, que incluyen al visto en el captulo 1, usados para
describir sistemas multi-agentes. En el captulo 3, el modelo bsico de agente descrito
en [57] y usando en el captulo 1, es ampliado para incorporarle capacidades de
aprendizaje de reglas lgicas. Este esfuerzo culmina con una demostracin prctica
de la capacidad de estos agentes aprendices para servir a tareas de optimizacin
basada en simulacin. En todo el libro, el lenguaje de modelado de los agentes es
una forma de lgica, la Lgica Computacional, que, como se ilustra a todo lo largo
del texto, adquiere un carcter prctico que el lector sabr juzgar.
16El verdadero juego ocurre, quizs, entre quienes disearon la mquina y quienes la usan
Captulo 1
Lgica Prctica
1.1. Introduccin
Para decidir si la lgica es til o no uno tendra que producir un argumento
(en favor o en contra). Entre lgicos se dice, a modo de broma, que esta es la mejor
prueba de la utilidad de la lgica. Muchas veces, sin embargo, no ocurre que se dude
de la utilidad de la lgica en s misma, sino que las formas de lgica disponibles tienen
tal nivel de complejidad que su utilizacin prctica (distinta de su utilizacin en la
especulacin terica) es muy limitada.
La lgica que se propone en este texto tiene 2 caractersticas que nos permitimos
ofrecer para justicarle el atributo de prctica o til:
1. Una semntica relativamente simple.
2. Una realizacin computacional.
1.2. La Semntica de la Lgica Prctica
En la lgica matemtica clsica, el mundo (el universo entero y toda otra
posibilidad) se ve reducido a un conjunto de objetos y a un conjunto de relaciones
(entre los mismos objetos o entre las mismas relaciones). Eso es todo lo que existe
(o puede existir): objetos y relaciones.
Esta ontologa degenerada (respecto a la nuestra) de la lgica clsica es fre-
cuentemente criticada por reduccionista. Los argumentos para esas crticas, mu-
chos ampliamente aceptados como vlidos, son tolerados (o mejor, ignorados) por los
lgicos en virtud de una gran ventaja que ofrece esa ontologa: Es menos compleja
y, por tanto, es ms fcil pensar con ella (o con respecto a ella).
En denitiva, para darle signicados a los smbolos en lgica contamos con:
OBJETOS designados por sus nombres, llamados tambin trminos del lenguaje
y
15
16 CAPTULO 1. LGICA PRCTICA
RELACIONES cuyos smbolos correspondientes son los nombres de predicados o,
simplemente, predicados.
Por ejemplo, el smbolo ama(romeo, julieta) es un literal positivo o tomo con-
stituido sintcticamente por el predicado ama y sus dos argumentos, los trminos
romeo y julieta.
Para saber qu signica esos trminos y ese predicado, uno tiene que proveerse
de una denicin de la semntica de ese lenguaje. Una forma de hacerlo es usar
(referirse a) una historia como la que sugieren esos nombres o, al estilo matemtico,
denirlos:
romeo se reere al jovencito hijo de los Montesco, en la Novela de William Shake-
speare.
julieta se reere a la jovencita, hija de los Capuletos, en la misma Novela.
Hay muchas formas de hacer esa denicin1. En cada caso, quien la hace tiene en
mente su propia interpretacin . Uno podra, por ejemplo, decir:
romeo es el perrito de mi vecina.
y no habra razn para decir que esa interpretacin es incorrecta.
Esas deniciones dan cuenta del nombre, pero no del predicado. Este se dene
tambin, pero de una forma diferente. Al predicado le corresponde una relacin.
Si hacemos la intepretacin que pretende Shakespeare, por ejemplo, la relacin cor-
respondiente es aquella en la que el objeto en el primer argumento ama al objeto
en el segundo. Es decir, los matemticos denen la relacin amar como la coleccin
de todas las duplas (X,Y) en las que X ama a Y. Los computistas, siguindoles la
corriente, dicen que eso es muy parecido a tener una tabla en una base de datos
que describe todo lo que es verdad.
Para saber si Romeo (el de la historia) realmente ama a Julieta (la de la historia)
uno tendra que revisar la base de datos (correspondiente a la historia) y vericar
que contiene la tupla correspondiente. Noten, por favor, una sutileza. Esa no es una
base de datos de palabras o trminos electrnicos. Es, de hecho (dicen los lgicos
clsicos), una reunin (imaginaria?) de objetos reales.
Por simplicidad (y sin olvidar lo que es una reunin imaginaria), uno puede
representarla as:
AMA
amante amado
romeo julieta
julieta romeo
bolvar colombia
manuela bolvar
1vean http://es.wikipedia.org/wiki/Romeo_y_Julieta
http://es.wikipedia.org/wiki/Romeo_y_Julieta
1.2. LA SEMNTICA DE LA LGICA PRCTICA 17
Algoritmo 1.1 Codicando una interpretacin
1 ama(romeo , julieta ).
2 ama(julieta , romeo).
3 ama(bolvar , colombia ).
4 ama(manuela , bolvar ).
p q p y qv v vf v fv f ff f f
Cuadro 1.1: La semntica de y
y, colapsando todo en palabras (en la sintaxis), tambin se puede representar (y se
suele hacer) como se muestra en el cdigo del algoritmo 1.1 (noten que uno puede
anotar esta informacin de muchas maneras diferentes, e.g. el primer hecho se puede
escribir tambin as: romeo ama a julieta).
Esta explicacin dispensa con algunos elementos bsicos de la semntica de la
lgica. Pero no con todos. Faltan los ms tiles. Las llamadas palabras lgicas.
En la lgica, uno puede crear oraciones compuestas a partir de oraciones sim-
ples (como ama(romeo, julieta)). Digamos que usamos los smbolos y, o, no, si
(siempre acompaado de entonces) y si y solo si. (los smbolos empleados son
tambin una decisin del diseador del lenguaje. Algunas veces se usan , , , , y muchos otros).
Sabremos que ama(romeo, julieta) es verdadera al revisar la base de datos de
la interpretacion que se haya seleccionado. Pero, cmo sabemos que ama(romeo,
julieta) y ama(julieta, romeo) es verdadera?
La respuesta est codicada en la tabla de verdad de la palabra y en el cuadro
1.1:
Si podemos decir que p = ama(romeo, julieta) = verdad y q = ama(julieta,
romeo) = verdad, entonces la conjuncin es tambin verdad en esa interpreta-
cin.
Esas tablas de verdad 1.2, 1.3 y 1.4 son tiles porque nos permiten decidir si
un discurso, visto como una (gran) frmula lgica, es cierto o falso. Esto es im-
portante para vericar si tal discurso es coherente o, dicho de otra manera, est
p q p o qv v vf v vv f vf f f
Cuadro 1.2: La semntica de o
18 CAPTULO 1. LGICA PRCTICA
q no qv ff v
Cuadro 1.3: La semntica del no
p q si p entonces qv v vf v vv f ff f v
Cuadro 1.4: La semntica de si
razonablemente estructurado. En lgica, cuando el discurso es verdadero en alguna
intepretacin decimos que es un discurso consistente. Un discurso o teora es in-
consistente si permite derivar una proposicin y su opuesta: e.g. te amo y no te
amo.
1.2.1. Sobre la validez de un argumento
Esos ejercicios de anlisis de signicados con tablas de verdad tienen otro sentido
prctico. Se les puede usar para evaluar la validez de un argumento.
Un argumento es vlido si siempre que sus condiciones son ciertas, sus
conclusiones tambin son ciertas.
Argumento es uno de los conceptos trascendentales en lgica. Se reere a toda
secuencia de frmulas lgicas, conectadas entre s (por relaciones lgicas), que es-
tablece (prueba) una conclusin. Un ejemplo muy conocido de argumento es este:
Todo humano es mortal. Scrates es humano. Por lo tanto, Scrates es
mortal.
que puede ser codicado y usado por un computador de esta forma:
mortal(X) :- humano(X).
humano(socrates).
?mortal(X)
X = socrates
true
1.2. LA SEMNTICA DE LA LGICA PRCTICA 19
Ve lo que ocurre en el ejemplo? 2
Para vericar que un argumento es vlido basta vericar que CUANDOQUIERA
que sus condiciones son todas ciertas, sus conclusiones tambin (son todas ciertas).
Vale la pena tomar un tiempo para aclarar el concepto. Algunas personas tienen
dicultad para aceptar que un argumento puede ser vlido (an) si:
sus condiciones son falsas y sus conclusiones son ciertas o
sus condiciones son falsas y sus conclusiones son falsas tambien.
De hecho, lo nico que NO puede ocurrir es que
sus condiciones sean ciertas y su conclusiones falsas.
Recapitulando, un argumento es vlido si cuandoquiera que sus premisas (condi-
ciones) son conjuntamente ciertas, su conclusin (o conclusiones) tambin son cier-
tas. Esta denicin, como suele pasar en matemtica, sirve para describir, pero
no para guiarnos al producir un argumento vlido. El que podamos construir un
argumento vlido va a depender, siempre, de que podamos establecer la conexin
adecuada entre sus premisas y sus conclusiones.
En particular, la validez de un argumento NO DEPENDE de los valores de
verdad de sus componentes. Eso es lo que vericamos con los siguientes ejemplos
(basados en los ejemplos del libro de Irving Copi y Carl Cohen[7]).
Todas las ballenas son mamferos. Todos los mamferos tienen pulmones.
Por lo tanto, todas las ballenas tienen pulmones3.
Este es un argumento vlido, con condicin cierta y conclusin cierta.
Todas las araas tienen diez patas. Todas las criaturas de diez patas
tienen alas. Por lo tanto, todas las araas tienen alas4.
Este tambin es un argumento vlido, con condiciones falsas y conclusin falsa.
Noten que la falsedad de la primer condicin y de la conclusin es deducida de
nuestro conocimiento de biologa (de Animal Planet, decimos en clase). Decir que
la segunda condicion es falsa es un poco temerario, puesto que no conocemos esas
criaturas de diez patas (o s?), pero realmente no importa porque la conjuncin se
falsica con la primera condicin falsa.
Si yo tuviera todo el dinero de Bill Gates, sera rico. No tengo todo el
dinero de Bill Gates. Por lo tanto, no soy rico5.
2Hemos convertido el argumento en un cdigo Prolog que le permite a una mquina simular elrazonamiento humano, en este caso con absoluta delidad.
3cierto, cierta, vlido
4falso, falsa, vlido
5cierto, cierta, invlido
20 CAPTULO 1. LGICA PRCTICA
Este es un argumento invlido (es decir, no vlido) con condiciones ciertas y con-
clusin cierta (y les juro que es absolutamente cierta si hablan del autor).
Si Bin Laden tuviera todo el dinero de Bill Gates, sera rico. Bin Laden
no tiene todo el dinero de Bill Gates. Por lo tanto, Bin Laden no es
rico6.
Este tambin es invlido, pero sus condiciones son ciertas (suponiendo que Bill es l
ms adinerado o, incluso, que posee una fortuna diferente) y su conclusin es falsa
(por lo que sabemos acerca del origen acomodado de Bin Laden. Alguien podra
opinar lo contrario. Claro, al parecer ahora podemos decir que "Bin Laden no es").
Ser este argumento invlido por la misma razn que el anterior?.
Todos los peces son mamferos. Todas las ballenas son peces. Por lo
tanto, todas las ballenas son mamferos7.
Este es vlido, con condiciones (ambas) falsas y conclusin cierta (de esta ltima
tambin sabemos gracias a Animal Planet).
Podemos llegar a la conclusin de validez olvidndonos de peces, bal-
lenas y mamferos?.
Todos los mamferos tienen alas. Todas las ballenas tienen alas. Por lo
tanto, todas las ballenas son mamferos8.
Este es invlido, con condiciones falsas y conclusin cierta.
Todos los mamferos tienen alas. Todas las ballenas tienen alas. Por lo
tanto, todos los mamferos son ballenas9.
Este es invlido, con condiciones falsas y conclusin tambin falsa.
Ahora, Qu podemos decir de esos 7 argumentos?. En qu nos basamos para
el anlisis?. Qu ocurre con la 8va. posibilidad?. Cul es la combinacin faltante?.
Cul es la relacin entre la validez de un argumento y la tabla de verdad de las
frmulas si .. entonces?. Siendo este un libro gua, es razonable que el lector reclame
las respuestas a estas preguntas. Descubrirlas por s solo o sola, sin embargo, ser
mucho ms productivo. Veamos ahora la otra ventaja interesante de la lgica que se
describe en este texto.
6cierto, falsa, invlido
7falso, cierta, vlido
8falso, cierta, invlido
9falso, falsa, invlido
1.3. UNA REALIZACIN COMPUTACIONAL. 21
1.3. Una realizacin computacional.
En lgica clsica se cultivan separadamente esas estructuras semnticas que
hemos discutido en la seccin anterior, bajo el nombre de Teoras de Modelos. Un
modelo es una interpretacin lgica que hace cierta a una frmula. Por ejemplo,
p y q es satisfecha si p = verdad y q = verdad. Por tanto, esa asignacin es un
modelo.
La otra parte de la lgica matemtica clsica la constituyen las llamadas Teoras
de Prueba (Proof Theories). En lugar de girar en torno a la nocin de DEDUC-
CION, como se hace al analizar argumentos y tablas de verdad, las teoras de prue-
ba se concentran en describir ejercicios y estrategias de DERIVACION. Derivar
es obtener una frmula a partir de otras a travs de transformaciones sintcticas.
Tambin se usa el trmino INFERIR.
X es P y P es M
entonces
X es M
Una realizacin computacional de un razonador lgico es un programa que hace justo
eso: inferir. Deriva unas frmulas a partir de otras. As, para el computista lgico,
derivar es computar. El razonamiento lgico es una forma de computacin (si bien,
no la nica). A los razonadores lgicos se les llama de muchas maneras:motores de
inferencia, probadores de teoremas, mquinas lgicas, mtodo de prueba. En todo
esos casos, el razonador tiene sus propias reglas para saber que hacer con las frmulas
lgicas (que tambin suelen ser reglas). A las reglas de un motor de inferencia se
les llama: reglas de inferencia. He aqu una muy popular que hasta tiene nombre
propio: modus ponens
Con una frmula como:
Si A entonces B
y otra frmula como:
A
Derive
B
Puede ver que se trata de una regla para procesar reglas?. Por eso, algunas veces
se dice que es una meta-regla.
Las teoras de modelos y las teoras de prueba normalmente caracterizan a la
lgica clsica (a una lgica o a cada lgica, si uno preere hablar de cada realizacin
por separado). Han sido objeto de intenso debate durante largo tiempo y mucho antes
de que existieran los actuales computadores. La lgica computacional, sin embargo,
22 CAPTULO 1. LGICA PRCTICA
ha abierto un nuevo espacio para describir el mismo lenguaje. En la siguiente seccin
conoceremos de un primer intento por explicar el alcance expresivo de la lgica
computacional y conoceremos tambin una lista de ejemplos de agentes modelados
en y con lgica.
1.3.1. Una Teora de Agentes en Lgica
Hace ms de una dcada, en la escuela de la programacin lgica, emprendi-
mos un proyecto colectivo para caracterizar a la nueva nocin de Agente que irrum-
pi en varios escenarios de la Inteligencia Articial. Robert Kowalski es uno de
los mejores exponentes de ese proyecto, con su libro La Lgica Computacional y
el Pensamiento Humano: Cmo ser articialmente inteligente[57]10. El objetivo de
Kowalski es explorar el uso de la lgica para modelar agentes. Ese objetivo lo ha
llevado a bosquejar una teora para explicar qu es un agente y cmo se le puede
implementar para efectos de computacin. Kowalski ha tratado de aproximar esa
misma nocin de agente que se ha hecho muy popular en el mundo tecnolgico en
las ltimas dcadas.
Resumiendo esa teora, uno puede decir que un agente es una pieza de software
para controlar un dispositivo capaz de interactuar con su entorno, percibiendo y
produciendo cambios en ese entorno. La especicacin lgica es ms general que
esa visin resumida y orientada a la mquina. Un agente, en esa teora lgica, es
un proceso auto sostenido y auto dirigido de intercambios entre un estado interno
y un estado externo. El proceso es modelado como un programa lgico que puede
convertirse en cdigo ejecutable sobre un hardware o inclusive, decimos nosotros,
sobre bioware, la mquinaria biolgica de la inteligencia natural. En este sentido,
la conceptualizacin alcanza a describir aspectos de la conducta autnoma de los
humanos y otros seres en los que es posible o conveniente distinguir un estado interno
de uno externo. Es el ahora clsico ejercicio de la postura intencional [21], segn la
cual la condicin de agente es determinada por el ojo del observador.
La teora renuncia a toda pretensin totalizante: un agente no es slamente lo
que all se describe y, en particular, nunca se pretende que los humanos (y otros
seres conscientes) seamos eso nicamente (pueden verse declaraciones al respecto en
el texto de Kowalski). Sin embargo, esa teora s pretende restaurar aquella intencin
originaria de la lgica: La lgica simblica fue originalmente desarrollada como un
herramienta para mejorar el razonamiento humano. Ese es el sentido prctico, de
utilidad, que se pretende rescatar con esa teora y que, obviamente, debe estar
asociado a una prctica.
10publicado por Cambridge University Press y con una versin electrnica en Espaol disponibledesde http://webdelprofesor.ula.ve/ingenieria/jacinto/kowalski/logica-de-agentes.html
http://webdelprofesor.ula.ve/ingenieria/jacinto/kowalski/logica-de-agentes.html
1.3. UNA REALIZACIN COMPUTACIONAL. 23
1 Si alguien me pide algo entonces yo sigo el procedimiento.2 Si alguien me pide algo y es algo muy importante , resuelvo
inmediatamente.3
4 Para seguir el procedimiento , consulto el manual si existe oinvento un manual si no existe.
5 Para inventar un manual de procedimiento , solicite una cartade alguna autoridad y haga lentamente lo que all dice (para evitar errores).
6 Todo procedimiento se sigue lentamente para evitar errores ytrampas.
7 Algo es muy importante si se lo menciona en las leyes.8 Para las cosas importantes existen manuales de procedimiento.
Figura 1.1: Burocratn
1 Si necesito informacin de burocratn entonces se la pidoapropiadamente.
2
3 Para pedir informacin apropiadamente (a burocratn), se lopido y le explico que es muy importante.
4 Para explicarle que es muy importante , antes encuentro unareferencia del asunto en alguna de las leyes y la mencionocon pasin.
Figura 1.2: El Usuario frente a Burocratn
1.3.2. Una Prctica de Agentes en Lgica
Inspirados por la teora de Kowalski y por su afn de demostrar que transciende
los smbolos y las operaciones matemticas, hemos venido recolectando ejemplos
particulares de especicaciones, siempre parciales, de agentes en lgica. Cada uno
de los ejemplos trata de capturar antes que un agente completo, el rol (papel, par-
titura) que desempea cierto agente en cierta circunstancia de inters. El objetivo
es, siempre, explicar a un agente y a su forma de pensar sin que la representacin
matemtica interera (demasiado).
1.3.2.1. Burocratn
En la gura 1.1 se muestran las reglas que cierto empleado pblico en Venezuela,
llamado Burocratn, empleara para decidir cmo atender a un usuario de su servicio.
La situacin problema es una en la que Ud necesita que Burocratn le suministre
informacin con cierta urgencia. Debemos explicar las reglas de conducta seguiramos
para hacer que Burocratn le responda en el menor tiempo posible. Algo como la
gura 1.2:
Con estas reglas, el usuario (uno de nosotros), de necesitar informacin de buro-
cratn, ubicara antes una referencia al tema en alguna de las leyes, le pedira la
24 CAPTULO 1. LGICA PRCTICA
1 Si se acerca un ciudadano en su vehculo entonces lo interpelo.
2
3 Para interpelar a un ciudadano , debo pedirle su cdula , sulicencia , su certificado mdico , el carnet de circulacin yle pido que explique de donde viene y adonde va.
4
5 Si el ciudadano se pone nervioso , le retiro sus documentos porun tiempo , examino con cuidado el vehculo y los
documentos y luego lo interpelo.6 Si logro establecer una falta o violacin de la ley , le
explico el castigo y le permito negociar.7 Si no negocia , ejecuto el castigo.8 Si negociando , el ciudadano propone una ayuda mutua , la acepto
y le dejo pasar.
Figura 1.3: Matraqun
informacin a burocratn y mencionara con pasin la referencia legal. Eso obligara
a Burocratn a resolver inmediatamente, una accin, por cierto, que no est denida
en sus reglas (y que, por tanto, puede signicar ms problemas. Buena Suerte!)
1.3.2.2. Matraqun
Matraqun es un agente que vive en un Universo similar al nuestro en donde sirve
como scal de trnsito, mientras porta un arma. Sus reglas de conducta incluyen las
que se muestran en la gura 1.3:
Qu pasara si Ud, conduciendo y desarmado, se encuentra con Ma-
traqun, tiene una falta evidente y Ud es de quienes creen que no se
puede negociar desarmado con quienes portan armas?.
Asumamos que esto es lo que ocurre: 1) Matraqun me somete a la primera inter-
pelacin, al observar que me acerco. 2) Yo observo el arma y, siguiendo la mencionada
creencia, no discuto (entiendo que eso signica que no negocio), pero (supongamos)
tampoco me pongo nervioso. 3) Matraqun observa mi evidente falla y procede a
explicarme el castigo y me deja negociar. 4) Yo ya habia decidido no negociar, as
que guardo silencio. 5) Matraqun observa mi silencio y procede a ejecutar el castigo.
El signicado de esto ltimo queda para la imaginacin del lector.
Obviamente esta no es la nica forma de desenlazar la historia. Todo depende
de cules otras suposiciones hagamos sobre Matraqun y nosotros mismos. Pero
parece que ya hay razones sucientes para preocuparse por esta clase de sistema
multi-agentes, verdad?. Considere ahora este otro escenario:
Qu pasara si Ud, conduciendo, se encuentra con Matraqun, tiene una
falta evidente y tiene Ud mucha prisa?.
1.3. UNA REALIZACIN COMPUTACIONAL. 25
1) Matraqun me somete a la interpelacin (de rigor). 2) Esta vez no tengo aquella
regla que me impide negociar con una persona armada. Supongamos que trato de
explicar mi situacin y, supongamos tambin, que tengo suerte de que Matraqun
no interprete que estoy nervioso. 3) Matraqun observa mi evidente falla y procede
a explicarme el castigo y me deja negociar. 4) Yo le explico (supongamos que cal-
madamente) que necesito continuar mi viaje y le pido que me ayude!. 5) Matraqun
entiende que estoy negociando y me propone que lo ayude a ayudarme. 6) Yo me
muestro dispuesto a la ayuda mutua. 7) y 8) (estas acciones han sido censuradas)
y 9) Matraqun acepta mi parte de la ayuda mutua y me deja pasar.
Cul es la MORALeja de la historia?
1.3.2.3. Mataqun
Cierto agente llamado Mataqun est contemplando la posibilidad de cometer un
crimen. Quiere vengarse de cierto enemigo suyo pero quiere, desde luego, cometer
el crimen perfecto: venganza plena, impunidad total y mantener su imagen pblica
cubriendo bien sus huellas. Mataqun ha observado que los policas de su ciudad
no tienen mucha capacidad de respuesta ante un crimen. No suelen atender sino
emergencias extremas. No tienen recursos para investigaciones complejas que in-
volucren a muchas personas, muchos lugares o que impliquen anlisis tcnicos de
cierta sosticacin. Tienen una psima memoria organizacional, pues llevan todos
los registros en papel y los guardan en lugares inseguros. Adems, los policias son
muy mal pagados y se conocen casos de sobornos, especialmente en crmenes muy
complejos o en los que los investigadores se arriesgan mucho y por mucho tiempo.
Los ciudadanos de esa ciudad tienen tal desconanza en su polcia que nunca les
ayudan, an cuando tengan informacin sobre un crimen.
Suponga ahora que, con esas consideraciones en mente, se nos pide proponer una
especicacin (informal, pero tan completa como sea posible a partir de la informa-
cin dada) de las reglas de conducta que debera seguir Mataqun para alcanzar su
meta.
Considere la respuesta en la gura 1.4 11:
La historia resultante, aparte de repulsiva, es bastante obvia, verdad?
1.3.2.4. Halcones, Burgueses y Palomas: Sobre las aplicaciones de la
Teora de Decisiones en lgica
Para ilustrar una posible aplicacin de la teora de Decisiones, un desarrollo
matemtico estrechamente asociado con los agentes y los juegos (ver en [61], [57]),
consideren el siguiente ejemplo tomado de un examen (originalmente en [45]). Con-
sidere los siguiente tres tipos de personas en una sociedad en la que los individuos
11Basada en una propuesta de Victor Malav, 2007
26 CAPTULO 1. LGICA PRCTICA
1 METAS2 si enemigo se acerca entonces establece contacto.3 si contacto establecido y polica cercano , crea distraccin.4 si contacto establecido y polica distrada , conduce a enemigo
a piso ms alto de edificio cercano.5 si enemigo en piso alto de edificio cercano , asesnalo.6 si durante asesinato un polica observ , sobrnalo.7 CREENCIAS8 Para establecer contacto , invtalo a lugar pblico.9 Para crear distraccin , provoca emergencia extrema.
10 Para provocar emergencia extrema , contrata lugareos queincendien estacin de servicio cercana.
11 Para conducir enemigo a piso alto de edificio cercano ,propnle un negocio atractivo.
12 Para asesinarlo , provoca cada mortal desde ese piso alto.13 Para sobornar policia , entrgale mucho dinero.
Figura 1.4: Mataqun
compiten por recursos que siempre son de alguien:
La paloma nunca trata de hacerse con las posesiones de otros, sino que espera
a que sean abandonadas y ella misma abandona un recurso propio tan pronto es
atacada. Si dos de ellas compiten por el mismo recurso, entonces una de ella lo
obtendr (por suerte o paciencia) con la misma probabilidad para cada una. El
halcn siempre trata de apoderarse de los recursos de otros por medio de la agresin
y se rinde slo si recibe graves lesiones. El burgus nunca trata de hacerse con las
posesiones de otros, sino que espera hasta que son abandonadas, pero deende su
posesin contraatacando hasta que tiene xito o es derrotado[66].
Cuando dos individuos se encuentran tienen idnticas probabilidades de ganar o
perder y de ser, al inicio, dueos no del recurso. Por ejemplo, si dos halcones se
encuentran, uno de ellos obtendr el recurso con utilidad U , mientras el otro tendr
graves lesiones, con costo Cpelea. Como ambos tienen la misma oportunidad deganar, la utilidad esperada para cada uno es (UCpelea)
2.
Cules son las utilidades esperadas correspondientes cuando se enfrentan
una paloma y un halcn?.
Dadas esas reglas de conducta, la paloma nunca gana contra un halcn (y el halcn
nunca pierde contra una paloma). As que la utilidad para la paloma es 0 y para el
halcn es U . Noten que U es el valor puro del recurso a conquistar (otra simplicacin
muy gruesa).
Cules son las utilidades esperadas correspondientes cuando se enfrentan
una paloma y un burgus?12
12Cito la explicacin dada en Simulacin para las Ciencias Sociales de Nigel Gilbert y KlausTroitzsch
1.3. UNA REALIZACIN COMPUTACIONAL. 27
Cuando un burgus encuentra a otro individuo, cada uno de ellos puede ser el
dueo lcito del recurso rivalizado. Por ejemplo, si una paloma se encuentra con un
burgus y ambos compiten por el mismo recurso, entonces tenemos dos posibilidades
igualmente probables:
Caso 1: Si el burgus es el dueo legal del recurso, entonces conserva el recurso
(Beneficio = U), y la paloma no se lleva nada (Beneficio = 0).
Caso 2: Si la paloma es la duea legal del recurso, ambos deben esperar hasta
que alguno renuncie (lo cul les cuesta digamos Cespera) y, entonces, cadauno de ellos tiene igual probabilidad de lograr el recurso. As que el resultado
local esperado es U2 Cespera para cada uno.
De esta manera, el resultado global esU+(U
2Cespera)2
para el burgus y0+(U
2Cespera)2
para la paloma" (.ibid).
Noten que la utilidad global (para cada agente) es igual a Caso 1 Prob1 +Caso 2 Prob2, donde Prob1 = Prob2 = 1
2, pues se nos dice que ambos casos son
igualmente probables.
En el caso 2, adems, juega un papel la accin de esperar a que el recurso sea
abandonado (s, esperar tambin es una accin posible). Cmo no se sabe cul de los
dos va a renunciar primero en esa esperar, se dice que su probabilidad local asociada
es 12y como el benecio en disputa es U , la utilidad esperada local es de U
2, faltando
por descontar el precio de esperar que ambos pagan igualmente (Cespera).
Este ejemplo es particularmente interesante porque muestra el uso del concepto
de la utilidad esperada anidada (clculo de utilidad esperada sobre otra utilidad
esperada).
Cmo sera la utilidad global para ambos agentes?.
1.3.2.5. Agentes, Ontologas y la Web Semntica
Los ejemplos anteriores se referieren todos a descripciones de agentes en ciertos
roles muy puntuales. Pareciera que para tener un agente completo y funcional se
requiere de un esfuerzo mucho mayor. Lo cierto es que esto ltimo, incluso para
efectos de prestacin de servicios, no necesariamente es el caso.
Lo que queremos es mostrar a continuacin son dos ejemplos de modelos de
agentes que implementan otras dos nociones que se han vuelto fundamentales en la
Web: Los metadatos y el razonamiento no montono.
Una de las primeras aplicaciones naturales de la tecnologa de la Web Semn-
tica es la bsqueda de documentos. Con recursos como repositorios RDF y OWL
en la Web, uno puede imaginar un agente que nos ayude a ubicar documentos a
partir del tipo de conocimiento que contienen (y que buscamos). Por ejemplo, para
28 CAPTULO 1. LGICA PRCTICA
1 si me preguntan Quien Opina sobre Tema? y Quien es unavariante gramatical de Quienes y Opina es una variantesemntica de opinar y el anlisis del Tema arroja estosDescriptores entonces Rastreo la Web buscando todos losAutores de documentos con esos Descriptores.
Figura 1.5: Agente Web Semntica
responder preguntas como Quienes han escrito sobre el legado epistolar del Liber-
tador de Venezuela?, uno puede pensar en un agente con una META13 como la que
se muestra en la gura 1.5.
Esta meta requerir, desde luego, mecanismos de soporte (que podran conver-
tirse en creencias del agente) para realizar el anlisis del Tema que produce los
Descriptores y el Rastreo de la Web.
En la tarea de anlisis del tema, sera muy til contar con un mecanismo que
le permita al agente, en el caso particular de nuestra pregunta, traducir legado epis-
tolar en todos sus sinnimos e hipnimos. As el agente sabra que quien quiera
que declare haber escrito sobre las cartas del Libertador es un autor a revisar. Algo
similar habra que hacer con Libertador de Venezuela para que la mquina entienda
que se trata de Simn Bolvar. Esto ltimo requerira, desde luego, un mecanismo
adecuado para el caso venezolano-colombiano-ecuatoriano-peruano-boliviano.
Esta clase de relaciones de sinonmia, tanto universales como locales, son posi-
bles con sistemas comoWordNET una especie de diccionario y tesauro automtico.
WordNET codica una ontologa que le permite relacionar los trminos. Desafor-
tunadamente, esa ontologa no est escrita en ninguno de los lenguajes ontolgicos
de la Web Semntica, pero an as puede ser til.
La segunda tarea es tambin muy interesante. Requiere que nuestro agente
disponga de medios para identicar entre la enorme cantidad de documentos con-
tenidos en la Web, los autores y los descriptores de esos documentos. Esa informacin
que reere el contenido y otros atributos de los datos es conocida comometadata y
es fundamental para que las mquinas puedan contribuir a la gestin de los repos-
itorios de conocimiento. Hay muchos esfuerzos en la direccin de proveernos de
un standard de metadatos en la forma de una ontologa que explique que son y que
contienen los documentos formales. El Dublin Core[1] es quizs el ms avanzado de
esos esfuerzos.
Podemos ver, en ese primer ejemplo de agente para la Web Semntica, como se
incorporara el manejo de signicado en un agente que atienda consultas en la Web.
Hay, sin embargo, un siguiente nivel de complejidad en el manejo de signicados
para atender consultas. Algo que es bien conocido en Bases de Datos desde hace
13Agradecemos a Icaro Alzuru por motivar este ejemplo con su trabajo de maestra en Alejan-dra Inteligente: Un experimento en la Web Semntica con un sistema de gestin de documentoshttp://webdelprofesor.ula.ve/ingenieria/jacinto/tesis/2007-feb-msc-icaro-alzuru.pdf
http://webdelprofesor.ula.ve/ingenieria/jacinto/tesis/2007-feb-msc-icaro-alzuru.pdf
1.3. UNA REALIZACIN COMPUTACIONAL. 29
1 si me solicitan los Propietarios de terrenos en un reaentonces reportar Propietarios del rea.
2
3 Para reportar Propietarios del rea haga transforme ladescripcin del rea en un rea Geogrfica y LosPropietarios son los sujetos para quienes se cumple (ahora)que poseen propiedades contenidas en el rea Geogrfica.
Figura 1.6: Gea: El Agente Catastral
aos: El manejo de datos temporales y el razonamiento no montono.
Se llama razonamiento no montono a aquel que cambia de opinin o, mejor
dicho, a aquel con el cul el agente cambia de opinin, reemplazando lo que crea
antes por su opuesto. Tpicamente, un agente con cierto cmulo de creencias alcanza
ciertas conclusiones, pero si esas creencias cambian (debido quizs, a un cambio en
el mundo), las conclusiones tambin podran cambiar.
Los lectores del libro del Profesor Kowalski [57]podrn asociar esa forma de ra-
zonar con esos lenguajes lgicos que estudian en el captulo sobre el "cambiante
mundo" (las lgicas modales, el clculo de situaciones y el clculo de even-
tos). Permtan, sin embargo, un ltimo ejemplo con un agente que implementa una
forma de razonamiento no montono indispensable para la aplicacin a su cargo:
Imaginen un agente que maneja un repositorio de informacin catastral elemen-
tal14. Entre muchos otros tipos de consulta, este agente debe poder explicar quienes
son los propietarios de los terrenos en un rea dada. La meta de mantenimiento y
creencia correspondiente para este agente es simple y se muestra en g 1.6.
La ltima sub-meta (Los Propietarios..) es una consulta que se podra responder
con una versin extendida del clculo de situaciones, o el de eventos, congurada
para lidiar con propiedades y reas geogrcas. Lo importante en este caso es que
si a este agente se le hace la consulta en un momento dado, su respuesta bien puede
variar respecto a otro momento si han ocurrido eventos que cambien las relaciones
propiedad-propietario en ese rea geogrca.
Desde luego, este agente tendra que operar con conocimiento que le permita aso-
ciar cualquier descripcin de un rea (por ejemplo, en trminos polticos: parroquia,
municipio, pas, etc) con un conjunto de coordenadas standard. Ms importante
an, el agente requerira de un registro sistemtico de los eventos de compra y venta
de propiedades que incluya los detalles de cada propietario y propiedad (incluyendo
la ubicacin de cada una, desde luego). Todo este conocimiento bien puede estar
almacenado en un repositorio asociado con una ontologa de registro catastral (por
ejemplo, un archivo, con etiquetas del lenguaje para ingeniera ontolgica OWL15
14Agradecemos a Nelcy Patricia Pia por motivar este ejemplo con su trabajo de maestra enUna Ontologa para Manejo de Informacin Catastral http://webdelprofesor.ula.ve/ingenieria/jacinto/tesis/2006-mayo-msc-nelcy-pina.pdf
15http://www.w3.org/TR/owl-features/
http://webdelprofesor.ula.ve/ingenieria/jacinto/tesis/2006-mayo-msc-nelcy-pina.pdfhttp://webdelprofesor.ula.ve/ingenieria/jacinto/tesis/2006-mayo-msc-nelcy-pina.pdfhttp://www.w3.org/TR/owl-features/
30 CAPTULO 1. LGICA PRCTICA
1 si mepregunta(Preg), significa(Preg , Sig), not(Sig=[no,entiendo |]) entonces respondoa(Sig).
2 si mepregunta(Preg), significa(Preg , Sig), Sig=[no, entiendo |]entonces disculpas(Sig).
3 para respondoa(S) haga rastrear(S), mostrar(S).
Figura 1.7: Kally
1 pregunta ([V|S]) --> prointerrog , vatributivo(V), satributivo(S).
2 pregunta ([V|S]) --> advinterrog , sverbal(V), satributivo(S).3 pregunta ([V|S]) --> sverbal(V), satributivo(S).4 pregunta ([no, entiendo , tu, pregunta , sobre|S]) --> atributo(S
).5
6 sverbal(V) --> vmodal , vinfinitivo(V).7 sverbal(V) --> vinfinitivo(V).8 sverbal(V) --> vconjugado(V).9 satributivo(S) --> especificador , atributo(S).
10 satributivo(S) --> atributo(S).
Figura 1.8: La Gramtica Espaola de Kally
especcas para el problema catastral).
Esos dos ejemplos, informales y muy simples, pueden servir para ilustrar la ex-
traordinaria riqueza de posibilidades en este encuentro entre la Web, la lgica y los
agentes.
1.3.2.6. Kally: Agente para atencin a usuarios y enseanza isocntrica
Los agentes Web Semntica y Gea Catastral dejan ver someramente la importan-
cia del procesamiento del lenguaje natural en la Inteligencia Articial. Es, todava,
una de las fronteras ms activas de investigacin y promete grandes avances, siempre
que logremos contener el entusiamo que produce la posibilidad de interactuar con el
computador en los mismos trminos (lenguaje) que usamos con otros humanos.
Kally16 es un pequeo agente diseado para asistir a los humanos en el uso de
una herramienta Omtica, OpenOce, interactuan en una forma controladada de
lenguaje natural. En g 1.7, 1.8 y 1.9 se muestra el cdigo de Kally en una versin
preliminar de Gloria (ver captulo 2).
Kally tiene slo un par de reglas simples, pero tiene tambin una gramtica
interconstruda (el predicado pregunta) que le permite entender ciertas preguntas
simples en Espaol y establecer su signicado" (es decir, lo que debe hacer al
respecto). La gramtica est formalizada usando un lenguaje conocido como DCG,
Denite Clause Grammar.
16http://kally.sourceforge.net
http://kally.sourceforge.net
1.3. UNA REALIZACIN COMPUTACIONAL. 31
1 prointerrog --> ['qu '];[ que];[ cual ];[ cuales ]; ['cules ']; [cuantos ];[ cuantas ].
2 especificador --> [el];[la];[lo];[los];[las];[un]; [una];[ unos];[ unas ];[mi];[mis].
3 vatributivo(es) --> [es];[son];[ significa ].4 advinterrog --> ['cmo '];[ como ];[ cuando ]; [donde ];[por , que];
[por , 'qu '].5 vmodal --> [puedo ];[ puede ];[ podemos ].6 vinfinitivo(utilizar) --> [utilizar ].7 vinfinitivo(abrir) --> [abrir].8 vinfinitivo(salvar) --> [guardar ].9 vinfinitivo(salvar) --> [salvar ].
10 vinfinitivo(crear) --> [crear].11 vinfinitivo(instalar) --> [instalar ].12 vinfinitivo(instalar) --> [reinstalar ].13 vinfinitivo(definir) --> [definir ].14 vinfinitivo(realizar) --> [realizar ].15 vinfinitivo(agregar) --> [agregar ].16 vinfinitivo(agregar) --> [anadir ].17 vinfinitivo(exportar) --> [exportar ].18 vinfinitivo(insertar) --> [insertar ].19 vconjugado(guardar) --> [guarda ].20 vconjugado(desinstalar) --> [desinstalo ].21 vconjugado(ubicar) --> [existe ].22 vconjugado(usar) --> [uso].23 vconjugado(cambiar) --> [cambio ].24 vconjugado(instalar) --> [instalo ].25 vconjugado(crear) --> [creo].26 vconjugado(estar) --> [esta].27 vconjugado(actualizar) --> [actualizo ].28 prep -->[a];[ como ];[con];[de];[ desde ];[ durante ];[en];[ entre ];[
hacia ];[ mediante ];[ para ];[por];[sin];[ sobre].29 atributo(T,T,).
Figura 1.9: El Lxico Espaol de Kally
32 CAPTULO 1. LGICA PRCTICA
1.3.2.7. El Clculo de Eventos y El disparo de Yale
El sentido comn, esa intuicin bsica que nos permite actuar correctamente
sin, aparentemente, pensarlo demasiado, se ha constitudo en uno de los mayores
desafos en la IA, al punto que algunos problemas referenciales al tema se han vuelto
muy populares.
En la historia del Disparo de Yale, una persona es asesinada de un disparo.
Para una posible formalizacin uno considera tres acciones: cargar (el arma), esperar
y disparar ; y dos propiedades: vive y cargada. La accin cargar coloca una bala en
el arma. La vctima muere despus del disparo, siempre que el arma est cargada en
ese instante. Se asume que la vctima vive al principio y tambin que el arma est
descargada entonces.
Considere el axioma central del Clculo de Eventos:
0) Se cumple un Hecho 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.
Suponga que nos piden completar este axioma con las reglas y hecho necesarios para
describir el problema del Disparo de Yale. Con todas esas reglas, debemos probar
(con un argumento formal) que: no se cumple que (la vctima) vive en en ltimo
momento del cuento.
La historia se puede describir, con algo de formalizacin, as:
1) La (presunta) vctima nace en el momento 0.
2) No es cierto que el arma est cargada en el momento 0.
3) El (presunto) asesino carga el arma en el momento 1.
4) El asesino espera entre el momento 1 y el momento 2.
5) El asesino dispara en el momento 2.
Con la misma terminologa podemos escribir las reglas complementarias especcas
a esta situacin:
6) El evento Un agente (le) dispara en el momento T termina el hecho la
vctima vive en T si se cumple que el arma est cargada antes de T.
7) El evento Un agente (le) dispara en el momento T termina el hecho el arma
esta cargada en T si se cumple que el arma est cargada antes de T.
8) El evento Un agente carga el arma en el momento T inicia el hecho el arma
est cargada en el momento T.
1.3. UNA REALIZACIN COMPUTACIONAL. 33
9) El evento Un agente nace en el momento T inicia el hecho el agente vive en
el momento T.
Con esas reglas razonamos hacia atrs a partir del hecho de que no se cumple que
la vctima vive en el ltimo momento del cuento. Digamos que ese momento es
momento 3.
10) no se cumple que la vctima vive en el momento 3.
de 10) y 0) se obtiene:
11) no (es cierto que) a) un evento ocurri antes del momento 3, b) ese evento inici
(el hecho de que) la vctima vive y c) no hay otro evento que ocurra luego de
ese evento iniciador y antes del momento 3 y que termine el hecho de que la
vctima vive.
Pero 11) se puede reescribir por equivalencia lgica no (a y b y no c) = (no a)
o (no b) o c, as:
11') no a) es cierto que un evento ocurri antes del momento 3, o no b) inici ese
evento el hecho de que la vctima vive, o c) hay otro evento que ocurra luego
de ese evento iniciador y antes del momento 3 y que termina el hecho.
11') se transforma en 12) al considerar a 1),
12) hay otro evento que ocurra luego del evento iniciador vctima nace en mo-
mento 0 y antes del momento 3 y que termine el hecho de que la vctima
vive.
Pero, por 5), sabemos que hay un candidato a posible terminador, con lo que 12) se
reduce a 14), luego de considerar a 13)
13) el asesino dispara en momento 2 termina el hecho de que la vctima
vive.
As, por 6), pasamos a preguntarnos si 14)
14) el arma est cargada en el momento 2.
y gracias a 0), 3) y 2) (y que la accin de esperar no cambia nada), podemos probar
a 14 con un par de pasos similares a los anteriores. Fin de la prueba. Visto as parece
increble que un computador lo pueda resolver. Pero lo resuelve.
34 CAPTULO 1. LGICA PRCTICA
1 si inspiracion_sistemica entonces crear_obra_tipo(holistica ,Obra).
2
3 para crear_obra_tipo(holistica , Obra) hagaseleccionar_elementos(holistica , Elementos), plasmar(Elementos , Obra).
4
5 para seleccionar_elementos(Tipo , [Elemento ]) hagatomar_elemento(Tipo , Elemento).
6 para seleccionar_elementos(Tipo , [R|Resto]) hagatomar_elemento(Tipo , R), seleccionar_elementos(Tipo , Resto).
7
8 para tomar_elemento(holistica , nota(do)) haga true.9 para tomar_elemento(holistica , color(azul)) haga true.
10 para tomar_elemento(holistica , textura(suave)) haga true.11
12 para plasmar ([nota(do)], sonidobajo) haga true.13 para plasmar ([nota(do), color(azul)], azulprofundo) haga true.14 para plasmar ([nota(do), color(azul), textura(suave)], extasis
) haga true.
Figura 1.10: El Artista
1.3.2.8. El Agente Artista
Considere las reglas en la gura 1.10 que son parte de un agente artista holstico.
Suponiendo que este agente observa inspiracion_sistemica, vemos como, paso
a paso, este agente artista producira un plan para la creacin de una obra con la
mayor cantidad de elementos posibles. Asegrese de explicar en que consiste la Obra
planeada.
Razonando hacia adelante con la primer regla, el agente produce su primer meta
de logro:
1) crear_obra_tipo(holistica, Obra)
noten que la escribimos en notacin Prolog para hacer ms fcil la representacin
subsiguiente. Razonando hacia atrs a partir de 1) usando segunda regla obtenemos:
2) seleccionar_elementos(holistica, Elementos) y
plasmar(Elementos, Obra).
Para resolver la primer submeta de 2) tenemos dos reglas (la tercera y cuarta arriba),
por lo que 2) se convierte en 3)
3) tomar_elemento(holistica, [Elemento]) y
plasmar([Elementos], Obra), o
tomar_elemento(holstica, R) y
seleccionar_elementos(holistica, Resto) y
plasmar([R|Resto], Obra).
1.3. UNA REALIZACIN COMPUTACIONAL. 35
Uno podra, si no es cuidadoso con lo que se nos pide, terminar la prueba con la
primera opcin (antes del ,o). Pero eso producira una obra con un solo elemento.
Eso es justamente lo que NO se nos pide. Por esta razn, un agente inteligente
buscara la segunda alternativa y, luego de sucesivos renamientos obtendra algo
como 4)
4) tomar_elemento(holistica, [Elemento]) y
plasmar([Elementos], Obra), o
tomar_elemento(holistica, nota(do)) y
tomar_elemento(holistica, color(azul)) y
tomar_elemento(holistica, textura(suave)) y
plasmar([nota(do), color(azul), textura(suave)], Obra)
el cual, al ser ejecutado, implicara Obra = extasis que consiste en esta lista de
elementos:
[nota(do), color(azul), textura(suave)]
El truco ac era observar que una reduccin hacia atrs, izquierda a derecha (tal
como lo hace Prolog) no nos conduce a la obra pretendida (que debe tener el mximo
numero de elementos posibles). Fin de la prueba.
1.3.2.9. Como lidiar con la inacin
Presentamos el siguiente ejemplo en este captulo para ilustrar un caso mucho
ms complejo (y humano) del modelado lgico de un agente. El Prof Carlos Domingo
se plante el siguiente conjunto de reglas para enfrentar el problema de la inacin
que afectara sus ingresos como acadmico17
"Meta: Evitar las prdidas en mis ahorros causadas por la inacin de
este ao.
Creencias:
1. Durante el ao en curso, se espera que los precios aumenten en un 30
por ciento en artculos como libros, del hogar, medicinas y ropas. En
los artculos bsicos (comida y transporte nacional), el incremento
puede ser menor al 10 por ciento debido al control de precios y,
adems, es probable que sea compensado con un aumento salarial.
Pero mis ahorros anteriores podran ser afectados por la inacin.
2. Las tasas de inters estimadas para este ao en un 13 por ciento
no compensarn la inacin. Por lo tanto, depositar el dinero el
banco no es una buena estrategia para proteger mis ahorros. Otras
alternativas deben ser consideradas.17Tomado de las notas de curso del Prof. Carlos Domingo, ULA. 2005
36 CAPTULO 1. LGICA PRCTICA
Restricciones:
1. No debera tomarme mucho tiempo para encontrar una solucin.
Tengo trabajo pendiente.
2. No debo comprometerme a trabajos posteriores a este ao.
3. Cualquiera que sea la decisin no deben disminuir mi ingreso total
anual."
Tomando eso en consideracin, Carlos Domingo decide que sus metas inmediatas
son:
1. "Conseguir un ingreso adicional que no dependa de sus ahorros para compensar
por la inacin. Para ello puedo:
a) Participar en proyectos universitarios extra que le den un ingreso extra
(obvenciones). Esto podra chocar con la restriccin 1 porque es dicil
conseguir proyectos en mi rea de trabajo.
b) Ocuparme en negocios privados que siempre estn disponibles. Esto choca
con todas las restricciones.
2. Invertir mis ahorros (total o parcialmente) para obtener benecios equivalentes
a las prdidas esperadas. Para ello puedo:
a) Comprar acciones (pero esto requiere tiempo y puede contrariar a las
restricciones 1 y 2).
b) Comprar bienes 'durables' para vender en el futuro. Tendra que tener
cuidado con los precios futuros y la obsolescencia.
c) Mudar mis ahorros a moneda extranjera. Difcil debido al control cam-
biario y muy riesgoso debido a una posible devaluacin de esa moneda
extranjera. "
El Prof. Carlos ha concludo que una combinacin de 1a y 2b es la mejor decisin
posible (una combinacin de ambas estrategias minimizara el riesgo de fallar com-
pletamente).
Suponga que Carlos Domingo posee una cierta cantidad en AHORROS al INICIO
del ao y monto total por su SALARIO en todo el ao. Ayudemos a Carlos a
proponer una justicacin formal de su decisin. Un anlisis de utilidad completo
supondra estimar las utilidades esperadas de cada opcin. Esto puede consumir
mucho tiempo y, en algunos casos, an as no mejorara la evaluacin. As que,
atendiendo a las conclusiones del mismo profesor, uno se puede concentrar en las
dos alternativas de accin que le parecen las mejores decisiones.
1.3. UNA REALIZACIN COMPUTACIONAL. 37
Carlos fallara si sus ahorros son consumidos por la inacin. Es decir, si al nal
del ao sus AHORROS no satisfacen:
AHORROS 5 AHORROS_INICIALES 1,3 (1.1)
El valor a la derecha de la desigualdad es el mnimo valor razonable para la
utilidad esperada global de las acciones que se plantea el profesor. Esas acciones
son:
1. ganar obvenciones por proyectos extras y
2. invertir en durables.
La probabilidad de ganar obvenciones por proyectos extras, ProbObv, es menor al
0.5. As que la utilidad estimada de la accin 1 es:
utilidad1 = ProbObv OBV ENCIONES (1.2)
Invertir en durables signica: 1.- Adquirirlos a buen precio y, desde luego, con un
costo no superior al monto en ahorros en ese momento y 2.- venderlos a un precio
justo. La probabilidad de adquirirlos a buen precio es ProbAdDur. La probabilidad
de venderlos es ProbV enta. As, la utilidad de accin 2, suponiendo independencia
entre compra y venta, puede ser aproximada por:
utilidad2 = ProbAdDur ProbV enda (1.3)
(PRECIOJUSTO
AHORROS_ESPERADOS)
donde AHORROS_ESPERADOS es una variable que agrega el SALARIO, un
probable aumento, la inacin y los gastos de cada tipo en que incurra el Profesor.
Por ejemplo:
AHORROS_ESPERADOS = SALARIO (1.4)
+ProbAumento AUMENTO
GASTOS_BASICOS 1,10
OTROS_GASTOS 1,3
As que los escenarios que satisfacen la siguiente frmula son los que justicaran
la decisin de Carlos:
ProbObv OBV ENCIONES + (1.5)
38 CAPTULO 1. LGICA PRCTICA
1 Metas: Si puedo , abuso.2 Si me da flojera , no trabajo.
1 Creencias: Abuso si gano sin merecerlo.
2 Puedo si nadie sospecha de m.
3 Nadie sospecha de m si me oculto tras la complejidad.
4 Me oculto tras la complejidad cuando toda evaluacin es
compleja y el sistema judicial no funciona.
5 Una evaluacin se complica si no hay memoria.
6 No hay memoria si los datos no se colectan o se pierden.
7 No lo merezco si no trabajo.
8 El sistema judicial no funciona si no hay jueces confiables y
las exenciones y excepciones son arbitrarias.
9 Las exenciones y excepciones son arbitrarias si la evaluacin
es compleja.
10 Los datos slo se colectan y se preservan si hay un observador
independiente encargado de cuidarlos.
Figura 1.11: Rentn
ProbAdDur ProbV enda (SALARIO
+ProbAumento AUMENTO
GASTOS_BASICOS 1,10
OTROS_GASTOS 1,3) >
AHORROS_INICIALES 1,3
simple?
1.3.2.10. Rentn
Los ejemplos anteriores ilustran cmo la lgica combina muy bien con otras her-
ramientas matemticas para abordar problemas complejos. Permtannos completar
esta coleccin de ejemplos con uno que, a nuestro juicio, pulsa la expresividad del
lenguaje contra un tipo extremo de complejidad: la representacin del discurso y
la accin poltica. Tenemos, en Venezuela, un problema muy complejo al cual slo
se le ha llegado con discursos oscuros o con referencias claras pero muy tmidas: el
problema del rentismo. Algunos lo caracterizan como un fenmeno econmico que
est asociado a la dependencia de la economa nacional de un producto de altsima
renta, el petrleo, que genera unos benecios extraordinarios respecto al esfuerzo de
produccin (lo cul lo convierte en un fenmeno econmico) y, segn alegan, induce
una conducta peculiar y una dudosa moralidad en muchos venezolanos.
El desafo que nos proponemos ac es triple. Primero, caracterizar, como hicimos
al principio del captulo, al agente responsable de tal conducta con la coleccin de
reglas que se muestra en la gura 1.11. El desafo se duplica porque esperamos que
el lector pueda separarse del contexto socioeconmico que dibuja el prrafo anterior
y an as ver la asociacin con el agente. Pero, para que sea an ms interesante (el
1.3. UNA REALIZACIN COMPUTACIONAL. 39
triple desafo), vamos a razonar como Rentn en una situacin particular, ilustrndo
aquella nocin de pensamiento preactivo, intermedia entre pensamiento reactivo y
pensamiento proactivo en la teora de Kowalski.
Por simplicidad, sin embargo, permtannos tambin dispensar con el protocolo de
observacin, pensamiento y accin y suponer que el agente Rentn est, mayormente,
pensando. As, a partir de su primer meta:
Si puedo , abuso
y su segunda creencia:
Puedo si nadie sospecha de m.
obtiene:
Si nadie sospecha de m, abuso
y un paso ms all, gracias a la creencia:
Nadie sospecha de m si me oculto tras la complejidad.
conduce a:
Si me oculto tras la complejidad , abuso.
Continuando con esa misma "lnea de pensamiento" y usando la creencia:
Me oculto tras la complejidad cuando
toda evaluacin es compleja
y el sistema judicial no funciona.
aquella regla se reduce a:
Si toda evaluacin es compleja y
el sistema judicial no funciona , abuso
La quinta creencia, con algo de ajuste sintctico/semntico (complicado es igual
que complejo?) permitira:
Si no hay memoria y
el sistema judicial no funciona , abuso
La sexta creencia, conduce a:
Si (los datos no se colectan o se pierden) y
el sistema judicial no funciona , abuso
Esa disjuncin en una de la condiciones de la regla podra requerir algo de
tratamiento lgico. Sin embargo, en esta ocasin, otra regla, la ltima creencia (con
algo de ajuste semntico), ofrece una forma rpida de reducir a:
Si no hay un observador independiente de los datos y
el sistema judicial no funciona , abuso
40 CAPTULO 1. LGICA PRCTICA
Este es un buen lugar para detenerse a observar las transformaciones que deben
tener lugar para acoplar (o aparear) esas dos reglas (usando la ltima creencia). Es
importante notar que hay un "slo" en el texto de la creencia.
El lector acucioso podr vericar que la segunda condicin de esta ltima regla
se disuelve en la primera (pruebe reducindolas con las creencias penltima y ante-
penltima y, bueno, suponga que no hay jueces conables). Con lo que la regla se
transforma en:
Si no hay un observador independiente de los datos , abuso
Este es tambin es un buen lugar para plantearse preguntas sobre las capacidades
del agente. Qu puede este agente hacer para alcanzar sus metas. Uno podra es-
pecular, por ejemplo, que "hay un observador .." es una observacin posible para el
agente (es una proposicin observable). Si es as, esta regla quedara latente como
una meta derivada en espera de activarse. Cuandoquiera que "no haya un observador
independiente de los datos" el agente podr deducir la meta a simplemente:
abuso
que puede ser entonces (o antes) sometida a su propio proceso de reduccin usando
la primer creencia (con algo de exibilidad semntica tambin):
no lo merezco y gano
Por otro lado, quizs no sea demasiado exagerado suponer que "para que no
haya ningn observador independiente de los datos", el agente dispone de la accin
"eliminar a todos los observadores de los datos". En este caso, podra usar la regla
para derivar:
Si elimino todos los observadores independientes , abuso
y desde all, el plan parcial (porque podramos pensar que no est completamente
reducido a acciones):
elimino (todos los observadores) y no lo merezco y gano
La sptima creencia nos acerca un poco ms a un plan completo:
elimino y no trabajo y gano
Este plan tiene el inconveniente de depender de una meta, "no trabajo", que
quizs (slo quizs) no est entre las capacidades del agente (quizs si entre las
incapacidades, pero digamos que no es algo que el agente haga). Este es un plan
preactivado o preactivo. Si existiera otra forma de establecer (alcanzar) esa meta,
el plan podra completarse o reducirse solamente a acciones del agente. Para ello
podra servir las segunda meta y la observacin de que "me da ojera", con lo que
el plan se reducira a:
elimino y tengo flojera y gano
1.3. UNA REALIZACIN COMPUTACIONAL. 41
que incluye esa observacin que, como acabamos de decir, puede provenir del ambi-
ente (en este caso, del cuerpo del agente si se trata de una forma de cansancio).
Este es, se admite, un ejercicio de reduccin extrema de una realidad muy com-
pleja. Estamos seguros, sin embargo, que muchos lectores harn la conexin entre
esta caricatura de plan y el comn y sufrido concepto de "desidia" que contamina
algunos espacios pblicos con una combinacin de pereza y un enorme desdn por
los datos y la informacin.
Hay todava varios otros ejemplos por discutir. En particular, hemos reservado
espacio separado para los agentes del cambio estructural en el captulo 2 y para los
motores de minera de datos y los agentes aprendices, en el captulo 3. Ejemplos
estos que cuentan ya con una realizacin computacional completa (disponible en el
repositorio Galatea18).
18http://galatea.sourceforge.net
http://galatea.sourceforge.net
42 CAPTULO 1. LGICA PRCTICA
Captulo 2
Simulacin con Agentes y Lgica
Introduccin
En captulo anterior presentamos una prctica de lgica. En este presentaremos
una prctica de simulacin. Suponemos que el lector tiene algunos conocimientos
mnimos del tema, que podr refrescar con referencias que iremos dictando a lo largo
del captulo. Como quiera tambin que una prctica requiere conocimientos mnimos
de un lenguaje, referimos al lector al apndice A para una breve introduccin al
lenguaje de programacin que empleamos en el captulo.
2.1. Directo al grano
Este segundo captulo tiene como propsito dirigir a un simulista en la creacin
de un modelo de simulacin Galatea1. Nos proponemos hacer eso en dos fases. En
la primera, mostramos paso a paso cmo codicar en Java un modelo bsico para
Galatea. En la segunda fase, repetimos el ejercicio, pero esta vez sobre un modelo
de simulacin multi-agente de tiempo discreto.
La intencin trascendente del captulo es motivar ejercicios de hgalo Ud mismo
o misma, luego de darle al simulista las herramientas lingsticas bsicas. Explicar la
infraestructura de simulacin que las soporta nos tomar tiempo en el resto del libro.
El lector no debera preocuparse, entretanto, por entender los conceptos subyacentes,
ms all de la semntica operacional de los lenguajes de simulacin. En otro lugar
explicamos que Galatea es una familia de lenguajes de simulacin. En estas primeras
secciones, por simplicidad, slo usamos Java.
2.2. El primer modelo computacional
Galatea hered la semntica de Glider[22]. Entre varias otras cosas, esto signica
que Galatea es, como Glider, orientado a la red. Esto, a su vez, reeja una postura
1Repositorio Galatea http://galatea.sourceforge.net
43
http://galatea.sourceforge.net
44 CAPTULO 2. SIMULACIN CON AGENTES Y LGICA
particular de parte del modelista que codica el modelo computacional en Galatea.
En breve, signica que el modelista identicar componentes del sistema modela-
do y los ordenar en una red, cuyos enlaces corresponden a las vas por las que
esos componentes se comunican. La comunicacin se realiza, normalmente (aunque
no exclusivamente como veremos en los primeros ejemplos) por medio de pase de
mensajes.
La simulacin se convierte en la reproduccin del desenvolmiento de esos com-
ponentes y de la interaccin entre ellos. Esta es, pura y simple, la idea original de
la orientacin por objetos que comentabamos al principio del captulo anterior.
En Glider, y en Galatea, esos componentes se denominan nodos. Los hay de 7
tipos: Gate, Line, Input, Decision, Exit, Resource, Continuous y Autonomous2
Estos 7 tipos son estereotipos de componentes de sistemas que el lenguaje ofrece
ya pensandos al modelista. El modelista, por ejemplo, no tiene que pensar en cmo
caracterizar un componente de tipo recurso. Slo debe preocuparse de los detalles
especcos de los recursos en el sistema a modelar, para luego incluir los correspon-
dientes nodos tipo Resource en su modelo computacional. Esta es la manifestacin
de otra idea central de la orientacin por objetos: la reutilizacin de cdigo.
Una de las lneas de desarrollo de Galatea apunta a la creacin de un programa
traductor para la plataforma. Ese interpretador nos permitir tomar las especica-
ciones de nodos en un formato de texto muy similar al que usa Glider (lo llamaremos
nivel Galatea) y vertrlas en cdigo Java, primero y, por esta va, en programas
ejecutables despus.
An con ese traductor, sin embargo, siempre ser posible escribir los programas
Galatea, respetando la semntica Glider, directamente en Java (lo llamaremos nivel
Java). Hacerlo as tiene una ventaja adicional: los conceptos de la orientacin por
objetos translucen por doquier.
Por ejemplo, para denir un tipo de nodo, el modelista que crea una clase Java
que es una subclase de la clase Node del paquete galatea.glider. Con algunos
ajustes de atributos y mtodos, esa clase Java se convierte en un Node de alguno de
los tipos Glider. Para armar el simulador a nivel Java, el modelista usa las clases
as denidas para generar los objetos que representan a los nodos del sistema.
De esta forma, lo que llamamos un modelo computacional Galatea, a nivel Java,
es un conjunto de subclases de Node y, por lo menos una clase en donde se denen
las variables globales del sistema y se coloca el programa principal del simulador.
Todo esto se ilustra en las siguientes subsecciones, comenzando por las subclases
de Node.
2Los primeros 5 dan cuenta del nombre del lenguaje GLIDER. Note el lector que Galateatambin es un acrnimo, slo que seleccionado para rendir tributo al gnero femenino como nosensearon varios maestros de la lengua espaola.
2.2. EL PRIMER MODELO COMPUTACIONAL 45
Algoritmo 2.1 Delta.java
1 /*
2 * Delta.java
3 *
4 * Updated on October 6, 2011, 10:18 PM
5 */
6
7 package demos.grano;8
9 // import galatea .*;
10 import galatea.glider .*;11
12 /**
13 *
14 * @author Jacinto Davila
15 * @version beta 2.0
16 */
17 public class Delta extends Node {18 private static int maxINO = -1;19 /** Creates new CambioEdo */
20 public Delta() {21 super("delta", ++maxINO ,'A');22 }23
24 /** una funcion cualquiera para describir un fenomeno */
25 double f(double x) {26 return (Math.cos(x/5) + Math.sin(x/7) + 2) * 50 / 4;27 }28
29 /** funcion de activacion del nodo */
30 public void fact(){31 Modelo.variableDep = f(( double)Modelo.variableInd);32 Modelo.variableInd ++;33 it(1);}34
35 }
2.2.1. Nodos: componentes del sistema a simular
Tomemos la caracterizacin ms primitiva de un sistema dinmico: Una mquina
abstracta denida por un conjunto de variables de estado y una funcin de transicin,
normalmente etiquetada con la letra griega , que actualiza ese estado a medida
que pasa el tiempo. Una caracterizacin tal, es monoltica: no hay sino un solo
componente y sus rgimen de cambio es el que dicta .
La especicacin de ese nico componente del sistema sera, en el Nivel Java,
similar al cdigo del algoritmo 2.1.
Como el lector reconocer (seguramente luego de leer el apndice A), algoritmo
2.1 contiene la especicacin de una clase Java, Delta, del paquete contrib.Grano,
que acompaa la distribucin Galatea.
46 CAPTULO 2. SIMULACIN CON AGENTES Y LGICA
Noten que esta clase importa (usa) servicios de los paquetes galatea y galatea.glider.
El primero de estos paquetes, como se dice en el apndice A, contiene servicios
genricos de toda la plataforma (como la clase List). Ese paquete no se usa en este
ejemplo tan simple. Pero seguramente ser importante en ejemplos ms complejos.
El segundo paquete almacena toda la coleccin de objetos, clases necesarios para
que la plataforma Galatea ofrezca los mismos servicios que el tradicional compilador
Glider, incluyendo el ncleo del simulador (en la clase galatea.glider.Glider).
Los tres mtodos que se incluyen en la clase Delta son paradigmticos (es decir,
un buen ejemplo de lo que suelen contener esas clases).
El primero es el constructor. Noten la invocacin al constructor de la superclase
super("delta", ++maxINO, 'A'). Los parmetros corresponden a un nombre para
la coleccin de nodos, el segundo a un identicador para cada individuo de la colec-
cin y el tercero a un caracter que identica el tipo de nodo en la semntica Glider3.
Esa 'A' indica que es un nodo autnomo lo que, por el momento, signica que es
un nodo que no envia, ni recibe mensajes de otros nodos.
La segunda instruccin del constructor agrega el nuevo nodo a la lista de todos
los nodos del sistema.
El mtodo con el nombre f es simplemente una implementacin auxiliar que
podra corresponder a la especicacin matemtica de la funcin de transicin del
sistema en cuestin.
Finalmente en esta clase Delta, el mtodo fact() contiene el cdigo que ser
ejecutado cada vez que el nodo se active. Es decir, en el caso de los nodos autnomos,
cada vez que se quiera reejar un cambio en el componente que ese nodo representa.
Este cdigo de f