Удивительная история информатики и автоматики
Шрифт:
Набор Geniac № 1 (1954 год) ценой 20 долларов состоял из 6 многопозиционных переключателей и 400 деталей, из которых можно было собрать 33 различные машины, работавшие от обычной батареи для карманного фонарика. В 1958 году в продажу поступил самый популярный — и недорогой — всего 9 долларов 95 центов — набор Brainiac К2. Из его четырех переключателей и 300 деталей можно было собрать 31 машину, в числе которых были головоломки, машины для игры в «крестики-нолики» и «ним», арифметические и логические машины, машины для шифрования и дешифрирования, тестирования и т. д.
Конструкторы Беркли пользовались огромным спросом. Но здесь надо сказать, что своей главной целью он полагал отнюдь не извлечение прибыли. Эдмунд Беркли был страстным борцом против ядерного оружия, видным активистом движения за мир и разоружение. Он был убежден, что необходимо всемерно пропагандировать знания и интеллект,
Судя по длительной задержке с выдачей патента, автомат Кейстера так и не был построен. Автоматы Беркли тоже постепенно теряли популярность. И это вполне объяснимо. Век релейных машин заканчивался, и они уже воспринимались как анахронизм — ведь к концу 1950-х годов широкое распространение получили полупроводниковые электронные компьютеры. И в это же время появились первые программы для игры в шашки и шахматы, т. е. более сложные игры. Понятно, что гораздо более простые «крестики-нолики» также попали в поле зрения программистов.
Создание первой игровой программы для электронного компьютера связано с именем англичанина Александра Дугласа.
Компьютер 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 трубок могла отображать состояние памяти, на ее экране можно было показать 560 (35x16) светящихся точек, соответствующих значениям 560 бит. Этим и решил воспользоваться Дуглас. Управляя с помощью программы положением светящихся точек, можно было получить на экране то или иное изображение. В качестве устройства ввода Дуглас использовал дисковый телефонный номеронабиратель.
В начале партии на экран трубки выводилось игровое поле, после чего игрок выбирал право первого хода. Набранная на телефонном диске цифра «о» сообщала компьютеру, что первый ход принадлежит ему; набрав цифру «1», игрок оставлял первый ход за собой (за ходящим первым закреплен символ «X»). Для того чтобы сообщить компьютеру свой ход, игрок набирал посредством телефонного диска одну из цифр от «1» до «9», которые соответствовали одной из девяти клеток игрового поля. Программа рисовала в выбранной клеточке выбранный игроком символ, и тут же компьютер делал ответный ход, который тоже отображался на экране.
Свою программу Дуглас назвал ОХО — эти буквы вовсе не являются аббревиатурой, а символизируют нолики и крестики. Как мы видим, Дуглас написал ее не для забавы, а с весьма серьезной целью проверки возможности и выработки основных принципов взаимодействия человека с компьютером в ходе работы программы. К сожалению, информация о том, играли в эту игру коллеги Дугласа по кембриджскому университету или нет и если играли, то сколь успешно, отсутствует. А за пределы лаборатории игра так и не вышла — по той простой причине, что компьютер EDSAC существовал в одном-единственном экземпляре. Но в любом случае написанная Александром Дугласом программа стала первой в истории компьютерной игрой, в которую человек сыграл против вычислительной машины.
Если Кейстеру и Беркли при создании их машин требовалось воплотить в релейных схемах оптимальный алгоритм игры, то английский ученый Дональд Мичи поставил перед собой совсем иную задачу.
Мичи родился в Бирме и получил классическое образование в одной из привилегированных английских школ. В годы Второй мировой войны он работал в Блетчли-парке, где английские ученые и инженеры создали первый в мире специализированный электронный компьютер Colossus, предназначенный для расшифровки немецких кодов (предложенный Мичи метод дешифрирования считают одним из ключевых факторов, способствовавших успешной работе компьютера). Здесь он познакомился и подружился с гениальным математиком Аланом Тьюрингом.
После войны Мичи изучал в Оксфорде медицину и биологию, занимался генетикой и продолжал сотрудничество с Тьюрингом, который в то время как раз намечал обширную программу исследований в области искусственного интеллекта. Так, они с Мичи собирались написать компьютерные программы для игры в шахматы и надеялись, что эти программы сыграют друг против друга. Смерть Тьюринга не позволила осуществиться многим их планам.
Тьюринг и Мичи сходились в том, что компьютер, обладающий огромной вычислительной мощью, может неимоверно увеличить силу Дональд Мичи человеческого интеллекта. Однако человек, в отличие от машины, способен обучаться. А можно ли применительно к компьютеру говорить об обучении? Они не раз обсуждали этот вопрос. Работа Мичи, выполненная около i960 года, стала одной из первых, в которых была предложена модель обучения компьютера методом проб и ошибок.
Дональд Мичи решил обучать компьютер — и обучать игре в «крестики-нолики». Возможно, имей Мичи в своем распоряжении настоящий компьютер, он предпочел бы написать программу, моделирующую процесс обучения. Но компьютера у него не было, и Мичи создал удивительное устройство — модель компьютера, состоящую из 304 спичечных коробков. Он назвал его MENACE (Match box Educable Noughts And Crosses Engine — «Обучающаяся машина из спичечных коробков для игры в «крестики-нолики»»).
Каждый коробок представлял собой одну из позиций, которые могут возникнуть в ходе партии; позиция изображалась на его крышке. Первый ход всегда был за «машиной», поэтому на коробках показывались только позиции с четным количеством символов. Коробки были наполнены бусинками девяти разных цветов, причем каждый цвет был соотнесен с одной из девяти клеток игрового поля.
Коробок, соответствующий начальной позиции (т. е. пустому игровому полю перед первым ходом), содержал по 4 бусинки каждого цвета; позиции перед третьим ходом — по 3, перед пятым ходом — по 2 и перед седьмым ходом — по одной бусинке каждого цвета. При этом число различающихся цветов в каждом коробке совпадает с числом возможных в данной позиции ходов машины.