GOLOG - GOLOG - Wikipedia
GOLOG je na vysoké úrovni logické programování jazyk pro specifikaci a provádění složitých akcí v dynamických doménách. Je založen na situační kalkul. Je to logický jazyk prvního řádu pro uvažování o akci a změně. GOLOG byl vyvinut na University of Toronto.[1][2]
Dějiny
Koncept situační kalkul , na kterém je založen programovací jazyk GOLOG, poprvé navrhl John McCarthy v roce 1963.[3]
Jazyk
Tlumočník GOLOG automaticky udržuje přímou charakteristiku modelovaného dynamického světa na základě uživatelem dodaných axiomů o předpokladech, účincích akcí a počátečním stavu světa. To umožňuje aplikaci uvažovat o stavu světa a zvážit dopady různých potenciálních akcí, než se zaměří na konkrétní akci.[4]
Golog je a logické programování jazyk a velmi se liší od konvenčních programovacích jazyků. A procedurální programování jazyk jako C definuje provádění příkazů předem. Programátor vytvoří podprogram, který se skládá z příkazů, a počítač provede každý příkaz v lineárním pořadí. V porovnání, programovací jazyky páté generace jako Golog pracují s abstraktním modelem, pomocí kterého může tlumočník generovat sled akcí. Zdrojový kód definuje problém a je na řešiteli, aby našel další akci. Tento přístup může usnadnit správu složitých problémů z oblasti robotiky.
Program Golog definuje státní prostor ve kterém může agent působit. Cesta v symbolické doméně je nalezena s hledání stavového prostoru. Pro urychlení procesu jsou programy Golog realizovány jako sítě hierarchických úkolů.[5]
Kromě původního jazyka Golog jsou k dispozici některá rozšíření. Jazyk ConGolog poskytuje souběžnost a přerušení. Byly vytvořeny další dialekty, jako je IndiGolog a Readylog, pro aplikace v reálném čase, ve kterých jsou čtení senzorů průběžně aktualizována.[6]
Použití
Golog byl použit k modelování chování autonomních agentů. Kromě logického akčního formalismu pro popis prostředí a účinků základních akcí umožňují konstrukci složitých akcí pomocí typických konstrukcí programovacího jazyka.
Používá se také pro aplikace na vysoké úrovni řízení robotů a průmyslové procesy, virtuální agenti, diskrétní simulace událostí atd.[7] Lze jej také použít k vývoji agentických systémů ve stylu BDI (Belief Desire Intention).[8]
Plánování a skriptování
Na rozdíl od Plánování jazyka pro definici domény, Golog podporuje také plánování a skriptování.[9][10] Plánování znamená, že je definován stav cíle ve světovém modelu a řešitel přináší logický systém do tohoto stavu. Skriptování chování implementuje reaktivní procedury, které běží jako počítačový program.[11]
Předpokládejme například, že myšlenkou je napsat příběh. Uživatel definuje, co by mělo být pravdivé na konci spiknutí. Řešitel se spustí a aplikuje možné akce na aktuální situaci, dokud není dosažen stav cíle. Specifikace stavu cíle a možných akcí jsou realizovány v modelu logického světa.[12]
Naproti tomu drátové reaktivní chování nepotřebuje řešitele, ale akční sekvence je uvedena v a skriptovací jazyk.[13] The Golog tlumočník, který je napsán v Prologu,[14] provede skript a tím se příběh dostane do stavu cíle.
Reference
- ^ Levesque, Hector J .; Reiter, Raymond; Lespérance, Yves; Lin, Fangzhen; Scherl, Richard B. (01.04.1997). „GOLOG: Logický programovací jazyk pro dynamické domény“. The Journal of Logic Programming. Odůvodnění akce a změny. 31 (1): 59–83. doi:10.1016 / S0743-1066 (96) 00121-5. ISSN 0743-1066.
- ^ „GOLOG: Logický programovací jazyk pro dynamické domény“ (PDF). GOLOG: Logický programovací jazyk pro dynamické domény.
- ^ Marta Cialdea Mayer (2010). Il Calcolo delle Situazioni e il linguaggio Golog (PDF) (v italštině).
- ^ „GOLOG - Matematický software - swMATH“. swmath.org. Citováno 2020-01-12.
- ^ Gabaldon, Alfredo (2002). Programování sítí hierarchických úloh v situačním kalkulu. Workshop AIPS’02 o online plánování a plánování.
- ^ Classen, Jens (2013). Plánování a ověřování v jazyce agenta Golog (PhD). Hochschulbibliothek der Rheinisch-Westfalischen Technischen Hochschule Aachen.
- ^ G´omez, G´omez. „Programovací jazyk a agentura Golog“ (PDF). Programovací jazyk a agentura Golog.
- ^ Sardina, Sebastian; Lespérance, Yves (10.05.2009). „Golog mluví jazykem BDI“ (PDF). Programování systémů s více agenty. Golog mluví jazykem BDI DO. Přednášky z informatiky. 5919. str. 82–99. doi:10.1007/978-3-642-14843-9_6. ISBN 978-3-642-14842-2.
- ^ Hofmann, Till a Niemueller, Tim a Cla ssen, Jens a Lakemeyer, Gerhard (2016). Kontinuální plánování v Gologu. Třicátá konference AAAI o umělé inteligenci.CS1 maint: více jmen: seznam autorů (odkaz)
- ^ Dylla, Frank a Ferrein, Alexander a Lakemeyer, Gerhard (2002). Jednat a uvažovat pomocí golog v robotickém fotbalu - hybridní architektura. Proc. CogRob02, AAAI Press.CS1 maint: více jmen: seznam autorů (odkaz)
- ^ Ferrein, Alexander a Fritz, Christian a Lakemeyer, Gerhard (2005). "Využití Gologu k uvažování a koordinaci týmu v robotickém fotbalu". KI. 19 (1): 24.CS1 maint: více jmen: seznam autorů (odkaz)
- ^ Gudhmundsson, Tryggvi Thor (2017). Flexibilní tvorba pomocí plánování GOLOG v interaktivním vyprávění (PhD). Reykjavík University Island.
- ^ Yves Lesperance a Kenneth Tam a Michael Jenkin (2000). Reaktivita v programovacím rámci robota založeného na logice. Inteligentní agenti VI. Teorie agentů, architektury a jazyky. Springer Berlin Heidelberg. 173-187. doi:10.1007/10719619_13.
- ^ Ferrein, Alexander (2010). golog. lua: Směrem k neprologové implementaci GOLOGu pro vestavěné systémy. 2010 AAAI Spring Symposium Series.