3.7. Резюме. Использование фреймов в эвристическом поиске
3.7. Резюме. Использование фреймов в эвристическом поиске
За последние десять лет широкое распространение получила идея о том, что важны все аспекты представления информации с помощью «пространства задачи»; однако мысль о том, что описания могут быть полезны и для самих программ, и для авторов этих программ, не стала столь же популярной. Прогресс в понимании этого ключевого момента был фактически задержан остроумными схемами, созданными для того, чтобы избежать явных манипуляций описаниями.
Основным устремлением, особенно при доказательстве теорем и моделировании игр, была разработка средств, ведущих к систематическому уменьшению протяженности поиска в пространстве задачи. Иногда простая задача может быть решена при помощи последовательного перебора допустимых методов решения: перебор производится до тех пор, пока один из методов не даст положительного результата. В более сложных ситуациях используются усовершенствованные локальные правила поведения, а также варианты «восхождения к вершине» в пределах пространства задачи. Однако если нам и удается таким способом решить определенную задачу, мы получаем мало сведений о пространстве задачи и, следовательно, не повышаем свою квалификацию, что весьма пригодилось бы нам в будущем. Наиболее разработанными в эвристических методах являются игровые методы поиска решений, в которых используются различные стратегии для уменьшения дерева перебора, оценки терминальных вершин и выработки разумного хода. Однако даже в тех системах, где применяются различные способы организации иерархий символьных целей, отсутствует «осознанный» самой системой подход к процессу поиска решений и не совершенствуется качество представления информации. Я предлагаю следующее более совершенное и мощное правило.
Главной целью при решении задач должно быть стремление лучше понять пространство задачи и найти такие представления, в рамках которых данная задача решается довольно просто. Цель поиска состоит в том, чтобы получить информацию для формирования надлежащего представления, а не для нахождения решения, как это обычно предполагается; после того, как удастся соответствующим образом представить это пространство задачи, решение найти будет значительно легче.
В частности, я являюсь противником того, что значимость интеллектуального эксперимента должна оцениваться либо относительно категорий «неудача — частичный успех — успех», либо с помощью таких понятий, как «улучшение ситуации» и «уменьшение различия». Применение какого-то метода или изменение представления могут быть ценными лишь в том случае, когда они ведут к совершенствованию стратегии проведения последующих экспериментов. В более ранних формулировках роли стратегий в эвристическом поиске эти возможности не были выделены, хотя в неявной форме они содержались в рассуждениях о задачах планирования.
Каким образом можно объединить новое правило с классической стратегией минимакса? Пусть мы находимся в определенном узле А дерева решения (играя в какую-нибудь игру, например, шахматы) и исследуем два (или более) возможных хода, скажем В и С. Каждый из этих ходов получает значения оценок V(B) и V(C). Затем оба этих значения объединяются с помощью функции М для того, чтобы выработать одну общую оценку
S(A) = M( V(B), V(C) ) .
По существу, с помощью функции М должны подводиться итоги поиска на всем дереве ниже узла А и определяться оценка позиции А.
Посмотрим, в чем заключается цель подобных действий. Если можно было бы произвести поиск на всем дереве перебора, то мы смогли бы использовать найденную в каждом узле оценку S для принятия решения о том, какой следующий ход лучше всего сделать. Если, однако, оценка S дается просто в виде числа, то на этой основе невозможно будет провести значительные рассуждения, требуемые для анализа существующей ситуации.
Если значение S(B) невелико, то можно предположить, что В — неудачная позиция. Но если мы хотим, чтобы генератор ходов не повторял своих прежних ошибок, сообщение S должно включать некоторую дополнительную информацию относительно того, чем нас не удовлетворяет позиция В или как поступить в данном случае. Нам фактически требуется итоговое объяснение того, что обнаружено в процессе поиска; поскольку мы работаем с деревом перебора, нам требуется также рекурсивное суммирование подобных резюме.
Рассмотрим проблему, названную нами «расхождением резюме». Если резюме для ситуации А содержит (в общем случае) любое явное описание для В и С, то существует опасность того, что любая схема рекурсивного описания будет повторять дерево ходов; это приведет к столь же длительному поиску итогового сообщения, как и поиску самого решения. Чтобы этого не произошло, можно воспользоваться довольно простым способом — ограничить размеры самого резюме. В этом случае следует позаботиться о том, чтобы избежать сильного уменьшения информативности сообщений. Во фреймах-описаниях важные черты и отношения, находящиеся на верхних уровнях, могут служить в качестве резюме, а вспомогательные описания становятся доступными лишь по необходимости. Вопрос о том, какая часть проанализированного дерева должна оставаться в долговременной памяти, а какая отбрасываться после того, как сделан очередной ход, зависит от других аспектов использования участником игры всего накопленного им опыта.
Какие принципы должны лежать в основе образования резюме? И в этом вопросе концепция фреймов демонстрирует свою гибкость. Вместо того чтобы попытаться ограничить сообщения какими-то жесткими форматами, мы можем построить набор «резюме»-фреймов для каждого данного случая; любой фрейм будет вызываться, когда его терминалы подходят к описаниям ситуаций более низких уровней, а маркеры согласуются с текущими целями. Таким образом, каждый из этих фреймов выполняет свою работу только тогда, когда он соответствует текущей ситуации. Например, у человека могут быть самые разные фреймы типа «шахматной вилки». Если конь занимает такую позицию, что угрожает одновременно и шахом, и взятием ладьи, то активируется фрейм вилки, соответствующий следующему условию: при любом из двух возможных ходов теряется та фигура, которая не изменит своей позиции. Как только будет активирован этот фрейм, он может дать конкретную рекомендацию, вероятно, следующего содержания: генератор ходов того игрока, который попадает под вилку, должен выяснить, не может ли какой-нибудь ранее сделанный ход обеспечить защиту того поля, откуда исходит угроза вилки.