ОФ Стрелки

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

  1. TopicStarter Overlay

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

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

    Вот из чего она состоит:

    - разность материала
    - бонус за материальное соотношение
    - ленивая оценка: если материальная составляюшая вышла далеко за границы, то сразу возвращаемся. причем границы определяются довольно хитро, так что я даже и не понял как. еще к ленивой оценке почему-то всегда добавляется "+3" - я не понял этой фишки.
    - все дальнейшие факторы имеют по две состовляющие: opening И endgame
    - позиции фигур (PST)
    - мобильность фигур
    - атака на короля
    - бонусы ладьям за открытые, полуоткрытые линии, за атака на чужого короля по открытой линии, за 7-ую линию, если на ней пешки или вражеский король на восьмой
    - бонус ферзю за 7-ую линию, если на ней пешки или вражеский король на восьмой
    - пешечная защита/атака короля
    - пешечная структура
    - проходные пешки
    - паттерны: слон зажатый чужими пешками, слон зажатый своими пешками, ладья зажатая своим королем
    - разноцветные слоны в эндшпиле: вся оценка делится пополам
    - из полученных сумм opening И endgame составляем интегральную оценку домнажая их на коэфициенты зависящие от материального соотношения
    - и в конце, судя по всему, бонус за право хода "+3". Все равно не понимаю зачем его добавлять и к ленивой оценке.

    Короче, Стрелка ужасно простой движок. Если не считать того, что все коэфициенты (особенно матрицы коэфициентов) выглядят довольно жутко. И вся силушка видимо в их очень удачном балансе.
  2. NS Нефёдов Сергей

    • Заслуженный
    • Ветеран
    • Старожил
    Рег.:
    02.05.2006
    Сообщения:
    6.811
    Симпатии:
    96
    Репутация:
    3
    Адрес:
    Санкт-Петербург
    Оффлайн
    Что-то мне это напоминает...
  3. TopicStarter Overlay

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

    • Команда форума
    Рег.:
    04.05.2006
    Сообщения:
    3.599
    Симпатии:
    4
    Репутация:
    0
    Адрес:
    Гомель
    Оффлайн
    Что же?
  4. syrdon Учаcтник

    • Участник
    Рег.:
    21.05.2007
    Сообщения:
    78
    Симпатии:
    0
    Репутация:
    0
    Оффлайн
    По чем пешка?

    Только не отвечайте "100 сантипешек".
  5. Fruit Александр

    • Заслуженный
    • Участник
    • Старожил
    Рег.:
    12.02.2006
    Сообщения:
    2.201
    Симпатии:
    64
    Репутация:
    3
    Оффлайн
    1/3 часть сантиконей:)
  6. syrdon Учаcтник

    • Участник
    Рег.:
    21.05.2007
    Сообщения:
    78
    Симпатии:
    0
    Репутация:
    0
    Оффлайн
    Т.е. супер конь стоит 300 пешек? Где такие кони?
  7. NS Нефёдов Сергей

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

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

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

    • Заслуженный
    • Участник
    • Старожил
    Рег.:
    12.02.2006
    Сообщения:
    2.201
    Симпатии:
    64
    Репутация:
    3
    Оффлайн
    300 сантипешек!!:)
  10. NS Нефёдов Сергей

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

    Просто моя теория подтверждается - чем брать кучу признаков с весами "от балды", лучше взять минимум признаков и хорошо рассчитать веса.
  11. TopicStarter Overlay

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

    • Команда форума
    Рег.:
    04.05.2006
    Сообщения:
    3.599
    Симпатии:
    4
    Репутация:
    0
    Адрес:
    Гомель
    Оффлайн
    Если одна пешка стоит 1/3 сантиконей, то 100/3 пешек стоит один конь, т.е. примерно где-то 33 пешки. Вроде как-то так.
  12. TopicStarter Overlay

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

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

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

    Я попробую корреляцию (у меня теперь есть огромная база шашечных позиций, и свой сильный движок при помощи которого можно получить оценки) - попытаюсь посчитать ОФ параметров так на 1000... Если сила заметно вырастет - значит возможно авторы сильнейших движков именно с её помощью настраивают ОФ.
  14. TopicStarter Overlay

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

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

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

    Ветка вроде есть, или она только для расчета ОФ при помощи тестовых матчей?
  16. TopicStarter Overlay

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

    • Команда форума
    Рег.:
    04.05.2006
    Сообщения:
    3.599
    Симпатии:
    4
    Репутация:
    0
    Адрес:
    Гомель
    Оффлайн
    Для этого случая я думаю стоит завести отдельную ветку по корреляционному анализу.
    Так тут важно каким образом ты будешь это делать.
  17. TopicStarter Overlay

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

    • Команда форума
    Рег.:
    04.05.2006
    Сообщения:
    3.599
    Симпатии:
    4
    Репутация:
    0
    Адрес:
    Гомель
    Оффлайн
    Значения материала: (1, 3, 3, 5, 10, 0) * 3399 / 32.
  18. Orlov Учаcтник

    • Участник
    Рег.:
    27.02.2007
    Сообщения:
    177
    Симпатии:
    0
    Репутация:
    0
    Оффлайн
    Пешка 106, конь и слон по 318, ладья 531, ферзь 1062. А почему просто не записать в виде констант? К чему эти вычисления?
  19. TopicStarter Overlay

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

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

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

    • Команда форума
    Рег.:
    04.05.2006
    Сообщения:
    3.599
    Симпатии:
    4
    Репутация:
    0
    Адрес:
    Гомель
    Оффлайн
    Упс! Все не так просто, как казалось.
    В Стрелке нет фиксированных материальных весов!

    Все считается по формуле:
    Материал = БазовыйМатериал * 3299 * (ЗначимостьДебютныхПризнаков[стадия] + ЗначимостьЭндшпильныхПризнаков[стадия]) / 8192;

    БазовыйМатериал - это классика 1, 3, 3, 5, 10.
    стадия развития партии определяется по количеству оставшихся на доске фигур (всего 24 стадии).
    Я предположил (не глядя в код), что ЗначимостьДебютныхПризнаков[стадия] + ЗначимостьЭндшпильныхПризнаков[стадия] всегда в сумме дают 256.
    На самом деле нет!

    Например, в самом начале стоимость пешки равна 24 (!!!). На некоторых стадиях достигает 145. И в самом конце (пешечнике) - 100.

    Очень интересный подход.
  21. NS Нефёдов Сергей

    • Заслуженный
    • Ветеран
    • Старожил
    Рег.:
    02.05.2006
    Сообщения:
    6.811
    Симпатии:
    96
    Репутация:
    3
    Адрес:
    Санкт-Петербург
    Оффлайн
    То есть соотношение весов между фигурами/пешками от стадии партии не зависит?
  22. TopicStarter Overlay

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

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

    • Участник
    Рег.:
    21.01.2007
    Сообщения:
    23
    Симпатии:
    0
    Репутация:
    0
    Оффлайн
    А преимущество двух слонов есть?
  24. Сергей С. Питер Старожил

    • Участник
    • Старожил
    Рег.:
    31.03.2006
    Сообщения:
    1.194
    Симпатии:
    60
    Репутация:
    11
    Оффлайн
    Как, интересно, в пешечнике стоимость пешки может быть 100 ( или 1 ) ? Ведь лишняя пешка там в большинстве случаев победа. У Рыбки забавная оценка стоимости фигур в дебюте. Если снять пешку у одной из сторон, то оценка почти не изменится ( без пешки и легче играть ). Отсутствие фигуры означает небольшой перевес типа 1,5 , даже ладью можно снять оценка изменится отнюдь не на классические 5, а гораздо меньше. Точную цифру не помню, но она любого удивит! Хотя без чистой ладьи в дебюте оченнка должна быть более 5, это же чистая победа?!!?)))
  25. Booot Учаcтник

    • Участник
    Рег.:
    05.06.2006
    Сообщения:
    140
    Симпатии:
    0
    Репутация:
    0
    Оффлайн
    Интересная идея (это я про разную стоимость пешки в разной стадии партии). У меня у самого были мысли реализовать это (правда в эндшпиле). Например в ферзевом эндшпиле количество лишних пешек может не быть столь значимым, как в пешечном. Сколько партий видел, где сильная проходная в ферзевом эндшпиле выигрывала против одной, а то и двух лишних (но не проходных) пешек противника. Посему вполне логично в таком эндшпиле снизить стоимость пешки (хоть до 24) - все равно позиционные факторы типа оценки проходной могут быть важнее.
  26. WinPooh В.М.

    • Команда форума
    Рег.:
    13.02.2006
    Сообщения:
    9.491
    Симпатии:
    3.118
    Репутация:
    95
    Адрес:
    Москва
    Оффлайн
    C другой стороны, в окончании обычно очень велика стоимость последней пешки. Очень часто с её исчезновением с доски сторона теряет шансы на выигрыш или ничью.
  27. NS Нефёдов Сергей

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

    • Участник
    Рег.:
    23.10.2006
    Сообщения:
    98
    Симпатии:
    0
    Репутация:
    0
    Адрес:
    Гонду-Раша
    Оффлайн
    Учитывается мобильность всех фигур? Если да, то у ладьи смотрят только мобильность по горизонтали или по вертикалям тоже?
  29. TopicStarter Overlay

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

    • Команда форума
    Рег.:
    04.05.2006
    Сообщения:
    3.599
    Симпатии:
    4
    Репутация:
    0
    Адрес:
    Гомель
    Оффлайн
    Такого отдельного признака нет. Но есть таблица бонусов за материальное соотношение - такие бонусы должны быть там.
    Учитываются все возможные ходы. И горизонтальные и вертикальные - одинаково.
    Я думаю здесь помогают бонусы за материальное соотношение. Никакой специальной обработки таких случаев вроде нет.
    Ты не понял. Это не стоимость пешки разная, а вся ОФ домножается на определенные коэфициенты. Мне мотивы такого не совсем очевидны.
    Это как раз из-за домнажения в дебюте всей ОФ на малые коэфициенты.
  30. Booot Учаcтник

    • Участник
    Рег.:
    05.06.2006
    Сообщения:
    140
    Симпатии:
    0
    Репутация:
    0
    Оффлайн
    "Ты не понял. Это не стоимость пешки разная, а вся ОФ домножается на определенные коэфициенты. Мне мотивы такого не совсем очевидны."

    То есть подсчитали оценки типа openingscore и endgamescore и все оптом домножили на коэффициент, зависящий от стадии партии?
  31. TopicStarter Overlay

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

    • Команда форума
    Рег.:
    04.05.2006
    Сообщения:
    3.599
    Симпатии:
    4
    Репутация:
    0
    Адрес:
    Гомель
    Оффлайн
    Нет, формула такая: Материал = (ЗначимостьДебютныхПризнаков[стадия]*opening + ЗначимостьЭндшпильныхПризнаков[стадия]*endgame) / 8192;
    Просто в дебюте ЗначимостьЭндшпильныхПризнаков[стадия] естественно близок к нулю. А ЗначимостьДебютныхПризнаков[стадия] в разы меньше чем обычно.
  32. Booot Учаcтник

    • Участник
    Рег.:
    05.06.2006
    Сообщения:
    140
    Симпатии:
    0
    Репутация:
    0
    Оффлайн
    Что значит Материал=...? Только материальная оценка по такой формуле преобразуется? А все остальные (пешки, мобильность) постоянны?
  33. TopicStarter Overlay

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

    • Команда форума
    Рег.:
    04.05.2006
    Сообщения:
    3.599
    Симпатии:
    4
    Репутация:
    0
    Адрес:
    Гомель
    Оффлайн
    Забыл подправить. :/
    Нужно читать так:
    ОФ =
  34. Booot Учаcтник

    • Участник
    Рег.:
    05.06.2006
    Сообщения:
    140
    Симпатии:
    0
    Репутация:
    0
    Оффлайн
    А-а! Ну так бы и сказал :). Простое масштабирование ВСЕЙ оценочной функции. Какая в принципе разница сколько стоит пешка: 100 попугаев или 20 если все остальные признаки в пропорциональное количество раз уменьшаются. А вот зачем сделано - вопрос интересный. Могу предположить лишь следующее: в позициях с определенным соотношением материала в принципе один хрен сколько полей доступно фигурам и насколько конь на одном поле лучше коня на другом поле. Куда важнее более крупные позиционные признаки , такие как разность материала или продвинутость проходных. Видимо в этом случае, чтобы всякая позиционная мелочь (типа мобильности и PST) под ногами не путалась и не создавала люфт в виде единиц или десятков сантипешек ее убирают таким масштабированием. Очевидно на большую глубину перебор ведется поскольку теперь нулевое окно из-за всякого чиха лишний раз альфу не превысит :).
  35. WinPooh В.М.

    • Команда форума
    Рег.:
    13.02.2006
    Сообщения:
    9.491
    Симпатии:
    3.118
    Репутация:
    95
    Адрес:
    Москва
    Оффлайн
    Очень даже существенная разница, если попугаи целые.
    Как известно, в языке Си деление целочисленное: 5/3 == 1, a 3/5 == 0.

    Так что было у нас в позиции, например: бонус в 3 сантипешки за коня на скаку, и 10 сантипешек за горящую избу. А теперь делим на 5. Лошадка-то из рассмотрения и выпадает...

    В общем, пора на double переходить. При нынешних скоростях CPU разница в скорости неощутима.

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