Найти общие закономерности игры «в камешки» не так уж просто. Математические законы игры открыты, и теперь в нее с успехом играет машина.
В одном из павильонов научной выставки, организованной во время Британского фестиваля, ежедневно с утра до позднего вечера царило необычайное оживление: громкие споры, восхищенные возгласы и скептические замечания сменялись тишиной, полной напряженного ожидания.
Нетерпеливая молодежь, степенные отцы семейств и почтенные люди с увлечением играли в камешки с электронной машиной «Нимрод», специально построенной для игры в «Ним», похожей на нашу мальчишескую игру.
Камни раскладываются на произвольное число кучек. Но каждый может при своем ходе брать камни только из одной кучки, сколько угодно камней — даже все. Выигрывает тот, кто заберет последние.
Машина вела игру с полным знанием дела, как самый опытный игрок. Точно выполняя руководство к действию, она одерживала одну победу за другой. Только когда исход игры с самого начала был предопределен в пользу безошибочно играющего противника, машина бесстрастно извещала о своем поражении.
Кто из нас в детстве не увлекался игрой в «крестики и нулики»? На переменах, а иногда — чего греха таить! — и во время урока на листке бумаги с девятью квадратами разыгрывались самые ожесточенные сражения. Кому удастся поставить подряд три своих значка — тот побеждал. Но чаще всего игра заканчивалась ничьей. Партнеры быстро постигали немудреный секрет.
Чтобы электронную вычислительную машину приобщить к этой игре, нужно перевести на машинный язык возможные ситуации на игровом поле.
Оказывается, в этой простой игре существует несколько серий вариантов. А в каждой серии — 512 вариантов по четыре хода. Играя по любому из них, машина не проиграет. А если ее партнер невнимателен, то 360 вариантов приведут к победе.
В принципе, казалось бы, все очень просто — дело сводится к выбору наилучшего варианта хода из большого числа возможных.
Но за простотой кроются немалые технические трудности. Чтобы вложить в машину 512 вариантов по четыре хода, приходится занять все ячейки машинной электронной «памяти». Кроме того, в нее нужно еще поместить программу игры. А это значит, что всей оперативной «памяти» большой электронной вычислительной машины едва-едва хватит для немудреной игры на девяти квадратах.
Вернемся снова к шахматам. После знакомства с принципами механизации простых игр можно представить себе те огромные трудности, которые возникают при «обучении» машины квалифицированной шахматной игре.
В теории игр доказывается, что исход шахматной партии, как и в игре «крестики и нулики», предрешен первым ходом и выбором стратегии каждого из партнеров. И если бы удалось составить перечень всех стратегий и выявить оптимальные, то древняя игра потеряла бы свою привлекательность.
Как ни парадоксально, наше увлечение шахматами зиждется на том, что мы «не умеем» правильно играть, не знаем полностью математического решения этой игры.
Бельгийский математик М. Крайчик попытался хотя бы приблизительно подсчитать общее число всевозможных вариантов шахматных партий. Оно оказалось равным 2?100116. Такое число оставляет далеко позади легендарное количество пшеничных зерен, испрошенных в награду за изобретение шахмат Если бы все население земного шара круглые сутки играло в шахматы, делая ежесекундно по одному ходу, то потребовалось бы не менее 10100 веков, чтобы переиграть все варианты шахматных партий.
Любители шахматной игры могут не беспокоиться. Составить список всех стратегий и этим решить до конца задачу шахматной игры ближайшим поколениям не удастся даже с помощью самых быстродействующих машин. Шахматам пока не угрожает участь игры «в камешки».
Как же при таких условиях составить руководство к действию для машинной игры?
Оно строится на системе правил, позволяющих в каждой ситуации на шахматном поле выбрать очередной ход. Эта система правил является тактикой игры.
Чаще всего тактика строится на оценке значимости каждой фигуры. Оценка выражается числом очков. Например, король 200 очков, ферзь — 9, ладья — 5, слон и конь — по 3, пешка — 1 очко, а отсталая, изолированная и сдвоенная — по полочка.
Определенным образом оцениваются также позиционные преимущества: подвижность фигур, расположение на доске, защищенность.
С помощью чисел можно дать общую оценку своей позиции и противника. Отношение общего числа очков позиции белых к числу очков позиции черных характеризует ситуацию игры. Если оно больше единицы — преимущество на стороне белых, если меньше — более выгодное положение у черных.
Предположим, машина играет черными и должна сделать очередной ход. В ее «памяти» хранится положение на доске и отношение чисел очков в этой ситуации. Выбирая ход, машина начинает вычислять изменение этого отношения при различных вариантах. Ход, ведущий к максимальному изменению отношения в пользу машины, и будет ее выбором. Машина напечатает его на карточке.
Описанная тактика, одноходовая, приведет, конечно, к очень плохой и неинтересной игре. Гораздо лучше строить игру на расчете нескольких ходов вперед. Лучшие шахматисты умеют рассчитывать комбинации вперед на десять и более ходов. Машина гоже может играть с выбором комбинаций на несколько ходов вперед в предположении, что противник будет также отвечать наилучшими ходами. Но ее возможности ограничены скоростью работы и емкостью «памяти».
Если считать, что на обдумывание хода нельзя тратить больше 15 минут, то самая быстродействующая машина может планировать игру не более чем на три — четыре хода вперед. При огромном превосходстве над человеком в скорости вычисления машина пока не может с ним соревноваться в скорости игры за шахматной доской. Ведь ей приходится добросовестно перебрать и пересчитать почти все возможные варианты, даже те, которые человек сразу же отбрасывает, не задумываясь.
Вот партия, сыгранная машиной (белые) с человеком (черные):
1. е4 е5 2. КсЗ КГ6 3. d4 СЬ4 4. КХЗ d6 5. Cd2 Кс6 6. d5 Kd4 7. h4 Cg4 8. a4 К: f3+ 9. gf Ch5 10. Cb5+ c6 11. dc 0–0 12. cb ЛЬ8 13. Саб Фа5 14. Фе2 Kd7 15. Лgl Kc5 16. Лg5 Cg6 17. СЬ5 К: Ь7 18. 0-0-0 Kc5 19. Ссб ЛГс8 20. Cd5 С: с3 21. С: с3 Ф: а4 22. Kpd2 Кеб 23. Лg4 Kd4 24. ФdЗ КЬ5 25. СЬЗ Фаб 26. Сс4 Cho 27. ЛgЗ Фа4 28. С: b5 Ф: d5 29. Ф: d6 Лd8.
В этой проигранной для белых (машина) позиции партия была прервана.
Как видите, машина-шахматист оказалась не на высоте. Но это одна из первых партий. Вычислительная техника быстрыми шагами идет вперед. Совершенствуются методы управления электронной машиной. Уже сейчас электронная вычислительная машина решает трудные шахматные задачи и очень хорошо играет в шашки. Можно не сомневаться, что машина скоро «научится» гораздо лучше играть и в шахматы.
Что произойдет, если «посадить» за шахматную доску две машины? Могут ли они вступить в единоборство и кто из них выйдет победителем?
Конечно, могут! Машины прекрасно «поймут» друг друга, и каждый из этих бесстрастных партнеров будет упорно добиваться победы. Она достанется тому, кто обладает более совершенным руководством к действию, большей «памятью» и быстрее «соображает», то есть быстрее вычисляет.
Игры, о которых я рассказывал, характерны тем, что их исход не зависит от случая. Но для других игр дело обстоит не так.
Взять хотя бы домино или разнообразные карточные игры. Ведь их результат определяется не только ходами участников, но и «везением». Пришла хорошая карта — и выигрыш почти гарантирован. А при плохой карте самая совершенная игра мало поможет.
Можно ли приобщить электронную вычислительную машину к подобным играм? Как составить руководство к действию, учитывающее неизбежную случайность?
Оказывается, и в таких играх машина не «ударит лицом в грязь». Недавно вычислительная электронная машина «Стрела» в перерыве между основной работой сыграла свою первую партию в домино. Человек и машина играли против двух человек. И надо сказать, партнер машины не имел оснований к недовольству своим напарником. А противники очень быстро убедились, что машина играет, как самый опытный любитель, хотя и не сопровождает свои ходы мощными ударами костяшек об стол. Партию выиграли человек и машина.