Rybka explained?

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

  1. TopicStarter Overlay

    WinPooh В.М.

    • Команда форума
    Рег.:
    13.02.2006
    Сообщения:
    9.491
    Симпатии:
    3.118
    Репутация:
    95
    Адрес:
    Москва
    Оффлайн
    Интересная статья, в которой автор делает предположения об алгоритме Рыбки. В качестве ключевого компонента предлагается оценка "будущей мобильности" фигур.

    http://mysite.verizon.net/vzesz4a6/id7.html

    На CCC или WBF были комментарии к этой статье самого Васика. Кое-что указано верно, а кое-что - нет - сказал он :)
  2. WildCat Коршунов Игорь

    • Команда форума
    Рег.:
    04.05.2006
    Сообщения:
    3.599
    Симпатии:
    4
    Репутация:
    0
    Адрес:
    Гомель
    Оффлайн
    Захотелось свою ОФ переписать с нуля :)
  3. Binary Учаcтник

    • Участник
    Рег.:
    27.08.2006
    Сообщения:
    135
    Симпатии:
    0
    Репутация:
    0
    Адрес:
    Мытищи
    Оффлайн
    1) неплохо эту статейку увидеть на русском языке
    2) после беглого просмотра я понял что рыбка не зря рассматривает так мало позиций в секунду :) ,
    а проводит сложнейший анализ , где ее фигуры окажутся через 3 хода , но почему именно через 3?!
    3) вообще я и до этого догадывался , что сила рыбки в оценочной ф-ции , другое дело , что не всякий рискнет
    бросится за написание возможно лучшей , но чрезвычайно гем... т.е. сложной ф-ции , за что Васику респект!
  4. WildCat Коршунов Игорь

    • Команда форума
    Рег.:
    04.05.2006
    Сообщения:
    3.599
    Симпатии:
    4
    Репутация:
    0
    Адрес:
    Гомель
    Оффлайн
    Хотелось бы только понять откуда такая уверенность. Например:
    Rybka does not use look-up tables in its evaluation function.
    Насколько можно доверять таким заявлениям?
  5. WildCat Коршунов Игорь

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

    • Заслуженный
    • Участник
    • Старожил
    Рег.:
    24.05.2006
    Сообщения:
    1.084
    Симпатии:
    38
    Репутация:
    6
    Оффлайн
    да действительно... а что же за таблицы в exe файле? аж на 4.8 мега
  7. WildCat Коршунов Игорь

    • Команда форума
    Рег.:
    04.05.2006
    Сообщения:
    3.599
    Симпатии:
    4
    Репутация:
    0
    Адрес:
    Гомель
    Оффлайн
    Может быть это защита от пиратов? Защита Фрукта весит несколько мегабайт.
  8. WildCat Коршунов Игорь

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

    • Заслуженный
    • Участник
    • Старожил
    Рег.:
    24.05.2006
    Сообщения:
    1.084
    Симпатии:
    38
    Репутация:
    6
    Оффлайн
    WildCat разве рыбка защищена? если бы была защита, то свежая версия не появлялась бы с такой скоростью в файлообменниках. а тут раз и готово... уже выкачивают...
  10. WildCat Коршунов Игорь

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

    • Участник
    Рег.:
    27.08.2006
    Сообщения:
    135
    Симпатии:
    0
    Репутация:
    0
    Адрес:
    Мытищи
    Оффлайн
    Васик говорил , что специально не будет делать защиту рыбки , поскольку это бесполезно ,
    как он считает ... я с ним согласен :D
  12. Позиционер Зарегистрирован

    Рег.:
    02.11.2006
    Сообщения:
    240
    Симпатии:
    0
    Репутация:
    0
    Оффлайн
    Васик защищает не доступ к проге, а доступ к коду.
  13. NS Нефёдов Сергей

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

    • Команда форума
    Рег.:
    05.02.2006
    Сообщения:
    2.949
    Симпатии:
    9
    Репутация:
    0
    Адрес:
    USA
    Оффлайн
    Он умный - теперь под теплым и небесплатным крылом дядей с MBA из Люкасофта :)
  15. Mustitz Заслуженный

    • Заслуженный
    • Участник
    • Старожил
    Рег.:
    30.09.2006
    Сообщения:
    3.546
    Симпатии:
    1.265
    Репутация:
    36
    Адрес:
    Киев
    Оффлайн
    Зависит от типа позиции. В остро-тактической позиции нет времени заниматься маневрами. А в спокойной позиции это становится все более значительным, не говоря уже об эндшпиле. Я не знаю как гросмейстеры, но лично я при размышлениях часто просчитываю хода только одной стороны, отвечая только на угрозы, размены. Это помогает глубже вникнуть в позицию.

    Ну... вообще-то большой проблемы глянуть нету, было бы желание :) Рискну предположить, что возможно это база миттельшпильных/эндшпильных позиций и планов. Люди накопили тут большое количество знаний, которые, насколько мне известно, почти не используются шахматными программами.
  16. NS Нефёдов Сергей

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

    А план программы строится из максимизации оценки при помощи переборных алгоритмов.
    Хотя может храниться статистика опровергающих ходов для разных классов позиций - но это тоже никак не "миттельшпильные планы"

    Знания накопленные людьми - шахматными программами используются, способ перебора вариантов очень близок к человеческому, а для оценки используются и знания, и базы партий, и статистика накопленная человечеством.
  17. Mustitz Заслуженный

    • Заслуженный
    • Участник
    • Старожил
    Рег.:
    30.09.2006
    Сообщения:
    3.546
    Симпатии:
    1.265
    Репутация:
    36
    Адрес:
    Киев
    Оффлайн
    Вот тут не согласен. Оценка позиции это результат расчета вариантов. Глянув на позицию я не могу ее оценить —- надо в нее погрузиться. Оценка позиции не может быть выведена из общих соображений, для этого нужен анализ. Перебов вариантов. Только тогда можно сказать: у белых лучше, у черных лучше и т.д. Но глянув на знакомую позицию я могу сразу выделить серии взаимосвязаных ходов, которые имеют смысл все вместе. Например, если это карлсбладский вариант, то сразу напрашивается a4, b4, b5. Или другой план, f3, e4. Плюс хода, которые подготавливают это тоже типичны для данной позиции. Но ходить f3 без e4 бессмысленно. Поэтому если после прведения f3 в течении 3-4 нет угрозы e4, то вариант можно отсекать.

    Имхо, сила рыбки не в том, что она считает много вариантов, и не в точной оценке позиции, а в том, что она знает, что считать.

    Вот тут, как мне кажется, все наоборот. Как может быть способ перебора вариантов близок к человеческому, если количество рассметриваемыз вариантов отличается на порядки? Человеческая оценка позиции абсолютно другой природы, чем компьютерная. Компьютерная оценка это некоторое число, которое затем используется в минимаксе + альфа-бета. У компьютера нет оценки "неясно", компьютерная оценка позиции это число, учитывающее факторы позиции. Человеческая оценка это тоже учет факторов позиции, но направленый не на то, чтобы определить лучше или хуже (это скажут варианты), а для того, чтобы определить выбор продолжений (серий ходов), которые надо рассматривать. Особенно в блиц, я часто не считаю: ход белых, ход черных, ход белых... А часто мысленно делаю серию ходов за белых и серию ходов за черных.Оцениваю возникающую позицию в плане того, как играть дальше. Для человека более перспективна та позиция, где они видит как играть.
  18. NS Нефёдов Сергей

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

    Рыбка знает что считать - ровно настолько-же, что и другие программы. Есно из-за лучшей оценки она считает именно те варианты, но специфику переборных алгоритмов шахматных программ наверно всё-таки долго объяснять в этом топике.
    Уж поверьте мнению шахматных программистов :)

    И оценка позиции - это не результат расчета вариантов, а оценка полученная при помощи ОФ, и спущенная по дереву перебора в корень.

    Для программы тоже более перспективна та позиция, в которой она знает как играть - видит конкретные позиционные признаки, и способы их реализации (видит пути увеличения оценки), человек в переборе поступает так-же.
  19. Сергей Марков Учаcтник

    • Участник
    Рег.:
    13.05.2006
    Сообщения:
    136
    Симпатии:
    6
    Репутация:
    0
    Оффлайн
    Ерунда :) Таблицы у Васика — это фигурные паттерны. Есть только два вопроса: как он их строил, и как именно он их использует...
  20. Chemer Максим

    • Участник
    Рег.:
    14.09.2006
    Сообщения:
    1.674
    Симпатии:
    13
    Репутация:
    0
    Адрес:
    Запорожье
    Оффлайн
    Друзья, чтобы не гадать, давайте попробуем дизасемблировать.
  21. WildCat Коршунов Игорь

    • Команда форума
    Рег.:
    04.05.2006
    Сообщения:
    3.599
    Симпатии:
    4
    Репутация:
    0
    Адрес:
    Гомель
    Оффлайн
    Вся статья ерунда? Или ты иммешь в виду что-то конкретное?
    Откуда инфа про фигурные паттерны? Я помню их еще предлогали программеры Отелло. А их ОФ действительно зверские :)
    Сергей, поделись, если что знаешь.
  22. WildCat Коршунов Игорь

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

    • Заслуженный
    • Ветеран
    • Старожил
    Рег.:
    02.05.2006
    Сообщения:
    6.811
    Симпатии:
    96
    Репутация:
    3
    Адрес:
    Санкт-Петербург
    Оффлайн
    C отелло проще. С самого начала предлагалось оценивать комбинации в углу и на краю доски...
    В шахматах что-то подобное предлагал Ботвинник...
    Битые определенными фигурами поля, и сами Фигуры на доске...
    Например Черный король на g8, пешка на h7, Белый слон бьет на h7, Ферзь на d2 или e1, Конь на f3, поля h5 и g5 не биты соперником, между ферзем и полем h5 кроме коня f3 ничего нет :))))
  24. NS Нефёдов Сергей

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

    • Участник
    Рег.:
    13.05.2006
    Сообщения:
    136
    Симпатии:
    6
    Репутация:
    0
    Оффлайн
    Для меня лично сейчас основным вопросом является собственно извлечение паттернов на основе анализа БД. То, что мы сейчас имеем в оценочных функциях, это те же паттерны, только которые выделялись и оценивались вручную. Извлечение паттернов — операция весьма трудоемкая. Ну, посудите сами, при подходе "в лоб" нам придется перебрать все подмножества элементов паттерна. Тут есть несколько решений — например, анализ только паттернов включающих не более N элементов.
    Задача может быть переформулирована как поиск К-плотных подграфов в графе.
    Если есть желание — можем попробовать решить задачу вместе, особенно учитывая тот факт, что я сейчас очень загружен на основной работе :((

    p.s. Про паттерны я сделал вывод из бесед с Васиком по почте + тем фактом, что я заметил, какие именно постинги он удалил в ССС :)))
  26. NS Нефёдов Сергей

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

    Надо знать с каких паттернов начать - я предлагаю с оценки Пешечной структуры в центре (сами пешки с линий "с" по "f", и признак их изолированности/проходная/слабая - для пешек на "f" и "с")+ наличие Фигур (Слоны - белопольный и чернопольный отдельно и Признак двух слонов) и защищенность короля (коэффициент, зависящий от пешечной структуры и материала на доске)


    У Рыбки как раз Беда с оценкой пешечных структур на некоторых классах позиций, например
    r1bq1rk1/ppp2pbp/2np1np1/3Pp3/2P1P3/2N2N2/PP2BPPP/R1BQ1RK1 b - - 0 8
    Классическую старушку, и планы подрыва центра в ней - Рыбка не понимает.
  27. WildCat Коршунов Игорь

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

    • Команда форума
    Рег.:
    05.02.2006
    Сообщения:
    2.949
    Симпатии:
    9
    Репутация:
    0
    Адрес:
    USA
    Оффлайн
    +1 Я заметил на партии одной :)
  29. bankuss Александр

    • Заслуженный
    • Участник
    • Старожил
    Рег.:
    24.05.2006
    Сообщения:
    1.084
    Симпатии:
    38
    Репутация:
    6
    Оффлайн
    самое главное это быстрый поиск в БД этого паттерна.низкий nps в дебюте\миттельшпиле у рыбки говорит о том, что операция эта дается не легко :) для пешечных "форм" можно попробовать использовать хэш - хранить в базе хэш пешечной позиции(паттерна). а вот с фигурами все сложней получается.
  30. Сергей Марков Учаcтник

    • Участник
    Рег.:
    13.05.2006
    Сообщения:
    136
    Симпатии:
    6
    Репутация:
    0
    Оффлайн
    Да ну, конечно нет. На шахматах я едва заработал 1000 EUR за все время. А на работе, будучи программистом под j2ee/ejb + руководителем группы я получаю в месяц в 1.5 раза больше :)

    Все элементы паттерна надо в бинарной форме представлять. Так что, думаю, это матрицы атак, фигур и пешек + открытые вертикали и проходные.

    В Рыбке все сейчас более чем примитивно.
  31. Сергей Марков Учаcтник

    • Участник
    Рег.:
    13.05.2006
    Сообщения:
    136
    Симпатии:
    6
    Репутация:
    0
    Оффлайн
    В Рыбке, например, ФВ использует оценочную функцию только на первом уровне.
    Поскольку в искомых паттернах будет не очень много элементов, можно создавать индексы по каждой группе элементов паттерна.
  32. Сергей Марков Учаcтник

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

    В CCC он удалил, например, пост, где говорил, что у него в программе есть множество паттернов: конь на таком-то поле, пешка на таком-то... :)) Этот пост никто не заметил раньше, потому что он был написан до того, как Рыбка стала известной, а потом его Васик стер.
  33. NS Нефёдов Сергей

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

    Для настройки ОФ - все остальные признаки тупо отключаем.
    Я только не знаю ни одного мат. метода для решения этой задачи...
    У нас в ОФ получается слишком много параметров.

    Если считать чисто на 1ply, без продлений и ФВ - то получаем
    Для каждой позиции - сдаланный ход гроссом, и линейную функцию оценки после каждого хода.
    Нам нужно максимизировать количество совпадений ходов.
    наверно такую задачу можно решить.
  34. WildCat Коршунов Игорь

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

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

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