ЖАНРЫ

Охота на электроовец. Большая книга искусственного интеллекта
Шрифт:

Сегодня исходные коды «воссозданных» программ Тьюринга и Шеннона, так же как и, например, исходные коды программы, основанной на отдельных идеях Конрада Цузе, размещены в открытом доступе. Однако важно понимать, что все они содержат некоторый произвол со стороны реконструкторов, ведь ни одна из этих программ не существовала в действительности, а дошедшие до нас документы допускают в ряде случаев весьма широкое пространство для трактовок и домыслов.

Интересно, что Turochamp не была единственной «бумажной машиной» того времени. В 1947–1948 гг. уже знакомый нам Дональд Мичи совместно с другим криптоаналитиком из Блетчли-парка Шоном Уайли создали программу, а точнее, алгоритм, получивший название «Макиавелли» (Machiavelli). Это имя он получил в честь знаменитого итальянского мыслителя, писателя и политического деятеля эпохи Возрождения Никколо Макиавелли. В начале 1950-х гг. Тьюринг вёл работы по превращению Turochamp и Machiavelli в программы для манчестерских компьютеров, но эта работа так и осталась незавершённой. Исторические Machiavelli и Turochamp так и не сыграли ни одной партии, пока до них не добрались неутомимые реконструкторы.

В статье «Машины, которые играют в игры», увидевшей свет в 1961 г., Джон Мейнард Смит и Дональд Мичи описали оценочные функции своих алгоритмов — SOMA (Smith One-Move Analyzer, «Одноходовый анализатор Смита») и Machiavelli. Обе «бумажные машины» предполагали анализ вариантов всего на один полуход в глубину, поэтому вряд ли могли обыграть кого-то, кроме шахматных новичков. Функции оценки включали в себя подсчёт материала, контроль над центром доски и полями, соседствующими с королём, атаки на фигуры, оценки разменов и ряд других стратегических и тактических факторов. Позже Смит создал гибрид SOMA и Machiavelli, получивший название SOMAC. Этот алгоритм при переборе в глубину на два полухода обеспечивал уровень игры, соответствующий среднему шахматному игроку-любителю.

3.5.3 Алекс Бернстайн и первая полноценная шахматная программа

В 1951 г. ещё один коллега Тьюринга, Дитрих Принц, создал первую программу для Ferranti Mark I, способную решать задачки типа «мат в два хода». Было ясно, что созданию полноценной шахматной программы мешает недостаточный объём памяти машины.

Манчестерская команда не была единственной группой программистов, работавших над созданием шахматных программ в 1950-е. За океаном собственную разработку вели физики-атомщики из Лос-Аламоса под руководством самого фон Неймана.

Шахматная программа для компьютера MANIAC I (Mathematical Analyzer, Numerical Integrator, and Computer или Mathematical Analyzer, Numerator, Integrator, and Computer, «Математический анализатор, числовой интегратор и компьютер» или «Математический анализатор, счётчик, интегратор и компьютер»), спроектированного и построенного командой из Лос-Аламоса, была готова к 1956 г. и умела играть в так называемые антиклерикальные шахматы — вариант шахмат на доске 6 x 6 и без слонов (дело в том, что эта фигура в английском языке называется словом bishop — епископ). Также в антиклерикальных шахматах не было рокировки и ходов пешек через одно поле.

Позже эта программа получила название Los Alamos Chess.

Рис. 66. Учёные из Лос-Аламоса Пол Штейн (слева) и Ник Метрополис (справа)
играют в шахматы с MANIAC I (на заднем плане)

Интерес к шахматному программированию проявляли и исследователи социалистических стран. В 1953 г. в ГДР в журнале Funk und Ton (Радио и звук) была опубликована работа Гюнтера Шлибса с описанием алгоритма работы шахматной программы. Идеи Шлибса в целом повторяли идеи Шеннона и Тьюринга: он воспроизводит в своей работе оценочную функцию из статьи Шеннона, включающую оценку материала (девять единиц за ферзя, пять — за ладью, по три — за коня и слона), наличие отсталых, изолированных и сдвоенных (штраф по 0,5 балла) пешек, а также мобильности (по 0,1 балла за каждое поле). Перебор в программе Шлибса, как и в программе Шеннона, должен был осуществляться на фиксированное число полуходов в глубину, а оценка — производиться только в стабильных позициях. В общем, Шлибс почти полностью воспроизводит в своей работе статью Шеннона, внося ряд замечаний и уточнений [659] .

659

Schliebs G. (1953). Uber die Grundzuge eines Programms fur eine Schachspielende Rechenmaschine / Funk und Ton, 1953, vol. 7, pp. 257—265.

Работа Шлибса не упоминается в современной западной литературе, но была хорошо известна советским исследователям. Краткий пересказ идей Шеннона и Шлибса мы впервые находим в книге «Электронные цифровые машины» Анатолия Ивановича Китова — руководителя головного вычислительного центра Министерства обороны СССР. Эта книга стала первой «открытой» книгой по вычислительной технике в Союзе, была позднее переведена на ряд иностранных языков и опубликована в Китае, Польше, Чехословакии. Пересказывая идеи Шлибса и Шеннона, Китов не удержался от того, чтобы скорректировать величину штрафа за изолированную и сдвоенную пешку: в его книге они составляют 0,4 и 0,3 балла соответственно (вместо 0,5 за оба дефекта у Шеннона и Шлибса) [660] .

660

Китов А.И. (1956). Электронные цифровые машины // http://www.kitov-anatoly.ru/naucnye-trudy/izbrannye-naucnye-trudy-anatolia-ivanovica-v-pdf/elektronnye-cifrovye-masiny

Два года спустя увидела свет новая книга Китова, написанная в соавторстве с Николаем Криницким, — «Электронные вычислительные машины» (в этой книге, вышедшей в «тёплые ламповые времена», слово «алгоритм» пока ещё пишется через Ф — «алгорифм»), в которой уже упоминаются первые проекты советских программистов. Например, созданная В. М. Курочкиным программа, способная решать шахматные задачи, а также созданная В. Д. Кукушкиным программа, способная ставить мат одинокому королю двумя разнопольными слонами [661] , [662] . Откровенно говоря, первой моей мыслью, когда я увидел эти фамилии в книге Китова, было то, что за птичьими псевдонимами в данном случае скрывались засекреченные сотрудники ИТМиВТ, во главе которого стоял ещё один, уже известный нам исследователь с «крылатой» фамилией — Сергей Алексеевич Лебедев. В мемуарах его коллег упоминается программа для БЭСМ, которая решала двух- и трёхходовые задачи намного быстрее, чем лучшие шахматисты института [663] . Но красивая версия не выдержала проверки: по крайней мере Владимир Михайлович Курочкин — вполне реальный человек, известный российский учёный в области информатики, стоявший у истоков отечественного программирования. С 1950 по 1955 г. Курочкин работал под началом Лебедева в ИТМиВТ, а затем возглавил отдел систем математического обеспечения Вычислительного центра РАН.

661

Китов А.И., Криницкий Н.А. (1958). Электронные вычислительные машины и программирование // http://elib.ict.nsc.ru/jspui/bitstream/ICT/862/3/kitov1958.pdf

662

Безбородов Ю. М., Орлов Б. В. (1961). Машина играет в шахматы / Математическое просвещение, вып. 6. С. 139—164 // http://mi.mathnet.ru/mp682

663

Лаут В.Н. Как я попал в ИТМ? // http://www.ipmce.ru/about/history/leading/lebedev/remembrance/laut/print/

Несмотря на все усилия исследователей, первая полноценная шахматная программа появилась только в 1957 г. Её создала команда под руководством сотрудника компании IBM Алекса Бернстайна.

Написание шахматной программы в конце 1950-х гг. было сложной задачей. Во-первых, языки программирования находились в зачаточном состоянии. Язык программирования фортран (FORTRAN) был огромным шагом вперёд по сравнению с машинным кодом, но первые компиляторы имели ограниченный набор функций, глючили и генерировали неоптимальный код. Во-вторых, у машин было мало памяти. Машина со 100 000 байтов памяти была большой редкостью, при этом значительная часть этого драгоценного ресурса была отдана операционной системе и программному коду. В-третьих, инструментов отладки не существовало. Если что-то пошло не так или вы подозревали, что что-то не так, арсенал средств поиска проблемы был крайне ограничен. Наконец, компьютеры стоили дорого и доступ к ним был сложен. Большая часть ранних работ в области шахматного программирования сильно страдала из-за сложностей в получении доступа к дорогостоящему компьютерному оборудованию. В этих сложных условиях прогресс в разработке сильных шахматных программ был ожидаемо медленным.

Неудивительно, что большую часть пионерских проектов в области компьютерных шахмат осуществили люди, которые либо были сотрудниками компаний, производящих компьютерное оборудование, либо работали в университетах. И у тех и у других был пусть и ограниченный, но всё-таки какой-никакой доступ к драгоценному компьютерному времени (особенно посреди ночи). IBM была компанией, обладавшей ключевым ресурсом для создания шахматной программы: современными компьютерами. Однако одних только машин было недостаточно: чтобы создавать программы, нужны ещё и программисты, а людей с необходимыми навыками было в то время трудно найти (как, впрочем, нередко бывает и сейчас). На что были похожи практики поиска сотрудников в ИТ в 1950-е?

В декабре 1956 г. IBM разместила объявление в журнале Scientific American и в газетах New York Herald Tribune и Los Angeles Times, в котором сообщала, что ищет тех, кто интересуется программированием компьютеров. В рекламе использовалось изображение чёрного шахматного коня и говорилось, что «эта работа понравится тем, кто любит играть в шахматы или разгадывать головоломки».

В ответ на объявление компания получила ровно семь ответов, и этот результат был сочтён отличным. Пятеро из откликнувшихся были опытными программистами, работавшими у конкурентов, — кадровое браконьерство всегда было в той или иной мере свойственно компьютерной индустрии. Двое других были новичками, и только один из них оказался полезным в долгосрочной перспективе. Первым был шахматист, который «интересовался только игрой в шахматы», и вскоре IBM «позволила ему вернуться к своей доске». Второй «почти ничего не знал о вычислительной технике», но, как утверждалось, его IQ равнялся 172 баллам, и, по словам сотрудника компании, ответственного за наём программистов, кандидат «обладал тем типом ума, который нам нравился… [Он] научился играть на пианино, когда ему было десять лет, пребывая в уверенности, что нота фа в действительности является нотой ми. Так он и играл в течение многих лет. Бог знает, через что прошли его соседи. Однако, следует отметить, эта история показала наличие прекрасного независимого таланта к систематической работе по преобразованию значений». В конце концов первоначальная рекламная кампания и её последующее продолжение в еженедельнике The New Yorker привели к появлению многообещающих «джуниоров». В их число входили кристаллограф, получивший образование в Оксфорде, доктор философии в области английского языка из Колумбийского университета, экс-модель из модной индустрии, протохиппи и многочисленные шахматисты.

Одним из откликнувшихся на объявление стал победитель чемпионата США (U. S. Open) по шахматам Артур Бисгайер. Также среди связавшихся с компанией были Алекс Бернстайн, бывший капитан шахматной команды Высшей научной школы Бронкса (The Bronx High School of Science, среднее учебное заведение с высоким уровнем преподавания) [664] , Дон Шульц, который позднее стал президентом Шахматной федерации США, а также Сид Нобл, самопровозглашённый «чемпион по шахматам Французской Ривьеры». Единственное, что объединяло этих начинающих программистов, — это, пожалуй, только их выдающиеся результаты в серии тестов, основанных на интеллектуальных головоломках, да достаточная самоуверенность для того, чтобы откликнуться на расплывчатые, но интригующие объявления IBM [665] , [666] .

664

McCorduck P. (2004). Machines who think: a personal inquiry into the history and prospects of artificial intelligence. A. K. Peters // https://books.google.ru/books?id=aH9QAAAAMAAJ

665

Ensmenger N. (2012). The Computer Boys Take Over: Computers, Programmers, and the Politics of Technical Expertise. New York, NY, USA: MIT Press // https://books.google.ru/books?id=VCcsTPQ738oC

666

Misa T. (2011). Gender Codes.: Why Women Are Leaving Computing. Wiley // https://books.google.ru/books?id=EjDYh_KHls8C

Поделиться с друзьями: