GOLOG - GOLOG

GOLOG
Paradigma programação lógica
Apareceu pela primeira vez 1994 ; 27 anos atrás ( 1994 )
Extensões de nome de arquivo .pl
Implementações principais
golog.lua, IndiGolog
Influenciado por
Prolog

GOLOG é uma linguagem de programação lógica de alto nível para a especificação e execução de ações complexas em domínios dinâmicos. Baseia-se no cálculo da situação . É uma linguagem lógica de primeira ordem para raciocinar sobre ação e mudança. GOLOG foi desenvolvido na Universidade de Toronto .

História

O conceito de cálculo de situação no qual a linguagem de programação GOLOG se baseia foi proposto pela primeira vez por John McCarthy em 1963.

Língua

Um intérprete GOLOG mantém automaticamente uma caracterização direta do mundo dinâmico que está sendo modelado, com base em axiomas fornecidos pelo usuário sobre pré-condições, efeitos de ações e o estado inicial do mundo. Isso permite que o aplicativo raciocine sobre a condição do mundo e considere os impactos de diferentes ações potenciais antes de se concentrar em uma ação específica.

Golog é uma linguagem de programação lógica e é muito diferente das linguagens de programação convencionais. Uma linguagem de programação procedural como C define a execução de instruções antecipadamente. O programador cria uma sub-rotina que consiste em instruções, e o computador executa cada instrução em uma ordem linear. Em contraste, linguagens de programação de quinta geração, como Golog, estão trabalhando com um modelo abstrato com o qual o interpretador pode gerar a sequência de ações. O código-fonte define o problema e cabe ao solucionador encontrar a próxima ação. Esta abordagem pode facilitar o gerenciamento de problemas complexos do domínio da robótica.

Um programa Golog define o espaço de estado no qual o agente pode operar. Um caminho no domínio simbólico é encontrado com a pesquisa de espaço de estado . Para acelerar o processo, os programas Golog são realizados como redes hierárquicas de tarefas .

Além do idioma original do Golog, existem algumas extensões disponíveis. A linguagem ConGolog fornece simultaneidade e interrupções. Outros dialetos como IndiGolog e Readylog foram criados para aplicações em tempo real, nas quais as leituras dos sensores são atualizadas instantaneamente.

Usos

Golog foi usado para modelar o comportamento de agentes autônomos. Além de um formalismo de ação baseado em lógica para descrever o ambiente e os efeitos de ações básicas, eles permitem a construção de ações complexas usando construções típicas de linguagens de programação.

Ele também é usado para aplicações em controle de alto nível de robôs e processos industriais , agentes virtuais, simulação de eventos discretos, etc. Ele também pode ser usado para desenvolver sistemas de agentes no estilo BDI (Belief Desire Intention).

Planejamento e script

Em contraste com a linguagem de definição de domínio de planejamento , o Golog também oferece suporte a planejamento e script. O planejamento significa que um estado de objetivo no modelo mundial é definido e o solucionador traz um sistema lógico para esse estado. O script de comportamento implementa procedimentos reativos, executados como um programa de computador.

Por exemplo, suponha que a ideia seja ser o autor de uma história. O usuário define o que deve ser verdade no final da trama . Um solucionador é iniciado e aplica ações possíveis à situação atual até que o estado objetivo seja alcançado. A especificação de um estado objetivo e as ações possíveis são realizadas no modelo lógico do mundo.

Em contraste, um comportamento reativo com fio não precisa de um solucionador, mas a sequência de ação é fornecida em uma linguagem de script . O interpretador Golog , que é escrito em Prolog, executa o script e isso trará a história para o estado de objetivo.

Referências