Продления на проходных пешках

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

  1. WildCat
    Оффлайн

    WildCat Коршунов Игорь Команда форума

    Репутация:
    0
    NS! Если у тебя появляются мысли совершенно не по теме, то лучше сам открывай новые ветки.
    Я думаю эта тема достойна отдельного обсуждения.
     
  2. WildCat
    Оффлайн

    WildCat Коршунов Игорь Команда форума

    Репутация:
    0
    У меня проходные пешки орпеделяются в ОФ. Если я буду после каждого хода пешкой проверять, а не проходная ли она, то может получиться большое падение скорости. Не хочется ради этого переходить на битбордное представление пешек. Есть какие-нибудь идеи?
     
  3. NS
    Оффлайн

    NS Нефёдов Сергей баннер

    Репутация:
    3
    В корне дерева формирум список проходных пешек - как обычно:
    Размер списка.
    В каждом элементе - координата пешки и количество похищенных ею ply.
     
  4. WildCat
    Оффлайн

    WildCat Коршунов Игорь Команда форума

    Репутация:
    0
    Мне это не нравится. В процессе перебора пешки иногда становятся проходными, а иногда перестают ими быть.
     
  5. NS
    Оффлайн

    NS Нефёдов Сергей баннер

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

    WildCat Коршунов Игорь Команда форума

    Репутация:
    0
    Еще раз хочется повторить второй пост. Мне кажется, что определять проходимость при каждом ходе пешкой будет медленно.
     
  7. NS
    Оффлайн

    NS Нефёдов Сергей баннер

    Репутация:
    3
    Чтоб проверить стала ли пешка проходной после хода - нужно проверить в случае шестой - три поля, 5-ой вертикали - 6 полей и т.д.
    При этом при ходе на 6-тую необходима проверка только при depth>=2, а при ходе на пятую при Depth>=3
    Это значительно быстрее чем контроль повторения позиции, и пересчет Зобриста после хода.
     
  8. NS
    Оффлайн

    NS Нефёдов Сергей баннер

    Репутация:
    3
    При ходе пешки соперника наши проходные пропасть не могут.

    Появится могут только на двух полях - рядом с пешкой соперника.
    Но появление проходных после хода соперника нас не интересуют, так как их появление нужно ослеживать только при нашем ходе пешкой, и интересует только факт, что именно ходившая пешка стала проходной!!!

    При взятии пешкой соперника (поменяла вертикаль) Наши проходные могут пропасть только на одной вертикали!
    Так что нигде нет замедления.
     
  9. WinPooh
    Оффлайн

    WinPooh В.М. Команда форума

    Репутация:
    95
    А если пешка соперника после взятия становится на соседнюю вертикаль?
     
  10. WinPooh
    Оффлайн

    WinPooh В.М. Команда форума

    Репутация:
    95
    Опять мимо.

    Б. пп. d2, e2
    Ч. п. f4

    1. e2e4 f4xe3 - обе проходные перестали быть
     
  11. NS
    Оффлайн

    NS Нефёдов Сергей баннер

    Репутация:
    3
    Написано в предыдущем посте. :)
     
  12. WinPooh
    Оффлайн

    WinPooh В.М. Команда форума

    Репутация:
    95
    Отвечено в предыдущем посте.
     
  13. NS
    Оффлайн

    NS Нефёдов Сергей баннер

    Репутация:
    3
    При взятии нашей пешки - вообще никаких проверок - она автоматом перестает быть проходной.
    Потом проверяется только вертикаль d (как я говорил проходные могут пропасть только на одной вертикали, в данном случае только одно поле) И причем проверка нужна только при Depth>=4, так в ином случае наша пешка автоматом перестает быть проходной по Depth.
    (и кстати, в нашем случае белую пешку на d2 можно вообще не проверять, так как она еще на второй - она не могла накопить продлений :) )

    Пешка соперника при этом попала на третью - при Depth>=2 нужно проверить три поля на отсутствие наших пешек.
     
  14. WinPooh
    Оффлайн

    WinPooh В.М. Команда форума

    Репутация:
    95
    Продлевать можно по-разному, это понятно.
    Кто-нибудь эксперимент ставил - сколько это пунктов силы даёт?
     
  15. NS
    Оффлайн

    NS Нефёдов Сергей баннер

    Репутация:
    3
    Марков ставил - вроде 10 и больше пунктов. (насколько я понимаю - 10 пунктов прибавки по сравнению с простым продлением на любом ходе проходной)
     
  16. WinPooh
    Оффлайн

    WinPooh В.М. Команда форума

    Репутация:
    95
    А по сравнению с отсутствием продления вообще, или с продлением только при ходе на предпоследнюю горизонталь?
     
  17. NS
    Оффлайн

    NS Нефёдов Сергей баннер

    Репутация:
    3
    По сравнению с продлением на любом ходе проходной пешки (без откатов, ход пешки на седьмую всегда я вляется ходом проходной), с проверкой depth - чтоб случайно не сделать лишнего продления. Это прибавляет больше, чем продление только при ходе на седьмую.

    Но конечно лучше найти Маркова, и попытать его :)
     
  18. NS
    Оффлайн

    NS Нефёдов Сергей баннер

    Репутация:
    3
    static int full_new_depth(
    .....
    if (in_pv && PIECE_IS_PAWN(MOVE_PIECE(move,board))){
    if (passed_pawn_move(move,board))
    return new_depth+1;

    Это код из Тоги, у неё продление только в PV ветвях, и нет проверки на Depth.
    про проверку я писал - проверяем прямоугольник шириной три пешки (перед полем куда пошла пешка) на наличие пешек соперника. в слeчае хода на 6-тую и depth>=2 три поля,
    ход на 5-ую и depth>=3 - шесть полей и т.д.

    Предлагатся усилить эту схему откатами продлений, а само продление делать во всех ветвях, а не только PV. (или хотя-бы не делать сокращение по LMR на таких ходах в не PV ветвях, в этом случае меняется условие на depth - оно становится более жестким)
     
  19. WildCat
    Оффлайн

    WildCat Коршунов Игорь Команда форума

    Репутация:
    0
    В Тоге любой ход проходной в PV продляется?
    Заметить разницу в 10 пунктов малореально. Это может быть просто ошибка тестирования.
     
  20. NS
    Оффлайн

    NS Нефёдов Сергей баннер

    Репутация:
    3
    Да, в Тоге продляется в PV любой ход проходной (то есть если пешка после хода стала проходной)
    Усилние схемы откатами - наверно не ослабит её...
    Но это мнение моё, и насколько я понимаю это мнение Маркова.
     
  21. NS
    Оффлайн

    NS Нефёдов Сергей баннер

    Репутация:
    3
    Разница в 10 пунктов - 2 минуты на партию, 3000 партий. Необходимо четыре дня, при наличии одного компа. При наличии 10-ти тестеров, и если у них по нескольку компов - сроки значительно сокращаются.
     
  22. WildCat
    Оффлайн

    WildCat Коршунов Игорь Команда форума

    Репутация:
    0
    Представил себе пешечник с двумя проходными у каждой стороны. Здесь мы можем не возращаться из
    продлений очень долго. Даже если будут откаты.
     
  23. NS
    Оффлайн

    NS Нефёдов Сергей баннер

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