Forchess - форум о заочных шахматах  

Вернуться   Forchess - форум о заочных шахматах > Заочные турниры и партии > Шахматные программы и движки > Турниры и сборки движков

Ответ
 
Опции темы Опции просмотра
Старый 30.01.2018, 14:39   #31
Maratka
Гроссмейстер
 
Аватар для Maratka
 
Регистрация: 11.04.2017
Адрес: РФ, Крым, Севастополь.
Сообщений: 1,555
Сказал(а) спасибо: 321
Поблагодарили 1,329 раз(а) в 878 сообщениях
Репутация: 54
По умолчанию Re: Тестирование неофициальных патчей

https://yadi.sk/d/Zbwh4nvZ3Ruyzb

Валушки еще "подтянул", для контрастности:

Код:
	Value(KnightValueMg) = Value(789);
	Value(KnightValueEg) = Value(873);
	Value(BishopValueMg) = Value(851);
	Value(BishopValueEg) = Value(916);
	Value(QueenValueMg) = Value(2496);
	Value(QueenValueEg) = Value(2616);
contempt - нуль за оба цвета, дабы не мешал чистоте опыта.
Maratka вне форума   Ответить с цитированием
Старый 30.01.2018, 15:40   #32
Maratka
Гроссмейстер
 
Аватар для Maratka
 
Регистрация: 11.04.2017
Адрес: РФ, Крым, Севастополь.
Сообщений: 1,555
Сказал(а) спасибо: 321
Поблагодарили 1,329 раз(а) в 878 сообщениях
Репутация: 54
По умолчанию Re: Тестирование неофициальных патчей

Да, забыл сказать:

Матч между собой проводить конечно же нужно (регресс-тесты еще никто не отменил), но мне лично для начала важнее прогнать тесты против Комодо.
IMHO, хватит и ~десятка позиций, где ферзь против трех легких фигур, с перевесом стороны с ферзем по мнению SF ~0,5 пешки.
Матч в десять кругов IMHO уже будет вполне достаточен. Но нужно учитывать, что Комодо очень слаб на минутном контроле, а потому нужно заряжать матч где-то от 15-20 минут на партию.

Проверяется отдельно Мастер, и отдельно Мастер с данным патчем.
Если получиv бонус - тогда уже можно прогнать и регрессы, но судя по ходу, который предложил sovaz1997, эти тесты покажут равенство +/- крошечную погрешность, т.к. на подавляющем большинстве тестовых позиций такого дикого перекоса материала не будет, а значит и эта ветка кода просто не будет работать, т.е. фактически на 99.99% позиций движки будут считать ровно одно и то же.
Maratka вне форума   Ответить с цитированием
Старый 30.01.2018, 17:19   #33
otodranik
Гроссмейстер
 
Аватар для otodranik
 
Регистрация: 25.01.2017
Сообщений: 1,213
Сказал(а) спасибо: 666
Поблагодарили 2,184 раз(а) в 917 сообщениях
Репутация: 97
По умолчанию Re: Тестирование неофициальных патчей

Первые итоги:
Код:
Games Completed = 1000 of 1000 (Avg game length = 30.543 sec)
Settings = Gauntlet/4MB/10000ms+100ms/M 480cp for 3 moves, D 120 moves/PGN:E:\Chess\LB\2moves_v1.pgn(32000)
Time = 6264 sec elapsed, 0 sec remaining
 1.  Master                   	500.0/1000	195-195-610  	(L: m=0 t=0 i=0 a=195)	(D: r=429 i=80 f=21 s=3 a=77)	(tpm=241.3 d=18.08 nps=1596602)
 2.  QBKn test                	500.0/1000	195-195-610  	(L: m=0 t=0 i=0 a=195)	(D: r=429 i=80 f=21 s=3 a=77)	(tpm=241.4 d=18.05 nps=1594917)
__________________
AMD Phenom II X6 1100T@3.3GHz
otodranik вне форума   Ответить с цитированием
2 пользователя(ей) сказали cпасибо:
ChessMan (30.01.2018), Maratka (30.01.2018)
Старый 30.01.2018, 17:21   #34
otodranik
Гроссмейстер
 
Аватар для otodranik
 
Регистрация: 25.01.2017
Сообщений: 1,213
Сказал(а) спасибо: 666
Поблагодарили 2,184 раз(а) в 917 сообщениях
Репутация: 97
По умолчанию Re: Тестирование неофициальных патчей

Нужно наиграть 10к партий с первым 10+0.1 контролем при хеше 4 мегабайта. Потом просуммирует Маратка, если пройдёт 1 контроль проверим на контроле 30+0.3 при хеше 64 мегабайта. Я, Маратка, Чессман в списке. Чессман может тестировать?
__________________
AMD Phenom II X6 1100T@3.3GHz
otodranik вне форума   Ответить с цитированием
Старый 30.01.2018, 17:52   #35
Maratka
Гроссмейстер
 
Аватар для Maratka
 
Регистрация: 11.04.2017
Адрес: РФ, Крым, Севастополь.
Сообщений: 1,555
Сказал(а) спасибо: 321
Поблагодарили 1,329 раз(а) в 878 сообщениях
Репутация: 54
По умолчанию Re: Тестирование неофициальных патчей

Цитата: Сообщение от otodranik
Первые итоги:
Играли то по какому справочнику? 2moves_v1.pgn - это ни о чем (как я и писал, движки тут будут практически равны, т.к. патченный SF просто не пойдет на размен "Ферзь за три легкие фигуры", даже если Мастер это будет настойчиво предлагать, а значит эти позиции по-факту практически никогда не встретятся. Но как тест для регресса, убедиться, что не стало хуже - оно будет нормально.

А вот пользу от патча нужно проверять на чем-то вроде:
https://yadi.sk/d/Q60LNxzT3RvRwD

Поставьте эти позции, благо их всего десять (первая - начальная), нужна она просто чтобы было нечетное количество позиций, и прикиньте, пойдут ли они для проверки патча (совершенно не настаиваю на именно этих позициях, вполне можно и другие).
Maratka вне форума   Ответить с цитированием
Старый 30.01.2018, 18:33   #36
Maratka
Гроссмейстер
 
Аватар для Maratka
 
Регистрация: 11.04.2017
Адрес: РФ, Крым, Севастополь.
Сообщений: 1,555
Сказал(а) спасибо: 321
Поблагодарили 1,329 раз(а) в 878 сообщениях
Репутация: 54
По умолчанию Re: Тестирование неофициальных патчей

Предлагаю пока что тесты не запускать:
Есть предположение, что более агрессвное изменение весов фигур даст гораздо более вкусный буст...
Хочу доиграть пока что одну партию (да, да, один -это не показатель, но тем не менее, пока что имеем):




В этой же позиции SF-Master проиграл две из двух.

_____
даже если будет ничья, это будет ничья, за которую боролся Komodo, а не SF. ;)
Maratka вне форума   Ответить с цитированием
Старый 30.01.2018, 19:16   #37
otodranik
Гроссмейстер
 
Аватар для otodranik
 
Регистрация: 25.01.2017
Сообщений: 1,213
Сказал(а) спасибо: 666
Поблагодарили 2,184 раз(а) в 917 сообщениях
Репутация: 97
По умолчанию Re: Тестирование неофициальных патчей

Цитата: Сообщение от Maratka
Играли то по какому справочнику? 2moves_v1.pgn - это ни о чем (как я и писал, движки тут будут практически равны, т.к. патченный SF просто не пойдет на размен "Ферзь за три легкие фигуры", даже если Мастер это будет настойчиво предлагать, а значит эти позиции по-факту практически никогда не встретятся. Но как тест для регресса, убедиться, что не стало хуже - оно будет нормально.

А вот пользу от патча нужно проверять на чем-то вроде:
https://yadi.sk/d/Q60LNxzT3RvRwD

Поставьте эти позции, благо их всего десять (первая - начальная), нужна она просто чтобы было нечетное количество позиций, и прикиньте, пойдут ли они для проверки патча (совершенно не настаиваю на именно этих позициях, вполне можно и другие).
Мы без этой книги никак не проверим на усиление. Тогда можно на стандратном материале в регресс уйти! 2moves_v1.pgn - это золотой стандарт тестирования. На аброке точно также будут тестировать. Шахматы - штука взаимосвязанная.
__________________
AMD Phenom II X6 1100T@3.3GHz
otodranik вне форума   Ответить с цитированием
Старый 30.01.2018, 20:54   #38
ChessMan
Мастер
ТС
 
Аватар для ChessMan
 
Регистрация: 04.01.2017
Сообщений: 894
Сказал(а) спасибо: 591
Поблагодарили 1,454 раз(а) в 615 сообщениях
Репутация: 96
По умолчанию Re: Тестирование неофициальных патчей

Цитата: Сообщение от otodranik
Нужно наиграть 10к партий с первым 10+0.1 контролем при хеше 4 мегабайта. Потом просуммирует Маратка, если пройдёт 1 контроль проверим на контроле 30+0.3 при хеше 64 мегабайта. Я, Маратка, Чессман в списке. Чессман может тестировать?
Я пока не могу тестировать. Нужно с партиями на ИКЧФ разобраться.

Развернуть для просмотра

[свернуть]
__________________
ICCF 2426. AMD FX-8150 @4.0 GHz
ChessMan вне форума   Ответить с цитированием
Старый 30.01.2018, 22:15   #39
Maratka
Гроссмейстер
 
Аватар для Maratka
 
Регистрация: 11.04.2017
Адрес: РФ, Крым, Севастополь.
Сообщений: 1,555
Сказал(а) спасибо: 321
Поблагодарили 1,329 раз(а) в 878 сообщениях
Репутация: 54
По умолчанию Re: Тестирование неофициальных патчей

Цитата: Сообщение от otodranik
Мы без этой книги никак не проверим на усиление.
Мы по ЭТОЙ книге не проверим усиления. Ибо усиление данного патча - это точечная заточка по вполне определенным позициям, когда ферзь одной стороны играет против трех легких фигур другой: таких партий одна хорошо если на тысячу, т.е. усиления будет доли Elo, и его никто не примет.

А вот если приподнести патч как бакфис, а именно: в некоторых позицях SF не тянет против Komodo (что и доказали дополнительные партии в TCEC два месяца назад) - то патч тогда будет проверен по специальной базе подобных перекошенных позиций (где вероятно покажет усиление), после чего на 2_movies - регресс, который покажет отсутствие просадок на остальных позициях (т.е. "шахматах в целом") - и вот тогда про него уже можно говорить, что де он "полезный").

Цитата: Сообщение от otodranik
Шахматы - штука взаимосвязанная.
Не в данном случае. Код такой: этот патч выполняется только тогда, когда на доске есть ферзь против трех легких фигур. Иначе говоря, данный патч не влияет с практической точки зрения ни на что, кроме позиций с ферзем против двух слонов и конь или двух коней и слон. Для всех остальных позиций SF c этим патчем и без него неотличим.

____
Не знаю, кому как, а мне лично не понравилось, когда мне команда TCEC в морду этой партией тыкала, мол "SF - типичный третьеразрядник, и в финале ему делать нечего". За всех утверждать не берусь, и допускаю, что тебе данный эпизод понравился. Но не мне!

Последний раз редактировалось Maratka; 30.01.2018 в 22:52.
Maratka вне форума   Ответить с цитированием
Старый 30.01.2018, 22:32   #40
Maratka
Гроссмейстер
 
Аватар для Maratka
 
Регистрация: 11.04.2017
Адрес: РФ, Крым, Севастополь.
Сообщений: 1,555
Сказал(а) спасибо: 321
Поблагодарили 1,329 раз(а) в 878 сообщениях
Репутация: 54
По умолчанию Re: Тестирование неофициальных патчей

Цитата: Сообщение от Maratka
Хочу доиграть пока что одну партию (да, да, один -это не показатель, но тем не менее, пока что имеем):
Партию выиграл.
Maratka вне форума   Ответить с цитированием
Старый 30.01.2018, 22:43   #41
Maratka
Гроссмейстер
 
Аватар для Maratka
 
Регистрация: 11.04.2017
Адрес: РФ, Крым, Севастополь.
Сообщений: 1,555
Сказал(а) спасибо: 321
Поблагодарили 1,329 раз(а) в 878 сообщениях
Репутация: 54
По умолчанию Re: Тестирование неофициальных патчей

Цитата: Сообщение от Maratka
Есть предположение, что более агрессивное изменение весов фигур даст гораздо более вкусный буст...
В общем, для теста предлагаю вот эти варианты движков:
https://yadi.sk/d/r5Y52_a73RvvCt

Но помимо движков желательно еще бы иметь и хорошую базу позиций, где у одной стороны лишний ферзь, а у другой - лишние три легкие фигуры.
Моя база на десяток партий все же маловата, как для полноценного теста.
Но за неимением, выкладываю:
https://yadi.sk/d/Q60LNxzT3RvRwD

Пополнение позиций приветствуется. Условие - по результатам секундного анализа SF'шем позиция должна быть ~0.5 пешки в ту или иную сторону.
Maratka вне форума   Ответить с цитированием
Старый 31.01.2018, 12:26   #42
Maratka
Гроссмейстер
 
Аватар для Maratka
 
Регистрация: 11.04.2017
Адрес: РФ, Крым, Севастополь.
Сообщений: 1,555
Сказал(а) спасибо: 321
Поблагодарили 1,329 раз(а) в 878 сообщениях
Репутация: 54
По умолчанию Re: Тестирование неофициальных патчей

Цитата: Сообщение от sovaz1997
Но данный компактный вариант, все-таки, выполняется немного дольше.
Уточнил на работе:

Написал некий код:

if (us == WHITE)
{
contempt = Options["Contempt for white"] * PawnValueEg / 100;
}
else
{
contempt = Options["Contempt for black"] * PawnValueEg / 100; // From centipawns

Его переписали как:

int x = Options["Contempt for White"] * PawnValueEg / 100; // From centipawns
int y = Options["Contempt for Black"] * PawnValueEg / 100; // From centipawns
int contempt = (us == WHITE ? x : y);

Смысл очевидно одинаковый, но вторая ветка красивее
С другой стороны, в ней лишние два присваивания: "x =" и "y ="

Какой код быстрее?
Т.е. компилятор такое соптимизировать умеет?

Ответ:
По скорости скорее всего будет одинаково, т.к. компилятор соптимизирует в один и тот же код
Присваивания будут идти не в память, а в регистры

Для x и y я бы ещё const поставил
const int x = Options["Contempt for White"] PawnValueEg / 100; // From centipawns
const int y = Options["Contempt for Black"] PawnValueEg / 100; // From centipawns
Maratka вне форума   Ответить с цитированием
Пользователь сказал cпасибо:
sovaz1997 (31.01.2018)
Старый 31.01.2018, 15:54   #43
otodranik
Гроссмейстер
 
Аватар для otodranik
 
Регистрация: 25.01.2017
Сообщений: 1,213
Сказал(а) спасибо: 666
Поблагодарили 2,184 раз(а) в 917 сообщениях
Репутация: 97
По умолчанию Re: Тестирование неофициальных патчей

Маратка, начал Я разработку книги для теста твоего патча! Позиции будут типа:
rnb1kbnr/pppppppp/8/8/8/8/PPPPPPPP/RNQ1K2R w KQkq - 0 1
r2qkb1r/pppppp1p/6p1/8/8/3P4/PPP1PPPP/RNB1KBNR w KQkq - 0 1
r2qkb1r/pppppppp/8/8/8/8/PPPPPPPP/RNB1KBNR w KQkq - 0 1
__________________
AMD Phenom II X6 1100T@3.3GHz
otodranik вне форума   Ответить с цитированием
2 пользователя(ей) сказали cпасибо:
ChessMan (02.02.2018), Maratka (31.01.2018)
Старый 01.02.2018, 18:26   #44
Maratka
Гроссмейстер
 
Аватар для Maratka
 
Регистрация: 11.04.2017
Адрес: РФ, Крым, Севастополь.
Сообщений: 1,555
Сказал(а) спасибо: 321
Поблагодарили 1,329 раз(а) в 878 сообщениях
Репутация: 54
По умолчанию Re: Тестирование неофициальных патчей

Похоже какая-то бага в коде:
Написал:
Код:
if (pieceCount[Us][QUEEN] - pieceCount[Them][QUEEN] == 1 && (pieceCount[Them][KNIGHT] + pieceCount[Them][BISHOP] - pieceCount[Us][KNIGHT] - pieceCount[Us][BISHOP]) == 3)

{
		Value(KnightValueMg) = Value(2000);
		Value(KnightValueEg) = Value(2000);
		Value(BishopValueMg) = Value(2000);
		Value(BishopValueEg) = Value(2000);
		Value(QueenValueMg) = Value(200);
		Value(QueenValueEg) = Value(200);
}

Результат: играет примерно так, как и до изменения (те же баллы +/- погрешность), хотя тут должно быть нуль очков, ибо ферзи по цене пешки - значит он будет менять его на слона или коня, который на порядок дороже, ну и результат партии предсказать несложно.
Maratka вне форума   Ответить с цитированием
Старый 02.02.2018, 19:39   #45
ChessMan
Мастер
ТС
 
Аватар для ChessMan
 
Регистрация: 04.01.2017
Сообщений: 894
Сказал(а) спасибо: 591
Поблагодарили 1,454 раз(а) в 615 сообщениях
Репутация: 96
По умолчанию Re: Тестирование неофициальных патчей

Цитата: Сообщение от Maratka
Похоже какая-то бага в коде:
Написал:
Код:
if (pieceCount[Us][QUEEN] - pieceCount[Them][QUEEN] == 1 && (pieceCount[Them][KNIGHT] + pieceCount[Them][BISHOP] - pieceCount[Us][KNIGHT] - pieceCount[Us][BISHOP]) == 3)

{
		Value(KnightValueMg) = Value(2000);
		Value(KnightValueEg) = Value(2000);
		Value(BishopValueMg) = Value(2000);
		Value(BishopValueEg) = Value(2000);
		Value(QueenValueMg) = Value(200);
		Value(QueenValueEg) = Value(200);
}

Результат: играет примерно так, как и до изменения (те же баллы +/- погрешность), хотя тут должно быть нуль очков, ибо ферзи по цене пешки - значит он будет менять его на слона или коня, который на порядок дороже, ну и результат партии предсказать несложно.
А что Вас не устраивает в изменении "валушек" на постоянной основе? Оно вроде давало прирост ЭЛО или я ошибаюсь?

=======
Раньше имбаланс Ферзь против легких фигур был такой (почти, там ещё изменения есть):

// Special handling of Queen vs. Minors
if (pieceCount[Us][QUEEN] == 1 && pieceCount[Them][QUEEN] == 0)
bonus += QueenMinorsImbalance[pieceCount[Them][KNIGHT] + pieceCount[Them][BISHOP]];


пока его не удалили
https://github.com/official-stockfis...be07fa91d2L115


Кстати, когда игралась та дополнительная партия?
__________________
ICCF 2426. AMD FX-8150 @4.0 GHz
ChessMan вне форума   Ответить с цитированием
Ответ


Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 
Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход


Текущее время: 00:47. Часовой пояс GMT +3.


Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2018, vBulletin Solutions, Inc. Перевод: zCarot
Рейтинг@Mail.ru