Язык действий

В информатике, язык действий — это язык для определения моделей состояний и переходов, и обычно используется для создания формальных моделей результатов действий в природе.[1] Языки действий обычно используются в сфере искусственного интеллекта и робототехники, где они описывают, как действия влияют на состояния систем с течением времени, и могут быть использованы для автоматического планирования. Самый известный язык действий — PDDL.[2] Языки действий делятся на два класса: языки описания действий и языки запроса действий. Примеры первых включают STRIPS, PDDL, язык A (обобщение STRIPS; часть исчисления высказываний языка ADL), язык B (расширение языка A включающее непрямые воздействия, различаемые статические и динамические законы) и язык C (который также добавляет непрямые воздействия, и не считает что каждая функция автоматически "инерционна"). Также есть языки запроса действий — P, Q и R. Существуют несколько различных алгоритмов для преобразования языков действий, и в частности, языка действий C, в программы набора ответов.[3][4] Поскольку современные решатели наборов ответов используют алгоритмы решения задач выполнимости булевых формул для очень быстрого установления выполнимости, это означает, что языки действий могут также использовать прогресс, достигнутый в области решения задач выполнимости булевых формул.

Формальное определение

[править | править код]

Все языки действий дополняют определение модели состояний и переходов множеством флюент F, множеством значений V, которые могут принять флюенты, и функция отображающая S × F в V, где S — это набор состояний модели состояний и переходов.

Примечания

[править | править код]
  1. Michael Gelfond, Vladimir Lifschitz (1998) "Action Languages Архивная копия от 12 августа 2022 на Wayback Machine", Linköping Electronic Articles in Computer and Information Science, vol 3, nr 16.
  2. Drew McDermott, The Planning Domain Definition Language, Technical Report CVC TR-98-003/DCS TR-1165, Yale Center for Computational Vision and Control, Yale University, 1998.
  3. Vladimir Lifschitz and Hudson Turner, (1998) "Representing Transition Systems by Logic Programs Архивная копия от 25 августа 2016 на Wayback Machine".
  4. Martin Gebser, Torsten Grote and Torsten Schaub, (2010) "Coala: a compiler from action languages to ASP".