Пред.
След.
Макеты страниц
Распознанный текст, спецсимволы и формулы могут содержать ошибки, поэтому с корректным вариантом рекомендуем ознакомиться на отсканированных изображениях учебника выше Также, советуем воспользоваться поиском по сайту, мы уверены, что вы сможете найти больше информации по нужной Вам тематике ДЛЯ СТУДЕНТОВ И ШКОЛЬНИКОВ ЕСТЬ
ZADANIA.TO
5. Составление программы для универсальной вычислительной машины для реализации стратегии типа АПусть имеется универсальная цифровая машина, изображенная схематично на рис. 3 и обладающая свойствами.
Рис. 3. 1) Имеется большая внутренняя память для хранения чисел. Она разделена на некоторое число ячеек, каждая из которых способна содержать, скажем, десятиразрядное число. Каждой ячейке присвоен адрес в памяти. 2) Машина имеет арифметическое устройство, которое может выполнять элементарные операции сложения, умножения и т. д. 3) Вычислительная машина работает, повинуясь программе. Программа состоит из последовательности элементарных команд. Обычная команда имеет вид:
Это означает: выбрать содержимое ячеек 372 и 451, сложить эти числа и записать их сумму в ячейку 133. Другой тип команд содержит в себе выбор, например,
По этой команде машина сравнивает содержимое ячеек 291 и 118. Если первое число больше второго, машина выполняет следующую по порядку команду программы, если нет, то следующей выполняется команда из ячейки 345. Этот тип команд дает возможность машине сделать выбор из двух возможностей в зависимости от предыдущих результатов. Будем предполагать, что при помощи команд можно переносить числа из ячейки в ячейку, производить арифметические операции и осуществлять выбор (в только что указанном смысле). Наша задача состоит в представлении шахматной игры в виде чисел и операций над числами и в записи стратегии в виде последовательности команд. Не приводя детали, опишем в общих чертах программы. Ясно, что конечная программа должна быть записана в виде команд. Эта, так сказать, прокрустова задача представления шахмат в машине, предназначенной для выполнения математических вычислений, вызвана экономическими соображениями. Лучше всего было бы построить специальную вычислительную машину для шахмат, содержащую вместо арифметического устройства «шахматное устройство», специально сконструированное для выполнения простых шахматных вычислений. Несмотря на то что при этом, несомненно, будет достигнуто большое увеличение скорости выполнения операции, стоимость такой вычислительной машины будет так высока, что ее создание окажется невозможным. Предполагается все же провести ряд экспериментов на одной из цифровых вычислительных машин, которая сейчас конструируется. Игра в шахматы может быть разделена на три фазы: дебют, середину и окончание. На разных фазах приложимы различные принципы игры. В дебюте, который обычно заканчивается в течение примерно десяти ходов, главной целью является развитие фигур для занятия хороших позиций. В середине игры превалируют тактические удары и комбинации. К концу этой фазы обычно большинство фигур разменивается, остаются только короли, пешки и, может быть, одна или две фигуры с каждой стороны. Эндшпиль в основном связан с пешечными превращениями, где становится важным точное определение таких возможностей, как цугцванг, пат и т. д. Ясно, что при таком разнообразии стратегических задач на различных стадиях игры должны быть использованы различные программы. Будем в основном касаться середины игры и совсем не будем рассматривать окончания. Не видно, однако, причин, по которым не могла бы быть построена и достаточно хорошо запрограммирована стратегия окончания игры. Поле на шахматной доске может быть занято тринадцатью различными способами: либо оно пусто (0), либо на нем стоит одна из шести возможных белых фигур
Рис. 4. Обозначения фигур
Хотя это кодирование не является оптимальным, оно достаточно удобно для вычислений. Еще одно число X будет иметь значение кода). Однако здесь эта информация опущена. Во введенных обозначениях начальная шахматная позиция имеет вид
Любой ход (кроме рокировки и превращения пешки) можно описать указанием того, с какого поля и на какое переставляется фигура. Всего на доске 64 поля, следовательно, достаточно 6 двоичных разрядов для указания одного поля и всего 12 двоичных разрядов нужно для описания хода. Таким образом, первый ход Полная программа для стратегии типа А состоит из девяти программ, которые обозначим
Имея данную позицию Р и ход 1) В памяти машины отыскивается поле а позиции Р. 2) Число х в этом квадрате заменяется на 0 (пустой квадрат). 3) а) Если б) Если в) Во всех остальных случаях в поле 4) Изменяется знак К. Для фигуры каждого типа имеется программа, определяющая ее возможные ходы. Типичным примером является программа 1) Вычислим 2) Если 3) Вычислим 4) Аналогично с 5) Аналогично с По такой программе составляется список возможных ходов слона в позиции Р. Подобные программы составят списки возможных ходов для любых других фигур. При этом имеются значительные возможности для упрощения этих программ, например программа Используя программы для фигур 1) Обращаемся к полю (1,1) и определяем его содержимое х. 2) Если 3) Проверяем, допустим ли каждый из выписанных ходов, и выбрасываем недопустимые ходы. Это делается путем выполнения каждого хода в позиции Р (по программе Машина может играть в шахматы, пользуясь только программами такой стратегии очень низок. Автор сыграл несколько игр против такой случайной стратегии и обычно делал противнику мат в четыре-пять ходов. Следующая партия иллюстрирует полную бесцельность игры по такой стратегии:
Теперь вернемся к стратегии, основанной на оценочной функции Последняя управляющая программа 1) Составляет список допустимых ходов (используя 2) Делает первый ход в списке по программе 3) Составляет список ходов черных в позиции 4) Делает первый ход за черных, получает позицию 5) Делает второй ход за черных и оценивает полученную позицию. 6) Сравнивает оценки и выбрасывает ход с меньшей оценкой (т. е. остается лучшая оценка за черных). 7) Выполняет для третьего хода сравнение с оставшейся величиной и т. д. 8) Когда ходы черных исчерпаны, будет оставлен один ход с его оценкой. Процесс затем повторяется для второго хода белых. 9) Конечные оценки этих двух вычислений сравниваются, и оставляется тот из ходов белых (вместе с соответствующей оценкой), у которого оценочная функция больше. 10) Этот процесс повторяется для всех ходов белых и выбирается лучший (он остается после перебора всех возможных ходов белых). Это и есть тот ход, который надо сделать. Эти программы в высокой степени цикличны, следовательно, если они хорошо составлены, не должны занимать много места в памяти машины. Можно оценить объем памяти для записи позиций и промежуточных результатов, когда просматриваются все варианты на три хода вперед (с каждой стороны). Вероятно, должны запоминаться три позиции: начальная позиция, последняя позиция (которая теперь оценивается) и предшествующая ей. Это потребует около 800 двоичных разрядов. Кроме того, нужно помнить пять списков ходов, каждый из которых требует около
|
1 |
Оглавление
|