Мегакалькулятор Бэббиджа. Разностная машина
Когда был создан первый компьютер? Вопрос, с одной стороны, простой, а с другой — не очень. Например, американский ЭНИАК был представлен публике в 1946, хотя разрабатывался с 1943. В 1944 свет увидел «Колосс» — компьютер для дешифровки немецких сообщений. У тех же немцев была серия компьютеров «Z», первый из которых появился ещё в 1938 году. Но «Z1» был механическим вычислительным устройством — т.е., по сути, очень большим и очень мощным калькулятором (впрочем, большего от него и не требовалось). Но вот только Z1 был далеко не первой подобной машиной. За сто лет до него была т.н. «Аналитическая машина» Чарльза Бэббиджа, а до неё — «разностная машина» всё того же Бэббиджа. О ней и предлагаю поговорить.
Немного истории. Жил-был во Франции такой человек, по имени Гаспар Клер Франсуа Мари Риш, барон де Прони. Жил он во времена весьма интересные — 1790-е, Великая французская революция. Национальная ассамблея, полная решимости избавиться от пережитков прошлого режима, поручила Прони перепроверить сборники логарифмических таблиц и подготовить их к введению метрической системы. Прони взял под козырёк и начал работать. Но помимо этого, Прони читал Адама Смита, и вообще был глубокий эконом. Для полной перепроверки всех таблиц ему пришла в голову гениальная идея — разделение труда. Пока лучшие математики Франции вычисляли по сложным формулам приблизительные значения, 90 человек из числа городского пролетариата выполняли простейшее сложение и вычитание по формулам, спущенным «сверху». Таким образом титаническую работу удалось провернуть при относительно небольших затратах времени (другое дело, что сами таблицы так и не были выпущены, поскольку у революционного правительства закончились деньги).
20 лет спустя об этом неординарном подходе услышал молодой, но подающий надежды английский студент Чарльз Бэббидж, и задумался. Ещё 10 лет спустя, в 1819 году, Бэббидж, уже не такой молодой член Королевского общества, приступил к разработке тестового экземпляра машины, которая могла бы заменить 90 человек, складывающих и вычитающих непонятные числа где-нибудь в парижском подвале. И уже в 1922 году представляет относительно небольшой, но рабочий образец.
А что, если заменить людей на бездушные железки?…
Собственно, почему «Разностная»? Всё очень просто. Машина предназначалась, в первую очередь, для произведения сложных арифметических вычислений. А что у нас там правит? Правильно, там дифференциальные уравнения. Для решения всех возможных диких диффуров Бэббидж применил т.н. «Метод конечных разностей». Если очень сильно упростить, то в ходе решения выбирается группа точек (т.н., «узлы сетки»), и вместо всего уравнения сразу рассматривают функции, определенные только в узлах сетки. Все производные, входящие в граничные условия между узлами, приближенно заменяются соответствующими разностными отношениями и, таким образом, выражаются через неизвестные узловые значения искомой функции. Звучит сложно, объяснено криво, но сам по себе метод достаточно простой, а значит — вполне подверженный механизации. По сути, машина просто складывает разности между двумя узлами. Скорость была достаточно впечатляющей — при вычислении последовательности, машина выдавала 12 членов последовательности в минуту. Бэббиджа похвалили, но ему было недостаточно. Практически сразу он приступает к разработке новой версии машины, с большим объёмом памяти (память была рассчитана на 1000 50-разрядных чисел). Одна проблема — денег нету.
В 1923 году Королевское общество и Астрономическое общество всё-таки дали Бэббиджу денег на постройку его шайтан-арбы — с условием, что через три года он представит плоды своих трудов. А потом ещё. И ещё. К 1833 (!) году Бэббидж умудрился потратить на проект 17,000 фунтов государственных денег, и ещё 6,000 своих. Куда же ушла эта космическая сумма? А вот тут начинается всё самое интересное.
Копия «Разностной машины №2», упрощённой версии оригинального аппарата. Копия современная, находится в Лондонском музее науки
Во-первых, давайте поговорим о размерах и сложности грядущей работы. Планировалось, что разностная машина будет 2,4 м в высоту, 2,1 м в длину, около 0,9 м в ширину. Совокупный вес всех 25,000 деталей тянул приблизительно на 15 тонн. При этом, мало какие из этих деталей можно было купить в магазине за углом. Чтобы с этим справиться, он нанял чертежника и опытного инструментального мастера Джозефа Клемента. Мало того, что бесконечное черчение и попытки примерно представить, как та или иная часть машины будут двигаться в отрыве от всего остального, Бэббидж, периодически испытывавший приступы перфекционизма, постоянно вносил изменения в конструкцию. Соответственно, рабочим приходилось изготавливать очередные никому не известные детали. На это же накладывались проблемы с финансированием — денег вечно не хватало. Как итог — процесс затягивался из-за споров между Бэббиджем и Клементом по поводу того, что первичнее — плата за детали или плата рабочим. Как будто этого было мало, в 1827 году у Бэббиджа скончались отец, жену и двое детей. После этих событий у него ухудшилось самочувствие, и он не мог заниматься конструированием машины. Чтобы восстановить здоровье, он поехал в путешествие по континенту.
«Кто весел — тот смеётся, кто хочет — тот добьётся». В 1832 году часть разностной машины была собрана и испытана. Испытания прошли в высшей степени удачно — огромная куча валиков и шестерней вычисляла необходимые значения с большей точностью, чем изначально рассчитывали! Состоял этот «выставочный образец» из, приблизительно, 2000 деталей (из, я напомню, 25,000). Потребовалось дополнительное место — и в1833 году всё оборудование и детали переезжают в новую мастерскую, со стеклянной крышей и защищенной от пожара комнатой, предназначенной для хранения машины. Естественно, пока таскали вещи туда-сюда, возник простой, и Клемент, потребовал этот вынужденный простой оплатить. Бэббидж отказал ему, потому что платить пришлось бы из собственного кармана. Клемент забрал все инструменты и отказался от дальнейшего участия.
Фотография одной из деталей разностной машины (тоже в Британском музее науки)
Поработав немного над другим проектом (т.н. «Аналитическая машина», нечто, очень сильно напоминающее современный компьютер), Бэббидж понял, что проект надо не усложнять, а упрощать. К сожалению, было уже поздно — в одиночку он проект не потянул, финансовый поток перекрыли, а когда в 1942 году Королевское общество решило не возобновлять работы по созданию разностной машины, Бэббидж остался с кучей деталей в сарае. В дальнейшем он занимался только теоретическими работами.
Тем не менее, было бы неправильно говорить, что разностная машина никак не повлияла на развитие компьютеров. Во время работы над разностной машиной Бэббидж приобрёл огромный опыт, который потом лёг в основу концепта аналитической машины (которая, будь она воплощена в металле, была бы самым первым в мире компьютером с возможностью программирования). Уже позднее он познакомится с Адой Лавлейс, которая будет писать теоретические программы для несуществующей машины (и, таким образом, станет первым программистом). Ещё один результат его работы — это появление поперечно-строгального и токарно-револьверного станков, а так же разработка технологий изготовления зубчатых колес литьем под давлением. Позднее будут построены несколько уменьшенных версий его разностной машины, которые будут использоваться различными изобретателями во всему миру. Сам же Бэббидж разработал ещё кучу всяких интересных вещей (спидометр, например) — короче, преданно служил науке как до, так и после смерти (отчёт о препарировании его мозга был опубликован Королевским обществом искусств).
Бэббидж на склоне своих лет (скончался в 1871)
А что касается оригинальной машины — она осталась прекрасным примером человеческого энтузиазма.
Вычислительная машина Мюллера, один из первых образцов вычислительных механизмов. Бэббидж о нём, как минимум, знал, но узнал он о нём до постройки разностной машины или после — неизвестно.
Автор: Андрей Маров