Автор |
Сообщение |
Kallisto |
|
Тема сообщения:
Отправлено: Авг 20, 2007 - 05:34 PM
|
|
Зарегистрирован: Авг 18, 2003
Сообщений: 747
|
|
Нет. Таким образом Каллисто просто пытается найти лучший ход в позициях из ЭБ. |
|
|
|
|
|
NS |
|
Тема сообщения:
Отправлено: Авг 20, 2007 - 05:02 PM
|
|
Зарегистрирован: Авг 22, 2006
Сообщений: 671
Откуда : Санкт-Петербург
|
|
Цитата: Может здесь собака зарыта? Каллисто иногда "думает" в позициях из ЭБ, и оценки ставит -300 и т.д. Может она "теряет" базу?
Нет, скорей всего это попытка выиграть у слабых соперников без ЭБ. |
|
|
|
|
|
Kvadrat |
|
Тема сообщения:
Отправлено: Авг 20, 2007 - 04:01 PM
|
|
Зарегистрирован: Дек 16, 2006
Сообщений: 405
|
|
NS писал(а):
Зачем останавливать? В ничейной по ЭБ позиции движки ходят моментально.
Может здесь собака зарыта? Каллисто иногда "думает" в позициях из ЭБ, и оценки ставит -300 и т.д. Может она "теряет" базу? |
_________________ Пользуюсь всеми доступными программами
|
|
|
|
|
NS |
|
Тема сообщения:
Отправлено: Авг 20, 2007 - 07:23 AM
|
|
Зарегистрирован: Авг 22, 2006
Сообщений: 671
Откуда : Санкт-Петербург
|
|
Цитата: Как принимается решение о ничье в матче между двумя разными движками? GUI или взаимное согласие движков?
Если GUI - предлагаю останавливать партию в момент возникновения на доске ничейной позиции из ЭБ.
Зачем останавливать? В ничейной по ЭБ позиции движки ходят моментально. То есть в партии и так практически сразу фиксируется ничья.
В протоколе движков нет команды для предложения ничьи. |
|
|
|
|
|
Kvadrat |
|
Тема сообщения:
Отправлено: Авг 19, 2007 - 08:54 PM
|
|
Зарегистрирован: Дек 16, 2006
Сообщений: 405
|
|
Как принимается решение о ничье в матче между двумя разными движками? GUI или взаимное согласие движков?
Если GUI - предлагаю останавливать партию в момент возникновения на доске ничейной позиции из ЭБ. |
_________________ Пользуюсь всеми доступными программами
|
|
|
|
|
NS |
|
Тема сообщения:
Отправлено: Авг 18, 2007 - 08:00 AM
|
|
Зарегистрирован: Авг 22, 2006
Сообщений: 671
Откуда : Санкт-Петербург
|
|
На Athlon64 x2 3800+ (2Ггц)
Я запускал Perft с включенной отладкой и провркой на переполнение и выходы за границы.
Без отладки - Скорость с исполнением хода на последнем уровне (по Perft) около 1500 kNPS, без исполнения - 2000 kNPS.
Есно в игровой программе скорость значительно меньше. (меньше 1000 kNPS)
Реально можно ускорить очень сильно. У меня скорость программы раза в 2.5 меньше предельно возможной (Нужно переписать генератор под списки) |
|
|
|
|
|
AlexanderS |
|
Тема сообщения:
Отправлено: Авг 18, 2007 - 05:15 AM
|
|
Зарегистрирован: Авг 29, 2002
Сообщений: 845
Откуда : Якутск
|
|
NS писал(а): Время - это 15 секунд.
Это на каком процессоре? |
|
|
|
|
|
Kallisto |
|
Тема сообщения:
Отправлено: Авг 17, 2007 - 08:38 PM
|
|
Зарегистрирован: Авг 18, 2003
Сообщений: 747
|
|
Kvadrat писал(а): Kallisto писал(а): В выиграных позициях эта версия делает случайные ходы.
Видимо, все-таки не во всех выигранных? Ошибка идет еще со старых версий.
Это совсем другая ошибка. |
|
|
|
|
|
Kvadrat |
|
Тема сообщения:
Отправлено: Авг 17, 2007 - 07:58 PM
|
|
Зарегистрирован: Дек 16, 2006
Сообщений: 405
|
|
Kallisto писал(а): В выиграных позициях эта версия делает случайные ходы.
Видимо, все-таки не во всех выигранных? Ошибка идет еще со старых версий. |
_________________ Пользуюсь всеми доступными программами
|
|
|
|
|
Kvadrat |
|
Тема сообщения:
Отправлено: Авг 17, 2007 - 07:52 PM
|
|
Зарегистрирован: Дек 16, 2006
Сообщений: 405
|
|
NS писал(а): Цитата: Это из-за ошибки при работе с ЭБ. В выиграных позициях эта версия делает случайные ходы. Жутко повезло, что это не вылезло в матче с Королевым
Равный счет в матче Каллисто3 - Каллисто3.22 говорит о том что Каллисто не умеет защищаться в проигранных по ЭБ позициях.
Или выиграть не может? Буквально только, что пробивал по базе дебют 1.h2-h6 h6-h4 из соседней ветки и наткнулся на ужасную партию. |
_________________ Пользуюсь всеми доступными программами
|
|
|
|
|
NS |
|
Тема сообщения:
Отправлено: Авг 17, 2007 - 05:15 PM
|
|
Зарегистрирован: Авг 22, 2006
Сообщений: 671
Откуда : Санкт-Петербург
|
|
Код: Depth= 7 Time= 121 Nodes= 190146
Depth= 8 Time= 647 Nodes= 929902
Depth= 9 Time= 3244 Nodes= 4570615
Depth=10 Time= 16106 Nodes= 22442551
Depth=11 Time= 84631 Nodes= 110877932
Время - это 15 секунд.
Очень странно, но сейчас всё нормально. Хотя ничего в программе не менял... |
|
|
|
|
|
AlexanderS |
|
Тема сообщения:
Отправлено: Авг 17, 2007 - 02:03 PM
|
|
Зарегистрирован: Авг 29, 2002
Сообщений: 845
Откуда : Якутск
|
|
NS писал(а): Пул
Код: Depth= 8 Time= 568 Nodes= 929905
Depth= 9 Time= 2882 Nodes= 4570667
Depth=10 Time= 14392 Nodes= 22450628
Либо у меня,либо в Каллисто ошибка.
8 - 929902
9 - 4570615
10 - 22442567
У нас с Каллисто совпадение до 10, дальше видимо расхождение из-за разного алгоритма генерации (у меня дубликаты ходов встречаются при взятии дамками).
14392 это в каких единицах? В секундах это сколько будет |
|
|
|
|
|
NS |
|
Тема сообщения:
Отправлено: Авг 17, 2007 - 09:54 AM
|
|
Зарегистрирован: Авг 22, 2006
Сообщений: 671
Откуда : Санкт-Петербург
|
|
Цитата: Это из-за ошибки при работе с ЭБ. В выиграных позициях эта версия делает случайные ходы. Жутко повезло, что это не вылезло в матче с Королевым
Равный счет в матче Каллисто3 - Каллисто3.22 говорит о том что Каллисто не умеет защищаться в проигранных по ЭБ позициях. |
|
|
|
|
|
NS |
|
Тема сообщения:
Отправлено: Авг 17, 2007 - 09:44 AM
|
|
Зарегистрирован: Авг 22, 2006
Сообщений: 671
Откуда : Санкт-Петербург
|
|
Если интересен алгоритм отсечений -
В Search параметр - были ли взятия / ход простой на ветви.
Если были и возможен доступ к ЭБ, то обращаемся, считаем расстояние до ЭБ (так-же как и расстояние до мата). И соответственно не считаем дальше.
Кешируем выигранную оценку по ЭБ наоборот, только если взятий/хода простой не было.
отсечение по оценке в ЭБ не равной оценке в корне делаем средствами стандартной Альфа-Беты. (это пока не было взятий/первращений)
Если по ЭБ в узле дерева ничья - то отсекаем сразу в любом случае.
Если выигранно/проигранно то даем например 1000 за выигранную и -1000 за проигранную, и если
((ED_Score>0) And (ED_Score>beta))
OR
((ED_Score<0) And (ED_Score<alfa))
// условие обязательно жесткое, иначе будут неправильные отсечения.
Тогда отсекаем. Независимо от того, PV/не PV.
Вроде ничего не забыл... реально несколько строк кода. |
|
|
|
|
|
NS |
|
Тема сообщения:
Отправлено: Авг 17, 2007 - 09:19 AM
|
|
Зарегистрирован: Авг 22, 2006
Сообщений: 671
Откуда : Санкт-Петербург
|
|
Цитата: Т.е. результат ЭБ - это просто бонус внутри ОФ? А в переборе для отсечений ЭБ используется?
Нет в 04.02 не отсекаю, сегодня если будет время добавлю отсечения по ЭБ. |
|
|
|
|
|
|