Отправляет email-рассылки с помощью сервиса Sendsay

Виртуальный шашечный клуб

исторические сведения (программа "plus600")

Виртуальный шашечный клуб

ТАВЛЕИ >> Другие шашки >> НАША ИСТОРИЯ >>

С.Старцев. "Plus600": Этапы большого пути Может быть, кого-то удивит выбор раздела,
в котором мы публикуем этот материал (почему не "Компьютерные шашки"?). Но это
объясняется просто.

Во-первых, это уже действительно - ИСТОРИЯ. И, во-вторых, - безусловно, НАША!
( прим. вебмастера ).

Компьютерная программа по русским шашкам PLUS600:

Этапы большого пути :)

История создания программы "Plus600" насчитывает уже более двух десятилетий.
Началось все летом 1981 года, когда тогда еще весьма молодой

Григорий Ветрогон , хорошо разбирающийся в шашках (кмс) и ощутимо слабее разбирающийся
в программировании, поспорил со своим коллегой по

учебе в МГУ Сергеем Старцевым (вашим покорным слугой). Арбитром выступал
Сергей Педько .

Предмет спора был таков: необходимо было за две недели написать программу, которая
правильно бы осуществляла хода и взятия по правилам

русских шашек. Кто знает отличия взятий в русских шашках, тот поймет сложность
проблемы в том далеком году. Напомню, до персоналок

оставалось еще несколько лет, а программы тогда приходилось набивать на перфокартах.
А если вспомнить первую ЭВМ для этой программы -

легендарную БЭСМ-4М , то картина станет совсем ясной.

Поскольку мы только что окончили 5-й курс, впереди был только диплом и, следовательно
(да простит меня мой научный руководитель), много

свободного времени - как личного, так и машинного.

Следующие две недели были для меня и, с тех пор консультирующего меня Сергея
Педько, достаточно напряженными. Хотел бы я посмотреть в глаза

тому, кто придумал такие правила для взятий?! Этого человека оправдывает только
одно - он вряд ли предполагал, что этот алгоритм нужно

будет программировать.

Но, как бы там ни было, через две недели пари было выиграно - программа делала
ходы по правилам русских шашек. Тут бы и остановиться, но

любопытство оказалось сильнее. И мы легко перешли к решению следующей задачи
- научить программу ИГРАТЬ (перешли-то легко, а вот решаем эту

задачу до сих пор).

В том же 1981 году на БЭСМ-4М удалось получить программу, играющую в русские
шашки. С высоты сегодняшних достижений параметры той программы

смотрятся весьма скромными - глубина расчета 2-4 полухода, но главной цели мы
достигли - программа ИГРАЛА! И, видимо, это была первая

программа для русских шашек (поправьте, если я не прав - другой информации у
меня нет).

В 1982 году программа была переписана для ЭВМ СМ-4 . Тут уже стал возможен нормальный
интерфейс взаимодействия с человеком, да и глубину

расчета удалось увеличить. Этот год мы приняли как год рождения нашей программы.
До 1985 года программа продолжала потихоньку

совершенствоваться, а ее авторы - лучше разбираться в теории перебора. Однако,
поскольку в 1982 году мы закончили астрономическое отделение

физфака МГУ и разъехались кто куда - Григорий Ветрогон в Подмосковье, а Сергей
Педько в Харьков, особо серьезных теоретических новинок

разработать не удалось (напомню, что электронной почты тогда не было!).

В период с 1985 по 1989 год программа пережила еще один "редизайн" и прописалась
на EC-1060 . Считать программа стала намного дальше, но

особого сопротивления человеку еще оказывать не могла.

С 1989 года программа живет на персоналках. Однако развитие ее, до 1998 года,
шло "от случая к случаю" и особыми успехами в игре с людьми

она похвастать не могла. Однако у любителей (себя я отношу именно к ним) программа
стала стабильно выигрывать.

Среди реализованных идей того времени имеет смысл отметить только "античеловеческий"
алгоритм и оценочную функцию. Программа при наличии

почти равноценных ходов, выбирала не все время один и тот же ход, что не позволяло
человеку нащупать слабинку программы и спокойно ею

пользоваться. Что касается оценочной функции , то это - "сердце" нашей программы:
можем только сказать, что ее основа осталось до сих пор

той же самой.

В 1998 году было принято решение заняться подготовкой коммерческой версии программы.
Требовалась какая-то изюминка, отличающая программу от

других. В голове у меня давно витала идея о том, как было бы хорошо научить
программу совершенствоваться во время игры. Однако реализация

идеи оказалось весьма непростым делом. Но, в конце концов, эту проблему удалось
решить. И в этом же году программа получила алгоритм

самообучения , оставшийся в ней и до настоящего времени.

Теперь, попав однажды в проигрышную ситуацию, программа при следующей игре учтет
эту информацию и, скорее всего, выберет другой ход.

Алгоритм очень напоминает действия человека в подобных ситуациях. Разумеется,
этот алгоритм также эффективен и не только для случаев

проигрыша программы, но и для ситуаций с ее выигрышем - в следующий раз программа
увидит победу еще раньше (или если программа будет играть

другим цветом - то раньше сможет уйти от поражения).

Реализация этого алгоритма весьма проста - результаты расчета текущего хода пишутся
в базу данных и используются в дальнейших расчетах.

Сложности и хитрости, как всегда, в деталях - их мы раскрывать не будем.

Однако реализация алгоритма самообучения открыла перед нами еще одну возможность,
которую мы с успехом используем уже четыре года. Это некий

аналог "распределенных" вычислений или "коллективного разума" (мне этот термин
нравится больше). Поскольку результаты работы программы

сохраняются у всех пользователей, то мы решили создать у себя Центр Знаний.
Его задача - принимать информацию от всех копий программ,

суммировать ее и возвращать эту обобщенную информацию обратно. Таким образом,
все зарегистрированные версии программы работают на одно дело

- усиливают свою игру.

Подготовка коммерческой версии программы заставила вычистить много "узких" мест
в программе. К тому же, тиражирование программы принесло нам

неоценимую помощь - это советы, замечания и идеи наших пользователей. Поверьте,
большая часть ныне существующих функций программы сделана

по их идеям.

В 2001-м году программа приняла участие в компьютерном чемпионате России. Итог
- пятое место из шести. Однако, более важен другой итог -

были определены направления развития программы. И что более важно, после этого
чемпионата были восстановлены наши связи с Григорием

Ветрогоном, в лице которого мы опять получили профессионального консультанта.

Были определены следующие задачи:

увеличение глубины расчета за счет оптимизации механизма перебора;

активное наполнение библиотеки дебютов;

активизация расчетов баз окончаний;

создание режимов автоматического анализа партий и позиций.

В 2002-м году программа приняла участие в очередном компьютерном чемпионате России.
Выступление было уже гораздо более весомым - третье

место из шести, но заставило признать, что первую задачу в полной мере реализовать
не удалось. Однако выводы были сделаны правильные и к

следующему чемпионату мы подошли во всеоружии. Итак, что же представляли собой
"плюсы" "Plus600" на начало 2003 года:

удобство работы с программой;

наличие большого числа функций, необходимых шашисту в его работе;

алгоритм самообучения;

оригинальная оценочная функция;

самая большая библиотека дебютов;

автоматический анализа партий (включая "поточный" анализ) и позиций;

фоновый режим расчета за счет времени противника;

эффективный механизм перебора;

наличие 7-ми фигурной базы окончаний.

Эти "плюсы" не смогли не сказаться на результате - теперь программа носит гордое
звание чемпиона России среди компьютерных программ 2003

года . Не обошла нас своим вниманием и пресса, интересующихся отсылаем к 9-му
номеру популярного журнала "GAME.EXE" за 2003 год.

Хотелось бы отметить основную цель, которую мы преследуем, создавая и развивая
нашу программу. Это не достижение максимального результата

при игре с другими программами или людьми, не максимальная глубина перебора
или 100% эффективность использования процессора или оперативной

памяти. Нет! Это -

создание эффективного и удобного помощника для человека, играющего в шашки .

Для любителя - это просто соперник для приятного времяпрепровождения.

Для профессионала - необходимый помощник для анализа партий и позиций, и, при
необходимости, весьма серьезный противник. Не будем

обольщаться, до гроссмейстерского уровня программе еще далеко, но мастеру спорта
программа оказывает вполне достойное сопротивление.

К настоящему моменту программа обзавелась еще радом важных преимуществ, это:

8-ми фигурная база окончаний;

сетевая игра.

Теперь основное направление наших усилий на ближайшее время - это выверка и расширение
дебютной базы . Тут очень много задумок и идей,

надеемся, их реализация поможет избежать излишней "ничейно-ориентированности"
программы.

Сергей СТАРЦЕВ,

автор программы PLUS600

г.Москва, ноябрь, 2003 г.

Выпуск листа #15
Членов клуба: 9 человек
Модератор Аргунов Артём:
argunov20***@r*****.ru
Архив Листа - http://subscribe.ru/archive/sport.others.checkers

Ответить   Tue, 2 Jan 2007 10:30:03 +0100 (#625957)