В.Н. Пильщиков - Язык Плэнер, страница 40
Описание файла
DJVU-файл из архива "В.Н. Пильщиков - Язык Плэнер", который расположен в категории "". Всё это находится в предмете "искусственный интеллект" из 7 семестр, которые можно найти в файловом архиве МГУ им. Ломоносова. Не смотря на прямую связь этого архива с МГУ им. Ломоносова, его также можно найти и в других разделах. .
Просмотр DJVU-файла онлайн
Распознанный текст из DJVU-файла, 40 - страница
В этот момент бава данных стала такой: (АТК О) (ВОХ ВОХ2) (АТ ВОХ2 ()) (ВОХ ВОХ1) (АТ ВОХ1 О), т. е. она описывает ситуацию, в которой цель задачи достигнута. В аадачах о роботах часто требуется не выполнение, а планирование дейс*внй робота'. необходимо выдать список действий, выполнение которых приведет к поставленной цели, но сами атп действия не должны быть выполнены, и потому должно быть сохранено исходное состояние базы данных. Добиться этого можно с помощью тех же самых теорем, что используются для выполнения действий, но при атом необходимы яекоторые изменения.
Во-первых, для того чтобы запоминать, какие теоремы, при каких параметрах и в каком порядке вызывались, можно ввести константу, скажем, РЬАН с начальным аначением (), в которую каждая проработавшая теорема будет ааносить информацию о себе. Именно такое изменение значения константы и осуществляет функция Р1 АР)Р)1Р)О: [ОЕР1НЕ РЬАНН1НО (ЬАМВОА (1НР) [СЯЕТ РЬАХ (КРЬАН .1НР)])] В конце концов значением атой константы окажется перечень действий робота, которые были выполнены ради достижения.поставленной цели.
В нашем примере с переносом ящиков значением константы РЬАН будет следующий список: ((ИДТИ ИЗ Р В В) (ПЕРЕНЕСТИ ВОХ2 ИЗ К В О)) ' Во-вторых, после того как цель доствгнута и план действий робота найден, необходвмо уничтоншть вое произведенные иаменения в базе данных. Для этого можно воспользоваться функцией ТЕМР или ТРКОС (см.
3 З.б), которая перед завершением своей работы отменяет все побочные эффекты «внутри> себя. Таким образом, если бы в нашей аадаче требовалось спланировать, а не выполнить действия, то следовало бы несколько по-иному задать цель задачи: [ТРКОО (Н). [СЯЕТ Р1 АЫ ( Ц [ООА1 (АТ ВОХ1»Н)] [СОА1 (ЛТ ВОХ2 .Н)] : РЕАЫ] Тогда значением этого выражения будет укааанный вьппе список- план, а исходное состояние базы данных не изменится. Опишем еще несколько действий робота и решим известную задачу «обезьяна и бананы>, правКа, в несколько измененной формулировке, взятой из [17].
В этой задаче предполагается, что в некоторой комнате, где действует робот, на полу расположены высокие и низкие ящики, а на стене есть выключатель, который расположен на недосягаемой для робота высоте. Предполагаетси, что робот может повернуть выключатель (аажечь свет в комнате), если он будет находиться на высоком ящике, помещенном под выключателем; Требуется составить план действий робота, в результате выполнения которых он сможет зажечь свет. В дополнение к рассмотренным вышеутверждениям базы данных будем также использовать следующие утверждения: (ОНК Ь) — робот находится на ящике Ь (в кажй дый момент в базе данных может быть либо это утверждение, либо утвержцение (АТК х), означающее, что робот на полу); (АТ ЫОНТЯ%1ТСН з) — выкл>очатель расположен над точкой в; (ЫСНТЯ%1ТСН >) — если « = ОЫ, то свет горит, а если г = ОРР, то не горит.
Кроме того, будем считать, что с каждым утвери«дением (ВОХ Ь) связано свойство НЕ10НТ, значение которого указывает высоту ящика Ь в какнх-то един>щах длины. Ящик считается высшим, если ого высота пе меное 5 едптпщ. При этих соглашениях действие робота «залезть на предмет ТН> можно описать в виде такой теоремы: [ОЕР1ЫЕ ЗАЛЕЗТЬ (СОЫЯЕО (ТН Х) (ОХК»ТН) [ЯЕАКСН (ВОХ .ТНЦ [ЯЕАКСН! (АТ .ТН»ХЦ [ООА! (ЛТК .Х) (СЯЕ1Ц [ЕКЛЯЕ (АТК .ХЦ [ЛЯЯЕКТ (ОКВ .ТНЦ [Р!ЛЫК!ЫС (ЗЛ!!ЕЗТЫ1Л .ТНЦЦ Образец этой теоремы описывает реэультат «робот находится на ТН», который можно получить при ее выполнении. В теле теоремы сначала проверяется, является ли ТН ящиком (высота ящика ие проверяется — предполагается, что робот может залезть иа любой ящик), а аатем ставится цель: сделать так, чтобы робот оказался на полу в той же точке Х, что и ящик.
Если эти предпосылки удовлетворены, тогда «выполняется» само действие залеаання на ящик: вычеркивается,что фобот на полу в точке Х, и ааписывается, что он на ящике ТН. Действие «слеэть с ящика» может быть выполнено только при условии, что робот действительно находится на ящике. Результатом же этого действия будет то, что робот окажется на полу в той же точке, где расположен ящик: [ВЕР1НЕ СЛЕЗТЬ (СОМЯЕО (ТН Х) (АТК «Х) [БЕАВСН1 (ОХК «ТНЦ [БЕАВСН1 (АТ .ТН .Х)] [ЕВАБЕ (ОНВ .ТН)] [АЯБЕКТ. (АТК .Х)] [РЬАНН1НО (СЛЕЗТЬ С .ТНЦЦ Действие «важечь свет» описывается следующей теоремой: [ВЕР1г)Е ЗАЖЕЧЬ (СОНЯЕО (Х ТН) (ЫСНТЯ%1ТСН ОН) [ЯЕАКСН1 (АТ ЫОНТЯ»т!ТОН «ХЦ [БЕАЕСН (ВОХ еТН) (ТЕБТ НЕ16НТ [ОЕ БЯ [ООАЬ (АТ .ТН .ХЦ [СОАЬ (ОМК .ТНЦ [ЕВАЯЕ (ЫОНТБ»т'1ТСН ОРРЦ [АБЯЕКТ (116НТБ%1ТСН ОНЦ [РЬАНН1НО (ЗАЖЕЧЬ СВЕТ)]Ц Данная теорема сначала определяет, над какой точкой -Х расположен выключатель, эатем подыскивает ящик, высота которого не меньше 5 единиц,м ставит две подцепи: этот ящик должен сказаться в точке Х и робот.
дю(жен находиться на ящике. Собственно действие сводится к вычеркиванию утверждения, что свет не горит, и к ааписи утверждения, что он важжен. Можно было бы описать и друже действия робота («ставить ящик на ящик», «выключить свет» и У. д.), но мы ограничимся только рассмотренными выше и опишем теперь исходную ситуацию и цель нашей аадачи. Исходную ситуацию эадачи будем предполагать следующей: робот находится на ящике ВОХ1, ящик ВОХ1 высотой 2 расположен в точке Р1, ящик ВОХ2 высотой 6 — в точке Р2, выюпоча- тель не повернут и находится нзд точкой РЗ. Ваза данных, описывающая зту ситуацию, аадается так: [ВВ (ВОХ ВОХ1) (НЕ16НТ 2) (ВОХ ВОХ2) (НЕ16НТ 6)] [ВАТА (ОНК ВОХ1) (АТ ВОХ1 Р1) (АТ ВОХ2 Р2) (АТ ЫОНТБ%1ТСН РЗ) (ЫОНТЯ%1ТСН ОРР)] Цель задачи — составить план действий, в результате исполнения которого в комнате будет гореть свет,— описывается выражением [ТРК06 ( ) [СЯЕТ РЬА11 ( ) ] [60АЬ (Ы6НТБ%1ТСН ОН)] ".РЬАЩ Прн вычислении этого выражения будет составлен следующий список-план: ((СЛЕЗТЬ С ВОХ1) (ИДТИ ИЗ Р1 В Р2) (ПЕРЕНЕСТИ ВОХ2 ИЗ Р2 В РЗ) (ЗАЛЕЗТЬ НА ВОХ2) (ЗАЖЕЧЬ СВЕТ) ) 5.7.
Испольновапие записывающих и вычеркивающих теорем Записывающие теоремы можно выавать, обратившись ь функции ОКА%, но обычно они вызываются при вычислении функции АЯЯЕКТ или РАБЯЕКТ (см. 1 4.2). Если в обращении к такой функции указана рекомендация, то после того как функция запишет утверждение в базу данных, начинается вызов записывающих теорем согласно этой рекомендации. Образцом 'для вызова здесь служит только что записанное утверждение е). Например, при вычислении выражения [АЯЯЕКТ (АТ ВОХ РЬАСЕ) (ТКУ)] в базу данных будет зализало, если, конечно, его там не было, утверждение (АТВОХ Р1.АСЕ), после чего будет выполнено [ОКА% (АТ ВОХ Р1АСЕ) (ТКг')] т.
е. будут по очереди вызваны все записывающие теоремы, образцы которых соответствуют списку (АТ ВОХ Р1,АСЕ). Если е) При сопоставлении с образцами теорем утверждение трактуется как выражение, а ие как образец. Поэтому в утверждении (А [В]) элемент [В] рассматривается просто как список, а не как обращение к процедуре В. 192 все эти теоремы успешны, тогда вычисление обращения к функции АЯЯЕВТ уопешнс завершается со значением Т.
Но если хотя бы одна из этих теорем окажется неуспешной, то возникший неуспех не будет остановлен функцией АБЯЕВТ, и ои, в частности, отменит запись утверждения (АТ ВОХ РЬАСЕ) в базу данных. Аналогична ситуация и с вычеркивающимл теоремами: опк будут вызываться при вычислении функции ЕВАЯЕ (или РЕВАЗЕ), если в обращении к ней указана какая-нибудь рекомендация. Образцом для вызова служит только что вычеркнутое утверждение.
Записывающие и вычеркиваюгцие теоремы введены в язык, для того чтобы можно было контролировать изменения базы данных. С помощью этих теорем обычно проверяется, допустимо ли произведенное изменение, или выполняются дополнительные изменения базы данных. Например, если в решаемой задаче не допускается, чтобы дла предмета находились в одной и той же точке, то зто можно проконтролировать с помощью такой записывающей теоремы: [ПЕР(11Е А1 (АНТЕС .(Х У) (АТ «Х «У) [1Г ([ЯЕАКСН (АТ [НОЯ .Х] .У)] [РА(Ь])]Ц Если выполняется [АЯЯЕВТ (АТ ТН Р1) (ТКУЦ и вызвана эта теорема, то она щювернт, не было ли в базе данных утверждевия о том, что в точке Р1 находится предмет, отличный от ТН.
Если было, то теорема выработает неуспех, который и отменит как незаконную запись утверждения (АТ ТН Р1). В противном случае теорема успешна,и запись не будет отменена. В то же время записывающая теорема [ОБИДЕ А2 (АМТЕС (Х У) (АТ «Х «У) [ЕВАБЕ (СЬЕАВ .УЦЦ предназначена для устранения конфликтов в базе данных.