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

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

Ответ
 
Опции темы Опции просмотра
Старый 15.03.2020, 12:30   #5761
Alex_Zet
Эксперт
ТС
 
Аватар для Alex_Zet
 
Регистрация: 01.12.2016
Сообщений: 5,696
Сказал(а) спасибо: 264
Поблагодарили 1,517 раз(а) в 1,153 сообщениях
Записей в дневнике: 15
Репутация: Alex_Zet отключил(а) отображение уровня репутации
По умолчанию Re: LCZero

Цитата: Сообщение от Alex_Zet
А здесь ведь кроме Маратки и визвеза есть и ещё поклонники на халяву срубить бабла.
Думаю что пост удалят.

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

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

Всегда найдется пара фармацевтов. Стоит ли этому удивляться.
Alex_Zet вне форума   Ответить с цитированием
Старый 15.03.2020, 12:39   #5762
svoitsl
Гроссмейстер
 
Аватар для svoitsl
 
Регистрация: 19.04.2017
Сообщений: 4,734
Сказал(а) спасибо: 1,204
Поблагодарили 2,853 раз(а) в 1,885 сообщениях
Репутация: 159
По умолчанию Re: LCZero

Конечно, можно с помощью примерно равноценных разменов довольно быстро добраться до таблиц, но проблема в том, что эти размены считает равноценными Стокфиш и совсем не обязательно, что так думает его оппонент, он может выбрать и другое продолжение. Не думаю, чтобы ничейная смерть грозила шахматам при нашей жизни. Тем более, что закон Мура уже вроде и не закон вовсе и рост производительности сильно замедляется
svoitsl вне форума   Ответить с цитированием
2 пользователя(ей) сказали cпасибо:
Alex_Lk (15.03.2020), Maratka (15.03.2020)
Старый 15.03.2020, 12:50   #5763
Maratka
Эксперт
 
Аватар для Maratka
 
Регистрация: 11.04.2017
Адрес: РФ, Крым, Севастополь.
Сообщений: 11,849
Сказал(а) спасибо: 3,311
Поблагодарили 5,952 раз(а) в 4,245 сообщениях
Репутация: 253
По умолчанию Re: LCZero

Вышел релиз 0.24


v0.24.0

@mooskagh mooskagh released this 4 days ago · 14 commits to master since this release

New parameter --max-out-of-order-evals-factor replaces --max-out-of-order-evals that was introduced in v0.24.0-rc3 and provides the factor to multiply the maximum batch size to set maximum number out-of-order evals per batch. The default value of 1.0 keeps the behavior of previous releases.


Bug fix for hangs with very early stop command from non-conforming uci hosts.
Maratka вне форума   Ответить с цитированием
Пользователь сказал cпасибо:
Владимир001 (15.03.2020)
Старый 15.03.2020, 13:23   #5764
svoitsl
Гроссмейстер
 
Аватар для svoitsl
 
Регистрация: 19.04.2017
Сообщений: 4,734
Сказал(а) спасибо: 1,204
Поблагодарили 2,853 раз(а) в 1,885 сообщениях
Репутация: 159
По умолчанию Re: LCZero

Про релиз уже 3-е сообщение, как он вышел скоро уже неделя будет
svoitsl вне форума   Ответить с цитированием
Пользователь сказал cпасибо:
Кевин (15.03.2020)
Старый 15.03.2020, 13:44   #5765
alchemist888
КМС
 
Аватар для alchemist888
 
Регистрация: 25.04.2019
Сообщений: 674
Сказал(а) спасибо: 293
Поблагодарили 641 раз(а) в 345 сообщениях
Репутация: 61
По умолчанию Re: LCZero

Неправильно полагать, что многократное увеличение мощностей даст возможность движку не проигрывать.
Возьмем, условно, что в шахматах в среднем 20-ть возможных ходов в каждой позиции, тогда, чтобы чистым перебором посчитать на 5 ходов вперед потребуется 10 триллионов узлов, или другими словами около 20-и часов на скоростях Стокфиша в TCEC 17. Немного? Если попытаемся продвинуться дальше еще на один ход, то значение уже будет - 1 год расчетов на железе TCEC.
Грубый вывод такой: eсли движок не может правильно оценить позицию в течении нескольких ходов, то большой перебор вариантов ему не поможет.
alchemist888 вне форума   Ответить с цитированием
3 пользователя(ей) сказали cпасибо:
Alex_Zet (15.03.2020), Maratka (28.08.2020), Владимир001 (15.03.2020)
Старый 15.03.2020, 14:25   #5766
Кевин
Гроссмейстер
 
Аватар для Кевин
 
Регистрация: 02.07.2016
Адрес: Сахалин
Сообщений: 4,792
Сказал(а) спасибо: 5,116
Поблагодарили 14,196 раз(а) в 4,064 сообщениях
Записей в дневнике: 251
Репутация: Кевин отключил(а) отображение уровня репутации
По умолчанию Re: LCZero

v0.24.1

Цитата:
Fix issues where logitq was being passed as drawscore and logitq wasn't passed to some GetQ calls. Causing major performance issues when either setting was non-default.
https://github.com/LeelaChessZero/lc0/releases
__________________
ICCF SIM 2547, International Arbiter, ICCF "Promotional Tournaments - Server" Organiser, RCCA Chess 960 Champion, ICCF 4th Chess 960 World Cup Final Winner.
Кевин вне форума   Ответить с цитированием
3 пользователя(ей) сказали cпасибо:
byan_mivv (15.03.2020), Maratka (15.03.2020), svoitsl (15.03.2020)
Старый 15.03.2020, 15:05   #5767
Maratka
Эксперт
 
Аватар для Maratka
 
Регистрация: 11.04.2017
Адрес: РФ, Крым, Севастополь.
Сообщений: 11,849
Сказал(а) спасибо: 3,311
Поблагодарили 5,952 раз(а) в 4,245 сообщениях
Репутация: 253
По умолчанию Re: LCZero

Цитата: Сообщение от alchemist888
Грубый вывод такой: eсли движок не может правильно оценить позицию в течении нескольких ходов, то большой перебор вариантов ему не поможет.
Ну так потому и существует обрезание ходов: движок быстро на низкой глубине оценивает ходы, и углубляется в наиболее перспективные ветки.

Однако при этом неправильно не учитывать рост мощностей, они дают результат, и тесты проводились неоднократно. SF например имея больше потоков может проработать малоперспективные на низких глубинах ветки, которые могут оказаться не столь плохими, LZ - досчитаться до более точных коэффициентов (собственно их наличие и обуславливает рост интеллекта сети по мере роста ее размерности).
Maratka вне форума   Ответить с цитированием
Старый 15.03.2020, 15:06   #5768
Alex_Zet
Эксперт
ТС
 
Аватар для Alex_Zet
 
Регистрация: 01.12.2016
Сообщений: 5,696
Сказал(а) спасибо: 264
Поблагодарили 1,517 раз(а) в 1,153 сообщениях
Записей в дневнике: 15
Репутация: Alex_Zet отключил(а) отображение уровня репутации
По умолчанию Re: LCZero

Цитата: Сообщение от alchemist888
Грубый вывод такой: eсли движок не может правильно оценить позицию в течении нескольких ходов, то большой перебор вариантов ему не поможет.
Хочется вам верить.

Но меня смущает одна вещь. В партии Лила CPU - Сток, где Лила проиграла, там только после 111. f5 оценка сразу же рухнула, Лила не просчитала из за слабой скорости 15 knps при Nodes 222.1K и TB Hit 358 , а Сток при 203 Mnps сразу показал -3.90, при этом показал Nodes 2956261492 и TB Hits 7.8M.
То есть Сток выиграл не за счет патчей и собственного кода, а лишь благодаря железу. Конечно я преувеличил про шахматную смерть, но проблема очень выпукла и наглядна. Движок имеющий больше ресурсов, будет обыгрывать равный себе по силе движок. При этом здесь на форуме многие говорят что в этом проблемы нет, это дескать шоу, а я утверждаю что проблема есть и если вам нравится шоу, то почему тогда тем кому оно не нравится должны его смотреть. Целесообразней шоу смотреть в своей кухне, как делает Маратка. За что кстати я его уважаю.
Alex_Zet вне форума   Ответить с цитированием
Пользователь сказал cпасибо:
Владимир001 (15.03.2020)
Старый 15.03.2020, 15:15   #5769
Кевин
Гроссмейстер
 
Аватар для Кевин
 
Регистрация: 02.07.2016
Адрес: Сахалин
Сообщений: 4,792
Сказал(а) спасибо: 5,116
Поблагодарили 14,196 раз(а) в 4,064 сообщениях
Записей в дневнике: 251
Репутация: Кевин отключил(а) отображение уровня репутации
По умолчанию Re: LCZero

Интересно: установил новую версию Лилы, в неё добавил ту же самую сеть, что была у меня на предыдущей версии. Однако название при добавлении движка в оболочку (и при запуске в консоли) LC0+git стало другое (цифры иные, хотя сеть та же).

Это фича?
__________________
ICCF SIM 2547, International Arbiter, ICCF "Promotional Tournaments - Server" Organiser, RCCA Chess 960 Champion, ICCF 4th Chess 960 World Cup Final Winner.
Кевин вне форума   Ответить с цитированием
Старый 15.03.2020, 15:53   #5770
alchemist888
КМС
 
Аватар для alchemist888
 
Регистрация: 25.04.2019
Сообщений: 674
Сказал(а) спасибо: 293
Поблагодарили 641 раз(а) в 345 сообщениях
Репутация: 61
По умолчанию Re: LCZero

Цитата: Сообщение от Alex_Zet
Но меня смущает одна вещь. В партии Лила CPU - Сток, где Лила проиграла, там только после 111. f5 оценка сразу же рухнула, Лила не просчитала из за слабой скорости 15 knps при Nodes 222.1K и TB Hit 358 , а Сток при 203 Mnps сразу показал -3.90, при этом показал Nodes 2956261492 и TB Hits 7.8M.
То есть Сток выиграл не за счет патчей и собственного кода, а лишь благодаря железу.
Ну нет, не по этому. Просто данная позиция намного лучше подходит AB движкам. Тут именно нужно посчитать варианты, что Stockfish умеет лучше всех.

Ниже тест предложенной позиции. 1 поток, 1-а секунда на анализ:

alchemist888 вне форума   Ответить с цитированием
Пользователь сказал cпасибо:
Maratka (15.03.2020)
Старый 15.03.2020, 16:06   #5771
alchemist888
КМС
 
Аватар для alchemist888
 
Регистрация: 25.04.2019
Сообщений: 674
Сказал(а) спасибо: 293
Поблагодарили 641 раз(а) в 345 сообщениях
Репутация: 61
По умолчанию Re: LCZero

Цитата: Сообщение от Maratka
Ну так потому и существует обрезание ходов: движок быстро на низкой глубине оценивает ходы, и углубляется в наиболее перспективные ветки.
Вот потому и сделал акцент на правильной оценке позиции. Если алгоритм отсечения не позволяет в течении нескольких ходов оценить позицию верно (оценочная функция заводит не туда), то даже колоссальные мощности далеко не всегда помогут. Особенно это касается дебютных и миттельшпильных позиций, в которых недостаточно конкретики для AB движков.
Конечно, чем больше мощностей, тем выше шанс найти что-то лучшее, в моем сообщении не было и намека, что железо не дает какую-либо прибавку. Однако, железо не способно решить все проблемы.
alchemist888 вне форума   Ответить с цитированием
Пользователь сказал cпасибо:
Maratka (15.03.2020)
Старый 15.03.2020, 16:14   #5772
Maratka
Эксперт
 
Аватар для Maratka
 
Регистрация: 11.04.2017
Адрес: РФ, Крым, Севастополь.
Сообщений: 11,849
Сказал(а) спасибо: 3,311
Поблагодарили 5,952 раз(а) в 4,245 сообщениях
Репутация: 253
По умолчанию Re: LCZero

В этом плане совершенно согласен.
Только мне кажется, там несколько иначе реализация: сначала полный перебор на 2-3 хода, по его итогам - оценка, и в дальнейшем уже включается обрезание веток.

Возможно даже двухярусная система, вида полный перебор на 2-3 хода, выбор 10 лучших из 30 имеющихся физически, обрезание (но поверхностное), за счет чего достигается глубина ну скажем 10, явно недоступная при полном переборе вообще без обрезания ходов, и далее - проработка 2-3 самых перспективных ходов.

Кстати отсюда как я вижу, и возможен рост движов при увеличении кол-ва потоков - после первого обрезания оставшиеся 7-8 потенциально не лучших, но приемлемых ходов можно продолжить анализировать низким приоритетом: даже если оно не существует в коде, оно вполне допустимо: выделить жалкие 10% ядер на второстепенные ветки, когда у нас ядер под сотню вполне реально без заметного ухудшения проработки основных веток.
Maratka вне форума   Ответить с цитированием
Старый 15.03.2020, 16:16   #5773
Maratka
Эксперт
 
Аватар для Maratka
 
Регистрация: 11.04.2017
Адрес: РФ, Крым, Севастополь.
Сообщений: 11,849
Сказал(а) спасибо: 3,311
Поблагодарили 5,952 раз(а) в 4,245 сообщениях
Репутация: 253
По умолчанию Re: LCZero

Цитата: Сообщение от alchemist888
Ниже тест предложенной позиции. 1 поток, 1-а секунда на анализ:
Кстати, как оно ставится в оболочке ChessBase?
Maratka вне форума   Ответить с цитированием
Старый 15.03.2020, 16:19   #5774
Corrs
Гроссмейстер
 
Аватар для Corrs
 
Регистрация: 04.04.2019
Сообщений: 2,306
Сказал(а) спасибо: 2,100
Поблагодарили 2,294 раз(а) в 1,175 сообщениях
Репутация: 240
По умолчанию Re: LCZero

нажал, через секунду выключил
Corrs вне форума   Ответить с цитированием
Старый 15.03.2020, 16:21   #5775
alchemist888
КМС
 
Аватар для alchemist888
 
Регистрация: 25.04.2019
Сообщений: 674
Сказал(а) спасибо: 293
Поблагодарили 641 раз(а) в 345 сообщениях
Репутация: 61
По умолчанию Re: LCZero

Цитата: Сообщение от Maratka
Кстати, как оно ставится в оболочке ChessBase?
Game -> Levels -> Fixed time... -> устанавливаем значение в секундах.
Минус в том, что движок будет делать ход по истечению времени.
Вообще, я на скрине без этой функции сделал, просто обрезал часть экрана примерно через 1 секунду.

Цитата: Сообщение от Maratka
Только мне кажется, там несколько иначе реализация: сначала полный перебор на 2-3 хода, по его итогам - оценка, и в дальнейшем уже включается обрезание веток.
Сомневаюсь, что именно так. Потому как, условно, перебор на 2 хода уже будет стоить 160 kn, когда полный перебор 3-х ходов 64 Mn. Можно ошибаться в конкретных цифрах, но порядки значений должны быть примерно такими.
Пусть лучше те кто хорошо разбираются в теме ответят. Но мы уже в оффтоп пошли
alchemist888 вне форума   Ответить с цитированием
2 пользователя(ей) сказали cпасибо:
Maratka (15.03.2020), Владимир001 (15.03.2020)
Старый 15.03.2020, 17:06   #5776
Maratka
Эксперт
 
Аватар для Maratka
 
Регистрация: 11.04.2017
Адрес: РФ, Крым, Севастополь.
Сообщений: 11,849
Сказал(а) спасибо: 3,311
Поблагодарили 5,952 раз(а) в 4,245 сообщениях
Репутация: 253
По умолчанию Re: LCZero

Спасибо!
А разное время разным движкам можно задать?
Я у себя эту опцию находил в матче движков, но походу она не работает (Fritz 15).
Maratka вне форума   Ответить с цитированием
Старый 15.03.2020, 17:11   #5777
Maratka
Эксперт
 
Аватар для Maratka
 
Регистрация: 11.04.2017
Адрес: РФ, Крым, Севастополь.
Сообщений: 11,849
Сказал(а) спасибо: 3,311
Поблагодарили 5,952 раз(а) в 4,245 сообщениях
Репутация: 253
По умолчанию Re: LCZero

Цитата: Сообщение от alchemist888
Просто данная позиция намного лучше подходит AB движкам. Тут именно нужно посчитать варианты, что Stockfish умеет лучше всех.
Вообще интересно, как оно ложится на типичную партию...
Считать то варианты нужно вообще говоря всегда. ;)
Но против LZ позиции зачастую таковы, что считать там SF'шу либо нечего, либо бесполезно. С другой стороны, регулярно открываются именно вот такие "счетные" победы, т.е. LZ откровенно тупит. Но есть и позиционные зевки SF, ровно также выглядящие на графе: соперник начал резко увеличивать оценку за себя, а SF это видит лишь через 2-3, а то и 10-15 ходов.

Можно ли отсюда считать, что победа любого движка - это зевок соперника, или таки есть некоторое общее непонимание позиции одной из сторон? Ведь часто есть и накопительный рост оценки от +0,5 до +10 (т.е фактически почти всегда -выигрыш сильнейшей стороны), а не только обвалы, как в примере выше?

И если есть некое общее непонимание, возможно ли найти его математическое описание, с тем, чтобы его избегать (касается обоих сторон)?
Maratka вне форума   Ответить с цитированием
Старый 15.03.2020, 18:06   #5778
alchemist888
КМС
 
Аватар для alchemist888
 
Регистрация: 25.04.2019
Сообщений: 674
Сказал(а) спасибо: 293
Поблагодарили 641 раз(а) в 345 сообщениях
Репутация: 61
По умолчанию Re: LCZero

Цитата: Сообщение от Maratka
Вообще интересно, как оно ложится на типичную партию...
Считать то варианты нужно вообще говоря всегда. ;)
Но против LZ позиции зачастую таковы, что считать там SF'шу либо нечего, либо бесполезно. С другой стороны, регулярно открываются именно вот такие "счетные" победы, т.е. LZ откровенно тупит.
Вообще, по виду, SV3010 (что будет играть в TCEC DivP) очень сильная в счетных и сложных позициях. И пока самое слабое место у нее - реализация в некоторых эндшпилях. Выводы сделаны по партиям CCC и некоторых стримеров.
Так что я считаю, что Лила сейчас фаворит в любом матче на сопоставимом железе.

Цитата: Сообщение от Maratka
И если есть некое общее непонимание, возможно ли найти его математическое описание, с тем, чтобы его избегать (касается обоих сторон)?
Уверен, что можно написать AB движок, который будет очень хорошо играть позиционно, также как можно обучить нейросеть так, что она почти не будет уступать AB движкам в счетных позициях и тактике.
alchemist888 вне форума   Ответить с цитированием
Пользователь сказал cпасибо:
Maratka (15.03.2020)
Старый 15.03.2020, 18:13   #5779
Rom77
Мастер
 
Аватар для Rom77
 
Регистрация: 11.08.2017
Адрес: Киров
Сообщений: 912
Сказал(а) спасибо: 888
Поблагодарили 1,197 раз(а) в 632 сообщениях
Репутация: 132
По умолчанию Re: LCZero

Цитата: Сообщение от alchemist888
Сомневаюсь, что именно так. Потому как, условно, перебор на 2 хода уже будет стоить 160 kn, когда полный перебор 3-х ходов 64 Mn. Можно ошибаться в конкретных цифрах, но порядки значений должны быть примерно такими.
Пусть лучше те кто хорошо разбираются в теме ответят. Но мы уже в оффтоп пошли
Не сказать, что большой специалист, но всё же...

1. На первых полуходах глубины дерево перебора действительно шире, потому что:
а) ещё нет статистики по ходам, а значит отсортировать их по качеству довольно затруднительно. В свою очередь порядок рассмотрения ходов сильно влияет на качество отсечений (в первую очередь для альфа-беты).
б) многие методы отсечения становятся эффективными только с определенной глубины, поэтому на начальных глубинах они обычно не активируются, и поиск проходит без них.
2. Альфа-бета отсечения работают на любой глубине. Таким образом, полного перебора никогда не ведется. Альфа-бета дает тот же самый результат, как и полный перебор на ту же глубину, но позволяет рассматривать в среднем всего 6-7 продолжений в каждом позиции при хорошей сортировке ходов, и 9-10 продолжений при случайном порядке рассмотрения ходов. Полное количество вариантов при использовании альфа-беты на определенную глубину, при идеальной сортировке ходов, смотрите в таблице здесь, в правом столбце (в левом столбце указано количество вариантов для полного перебора).

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

3. Реальный перебор на заявленной глубине вовсе не заканчивается. Далее ещё считаются как минимум размены, иначе позицию нельзя оценивать. Например расчет формально "на глубину 2" будет ещё включать перебор форсированных вариантов, например, на глубину 10-20.

По очень грубой оценке, движок тратит половину своего времени на перебор форсированных вариантов сверх заданной (номинальной) глубины.
Rom77 вне форума   Ответить с цитированием
Пользователь сказал cпасибо:
alchemist888 (15.03.2020)
Старый 15.03.2020, 18:19   #5780
Maratka
Эксперт
 
Аватар для Maratka
 
Регистрация: 11.04.2017
Адрес: РФ, Крым, Севастополь.
Сообщений: 11,849
Сказал(а) спасибо: 3,311
Поблагодарили 5,952 раз(а) в 4,245 сообщениях
Репутация: 253
По умолчанию Re: LCZero

Цитата: Сообщение от alchemist888
Вообще, по виду, SV3010 (что будет играть в TCEC DivP) очень сильная в счетных и сложных позициях. И пока самое слабое место у нее - реализация в некоторых эндшпилях. Выводы сделаны по партиям CCC и некоторых стримеров.
Так что я считаю, что Лила сейчас фаворит в любом матче на сопоставимом железе.
А контроли были там вдумчивые, или ближе к блицу?


Цитата: Сообщение от alchemist888
написать
Я то головой понимаю, что "ручками" написать можно все что угодно. Вопрос во времени - это первое. И второе: как пройти эти патчи, если скажем кумулятивный эффект в 20 ELO от них будет после 40-50 патчей (т.е. 0,4-0,5 ELO за патч), но при этом текущие условия тестирования не дадут пройти патчу, если он не дает минимум ~1 ELO?

Даже я, ни разу не разработчик на C++ (скорее ученик, пытающийся с весьма посредственным успехом постичь C++) ухитрился написать несколько патчей, которые проходят желтыми (часть - мой личный код, часть - улучшенный от других людей, но по той же идее). И в целом понятно, что ELO там есть... но его мало, чтобы пройти текущие рамки.

_____
Вот сейчас скажем у меня есть потенциально полезный пачт для дисбаланса материала. Может дать 2-3 ELO. Потенциально.
Но кидать его на FishTest бесполезно: это блок из трех (в перспективе - больше) кусков кода, т.е. его просто не примут, т.к. он дает... плюс, но не понятно, какой из блоков кода его дает больше. А может есть и отрицательный? И если протестировать по отдельности - не пройдут, ибо каждый по отдельности дает мизер, т.е. мене 1 ELO.

Т.е. нужны условия для проверки патчей с одной идей, где каждый патч дает мало, но в сумме много (этакий сумматор), где мы тестируем против мастера патч, после два патча, после три... и видим, что ELO набирается, при этом ни один из этих мини-пачей не дает +1 ELO, но в сумме есть и 2, и может быть даже более.

____
А в это время сеть на тысячные ELO учится после (в среднем) каждой партии. И у ней нет этой заморочки, она учитывает все коэффициенты в ней самой в целом: есть плюс - и отлично! А если от изменения каких-то k есть минус в какой-то конкретной позиции - то лесом, в будущем все одно "вытянется". И это основной плюс автоматический дрессировки.
Maratka вне форума   Ответить с цитированием
2 пользователя(ей) сказали cпасибо:
Alex_Lk (16.03.2020), Corrs (15.03.2020)
Старый 15.03.2020, 18:35   #5781
Maratka
Эксперт
 
Аватар для Maratka
 
Регистрация: 11.04.2017
Адрес: РФ, Крым, Севастополь.
Сообщений: 11,849
Сказал(а) спасибо: 3,311
Поблагодарили 5,952 раз(а) в 4,245 сообщениях
Репутация: 253
По умолчанию Re: LCZero

Цитата: Сообщение от Rom77
2. Альфа-бета отсечения работают на любой глубине. Таким образом, полного перебора никогда не ведется.
Маловероятно. Ну т.е. конечно возможно к некоторым реализациям, но не ко всем. Иначе тупо не будет находиться форсированный мат в 5-10 ходов (пусть и ценой в сутки счета), а это делают некие мат-файндеры на базе того же SF.

Да и обычный себе SF мат в три хода не видел, чтобы зевал...
Maratka вне форума   Ответить с цитированием
Старый 15.03.2020, 18:42   #5782
Rom77
Мастер
 
Аватар для Rom77
 
Регистрация: 11.08.2017
Адрес: Киров
Сообщений: 912
Сказал(а) спасибо: 888
Поблагодарили 1,197 раз(а) в 632 сообщениях
Репутация: 132
По умолчанию Re: LCZero

Цитата: Сообщение от Maratka
Иначе тупо не будет находиться форсированный мат в 5-10 ходов (пусть и ценой в сутки счета)
Будет находиться. Перебор с помощью Альфа-бета отсечений абсолютно эквивалентен полному перебору на ту же глубину. Это математически доказано.
Rom77 вне форума   Ответить с цитированием
Старый 15.03.2020, 18:57   #5783
Maratka
Эксперт
 
Аватар для Maratka
 
Регистрация: 11.04.2017
Адрес: РФ, Крым, Севастополь.
Сообщений: 11,849
Сказал(а) спасибо: 3,311
Поблагодарили 5,952 раз(а) в 4,245 сообщениях
Репутация: 253
По умолчанию Re: LCZero

Цитата: Сообщение от Rom77
Будет находиться. Перебор с помощью Альфа-бета отсечений абсолютно эквивалентен полному перебору на ту же глубину. Это математически доказано.
А где тогда граница? После чего? после 15-20 ходов?
А разница реализации (пожалуй главное), ведь Вы пишите про некий идеальный a-b механизм, но его реализация разная в разных движках, откуда и разница даже у топовых a-b в сотню ELO?

Т.е. a-b - это поиск. В чистом виде. Но не оценка его результата на некий момент отсечки по времени.
Но ведь и поиск у всех разный!
Maratka вне форума   Ответить с цитированием
Старый 15.03.2020, 19:10   #5784
Rom77
Мастер
 
Аватар для Rom77
 
Регистрация: 11.08.2017
Адрес: Киров
Сообщений: 912
Сказал(а) спасибо: 888
Поблагодарили 1,197 раз(а) в 632 сообщениях
Репутация: 132
По умолчанию Re: LCZero

Цитата: Сообщение от Maratka
А где тогда граница?
Граница чего?

Цитата: Сообщение от Maratka
ведь Вы пишите про некий идеальный a-b механизм, но его реализация разная в разных движках
Но сам принцип одинаков.

Цитата: Сообщение от Maratka
откуда и разница даже у топовых a-b в сотню ELO?
Отсечения и сортировки. Но они уже накладываются на готовую альфа-бету.

Цитата: Сообщение от Maratka
Т.е. a-b - это поиск. В чистом виде. Но не оценка его результата на некий момент отсечки по времени.
Какая бы не была оценочная функция, она может вызываться как на конечных узлах полного перебора, так и на конечных узлах при альфа-бета отсечениях.
Rom77 вне форума   Ответить с цитированием
Старый 15.03.2020, 19:30   #5785
Maratka
Эксперт
 
Аватар для Maratka
 
Регистрация: 11.04.2017
Адрес: РФ, Крым, Севастополь.
Сообщений: 11,849
Сказал(а) спасибо: 3,311
Поблагодарили 5,952 раз(а) в 4,245 сообщениях
Репутация: 253
По умолчанию Re: LCZero

Цитата: Сообщение от Rom77
Граница чего?
Глубины.


Цитата: Сообщение от Rom77
Но сам принцип одинаков.
Принцип всегда одинаков у движков, работающих на одном принципе. На то это и "принцип".
ELO вот разный, скажем SF и Rybka 5, ака Fritz 15 - где-то 300-500 единиц. Откуда? Ведь принцип a-b равный? Но оказалось, что реализация a-b не равная (это понятно без учета оценочной функции, которая лишь услуглубляет позицию R vs SF).


Цитата: Сообщение от Rom77
Отсечения и сортировки. Но они уже накладываются на готовую альфа-бету.
Да и пусть себе. Никто не спорит, что оценка в a-b движке важна! Но важна она и для поиска, который будет повернут в правильное русло на начальном этапе анализа позиции: если на прямом переборе ходов до глубины (условно) три некий ход дает нам мат в 2 хода, то и смысл его расматривать, как вообще, так и по принципу отброса плохих веток, ибо понятно, что там все ветки будут плохими, если корневой ход ведет к мату.
Maratka вне форума   Ответить с цитированием
Старый 15.03.2020, 19:42   #5786
Rom77
Мастер
 
Аватар для Rom77
 
Регистрация: 11.08.2017
Адрес: Киров
Сообщений: 912
Сказал(а) спасибо: 888
Поблагодарили 1,197 раз(а) в 632 сообщениях
Репутация: 132
По умолчанию Re: LCZero

Цитата: Сообщение от Maratka
Глубины.
Допустим мы вели полный перебор на глубину 10. Заменили полный перебор на альфа-бета отсечения. При счете на ту же глубину 10 получим тот же самый лучший ход с той же самой оценкой. Ничего не изменится, только расчеты станут выполнятся гораздо быстрее. Аналогично и на других глубинах.

Цитата: Сообщение от Maratka
ELO вот разный, скажем SF и Rybka 5, ака Fritz 15 - где-то 300-500 единиц. Откуда? Ведь принцип a-b равный?
Ну допустим добавили к альфа-бете LMR, ну и что? Сам-то принцип работы альфа-беты не изменился. Альфа-бета - это вполне конкретный метод.

Цитата: Сообщение от Maratka
если на прямом переборе ходов до глубины (условно) три некий ход дает нам мат в 2 хода, то и смысл его расматривать, как вообще, так и по принципу отброса плохих веток, ибо понятно, что там все ветки будут плохими, если корневой ход ведет к мату.
Собственно, я о том же. Если в одном из вариантов найден мат, то другие рассматривать не обязательно. Их можно отсечь. Полный перебор не нужен. Это ещё не альфа-бета, но уже первый шаг на пути к ней.
Rom77 вне форума   Ответить с цитированием
Старый 15.03.2020, 20:01   #5787
alchemist888
КМС
 
Аватар для alchemist888
 
Регистрация: 25.04.2019
Сообщений: 674
Сказал(а) спасибо: 293
Поблагодарили 641 раз(а) в 345 сообщениях
Репутация: 61
По умолчанию Re: LCZero

Цитата: Сообщение от Maratka
Вот сейчас скажем у меня есть потенциально полезный пачт для дисбаланса материала. Может дать 2-3 ELO. Потенциально.
Но кидать его на FishTest бесполезно: это блок из трех (в перспективе - больше) кусков кода, т.е. его просто не примут, т.к. он дает... плюс, но не понятно, какой из блоков кода его дает больше. А может есть и отрицательный? И если протестировать по отдельности - не пройдут, ибо каждый по отдельности дает мизер, т.е. мене 1 ELO.
А разве нельзя протестировать несколько блоков кода по отдельности, и затем все желтые протестировать вместе, обозначая как Combо?

Цитата: Сообщение от Maratka
А контроли были там вдумчивые, или ближе к блицу?
Пуля, блиц, рапид и немного классики.
Это не так и важно по сути. Для Стокфиша 10'+10'' на хорошем железе - это уже очень серьезный контроль.
alchemist888 вне форума   Ответить с цитированием
Старый 15.03.2020, 20:05   #5788
Maratka
Эксперт
 
Аватар для Maratka
 
Регистрация: 11.04.2017
Адрес: РФ, Крым, Севастополь.
Сообщений: 11,849
Сказал(а) спасибо: 3,311
Поблагодарили 5,952 раз(а) в 4,245 сообщениях
Репутация: 253
По умолчанию Re: LCZero

Цитата: Сообщение от Rom77
Допустим мы вели полный перебор на глубину 10. Заменили полный перебор на альфа-бета отсечения. При счете на ту же глубину 10 получим тот же самый лучший ход с той же самой оценкой. Ничего не изменится, только расчеты станут выполнятся гораздо быстрее. Аналогично и на других глубинах.
Не понял, за счет чего? Ведь a-b в нынешнем виде подразумевает отсечения, а значит и некоторую потерю ELO на наперед известной глубине?

Или Вы про чистый "математический" a-b?
Но он не существует ни в одном мало-мальски серьезном движке, окромя малых глубин на где-то 2-3 хода!
Maratka вне форума   Ответить с цитированием
Пользователь сказал cпасибо:
Alex_Lk (16.03.2020)
Старый 15.03.2020, 20:13   #5789
Maratka
Эксперт
 
Аватар для Maratka
 
Регистрация: 11.04.2017
Адрес: РФ, Крым, Севастополь.
Сообщений: 11,849
Сказал(а) спасибо: 3,311
Поблагодарили 5,952 раз(а) в 4,245 сообщениях
Репутация: 253
По умолчанию Re: LCZero

Цитата: Сообщение от alchemist888
А разве нельзя протестировать несколько блоков кода по отдельности, и затем все желтые протестировать вместе, обозначая как Combо?
Можно, но не факт, что они дадут в сумме то что нужно.
Ну например, мой код:

Код:
int weight_pawns = (pieceCount[Us][PAWN] - pieceCount[Them][PAWN])*(PawnValueEg + PawnValueMg) / 2;

// Material immbalance bonus
	// Q vs BBN/BNN
	if (pieceCount[Us][QUEEN] - pieceCount[Them][QUEEN] == 1
		&& (pieceCount[Them][KNIGHT] + pieceCount[Them][BISHOP] - pieceCount[Us][KNIGHT] - pieceCount[Us][BISHOP] == 3
		&& (pieceCount[Us][ROOK] - pieceCount[Them][ROOK] == 0)))
			bonus = -200 + weight_pawns / 3;
	

	//Патч конь и пешка против ладьи
	if ((pieceCount[Them][ROOK] - pieceCount[Us][ROOK]) == 1 
		&& (pieceCount[Us][KNIGHT]	- pieceCount[Them][KNIGHT]) == 1 
		&& (pieceCount[Us][PAWN]	- pieceCount[Them][PAWN]) != 0 
		&& (pieceCount[Us][QUEEN]	- pieceCount[Them][QUEEN]) == 0
		&& (pieceCount[Us][BISHOP]	- pieceCount[Them][BISHOP]) == 0)
			bonus = -100 + weight_pawns / 4;
	

	//Патч слон и пешка против ладьи
	if ((pieceCount[Them][ROOK] - pieceCount[Us][ROOK]) == 1 
		&& (pieceCount[Us][BISHOP]	- pieceCount[Them][BISHOP]) == 1 
		&& (pieceCount[Us][PAWN]	- pieceCount[Them][PAWN]) != 0 
		&& (pieceCount[Us][QUEEN]	- pieceCount[Them][QUEEN]) == 0
		&& (pieceCount[Us][KNIGHT]	- pieceCount[Them][KNIGHT]) == 0)
			bonus = -120 + weight_pawns / 4;

/*
	//Конь против пешек
	if ((pieceCount[Them][KNIGHT]	- pieceCount[Us][KNIGHT]) == 1 
		&& (pieceCount[Us][BISHOP]	- pieceCount[Them][BISHOP]) == 0
		&& (pieceCount[Us][ROOK]	- pieceCount[Them][ROOK]) == 0 
		&& (pieceCount[Us][QUEEN]	- pieceCount[Them][QUEEN]) == 0
		&& (pieceCount[Us][PAWN]	- pieceCount[Them][PAWN]) > 0)
			bonus = -230 + weight_pawns / 2;
	*/
Последнее, конь против пешек - это в процессе (потом в ремарке), не факт, что даст что-то в силу ограничения гибкости подхода подсчета исключительно материала, но первые три что-то там дают (потенциально).
Почему потенциально - потому что у меня нет ядер даже для проведения достоверного теста на 10 000 +10, тем более на 60 000 + 60, но похоже выхлоп есть, на основе беглых тестов.

И даже, если его не будет в сумме, есть варианты вида "две ладьи против ферзя" и иные, где в общем можно набрать что-то там, что достаточно для прохождения теста.

Теперь по Вашему вопросу:
Собрать "Combo"? Реально, почему нет? Но вероятность того, что покуда будут идти тесты каждого дисбаланса против мастера, этот самый мастер обновится -велика. Т.е. по-хорошему, придется перетестировать.
А там опять же еще один новый мастер...

Потому лучше было бы тестировать все изначально, как "пакет". Но это не приветствуется на FishTest, по причинам которые я описал выше.
Maratka вне форума   Ответить с цитированием
Старый 15.03.2020, 20:21   #5790
Maratka
Эксперт
 
Аватар для Maratka
 
Регистрация: 11.04.2017
Адрес: РФ, Крым, Севастополь.
Сообщений: 11,849
Сказал(а) спасибо: 3,311
Поблагодарили 5,952 раз(а) в 4,245 сообщениях
Репутация: 253
По умолчанию Re: LCZero

Кстати, могу дать бинари для теста в оболочке, а-ля LittleBlitzer
Все кто могут - пусть проверят. Любая книга, кроме игры с начальной позиции, ибо там будет высокая повторяемость. Главное - игра с переменой сторон при любом дебюте, ну и сама книга достаточо большая, чтобы было мало повторов. 2_movies - достаточна.

Готов кто наиграть много тыс. партий хотя бы на 10 000 +10?

Я выдержал ~3000 партий на контроле 4000 + 15, это мало для статистики, но тенденция положительная.
Maratka вне форума   Ответить с цитированием
Ответ


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

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

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

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


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


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