среда, 9 ноября 2011 г.

Разностная машина Чарльза Бэббиджа

В 1996 году Масаси Кисимото (22 года) отсылает компании Shueisha свой первый комикс "Karakuri", который не приобретает большого успеха. Однако за него Кисимото получил "Hot Step Award" - премию для многообещающих авторов. Его следующей работой с 1999 был "Наруто"...
А вы читаете блог Александра Ипатова. ^_^
И у меня творческий кризис. И какая-то суета на работе. Поэтому сегодня будет очередная припасённая как раз на случай кризиса копипаста с Википедии. Но она интересная. Про то, как гениальный английский математик пытался построить компьютер в девятнадцатом веке. И я ещё хотел бы дать такой анонсик - со следующей недели и потом насколько меня хватит буду давить на тему геймдизайна. Потому что сразу ТРИ подряд знаменательные даты - 16, 17 и 18 ноября, все связаны с одним... скажем так, человеком. Но, чтобы напустить ИНТРИГУ, больше ничего не скажу. >_>
Я тут увлёкся историей вычислительной техники. Я, в общем-то, давно ей увлекаюсь. Вычислительной техникой. И историей. По плану у меня было сочинение на тему первого поколения ЭВМ (первого и второго даже сначала). А это было заготовлено в качестве вступления. Но великовато получилось для вступления, поэтому представляю вашему вниманию:
http://ru.wikipedia.org/wiki/Бэббидж,_Чарльз
ИМХО, он похож на Бильбо Бэггинса )))

Английский математик Чарльз Бэббидж (Charles Babbage) родился 26 декабря 1791 года в Лондоне.

Впервые он задумался о создании механизма, который позволил бы производить автоматически сложные вычисления с большой точностью в 1812 году. На эти мысли его натолкнуло изучение логарифмических таблиц, при пересчёте которых были выявлены многочисленные ошибки в вычислениях, обусловленные человеческим фактором. Ещё тогда он начал осмысливать возможность проведения сложных математических расчётов при помощи механических аппаратов.
Находясь во Франции, он познакомился с работами Гаспара де ПронИ, занимавшего должность руководителя бюро переписи при французском правительстве с 1790 по 1800 год. Прони, которому было поручено выверить и улучшить логарифмические тригонометрические таблицы для подготовки к введению метрической системы, предложил распределить работу по трём уровням. На верхнем уровне группа крупных математиков занималась выводом математических выражений, пригодных для численных расчётов. Вторая группа вычисляла значения функций для аргументов, отстоящих друг от друга на пять или десять интервалов. Подсчитанные значения входили в таблицу в качестве опорных. После этого формулы отправляли третьей, наиболее многочисленной группе, члены которой проводили рутинные расчёты и именовались "вычислителями". От них требовалось только аккуратно складывать и вычитать в последовательности, определённой формулами, полученными от второй группы.
Работы де Прони (так и не законченные ввиду революционного времени) навели Бэббиджа на мысль о возможности создания машины, способной заменить третью группу - вычислителей. Как математику, Бэббиджу был известен метод аппроксимации функций многочленами и вычислением конечных разностей. С целью автоматизации этого процесса в 1819 году Чарльз Бэббидж приступил к созданию малой разностной машины, а в 1822 году он закончил её строительство и выступил перед Королевским Астрономическим обществом с докладом о применении машинного механизма для вычисления астрономических и математических таблиц. Он продемонстрировал работу машины на примере вычисления членов последовательности. Работа разностной машины была основана на методе конечных разностей. Малая машина была полностью механической и состояла из множества шестерёнок и рычагов. В ней использовалась десятичная система счисления. Она оперировала 18-разрядными числами с точностью до восьмого знака после запятой и обеспечивала скорость вычислений 12 членов последовательности в 1 минуту. Малая разностная машина могла считать значения многочленов 7-й степени.
За создание разностной машины Бэббидж был награждён первой золотой медалью Астрономического общества. Однако малая разностная машина была экспериментальной, так как имела небольшую память и не могла быть использована для больших вычислений.
Часть разностной машины Бэббиджа, собранная после его смерти сыном Генри.
В 1822 году Бэббидж задумался о создании большой разностной машины, которая позволила бы заменить огромное количество людей, занимающихся вычислением различных астрономических, навигационных и математических таблиц. Это позволило бы сэкономить затраты на оплату труда, а также избавиться от ошибок, связанных с человеческим фактором.
Со своим предложением профинансировать создание большой разностной машины Чарльз Бэббидж обратился в Королевское и Астрономическое общества. И те, и другие отозвались на это предложение положительно. В 1823 году Бэббидж получил 1500 фунтов стерлингов и приступил к разработке новой машины. Он планировал сконструировать машину за 3 года. Однако Бэббидж не учёл сложности конструкции, а также технические возможности того времени.
Разрабатывая машину, Бэббидж и не представлял всех трудностей, связанных с её реализацией, и не только не уложился в обещанные три года, но и был вынужден приостановить работы по созданию машины в 1834 году. На тот момент уже было затрачено 17000 фунтов государственных денег и 6000 личных. С 1834 по 1842 год правительство обдумывало, оказывать поддержку проекту или нет. А в 1842 году отказалось финансировать проект. Разностная машина так и не была достроена. Однако часть машины все же начала функционировать и производила вычисления даже с большей точностью, чем ожидалось.
Большая разностная машина должна была состоять из 25 000 деталей, весить почти 14 тонн и быть 2,5 метра высотой. Кроме того, разностная машина должна была быть оснащена печатным устройством для вывода результатов. Память была рассчитана на 1000 50-разрядных чисел.
Конструкция разностной машины основывалась на использовании десятичной системы счисления. Механизм приводился в действие специальными рукоятками. Когда финансирование прекратилось, Бэббидж занялся проектированием гораздо более общей аналитической машины, но затем всё-таки вернулся к первоначальной разработке. Улучшенный проект, над которым он работал между 1847 и 1849 годами, носил название "Разностная машина № 2".
Основываясь на работах и советах Бэббиджа, шведский издатель, изобретатель и переводчик Георг Шутц, начиная с 1854 года сумел построить несколько разностных машин и даже сумел продать одну из них канцелярии английского правительства в 1859 году. В 1855 году разностная машина Шутца получила золотую медаль Всемирной выставки в Париже. Спустя некоторое время другой изобретатель, Мартин Виберг, улучшил конструкцию машины Шутца и использовал её для расчёта и публикации печатных логарифмических таблиц.
В период 1989 по 1991 год к двухсотлетию со дня рождения Чарльза Бэббиджа на основе его оригинальных работ в лондонском Музее Науки была собрана работающая копия разностной машины №2. В 2000 году в том же музее заработал принтер, также придуманный Бэббиджем для своей машины. После устранения обнаруженных в старых чертежах небольших конструктивных неточностей, обе конструкции заработали безупречно. Эти эксперименты подвели черту под долгими дебатами о принципиальной работоспособности конструкций Чарльза Бэббиджа (некоторые исследователи полагают, что Бэббидж умышленно вносил неточности в свои чертежи, пытаясь таким образом защитить свои творения от несанкционированного копирования).
Работающая копия разностной машины в лондонском Музее Науки
Несмотря на то, что разностная машина не была построена её изобретателем, для будущего развития вычислительной техники главным явилось другое: в ходе работы у Бэббиджа возникла идея создания универсальной вычислительной машины, которую он назвал аналитической и которая стала прообразом современного цифрового компьютера (1834 год). В единую логическую схему Бэббидж увязал арифметическое устройство (названное им "мельницей"), регистры памяти, объединённые в единое целое ("склад"), управляющий элемент и устройство ввода/вывода
Склад предназначался для хранения как значений переменных, с которыми производятся операции, так и результатов операций. В современной терминологии это называется памятью.
Мельница (арифметико-логическое устройство, часть современного процессора) должна была производить операции над переменными, а также хранить в регистрах значение переменных, с которыми в данный момент осуществляет операцию.
Третье устройство, которому Бэббидж не дал названия, осуществляло управление последовательностью операций, помещение переменных в склад и извлечение их из склада, а также выводом результатов. Оно считывало последовательность операций и переменные с перфокарт. Перфокарты были трёх типов. Перфокарты операций переключали машину между режимами сложения, вычитания, деления и умножения. Перфокарты переменных управляли передачей данных из памяти в арифметическое устройство и обратно. Числовые перфокарты могли быть использованы как для ввода данных в машину, так и для сохранения результатов вычислений, если памяти было недостаточно.
Кроме того, по замыслу Бэббиджа, Аналитическая машина должна была содержать устройство печати и устройство вывода результатов на перфокарты для последующего использования.
Для создания компьютера в современном понимании оставалось лишь придумать схему с хранимой программой, что было сделано 100 лет спустя Экертом, Мокли и Фон Нейманом.
Бэббидж часто посещал промышленные выставки, где были представлены различные новинки науки и техники. Именно там состоялось его знакомство с Адой Августой Лавлейс, которая стала его очень близким другом, помощником и единственным единомышленником. Ада сделала описание ЦВМ и инструкции по программированию к ней. Это были первые в мире программы. Именно поэтому Аду Лавлейс справедливо называют первым программистом.
Только после смерти Чарльза Бэббиджа его сын, Генри Бэббидж, продолжил начатое отцом дело. В 1888 году Генри сумел построить по чертежам отца центральный узел аналитической машины. А в 1906 году Генри совместно с фирмой Монро построил действующую модель аналитической машины, включающую арифметическое устройство и устройство для печатания результатов. Машина Бэббиджа оказалась работоспособной, но Чарльз не дожил до этих дней.
В 1864 году Чарльз Бэббидж написал: "Пройдёт, вероятно, полстолетия, прежде чем люди убедятся, что без тех средств, которые я оставляю после себя, нельзя будет обойтись". Только через 80 лет после этого высказывания была построена машина Марк I, которую назвали "осуществлённой мечтой Бэббиджа". Архитектура Марк I была очень схожа с архитектурой аналитической машины. Говард Айкен на самом деле серьёзно изучал публикации Бэббиджа и Ады Лавлейс перед созданием своей машины. Производительность Марк I оказалась в десять раз выше, чем расчётная скорость работы аналитической машины.
Матрица Тебя Поимела
Бэббидж, без сомнения, является первым автором идеи создания вычислительной машины, которая в наши дни называется компьютером.
Ещё хочу отметить, что по-английски машина называется "The Difference Engine". Именно с таким названием фантастический роман в стиле стимпанк написали в 1992 году Брюс Стерлинг и Уильям Гибсон. К сожалению, благодаря нашим, КХЕМ!, переводчикам, он у нас называется "Машина Различий".