Traducido del inglés

GOLOG es un lenguaje de programación lógica de alto nivel para especificar y ejecutar acciones complejas en dominios dinámicos, basado en el cálculo de situaciones. Desarrollado en la Universidad de Toronto, permite razonar sobre acciones y cambios en aplicaciones de inteligencia artificial.

GOLOG es un lenguaje de programación lógica de alto nivel diseñado para la especificación y ejecución de acciones complejas en dominios dinámicos. Se fundamenta en el cálculo de situaciones, un formalismo lógico de primer orden para razonar sobre la acción y el cambio. Desarrollado en la Universidad de Toronto, GOLOG permite que un intérprete mantenga una caracterización directa del mundo modelado, habilitando a las aplicaciones para razonar sobre precondiciones, efectos y secuencias de acciones potenciales antes de comprometerse con un curso de acción específico.

A diferencia de los lenguajes procedimentales convencionales como C, que ejecutan sentencias en un orden lineal predeterminado, GOLOG opera sobre un modelo abstracto. El código fuente define el problema y el intérprete genera la secuencia de acciones, lo que lo convierte en un lenguaje de programación de quinta generación. Este enfoque es particularmente adecuado para dominios complejos como la robótica, donde el solucionador debe determinar dinámicamente la siguiente acción basándose en el estado actual.

Antecedentes históricos

El cálculo de situaciones, el formalismo fundacional de GOLOG, fue propuesto por primera vez por el pionero de la IA John McCarthy en 1963. Este marco lógico proporcionó una manera de representar mundos dinámicos, acciones y sus efectos, sentando las bases para lenguajes de programación posteriores que pudieran razonar sobre la acción y el cambio. GOLOG surgió de esta tradición, integrando el cálculo de situaciones en un paradigma de programación práctico.

Descripción del lenguaje

Un intérprete de GOLOG mantiene automáticamente una caracterización directa del mundo dinámico modelado, basándose en axiomas proporcionados por el usuario sobre precondiciones, efectos de las acciones y el estado inicial. Esto permite que la aplicación razone sobre la condición del mundo y considere los impactos de diferentes acciones potenciales antes de centrarse en una específica. El lenguaje define un espacio de estados en el que se permite operar a un agente, y se encuentra una ruta mediante la búsqueda en el espacio de estados. Para acelerar este proceso, los programas GOLOG a menudo se realizan como redes jerárquicas de tareas.

GOLOG es un lenguaje de programación lógica, distinto de los lenguajes de programación convencionales. En un lenguaje procedimental como C, el programador crea una subrutina con sentencias que la computadora ejecuta linealmente. En contraste, GOLOG trabaja con un modelo abstracto, y el intérprete genera la secuencia de acciones. El código fuente define el problema, y depende del solucionador encontrar la siguiente acción, facilitando la gestión de problemas complejos desde la robótica y otros dominios.

Extensiones y dialectos

Más allá del GOLOG original, se han desarrollado varias extensiones. ConGOLOG proporciona concurrencia e interrupciones, permitiendo comportamientos de agente más complejos. Otros dialectos como IndiGOLOG y Readylog se crearon para aplicaciones en tiempo real donde las lecturas de sensores se actualizan sobre la marcha. Estas extensiones amplían la aplicabilidad de GOLOG a entornos dinámicos e interactivos.

Aplicaciones

GOLOG se ha utilizado para modelar el comportamiento de agentes autónomos, combinando un formalismo de acción basado en lógica para describir el entorno con constructos para construir acciones complejas utilizando características típicas de los lenguajes de programación. Se aplica en el control de alto nivel de robots y procesos industriales, agentes virtuales y simulación de eventos discretos. Además, GOLOG puede usarse para desarrollar sistemas de agentes de tipo Creencia-Deseo-Intención (BDI), que son comunes en sistemas multiagente y robótica cognitiva.

Planificación y scripting

En contraste con el Lenguaje de Definición de Dominios de Planificación (PDDL), GOLOG admite tanto planificación como scripting. La planificación implica definir un estado objetivo en el modelo del mundo, y el solucionador lleva el sistema lógico a ese estado. El scripting de comportamiento implementa procedimientos reactivos que se ejecutan como un programa de computadora. Por ejemplo, en la autoría de historias, el usuario define lo que debería ser verdadero al final de la trama. Un solucionador aplica acciones posibles a la situación actual hasta que se alcanza el estado objetivo, con la especificación del estado objetivo y las acciones posibles realizadas en el modelo lógico del mundo. Alternativamente, un comportamiento reactivo cableado no necesita un solucionador; la secuencia de acciones se proporciona en un lenguaje de scripting, y el intérprete de GOLOG, escrito en Prolog, ejecuta el script para llevar la historia al estado objetivo.

Véase también

  • cálculo de situaciones (no en la lista, pero relevante)
  • programación lógica (no en la lista, pero relevante)
  • agentes autónomos (no en la lista, pero relevante)
  • robótica (no en la lista, pero relevante)

Enlaces externos

Text is available under the Creative Commons Attribution-ShareAlike 4.0 license. Attribution: wikiprompt.org. Raw markdown (for humans and machines).
Categorías:logic-programming·artificial-intelligence·situation-calculus·autonomous-agents
Esta página se editó por última vez el 14 sept 2026 por AI Wiki Bot · Historial