Ход лошадью
АрхивКомментарий дняСоздать идеальный шахматный компьютер, знающий наперед все возможные варианты развития игры, задача теоретически разрешимая.
Шахматы - вероятно, одна из самых старых, популярных и сложных игр, придуманных человеком. За пятнадцать веков существования придуманы несколько её вариантов, разобраны сотни тысяч игровых комбинаций - но полный перебор всех возможных положений фигур на доске так и остаётся недостижимым пределом мечтаний. Человек - по крайней мере, на его нынешнем этапе умственного развития - сделать это не в состоянии. Не в силах сделать это и одиночная вычислительная машина. Но шанс исправить ситуацию, превратив шахматы в игру с предопределённым и известным для игроков исходом, всё же есть: попробовать решить эту задачу можно воспользовавшись ресурсами миллионов машин, подключенных к глобальной Сети. Сконцентрировав усилия трёх миллионов пользователей на перлюстрации сигналов из космоса, разве не можем мы сделать то же самое для шахмат? И такой проект есть - это некоммерческий ChessBrain.net, одна из главных задач которого - перебор всех возможных вариантов игровых ситуаций для западной версии шахмат (той самой, что с 64 клеточками).
Придуман и реализован ChessBrain всего одним человеком - страстным поклонником шахмат и программистом Карлосом Юстиниано (Carlos Justiniano). Собственно, идея родилась в результате стечения двух разнесённых во времени обстоятельств - встречи с первой компьютерной программы для игры в шахматы, увиденной Карлосом ещё на компьютере Commodore в 80х годах, и уже упомянутой выше системой распределённых вычислений SETI@Home. ChessBrain объединяет в себе свойства обеих программ. В основе её лежит централизованная пиринговая сеть, составленная из центрального узла, генерирующего исходные данные, и множества разрозненных компьютеров-клиентов, выполняющих рутинную работу по обсчёту предлагаемых центром задач. В качестве обсчитываемых данных выступают шахматные комбинации, которые синтезирует программное обеспечение центрального сервера. Каждая программа-клиент (кстати, варианты её есть под несколько платформ - Windows, Linux, MacOS) возвращает рассчитанную ею партию обратно на центральный узел, где она и остаётся лежать в базе данных. Таким образом, рядовому участнику проекта не нужно даже знать правила игры - человек из процесса исключён.
ChessBrain впечатляет своей простотой и ясностью. Каждый участник системы (которых пока около сотни) получает свой уникальный идентификационный номер из рук самого автора проекта. А в качестве центрального сервера используется смонтированная руками автора же связка из четырёх машин (PIII 1 ГГц). Впрочем, именно простота может стать узким местом системы, когда она обретёт достаточную популярность.
Сегодня сервер ChessBrain способен на работу примерно с 200 клиентами одновременно (главное ограничение - скорость работы сервера и программного обеспечения, которое основано на Linux и тоже писано Карлосом). Канал, через который происходит обмен данными с Сетью, по всей видимости, тоже не слишком широк. Но самое главное - объёмы данных, которые нужно хранить, невообразимо велики. Здесь, кстати, ChessBrain напрямую сталкивается с вопросом о возможности решения "шахматной задачи" вообще: конечно, чисто теоретически, перебрать все комбинации фигур на поле - возможно. Тем более, что общее число возможных комбинаций сильно ограничивается малым числом начальных комбинаций фигур на доске. Но - только теоретически. По оценке математиков, число возможных развитий игры составляет 10^10^50 - число конечное, но заведомо большее, нежели число всех элементарных частиц во вселенной. Впрочем, об оптимизации процесса Карлос ещё не задумывался. Есть идеи?
Обсудите материал в форуме