В.Н. Пильщиков - Язык Плэнер, страница 37
Описание файла
DJVU-файл из архива "В.Н. Пильщиков - Язык Плэнер", который расположен в категории "". Всё это находится в предмете "искусственный интеллект" из 7 семестр, которые можно найти в файловом архиве МГУ им. Ломоносова. Не смотря на прямую связь этого архива с МГУ им. Ломоносова, его также можно найти и в других разделах. .
Просмотр DJVU-файла онлайн
Распознанный текст из DJVU-файла, 37 - страница
Если не удовлетворяет, то сопоставление .Х с Л неудачно, иначе, как и в случае отсутствия ограничений па Х, сопоставление удачно, и переменная Х и все связанные с него переменные получают аначение переменной У ); » . — если переменные Х и г' на име«от значений, то проверяется, не противоречат ли друг другу ограничения на эти переменные (если, конечно, таковые есть). Если противоречат, то сспоставлекио неудачно, В противном случае сопоставление удачно, и при этом между переменными Х и х устанавливается связь, а «пересечение» их пре н ежних ограничений»») становится новым ограничением иа каждую из этих переменных и, следовательно, на все связяниые с ними переменные. 7, Сопоставление «Х со списком (рай ра«» ... ра«») удачно, если переменная Х не входит л этот список»* »).
Как побочный аффект прежнее состояние переменной Х «вабывается», и опа остается без значения, ио на ее будущее значение накладывается следующее ограничение: оно должно быть 1 списком из А элементов, на каждый из которых накладывается ограничение так, как если бы этот элемент, рассматриваемый. как»«»еременная, сопоставлялся с соответствующим образцом ра«ь Например, если переменная Е имеет значение В, то после сопоставления «Х с (А .Х е г' .г') на переменную Х накладывается такое ограничение: ее будущим значением должен быть 1 список из четырех злементов, первый из которых — атом А, второй— атом В, третий — произвольный, но совпадающий с будущим значением переменной У (она «теряет» свое прежнее значение, так как входит в образец с префиксам «е»), а четвертый элемент должен совпадать с третьим элементом (связь между зтими элементами' устанавливается череа переменную г', которая второй раз входит с префиксом «.», сохраняющим ее свяаь с третьим элементом).
8. Сопоставление .Х со списком (рай рог» ... рог») в том случае, когда переменная Х не имеет ни значения, ни ограничении, ни связей, аналогично предыдущему сопоставлению. Если же у перемени й еременпой Х есть значение, то мы имеем сопоставление выражения (значения Х) с образцом. В остальных случаях (при ус- *) Аналогичное правило действует и при оопоставлеиии образца с выражением. *") Взятие «пересечения» можно рассматривать как выполнение сопоставления образцов, по которым были установлены ограничения на переменные. **") Например, сопоставление «Х с (А (В «Х)) неудачпо. »76 повии, что Х не входит в список) делается попытка наложить на Х новое ограничение, которее образуется иа сопоставляемого с переменной Х образца-спнока так, как описано в п.
7. Если это ие удается сделать, сопоставление считается неудачным. В противном случае берется «пересечение» втого и прежнего ограничаннй и оно становится новым ограничением на будущие значения переменной Х и всех свяванных с нею переменных. 5.5. Дополнительные возможности Функция 6ОА1. Как уже было скааано, для достижения целей используютсн целевые теоремы. Однако нередко цель может быть достигнута более простым способом — просмотром базы данных и нахождением утверждения, соответствующего обраацу-цели.
Поэтому при достижении цели сначала, как правило, осуществляется поиск в базе данных н лишь аатем, если этот поиск неуспешеп, вызываются теоремы. Именно так действует встроенная функция СОА1л [6ОА1, ра> «ее>? гее?], РБОВВ. Здесь рае должен быть Т-образцом или .-переменной, значением которой является Т-обрааец. Аргумент >ее> — такой же, как и у функции ЯЕАВСН (см. 1 4.4), а аргумент гее — это рекомендация. Действие функции ССАЙ эквивалентно вычислению [АЬТ [ЯЕАВСН ра> ее«е?] [АСН!ЕЧЕ ра> гее?]] (если дана ПЯЕ1-рекомендация, то вместо функции ЯЕАНСН подразумевается функция ЯЕАНСН1).
Предположим, к примеру, что в базе данных записаны следующие утверждения: (РЕБЕНОК МАША) (ЧЕЛОВЕК ПЕТР) н что имеется теорема, соответствующая высказыванию «любой ребенок является человекомк (СОКЯЕ>) (Х) (ЧЕЛОВЕК «Х) [БЕАКСН (РЕБЕНОК .Х)]) Тогда, как видно, истинность факта «некто есть человек> можно доказать двумя способами: либо найти в базе данных такое утверждение, либо воспользоваться этой теоремой.
И если заранее иензвестно, какой оно«об подойдет, следует применить функцию 6ОАП Например, вычисление [СОАБ (ЧЕЛОВЕК ПЕТР)] успешно, так как в базе данных есть утверждение (ЧЕЛОВЕК 177 12 в. н, пвльщввов ПЕТР). Успешно и вычисление (ОСАМ (ЧЕЛОВЕК МАШАЦ« здесь также сначала просматривается база данных, однако утверждения -(ЧЕЛОВЕК МАША) там нет, поэтому вызывается теорема, которая и докажет, что Маша является человеком. Функция 1)ХП)ЮЕ.
При вызове теорем ио образцу можно попасть в бесконечную рекурсию. Например, по некоторому обраацу Р может быть выавана теорема ТН, которая непосредственно сама или через вызванные ею теоремы осуществляет вызов теорем по образцу Р, и при этом снова вызывается теорема ТН. Для борьбы с такими зацикливаниями в язык встроена функция ПХ(ОСЕ, обращение к которой имеет следующий вкд: [ПХ1Я13Е] Эта функция вырабатывает неуспех (с сообщением ПХ1()ЮЕ), если последний из активных вызывающих образцов не является «уникальным».
Если же этот образец «уникален», то функция успешно заканчивает свою работу со значением Т. Вызывающий образец является активным, если по нему выавана теорема, вычисление которой в настоящее время еще ие окончено. Образец не является «уникальным», если среди других активных образцов есть такой, что оба этихобразца используются для в»шова теорем одного и того же типа (целевых, записываюпшх или вычеркивающих) и оба обрааца равны как списки при условии, что в них вместо всех .-переменных, имеющих значения, н:-переменных подставлены нх значения (е переменные, а также .-переменные, ке имеющие значений, не ааменвются).
Например, если переменная Х имеет аначение А, а переменная «' не имеет значения, то образцы (ОХ .Х .У) и (ОХ А г) совпадут при укаэанном условии, а образцы (ОХ .Х .г') и (ОХ В»') или обраацы (ОХ «Х .г') и (ОХ «Е .г) не совпадут.
Расомотрим следующий пример. Предположви, что имеются точки А, В и С, причем точка А соединена с точкой В, а точка В соединена с точкой С, и требуется определить, можно ли попасть иаАвС. Если утверждение вида (РАТН х у) означает, что точка а соединена с точкой у, а утверя«денио вида (ВЕАСНАВВЕ х) говорит, что в точиу ъ можно попасть из точки А, тогда исходную оитуацию нашей задачи мол«но описать в виде следующей базы данных: (РАТН А В) (РАТН В А) (РАТН В С) (РАТН С В) (ВЕАСНАВВЕ А) Высказывание «иа А можно попасть в л» докааывается так: надо сначала найти некоторую точку у, соединенную с л, а аа- 178 тем доашзать <из А ьгожна попасть в уь.
Этому соответствует такая теорема: [ПЕР(НЕ ТН (СОМЯЕО (Х У) (ВЕАСНАВЬЕ «Х) [ОНН)ОЕ] [ЯЕАВСН (РАТН .Х «У)] [СОАЬ (ВЕАСНАВ1Е л')])1 Цель нашей задачи задается в виде выражения [СОЛЬ (ВЕАСНАВЬЕ С)] Рассмотрим протокол вычисления этого выражения: цель 1е (ВЕАСНАВ1Е С) теорема ТН: Х: = С [ОХН]ПЕ] — успех [ЯЕАВСН (РАТН С «г')] — уояех, У:= В цель лз (КЕАСНАВ1 Е .л') теорема ТН: Х: = В [НМ1011Е] — успех («) . [ЯЕАВСН (РАТН В «У)] — успех, У: = С цель уе (КЕАСНАВЬЕ .У) теорема ТН: Х:= С [1ЛМ1ООЕ] — неуспех Остановимся в этот момент вычислений н отметим следующее.
Первое обращение к функции СН!ОСЕ успешно потому, что в этот момент имеется лишь один активный вызывающий образец. Во второй раз функция также успешна, поскольку последний вызывающий образец (ВЕАСНАВЬЕ .У) при значении В у переменной г не совпадает с первым образцом-целью (КЕАСНАВЬЕ С). Но в третий раз функция 13Н10ОЕ вырабатывает неуспех, так как третья цель — (ВЕЛСНАВЬЕ .У) — прн аначении С переменной У совпадает с первой целью.
Этот неуспех — сигнал о том, что такая цель уже ставилась. Неуспех возвращает программу к функции ЯЕАВСН, отмеченной (»), которая найдет теперь для переменной У другое значение — А, и дальнейшее вычисление будет успешным: («) [ЯЕАВСН (РАТН В «г')] — успех; У: А [ООАЬ (ВЕАСНАВЬЕ АЦ вЂ” успех выход нз ТН выход из ТН . успех В этом примере функция УН(ОСЕ спасла нас ог бесконечных перемещений между точкамн В и С. Следует, однако, отметить, что функция ОН10()Е может выработать неуспех и тогда, когда аацикливания в действительности нет.
Напрпмер, последняя цель может совпадать с одной иа предыдующих, но поставлены эти цели могут быть в равных условияхв 12« 179 при разных базах данных. Поэтому совпадение целей еще не означает зацикливания. Функции САХ010АТЕЯ и АРРЬУ.