В.Н. Пильщиков - Язык Плэнер, страница 36
Описание файла
DJVU-файл из архива "В.Н. Пильщиков - Язык Плэнер", который расположен в категории "". Всё это находится в предмете "искусственный интеллект" из 7 семестр, которые можно найти в файловом архиве МГУ им. Ломоносова. Не смотря на прямую связь этого архива с МГУ им. Ломоносова, его также можно найти и в других разделах. .
Просмотр DJVU-файла онлайн
Распознанный текст из DJVU-файла, 36 - страница
Несколько иная ситуация возникает при сопоставлении «-переменной со списком, содержащим хотя бы одну «-переменную. Предположим, например, что теорема ТН1 вызывается по образцу (ПТИЦА (ВЕСЕЛЫЙ «з')), тогда при сопоставлении этого образца с обраацом теоремы (ПТИЦА «Х) выполняется сопоставление «Х с (ВЕСЕЛЫЙ» г'). Такое сопостаеление также считается удачным, и переменные Х и х' также пе получают никаких значений. Однако здесь накладывается ограничение на будущее значение переменной Х: ово должно быть списком из двух элементов, первый иэ которых — атом ВЕСЕЛЫИ, а второй — произволен, ио при этом обязан совпадать с будущим значением переменной з' (между У и вторым элементом устанавливается связь).
Поэтому если в дальнейшем при некотором сопоставлении' переменной Х будет присваиваться какое-то значение, то прежде всего будет проверено, удовлетворяет ли оно данному ограничению. Если нет, то присваивание яе выполняется, а сопоставление заканчивается неудачей. Например, при'сопоставлении образца (ПОПУГАЙ Х) функции ЯЕАВСН из теоремы ТН1 с утверждением (ПОПУГАЙ КЕША) будет предпринята попытка присвоить переменной Х значение КЕША, однако это аначеиие не удовлетворяет ограничению на Х, и потому сопоставление .Х с КЕША неудачно. Неудачно и сопоставление образца с утвеждением з целом, поэтому переменная Х по-прежнему остается без аначения.
Но если значение, присваиваемое переменной Х, удовлетворяет ограничению на эту переменную, тогда присваивание выполняется, и при этом второй элемент данного значения становится значением переменной У. Например, сопоставление образца функции ЯЕАКСН с утверждением (ПОПУГАИ (ВЕСЕЛЫЙ ЖЕКА)) удачно; переменная Х получает значение (ВЕСЕЛЫЙ ЖЕКА), а переменная Т— значение ЖЕКА. На будущее значение церемеиной может накладываться несколько ограничений.
В таком случае требуется, чтобы новое ограничение не противоречило старому. Если это не так, то возникает неудача в том сопоставлении, где делается пойытка наложить новое ограничение. например, если вначале было выполнено сопоставление «Х с (ВЕСЕЛЫЙ «у), а затем обрааец .Х сопоставляется с образцом (ГруСТНЫИ»Х), то второе сопоставление ие- 172 удачно.
Если же новое ограничение совместимо со старым, то берется «пересечение» обоих ограничений, и опо становится текущим ограничением на будущее значение переменной Например, после сопоставлений «Х с (ВЕСЕЛЫИ «»') и .Х с (ВЕСЕЛЪ|й («2 ПЕТЯ)) ограничение на переменную Х будет таким: ее будущее значение должно быть списком из двух элементов, первый из которых — атом ВЕСЕЛЫЙ, а второй элемент, как и будущее значение переменной У, обязав быть списком из любого элемента, совпадающего с будущим значением переменной 2, и атома ПЕТЯ. Иногда «пересечение» ограничений может одновкачно определить будущее значение переменной. В таком случае переменной автоматически присваивается это значение.
Например, после сопоставлений «Х с (ВЕСЕЛЫН «г) и .Х с («2 ЖЕКА) переменная Х получает значение (ВЕСЕЛЫЙ ЖЕНА); попутно переменной х присваивается значение НЕКА, а переменной 2 — значение ВЕСЕЛЫН. Теперь рассмотрим взаимоотношения между ограничениями, накладываемыми на будущие значения переменных, и связями, устанавливаемыми между переменными. Если несколько перемен- ° ных связаны между собой, а затем на одну из них накладывается ограничение, то это ограничение автоматически переносится и на остальные переменные. Если же, напротив, на несколько переменных были наложены ораничения, а ватем между этими переменными устанавливается связь, тогда берется, если возможно, «пересечение» всех ограничений, и оно становится общим ограничением на все эти переменные.
Если ограничения несовместимы, то свявь установить пе удастся. Предположим, к примеру, что при вычислении выражения [АСН)ЕУЕ (ЖИВОЕ-СУЩЕСТВО (ГРУСТНЫЙ «2))1 выаывается теорема ТН2. При сопоставлении ее обрааца (ЖИВОЕ- СУЩЕСТВО «У) с вызывающим образцом на переменную У накладывается такое ограничение: ее будущим значением может быть только список из атома ГРУСТНЫЙ и произвольного элемента, равного будущему значению переменной 2. При вычислении тела теоремы ТН2 осуществляется вызов по образцу (ПТИЦА .г') теоремы ТН1, имеющей образец (ПТИЦА «Х). При сопоставлении этих образцов между переменными х' и Х устанавливается связь, поэтому на переменку»о Х переносится ограничение, наложенное на переменную г'. Следовательно, образцу (ПОПУГАИ .Х) функции БЕАВСН не может соответствовать ни утверждение (ПОПУГАЙ КЕША), ни утверждение (ПОПУГАЙ (ВЕСЕЛЫЙ ЖЕКА)), но может соответствовать утверждение (ПОПУГАИ 173 (ГруСТНЫИ ТОМ) ).
И если последнее утверждение действительно есть в базе данных, тогда переменная Х получает аначение (ГРУСТНЫИ ТОМ); это же значение автоматически получает переменная У, а значением переменной Е становится атом ТОМ. И„ наконец, отметим, что ограниченин и связи каждой переменной сохраняют свою силу только до полученвя ею первого значения. После этого она может получать без всяких' оговорок любые другие значения, и это никак не будет сказываться на остальных переменных. Дело в том, что связи и ограничения переменных, как и их значения, сохраняет только префикс «.ы если переменная входит в обрааец с этим префиксом, то при сопоставлении используется ее значение, а если его нет, принимаются во внимание ее свяаи и ограничение.
Если >ке переменная входит в образец с префиксом «е», то ее прежнее состояние (значение, связи илп.ограничение) игнорируется. Такое правило действует при любых сопоставлениях, в том числе и при сопоставлении образца с выражением »). И поскольку изменить эначение переменной, уже имеющей значение, можно, только обратившись к ней с префвксом «э», дальнейшая «судьба» 'такой переменной никак не связана с остальными переменными или наними-либо ограничениями. В этой связи отметим, что теорему (ОЕР1КЕ ТНЗ (СОКБЕ() (Х) (ПТИЦА «Х) (ЯЕАВСН (ПОПУГАИ «Х)))1 нельая рассматривать как описывающую высказывание «любой попугай есть птицам Действительно, если теорема вызывается по обраацу (ПТИЦА КЕША), т.
е. требуется докааать, что Кеша есть птица, то при сопоставлении этого обрааца с образцом теоремы переменная Х получит значение КЕША. Но в образце функции ЯЕАВСН обращение к переменной Х эадано с префиксом «е», поатому при сопоставлении этого обрааца. с утверждениями данное аначение переменной Х игнорируется, и такому обраацу соответствует любое утверждение иа двух элементов, первый нз которых — атом ПОПУГАИ. Следовательно, теорема не проверяет, является ли Кеша попугаем, а проверяет лишь то, есть ли в базе данных вообще какое-нибудь утверждение о попугаях. Эта ошибка обусловлена тем, что в образце функции БЕАВСН вместо обращения к. переменной Х с префиксом «.», который сохранил бы «) Присваивание (ЯЕТ Х е) считается эквивалентным присваиванию [1Я »Х е), поэтому функция ЯЕТ всегда игворнрует прежнее состояние переменной Х То же справедливо и для всех других функций присваивания. 174 аиачение КЕША, указано обращение с префиксом «ез, при котором данное значение не принимается во внимание.
Этот пример показывает, что если должно учитываться «прошлоез переменной, то обращаться к ней следует- только с префиксом «.з. Если же «прошлое» переменной нас не интересует и мы хотим дать ей новое значение, новые свяаи нли ограничения, тогда обращаться к переменной надо с префиксом «е». Теперь мы сформулируем точные правила сопоставления двух Т-образцов. 1. Если во время сопоставления меняется состояние (аначенне, связи илн ограничение) капой-либо..переменной, то обязательно запоминается обратный оператор, назначение которого — восстановить при неудаче прежнее состояние этой переменной.
Поскольку . в Т-образцах нет сегментных элементов, первая же неудача при сопоставлении образцов ведет к неудачному исходу всего сопоставления и выполнению всех обратных операторов« появившихся с начала сопоставления (т. е. к отмене всех побочных эффектов). 2.-Оба сопоставляемых образца (напомним, что это 1 списки) должны иметь одинаковую длину, иначе сопоставление неудачно. Эти списки сопоставляются поалементно: сначала выполняется сопоставление их первых элементов, ватам †втор 'злементов и т. д.
Только если все зги сопоставления удачны, удачным будет и сопоставление образцов в целом. Далее перечислены все воаможные случаи сопоставления элементов Т-образцов. 3. Если один из сопоставляемых элементов не включает в себп переменных либо содержит .-переменные, которые имеют значения, то сопоставление этих элементов сводится к сопоставленшо образца с выражением. Например, при значении С у переменной «' сопоставление (А еХ) с (А (В Л)) эквивалентно сопоставлению (13 (А «Х) (А (В С))). 4. Сопоставление двух «-переменных всегда удачно.
Как побочный аффект обе переменные «теряютз свои прежние состояния и остаются без значений, после чего между этими переменными устанавливается связь. 5. Сопоставление «Х с .з" также удачно. Как побочный эффект прежнее состояние переменной Х «забываетсяз; если У имеет аначение, то оно становится и аначением переменной Х «), иначе между Х и У устанавливается связь, поэтому на переменную Х переносятся ограничение и связи переменной У. 6. При сопоставдении .Х с Л воаможиы следующие случаи: — если обе переменные имеют значения, то эти значения сравниваются: они равны — удача, не равны — неудача; «) Аналогичное правило действует и при сопоставлении образца с выражением. 175 — если значение имеет только одна переменная, скажем У, то проверяется, удовлетворяет ли это значение ограничению на будущее значение переменной Х.