ГОЛОГ - GOLOG

ГОЛОГ
Парадигма логическое программирование
Впервые появился 1994 ; 27 лет назад ( 1994 )
Расширения имени файла .pl
Основные реализации
golog.lua, IndiGolog
Под влиянием
Пролог

GOLOG - это язык логического программирования высокого уровня для спецификации и выполнения сложных действий в динамических областях. Он основан на ситуационном исчислении . Это логический язык первого порядка для рассуждений о действиях и изменениях. GOLOG был разработан в Университете Торонто .

История

Концепция ситуационного исчисления, на которой основан язык программирования GOLOG, была впервые предложена Джоном Маккарти в 1963 году.

Язык

Интерпретатор GOLOG автоматически поддерживает прямую характеристику моделируемого динамического мира на основе предоставленных пользователем аксиом о предпосылках, эффектах действий и начальном состоянии мира. Это позволяет приложению анализировать состояние мира и учитывать влияние различных потенциальных действий, прежде чем сосредоточиться на конкретном действии.

Golog - это язык логического программирования, который сильно отличается от обычных языков программирования. Такой процедурный язык программирования, как C, заранее определяет выполнение операторов. Программист создает подпрограмму, состоящую из операторов, и компьютер выполняет каждую инструкцию в линейном порядке. Напротив, языки программирования пятого поколения, такие как Golog, работают с абстрактной моделью, с помощью которой интерпретатор может генерировать последовательность действий. Исходный код определяет проблему, и решатель должен найти следующее действие. Такой подход может облегчить решение сложных задач из области робототехники.

Программа Golog определяет пространство состояний, в котором агенту разрешено работать. Путь в символьной области найден с помощью поиска в пространстве состояний . Для ускорения процесса программы Golog реализованы в виде иерархических сетей задач .

Помимо исходного языка Golog, доступны некоторые расширения. Язык ConGolog обеспечивает параллелизм и прерывания. Другие диалекты, такие как IndiGolog и Readylog, были созданы для приложений реального времени, в которых показания датчиков обновляются на лету.

Использует

Golog использовался для моделирования поведения автономных агентов. В дополнение к основанному на логике формализму действий для описания среды и эффектов базовых действий они позволяют создавать сложные действия с использованием типичных конструкций языка программирования.

Он также используется для приложений высокого уровня управления роботами и производственными процессами , виртуальных агентов, моделирования дискретных событий и т. Д. Его также можно использовать для разработки агентских систем в стиле BDI (Belief Desire Intention).

Планирование и создание сценариев

В отличие от языка определения предметной области планирования , Golog также поддерживает планирование и создание сценариев. Планирование означает, что состояние цели в модели мира определено, и решатель переводит логическую систему в это состояние. Сценарии поведения реализуют реактивные процедуры, которые выполняются как компьютерная программа.

Например, предположим, что идея заключается в создании рассказа. Пользователь определяет, что должно быть правдой в конце сюжета . Решатель запускается и применяет возможные действия к текущей ситуации, пока не будет достигнуто целевое состояние. Спецификация состояния цели и возможных действий реализована в логической модели мира.

Напротив, для фиксированного реактивного поведения не нужен решатель, но последовательность действий предоставляется на языке сценариев . Интерпретатор Golog , написанный на Прологе, выполняет сценарий, и это переводит историю в целевое состояние.

использованная литература