Охота на электроовец. Большая книга искусственного интеллекта - Сергей Сергеевич Марков
К числу других изобретений Торреса-и-Кеведо относится пульт дистанционного управления. Удивительный гений испанского Леонардо был столь велик, что ему удалось изобрести пульт задолго до изобретения телевизора. Ну а если серьёзно, то «телекин» (Telekine), запатентованный Торресом-и-Кеведо в 1903 г., стал одной из первых разработок в этой области. При помощи телекина Торрес-и-Кеведо без использования проводов успешно управлял дирижаблями[643], трёхколёсным мотоциклом и лодкой[644], [645].
В 1913 г. из-под пера Торреса-и-Кеведо вышла статья под названием «Очерки об автоматике» (Ensayos sobre Automática), в которой, собственно, впервые был употреблён термин «автоматика». В статье Торрес-и-Кеведо приводит краткую историю трудов Чарльза Бэббиджа по созданию разностной и аналитической машин. Леонардо пишет об аналитической машине как о проекте, раскрывающем потенциальные возможности машин, и рассматривает задачу её постройки как вызов своим навыкам конструктора электромеханических устройств. Статья содержит полное описание конструкции машины, способной вычислять значение выражения ax(y − z)2 для последовательности наборов значений переменных.
Торрес-и-Кеведо демонстрирует хитрые электромеханические устройства (коммутаторы, электромагниты и т. д.), предназначенные для хранения десятичных цифр, выполнения арифметических операций с использованием таблиц встроенных функций и для сравнения значений двух величин. Машина управляется системой условного ветвления, заданной в виде рисунка проводящих областей на поверхности вращающегося барабана. Схема машины содержит первую электромеханическую реализацию арифметики с плавающей запятой.
В 1920 г. на конференции, посвящённой столетию создания арифмометра де Кольмара, Торрес-и-Кеведо представил электромеханический арифмометр собственной конструкции. Оператор печатал на пишущей машинке числа, разделённые знаком арифметической операции, после чего арифмометр выполнял вычисление и подавал машинке команду напечатать ответ и перевести каретку на следующую строку для осуществления очередной операции[646].
3.5.2 Шахматные программы… без шахматных машин
Первая машина, способная играть в шахматы в полном соответствии со всеми правилами, появилась на свет почти через полвека после создания «шахматного игрока».
Но, что ещё интереснее, первая программа для игры в шахматы появилась задолго до того, как появилась машина, способная её выполнять! И ответственен за столь необычную веху в истории ИИ — Алан Тьюринг.
После окончания Второй мировой войны Тьюринг работал в Национальной физической лаборатории (NPL), где занимался разработкой одного из первых компьютеров — «Автоматического вычислительного механизма» (Automatic Computing Engine, ACE) — предшественника Manchester и Ferranti Mark I. В 1945 г. в отчёте Тьюринга под названием «Предлагаемый электронный калькулятор» упоминается десять задач, которые могли бы быть решены при помощи ACE; последней в списке значится программа для игры в шахматы[647]. Идея была развита в 1948 г. в следующем отчёте под названием «Интеллектуальная техника», в котором Тьюринг упоминает проведённые им эксперименты в этом направлении[648]. Считается, что первые идеи Тьюринга в отношении компьютерных шахмат относятся к 1941–1942 гг.[649]
В конце лета 1948 г. Тьюринг вместе со своим коллегой Дэвидом Чемпернауном разработали алгоритм определения хода в шахматной игре на основе перебора вариантов. Однако он был слишком сложен для того, чтобы воплотить его в виде программы для ACE или любого другого компьютера того времени. Программа получила название «Тьюрочемп» (Turochamp), составленное из первых букв фамилий авторов. Вооружившись карандашом и бумагой, авторы выполняли необходимые расчёты за машину вручную — на выбор одного хода уходило около 30 минут. Этот аттракцион получил название «бумажной машины». «Бумажная машина» оказалась способна обыграть начинающего игрока — жену Чемпернауна, но проиграла Алику Гленни, создателю первого в истории компилятора — Autocode. Партия «бумажной машины» против Гленни продолжалась 29 ходов и сохранилась до наших дней[650].
Хотя Чемпернаун в 1980 г. и описал алгоритм работы программы в письме в редакцию журнала Personal Computing, некоторые детали за три десятилетия стёрлись из памяти учёного[651]. К счастью, до нас дошло достаточно подробное описание алгоритма Turochamp, подготовленное самим Тьюрингом для вышедшего в 1953 г. сборника «Быстрее мысли: симпозиум по цифровым вычислительным машинам» (Faster than Thought: A Symposium on Digital Computing Machines) под редакцией Бертрама Баудена[652]. Текст, набранный на печатной машинке, содержит собственноручные пометки и исправления Тьюринга. Выбор хода в программе Тьюринга и Чемпернауна был основан на переборе вариантов на фиксированную глубину. При этом варианты со взятиями рассматривались в глубину вплоть до позиций, в которых ни одно взятие было невозможно. Оценочная функция Turochamp оценивала материал (конь оценивался в три пешки, слон — в три с половиной, ладья — в пять и ферзь —в десять пешек), мобильность фигур, а также некоторое количество других позиционных признаков[653].
В 2004 г., основываясь на имеющихся материалах, Фредерик Фридель — известный научный журналист, многолетний редактор журнала Computerschach und Spiele (Компьютерные шахматы и игра) и сооснователь компании ChessBase, — заручившись поддержкой одного из ведущих разработчиков ChessBase Матиаса Файста, воссоздал Turochamp в виде работающей программы. Таким образом, спустя более чем полстолетия программа Тьюринга наконец обрела компьютерное «тело».
В процессе работы над Turochamp команда ChessBase столкнулась с проблемой: программа отказалась повторять все ходы, записанные Тьюрингом в игре против Гленни. Исследователи потратили несколько недель на повторное изучение материалов Тьюринга и обсуждение особенностей их реализации. К работе команды подключился Кен Томпсон, который написал собственный код на основе инструкций Тьюринга. Но и его программа вела себя сходным образом и повторяла большую часть ходов программы ChessBase, отличавшихся от ходов Тьюринга в партии.
В чём же было дело? Были ли это ошибки Тьюринга или неточности реконструкторов?
Фридель связался с Дональдом Мичи, работавшим с Тьюрингом в Блетчли-парке, описал суть проблемы и рассказал о наиболее существенных расхождениях между ходами в партии и ходами программы. «Возможно, мы делаем что-то не так, — писал Фридель, — но я сомневаюсь в этом, поскольку очень часто, особенно в начале игры, мы получаем те же ходы с одинаковыми оценками. Думаю, вполне возможно, что Тьюринг устал после пятнадцати ходов, когда вдобавок ко всему позиция стала достаточно сложной?!» Реакция Мичи была следующей: «Вы ищете ошибку в программе, Фредерик? Нет-нет, вы должны искать её у Алана Тьюринга! Алан не заботился о деталях; его интересовал общий принцип». Он также привёл слова Чемпернауна, который помогал Тьюрингу в создании «бумажной машины»: «В натурном эксперименте, я подозреваю, мы были





