Турнир среди шашечных программ

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

Просмотр 15 сообщений - с 256 по 270 (из 568 всего)
  • Автор
    Сообщения
  • #361862
    Kvadrat64
    Участник

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

    В принципе так и есть. Особенно неприятны в этом случае для программы позиции, где много ходов ведут к выигрышу, но только 1-2 из них — кратчайшим путем. В этом случае программа может ошибиться и «попетлять» по позициям еще ходов 10-15, чтоб снова прийти к той же самой позиции откуда ошиблась :-). В многофигурных позициях ей будет тем сложнее, чем больше дамок с обеих сторон появится. В этом случае выбор будет из большого количества выигрывающих дамочных ходов, большинство которых приводят к повторению через 5-10 ходов. Самый простой пример: три дамки против одной. Там вообще ВСЕ (ну или почти все) ходы сильнейшей стороны выигрывают, но толку от использования безранговых баз крайне мало, так как программе все равно придется использовать перебор на полную катушку.

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

    #361863
    Kvadrat64
    Участник

    Оптимальный вариант с точки зрения использования ОЗУ и скорости расчета — использование двух баз, так, как это далается у Дамиры.
    При игре (расчете) используется безранговая ЭБ, при реализации выигрыша — ранговая ЭБ. Места на HDD расходуется больше, но при современных размерах винчестеров это не проблема.

    #361864
    Kallisto
    Участник

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

    Очень красиво все описал! Когда уже наконец появится Скифи?

    #361865
    Kallisto
    Участник

    Это не говорит о том, что при хороших алгоритмах невозможно выиграть этот эндшпиль с безранговыми базами.
    Проще дожаться Игоря, и спросить у него — нормальный ли у него алгоритм в выигранных эндшпилях из ЭБ (не отключаются ли ЭБ)

    У меня просто отключаются. Так проще всего. Реализация выигрыша по ЭБ меня волнует в последнюю очередь.

    #361866
    Kallisto
    Участник

    Слабое выступление Plus600 могу объяснить только экспериментами Старцева в области ОФ.
    Откровенно поразила Каллисто с базой 5-ки!

    А мне кажется, что Тундра и Дамира выступили необычайно сильно (или им просто повезло).
    Игры проходили на разных компах? Соперники менялись компами?
    И мне кажется лучше бы было провести по два круга на двух позициях, чем 4 на одной.

    #361867
    Kallisto
    Участник

    У меня Каллисто этот эндшпиль играет вполне нормально. Интересно было бы на лог посмотреть. Удалось его сохранить?

    #361868
    NS
    Участник

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

    Очень красиво все описал! Когда уже наконец появится Скифи?

    Я же в соседней ветке назвал дату выхода первой версии :)
    Через неделю, скорей всего 17-го вечером

    #361869
    Kvadrat64
    Участник

    Нет, лог перетерся. У Дамиры была небольшая БД летающих, в которой были отдельные варианты дебюта —- a7g5.
    Каллисто все партии играл на слабом компьютере, Тундра все партии на сильном (из-за требования usb порта), Plus600 и Дамира стартовали и на слабом и на сильном компе.
    Ближе к концу турнира мне показалось, что Plus600 стала сильнее играть, видимо стала сказываться база самообучения.

    #361870
    Kvadrat64
    Участник

    У меня просто отключаются. Так проще всего. Реализация выигрыша по ЭБ меня волнует в последнюю очередь.

    Неплохо было бы выигрывать и выигранные позиции, учитывая низкую результативность в русских шашках. ❗

    Расставил позицию, теперь Каллисто выигрывает. На слабом компьютере скорость расчета от 900 до 1200, на сильном эту позицию считает со скоростью больше 2000, может это повлияло.

    То NS
    В это ветке указан один из вариантов выигрыша при идеальной игре обеих сторон за 85 ходов, да 27-28 полуходов.

    #361871
    Kallisto
    Участник

    Неплохо было бы выигрывать и выигранные позиции, учитывая низкую результативность в русских шашка

    Сделаю игру по ЭБ, как описал NS. Тогда уж выигранные вряд ли выпустит.

    Каллисто все партии играл на слабом компьютере

    Может быть из-за этого так хорошо сыграли Тундра с Дамирой :)

    #361872
    NS
    Участник

    В алгоритме естественно имел в виду — Выигрывающая оценка +inf-ply, проигрывающая -inf+ply

    #361873
    NS
    Участник

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

    В этой позиции, после того как при точной игре белые и черные проведут по 2 дамки, еще 13 или 14 ходов (в идеальном случае!) нужно сделать только дамками, прежде чем начнет движение простая!
    Если грубо, это примерно столько сколько возможных ходов в позиции где у обеих сторон по 2 дамки (т.е. примерно 20), в 13 или 14 степени. Это невообразимое число. Если 3-ник Петрова построить можно, зная принцип последовательного вытеснения, то здесь никак. 😉

    Вы неправильно считаете количество позиций :)
    После того как белые и черные проведут по две дамки, при данном положении двух белых простых возможно (с учетом очереди хода)
    2*30*29*28*27/(2!*2!) позиций (первый множитель 30 — так как два поля заняты белыми простыми)
    То есть 328860 позиций… Так что всё не так уж и плохо :D

    #361874
    Kvadrat64
    Участник

    Я не позиции считал, а сочетания ходов. После каждого полухода по 20 ходов, вот и получилось… много

    #361875
    NS
    Участник

    Реально много не получится, так как по полной программе заработает Хеш перекрестных позиций, и будет очень много отсечений…
    (отсечения по типу ходов (ход простой, взятие), по повторению позиции, по оценке из Хеша, «невыигрывающих ходов» и т.д.)
    28 полуходов в самом длинном варианте (до первого движения простой) Это немного.

    #361876
    Kallisto
    Участник

    28 полуходов в самом длинном варианте (до первого движения простой) Это немного.

    28 полуходов в самом коротком варианте. Но все равно это немного.
    Я выслал Kvadrat64 версию с этим алгоритмом. Теперь он может в этом убедиться. Проге нужно несколько секунд для нахождения продвижения простой.

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