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

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

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

    • Заслуженный
    • Ветеран
    • Старожил
    Рег.:
    02.05.2006
    Сообщения:
    6.811
    Симпатии:
    96
    Репутация:
    3
    Адрес:
    Санкт-Петербург
    Оффлайн
    Насчет скорости, не будет ли медленно смотреть во время оценки двухшашечные комбинации (Две простые одного цвета). При наличии всех 12-ти простых у одной стороны на доске - всего 66 признаков на доске :)
    При 10-ти шашках на доске уже всего 45 - так что просмотр двухшашечных комбинаций весьма быстр.
  2. NS Нефёдов Сергей

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

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

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

    • Заслуженный
    • Ветеран
    • Старожил
    Рег.:
    02.05.2006
    Сообщения:
    6.811
    Симпатии:
    96
    Репутация:
    3
    Адрес:
    Санкт-Петербург
    Оффлайн
    Думаю что зависимость будет очень слабая...
    Прикинул потери силы против сильных соперников от умения выигрывать у слабых... Нет никаких потерь.
    Если мы отсекаем при достижении ЭБ5, а сокращаем и корректируем оценку при достижении ЭБ6 - то кикие могут быть потери? Неужели ЭБ5 намного слабее ЭБ6?
    Тем более что дерево увеличивается в размерах по сравнению с использованием ЭБ6 на сущие копейки.
  5. NS Нефёдов Сергей

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

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

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

    • Заслуженный
    • Ветеран
    • Старожил
    Рег.:
    02.05.2006
    Сообщения:
    6.811
    Симпатии:
    96
    Репутация:
    3
    Адрес:
    Санкт-Петербург
    Оффлайн
    По нескольким алгоритмам - часть порожденных - случайное изменение случайного параметра (одного) Random(41)-20 То есть +-20, часть - группы параметров
    Random(21)-10.
    Колебания как раз нерезкие. За последние два дня изменения просто копеечные.
  8. NS Нефёдов Сергей

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

    161 200 167 214
    117 181 157 153
    145 188 163 165
    197 121 163 182
    183 218 111 134
    170 196 183 182
    156 118 165 164


    a1 опять в верхнем левом углу :)
  9. TopicStarter Overlay

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

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

    Ладно, на этих выходных тоже займусь генной модификацией своей проги :)
  10. NS Нефёдов Сергей

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

    • Заслуженный
    • Участник
    • Старожил
    Рег.:
    12.02.2006
    Сообщения:
    2.201
    Симпатии:
    64
    Репутация:
    3
    Оффлайн
    В связи с этим, хочу предложить лозунг:
    Остановим отток программистов в шашки! :rolleyes:
  12. TopicStarter Overlay

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

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

    • Заслуженный
    • Участник
    • Старожил
    Рег.:
    12.02.2006
    Сообщения:
    2.201
    Симпатии:
    64
    Репутация:
    3
    Оффлайн
    Вот это я понимаю!..... А как будут проходить эксперименты? И как будут реализоваваться результаты оных? В виде таблиц, как у рыбки?
  14. TopicStarter Overlay

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

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

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

    Типа a1 тоже в левом верхнем углу? :)
  16. Fruit Александр

    • Заслуженный
    • Участник
    • Старожил
    Рег.:
    12.02.2006
    Сообщения:
    2.201
    Симпатии:
    64
    Репутация:
    3
    Оффлайн
    А что за параметры? Столько и не придумаешь. :)
  17. Fruit Александр

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

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

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

    • Команда форума
    Рег.:
    04.05.2006
    Сообщения:
    3.599
    Симпатии:
    4
    Репутация:
    0
    Адрес:
    Гомель
    Оффлайн
    Зачем новые? Хотя бы со старыми разобраться, для начала.
  20. Fruit Александр

    • Заслуженный
    • Участник
    • Старожил
    Рег.:
    12.02.2006
    Сообщения:
    2.201
    Симпатии:
    64
    Репутация:
    3
    Оффлайн
    Сергей Марков, когда проверял настройку весов (правда, другим способом - по базе), говорил, что интуитивно правильно всё настроил. Не думаю, что у WildCat c этим хуже!
  21. NS Нефёдов Сергей

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

    • Заслуженный
    • Участник
    • Старожил
    Рег.:
    12.02.2006
    Сообщения:
    2.201
    Симпатии:
    64
    Репутация:
    3
    Оффлайн
    Мож я неправильно варазился? :rolleyes: Дались ему эти +5 пунктов, которые не столько трудно получить, сколько трудно подсчитать. :D
  23. NS Нефёдов Сергей

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

    Посчитать ничего не трудно, программа сама считает. У меня на её написание ушло всего несколько часов, и теперь этот стенд можно использовать для настройки любого набора признаков. Сколько времени он хорошо настраивал вручную? Вот как раз ручная настройка - значительно менее точна, и намного более ресурсоемка...


    Представляю себе математика находящего экстремум плохой функции от сотни парметров вручную :)
  24. TopicStarter Overlay

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

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

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

    • Команда форума
    Рег.:
    04.05.2006
    Сообщения:
    3.599
    Симпатии:
    4
    Репутация:
    0
    Адрес:
    Гомель
    Оффлайн
    Сделал поддержку персоналитей. Причем добавление нового параметра к персоналити всего-лишь одна строчка. Вот как оно выглядит для моей упрощенной ОФ:
    Код:
    Personality::Personality(char *name)
    {
        strcpy(file, name);
    
        RegisterArray("PieceValue", 5, 20, PieceValue);
        RegisterArray("Bonus_Passer", 6, 10, BONUS_PASSER + 2); // два первых значения не используются
    
        RegisterSingle("BishopPair", 10, &BONUS_BISHOP_PAIR);
        RegisterSingle("Penalty_Shield_Missing_Two", 3, &PENALTY_SHIELD_MISSING_TWO);
        RegisterSingle("Penalty_Shield_Missing_One", 3, &PENALTY_SHIELD_MISSING_ONE);
    
        RegisterMap("Pawn_PST", 64, 5, Map64, PST_PAWN);
        RegisterMap("Knight_PST", 64, 5, Map64, PST_KNIGHT);
        RegisterMap("Bishop_PST", 64, 5, Map64, PST_BISHOP);
        RegisterMap("King_Hide_PST", 64, 5, Map64, PST_KING_HIDE);
        RegisterMap("King_Center_PST", 64, 5, Map64, PST_KING_CENTER);
    }
    Теперь буду генетику делать (спаривание уже готово).
  26. NS Нефёдов Сергей

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

    То есть например в моем случае - спуск с случайными выбором направления...
  27. Fruit Александр

    • Заслуженный
    • Участник
    • Старожил
    Рег.:
    12.02.2006
    Сообщения:
    2.201
    Симпатии:
    64
    Репутация:
    3
    Оффлайн
    Да, я шучу! Удачи, в этом интересном деле! Для затравки вот: http://www.vrichey.de/cct6/index_table.htm
    Начало 2004г, Рыбка на предпоследнем 53-м месте, WildCat на 22-м. Пора восстановить историческую сложившуюся традицию. ;)
  28. TopicStarter Overlay

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

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

    Контроль будет 0.1 сек на ход.
  29. NS Нефёдов Сергей

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

    Ну ничего - теперь потихоньку вся эта дрянь из организма выйдет, мозг и нервная система восстановятся - всех побью :) Во все игры :)
  30. Orlov Учаcтник

    • Участник
    Рег.:
    27.02.2007
    Сообщения:
    177
    Симпатии:
    0
    Репутация:
    0
    Оффлайн
    вопрос по поводу автоматического подбора параметров, если не очень надоел :) Параметры ОФ выставляются руками или это делает спецоболочка ? :)
  31. NS Нефёдов Сергей

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

    Сейчас таким способом настраивается ОФ в русских шашках, в скором времени запущу и для шахматной программы (отлаживать алгоритмы проще как раз на шашках)
  32. NS Нефёдов Сергей

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

    • Участник
    Рег.:
    27.02.2007
    Сообщения:
    177
    Симпатии:
    0
    Репутация:
    0
    Оффлайн
    Не понял. Если выставил веса в ручную, откомпилировал прогу, то как она может их поменять ?
    Другое дело, если этот вес - переменое значение и оболочка способна сама подменять значение в зависимости от результата (уменьшать или увеличивать) Тогда понятно. Или я чего-то не догоняю.
    Извини за отобранное время :)
  34. NS Нефёдов Сергей

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

    • Участник
    Рег.:
    27.02.2007
    Сообщения:
    177
    Симпатии:
    0
    Репутация:
    0
    Оффлайн
    Вроде бы въехал. Какое значение берешь за отправную точку? Каков шаг (inc/dec) если не секрет ?
    Кол-во партий для одной итерации ?
    В принципе такую оболочку написать наверное не очень сложно ? (графикой и прочими делами в данном случае думаю необходимо пренебречь) Так ?

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