Хеширование и счетчик 50 ходов

Тема в разделе "Машинное отделение", создана пользователем WildCat, 26 окт 2007.

  1. NS Нефёдов Сергей

    • Заслуженный
    • Ветеран
    • Старожил
    Рег.:
    02.05.2006
    Сообщения:
    6.811
    Симпатии:
    96
    Репутация:
    3
    Адрес:
    Санкт-Петербург
    Оффлайн
    Конечно мало - всего-лишь половина всех узлов дерева :)
    На первый ход сильнейшей стороны в корне 50% всех узлов дерева.
    В ответ - 1% PV, 99% отсекаемых оценкой >=GlobalScore.
    Это в случае идеальной сортировки. Но в реальной программе сортировки близки к идеальным. А если даже и будут неидеальными - то сокращение числа отсекаемых ходов в ответ на первый ход из корня компенсируется отсечками на остальных ходах из корня дерева.

    я послал в мыло рисунок по тем узлам которые отсекаются.
  2. TopicStarter Overlay

    WildCat Коршунов Игорь

    • Команда форума
    Рег.:
    04.05.2006
    Сообщения:
    3.599
    Симпатии:
    4
    Репутация:
    0
    Адрес:
    Гомель
    Оффлайн
    Я все равно не пойму что они могут отсечь.

    Давай разбираться с самого начала. Мы имеем довольно статичную позицию. Пешки вперед не идут, хороших разменов нет. Фигуры топчуться на месте.

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

    Теперь мы досчитались до того, что топтание на месте - это ничья. Всю эту хеш-таблицу теперь можно выбросить. Откуда возьмуться в хеше позиции, которые смогут что-то отсечь?
  3. NS Нефёдов Сергей

    • Заслуженный
    • Ветеран
    • Старожил
    Рег.:
    02.05.2006
    Сообщения:
    6.811
    Симпатии:
    96
    Репутация:
    3
    Адрес:
    Санкт-Петербург
    Оффлайн
    В ответ на плохие ходы слабейшей стороны (а их рассмотреть придется) опровергающими могут быть (и скорей всего будут) взятия и продвижения пешек. Оценки узлов после плохих ходов слабейшей стороны срабатывать и будут. Если хеширование отключится то быстро отсекаться эти ветви не будут. Они будут занимать подавляющий процент от всего перебора.

    А если просто отключать хеш - то по какому признаку? По Depth не получится, так как могут быть продления. Отключать всегда оценки >=А при А>0 - получим ухудшение бренчинг-фактора.
  4. TopicStarter Overlay

    WildCat Коршунов Игорь

    • Команда форума
    Рег.:
    04.05.2006
    Сообщения:
    3.599
    Симпатии:
    4
    Репутация:
    0
    Адрес:
    Гомель
    Оффлайн
    Вряд ли плохие ходы слабейшей стороны (да еще после наших плохих ходов) будут занимать подавляющий процент. Основная часть будет та, что поближе к PV.
    С другой стороны на этих позициях я не хуже тебя буду отсекать по хеш-таблице, т.к. после продвижения пешки или взятия хеш-таблицу можно смело использовать. :)
  5. NS Нефёдов Сергей

    • Заслуженный
    • Ветеран
    • Старожил
    Рег.:
    02.05.2006
    Сообщения:
    6.811
    Симпатии:
    96
    Репутация:
    3
    Адрес:
    Санкт-Петербург
    Оффлайн
    Я не понял, как ты будешь отсекать оценки из хеша? по depth ведь не выйдет...
    Когда это еще произойдет, до этого еще досчитаться надо © :)
  6. TopicStarter Overlay

    WildCat Коршунов Игорь

    • Команда форума
    Рег.:
    04.05.2006
    Сообщения:
    3.599
    Симпатии:
    4
    Репутация:
    0
    Адрес:
    Гомель
    Оффлайн
    Позиций до которых досчитываться нужно в твоем хеше просто не будет. Так что тебе их тоже придется считать.
  7. NS Нефёдов Сергей

    • Заслуженный
    • Ветеран
    • Старожил
    Рег.:
    02.05.2006
    Сообщения:
    6.811
    Симпатии:
    96
    Репутация:
    3
    Адрес:
    Санкт-Петербург
    Оффлайн
    Но у меня будет в хеше больше позиций, и это хорошо...
    А наоборот, оценки испорченные достижением правила 50 ходов (либо нулевые) ты как исключаешь? Или они пишутся в Хеш?

    Я условия если оценка в A-B окне сформулировал. В примере я поставил правильные условия только если опровержение по альфе либо бете.
  8. TopicStarter Overlay

    WildCat Коршунов Игорь

    • Команда форума
    Рег.:
    04.05.2006
    Сообщения:
    3.599
    Симпатии:
    4
    Репутация:
    0
    Адрес:
    Гомель
    Оффлайн
    Именно поэтому я не хочу делать по-хорошему. Слишком много изврата придется добавлять в программу. Как-то же все обходятся без этого...
  9. NS Нефёдов Сергей

    • Заслуженный
    • Ветеран
    • Старожил
    Рег.:
    02.05.2006
    Сообщения:
    6.811
    Симпатии:
    96
    Репутация:
    3
    Адрес:
    Санкт-Петербург
    Оффлайн
    ИМХО когда в каждой записи в Хеше мы уверены что
    1. Не будет ни одной неправильно взятой из хеша оценки.
    2. По возможности максимально используются оценки из Хеша.
    Это хорошо, и это не изврат.
    Для этого достаточно возвращать два параметра и аккуратно прописать их использование в нескольких местах. (это для правила 50 ходов)

    Без этого обходятся авторы движков с открытыми исходниками, но это не значит что без этого обходятся все :)
  10. TopicStarter Overlay

    WildCat Коршунов Игорь

    • Команда форума
    Рег.:
    04.05.2006
    Сообщения:
    3.599
    Симпатии:
    4
    Репутация:
    0
    Адрес:
    Гомель
    Оффлайн
    То, что должно реализовываться в нескольких местах - это изврат и источник постоянных проблем. Чтобы такое делать нужны серьезные причины. А т.к. таких причин нет, то никто этого и не делал.
    Ну может быть за исключением нескольких извращенцев. :D
  11. NS Нефёдов Сергей

    • Заслуженный
    • Ветеран
    • Старожил
    Рег.:
    02.05.2006
    Сообщения:
    6.811
    Симпатии:
    96
    Репутация:
    3
    Адрес:
    Санкт-Петербург
    Оффлайн
    Чтоб не хешировать оценки искаженные нулевой оценкой от правила 50-ти - нужно добавить 5 строк в одно место. :)
  12. MS Михаил Семионенков

    • Команда форума
    Рег.:
    11.02.2006
    Сообщения:
    6.542
    Симпатии:
    3.361
    Репутация:
    175
    Оффлайн
    Эх, не утерпел :)

    С правилом 50 ходов есть 2 принципиально разные ситуации:
    а) выигрыш об'ективно есть, но 50 ходов не хватает
    б) выигрыша нет.

    Об "искажении оценки" можно говорить в первом случае (программа правильно считает, что есть об'ективный перевес, но не учитывает правила 50 ходов, не позволяющего перевес реализовать) приличная программа должна знать все законные исключения правила и писать письмо в ФИДЕ, если найдет новое за доской.

    А в ситуация, когда происходит повтор позиции, т.е. об'ективно перевеса нет, и правило лишь обрывает бессмысленное возюкание фигур по доске, мозги нужно вправлять программе, чтобы правильно оценивала позиции якобы с перевесом. Если я правильно понимаю, программа с феном получает информацию о правиле 50 ходов. Если позиция из загашника имеет большее число ходов "до контроля", то это - серьезный повод подумать о переоценке позиции.
  13. NS Нефёдов Сергей

    • Заслуженный
    • Ветеран
    • Старожил
    Рег.:
    02.05.2006
    Сообщения:
    6.811
    Симпатии:
    96
    Репутация:
    3
    Адрес:
    Санкт-Петербург
    Оффлайн
    Совершенно другие две ситуации, и обе связаны с ошибками на захешированных оценках :)
    Если бы не было Хеша, то никаких проблем с правилом 50-ти нет.
  14. MS Михаил Семионенков

    • Команда форума
    Рег.:
    11.02.2006
    Сообщения:
    6.542
    Симпатии:
    3.361
    Репутация:
    175
    Оффлайн
    Мы, возможно, не можем понять друг друга.

    По оригинальному описанию WildCat, я нахожусь в полной уверенности, что у него речь идет о ситуации б): программа считает, что перевес есть, тогда как реально позиция ничейна. Оценка ведь не хешируется абстрактно: она должна быть привязана позиции, а с парой оценка-позиция должно хранить и число ходов по правилу 50.

    Если для текущей позиции
    Мы вытаскиваем из хеша позицию с ненулевой оценкой, но меньшим числом ходов по правилу 50
    То встает толстый вопрос:
    А верна ли ненулевая оценка?

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

    Или хеш - это что-то совсем другое в этом контексте?
  15. NS Нефёдов Сергей

    • Заслуженный
    • Ветеран
    • Старожил
    Рег.:
    02.05.2006
    Сообщения:
    6.811
    Симпатии:
    96
    Репутация:
    3
    Адрес:
    Санкт-Петербург
    Оффлайн
    Да, это один из двух случаев - решение этой проблемы описано на первой странице ветки...

Поделиться этой страницей