15.5.3. Правила и таблицы советов
15.5.3. Правила и таблицы советов
В Языках Советов отдельные элементарные советы объединяются в полную схему представления знаний, имеющую следующую иерархическую структуру. Элементарный совет является частью "если-то"-правила. Набор "если-то"-правил образует таблицу советов. Множество таблиц советов имеет структуру иерархической сети. Каждая таблица советов выполняет роль эксперта в своей узкой области и работает с какой-нибудь специфической подзадачей. Примером такого специализированного эксперта может служить таблица советов, содержащая знания о том, как поставить мат королем и ладьей. Эта таблица вызывается в том случае, когда в процессе игры возникает соответствующее окончание.
Мы рассмотрим здесь упрощенную версию Языка Советов, допускающую только одну таблицу советов. Будем называть эту версию Язык Советов 0 или, для краткости, AL0 (Advice Language 0). Ниже описывается структура языка AL0, синтаксически специально приспособленная для удобной реализации на Прологе.
Программа на AL0 называется таблицей советов. Таблица советов представляет из себя упорядоченное множество "если-то"-правил. Каждое правило имеет вид:
ИмяПравила: если Условие то СписокСоветов
Условие — это логическое выражение, состоящее из имен предикатов, соединенных между собой логическими связками и, или, не. СписокСоветов — список имен элементарных советов. Приведем пример правила под названием "правило_края" из окончания "король и ладья против короля":
правило_края:
если король_противника_на_краю и короли_рядом
то [мат_2, потеснить, приблизиться,
сохранить_простр, отделить].
В этом правиле говорится: если в текущей позиции король противника находится на краю доски, а король игрока расположен близко к королю противника (точнее, расстояние между королями меньше четырех клеток), то попытаться выполнить в указанном порядке предпочтения следующие советы: "мат_2", "потеснить", "приблизиться", "сохранить_простр", "отделить". Элементарные советы расположены в порядке убывания их "притязаний" на успех: сначала попытаться поставить мат в два хода, если не получится — "потеснить" короля противника в угол и т.д. Обратите внимание на то, что при соответствующем определении операторов наше правило станет синтаксически корректным предложением Пролога.
Для представления элементарных советов в виде прологовских предложений предназначен еще один формат:
совет( ИмяСовета,
ГлавнаяЦель:
ЦельПоддержка:
ХодыИгрока:
ХодыПротивника).
Цели представляются как выражения, состоящие из имен предикатов и логических связок и, или, не. Ограничения на ходы сторон — это тоже выражения, состоящие из имен предикатов и связок и и затем: связка и имеет обычный логический смысл, а затем задает порядок. Например, ограничение, имеющее вид
Огр1 затем Огр2
означает: сначала рассмотреть ходы, удовлетворяющие ограничению Oгp1, а затем — ходы, удовлетворяющие Огр2.
Например, элементарный совет, относящийся к мату в два хода в окончании "король и ладья против короля", записанный в такой синтаксической форме, имеет вид:
совет( мат_2,
мат:
не потеря_ладьи:
(глубина = 0) и разреш затем
(глубина = 2) и ход_шах :
(глубина = 1) и разреш ).
Здесь главная цель — мат, цель-поддержка не потеря_ладьи. Ограничение на ходы игрока означает: на глубине 0 (т.е. в текущей позиции) попробовать любой разрешенный ход и затем на глубине 2 (следующий ход игрока) пробовать только ходы с шахом. Глубина измеряется в полуходах. Ограничение на ходы противника: любой разрешенный ход на глубине 1.
В процессе игры таблица советов используется многократно вплоть до окончания игры, при этом выполняется следующий основной цикл: построить форсированное дерево, затем играть в соответствии с этим деревом, пока не произойдет выход из него; построить другое форсированное дерево и т.д. Форсированное дерево строится каждый раз таким образом: берется текущая позиция Поз и просматриваются одно за другим все правила таблицы советов; для каждого правила сопоставляется Поз с предварительным условием этого правила и просмотр прекращается, когда будет обнаружено правило, для которого Поз удовлетворяет предварительному условию. В этом случае надо рассмотреть список советов найденного правила: обработать элементарные советы один за другим, пока не будет построено форсированное дерево, представляющее собой детальную стратегию игры в этой позиции.
Следует обратить внимание на существенность того порядка, в котором перечисляются правила в таблице советов. Правило, которое реально используется, — это первое из тех правил, предварительные условия которых согласуются с текущей позицией. Для любой возможной позиции должно существовать по крайней мере одно такое правило. Из него берется список советов, и первый из выполнимых советов списка используется в игре.
Таким образом, таблица советов это программа в высшей степени непроцедурного характера. Интерпретатор языка AL0 принимает на входе некоторую позицию, а затем, "исполняя" таблицу советов, строит форсированное дерево, определяющее стратегию игры в этой позиции.
Более 800 000 книг и аудиокниг! 📚
Получи 2 месяца Литрес Подписки в подарок и наслаждайся неограниченным чтением
ПОЛУЧИТЬ ПОДАРОКЧитайте также
8.2. Несколько советов для браузеров
8.2. Несколько советов для браузеров Ускоряем загрузку страниц в Firefox 3 В Firefox можно увеличить скорость загрузки и отображения страниц, значительно повысив комфортность работы в Интернете. Что для этого нужно сделать:Открыть страничку настроек, набрав в адресной строке
Страна советов
Страна советов Метки: исследования, влияние, доверие, вирусный маркетингНастал век молвы, и, как ни удивительно, хитроумные технологии и неограниченный доступ к информации все чаще будут заставлять нас полагаться на примитивные виды социальных контактов. Естественно
10 советов о том, какую информацию размещать
10 советов о том, какую информацию размещать 1. Согласно исследованиям, пользователи сетей за 10 секунд принимают решение будут они читать вас или следовать за вашими твиттами или нет. Итак, что отталкивает ваших потенциальных новых «друзей».2. Правильный аватар стоит
10 советов о подаче информации в социальных сетях
10 советов о подаче информации в социальных сетях 1. Возможно это плохая новость для smm-специалистов, но информацию в разных сетях следует размещать разную. И вести себя с читателями разных сетей соответственно придется так, как принято в сообществе, в которое вы
10 советов по ведению календаря публикаций
10 советов по ведению календаря публикаций 1. Каждый день (и в выходные тоже!) на корпоративной странице следует размещать по одной публикации (несколько иначе следует действовать в Twitter, об этом ниже).2. Иногда, если происходит что-то важное, в день может быть и две, и три
10 советов по работе в Twitter
10 советов по работе в Twitter 1. Если вы ведете в Twitter корпоративную страничку, через день постите собственные новости и новости рынка, на котором работает ваша компания каждый час с 8 утра и до 21 часов вечера.2. На второй день — молчите как рыба. Дайте читателям отдохнуть от
10 советов о том, как сделать свою страницу популярной
10 советов о том, как сделать свою страницу популярной 1. Разместите кнопки социальных сетей, в которых у вас есть страницы на вашем официальном сайте. Это позволит привлечь дополнительные «like» и новых читателей.2. Делитесь не только вашими новостями, но и информацией о
НЕСКОЛЬКО СОВЕТОВ, КАК СДЕЛАТЬ ПРОГРАММУ ЧИТАЕМОЙ
НЕСКОЛЬКО СОВЕТОВ, КАК СДЕЛАТЬ ПРОГРАММУ ЧИТАЕМОЙ Создание читаемой программы служит признаком хорошего стиля программирования. Это приводит к облегчению понимания смысла программы, поиска ошибок и в случае необходимости ее модификации. Действия, связанные с
Приложение 1. 70 советов пользователям 3ds Max
Приложение 1. 70 советов пользователям 3ds Max В то время, когда я начинал заниматься трехмерным моделированием, книг на эту тему практически не было и приходилось во многом разбираться самостоятельно, собирая информацию в Интернете. Теперь, накопив достаточно опыта, я могу
15.5. Знания о типовых ситуациях и механизм "советов"
15.5. Знания о типовых ситуациях и механизм "советов" В этом разделе рассматривается метод представления знаний о конкретной игре с использованием семейства Языков Советов. Языки Советов (Advice Languages) дают возможность пользователю декларативным способом описывать, какие
10 советов по защите Wi-Fi соединений для путешественников
10 советов по защите Wi-Fi соединений для путешественников Автор: Michael KassnerИсточник: http://www.winblog.ru/Тема безопасности Wi-Fi соединения в наши дни очень популярна. На ряде форумов, ведутся энергичные дискуссии на предмет «лучшего решения». Один из наиболее часто обсуждаемых
Несколько советов родителям
Несколько советов родителям Психологи советуют родителям придерживаться некоторых правил, которые помогают решить проблему зависимости ребенка от компьютерных игр и интернет-зависимости. Прочтите их, возможно, они помогут вам не только в решении этой проблемы, но и