ГОЛЫЙ
Парадигма | логическое программирование |
---|---|
Впервые появился | 1994 год |
Расширения имен файлов | .pl |
Основные реализации | |
golog.lua, IndiGolog | |
Под влиянием | |
Пролог |
ГОЛОГ высокого уровня — это язык логического программирования для спецификации и выполнения сложных действий в динамических областях. Он основан на ситуационном исчислении . Это логический язык первого порядка для рассуждений о действиях и изменениях. ГОЛОГ был разработан в Университете Торонто . [1] [2]
История
[ редактировать ]Концепция ситуационного исчисления, на которой основан язык программирования ГОЛОГ, была впервые предложена Джоном Маккарти в 1963 году. [3]
Язык
[ редактировать ]Интерпретатор ГОЛОГА автоматически поддерживает прямую характеристику моделируемого динамического мира на основе введенных пользователем аксиом о предварительных условиях, последствиях действий и начальном состоянии мира. Это позволяет приложению рассуждать о состоянии мира и учитывать влияние различных потенциальных действий, прежде чем сосредоточиться на конкретном действии. [4]
Голог — это язык логического программирования , который сильно отличается от обычных языков программирования. Процедурный язык программирования, такой как C, заранее определяет выполнение операторов. Программист создает подпрограмму, состоящую из операторов, и компьютер выполняет каждый оператор в линейном порядке. Напротив, языки программирования пятого поколения, такие как Golog, работают с абстрактной моделью, с помощью которой интерпретатор может генерировать последовательность действий. Исходный код определяет проблему, и решатель должен найти следующее действие. Этот подход может облегчить решение сложных проблем из области робототехники.
Программа Golog определяет пространство состояний , в котором разрешено работать агенту. Путь в символической области находится с помощью поиска в пространстве состояний . Для ускорения процесса программы Golog реализованы в виде иерархических сетей задач . [5]
Помимо исходного языка Golog, доступны некоторые расширения. Язык ConGolog обеспечивает параллелизм и прерывания. Другие диалекты, такие как IndiGolog и Readylog, были созданы для приложений реального времени, в которых показания датчиков обновляются «на лету». [6]
Использование
[ редактировать ]Голог использовался для моделирования поведения автономных агентов. Помимо основанного на логике формализма действий для описания окружающей среды и эффектов основных действий, они позволяют создавать сложные действия с использованием типичных конструкций языка программирования.
Он также используется для приложений высокого уровня управления роботами и промышленными процессами , виртуальных агентов, моделирования дискретных событий и т. д. [7] Его также можно использовать для разработки агентских систем в стиле BDI (Belief Desire Intention). [8]
Планирование и сценарий
[ редактировать ]В отличие от языка определения домена планирования , Golog также поддерживает планирование и создание сценариев. [9] [10] Планирование означает, что в модели мира определено целевое состояние, и решатель приводит логическую систему в это состояние. Сценарии поведения реализуют реактивные процедуры, которые выполняются как компьютерная программа. [11]
Например, предположим, что идея состоит в том, чтобы написать историю. Пользователь определяет, что должно быть правдой в конце графика . Решатель начинает работу и применяет возможные действия к текущей ситуации, пока не будет достигнуто целевое состояние. Спецификация целевого состояния и возможных действий реализована в логической модели мира. [12]
Напротив, для жестко запрограммированного реактивного поведения не требуется решатель, а последовательность действий предоставляется на языке сценариев . [13] Golog Интерпретатор , написанный на Прологе, [14] выполняет сценарий, и это приведет историю в целевое состояние.
Ссылки
[ редактировать ]- ^ Левеск, Гектор Дж.; Рейтер, Раймонд; Лесперанс, Ив; Линь, Фанчжэнь; Шерл, Ричард Б. (1 апреля 1997 г.). «ГОЛОГ: язык логического программирования для динамических областей» . Журнал логического программирования . Рассуждения о действии и изменении. 31 (1): 59–83. дои : 10.1016/S0743-1066(96)00121-5 . ISSN 0743-1066 .
- ^ «ГОЛОГ: язык логического программирования для динамических областей» (PDF) . ГОЛОГ: язык логического программирования для динамических областей .
- ^ Марта Чалдеа Майер (2010). Ситуационное исчисление и язык Голог (PDF) (на итальянском языке).
- ^ «ГОЛОГ – Математическое программное обеспечение – swMATH» . swmath.org . Проверено 12 января 2020 г.
- ^ Гэблдон, Альфредо (2002). Программирование иерархических сетей задач в ситуационном исчислении . Семинар AIPS'02 по онлайн-планированию и составлению графиков.
- ^ Классен, Йенс (2013). Планирование и верификация на агентном языке Golog (PhD). Университетская библиотека Рейнско-Вестфальской технической школы Ахена.
- ^ Г'омез, Серхио Алехандро. «Язык программирования и агентство Golog» (PDF) . Язык программирования и агентство Golog .
- ^ Сардина, Себастьян; Лесперанс, Ив (10 мая 2009 г.). «Голог говорит на языке BDI» (PDF) . Программирование мультиагентных систем . Конспекты лекций по информатике. Том. 5919. стр. 82–99. дои : 10.1007/978-3-642-14843-9_6 . ISBN 978-3-642-14842-2 .
{{cite book}}
:|journal=
игнорируется ( помогите ) - ^ Хофманн, Тилль и Нимюллер, Тим и Класссен, Йенс и Лейкмейер, Герхард (2016). Постоянное планирование в Golog . Тридцатая конференция AAAI по искусственному интеллекту.
{{cite conference}}
: CS1 maint: несколько имен: список авторов ( ссылка ) - ^ Дилла, Франк и Феррейн, Александр и Лакмейер, Герхард (2002). Действия и размышления с использованием голога в роботизированном футболе — гибридная архитектура . Учеб. CogRob02, AAAI Press.
{{cite conference}}
: CS1 maint: несколько имен: список авторов ( ссылка ) - ^ Феррейн, Александр и Фриц, Кристиан и Лакмейер, Герхард (2005). «Использование Golog для обсуждения и координации команды в роботизированном футболе». КИ . 19 (1): 24.
{{cite journal}}
: CS1 maint: несколько имен: список авторов ( ссылка ) - ^ Гудмундссон, Трюггви Тор (2017). Гибкая авторская работа с использованием планирования GOLOG в интерактивном повествовании (PhD). Университет Рейкьявика, Исландия.
- ^ Ив Лесперанс, Кеннет Тэм и Майкл Дженкин (2000). Реактивность в среде программирования роботов на основе логики . Интеллектуальные агенты VI. Агентные теории, архитектуры и языки. Шпрингер Берлин Гейдельберг. стр. 173–187. дои : 10.1007/10719619_13 .
- ^ Феррейн, Александр (2010). голог. lua: К реализации GOLOG без пролога для встраиваемых систем . Серия весенних симпозиумов AAAI 2010.