1. Esports World Cup 2025 13:00 | Шахматные звезды 5.0 | Дубов - Ниманн
    Тур чемпионов. Финал top!! | ЧМ рапид + блиц 25 top!!
    Последний довод короля Книга - NEW!
    Очень СКОРО переезжаем. Оставайтесь с нами!

Стадии игры в ОФ

Discussion in 'Машинное отделение' started by WildCat, 3 May 2007.

  1. WildCat
    Оффлайн

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

    Репутация:
    0
    Возникло желание обсудить стадии игры в ОФ. У меня, можно считать, что практически одна и та же ОФ для всех стадий игры. Возможно здесь кроется резерв для усиления :)

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

    ValueTotal = ValueOpening * (CurrentMaterial / MaxMaterial) + ValueEndgame * (MaxMaterial - CurrentMaterial)/MaxMaterial

    Вроде это и есть фруктовый метод плавного перехода между стадиями игры.
     
  2. Booot
    Оффлайн

    Booot Учаcтник

    Репутация:
    0
    Моей проге подобная процедура дала достаточно солидный прирост силы. Особенно если подобрать "конкурирующие" признаки (те, которые в одной и той же позиции из общих соображений дают поправки с различным знаком, в зависимости от стадии игры). К примеру эндшпильная централизованность короля и миттельшпильная его безопасность. В этом случае прога в переборе будет стараться максимизировать общий вес путем проведения соответствующий разменов.
     
  3. WildCat
    Оффлайн

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

    Репутация:
    0
    У меня оценка короля изменяется скачком при наступлении эндшпиля. Правда еще безопасность короля масштабировалась наличием вражеского ферзя.
    Думаете плавное изменения оценки короля будет лучше?

    Для начала я думаю взять несколько признаков, которые явно зависят от стадии партии, и посмотреть, будут ли улучшения. Какие признаки посоветуете?
    Хотя может быть лучше проверять признаки по одному, а не все вместе.
     
  4. WinPooh
    Оффлайн

    WinPooh В.М. Staff Member

    Репутация:
    95
    Централизация ферзя - в дебюте слабо отрицательная или нулевая, в эндшпиле положительная.
     
  5. WildCat
    Оффлайн

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

    Репутация:
    0
    У меня есть сомнения, что централизация ферзя вообще имеет значение.
     
  6. Orlov
    Оффлайн

    Orlov Учаcтник

    Репутация:
    0
    попробуй PST отдельно для всех трех стадий игры нарисовать. я вижу что некоторые так делают.
     
  7. WildCat
    Оффлайн

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

    Репутация:
    0
    Может люди, которые понимают шахматы получше предложат варианты PST?
     
  8. Позиционер
    Оффлайн

    Позиционер Зарегистрирован

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

    варяг Учаcтник

    Репутация:
    0
    А как вы определяете, что наступил эндшпиль? Согласно определению из Википедии?

    http://en.wikipedia.org/wiki/Endgame#When_does_the_endgame_begin.3F

    When does the endgame begin?
    An endgame is when there are only a few pieces left. With the usual system for chess piece point value, Speelman considers that endgames are positions in which each player has thirteen or fewer points in material (not counting the king). Alternatively, an endgame is a position in which the king can be used actively, but there are some famous exceptions to that (Speelman 1981:7-8). Minev characterizes endgames as positions having four or fewer pieces other than kings and pawns (Minev 2004:5).

    Alburt and Krogius give three characteristics of an endgame: (Alburt & Krogius 2000:12)

    Endgames favor an aggressive king
    Passed pawns increase greatly in importance
    Zugzwang is often a factor in endgames and rarely in other stages of the game.
     
  10. NS
    Оффлайн

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

    Репутация:
    3
    Я думаю что шахматных программистов определение эндшпиля из википедии интересует в последнюю очередь.
     
  11. WinPooh
    Оффлайн

    WinPooh В.М. Staff Member

    Репутация:
    95
    До Альбурта и Крогиуса шахматисты пребывали в глубоком неведении о роли короля в эндшпиле :D
     
  12. варяг
    Оффлайн

    варяг Учаcтник

    Репутация:
    0
    А что же интересует в первую очередь?
     
  13. NS
    Оффлайн

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

    Репутация:
    3
    Чтоб программа хорошо играла :)
    Я считаю суммарную стоимость фигур соперника, и если она меньше некоторой величины, и я считаю что король смело может гулять в центр - то переключаю все таблицы на эндшпильные.
    А признак, ступенчатый (кроме PST) у меня только один - пешечное прикрытие короля.
     
  14. WildCat
    Оффлайн

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

    Репутация:
    0
    У меня эндшпиль определяется по Спилмену.
     
  15. bankuss
    Оффлайн

    bankuss Александр баннер

    Репутация:
    6
    NS Сергей, в процессе перебора это переключение происходит? или статично, после некоторого хода, который нарушает "равновесие" :)
     
  16. NS
    Оффлайн

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

    Репутация:
    3
    В ОФ считаем материал. Возможно у меня из-за того что забыл отключить тестовый режим переключатель срабатывает прямо перед ФВ, но я в этом не уверен.
    У меня материал хранится в структуре доски, то есть make/unmake пересчитывают материал. Это нужно еще и для Null Move.
     
  17. варяг
    Оффлайн

    варяг Учаcтник

    Репутация:
    0
    А у меня эндшпиль определяется так: если суммарная стоимость фигур на доске меньше половины от того, что было в начальной позиции и на доске нет ферзя - то это эндшпиль. Стадии игры переключаются динамически в Eval(). Кажется что-то подобное я видел в каком-то открытом исходнике
     
  18. Orlov
    Оффлайн

    Orlov Учаcтник

    Репутация:
    0
    а еще эндшпиль неплохо бы поделить на ранний и поздний
     
  19. WinPooh
    Оффлайн

    WinPooh В.М. Staff Member

    Репутация:
    95
    И ещё очень поздний, это когда уже в Налимове :)
     
  20. Fruit
    Оффлайн

    Fruit Александр баннер

    Репутация:
    3
    В Pro Deo идёт деление:
    END1: Без ферзей
    END2: сумма ценностей всех фигур на доске +=26 (пешка = 1.....ферзь = 9)
    END3: сумма ценностей всех фигур на доске +=10 (пешка = 1.....ферзь = 9)

    Кажется, логичным.
     
  21. Booot
    Оффлайн

    Booot Учаcтник

    Репутация:
    0
    Начни с безопасности короля, оценки проходных и оценки пешечной структуры.
     
  22. WildCat
    Оффлайн

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

    Репутация:
    0
    А что с пешечной структурой?
     
  23. Booot
    Оффлайн

    Booot Учаcтник

    Репутация:
    0
    У меня пешечная структура для миттельшпиля и эндшпиля считаются немного поразному. В миттельшпиле большой штраф идет за нахождение слабости (изолированной или отсталой пешки) на полуоткрытой линии, где ее могут тяжелыми фигурами продавить. В эндшпиле этот признак не учитывается совсем, зато возрастают в принципе штрафы за дефекты пешечной структуры. Так что прога по идее будет сохранять тяжелые фигуры в позиции со сдвоенными пешками (они там действительно не так страшны) и стремиться перейти в эндшпиль если у противника куча пешечных островков.
     
  24. WildCat
    Оффлайн

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

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

    Посоветуйте веса для дебюта и эндшпиля.
     
  25. WildCat
    Оффлайн

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

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

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

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

    У меня сдвоенные изолированные выделены в отдельный признак.
    Есть признак - битые пешками поля, количество пешечных островков.
     
  27. WildCat
    Оффлайн

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

    Репутация:
    0
    Вот сделал масштабирование оценки проходных в зависимости от материала соперника:
    Code:
        
    ОценкаПроходных = ВычислениеОценкиПроходных();
    МатериалСоперника = Кони*400 + Слоны*400 + Ладьи*600 + Ферзи*1200;
    ОценкаПроходных *= double (4000 - МатериалСоперника) / 4000;
    Но по первым тестам от этого стало только хуже. :/
     
  28. WildCat
    Оффлайн

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

    Репутация:
    0
    И хуже стало намного :(

    Неужели никто ниче не посоветует?
     
  29. NS
    Оффлайн

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

    Репутация:
    3
    Проходная в миттельшпиле ничем не слабее чем в эндшпиле.
    Когда ОФ навороченная тяжело вручную что-то менять. Может посчитать бонус автоматически?
    NB,NR,NQ,NN,NP - количество наших фигур разного достоинства,
    SB,SR,SQ,SN,SP - тоже самое у соперника.
    NV - новер вертикали, например d,e =0 a,b=3
    Считаем множитель бонуса как
    22 параметра. На хороших алгоритмах можно посчитать за неделю.
     
  30. WildCat
    Оффлайн

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

    Репутация:
    0
    Мне чего попроще...

    Например, во Фрукте проходные в эндшпиле просто в два раза ценнее + включаются еще бонусы за свободное поле и отдаленность королей.

    Кто-нибудь пытался проверять работает ли эта схема вообще?
     
  31. NS
    Оффлайн

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

    Репутация:
    3
    Попроще неинтересно. Судя по всему бОльшая часть признаков в Фрукте вообще не работает.
    Я не верю что человек вручную может хорошо подобрать веса. То есть может, но на это уйдет очень много времени, а если автоматически то будет затрачено меньше и сил и времени.