- Фантастика и фэнтези
- Ироническое фэнтези
- Стимпанк
- Детективная фантастика
- Киберпанк
- Попаданцы
- LitRPG
- Космоопера
- Технофэнтези
- Городская фантастика
- Русское фэнтези
- Юмористическая фантастика
- Космическая фантастика
- Боевое фэнтези
- Эпическая фантастика
- Зарубежная фантастика
- Книги магов
- Мистика
- Разная фантастика
- Разное фэнтези
- Любовное фэнтези
- Романтическая фантастика
- Городское фентези
- Историческая фантастика
- Историческое фэнтези
- Социально-философская фантастика
- Сказочная фантастика
- Иностранное фэнтези
- Романтическое фэнтези
- Ироническая фантастика
- Ужасы и Мистика
- Постапокалипсис
- Героическая фантастика
- Фэнтези
- Научная Фантастика
- Социально-психологическая
- Альтернативная история
- Боевая фантастика
- Разная литература
- Пословицы, поговорки
- Шахматы
- Визуальные искусства
- Фанфик
- Авто и ПДД
- Военное
- Отраслевые издания
- Гиды, путеводители
- Зарубежная образовательная литература
- Военная история
- Цитаты из афоризмов
- Современная литература
- Великолепные истории
- Начинающие авторы
- Современная зарубежная литература
- Боевые искусства
- Изобразительное искусство, фотография
- Кино
- Литература 19 века
- Недвижимость
- Музыка, музыканты
- Готические новеллы
- Истории из жизни
- Культура и искусство
- Спецслужбы
- Зарубежная прикладная литература
- Музыка, танцы
- Подростковая литература
- Прочее
- Военная техника, оружие
- Газеты и журналы
- Периодические издания
- Домоводство, Дом и семья
- Любовные романы
- Экономическая литература
- Научные и научно-популярные книги
- О животных
- Биохимия
- Культурология
- Юриспруденция
- Политика
- Психотерапия
- Языкознание
- Научпоп
- Медицина
- Психология, личное
- Радиотехника
- Филология
- Педагогика
- Образовательная литература
- Деловая литература
- Физика
- Науки: разное
- Химия
- Воспитание детей, педагогика
- Детская психология
- Зарубежная публицистика
- Биология
- Архитектура
- Зарубежная психология
- Науки о космосе
- Социология
- Математика
- География
- Беременность, ожидание детей
- Литературоведение
- Транспорт, военная техника
- Обществознание
- Зоология
- География
- Альтернативная медицина
- Иностранные языки
- Ветеринария
- Рефераты
- Астрология
- Биофизика
- Экология
- История Европы
- Учебники
- Шпаргалки
- Государство и право
- Ботаника
- Религиоведение
- История
- Техническая литература
- Прочая научная литература
- Психология
- Детективы и Триллеры
- Справочная литература
- Проза
- Новелла
- Юмор
- Проза
- Историческая проза
- Русская современная проза
- Советская классическая проза
- Повести
- Очерки
- Эссе
- Рассказы
- Зарубежная современная проза
- Сентиментальная проза
- Зарубежная классика
- Афоризмы
- Эпистолярная проза
- Феерия
- Семейный роман/Семейная сага
- Разное
- Антисоветская литература
- Магический реализм
- Русская классическая проза
- Современная проза
- О войне
- Контркультура
- Классическая проза
- Поэзия, Драматургия
- Детская литература
- Детская фантастика
- Детские остросюжетные
- Детские стихи
- Детские приключения
- Внеклассное чтение
- Учебная литература
- Зарубежные детские книги
- Бизнес
- Загадки
- Книги для подростков
- Школьные учебники
- Детский фольклор
- Книги для дошкольников
- Детские детективы
- Детская познавательная и развивающая литература
- Буквари
- Прочая детская литература
- Сказка
- Детская проза
- Детская образовательная литература
- Юмор
- Документальные книги
- Бизнес
- Внешнеэкономическая деятельность
- Тайм-менеджмент
- Кадровый менеджмент
- О бизнесе популярно
- Управление, подбор персонала
- Бизнес
- Менеджмент и кадры
- Продажи
- Экономика
- Ценные бумаги и инвестиции
- Малый бизнес
- Делопроизводство, офис
- Корпоративная культура, бизнес
- Банковское дело
- Финансы
- Зарубежная деловая литература
- Ораторское искусство / риторика
- Личные финансы
- Интернет-бизнес
- Поиск работы
- Государственное и муниципальное управление
- Бухучет и аудит
- Работа с клиентами
- Менеджмент
- Краткое содержание
- Личная эффективность
- Переговоры
- Приключения
- Старинная литература
- Религия и духовность
- Компьютеры и Интернет
- Блог
Читаем без скачивания Охота на электроовец. Большая книга искусственного интеллекта - Марков Сергей Николаевич
Шрифт:
Интервал:
Закладка:
Хотя Чемпернаун в 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, отличавшихся от ходов Тьюринга в партии.
В чём же было дело? Были ли это ошибки Тьюринга или неточности реконструкторов?
Фридель связался с Дональдом Мичи, работавшим с Тьюрингом в Блетчли-парке, описал суть проблемы и рассказал о наиболее существенных расхождениях между ходами в партии и ходами программы. «Возможно, мы делаем что-то не так, — писал Фридель, — но я сомневаюсь в этом, поскольку очень часто, особенно в начале игры, мы получаем те же ходы с одинаковыми оценками. Думаю, вполне возможно, что Тьюринг устал после пятнадцати ходов, когда вдобавок ко всему позиция стала достаточно сложной?!» Реакция Мичи была следующей: «Вы ищете ошибку в программе, Фредерик? Нет-нет, вы должны искать её у Алана Тьюринга! Алан не заботился о деталях; его интересовал общий принцип». Он также привёл слова Чемпернауна, который помогал Тьюрингу в создании «бумажной машины»: «В натурном эксперименте, я подозреваю, мы были слегка небрежны и наверняка наделали множество ошибок, поскольку расчёты были чрезвычайно утомительны при использовании карандаша и бумаги».
Результаты работы по воссозданию Turochamp были представлены на конференции, прошедшей в Блетчли-парке 23 июня 2012 г. и посвящённой столетию со дня рождения Алана Тьюринга. Вместе с Фриделем на конференции выступил тринадцатый чемпион мира по шахматам Гарри Каспаров, который провёл короткую демонстрационную партию против Turochamp — играя чёрными, он выиграл её за 16 ходов[654].
До своей трагической смерти в 1954 г. Тьюринг так и не успел реализовать Turochamp в виде программного кода, но эстафету подхватили другие исследователи. Вообще говоря, шахматы с самого начала рассматривались в качестве своеобразного священного Грааля машинного интеллекта — эта традиция берёт истоки ещё в работах Бэббиджа. Конрад Цузе, работая над своим языком программирования Plankalkül, анализировал задачу определения валидности шахматных ходов и разработал для этого ряд программных процедур[655], [656]. В 1950 г. опубликована написанная двумя годами ранее программная статья Клода Шеннона «Программирование компьютера для игры в шахматы», в которой сформулированы основные подходы к созданию шахматных программ, в значительной мере определившие развитие шахматного программирования в последующие полстолетия.
В целом идеи, изложенные Шенноном в статье, во многом пересекаются с идеями Тьюринга. Шеннон также предлагает использовать оценочную функцию, принимающую в расчёт материал, мобильность, отдельные элементы пешечной структуры: слабые, изолированные и сдвоенные пешки, нахождение ладей на открытых вертикалях и некоторые другие широко известные признаки, используемые шахматистами при оценке позиции. Интересно, что Шеннон предлагает немного отличающиеся значения для оценки фигур (у Тьюринга слон стоит три с половиной пешки, а у Шеннона — три, как и конь). Шеннон также пишет о том, что перебор в узле дерева можно прерывать только в «спокойных» [quiescent] позициях, поскольку значение оценочной функции бессмысленно в середине цепочки разменов. Если при переборе в глубину на три полухода белые третьим полуходом взяли чёрного ферзя, то программа может посчитать результатом соответствующего варианта выигрыш ферзя, хотя в действительности чёрные заберут «лишнего» ферзя белых следующим ходом, тем самым уравняв позицию. Термин quiescent, употреблённый Шенноном, и в наши дни используется для обозначения в шахматных программах функций, отвечающих за анализ форсированных вариантов, например: quiescence_search() или просто quiescence(). Шеннон по сути приводит в статье свой вариант этой функции: он предлагает продолжать перебор в течение нескольких дополнительных полуходов, если хотя бы одна фигура на доске атакована более слабой фигурой, либо атакована недостаточно защищённая фигура, либо существует возможность дать шах на незащищённое поле.
Вообще статья Шеннона интересна в первую очередь как раз анализом задачи перебора вариантов. Шеннон описывает две программы — тип A и тип B. Программа типа A просматривает дерево игры на фиксированную глубину, при этом в каждом узле дерева (соответствующем позиции на доске) рассматриваются все возможные ходы соответствующей стороны. Такой подход гарантирует нахождение любой игровой комбинации, если глубина рассмотрения дерева достаточна для этого. Однако дерево шахматной игры, особенно в миттельшпиле, ветвится чрезвычайно быстро. В среднестатистической шахматной позиции возможно примерно 35 различных полуходов, что более чем в десять раз превосходит аналогичный показатель для английских шашек. Оценив вычислительные возможности машин, Шеннон делает неутешительный вывод: программа типа A вряд ли когда-либо сможет сравниться с лучшими шахматистами, ведь некоторые комбинации чемпионов мира насчитывают 15–20 ходов в глубину! В качестве альтернативы программе типа A Шеннон предлагает программу типа B, которая будет рассматривать в каждом узле дерева игры не все, а только некоторые альтернативы — это позволит увеличить глубину рассмотрения дерева за счёт уменьшения его ширины. Похожим образом действуют и профессиональные шахматные игроки — включают в рассмотрение только те варианты, которые считают осмысленными.
Дьявол, однако, как обычно, кроется в деталях. В 1950 г. в арсенале методов ИИ ещё не было инструментов, позволявших получить оценку «осмысленности» того или иного варианта, сопоставимую по качеству с человеческой. Да что уж говорить — даже самого ИИ как направления ещё не существовало. Программа типа B, руководствуясь примитивными способами отсеивания вариантов, неизбежно часто допускала бы грубые ошибки, эту проблему видел и Шеннон. Последовавшие десятилетия развития шахматных программ во многом стали поиском разумного компромисса между полным и селективным, избирательным перебором вариантов, а также поиском быстрых и в то же время умных оценочных функций.