Валерий Шилов - Удивительная история информатики и автоматики
В начале партии на экран трубки выводилось игровое поле, после чего игрок выбирал право первого хода. Набранная на телефонном диске цифра «о» сообщала компьютеру, что первый ход принадлежит ему; набрав цифру «1», игрок оставлял первый ход за собой (за ходящим первым закреплен символ «X»). Для того чтобы сообщить компьютеру свой ход, игрок набирал посредством телефонного диска одну из цифр от «1» до «9», которые соответствовали одной из девяти клеток игрового поля. Программа рисовала в выбранной клеточке выбранный игроком символ, и тут же компьютер делал ответный ход, который тоже отображался на экране.
Свою программу Дуглас назвал ОХО — эти буквы вовсе не являются аббревиатурой, а символизируют нолики и крестики. Как мы видим, Дуглас написал ее не для забавы, а с весьма серьезной целью проверки возможности и выработки основных принципов взаимодействия человека с компьютером в ходе работы программы. К сожалению, информация о том, играли в эту игру коллеги Дугласа по кембриджскому университету или нет и если играли, то сколь успешно, отсутствует. А за пределы лаборатории игра так и не вышла — по той простой причине, что компьютер EDSAC существовал в одном-единственном экземпляре. Но в любом случае написанная Александром Дугласом программа стала первой в истории компьютерной игрой, в которую человек сыграл против вычислительной машины.
Если Кейстеру и Беркли при создании их машин требовалось воплотить в релейных схемах оптимальный алгоритм игры, то английский ученый Дональд Мичи поставил перед собой совсем иную задачу.
Дональд Мичи
Мичи родился в Бирме и получил классическое образование в одной из привилегированных английских школ. В годы Второй мировой войны он работал в Блетчли-парке, где английские ученые и инженеры создали первый в мире специализированный электронный компьютер Colossus, предназначенный для расшифровки немецких кодов (предложенный Мичи метод дешифрирования считают одним из ключевых факторов, способствовавших успешной работе компьютера). Здесь он познакомился и подружился с гениальным математиком Аланом Тьюрингом.
После войны Мичи изучал в Оксфорде медицину и биологию, занимался генетикой и продолжал сотрудничество с Тьюрингом, который в то время как раз намечал обширную программу исследований в области искусственного интеллекта. Так, они с Мичи собирались написать компьютерные программы для игры в шахматы и надеялись, что эти программы сыграют друг против друга. Смерть Тьюринга не позволила осуществиться многим их планам.
Тьюринг и Мичи сходились в том, что компьютер, обладающий огромной вычислительной мощью, может неимоверно увеличить силу Дональд Мичи человеческого интеллекта. Однако человек, в отличие от машины, способен обучаться. А можно ли применительно к компьютеру говорить об обучении? Они не раз обсуждали этот вопрос. Работа Мичи, выполненная около i960 года, стала одной из первых, в которых была предложена модель обучения компьютера методом проб и ошибок.
Дональд Мичи решил обучать компьютер — и обучать игре в «крестики-нолики». Возможно, имей Мичи в своем распоряжении настоящий компьютер, он предпочел бы написать программу, моделирующую процесс обучения. Но компьютера у него не было, и Мичи создал удивительное устройство — модель компьютера, состоящую из 304 спичечных коробков. Он назвал его MENACE (Match box Educable Noughts And Crosses Engine — «Обучающаяся машина из спичечных коробков для игры в «крестики-нолики»»).
Каждый коробок представлял собой одну из позиций, которые могут возникнуть в ходе партии; позиция изображалась на его крышке. Первый ход всегда был за «машиной», поэтому на коробках показывались только позиции с четным количеством символов. Коробки были наполнены бусинками девяти разных цветов, причем каждый цвет был соотнесен с одной из девяти клеток игрового поля.
MENACE. Спичечный коробок
Коробок, соответствующий начальной позиции (т. е. пустому игровому полю перед первым ходом), содержал по 4 бусинки каждого цвета; позиции перед третьим ходом — по 3, перед пятым ходом — по 2 и перед седьмым ходом — по одной бусинке каждого цвета. При этом число различающихся цветов в каждом коробке совпадает с числом возможных в данной позиции ходов машины.
Очередной ход машины производился так. Игрок выбирал коробок с изображением текущей позиции, брал его, тряс, чтобы хорошо перемешать бусинки, и затем открывал. Бусинка, оказавшаяся в вершине имевшейся внутри каждого коробка перегородки в виде утла, определяла следующий ход машины. Игрок вынимал эту бусинку и, оставив использованный коробок открытым, откладывал его в сторону. Затем он решал, какой сделает ход, выбирал коробок, соответствующий возникающей после этого хода позиции, и повторял описанные действия вплоть до окончания партии. Если машина проигрывала, то взятые бусинки на место не возвращались (благодаря этому вероятность сделать тот же — т. е. приведший к поражению — ход в следующих партиях уменьшалась); если партия заканчивалась вничью, все бусинки возвращались на место, т. е. состояние машины не изменялось; если машина выигрывала, то взятые бусинки возвращались на место, и, кроме того, в каждый открытый коробок добавлялись еще по одной бусинке того же цвета (это увеличивало вероятность сделать тот же ход в последующих партиях).
Такая методика обучения оказалась весьма эффективной. Первое состязание между Мичи и его компьютером состояло из 220 партий. Сначала он все время выигрывал, но после 17-й партии машина стала делать первый ход в центральную клетку, а после 20-й — играть вничью. Под конец Мичи уже проигрывал 8 партий из ю.
Сегодня концепция обучения является одной из ключевых в искусственном интеллекте и нейроинформатике, так что когда в 2007 году Дональд Мичи погиб в автокатастрофе, во всех некрологах его заслуженно называли патриархом искусственного интеллекта в Великобритании.
Дэнни Хиллис
Еще один «игрушечный» компьютер был разработан Дэнни Хиллисом. Этот американский ученый и изобретатель — фигура в компьютерном мире не просто легендарная, но даже культовая.
Он прославился как создатель и главный идеолог основанной в 1984 году знаменитой компании Thinking Machines, которая разработала самые производительные суперкомпьютеры своего времени Connection Machine. К сожалению, они оказались невостребованными тогдашним рынком, и спустя и лет компания прекратила работы в области суперкомпьютеров.
Однако мало кто помнит о его самой первой, и тоже весьма оригинальной, компьютерной разработке, начало которой относится к 1975 году, когда Хиллис еще учился в Массачусетском технологическом институте. Одним из заданий, полученных студентами его группы, было придумать и собрать из детского конструктора Tin-kertoy какое-либо цифровое устройство. После того, как один из студентов соорудил из деталей конструктора инвертор, который превращает «1» на входе в «о» и наоборот, а второй — логический элемент ИЛИ, стало понятно, что из них можно построить любую другую логическую функцию и, следовательно, любую логическую схему.
Tinkertoy. 1-й вариант
Правда, поначалу Хиллис склонялся к мысли построить робота, но затея эта показалась слишком сложной да и требовала немалых затрат, превышавших финансовые возможности студентов. Однако спустя какое-то время директор одного из выставочных центров предложил финансирование, и вскоре Хиллис и его друзья изготовили первый вариант компьютера для игры в «крестики-нолики». Он имел форму куба со стороной 1 метр и был собран из соединенных в логические схемы деталей конструктора. О сделанном ходе компьютер сигнализировал поднимающимся флажком (их было 9, по числу клеток игрового поля). Машина была крайне сложна и требовала тщательной наладки — так что, когда ее в разобранном виде доставили на выставку и вновь собрали, она так и не заработала. Сегодня это уникальное изделие находится в одном из компьютерных музеев США.
В 1979 году из того же выставочного центра поступило предложение — изготовить новый компьютер. Хотя к этому времени Хиллис и его коллеги уже окончили университет и работали не только на разных фирмах, но даже в разных странах, предложение их заинтересовало.
Началась совместная работа — хотя общение в основном шло по телефону.
На этот раз было решено уделить особое внимание надежности — отсюда вытекало требование простоты конструкции. Требовалось решить три основные задачи: как задавать позицию на игровом поле, как ее распознавать и как выбирать следующий ход компьютера. Однако общее число возможных позиций в игре весьма велико, и было необходимо каким-то образом его уменьшить. Понятно, что симметричные позиции можно рассматривать как одну, но ведь надо было научить компьютер такие позиции распознавать. Дерево игры было досконально изучено с помощью специально написанной программы, и было замечено, что многие ходы являются вынужденными: например, если в одном ряду уже стоят два крестика, то, чтобы не проиграть, соперник должен поставить свой нолик именно в этом ряду. Тщательный анализ позволил сократить количество подлежащих рассмотрению значащих позиций до 48.