К удивлению организаторов выставки, посетители совершенно игнорировали находившийся в противоположном конце помещения бар с бесплатным пивом; а чтобы утихомиривать и сдерживать толпу, иногда приходилось даже вызывать полицию. Машина стала особенно популярной после того, как выиграла подряд три партии у министра экономики (и будущего канцлера ФРГ) Людвига Эрхарда. Заметим, что тогдашний федеральный канцлер Конрад Аденауэр, также посетивший выставку, играть против машины отказался, дабы не подорвать проигрышем свой авторитет.
Название компьютера отсылает нас к мифологии народов Ближнего Востока, в которой с именем Нимрода (иначе Нимврод или Немрод) связано множество легенд. Так, согласно еврейским легендам, царь Нимрод был первым охотником и первым, кто начал воевать с другими народами. Он же возглавил постройку Вавилонской башни. В мусульманской мифологии Нимрод служит олицетворением насильника и богоборца. Огромное войско, которое Нимрод вывел на битву против Авраама, было поражено тучами комаров. Один из них через нос проник в мозг Нимрода, и тот в течение сорока лет испытывал страшные мучения. В Ветхом Завете Нимврод — богатырь и охотник. Именно в последнем значении его имя стало нарицательным и вошло во все словари.
Таким образом, остается широкий простор для интерпретации названия компьютера. Был ли это намек на то, что машина станет охотиться за головами соперников, как легендарный Нимрод? Или, может быть, ее создатели понимали, что их детище — это первый камень в основании будущей Вавилонской башни, строительством которой человек снова бросил вызов богам?
Вообще в начале 1950-х годов игровые машины пользовались повышенным вниманием не только широкой публики, но и крупнейших ученых. Так, о машинах, играющих в шахматы, не раз писали Алан Тьюринг и Клод Шеннон. Шеннон не обошел своим вниманием и «ним». В 1955 году в одной из статей он писал: «Большинство машин для игры в «ним» играют наилучшим образом, в том смысле, что они выигрывают, когда выигрыш вообще возможен, но они обычно предоставляют сделать первый ход человеку, так что последний может выиграть, если он играет безошибочно. Если противник сделает хотя бы одну ошибку, машина перехватывает инициативу и выигрывает».
Но по мере роста возможностей компьютеров — как в части производительности, так и в части интерфейса — специализированные автоматы быстро сдавали свои позиции. Конечно, различные игровые автоматы до сих пор можно встретить в местах проведения досуга. Однако все-таки сегодня основной платформой для игр является персональный компьютер.
«Крестики-нолики»
В английском языке название этой игры пишут по-разному: и tic-tac-toe, и tick-tack-toe, и даже tit-tat-toe. Оно ведет свое происхождение от старинной английской детской считалки, начинающейся словами «Tit-tat-toe, Му first go» и входящей в классический сборник «Стихи Матушки-гусыни».
По-английски ее также называютnoughts and crosses, — собственно, и каждому из нас она с детства известна именно как крестики-нолики. Играют в нее два игрока, которые по очереди ставят крестики и кружки в клеточках игрового поля размером 3x3. Побеждает тот, кто сумеет расположить три крестика (или кружка) в ряд по любой из горизонталей, вертикалей или больших «Крестики-нолики», пожалуй, едва ли не самая древняя из известных сегодня игр. В той или иной форме она была известна уже в Древнем мире — в Китае, Греции, Риме, а в Средние века пользовалась немалой популярностью в Англии и Франции. И пусть в варианте 3x3 игра действительно очень проста, она в то же время далеко не столь тривиальна, как кажется, и дает немало пищи для размышлений.
Большой интерес вызывали «крестики-нолики» у людей науки. Например, в XIX веке их исследовали Чарльз Бэббидж и американский логик и философ Чарльз Сандерс Пирс, а в XX веке — основоположник теории информации Клод Шеннон и другие выдающиеся ученые.
Заметный след оставили «крестики-нолики» в истории вычислительной техники. Например, первый механический игровой автомат был спроектирован (хотя и не построен) еще в середине позапрошлого столетия именно для игры в «крестики-нолики». В середине XX века для игры в «крестики-нолики» строились первые релейные автоматы (практически одновременно с автоматами для игры в «ним»), и они же стали первой «интеллектуальной» игрой, для которой была написана игровая программа для электронного компьютера. С помощью крестиков-ноликов проверяли новые идеи в области искусственного интеллекта, и именно в крестики-нолики играют сегодня первые биологические компьютеры — прототипы вычислительных машин будущего.
Механический автомат для игры в «крестики-нолики» был разработан Чарльзом Бэббиджем. Этот гениальный английский ученый и изобретатель больше всего известен проектом аналитической машины — фактически механического прототипа современного компьютера. Ее замысел возник у него около 1834 года, и работа над ней продолжалась вплоть до самой смерти ученого.
В мемуарах, озаглавленных «Страницы жизни философа», Бэббидж подробно описал свою работу над аналитической машиной. Но есть в этой книге несколько страниц, которые редко привлекают внимание биографов ученого. В них Бэббидж пишет, что однажды стал задумываться над тем, что же представляет собой будущая аналитическая машина — может ли она лишь выполнять предписанные ей действия, или же способна на нечто большее, т. е. действовать в некотором роде «самостоятельно», без непосредственных указаний человека.
И он решил, используя те же принципы, построить машину (автомат), играющую в какую-нибудь «интеллектуальную игру» — шашки, шахматы или «крестики-нолики».
Бэббидж приводит крайне интересный анализ принципов построения такого автомата. По его мнению, эта задача сводится к тому, чтобы автомат умел делать наилучший ход в любой возможной позиции. Перечисляя вопросы, на которые автомат должен ответить в процессе игры, Бэббидж фактически описывает алгоритм его действий (который легко можно записать в виде блок-схемы):
1. Допустима ли анализируемая позиция правилами игры?
2. Если да, то проиграл ли автомат?
3. Если нет, то выиграл ли автомат?
4. Если нет, то может ли он выиграть следующим ходом? Если да, то сделать этот ход.
5. Если нет, может ли его соперник выиграть, сделав следующий ход?
6. Если да, то автомат должен, если возможно, предотвратить этот ход.
7. Если его соперник не может выиграть игру следующим ходом, автомат должен проверить, может ли он сделать такой ход, что если ему будет позволено сделать подряд два хода, он может выиграть на втором ходе двумя разными способами. Если же ни одно из приведенных условий не выполняется, то автомат должен провести такой же анализ на три или более последующих ходов.
Разумеется, здесь «за кадром» остается главный вопрос — а каким образом автомат будет проводить анализ текущей позиции? Ответа на него Бэббидж не дает. Зато он нашел оригинальный ответ на другой принципиальный вопрос. Во всех известных во времена Бэббиджа автоматах последовательность их действий (движений) была жестко предопределена, т. е. «алгоритм» их работы был реализован аппаратно. В игре же постоянно требуется выбирать следующее действие (следующий ход) в зависимости от хода соперника. Конечно, в общем случае этот выбор зависит от анализа текущей позиции. Но в частном случае, когда надо выбрать один ход из нескольких равносильных (ситуация, часто встречающаяся в игре «крестики-нолики», обладающей свойством симметричности), Бэббидж механизм выбора предложил.
Он ввел в конструкцию счетчик выигранных автоматом партий, и если его значение в данный момент было четным, то из двух возможных ходов автомат выбирал первый, а если нечетным — то второй. Если равных по силе ходов было три, то текущее значение счетчика делилось на три, и в зависимости от значения остатка (о, 1 или 2) автомат выбирал один из ходов. Бэббидж писал: «Очевидно, что таким образом можно производить выбор при любом числе условий. Пытливому зрителю пришлось бы длительное время наблюдать за игрой автомата, прежде чем он открыл бы принцип его действия». Таким образом, Бэббидж впервые предложил механизм, в некотором роде имитирующий в поведении автомата волю человека, принимающего свое решение с учетом тех или иных факторов.
По словам Бэббиджа, своей работой он был полностью удовлетворен и не сомневался в том, что сумеет изготовить такой автомат. Однако здесь стали возникать сугубо практические соображения. Важнейшим делом своей жизни Бэббидж считал построение аналитической машины. Многолетняя борьба ученого с британским правительством, не желавшим финансировать эту разработку, составляет, пожалуй, одну из самых драматичных страниц в истории вычислительной техники.
Бэббидж, потративший огромные суммы на свою работу, испытывал крайний недостаток в средствах и в течение многих лет напряженно изобретал различные схемы для зарабатывания денег. Одно время он даже пытался создать беспроигрышную систему ставок на скачках. Работа над автоматом для игры в «крестики-нолики» навела Бэббиджа на новую мысль. Он решил проверить, «имеется ли вероятность того, что если такой автомат будет выставлен на публике, то принесет за приемлемое время достаточно денег для изготовления аналитической машины».
К проверке Бэббидж подошел со всей основательностью истинного ученого. Так, по его замыслу, автомат должен был иметь «привлекательный вид». Он решил, что внешне он может представлять несколько фигур — «двух детей, играющих друг против друга, и сопровождающих их ягненка и петуха. Что ребенок, выигравший игру, может хлопать в ладоши, в то время как петух будет кукарекать, а ребенок проигравший может плакать и ломать руки, а ягненок блеять».
Далее Бэббидж проанализировал причины, по которым люди захотят сыграть с такой машиной и даже заплатят за это деньги: «Когда станет известно, что автомат побеждает в эту детскую игру не только детей, но даже пап и мам, не кажется неразумным ожидать, что каждый услышавший об этом ребенок упросит маму показать автомат ему.