Jump to content

Недетерминированное программирование

Недетерминированный язык программирования — это язык , который может определять в определенных точках программы ( называемых «точками выбора») различные альтернативы ходу выполнения программы . В отличие от оператора if-then , метод выбора между этими альтернативами не задается программистом напрямую; программа должна во время выполнения выбирать между альтернативами с помощью некоторого общего метода, применяемого ко всем точкам выбора. Программист . указывает ограниченное количество альтернатив, но программа должна позже выбрать между ними («Выбрать» - это, по сути, типичное название недетерминированного оператора.) Может быть сформирована иерархия точек выбора, в которой выбор более высокого уровня ведет к ветвям, содержащим внутри себя варианты выбора более низкого уровня.

Один из методов выбора реализован в системах обратного отслеживания (таких как Amb , [1] или унификация в Прологе ), в которой некоторые альтернативы могут «потерпеть неудачу», заставляя программу вернуться и попробовать другие альтернативы. Если все альтернативы терпят неудачу в определенной точке выбора, то вся ветвь терпит неудачу, и программа возвращается дальше, к более старой точке выбора. Одна из сложностей заключается в том, что, поскольку любой выбор является предварительным и может быть изменен, система должна иметь возможность восстанавливать старые состояния программы, устраняя побочные эффекты, вызванные частичным выполнением ветки, которая в конечном итоге завершилась сбоем.

Другой метод выбора — обучение с подкреплением , воплощенное в таких системах, как Alisp . [2] В таких системах, вместо того, чтобы возвращаться назад, система отслеживает некоторую степень успеха и изучает, какой выбор часто приводит к успеху и в каких ситуациях (на выбор могут повлиять как внутреннее состояние программы, так и влияние окружающей среды). Эти системы подходят для приложений в робототехнике и других областях, в которых возврат назад предполагает попытку отменить действия, выполненные в динамической среде, что может быть трудным или непрактичным.

См. также [ править ]

Ссылки [ править ]

  1. ^ «Структура и интерпретация компьютерных программ» . [ мертвая ссылка ]
  2. ^ Дэвид Андре; Стюарт Дж. Рассел (июль 2002 г.). «Абстракция состояний для программируемых агентов обучения с подкреплением» . Восемнадцатая национальная конференция по искусственному интеллекту : 119–125.
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 344c6549495abe35c969c90dd69090db__1706817420
URL1:https://arc.ask3.ru/arc/aa/34/db/344c6549495abe35c969c90dd69090db.html
Заголовок, (Title) документа по адресу, URL1:
Nondeterministic programming - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)