Про базы окончаний

Просмотр 15 сообщений - с 16 по 30 (из 77 всего)
  • Автор
    Сообщения
  • #342433
    NickSt
    Участник

    Всем привет!

    Владимир Шулюпов прав. При таком подходе поиск лучшего хода по базе в эндшпиле может привести к зацикливанию. Я однажды нашел такой баг у Плюса.

    Версия 6.24.

    Возьмем позицию:

    Б. д a1, пр. e3, g3.

    Ч. д. a5, пр. a3.

    Ход белых. Запускаем режим Plus600-Plus600.

    Вот что получилось.

    1.g3-h4 a5-b6 2.e3-f4 b6-c7 3.f4-g5 c7-d6 4.g5-f6 d6-f8 5.a1-d4 f8-h6

    6.f6-e7 h6-f8 7.e7-d8 f8-h6 8.d4-c3 h6-f4 9.c3-d4 f4-h6 10.d4-c3 h6-f4

    11.c3-d4 f4-h6 12.d4-c3 h6-f4 13.c3-d4 f4-h6 14.d4-c3 h6-f4 15.c3-d4 f4-h6

    16.d4-c3 h6-f4 17.c3-d4 f4-h6 18.d4-c3 h6-f4 и т.д. =![addsig]

    #342434
    Аноним
    Гость

    >>Сорри, утверждение излишне смелое.

    Ты прав Сергей!

    Я бы перефразировал так:

    «База без рангов полезна, но лучше иметь базу с рангами.»

    Камынин Виталий.

    #342435
    Shulyupov
    Участник

    Всем большой привет!

    Давайте обсудим смежный вопрос — о базах окончаний в стоклетках, тут у меня имеется несколько вопросов.

    Как известно DAM 2.2 включает в себя трёхфигурную базу, на его сайте отдельно лежит четырёхфигурная и программа для генерации пятифигурной и шестифигурной. Я (где-то за сутки, точно не помню) сгенерировал на Celeron 1300 пятифигурную, шестифигурную терпения не хватило (думаю что потребуется больше месяца, хотя можно генерировать по частям).

    1) Какой формат базы DAM 2.2?

    2) Может ли кто-нибудь поделиться шестифигурной базой DAM 2.2?

    3) А как обстоят дела у других стоклеточных программ, есть ли уже у кого-либо семифигурная база, если нет, то собирается ли кто-либо её генерировать, и возможно ли это в принципе на современной технике?[addsig]

    #342436
    druggist
    Участник

    😉

    #342437
    Shulyupov
    Участник

    Quote:


    Всем привет!

    Опять о базах в русских.

    Объясните мне зачем вообще нужны 4-х и менее шашечные базы данных?

    Неужели программа не в состоянии решить их сама простым перебором.

    К тому же, по крайней мере программы «Plus» — самообучающиеся и раз решив позицию

    программа её запомнит. Следовательно имеет смысл создавать только

    базы данных 5 и более. Но и из них необходимо отбросить большую часть

    позиций, ибо оценка их и так ясна.

    И крому нужны базы размером 19 ГБайт?

    Заранее благодарю за ответ.


    Добрый вечер!

    1) По базам из 2-4 щашек — они такие маленькие и генерируются так быстро, что говорить не о чем, кроме того, легче сделать 4-шашечную базу, чем научить ловить тремя дамками с большаком одну, к тому же для перебора это достаточно нетривиальная задача, далее сколько раз Plus 600 должен был не выиграть этот эндшпиль, чтобы гарантировать победу в дальнейшем — а наличие базы с индексом решает проблему раз и навсегда. Но самое главное, что без генерации базы меньшей размерности невозможно создать базу большей размерности.

    2) Сомневаюсь, что можно отбросить большую часть позиций, а даже если это можно было сделать, то как научить машину определять, ясна ли её оценка или нет, а человек с этой задачей справится не менее, чем за 1000 лет. Но даже если и это как нибудь сделать, то неизвестно уменьшится или увеличится размер базы, так как для «обрезанных» баз придётся кроме оценки позиции (1 байт на позицию) вводить и описание самой позиции, а это больше.

    3) Если сейчас входят в обиход диски на 120 Гб, а дальше-больше, то вряд ли для шашиста будет нереальным пожертвовать 19 Гб под базы.[addsig]

    #342438
    druggist
    Участник

    😉

    #342439
    Shulyupov
    Участник

    Друггисту:

    1а) как определить список ключевых позиций? А если и определить, то их будет значительно больше, чем Вы думаете.

    1б) в базах окончаний белые — это та сторона, чей ход, поэтому, ничего Вы здесь не съэкономите.

    2) оценка позиции определяется не историческим опытом, а логически, раз и навсегда методом ретроспективного анализа, т.е. анализом с конца, несколько подробнее:

    (1) определяем множество позиций, по которым составляем базу (множество всех позиций слишком велико, поэтому берём его некоторое подмножество, обладающее такими свойствами: из него могут получиться только позиции из этого множества, либо из множеств, рассмотренных ранее, первый раз можно рассмотреть тривиальные позиции вида 1д+0п — 0д+0п (кратко 1000), одновременно с 0010. Каким либо образом пронумеровываем все эти позиции (в зависимости от вкусов программиста), образуем два файла (можно и один), размером в число этих позиций. Первым даём ранг +0, прописывая каким то определённым программистом символом это число в байте с соответствующим номером (осталось 0 полуходов до выигрыша, вторым ранг -0 (0 ходов до проигрыша). В других базах ставим ранг +0 в тех позициях, если у соперника нет шашек, ранг -0, если у игрока нет шашек, или все они заперты (т.е нет ни одного хода). Дальше с тривиальной базой делать нечего, так как в каждый байт мы уже всё записали, в случае более продвинутых баз переходим к следущему пункту:

    (2) Прочёсываем всю базу от начала до конца (пропуская те позиции, в которые мы уже записали ранг). Смотрим, если в этой позиции: а) можно сделать ход, после которого получается позиция с переменой цвета с уже известным рангом -n, то, значит данная позиция имеет ранг +(n+1) (очевидно, что n меньше номера шага на 2); б) если при любом ходе получается позиция с переменой цвета с уже известным рангом +n (или +m, где m

    #342440
    Аноним
    Гость

    Еще один вариант распространения эндшпильных баз больших размеров:

    распространять вместе с программой генератор таких баз, о чем уже здесь упоминали, когда речь шла о стоклетках. А насчет времени генерации, то для тундровской 6-фигурки русских шашек — это около суток на «нормальном» (с моей точки зрения) компьютере.

    Антон aka sancoder.

    #342441
    druggist
    Участник

    😉

    #342442
    Аноним
    Гость

    Quote:


    Но почему используется структура «W/B/D» (С. Старцев)? Разве не достаточно «W/B», а если позиции не найдена, то она «D»?


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

    Для уменьшения же размера базы данных, гораздо более эффективно использавать ее сжатие «на лету»

    Quote:


    2) Окончательная оценка позиции для малофигурных позиций — до 8, действительно может быть дана раз и навсегда. А дальше? Теоретически возможно всё, но обратите внимание на то с каким трудом были созданы всего лишь 7-фигурные базы.


    А с каким трудом они были созданы? Нормальная техническая работа. Для чекереса уже достаточно давно есть 8-ми фигурные базы (да и для русских шашек скоро будут), и ведутся разговоры о 10-ти фигурной базе.

    С уважением,

    Сергей Старцев

    #342443
    Аноним
    Гость

    druggist

    Quote:


    3) Установка с 20 CD


    2х650М диска 7-фигурка.

    Антон aka sancoder

    #342444
    Аноним
    Гость

    И могу добавить. Полная 8-ми фигурка для чекерса занимает всего пять компакт-дисков.

    С уважением,

    Сергей Старцев

    #342445
    druggist
    Участник

    😉

    #342446
    Аноним
    Гость

    Хочу заметить, что размер базы окончаний не зависит (правильнее сказать, почти не зависит — отличается коэффициентом сжатия) от вида игры. И для русских шашек и для чекерса и для бразильских кол-во позиций одинаково (с этого начиналась данная тема).

    А сжать базу в двадцать раз — дело вполне реальное. Не могу сказать, что очень легкое, но реальное!

    С уважением,

    Сергей Старцев

    #342447
    druggist
    Участник

    😉

Просмотр 15 сообщений - с 16 по 30 (из 77 всего)
  • Для ответа в этой теме необходимо авторизоваться.