Удивительная история информатики и автоматики — страница 29 из 31

Создание первой игровой программы для электронного компьютера связано с именем англичанина Александра Дугласа.

Компьютер EDSAC (Electronic Delay Storage Automatic Calculator — Электронный автоматический вычислитель с памятью на линиях задержки) был построен в 1946–1949 годах в Кембриджском университете под руководством выдающегося британского ученого Мориса Уилкса. Он занимает особое место в истории вычислительной техники благодаря событию, произошедшему 6 мая 1949 года. В этот день оператор нажал кнопку «Старт», замигали лампочки на панели и начала вращаться бобина с перфолентой, на которой была записана последовательность целых чисел. Спустя несколько секунд застучал телетайп, печатая посчитанные компьютером значения квадратов этих чисел: 1, 4, 9,16, 25, 36. Для того, чтобы вычислить квадраты чисел от 1 до 99, потребовалось 2 минуты и 35 секунд. Таким образом, EDSAC стал первым в мире компьютером с хранимой в памяти программой, на котором была решена реальная задача.

Система команд EDSAC состояла из 18 одноадресных команд; выполнение операций сложения, умножения и деления занимало в среднем 1,4; 5,4 и 200 миллисекунд соответственно (операции выполнялись над числами с фиксированной запятой). Данные и программы вводились с 5-канальной бумажной перфоленты, а результаты вычислений печатал принтер телетайпа. Машина содержала около 3 000 ламп, потребляла примерно 12 киловатт электроэнергии и занимала комнату площадью 20 квадратных метров. В целом можно сказать, что в архитектуре и схемотехнике EDSAC никаких серьезных новаций, по сравнению с другими компьютерами того времени, не было. Зато в области программирования кембриджские компьютерщики совершили настоящий прорыв. За полтора года они создали библиотеку из 87 подпрограмм, позволявших работать с числами с плавающей запятой, вычислять логарифмы и тригонометрические функции, решать дифференциальные уравнения и т. д. Результаты этой работы Уилкс и его коллеги Дэвид Уилер и Стенли Гилл обобщили в первом в мире учебнике по программированию «Подготовка программ для электронных цифровых вычислительных машин» (1951 год), переведенном на многие языки, в том числе русский.



EDSAC. Три электронно-лучевые трубки

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

Поскольку это взаимодействие должно быть оперативным, как можно более наглядным и, главное, двусторонним, Дуглас пришел к мысли о необходимости использовать для этого визуальное представление хранящейся в памяти компьютера информации. Однако в то время современных мониторов еще не было, и визуальную информацию можно было вывести только на экран электронно-лучевой трубки (ЭЛТ). Одна из трех работавших в составе EDSAC трубок могла отображать состояние памяти, на ее экране можно было показать 560 (35x16) светящихся точек, соответствующих значениям 560 бит. Этим и решил воспользоваться Дуглас. Управляя с помощью программы положением светящихся точек, можно было получить на экране то или иное изображение. В качестве устройства ввода Дуглас использовал дисковый телефонный номеронабиратель.



Игровая позиция на экране электронно-лучевой трубки

В начале партии на экран трубки выводилось игровое поле, после чего игрок выбирал право первого хода. Набранная на телефонном диске цифра «о» сообщала компьютеру, что первый ход принадлежит ему; набрав цифру «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. К сожалению, они оказались невостребованными тогдашним рынком, и спустя и лет компания прекратила работы в области суперкомпьютеров.