Автоматический подбор параметров движка

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

  1. NS
    Оффлайн

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

    Репутация:
    3
    Актуально. Посчитав, и получив распределение силы порождаемых особей мы получим нужную формулу для точного вычисления необходимого количества кругов.


    Например при такой формуле силы порождаемых
    if Random()>0.60 Then Rating:=Rating[1]+Random(21)
    Else Rating:=Rating[1]-Random(21);

    оптимален один круг 30-ти особей...
     
  2. Orlov
    Оффлайн

    Orlov Учаcтник

    Репутация:
    0

    Понятно. Судя по результатам первой ночи предки мрут как мухи.
    Вот и последний из магикан сдался:
    8. 0.prs -8
    Ооооочень долго держался :)
     
  3. WildCat
    Оффлайн

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

    Репутация:
    0
    Вот версия с новым форматом 30 в 4 круга - www.igorkorshunov.narod.ru/WildCatGenetic.rar (также немного увеличен уровень мутаций).
    Нужно удалить файл "gen_res.txt".
    Можно взять лучшую версия от прошлых тестов и переименовать ее в 0.prs, тогда она будет взята в качестве базовой. Остальных можно удалить.
     
  4. Orlov
    Оффлайн

    Orlov Учаcтник

    Репутация:
    0
    После почти 29 часов счета таблица выглядит так:

    1. 57.prs 10
    2. 34.prs 7
    3. 66.prs 6
    4. 20.prs 4
    5. 65.prs -1
    6. 58.prs -1
    7. 68.prs -3
    8. 59.prs -4
    9. 64.prs -7
    10. 67.prs -11

    Подлежит переименованию 57.prs? Правильно я понял?
     
  5. WildCat
    Оффлайн

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

    Репутация:
    0
    Правильно.
     
  6. NS
    Оффлайн

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

    Репутация:
    3
    Медленно это всё, и явно ста итераций для нахождения экстремума недостаточно.

    За последние 8 часов счета у меня прибавка всего 10 пунктов. Один пункт Эло в час.
    Поближе к экстремуму подойдет - скорость еще упадет.
     
  7. WildCat
    Оффлайн

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

    Репутация:
    0
    Эволюция - медленный процесс, к сожалению.
     
  8. Chemer
    Оффлайн

    Chemer Максим

    Репутация:
    0
    2WildCat. И что когда экстремум будет найден, кошка заиграет в силу карася?
     
  9. WildCat
    Оффлайн

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

    Репутация:
    0
    Нет :)
    Пока не известно в какую силу она заиграет. Может прибавиться 10 пунктов и все.
     
  10. NS
    Оффлайн

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

    Репутация:
    3
    В любом случае придется увеличивать количество параметров в ОФ.
     
  11. Chemer
    Оффлайн

    Chemer Максим

    Репутация:
    0
    Я когдато в исинтуте занимался многомерной оптимизацией, даже дипломную работу по ней сделал. Для оптимизации нужна собственно сама целевая функция (в данном случае, я так понял это прибавка ЭЛО), параметры (это наверное позиционные веса для фигур), и ограничения, без которых можно много чего найтить (локальные экстремумы, разрывы, вырождения). Интересно, как вы описывали ограничения. И скольки мерная оптимизация получается? И как вы опредилите, что вы нашли глобальный экстремум? Я думаю, что его найти можно проверить, подставив сначала одни начальные условия, получить результат, а потом поставить другие сильно отличные от первых начальные условия, и получить тотже результат.
     
  12. NS
    Оффлайн

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

    Репутация:
    3
    Целевая функция это не прибавка, а сама сила игры (её максимизируем)

    В ветке было уже написано - да, это задача поиска экстремумов функции.
    У меня функция на данный момент от 82 параметров.

    Абсолютно не обязательно. Какие ограничения для спусков?

    Насчет алгоритмов, способов определения локальности экстремумов, и методов поиска именно глобального - всё в ветке есть.
     
  13. NS
    Оффлайн

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

    Репутация:
    3
    Насчет ограничений - это у Вас в голове всё перемешалось - Вы сюда еще и задачу линейного программирования приплели...
     
  14. Orlov
    Оффлайн

    Orlov Учаcтник

    Репутация:
    0
    Имется ввиду дельта (приращение) для каждой переменной. Например для слона который оценен у кошки в 400 у.е. (как я понял) она не может быть больше к примеру 30-40.
     
  15. NS
    Оффлайн

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

    Репутация:
    3
    Какая связь дельты, шага и т.д в спусках с ограничениниями?

    Ограничения нужны только если Экстремум достигается не при конечных параметрах, и когда по условиям эти ограничения есть - у нас нет ограничения "написать сильнейшую шахматную программу, но так чтоб слон стоил не больше трех пешек" :)

    Насчет выбора дельты и шага написано по приведенным выше ссылкам.
     
  16. Orlov
    Оффлайн

    Orlov Учаcтник

    Репутация:
    0
    В частном случае - дельта это и есть органичение за которое данная конкретная переменная не может выскочить. Именно это и имелось ввиду предыдущим оратором. :)
     
  17. NS
    Оффлайн

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

    Репутация:
    3
    Нет, предыдущим оратором имелись в виду именно ограничения на область определения функции. Которые используются например в задаче линейного программирования, и в задачах теории расписаний.
     
  18. Orlov
    Оффлайн

    Orlov Учаcтник

    Репутация:
    0
    В случае со стоимостью фигур смею предположить что вариации типа:

    384 382 600 1200
    388 395 600 1200 и т.д. вообше ничего не дадут так как это не привязано к конкретной позиции.
    Уж лучше варировать значениями так называемой подвижности для каждой из фигур.
     
  19. WildCat
    Оффлайн

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

    Репутация:
    0
    Проблема в том, что функция как бы и есть, но вычислить мы ее все равно не можем. Мы вычисляем ее приближенно. И то это занимает очень много времени.
     
  20. NS
    Оффлайн

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

    Репутация:
    3
    Никакая ОФ, никакие изменения её не дадут ничего, так как значения весов в ОФ и сам её вид привязаны к конкретной позиции. И так-же ничего не даст изменение переборных алгоритмов, так как в каждой конкретной позиции оптимальными являются разные переборные алгоритмы. Поэтому нет смысла писать программы, а лучше, например, купить ящик пива и с пользой провести время! :)

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

    А вот именно этот - конечно-же ни к чему не привязан!
     
  21. NS
    Оффлайн

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

    Репутация:
    3
    Это не проблема, так как на практике все задачи поиска экстремумов именно таковы - значение функции мы можем вычислить только с некоторой точностью, а производные вынуждены вычислять через значения функции в кокнретных точках.
     
  22. Orlov
    Оффлайн

    Orlov Учаcтник

    Репутация:
    0
    Значения весов как раз-таки привязаны к позиции, а стоимость фигур - нет! Конь что на Е4 -400, что A5- 400. Что касается переборных алгоритмов ... Ну тогда все бы сидели пили пиво и все программы играли бы в одинаковую силу. Ан нет!
     
  23. NS
    Оффлайн

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

    Репутация:
    3
    http://www.tstu.ru/education/elib/pdf/2004/bodrov.pdf

    Вот еще ссылка.

    Насчет дельты рекомендации звучат обычно так
    "Дельта не должна быть достаточно малой, чтоб погрешность вычислений значений функции не была большой по отношению к изменению значений функции"

    На практике - при большой дельте мы вообще никуда не пойдем, будем стоять в одной точке, а при малой - пойдем в случайном направлении, абсолютно необязательно в сторону экстремума.
     
  24. NS
    Оффлайн

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

    Репутация:
    3
    Вы путаете - Все сидели и пили бы пиво по вашей логике... А с нормальной точки зрения, что все вынесенные параметры в ОФ влияют на Силу игры (не в конкретной позиции, а вообще на силу) - как раз всё хорошо.

    И ваша логика по поводу оценки ничем не отличается от моих рассуждений по поводу переборных алгоритмов.

    Чтоб понимать принципы действия шахматных программ и обсуждать их - сначала нужно их понять, и хотя-бы почитать соответствующую литературу. Конь на E4 и на A5 имеет разную стоимость. Почитайте про табличную оценку стоимости фигур и пешек в шахматах.
     
  25. Orlov
    Оффлайн

    Orlov Учаcтник

    Репутация:
    0
    Успел уже прочитать. Не надо запутывать меня и других. Ничего сложного для понимания здесь нет.
    Стоимость коня есть константа. А его стоимость на А5 и Е4 отличается за счет бонуса который Вы плюсуете ему из таблицы.
     
  26. NS
    Оффлайн

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

    Репутация:
    3
    Для примера - силы игры программы с оценкой только по материалу оценивается в 1400 пунктов ЭЛО. Программа с оценкой только по координате (то есть без привязки к конкретной позиции оценка каждой фигуры зависит только от поля на котором она находится, ничего другого в ОФ нет) играет на 2300.
    Признак который по вашему мнению не влияет на силу игры программы, а если и влияет то только в конкретных позициях - на самом деле стоит 900!!! пунктов Эло.
     
  27. WildCat
    Оффлайн

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

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

    Вот пример: стоимость коня 400, гораздо правильней, чем стоимость коня в 100 (эталон это пешка в 100).
    Но где гарантия, что 400 - это именно то значения, которое справедливо для большинства позиций?

    Вот мы и пробуем его менять. И смотрим что получается.

    Если есть идеи как улучшить подсчет материала, то их тоже можно пробовать.
     
  28. NS
    Оффлайн

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

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

    Например программа с оценкой фигур 1,3,3,5,9 будет играть заметно слабее программы с оценками 1,4,4,6,11
    А баланс стоимость Ладьи/Легкой фигуры/пешки вообще очень важен, с неправильным балансом начинаются нелепые жертвы качества и нпример жертвы Двух фигур за Ладью и пешку, и неверные размены легких фигур. И стоимость фигур влияет на силу ну никак не меньше мобильности, а сам учет мобильности прибавляет к силе не так уж и много.
     
  29. Orlov
    Оффлайн

    Orlov Учаcтник

    Репутация:
    0
    Я не говорил что позиционные состовляющие не влияет на силу игры!!! Речь шла о том, что конь есть величина постоянная. А оценка позиции складывается eval_weight = material_weight + positional_weight;
    Так зачем варировать стоимостью фигур? Изменяйте позиционные признаки, которые привязываются(худо-бедно) к позиции, которые боль-мень способны отразить динамику позиции.
     
  30. NS
    Оффлайн

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

    Репутация:
    3
    Ужас, повторение исторических веток из соседнего раздела.

    Сотый раз повторю - eval_weight = material_weight + positional_weight так-же, как и 4 это всегда 2+2. Стоимость фигуры такой-же признак как и все остальные, и ничем не хуже остальных. А табличная стоимость без привязки к конкретной позиции - признак дающий на порядок большую прибавку к силе, чем мобильность... (Если сравнивать с программой с оценкой только по материалу)

    Потому что варьирование стоимостью фигур прибавляет к силе достаточно много, и ничем не хуже изменения веса мобильности.
     
  31. WildCat
    Оффлайн

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

    Репутация:
    0
    Таких сравнений еще не делали. Может мобильность добавленная к голому материалу даст тоже очень много.

    "Ничем не хуже" - это очень осторожно :)
    Стоимость фигур намного важнее, чем мобильность.

    Orlov Прочитай мой пост #202.
     
  32. NS
    Оффлайн

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

    Репутация:
    3
    Мобильность дополнительно к материалу дает копейки, так как программа... Разрушает прикрытие собственного короля! :)
    Нужна либо защищенность, либо табличная оценка пешки.

    А при Табличной оценке - разрушения прикрытия нет :)

    Табличная оценка позволяет централизовывать Фигуры, проводить пешки в ферзи в эндшпиле, не портить позицию собственного короля в миттельшпиле (и не дает бежать королю в центр)
    А что дает мобильность слона? Насколько она лучше просто табличной оценки слона по положению на доске?

    И действительно ценность представляет только мобильность слона, так как количество битых конем полей зависит только от его положения на доске, мобильность Ферзя в дебюте только вредит, мобильность Ладьи дает не так много.
     
  33. WildCat
    Оффлайн

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

    Репутация:
    0
    Так мобильность можно по всякому делать. Ее можно сделать так, что она не будет ничего портить, а будет всему помогать. И не хуже ценности полей.
     
  34. NS
    Оффлайн

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

    Репутация:
    3
    Ну... 900 пунктов получить на мобильности всяко не получится.
    А вот на табличной оценке удается :)

    Если говорить о прибавках по сравнению с оценкой только по материалу.
     
  35. WildCat
    Оффлайн

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

    Репутация:
    0
    Особого смысла говорить об этом нет.