МЫСЛИТЕЛЬНЫЕ СОБЫТИЯ И МЫСЛИМЫЕ ОБЪЕКТЫ

Агенты, которые были созданы в этой книге до сих пор, были уверены в истинности или ложности некоторых высказываний и обладали способностью выводить логическим путем новые убеждения, но ни один из этих агентов не обладал какими-либо знаниями о самих убеждениях или о логическом выводе. Но в одноагентных проблемных областях знания о собственных знаниях и процессах формирования рассуждений весьма полезны для управления логическим выводом. Например, если некто знает, что он ничего не знает о географии Румынии, то для него нет необходимости впустую затрачивать невероятные вычислительные усилия, чтобы рассчитать кратчайший путь от Арада до Бухареста. Вместо этого он может порассуждать о собственных знаниях, чтобы составить планы их расширения, например, купив карту Румынии. Кроме того, в мультиагентных проблемных областях для агента важно иметь возможность рассуждать о мыслимых состояниях других агентов. Например, наилучший способ попасть в Бухарест вполне может знать румынский полицейский, поэтому агенту достаточно обратиться к нему за помощью.
По сути нам требуется модель мыслимых объектов, которые находятся в чьей-то голове (или базе знаний), и мыслительных процессов, которые манипулируют с этими мыслимыми объектами. Такая модель должна быть достоверной, но не требуется, чтобы она была слишком детализированной. Нам не нужно иметь способность предсказывать, сколько именно миллисекунд потребуется, чтобы какой-то конкретный агент пришел к нужному логическому заключению, или же прогнозировать, какие именно нейроны активизируются, когда исследуемое животное столкнется с конкретными визуальными стимулами. Для нас будет достаточно иметь возможность прийти к выводу, что румынский полицейский сообщит нам, как попасть в Бухарест, если будет знать дорогу и убедится в том, что мы действительно заблудились, а не подшучиваем над ним.
Формальная теория убеждений
Начнем с изучения связей между агентами и "мыслимыми объектами", таких как Believes (Убежден), Knows (Знает) и Wants (Желает). Отношения такого рода называются пропозициональными позициями (prepositional attitude), поскольку они описывают позицию, которую может занять агент по отношению к некоторому высказыванию. Предположим, что Лойс в чем-то убеждена, т.е. Believes {Lois, х). Какого рода объектом является х? Очевидно, что х не может быть логическим высказыванием. Если утверждение, что Супермен летает (Flies (Superman)) — логическое высказывание, то нельзя составить выражение Believes (Lois, Flies (Superman) ), поскольку параметрами предикатов могут быть только термы (а не высказывания). Но если Flies — функция, то Flies (Superman) становится подходящим кандидатом на использование в качестве мыслимого объекта, a Believes может быть отношением между агентом и пропозициональным флюентным термом. Преобразование высказывания в объект называется овеществлением (reification)5.
По-видимому, такой подход позволяет достичь желаемого — появления у агента способности рассуждать об убеждениях агентов. Но, к сожалению, при использовании этого подхода возникает определенная проблема: если киноактер Кент Кларк и его герой Супермен — это одно и то же (т.е. Clark= Superman), то полет Кларка и полет Супермена — одна и та же категория событий, т.е. Flies (Clark) =Flies (Superman). Поэтому мы обязаны сделать такой вывод: если Лойс уверена в том, что Супермен может летать, она должны быть также уверена в том, что Кларк может летать, даже если она не уверена в том, что Кларк — Супермен, как показано ниже.
(Superman = Clark) N
(Believes (Lois, Flies (Superman) ) <=> Believes (Lois, Flies (Clark) ) )
В определенном смысле такое утверждение недалеко от истины: Лойс убеждена в том, что есть некое лицо, которому некогда присвоили имя Кларк, и что это лицо может летать. Но есть еще один смысл, в котором приведенное выше высказывание является ложным: если Лойс задать вопрос: "Может ли Кларк летать?", она, безусловно, ответит отрицательно. Овеществленные объекты и события вполне приемлемы для использования в первом смысле толкования предиката Believes, но во втором толковании необходимо овеществлять описания этих объектов и событий таким образом, чтобы Clark и Superman могли иметь разные описания (даже несмотря на то, что оба эти имени относятся к одному и тому же объекту).
Формально свойство высказывания, позволяющее свободно подставлять любой терм вместо равного терма, называется ссылочной прозрачностью (referential transparency). В логике первого порядка свойством ссылочной прозрачности обладает каждое отношение. Но нам было бы желательно иметь возможность определять Believes (и другие пропозициональные позиции) как отношения, второй параметр которых является ссылочно непрозрачным (opaque), т.е. таким, чтобы без изменения смысла нельзя было бы подставить равный терм вместо второго параметра.
Существуют два способа достижения этой цели. Первый из них состоит в использовании другой формы логики, называемой модальной логикой (modal logic), в которой такие пропозициональные позиции, как Believes и Knows, становятся модальными операторами, обладающими свойством ссылочной непрозрачности. Этот подход рассматривается в разделе с историческими заметками. Второй подход, который будет применяться в данной главе, состоит в эффективном обеспечении непрозрачности в рамках ссылочно прозрачного языка с использованием синтаксической теории мыслимых объектов. Это означает, что мыслимые объекты представляются константами — строками. Результатом становится грубая модель базы знаний агента, которая представлена как состоящая из строк, соответствующих высказываниям, в истинности которых убежден агент. Строка — это сложный терм, обозначающий список символов, поэтому событие Flies (Clark) может быть представлено в виде списка символов [F, 1, i, е, s, (, С, 1, а, г, к, ) ], которые мы будем сокращенно записывать в виде строки, заключенной в кавычки, "Flies (Clark) ". Эта синтаксическая теория включает аксиому об уникальности строк, в которой утверждается, что строки являются идентичными тогда и только тогда, когда они состоят из идентичных символов в одинаковой последовательности. Таким образом, даже если Clark= Superman, мы все равно имеем " Clark" Ф" Superman".
Теперь достаточно лишь предусмотреть синтаксис, семантику и теорию доказательства для языка представления строк, точно так же, как это было сделано в главе 7. Различие состоит в том, что необходимо определить все эти компоненты в логике первого порядка. Начнем с определения Den (сокращение от denotatum — денотат, или обозначаемое) как функции, которая отображает некоторую строку на обозначаемый ею объект, и Name как функции, которая отображает объект на строку, представляющую собой имя константы, обозначающей этот объект. Например, денотатом строки " Clark" и строки " Superman" является объект, на который ссылается константный символ ManOf Steel (Человек из стали), а именем этого объекта в базе знаний может быть " Superman", " Clark" или какая-то другая константа, например "Х1±":
Den("Clark") = ManOfSteel A Den("Superman") = ManOfSteel Name (ManOfSteel) = "Хц"
Следующий этап состоит в том, чтобы определить правила логического вывода для логических агентов. Например, может потребоваться сформулировать утверждение, что любой логический агент способен использовать правило отделения: если он уверен в истинности высказываний р и р д, то он будет также уверен в истинности g Первая попытка записать эту аксиому может состоять в следующем:
LogicalAgent (а) л Believes (а,р) л Believes (а, 11 р => д") => Believes (а, д)
Но эта попытка неудачна, поскольку строка "р => д" содержит буквы 'р' и ' д*, но не имеет ничего общего со строками, являющимися значениями переменных р и д. Правильная формулировка состоит в следующем:
LogicalAgent (а) л Believes (а,р) л Believes (a, Concat (р,"=>", д) ) => Believes(а,д)
где Concat — функция на строках, которая соединяет (конкатенирует) свои параметры. Мы будем сокращенно записывать операцию Concat (р, "=>", д) с помощью подчеркивания, как "р => д". Это означает, что вхождение х в строке должно быть взятым без кавычек, или раскавыченным, т.е. мы должны подставить строковое значение переменной х. В языке Lisp такая операция выполняется с помощью оператора "запятая/обратная кавычка", а в языке Perl для этого используется интерполяция $-переменной.
После введения других правил логического вывода, кроме правила отделения, мы получим возможность отвечать на вопросы в такой форме: "Если дано, что логический агент знает такие-то предпосылки, может ли он прийти к такому-то заключению?" Кроме этих обычных правил логического вывода, требуются определенные правила, характерные для рассуждений об убеждениях. Например, следующее правило утверждает, что если логический агент в чем-то уверен, то он уверен, что он в этом уверен:
LogicalAgent (а) л Believes (а,р) => Believes {а, "Believes {Name (а) ,р) ")
Теперь, согласно нашим аксиомам, любой агент может безошибочно вывести любое следствие из своих убеждений. Такое свойство агента называется логическим всеведением (logical omniscience). Было сделано много попыток определить спецификации ограниченных рациональных агентов, которые способны выполнять ограниченное количество логических выводов за ограниченное время. Ни одна из этих попыток не оказалась полностью успешной, но описанные выше формулировки позволяют получить в высшей степени обоснованный ряд предсказаний о возможностях ограниченных агентов.







Материалы

Яндекс.Метрика