Стандартная проверка корректности генератора ходов

Главная Форумы Шашечные программы Шашечные программы Стандартная проверка корректности генератора ходов

Просмотр 15 сообщений - с 46 по 60 (из 127 всего)
  • Автор
    Сообщения
  • #364650
    NS
    Участник

    Я изобрел-что-то или это было известно до меня?
    //
    Что проверку на наличие взятий можно сделать вместе с генерацией ходов, и причем в двух варинатах — при ОДНОРАЗОВОМ обращении к каждому полю доски (но замедляя make/unmake), либо в два прохода, не замедляя make/unmake (во втором случае так-же быстро определяется факт наличия взятий Дамки)?

    #364651
    Kallisto
    Участник

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

    У меня проще всего. В начале генерируем взятия. Если их нет, значит нет. Чего еще напрягаться?

    Расскажи про свои два метода, а то ничего непонятно.

    #364652
    NS
    Участник

    Я по почте напишу. :)
    В форуме приведу результаты скорости на начальной позиции, и на позиции шесть дамок против шести дамок (на Дамках ускорение должно быть намного сильнее)

    #364653
    NS
    Участник

    Perft в Бразильские шашки:

    Depth= 1  Nodes=           7
    Depth= 2 Nodes= 49
    Depth= 3 Nodes= 302
    Depth= 4 Nodes= 1469
    Depth= 5 Nodes= 7473
    Depth= 6 Nodes= 37628
    Depth= 7 Nodes= 187302
    Depth= 8 Nodes= 907836
    Depth= 9 Nodes= 4431847
    Depth=10 Nodes= 21566606
    Depth=11 Nodes= 105534946
    Depth=12 Nodes= 512171742
    Depth=13 Nodes= 2483592238

    В международные значения Perft кому-нибудь интересны?

    #364654
    AlexanderS
    Участник

    Perft в Бразильские шашки:


    Depth=10 Nodes= 21566606

    В международные значения Perft кому-нибудь интересны?

    У меня 21566622/21566642
    Стоклетки очень интересны, у меня два генератора разные цифры выдают и не знаю в каком ошибку искать…
    И вообще — делай стоклетки, а то сравнивать не с чем ;)

    #364655
    NS
    Участник

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

    То есть черные b2,g7
    Дамка a1 имеет только одно взятие. a1:b2:g7:h8

    #364656
    AlexanderS
    Участник

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

    То есть черные b2,g7
    Дамка a1 имеет только одно взятие. a1:b2:g7:h8

    У меня считаются за разные.
    Поэтому сравнивать можно только с Дамирой :) Кстати у них бразильские вроде есть, надо будет спросить.
    Боюсь поиск дубликатов замедлит генерацию, поэтому не стал делать, хотя не пробовал. Может и не сильно, коснется только взятий где несколько шашек снимаются, а таких не так уж много… Но все равно даже проценты терять не хотелось. Сейчас у меня похоже самый быстрый генератор в шашки 😆

    #364657
    NS
    Участник

    Боюсь поиск дубликатов замедлит генерацию,

    Такой генерации можно добится без поиска дубликатов :)

    #364658
    Kvadrat
    Участник

    Если после всех вариантов взятий позиция совпадает — считать варианты взятия за одно.

    #364659
    NS
    Участник

    Если после всех вариантов взятий позиция совпадает — считать варианты взятия за одно.

    Это очень медленно.

    Намного проще после взятия шашки смотреть взятия в том-же направлении только с одного поля.
    Либо с поля сразу после взятой шашки, либо добавлять взятия только непосредственно с поля перед шашкой которую берем.

    #364660
    Kvadrat
    Участник

    Может быть тогда не сравнивать позы, а сравнивать расстановки снимаемых шашек? Или это практически одно и тоже?
    Я не занимаюсь шашечным программированием, извините. 🙄
    Но поддерживаю… 😉

    #364661
    NS
    Участник

    Может быть тогда не сравнивать позы, а сравнивать расстановки снимаемых шашек? Или это практически одно и тоже?

    Сверять снимаемые шашки конечно быстрее, но тоже достаточно медленно.

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

    Остаются только дубли на взятиях одинакового набора шашек в разном порядке — но на силу это не влияет.

    #364662
    NS
    Участник

    perft в международные шашки:

    Depth= 1  Nodes=           9
    Depth= 2 Nodes= 81
    Depth= 3 Nodes= 658
    Depth= 4 Nodes= 4265
    Depth= 5 Nodes= 27117
    Depth= 6 Nodes= 167140
    Depth= 7 Nodes= 1049442
    Depth= 8 Nodes= 6483971
    Depth= 9 Nodes= 41022614
    Depth=10 Nodes= 258935682
    Depth=11 Nodes= 1666207133
    Depth=12 Nodes= 10752899471
    #364663
    AlexanderS
    Участник

    perft в международные шашки:
    [/code]

    Надо же, совпадает, во всяком случае до 9.
    А с интерфейсом у меня расхождения уже на 5… Хоть знаю теперь где копать :) Спасибо 😉

    Что касается взятий — не думаю что такие дубляжи влияют на силу вообще :)

    #364664
    NS
    Участник

    Раз совпадает… Значит у меня практически готова первая версия в международные шашки :)
    Только интерфейс нужен,
    и книга по эндшпилю — а то сейчас нет эндшпильной оценки.

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