Охота на электроовец. Большая книга искусственного интеллекта - Марков Сергей Николаевич
Внешне вычислительная машина представляла собой внушительное зрелище: при размерах приблизительно 16 × 2,5 × 1 м она весила пять тонн и содержала 760 000 деталей, 850 км проводов, 3 000 000 соединений, 3500 многократных реле с 35 000 контактов, 2225 счётчиков, 1484 десятипозиционных переключателя. Опираясь на технологию, разработанную IBM для статистических и бухгалтерских машин, Harvard Mark I задействовала в своей конструкции традиционные компоненты IBM, такие как электромагнитные реле, счётчики, кулачковые контакты, перфокарты и электрические пишущие машинки, но, кроме этого, также включала новые конструктивные элементы — реле и новые, более быстрые и компактные виды счётчиков, которые раньше не использовались в машинах IBM.
Машина приводилась в действие длинным горизонтальным валом, непрерывно вращающимся со скоростью около 3 оборотов в секунду. Счётное устройство и память Mark I оперировали 23-значными десятичными числами (24-я позиция была отведена для хранения знака). Расчёты производились в десятичных числах с фиксированной запятой. Эйкен говорил, что причиной выбора 23-значных чисел было то, что он намеревался пересчитать планетные орбиты, а для этого нужна была именно такая точность [351].
Машина была снабжена 60 наборами из 24 переключателей для ручного ввода данных и была способна хранить в памяти 72 числа [352]. Она выполняла три сложения или вычитания в секунду, умножение занимало 6 секунд, деление — 15,3 секунды, а на вычисление логарифма или тригонометрической функции уходило более одной минуты [353].
![Охота на электроовец. Большая книга искусственного интеллекта - image074.jpg](/BookBinary/936964/1737639266/image074.jpg)
2.7.3 Кто же был первым?
В чём заключался принципиальный прогресс, достигнутый Цузе и Эйкеном? Ответ на этот вопрос не столь очевиден. Ни машины Цузе, ни Harvard Mark I не были первыми в истории электромеханическими счётными устройствами. Мы знаем, что табулятор Холлерита использовал в своей работе электрический ток. Механические счётные машины — арифмометры — в 1930-е гг. были распространены повсеместно, неужели замена ручного привода арифмометра на электрический двигатель стала столь грандиозной инновацией? Да, машины Эйкена и Цузе могли осуществлять цепочки последовательных действий, но ведь и табуляторы выполняли операции последовательного сложения при подсчёте перфокарт. Конечно, им были недоступны более сложные операции, такие как вычисление тригонометрических функций, но действительно ли революционным стало добавление вычитания, умножения и деления к сложению, доступному табуляторам?
Для того чтобы объяснить принципиальную суть инноваций Цузе и Эйкена, нам придётся сделать небольшое теоретическое отступление.
Несколько лет назад пользователь Reddit с ником u/General_Urist написал пост со вполне резонным вопросом: «Я видел множество приспособлений, номинированных на звание первого в мире компьютера. Разностная машина, Z1 Цузе, Z3 Цузе, Colossus, ENIAC и так далее. Почему по этому поводу существуют разногласия?» В комментариях другие пользователи вполне резонно отвечают: «Потому что люди не могут договориться о том, что такое „компьютер“». Пользователь BitOBear приводит длинный список спорных признаков «компьютера», например: тьюринг-полнота [Turing completeness], наличие или отсутствие движущихся частей (или ограничение их количества), допускает ли устройство перепрограммирование и возможно ли это перепрограммирование программными средствами, должна ли у устройства быть память и считаются ли за память перфокарты или углы поворота зубчатых колёс и так далее [354].
Отметив имеющиеся разногласия, хотелось бы остановиться на первом из названных признаков — так называемой тьюринг-полноте устройства. Вплоть до 1940-х гг. слово «компьютер» (computer) зачастую обозначало человека. Историк вычислительной техники Пол Черуцци в своей статье с говорящим названием «Когда компьютерами были люди» (When Computers Were Human) [355] приводит любопытную выдержку из отчёта, написанного в феврале 1945 г. одним из пионеров вычислительной техники Джорджем Штибицем: «Под „калькулятором“ или „счётной машиной“ мы будем понимать устройство… способное принимать [на вход] два числа A и B и формировать несколько или любую из комбинаций A + B, A − B, A × B, A / B. Под „компьютером“ мы будем понимать машину, способную автоматически выполнять последовательность операций такого рода и сохранять необходимые промежуточные результаты. Задействованные в процессах люди будут называться „операторами“, чтобы отличать их от „компьютеров“ (машин)». Под определение Штибица подходят первые машины Цузе и Mark I Эйкена, но не подходят ни табулятор Холлерита, ни разностные машины, ни ранние механические калькуляторы. Понятно, что с определением Штибица можно спорить, говорить, что оно выбрано произвольно, но самое примечательное в нём то, что его появление знаменует собой признание за машиной наличия способности заменить человека в деле решения нетривиальных вычислительных задач, отличных от простых арифметических примеров, решаемых в одно действие. Но какими свойствами должна обладать машина, способная, руководствуясь соответствующей программой, решить любую математическую задачу из числа тех, которые способен решить человек, снабжённый неограниченным количеством карандашей и бумаги?
2.7.4 Теоретики — Гёдель, Чёрч, Тьюринг
Такой простой, на первый взгляд, вопрос требует для ответа на него весьма нетривиальных теоретических изысканий. Интересно, что вплоть до 1930-х гг., несмотря на, казалось бы, самоочевидность самого явления, у учёных не было формального определения для множества задач, которые могут быть решены при помощи бумажно-карандашных методов. Хотя для их обозначения имелся даже специальный, хотя и неформальный термин: «эффективно вычислимые задачи» (effectively calculable problems). В 1930-е гг. сразу несколько учёных попытались дать формальные определения этому понятию и подошли к проблеме, как часто водится, с разных сторон.
Из английской «Википедии» можно узнать, что в 1933 г. австро-американский математик Курт Гёдель вместе с Жаком Эрбраном дали формальное определение класса, подходящего в качестве аналога понятия «эффективно вычислимая задача». Этот класс был назван «общерекурсивными функциями» (general recursive functions). Класс общерекурсивных функций — это наименьший класс функций (с одним или более аргументом), он включает в себя все постоянные функции, проекцию, функцию следования и замкнутый относительно функций подстановки, примитивной рекурсии и минимизации [356].
У внимательного читателя после прочтения предыдущего абзаца наверняка возникнет как минимум два вопроса. Во-первых, что означает «австро-американский математик» — неужели на момент публикации статьи, содержавшей определение, у Гёделя было двойное гражданство? Во-вторых, что ещё более странно, как Жак Эрбран, умерший в 1931 г., смог в 1933 г. опубликовать вместе с Гёделем важный научный результат?
За скупыми строками онлайн-энциклопедии, на первый взгляд сквозящими некоторой небрежностью, скрываются удивительные и трагические подробности жизни людей, ставших первопроходцами на неизведанных ранее тропах новой математики.
Жизнь Жака Эрбрана прервалась в 23 года в результате несчастного случая — молодой человек сорвался со скалы массива Экрен во Французских Альпах. Несмотря на возраст, Эрбран успел заслужить в глазах своих учителей звание «одного из величайших математиков нового поколения». Эссе Эрбрана «О непротиворечивости арифметики» (On the Consistency of Arithmetic), подписанное датой 14 июля 1931 г., было направлено автором для публикации в престижный немецкий «Журнал по чистой и прикладной математике» (Journal für die reine und angewandte Mathematik, часто его кратко называют «Журналом Крелле» по фамилии основателя) непосредственно перед отъездом на отдых в Альпы и получено журналом в день гибели математика, 27 июля. В процессе работы над эссе в начале 1931 г. Эрбран прочитал знаменитую статью Гёделя «О формально неразрешимых предложениях Principia Mathematica и родственных систем» (Über formal unentscheidbare Sätze der Principia Mathematica und verwandter Systeme), в которой Гёдель впервые сформулировал свои знаменитые теоремы о неполноте. По достоинству оценив результат, полученный Гёделем, Эрбран посвятил последний раздел своего эссе доказательству того, что положения его работы не противоречат выводам коллеги. В своём письме Гёделю, написанному в процессе работы над эссе, Эрбран сформулировал понятие рекурсивной функции, которое Гёдель впоследствии подверг обобщению, сославшись при этом на автора. Таким образом на свет появилось определение класса общерекурсивных функций [357].