Главная › Форумы › Шашечные программы › Шашечные программы › Турнир среди шашечных программ
- В этой теме 567 ответов, 20 участников, последнее обновление 18 лет, 8 месяцев назад сделано
NS.
-
АвторСообщения
-
09.09.2006 в 18:09 #361862
Kvadrat64
Участникт.о. надо в проигрышной позиции как это ни абсурдно
звучит, НЕ затруднять задачу программе, оставляя ей
единственное продолжение на выигрыш, а наоборот предоставить
несколько продолжений, где она и заблудится.В принципе так и есть. Особенно неприятны в этом случае для программы позиции, где много ходов ведут к выигрышу, но только 1-2 из них — кратчайшим путем. В этом случае программа может ошибиться и «попетлять» по позициям еще ходов 10-15, чтоб снова прийти к той же самой позиции откуда ошиблась
. В многофигурных позициях ей будет тем сложнее, чем больше дамок с обеих сторон появится. В этом случае выбор будет из большого количества выигрывающих дамочных ходов, большинство которых приводят к повторению через 5-10 ходов. Самый простой пример: три дамки против одной. Там вообще ВСЕ (ну или почти все) ходы сильнейшей стороны выигрывают, но толку от использования безранговых баз крайне мало, так как программе все равно придется использовать перебор на полную катушку.Три против одной можно таки описать, окончания с большим количеством шашек уже невозможно.
09.09.2006 в 18:16 #361863Kvadrat64
УчастникОптимальный вариант с точки зрения использования ОЗУ и скорости расчета — использование двух баз, так, как это далается у Дамиры.
При игре (расчете) используется безранговая ЭБ, при реализации выигрыша — ранговая ЭБ. Места на HDD расходуется больше, но при современных размерах винчестеров это не проблема.09.09.2006 в 18:24 #361864Kallisto
УчастникТо есть полностью изменение алгоритма по сравнению с обычным перебором, в случае если согласно безранговым ЭБ позиция выиграна за сторону которая должна выдать ход.
Также максимизируем оценку, только за соперника рассматриваем только простые ходы (не взятия) дамками (если в позиции у него есть взятия — то прекращаем перебор и возвращаем за него проигрывающую оценку, и исключаем из рассмотрения все ходы простыми, включая превращения)
а за выигрывающую сторону рассматриваем только ходы ведущие в выигранную позицию.
Как только в позиции появляются взятия, либо среди выигрывающих ходов есть ходы простой, включая превращение в дамку — то сразу обрываем перебор, присваивая выигрывающую оценку.Очень красиво все описал! Когда уже наконец появится Скифи?
09.09.2006 в 18:27 #361865Kallisto
УчастникЭто не говорит о том, что при хороших алгоритмах невозможно выиграть этот эндшпиль с безранговыми базами.
Проще дожаться Игоря, и спросить у него — нормальный ли у него алгоритм в выигранных эндшпилях из ЭБ (не отключаются ли ЭБ)У меня просто отключаются. Так проще всего. Реализация выигрыша по ЭБ меня волнует в последнюю очередь.
09.09.2006 в 18:31 #361866Kallisto
УчастникСлабое выступление Plus600 могу объяснить только экспериментами Старцева в области ОФ.
Откровенно поразила Каллисто с базой 5-ки!А мне кажется, что Тундра и Дамира выступили необычайно сильно (или им просто повезло).
Игры проходили на разных компах? Соперники менялись компами?
И мне кажется лучше бы было провести по два круга на двух позициях, чем 4 на одной.09.09.2006 в 18:49 #361867Kallisto
УчастникУ меня Каллисто этот эндшпиль играет вполне нормально. Интересно было бы на лог посмотреть. Удалось его сохранить?
09.09.2006 в 19:02 #361868NS
УчастникТо есть полностью изменение алгоритма по сравнению с обычным перебором, в случае если согласно безранговым ЭБ позиция выиграна за сторону которая должна выдать ход.
Также максимизируем оценку, только за соперника рассматриваем только простые ходы (не взятия) дамками (если в позиции у него есть взятия — то прекращаем перебор и возвращаем за него проигрывающую оценку, и исключаем из рассмотрения все ходы простыми, включая превращения)
а за выигрывающую сторону рассматриваем только ходы ведущие в выигранную позицию.
Как только в позиции появляются взятия, либо среди выигрывающих ходов есть ходы простой, включая превращение в дамку — то сразу обрываем перебор, присваивая выигрывающую оценку.Очень красиво все описал! Когда уже наконец появится Скифи?
Я же в соседней ветке назвал дату выхода первой версии

Через неделю, скорей всего 17-го вечером09.09.2006 в 19:24 #361869Kvadrat64
УчастникНет, лог перетерся. У Дамиры была небольшая БД летающих, в которой были отдельные варианты дебюта —- a7g5.
Каллисто все партии играл на слабом компьютере, Тундра все партии на сильном (из-за требования usb порта), Plus600 и Дамира стартовали и на слабом и на сильном компе.
Ближе к концу турнира мне показалось, что Plus600 стала сильнее играть, видимо стала сказываться база самообучения.09.09.2006 в 19:31 #361870Kvadrat64
УчастникУ меня просто отключаются. Так проще всего. Реализация выигрыша по ЭБ меня волнует в последнюю очередь.
Неплохо было бы выигрывать и выигранные позиции, учитывая низкую результативность в русских шашках. ❗
Расставил позицию, теперь Каллисто выигрывает. На слабом компьютере скорость расчета от 900 до 1200, на сильном эту позицию считает со скоростью больше 2000, может это повлияло.
То NS
В это ветке указан один из вариантов выигрыша при идеальной игре обеих сторон за 85 ходов, да 27-28 полуходов.09.09.2006 в 22:51 #361871Kallisto
УчастникНеплохо было бы выигрывать и выигранные позиции, учитывая низкую результативность в русских шашка
Сделаю игру по ЭБ, как описал NS. Тогда уж выигранные вряд ли выпустит.
Каллисто все партии играл на слабом компьютере
Может быть из-за этого так хорошо сыграли Тундра с Дамирой
10.09.2006 в 07:44 #361872NS
УчастникВ алгоритме естественно имел в виду — Выигрывающая оценка +inf-ply, проигрывающая -inf+ply
10.09.2006 в 18:30 #361873NS
УчастникПовторюсь — изменением ранга считается в том числе любой ход простой, неважно за какую сторону.
В этой позиции, после того как при точной игре белые и черные проведут по 2 дамки, еще 13 или 14 ходов (в идеальном случае!) нужно сделать только дамками, прежде чем начнет движение простая!
Если грубо, это примерно столько сколько возможных ходов в позиции где у обеих сторон по 2 дамки (т.е. примерно 20), в 13 или 14 степени. Это невообразимое число. Если 3-ник Петрова построить можно, зная принцип последовательного вытеснения, то здесь никак. 😉Вы неправильно считаете количество позиций

После того как белые и черные проведут по две дамки, при данном положении двух белых простых возможно (с учетом очереди хода)
2*30*29*28*27/(2!*2!) позиций (первый множитель 30 — так как два поля заняты белыми простыми)
То есть 328860 позиций… Так что всё не так уж и плохо
10.09.2006 в 18:52 #361874Kvadrat64
УчастникЯ не позиции считал, а сочетания ходов. После каждого полухода по 20 ходов, вот и получилось… много
10.09.2006 в 19:11 #361875NS
УчастникРеально много не получится, так как по полной программе заработает Хеш перекрестных позиций, и будет очень много отсечений…
(отсечения по типу ходов (ход простой, взятие), по повторению позиции, по оценке из Хеша, «невыигрывающих ходов» и т.д.)
28 полуходов в самом длинном варианте (до первого движения простой) Это немного.11.09.2006 в 05:49 #361876Kallisto
Участник28 полуходов в самом длинном варианте (до первого движения простой) Это немного.
28 полуходов в самом коротком варианте. Но все равно это немного.
Я выслал Kvadrat64 версию с этим алгоритмом. Теперь он может в этом убедиться. Проге нужно несколько секунд для нахождения продвижения простой. -
АвторСообщения
- Для ответа в этой теме необходимо авторизоваться.