Вот, наконец, и конструктивное доказательство известной теоремы, сформулированной ещё Ландау. О том, что есть расстояние, с которого женщина выглядит наиболее привлекательно (т.к. для расстояний 0 и бесконечность оптимум, очевидно, не достигается).
Интересно, насколько можно усилить программу исключительно подстройкой параметров? Недавно много обсуждали программу Жираф, там автор использовал машинное обучение не только для оценки, но и для настройки эвристик поиска и сортировки ходов. Правда, программа не очень сильная пока что, где-то 2300-2400.
> Та же партия в Го в определённый момент превращается в поединок интуитивных догадок, то есть сваливается в неалгоритмизируемую по сложности и по неопределённости задачу.
Боты на КГС, играющие в силу 5-6 любительского дана (то есть способные обыграть в Го 99.9% населения Земли), решительно не согласны с неалгоритмизируемостью задачи.
Стоит ещё заметить, что в результате массированного применения этого самого кое-чего данные технологии снова могут оказаться востребованными. Ну, возможно, не сразу, лет 30-50, а то и 100 должно будет пройти…
В Zobrist hash для шахматной позиции ещё неплохо добавить XOR-слагаемые, зависящие от прав сторон на рокировку и взятие на проходе. Накладные расходы минимальные, при этом ликвидируется большой класс потенциальных коллизий. Программа реально начинает играть сильнее.
При большом количестве частиц количество вычислений методом «в лоб» будет расти квадратично, что не очень хорошо. Ведь на движение каждой частицы наибольшее влияние оказывают её ближайшие соседи. Если не нужна сверхвысокая точность (а задача многих тел точно не решается даже численно), можно ограничиться только ими.
Попробуйте реализовать модель с меньшей алгоритмической сложностью. В качестве отправной точки рекомендую, например, event driven collision model. Она в общих чертах рассмотрена в книге «Алгоритмы» Седжвика и его же курсе «Algorithms I» на Курсере.
Программа Deep Thought (предшественница Deep Blue) училась именно на партиях людей. Это был конец 80-х — компьютеры как раз приближались по рейтингу к людям, но ещё им уступали.
Вот статья о том, как настраивали её оценку: www.tim-mann.org/DT_eval_tune.txt
Думаю, что компьютерам уже поздно учиться у людей, так как они обогнали их в шахматах навсегда — на 600 пунктов Эло и больше. Поэтому вопрос индивидуального стиля в сравнении с людьми не стоит — как не стоит он в игре гроссмейстера с разрядником (более сильный шахматист может выиграть как угодно — хоть в стиле Морфи с лихой атакой, хоть в стиле Карпова с позиционным зажимом).
Персональные стили в основном нужны для развлекательных программ, вроде Чессмастера. Кстати, GreKo тоже участвует в качестве основного движка в одной из таких оболочек: LucasChess.
Пол Морфи — мой любимый шахматист, с его партий я начал. Увы, алгоритм сошелся к абсурдным значениям — с отрицательной стоимостью коня. Думаю, причина в том, что в базе для Морфи было слишком мало партий, он всё-таки недолго играл. Другой причиной может быть большое число партий, где он давал фору.
Уже не в первом комментарии встречаются рассуждения вида «а вот в такой-то позиции оценка материала будет давать сбой, потому что на самом деле там выигрыш/ничья за белых/чёрных...».
Конечно, всё это так! Шахматы — игра очень конкретная, никакого магического рецепта для оценки позиции нет и быть не может. Только счёт, счёт и счёт. Плюс разумная оценка на листьях :)
СТАТЬЯ — О ДРУГОМ.
Нам известно, что в оценку компьютера всегда входит материал — фигурам присваиваются определённые веса. Присваиваются чаще всего по интуиции или по традиционным меркам. Цель статьи — найти эти веса каким-то более определённым методом, чем «с потолка», дать им некоторое математическое обоснование. НЕ ОТКАЗЫВАЯСЬ ОТ ДРУГИХ ЧЛЕНОВ В ОЦЕНКЕ. А дополняя их.
В принципе, код достаточно простой, написан в стиле «C++ как улучшенный C». Попробуйте скачать и поразбираться — начать лучше всего с класса Position. Если возникнут вопросы, всегда готов ответить, пишите тогда в личную переписку…
Пока не пробовал. Теоретически, конечно, она может быть лучше, но потребуется большее количество данных для обучения, и количество коэффициентов сразу резко возрастает — вместо пяти весов фигур надо будет рассматривать 10x10 = 100 коэффициентов (включая линейные и перекрёстные члены в квадратичной форме).
Мне кажется более интересным подход, который был реализован в Рыбке — большая таблица со статистикой для всех возможных соотношений материала. Она занимает несколько мегабайтов, и даёт усиление игры до 50 пунктов Эло, если я правильно помню.
Извините, не понял, о каком потенциале идёт речь? Насколько я помню из курса общей физики, магнитное поле непотенциально.
«Подъезжая к сией станцыи и глядя на природу в окно, у меня слетела шляпа.»
Скидывайте core dump!
Ну, или хотя бы stack trace…
А чем «наиболее оптимальный» отличается от просто «оптимального»?
Да, и Comb sort — это просто другое название для сортировки Шелла, или там есть какие-то принципиальные отличия в алгоритме?
arxiv.org/pdf/1509.01549v2.pdf
Боты на КГС, играющие в силу 5-6 любительского дана (то есть способные обыграть в Го 99.9% населения Земли), решительно не согласны с неалгоритмизируемостью задачи.
Попробуйте реализовать модель с меньшей алгоритмической сложностью. В качестве отправной точки рекомендую, например, event driven collision model. Она в общих чертах рассмотрена в книге «Алгоритмы» Седжвика и его же курсе «Algorithms I» на Курсере.
Вот статья о том, как настраивали её оценку: www.tim-mann.org/DT_eval_tune.txt
Персональные стили в основном нужны для развлекательных программ, вроде Чессмастера. Кстати, GreKo тоже участвует в качестве основного движка в одной из таких оболочек: LucasChess.
Вот интересная статья про стили, оценку и поиск, хотя и старинная: http://www.thorstenczub.de/complcss2.html
Конечно, всё это так! Шахматы — игра очень конкретная, никакого магического рецепта для оценки позиции нет и быть не может. Только счёт, счёт и счёт. Плюс разумная оценка на листьях :)
СТАТЬЯ — О ДРУГОМ.
Нам известно, что в оценку компьютера всегда входит материал — фигурам присваиваются определённые веса. Присваиваются чаще всего по интуиции или по традиционным меркам. Цель статьи — найти эти веса каким-то более определённым методом, чем «с потолка», дать им некоторое математическое обоснование. НЕ ОТКАЗЫВАЯСЬ ОТ ДРУГИХ ЧЛЕНОВ В ОЦЕНКЕ. А дополняя их.
Мне кажется более интересным подход, который был реализован в Рыбке — большая таблица со статистикой для всех возможных соотношений материала. Она занимает несколько мегабайтов, и даёт усиление игры до 50 пунктов Эло, если я правильно помню.