Чтение онлайн

ЖАНРЫ

Шрифт:

Если ЭВМ будет по этому алгоритму (и соответствующей ему программе) играть в силу гроссмейстера, то можно будет использованные здесь методы перенести в решение важных с практической точки зрения задач, и прежде всего в области экономики.

В декабре 1974 года приезжал в Москву английский мастер Ливи — он судил все шахматные соревнования среди машин, в том числе и первый чемпионат мира в Стокгольме 1974 года и второй, в Торонто 1977 года, пригласил он нас играть в следующем чемпионате мира. Мы согласились.

Появились еще два добровольца: Миша Цфасман и Саша Резницкий, первый — с мехмата МГУ, второй — с кафедры прикладной математики Нефтехимического института (там в ту пору работал профессор Криницкий).

У Миши был первый разряд, Саша — действующий кандидат в мастера (шахматная команда ВНИИЭ усилилась!). Оба (как и Штильман, и Юдин) говорят по-английски; конечно, по сравнению с опытными моими программистами новобранцы казались птенцами, но быстро освоились.

Началась работа по составлению библиотеки позиций миттельшпиля. Под руководством А. Юдина студент А. Резницкий выполнил ее как дипломную работу. Здесь пришлось решить принципиально новую задачу: что заносить в память ЭВМ и (в соответствии с тем, как шахматный мастер использует свою библиотеку) как ЭВМ пользоваться этими данными?

По сути дела, когда мастер сталкивается с какой-то позицией (из партии или из перебора), и ему кажется, будто что-то похожее он ранее изучал, он действует по ассоциации с прежним опытом. Между прочим, когда работа уже заканчивалась, Саша Резницкий нашел, что об этом же писал еще Клод Шеннон в своей статье 1950 года...

Все просто, но как это формализовать, чтобы передать ЭВМ? Дело оказалось далеко не простым, но задача была формализована и решена. В памяти ЭВМ хранится фрагмент, частичная позиция, состоящая из тех фигур, что ранее в какой-то партии перемещались, и когда-то это принесло свои плоды. Если расположение части фигур из партии, что играет ЭВМ, похоже на фрагмент, то ЭВМ и использует в переборе опыт прошлого.

11 этюдов были давно заготовлены для проверки программы — еще несколько лет назад я писал в предисловии к сборнику этюдов Г. Надареишвили, что именно с этюдов следует начинать эксперименты. Рассуждал я просто — в этюдах форсированная тактическая игра, позиционная оценка не нужна, а так как позиционное понимание будет введено в программу в последнюю очередь, то и надо начинать с этюдов...

Вот и начали со знаменитого этюда Р. Рети (Б. Kph8, п.сб; Ч. Кр аб, п.Ь5. Ничья); что может быть проще и в то же время остроумнее этого произведения?

Кстати, пришлось программу «крестить». В декабре 1976 года пришло из Канады приглашение принять участие во втором чемпионате мира шахматных программ для компьютеров. Требовалось заполнить анкету, где один из вопросов относился к названию программы. Я предложил «Человек», ибо программа играет по человеческому методу. Боря предложил «Пионер» (оказалось, что это было им давно подготовлено), так как программа прокладывает новые пути в области принятия решений. Обсудили и решили, что программе до человека еще далеко, а пионером она уже является!

Итак, в декабре 1976-го — январе 1977 года «Пионер» решил этюд Рети. Думали, что все будет просто — оказалось весьма сложно. Без позиционной оценки и без подключенной библиотеки эндшпиля дерево расползалось. ЭВМ была с небольшой производительностью, на решение уходили часы, а результата не было... Стало ясно, что надо помочь «Пионеру»!

Взяли правило квадрата и запрограммировали в трех модификациях; ввели в библиотеку, и «Пионер» в каждом узле дерева получал из библиотеки необходимую информацию. Эффект был поразительным: этюд был решен за 70 минут, в дереве перебора было всего 54 хода. Небольшое, человеческое дерево впервые получено было 28 января 1977 года — несомненно, знаменательное событие в кибернетике.

Важнейший результат эксперимента: 1) одна подпрограмма поиска хода в оригинальной позиции не может привести к небольшому дереву (нужны библиотеки, хранящие накопленные ранее знания) и 2) без позиционного понимания «Пионеру»

приходится также нелегко. Но все же было решено испытать силы «Пионера» еще на одном этюде Ботвинника и Каминера, составленном двумя приятелями в юношеском возрасте (Б. Kpal, Фа2, Cd2, п.п. f3, g2; Ч. Kph5, Og7, Kd3, п.п. e5 и g6. Выигрыш).

С этим этюдом связана забавная ошибка. Когда в 1925 году мы с Сережей работали над этюдом, у нас возникли разногласия. Мой товарищ настаивал на том, чтобы на поле g6 стоял черный слон, а я — черная пешка. Дело в том, что комбинация, реализованная в этюде, была взята из легкой партии — там на поле g6 стояла пешка...

Наконец, Сережа меня убедил, и этюд был опубликован со слоном на g6. Когда же по памяти я восстанавливал этюд для «Пионера», то по ошибке поставил на g6 пешку!

И с этим этюдом бедняга «Пионер» мучился — не владел он позиционной оценкой. Пришлось ввести паллиативные правила (взамен этой оценки), и этюд был решен за 2 часа 43 минуты — в дереве было 143 хода. Произошло это 11 апреля 1977 года и так же, как и 28 января, на ГВЦ Госплана СССР (после улучшений в программе время сократилось до 45 минут).

Казалось бы, что решения этюдов надо прекратить впредь до введения в программу позиционной оценки. Но одно тактическое соображение, принятое во внимание, привело к иному решению.

Суть дела в том, что оба этюда, по всей вероятности, могли быть решены другими программами. Если бы «Пионер» прекратил серию экспериментов на этюдах, а другие программы добились бы таких же результатов, то это на некоторый период времени могло нанести ущерб интересам пропаганды новых научных идей, могло бы направить усилия ученых-кибернетиков в ложном направлении. Поэтому было решено продолжить эксперименты еще на один этюд — известную композицию Г. Надареишвили (Б. Kph8, п. п. еЗ, g5, h5; Ч. Kpf5, Сс2, Ке1, п.п. с5, с7, еб. Выигрыш). То, что по методу полного перебора этот этюд не решишь, было ясно. Но осилит ли его не завершенный еще «Пионер»?

К тому времени «Пионер» перешел на более современную, но обладающую меньшим быстродействием ЭВМ во ВНТИЦентре. «Пионер» стал формировать дерево значительно медленнее. Поскольку в этюде Надареишвили, более сложном, чем первые два этюда, игры (разнотипных позиций) оказалось больше, стали выявляться технические программистские ошибки. «Больным» оказалось поле g7: черный конь попадал на это поле с g5, е5 и d7! Дерево также разрасталось...

Штильман действовал решительно. Как аэронавт он стал сбрасывать «балласт», то есть выключать подпрограммы, не имеющие прямого отношения к этому этюду. Правда, Боря немного увлекся, он отключал и нужные подпрограммы, так что полного авторского решения получить не удалось. Из-за неведомой технической ошибки никак не удавалось закончить одно поддерево (правда, когда я сообщил Г. Надареишвили об этом казусе, он очень удивился: оказывается, «Пионер» формировал важное поддерево, о наличии которого не подозревал сам автор!), и я дал указание запретить «Пионеру» его анализировать. Пришлось вновь вводить паллиативные правила, заменявшие отсутствующую позиционную оценку, и в итоге, когда уже и не надеялись на благополучное окончание эксперимента, произошло чудо.

3 августа 1977 года приехал я во ВНТИЦентр, подошел к комнате, где работали программисты, но боялся переступить порог: как только я заходил в комнату, всегда были неприятные новости. Но Боря смеется и выходит навстречу: «Не бойтесь, можно заходить, дерево получено...»

За 3 часа 45 минут «Пионер» (в черновом виде!) получил дерево перебора этого сложного этюда — в дереве оказалось ровно (конечно, случайно) 200 ходов.

Теперь можно отправляться в Канаду на чемпионат мира среди компьютеров. Играть-то «Пионер», конечно, не может, но приятно будет продемонстрировать, на что он уже способен.

Поделиться с друзьями: