WikiSort.ru - Программирование

ПОИСК ПО САЙТУ | о проекте
Planner
Класс языка Логическое программирование
Появился в 1969
Автор Карл Хьюит
Диалекты Ether
Повлиял на QA-4, Popler, Conniver и QLISP

Planner (иногда записывается большими буквами как PLANNER, в советской литературе также использовалась транскрипция Плэнер) — функционально-логический язык программирования, схожий по своему синтаксису с Лиспом.

Был разработан Карлом Хьюитом в Лаборатории Искусственного Интеллекта Массачусетского Технологического Института. Первая публикация с описанием языка появилась в 1969 г.

Несмотря на то, что язык так и не был, по всей видимости, реализован в полном объёме, его влияние на исследования, связанные с искусственным интеллектом, оказалось, во многом, определяющим.

Реализации и производные системы

Первые реализации — Micro-planner и Pico-planner содержали достаточно ограниченное подмножество языка. Практически полные варианты Planner были реализованы в системе Popler и ряде производных — QA-4, Conniver, QLISP, Ether.

В СССР язык был реализован в системе ПЛЭНЕР-БЭСМ, разработанной для БЭСМ-6 в конце 1970-х гг.

LISP и Prolog — два самых популярных языка символьной обработки. Однако интересные идеи предлагались и создателями других языков, не получивших широкой известности. Один из таких языков — редко вспоминаемый Planner. Своё название (которое переводится как «планировщик») он получил благодаря тому, что был в основном предназначен для создания систем планирования действий роботов. Planner был разработан Карлом Хьюиттом из Массачусетского технологического института в 1971 году и стал серьёзным этапом в развитии идей обработки символьной информации.

Planner обладает всеми возможностями языка LISP, то есть фактически LISP является его подмножеством. Но набор встроенных функций в языке Planner намного шире, а сами они обычно гораздо мощнее соответствующих функций языка LISP. К примеру, функции ELEM и REST обобщают функции CAR и CDR, позволяя выделять и отбрасывать из списка произвольные элементы: [ELEM 1 L] = = A, [REST 2 L] = (С (D Е F) (G Н)). Кроме того, введение в запись нескольких типов скобок (в языке LISP допускаются только круглые скобки, что весьма затрудняет чтение программ) сделало программы гораздо понятнее. Но самое главное, язык был обогащен дополнительными возможностями.

Первая из них — поиск и анализ данных по образцу. Подобный механизм был успешно опробован в языке Snobol и широко используется сейчас, например, когда в Norton Commander задаётся поиск всех файлов вида *.doc, то выполняется именно это действие.

Вторая дополнительная возможность позволяет весьма эффективно применять Planner при создании систем искусственного интеллекта: можно строить и изменять описание среды, в которой решается задача. Описание среды называется базой данных и содержит отдельные утверждения (факты), истинные в данной среде. Кроме фактов, содержащихся в базе данных, в программе нужно задавать логические отношения между используемыми в задаче понятиями, а также описания действий, которые разрешено производить. Такие описания называются теоремами. Каждая теорема имеет список условий (предпосылок), которые должны быть выполнены, прежде чем станет возможным её применение. В результате применения теоремы некоторые факты из базы данных перестают быть истинными и должны быть из неё удалены, а другие, напротив, становятся истинными и должны её пополнить. Списки фактов обоих видов также содержатся в описаниях теорем.

Самым важным нововведением языка Planner стал режим возвратов. Он позволяет во время работы программы отказываться от принятых ранее решений, если оказывается, что они не приведут к цели. Для искусственного интеллекта вообще характерно использование перебора вариантов во время решения задач, встроенный в язык Planner режим возвратов (его ещё называют механизмом поиска с возвратом, или, по-английски, backtracking) избавляет программиста от необходимости самому реализовывать такой перебор.

Данная страница на сайте WikiSort.ru содержит текст со страницы сайта "Википедия".

Если Вы хотите её отредактировать, то можете сделать это на странице редактирования в Википедии.

Если сделанные Вами правки не будут кем-нибудь удалены, то через несколько дней они появятся на сайте WikiSort.ru .




Текст в блоке "Читать" взят с сайта "Википедия" и доступен по лицензии Creative Commons Attribution-ShareAlike; в отдельных случаях могут действовать дополнительные условия.

Другой контент может иметь иную лицензию. Перед использованием материалов сайта WikiSort.ru внимательно изучите правила лицензирования конкретных элементов наполнения сайта.

2019-2024
WikiSort.ru - проект по пересортировке и дополнению контента Википедии