Rybka explained?

Тема в разделе "Машинное отделение", создана пользователем WinPooh, 2 ноя 2006.

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

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

    Но вероятность сбоя минимальна... То-же самое что получить ноль генератором СЧ.
  2. NS Нефёдов Сергей

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

    WinPooh В.М.

    • Команда форума
    Рег.:
    13.02.2006
    Сообщения:
    9.491
    Симпатии:
    3.118
    Репутация:
    95
    Адрес:
    Москва
    Оффлайн
    Офтопик чтобы разрядить обстановку.
    Помнится, на микрокалькуляторе МК-61 был славный ГСЧ, с максимальным периодом что-то около полутора сотен :)

    Но это если его правильно готовить ©. На практике обычно выходило ещё хуже, последовательность сваливалась к какому-то совсем короткому отрезку :)
  4. Сергей Марков Учаcтник

    • Участник
    Рег.:
    13.05.2006
    Сообщения:
    136
    Симпатии:
    6
    Репутация:
    0
    Оффлайн
    Я все это уже пробовал без видимых результатов. Например у меня была версия, которая оценивала сочетание наличия фигур.
  5. TopicStarter Overlay

    WinPooh В.М.

    • Команда форума
    Рег.:
    13.02.2006
    Сообщения:
    9.491
    Симпатии:
    3.118
    Репутация:
    95
    Адрес:
    Москва
    Оффлайн
    Имеется в виду - бонус за двух слонов, за ферзя с конём и т.п.?
    Или более сложные сочетания?
  6. NS Нефёдов Сергей

    • Заслуженный
    • Ветеран
    • Старожил
    Рег.:
    02.05.2006
    Сообщения:
    6.811
    Симпатии:
    96
    Репутация:
    3
    Адрес:
    Санкт-Петербург
    Оффлайн
    насчет частоты ходов - за черных Na5, Nh5. Но на этих полях коню нужно давать МИНУС, конь на краю доски, а частота таких ходов велика, и делается он для размена/прогона слона a4,c4,b3/f4,h4,g3 а не потому что там конь стоит хорошо.
  7. Сергей Марков Учаcтник

    • Участник
    Рег.:
    13.05.2006
    Сообщения:
    136
    Симпатии:
    6
    Репутация:
    0
    Оффлайн
    Просто все возможные комбинации материала.
  8. NS Нефёдов Сергей

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



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

    Для не изолированных:
    Проходная/слабая
    Проходная/не слабая
    Не проходная/слабая
    Не проходная/не слабая.

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

    Трех-фигурным сочетанием даже получаем сильного коня против слабого слона!!!
  9. Сергей Марков Учаcтник

    • Участник
    Рег.:
    13.05.2006
    Сообщения:
    136
    Симпатии:
    6
    Репутация:
    0
    Оффлайн
    Давайте не будем спорить, а просто попробуем. Практика — критерий истины © Карл Маркс ;)
  10. Сергей Марков Учаcтник

    • Участник
    Рег.:
    13.05.2006
    Сообщения:
    136
    Симпатии:
    6
    Репутация:
    0
    Оффлайн
    Да я не против. Только это сложно. Мне бы потребовалось очень много времени, чтобы реализовать, а уж сколько времени на отладку :( :(
  11. NS Нефёдов Сергей

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

    Парсер PGN есть - получить PGN с оценками - ничего писать не надо.
    ОФ есть - надо заменить вычисление оценки, просто тупым подсчетом количества признаков.
    А уж решить систему уравнеений, либо посчитать матрицу - это уже задача элементарная.


    Я для начала попробую на шашках.
    Но в шашках не на существующих признаках, а как раз одно-двухшашечные комбинации - тут минимум писанины, и получаем какие-то веса.
    А с настройкой весов вручную с тестовыми матчами - даже по одной шашке - мучений уже выше крыши.
  12. варяг Учаcтник

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

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

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

    • Заслуженный
    • Участник
    • Старожил
    Рег.:
    12.02.2006
    Сообщения:
    2.201
    Симпатии:
    64
    Репутация:
    3
    Оффлайн
    А после того как слон прогнан, что делает конь? :)... Думаю, если ход Na5 или Nh5 совсем плох, то "Если находим, то прибавляем к оценке х * С" никак не поможет его выбрать и будет сделан другой ход. Ибо, в данной пешечной структуре, у нас будет насколько "типичных" ходов и мы сможем выбирать. Разве не так?....
  16. NS Нефёдов Сергей

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

    Я наоборот не могу найти пример, где хороший ход (хорошее поле для фигуры) получил бы плюс.
    Старушка Nh5, Ne8 - первый вызван желанием пойти f5 либо переброска коня на f4 (где он дейтвительно стоит хорошо) Второй заставляют делать белые для защиты d6 и с7, ну и так-же он вызван желанием провести f5. И там и там конь стоит плохо, и бонус за коня на этом пункте давать нельзя.
  17. Fruit Александр

    • Заслуженный
    • Участник
    • Старожил
    Рег.:
    12.02.2006
    Сообщения:
    2.201
    Симпатии:
    64
    Репутация:
    3
    Оффлайн
    Надо проверить, что точно слабее, вдруг нет :) Бонус, ведь, не безмерный, так?
    Касательно старушки с ходами Kh5 и Ke8.....И там и там конь стоит плохо. Согласен. Но знатоки, умельцы разыгрывать староиндийскую защиту, всегда так играют! Пока структура(пешки d6 c7) сохраняется коня нужно держать именно на поле е8 (исключения прога сама найдёт).....Если план Kh5-Kf4 возможен, то его нужно проверять в первую очередь.
  18. Сергей Марков Учаcтник

    • Участник
    Рег.:
    13.05.2006
    Сообщения:
    136
    Симпатии:
    6
    Репутация:
    0
    Оффлайн
    В третий раз напоминаю, что я предложил не считать частоту стояния на поле, а считать отношение частот для среднестатистического случая и для отдельной структуры.
  19. NS Нефёдов Сергей

    • Заслуженный
    • Ветеран
    • Старожил
    Рег.:
    02.05.2006
    Сообщения:
    6.811
    Симпатии:
    96
    Репутация:
    3
    Адрес:
    Санкт-Петербург
    Оффлайн
    Ты не понял - программа, если в ней бонус за поле a5 будет ходить туда не чтоб прогнать слона, а будет там его держать. То-же и с h5. Будет его просто туда ставить. И там конь будет стоять всю партию. :)
    Так-же и с e8 - вместо того чтоб переводить коня на f6 (после хода f5) для поддержки пешек - будет держать его на e8.
    И белые - не будут никуда давить, чтоб провоцировать перевод коня на "сильное" поле e8, слона на "Сильное поле" f8, Ладью на поле f7 и т.д....

    Во многих дебютах слон будет стоять на f8 без всяких угроз со стороны соперника...
  20. Сергей Марков Учаcтник

    • Участник
    Рег.:
    13.05.2006
    Сообщения:
    136
    Симпатии:
    6
    Репутация:
    0
    Оффлайн
    Да все я понял. Оценка же будет складываться с psq, ты не забывай. Если проблема будет возникать на практике, то будем либо добавлять бонус от номера хода или фильтровать позиции, это вопрос десятый. Пока что бонусы получат как е8, так и f6. Бонус будет сравнительно небольшим. По-любому это должно быть лучше "голых" psq. Ты лучше не критикуй, а реализую свою модель. Все равно лучшего критика, чем практика, нет.
  21. Fruit Александр

    • Заслуженный
    • Участник
    • Старожил
    Рег.:
    12.02.2006
    Сообщения:
    2.201
    Симпатии:
    64
    Репутация:
    3
    Оффлайн
    Так можно до бесконечности приводить случаи за и против. :) f5 получит наибольший бонус, а после него структура поменяется и Кf6 будет встречаться чаще. :p На h5 будет стоять пока на изменится структура и т.п. Хотя, возможно, и будет глючить, как ты сказал....В любом случае, мне интересно проверить, как это изменит игру программы ( и силу, и стиль)
  22. NS Нефёдов Сергей

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

    И ще одна проблема - есть труднодоступные поля, на них фигура будет попадать реже, и вес их будет занижен, а есть легкодоступные поля - на них фигура будет попадать чаще, и несмотря на то что они хуже - их вес будет выше. И насчет хода - ценность представляет не сам ход на поле, а то что фигуру держат на поле длительное время.
    Например конь идет с f3 на d3. Ходов на поле e1 и на поле d3 будет одинаково (по одному разу - так как в старушке это стандартный маршрут), то есть мы получим для них одинаковую статистику, а вот ценность поля e1 нулевая (отрицательная) - это транзитное поле, а поля d3 положительная - это сильное поле (поддерживает продвижение с5)!

    Если бы мы собирали статистику хороших ходов (кто,откуда, куда) и использовали её для продлений (например на ходе Nf3-d1 продляем, или просто не сокращаем по LMR), то тут статистика ходов - самое то.

    Но пока не попробуешь ничего утверждать нельзя. Например пока не попробуешь безусловную ладью на седьмой - поверить что она даст ухудшение очень тяжело. :)
  23. TopicStarter Overlay

    WinPooh В.М.

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

    Вычислительная математика - коварная штука :)
  24. NS Нефёдов Сергей

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

    Но что-то я не представляю чтоб сработал признак с большим весом - если он встречается в большом количестве позиций - у нас квадрат отклонения в любом случае жутко возрастет.

    Проще посчитать и посмотреть что выйдет. Но насколько мне известно таким способом считали веса фигур - всё получилось нормально. И нестабильность системы возможна только при недостатке тестовых позиций.

    У нас материал - набор признаков с большим весом, и наиболее часто встречающийся в позициях :) будет держать систему.
  25. Сергей Марков Учаcтник

    • Участник
    Рег.:
    13.05.2006
    Сообщения:
    136
    Симпатии:
    6
    Репутация:
    0
    Оффлайн
    Пробовал — не работает.
  26. NS Нефёдов Сергей

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

    • Участник
    Рег.:
    13.05.2006
    Сообщения:
    136
    Симпатии:
    6
    Репутация:
    0
    Оффлайн
    Потому что есть закон больших чисел, и потому, что сильные игроки, партии которых в базе, до мата точно не играют.
  28. NS Нефёдов Сергей

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

    ОФ же видит Фактический материал на доске, и не сможет приравнять значение Фактической оценки (по материалу на доске) к оценке выданной программой при помощи перебора.

    В среднем возможно будет одинаковое отклонение в обе стороны. Но при этом вырастет сумма квадратов разниц, и сильнее влиять на минимизацию разниц будут не стабильные позиции, а вот именно эти с перекошенным соотношением материала на доске (и не соответствующей ему ОФ)

    Насчет игры до мата - всякое случается, иногда гроссы зевают мат, а выдать допустим +35000 ОФ по фактической позиции не сможет :)

    Я есно говорю про предложенный мной метод подгонки весов :)
  29. NS Нефёдов Сергей

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

    • Команда форума
    Рег.:
    05.02.2006
    Сообщения:
    2.949
    Симпатии:
    9
    Репутация:
    0
    Адрес:
    USA
    Оффлайн
    Надеюсь ты использовал для решения BLAS или что-то подобное. Например GSL, а не сам писал? ;) Опыт подсказывает, что быстродействие сильно вырастает при использовании библиотек
  31. NS Нефёдов Сергей

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

    Рег.:
    02.11.2006
    Сообщения:
    240
    Симпатии:
    0
    Репутация:
    0
    Оффлайн
    NS жду от вас движок силой 2700++ думаю сможете.
  33. NS Нефёдов Сергей

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

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

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

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