150

Lógica Práctica y Aprendizaje Computacionalwebdelprofesor.ula.ve/ingenieria/jacinto/libros/logica-practica... · exigencia de "consistencia" que se le hace a cualquier código lógico

  • Upload
    ngohanh

  • View
    226

  • Download
    0

Embed Size (px)

Citation preview

  • 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