Как в России в XIX веке компьютер изобрели
Компьютер придумал русский учёный Семён Корсаков в первой половине XIX века. Что? Да! И теоретическое обоснование к изобретению искусственного интеллекта впервые подвёл тоже он. «Как микроскоп и телескоп усилили наши чувства, так и интеллектуальные машины могут усиливать наш разум», — писал изобретатель.
Кстати, вот он — Семён Корсаков, человек, опередивший своё время
Интеллектуальные машины, которые создал Корсаков, достаточно простые и недорогие. Базы данных и некий прототип языка программирования Корсаков для них тоже придумал. Машины могли проводить поиск среди множества критериев, учитывая их относительную важность, и обрабатывать большие объёмы информации. Они умели проводить все основные операции с множествами, то есть делать всё, что сейчас делает дискретная математика. Их появление могло физически перевернуть всю науку XIX века и лет на пятьдесят ускорить появление современных компьютеров. Но что-то пошло не так.
Что сделал Корсаков и зачем
Машины, которые могли взять на себя систематизацию разрозненных и беспорядочных данных, были на самом деле очень нужны самому Корсакову. Во-первых, потому что он работал в статистическом отделе Министерства внутренних дел. А во-вторых, потому что очень увлекался гомеопатией, а значит, должен был уметь подбирать лекарство, максимально подходящее под набор симптомов, мучающих пациента. Вынесем гомеопатию за скобки, тут нас интересует сама система принятия решений.
Интеллектуальные машины Корсакова закрывали все вопросы, беспокоившие изобретателя, разом. А использоваться они могли не только для научных целей, но и в повседневной практике при составлении каталогов и регистрации самых разных данных. Главная концепция учёного была в усилении человеческого разума с помощью механизмов. В первую очередь для того, чтобы одновременно суметь охватить большое количество объектов.
Например, они могли упростить работу счётной палаты, потому что умели быстро находить, сравнивать и классифицировать огромные массивы информационных записей по набору многочисленных признаков.
Главным детищем Корсакова стал компаратор. Это такая конструкция из двух рамок, каждая из которых соответствовала какому-либо явлению и была заполнена дощечками на проволочках. Дощечки обозначали определённые признаки явлений. На одной рамке они были со штырьками, а на другой — с отверстиями. Чтобы сравнить два явления по нескольким признакам, нужно было задать эти признаки в обеих рамках, передвигая дощечки влево или вправо, а затем совместить их.
Если явления по нужным признакам идентичны, провалятся все штырьки у дощечек, сдвинутых влево. Если искомых признаков нет ни у одного из них, провалятся штырьки у дощечек, сдвинутых вправо. А если признак есть только у одного явления, поднимутся штырьки, сдвинутые влево или вправо, в зависимости от того, у какого явления эти признаки наблюдаются.
На схеме компаратор Корсакова выглядит вот так. Всё гениальное просто потому что.
Кроме компаратора, было придумано ещё четыре аналитические машины
1. Линейный гомеоскоп с неподвижными частями
Очень простой прибор, в основе которого — таблица, где каждый столбец характеризует определённое явление, а каждая строка — его признаки.
Работу гомеоскопа Корсаков пояснял на примере милой его сердцу гомеопатии. Гомеопаты сначала выясняют, какие у человека неприятности, а потом подбирают лекарство, соответствующее его симптомам. Почему симптомам, а не диагнозу? Организмы у всех разные, при одном и том же диагнозе могут вести себя по-своему, к тому же у разных диагнозов бывают схожие проявления. Если разруливать этот вопрос с помощью гомеоскопа, первым делом нужна таблица, у которой в столбцах стоят названия назначаемых лекарств, а в строках — симптомы. Вносить в табличку можно было сотни препаратов и тысячи симптомов.
Дизайн девайса: деревянный цилиндр с отверстиями, который был такой же длины, как вертикальные столбцы таблицы, отвечающие за перечисление лекарств. В цилиндр на равных расстояниях втыкались булавки, по одной на каждый имеющийся признак (симптом). Каждую булавку можно было либо задвинуть до упора, если такого симптома не наблюдается, либо выдвинуть, чтобы торчала, если что-то такое с пациентом и происходит. После составления таблицы гомеоскоп нужно приложить к первому столбцу и двигать вдоль него. В столбце, отверстия в котором соответствуют выдвинутым булавкам, механизм «застрянет» и решение будет найдено. Если не застрянет нигде, решения не существует.
Главная прелесть гомеоскопа в том, что можно один раз максимально корректно составить перфокарту, а дальше по ней сможет работать кто угодно (ну почти). Причём гомеопатия — это, конечно же, частный случай, и вариантов использования гомеоскопа гораздо больше.
И работал он вот так. Элементарно же!
2. Линейный гомеоскоп с подвижными частями
Он делал то же самое, но ещё умел мгновенно выделять те элементы сложной идеи, которые соответствовали или не соответствовали аналогичным элементам других идей. То есть помогал сравнивать наборы признаков болезней из разных столбцов и дополнительно показывал, какие именно детали механизмов совпадают, а какие — отличаются.
Знакомьтесь — гомеоскоп прямолинейный
3. Плоский гомеоскоп сравнивал две сложные идеи и искал в них совпадения. Количество элементов при этом могло достигать миллиона. В нём Корсаков заменил цилиндр на квадратную дощечку и вместо булавок предложил использовать специальные стержни, которые можно было двигать на определённое количество делений и задавать таким образом главные и второстепенные признаки.
Как это работало, изобретатель снова пояснял на примере гомеопатии. Сначала он сделал табличку, в каждый столбик которой вписал части тела (голова, нос, желудок и т. д.), и назвал это топографией человеческого тела. В строчках цифрами обозначил недуги, и это называлось патографией (опухоль, покраснение, озноб, боль, жар и т. д.). Затем на этом поле нужно было сыграть в морской бой: если у человека стреляющая головная боль, то булавку ставят на клетку, допустим, Е7, где Е — это столбик «голова», а 7 — строчка «стреляющая боль». Если при этом ещё и в животе спазмы, нужно добавить одну булавку, допустим, на клетку G9 (где G — живот, а 9 — спазмы) и так далее. Если составить табличку из ста строк и ста столбцов, можно получить базу данных по десяти тысячам симптомов на любой цвет и вкус. Дальше гомеоскоп Корсакова приводился в движение и выдавал рекомендованное лечение.
Это — гомеоскоп плоский
4. Идеоскоп
Этот механизм тоже позволял делить признаки явлений на основные и второстепенные и умел мгновенно сравнивать большие массивы чисел при помощи специальной таблицы.
Он представлял собой два симметричных бруска, соединённых по краям, между которыми была протянута цепь. В цепь крепились держатели рычагов, каждый из которых нижней частью упирался в гомеоскопическую таблицу. К верхней же части каждого держателя крепился рычажок, который двигался вокруг своей оси.
Влево нужно было отвести рычаги, отвечающие за важные свойства, а вправо — за не такие важные, но тоже существенные, и на месте оставить те, которые отвечали за свойства объекту не присущие. А дальше машина приводилась в действие. Если признак был важным и соответствовал тому, что указано в таблице, держатель рычага опускался, а сам рычаг — вставал вертикально. Если соответствовал и был несущественным, рычаг оказывался в горизонтальном положении.
Так должен был работать идеоскоп
Главная новаторская идея Корсакова — использовать в качестве программы-алгоритма для хранения информации перфокарты наподобие тех, что делал для своих ткацких станков Жозеф Жаккар. Только у француза с помощью перфокарты можно было закодировать лишь определённый узор на ткани, а у нашего изобретателя — любую информацию, от военных сведений до поэмы «Евгений Онегин».
Станок Жаккара выглядел как-то так и позволял относительно быстро и просто делать ткани с модными принтами
Как Корсаков придумывал свои механизмы и как пытался внедрить
Наверное, пару слов стоит сказать о семье Корсакова и его жизни, чтобы было понятнее, откуда он такой изобретательный взялся. Семён Корсаков родился в 1787 году в очень обеспеченной и известной семье. Его крёстным был князь Потёмкин-Таврический, которого представлять не нужно. Отец — главный инженер города и крепости Херсона. Дед по матери — адмирал, а дядя — один из организаторов Черноморского флота. С 1812 по 1814 год Корсаков воевал с Наполеоном и дошёл до Парижа (вероятно, машины Жаккара он увидел именно там и именно тогда). А по возвращении устроился на службу в статистическое управление Министерства внутренних дел в Санкт-Петербурге. Поднялся по служебной лестнице от коллежского советника до советника действительного статского. Весьма неплохая карьера.
11 сентября 1832 года Семён Корсаков отправил в Санкт-Петербургскую Академию наук прошение с просьбой рассмотреть и ввести в практику его изобретения. И тут же, буквально через два дня, 13 сентября, опубликовал на французском языке брошюру «Начертание нового способа исследования при помощи машин, сравнивающих идеи», где подробно описал, что он, собственно говоря, предлагает делать. «Подробно» уместилось в двадцать страниц на все пять девайсов. Это к слову о простоте.
Вот обложка его брошюры
Программирование, которое придумал Корсаков, было максимально понятным. Его основные принципы можно описать пятью предложениями:
- Есть механические усилия, а есть умственные. Их важно отличать друг от друга, потому что «человек мыслит, но действия его носят механический характер: он приказывает, и его ноги идут, а руки двигаются».
- Основа нашей цивилизации — письменность, потому что она даёт человеку возможность сохранить сведения обо всех фактах в мире, не полагаясь при этом на свою память.
- Главный недостаток письменности в том, что даже сводные таблицы не могут выдать немедленный результат, если понадобится срочно что-то узнать или проанализировать. Пока только человек может достать книгу, отыскать в ней информацию и сделать выводы.
- Значит, нужно создать механическую письменность, сочетая сводные таблицы с механическим подходом к поиску информации.
- Идею необходимо пустить в люди, потому что устройство умственных машин несложное, а цена их невысока, значит, они могут получить самое широкое распространение.
То есть, если обобщить, программирование — это механическая запись мысли для помощи людям в выполнении умственной работы.
От патента на свои изобретения Корсаков, кстати, сразу отказался. Для него главной наградой было увидеть, как эти идеи приносят реальную пользу людям.
Какие идеи Корсаков озвучил впервые в истории
Он самым первым:
- сформулировал понятие «искусственный интеллект», как некий механический мозг, который должен помогать людям обрабатывать информацию и усиливать их когнитивные способности, подобно телескопу, усиливающему зрение;
- разделил признаки явлений по важности и ввёл их весовые коэффициенты;
- разработал многокритериальный поиск с учётом этих коэффициентов;
- научился проводить механические операции с множествами, а это и есть тот самый базис, который до сих пор лежит в основе дискретной математики;
- ввёл понятие баз данных, которые описывали связи между идеями и их свойствами;
- придумал способ обработки больших массивов данных;
- предопределил понятие алгоритма в терминах механической операции с заранее оговорёнными условиями;
- изобрёл своеобразный язык программирования.
Интеллектуальные машины Корсакова стали механическим прообразом современных экспертных систем.
И почему мы тогда почти ничего про него не знаем?
Идеи Корсакова могли бы послужить толчком к огромному технологическому прорыву и ускорить появление современных компьютеров лет на пятьдесят, если не больше… если бы не Академия наук.
В 1832 году специальная комиссия из пяти человек во главе с математиком и академиком Михаилом Остроградским несколько недель рассматривала идею внедрения компараторов с гомеоскопами. И в итоге вынесла вердикт: ничего не выйдет, во внедрении отказать, потому что: «Члены Комиссии замечают, что этот метод по самой своей природе может быть приложен лишь к некоторым наукам, да и то для каждой из них потребовалось бы составить отдельную таблицу; последняя в большинстве своём имела бы огромные размеры и потребовала бы затрат, совершенно не соответствующих пользе, которую, по мнению автора, можно было бы получить от этого прибора». Даже прототипов сделать не попытался никто.
Остроградский, кстати, и сам был весьма выдающимся учёным своего времени. Он пытался создать универсальную математическую структуру, способную моделировать физические процессы из самых разных областей. Почему он зарубил проект Корсакова — загадка. Скорее всего, комиссия посчитала, что для использования этих механизмов нужно будет «компьютеризировать» вообще все учреждения страны, а это сложно, долго и муторно.
Математическое, как и механическое, сообщество брошюру Корсакова тоже почему-то проигнорировало.
А дальше идеи забылись и документы потерялись на целых сто лет. В 1961 году историк науки Моисей Радовский нашёл в архиве Академии наук прошение Корсакова, описание механизмов и заключение комиссии. Потом документы в очередной раз потеряли. В 2009 году оригинальную брошюру с большим трудом отыскали где-то на краю географии, в библиотеке итальянского студенческого городка, и перевели, наконец, на русский. В 2011 году под редакцией Геллия Поварова вышла англоязычная книга «Машинные вычисления в России» (Computing in Russia), благодаря которой заслуги Корсакова в машиностроении и программировании наконец-то были признаны.
Впрочем, сама идея аналогового компьютера существовала до Корсакова
История аналоговых компьютеров для большинства людей покрыта мраком, а между тем их было не так уж мало и умели они довольно многое.
Главное отличие аналогового компьютера от цифрового — в непрерывности сигнала. В цифровом поток данных дискретный, «рваный», и задаётся комбинацией из нулей и единиц. Вся информация также хранится в виде кодов. В аналоговом весь смысл в том, что он работает по тем же принципам, что и процесс, который нужно рассчитать, и поведение его описывается теми же формулами. Воспроизводить ровно тот же принцип при этом не обязательно. То есть если, к примеру, нагрузки на вал в некоторой машине описываются той же формулой, что и электрическое напряжение между точками в некоторой электрической схеме, можно не проводить сложных расчётов, а собрать схему и измерить в ней напряжение. Зачастую это намного проще и быстрее, чем писать код.
Аналоговых компьютеров, предназначенных для решения самых разных задач, начиная с конца XIX века, было придумано множество.
Например, машина, сделанная сэром Уильямом Томсоном в 1872 году, очень точно прогнозировала время приливов и отливов. В 1943 году это очень помогло при высадке Нормандского десанта.
А карманный позограф Кауфмана помогал фотографам начала XX века высчитывать экспозицию кадра в зависимости от целой кучи параметров
Аналоговый компьютер Гауди
Антонио Гауди в жизни не додумался бы называть это «вычислительной машиной», но, по сути, это она и есть.
Свои оригинальные дизайны Гауди воплощал в условиях весьма ограниченного городского бюджета. Ему нужно было строить крепко, а главное — дёшево. В результате получились абсолютно новаторские сооружения и новые теории в архитектуре.
Чтобы как можно точнее высчитать форму сложных и асимметричных арок, Гауди подвешивал к потолку сотни грузиков на цепочках. Получался эдакий перевёрнутый макет здания, учитывающий все нагрузки на каждую точку купола.
Так выглядел аналоговый компьютер для вычисления оптимальной формы для сводов в исполнении Гауди
Каждый грузик символизировал собой массу несущей стены, конструкции на крыше или какой-то ещё детали. А дальше нужно было просто посмотреть, как выгибаются арки здания под их тяжестью, и с помощью зеркала перенести информацию на бумагу. Придуманные с помощью этой конструкции асимметричные арки оказались намного прочнее тех, что были построены обычным методом, и кирпичей для них требовалось гораздо меньше, чем обычно.
Если бы Гауди попросили расписать распределение сил в формулах и схемах, скорее всего, он бы не смог (потому что не физик и не математик). Но зато его «живой» макет, можно было в любой момент изменять как угодно, подвешивая новые грузы или убирая старые. Проверить любую гипотезу или переделать конструкцию было проще простого. Математики от этой задачи взвыли бы, а Гауди решал её легко и просто. Современные компьютеры так играть с макетами научились совсем недавно.
Водяной компьютер Лукьянова
Само словосочетание «водяной компьютер» звучит сейчас максимально странно, но тем не менее его весьма успешно использовали на протяжении полувека. Байкало-Амурская магистраль построена в том числе и его усилиями. Как и некоторые глубокие шахты. Как и Каракумский канал. Для запуска ракет в космос его тоже использовали.
Гидравлический интегратор в 1936 году придумал советский инженер Владимир Лукьянов. Это была первая в мире вычислительная машина для решения дифференциальных уравнений в частных производных, и применяться она могла для решения широчайшего круга задач математической физики.
Все операции выполняла текущая вода, а в основе работы лежит идея, что объём жидкости в сосуде — это интеграл от функции, описывающей поступление жидкости в этот сосуд. Если на нём нарисовать шкалу, проградуированную в единицах объёма, получится простейший интегратор объёмного расхода жидкости. Это как песочные часы, которые отсчитывают время на основе скорости пересыпания песка. Только с водой.
Гидроинтегратор Лукьянова постепенно трансформировали и улучшали. В 1941 году он стал модульным и позволил решать самые разные задачи, а не только диффуры. Затем были созданы двухмерный и трёхмерный гидроинтеграторы.
Выглядел этот аппарат вот так
Такие машины делали серийно и даже поставляли за границу: в Чехословакию, Польшу, Болгарию и Китай. Первые цифровые электронно-вычислительные машины (ЦЭВМ) и вовсе не могли конкурировать с гидроинтеграторами, ни по простоте конструкции, ни по возможностям, ни по скорости программирования. И только в 1980-е годы, когда появились компактные и дешёвые ЭВМ, гидроинтеграторы им всё-таки уступили.
Механическая солнечная система Архимеда (но это не точно)
Если копнуть поглубже, история аналоговых компьютеров очень древняя. Первому известному — больше двух тысяч лет. Это некий механизм, найденный в самом начале XX века на дне Эгейского моря возле греческого острова Антикитера.
Девайс состоял из 37 шестерёнок и очень точно моделировал движение Солнца, Луны и всех пяти известных древним грекам планет, отслеживал затмения и помогал определить важные для греков даты типа начала Олимпийских игр. Эдакая механическая Солнечная система, астрономические часы и планетарий в одном лице. По одной из версий, это дело рук Архимеда.
А это реконструкция антикитерского механизма и детали его самого
Вернёмся на минутку к Корсакову
Изобретённая Чарлзом Беббиджем в те же 1830-е годы аналитическая машина не была даже отдалённо похожа на компаратор Корсакова. Механизм и принципы работы были совершенно другими. Например, перфокарты Беббидж использовал для счёта, а Корсаков — для классификации.
Машина, похожая на то, что сделал Корсаков, появилась только через полвека, в 1887 году.
И выглядела она вот так
Этот механизм назывался табулятор или перфокарточная машина Холлерита. В конце XIX века при переписи населения в США с его помощью всё население страны пересчитали и классифицировали всего за три года. С усовершенствования табулятора в 1911 году началась история компании IBM, которую все примерно знают.
В общем, вся история науки и техники могла бы быть совсем другой, если бы Академия наук в 1832 году оказалась чуточку более благосклонной к Корсакову.