Как компьютер играет в шахматы?

Хикару Накамура, недавно бросивший вызов компьютеру
Компьютер уже давно обыграл человека в шахматы, сейчас сильнейшие шахматисты не способны выиграть даже у старенького ноутбука. Теперь шахматные движки используются для анализа партий, поиска новых вариантов и игры по переписке.
Если вам интересно, как же устроены шахматные движки — добро пожаловать под кат.
Введение
Когда-то я был уверен, что шахматные программы (они же движки, впрочем об этом чуть позже), просто держат в памяти огромное количество сыгранных партий и находят в них нынешнюю позицию и делают верный ход. По-моему, я прочитал об этом в какой-то книжке.
Это, несомненно, очень наивное мнение. Новую позицию в шахматах можно получить к десятому ходу. Хоть в шахматах и меньше позиций, чем в го, тем не менее, уже после 3 ходов (ход — это один ход белых и чёрных, полуход — ход только одной стороны) дерево ходов состоит из почти 120 миллионов узлов. Более того, размер дерева после 14 полуходов из начальной позиции энтузиасты считают уже больше года, продвинувшись пока что примерно на треть.
Ещё я думал, что шахматные программы, несмотря на давнюю победу в матче над чемпионом мира, все еще находятся в пределах досягаемости лучших людей. Это тоже не верно.
Кроме того, партии игрались с контролем 45″+15′, то есть 45 минут на партию и 15 секунд добавления каждый ход. Обычно, более короткие контроли дают дополнительное преимущество компьютеру, в то время как более длинные — несколько повышают шансы человека. Компьютер даже за доли секунды успеет отмести откровенно проигрывающие ходы, в то время как из-за экспоненциального роста дерева вариантов каждое последующее улучшение анализа занимает всё больше времени.
Тем не менее, фора была и человек проиграл в матче 2.5-1.5, сведя в ничью первые 3 партии и проиграв четвёртую. Вместе с тем, слабый гроссмейстер достаточно уверенно выиграл с форой в 2 пешки. Следовательно, преимущество лучших программ над лучшими людьми на данный момент где-то между 1 и 2 пешками форы. Конечно, эта оценка очень грубая, но для точной оценки надо сыграть несколько тысяч партий между людьми и программами, а этим вряд ли кто-то будет заниматься. Обратите внимание, что рейтинг ЭЛО, нередко указываемый для программ, не имеет ничего общего с рейтингом людей.
Что такое шахматный движок?
Чтобы человек мог играть в шахматы с компьютером, кроме собственно поиска лучшего хода, нужен GUI. К счастью, был придуман универсальный интерфейс (даже два, Winboard и UCI, но большинство движков использует UCI) для связи между GUI и собственно шахматной программой (движком). Таким образом, программисты могут сосредоточиться на самом алгоритме игры в шахматы, не задумываясь об интерфейсе. Обратная сторона монеты — так как создание GUI гораздо более скучное занятие, чем написание движка, то бесплатные GUI заметно проигрывают платным. В отличии от движков, где свободный Stockfish уверенно борется за первую строчку рейтинга с платным Komodo.
Как же они все таки играют?
Итак, как же устроен современный шахматный движок?
Представление доски
Основа любого движка — представление шахматной доски. В первую очередь, надо «объяснить» компьютеру все правила шахмат и дать ему возможность хранить шахматную позицию. Без этого невозможно оценивать позицию и делать ходы.
Есть два основных способа хранить представление доски — по фигурам или по клеткам. В первом случае мы храним для каждой фигуры её место на доске, во втором — наоборот, для каждой клетки храним что находится там. У каждого метода есть свои преимущества и недостатки, но на данный момент все топовые движки используют одно и то же представление доски — bitboards.
Bitboards
По счастливому совпадению, на шахматной доске 64 клетки. А значит, если для каждой клетки использовать один бит, мы можем хранить всю доску в 64-битном целом числе.
В одной переменной будем хранить все белые фигуры, в другой — все черные, и ещё в 6 — каждый тип фигур по отдельности (другой вариант — 12 битбордов для каждого цвета и типа фигур по отдельности).
В чем преимущество такого варианта?
Во-первых, память. Как мы узнаем позже, при анализе представление доски копируется много раз, и, соответственно, отъедает оперативку. Битборды — это одно из самых компактных представлений шахматной доски.
Во-вторых, скорость. Многие вычисления, например, расчёт возможных ходов, сводятся к нескольким битовым операциям. За счёт этого, например, использование инструкции POPCNT дает
15% ускорение современным движкам. Кроме того, за время существования битбордов было придумано немало алгоритмов и оптимизаций, как, например, «магические» битборды.
Поиск
Минимакс
В основе большинства шахматных движков лежит алгоритм поиска минимакс или его модификация негамакс. Вкратце, мы спускаемся вниз по дереву, оцениваем листья, а потом поднимаемся вверх, каждый раз выбирая оптимальный для текущего игрока ход, минимизируя оценку для одного (чёрных) и максимизуруя для второго (белых). Отсюда и название. Оказавшись в корне, мы получаем последовательность ходов, оптимальную для обоих игроков. Разница между минимаксом и негамаксом в том, что в первом случае мы по очереди выбираем ходы с максимальной и минимальной оценкой, а во втором вместо этого меняем знак для всех оценок и всегда выбираем максимальную (название сами поняли откуда). Подробнее здесь и здесь.
Альфа-бета
Первая оптимизация — альфа-бета. Идея альфа-беты проста — если у меня уже есть хороший ход, то можно отсечь ходы, которые заведомо хуже. Рассмотрим пример на жуткой картинке слева. Допустим, у игрока А есть 2 возможных хода — a3 и b3. Проанализировав ход a3, программа получила оценку +1.75. Начав оценивать ход b3, программа увидела, что у игрока B есть два хода — a6 и a5. Оценка хода a6 +0.5. Так как игрок B выбирает ход с минимальной оценкой, то он никак не выберет ход с оценкой выше 0.5, а значит оценка хода b3 меньше 0.5, и рассматривать его смысла нет. Таким образом, все оставшееся поддерево хода b3 отсекается.
Для отсечений мы храним верхнюю и нижнюю границы — альфу и бету. Если при анализе ход получает оценку выше беты — то текущий узел отсекается. Если оценка выше альфы — то альфа обновляется.
Сортировка ходов
При использовании альфа-беты, важным становится порядок ходов. Если мы сможем поставить лучший ход первым, то оставшиеся ходы будут проанализированы гораздо быстрее за счёт отсечений по бете.
Кроме использования хеша и лучшего хода из предыдущей итерации, существуют несколько техник сортировки ходов.
Для взятий может использоваться, например, простая эвристика MVV-LVA (Most Valuable Victim — Least Valuable Aggressor). Мы сортируем все взятия по убыванию ценности «жертвы», а внутри соритруем еще раз по возрастанию ценности «агрессора». Очевидно, что обычно забрать пешкой ферзя выгоднее, чем наоборот.
Для «тихих» ходов используется метод «убийственных» (killer) ходов — ходов которые вызвали отсечение по бете. Это ходы обычно проверяются сразу после ходов из хеша и взятий.
Хеш таблицы или таблицы перестановок
Несмотря на огромные размеры дерева, многие узлы в нём идентичные. Чтобы не анализировать одну и ту же позицию дважды, компьютер хранит результаты анализа в таблице и каждый раз проверяет, нет ли уже готового анализа этой позиции. Обычно в такой таблице хранится собственно хеш позиции, оценка, лучший ход и возраст оценки. Возраст необходим для замены старых позиций при заполнении таблицы.
Итерационный поиск
Как известно, если мы не можем проанализировать все дерево полностью, минимаксу необходима оценочная функция. Тогда достигнув определенной глубины, мы останавливаем поиск, оцениваем позицию и начинаем подъем по дереву. Но такой метод требует заранее заданной глубины и не предоставляет качественные промежуточные результаты.
Эти проблемы решает итерационный поиск. Для начала мы проводим анализ на глубину 1, потом на глубину 2 и т.д. Таким образом, каждый раз мы спускаемся чуть глубже, чем в прошлый раз, пока анализ не будет остановлен. Чтобы уменьшить размеры дерева поиска, результаты прошлой итерации обычно используются, чтобы отсекать заведомо плохие ходы на текущей. Этот метод называется «окно стремлений» (aspiration window) и используется повсеместно.
Поиск спокойствия(Quiescence Search)
Этот метод предназначен для борьбы с «эффектом горизонта». Простая остановка поиска на нужной глубине может быть очень опасной. Представим, что мы остановились посреди размена ферзей — белый забрал чёрного ферзя, а следующим ходом чёрный должен забрать белого. Но в данный момент на доске — лишний ферзь у белых и статическая оценка будет в корне неверной.
Для этого, прежде чем заняться статической оценкой, мы проверяем все взятия (иногда еще и шахи) и спускаемся по дереву до позиции, в которой нет возможных взятий и шахов. Естественно, если все взятия ухудшают оценку, то мы возвращаем оценку текущей позиции.
Выборочный поиск
Идея выборочного поиска в том, чтобы дольше рассматривать «интересные» ходы и меньше — неинтересные. Для этого используются продления, которые увеличивают глубину поиска в определённых позициях, и сокращения, уменьшающие глубину поиска.
Глубину увеличивают в случае взятий, шахов, если ход единственный или гораздо лучше альтернатив или при наличии проходной пешки.
Отсечения и сокращения
С отсечениями и сокращениями всё гораздо интереснее. Именно они позволяют значительно сократить размер дерева.
Сокращение используются, когда мы не настолько уверены, что ход плох, и поэтому не отсекаем его, а просто уменьшаем глубину. Например, razoring — это сокращение при условии, что статическая оценка текущей позиции меньше, чем альфа.
За счёт качественной сортировки ходов и отсечений, современные движки умудряются достигать коэффициента ветвления ниже 2. За счёт этого, к сожалению, они иногда не замечают нестандартные жертвы и комбинации.
NegaScout и PVS
Две очень похожие техники, которые используют тот факт, что после того как мы нашли PV-node (приусловии что наши ходы достаточно хорошо отсортированы), она скорее всего не изменится, то есть все оставшиеся узлы вернут оценку ниже, чем альфа. Поэтому вместо поиска с окном от альфа до бета, мы ищем с окном от альфа до альфа+1, что позволяет ускорить поиск. Конечно, если в каком-то узле мы получаем отсечение по бете, то его надо ценить заново, уже нормальным поиском.
Разница между двумя методами лишь в формулировке — они были разработаны примерно в одно время, но независимо, и поэтому известны под разными названиями.
Параллельный поиск
Распараллеливание альфа-беты — отдельная большая тема. Я вкратце пройдусь по ней, а кому интересно — почитайте Parallel Alpha-Beta Search on Shared Memory Multiprocessors. Сложность в том, что при параллельном поиске многие Cut-nodes анализируются до того, как другой поток найдет опровержение (установит бету), в то время как в последовательном поиске, при хорошей сортировке многие из этих узлов отсеклись бы.
Lazy SMP
Очень простой алгоритм. Мы просто запускаем все потоки одновременно с одним и тем же поиском. Коммуникация потоков происходит за счёт хеш-таблицы. Lazy SMP оказался неожиданно эффективным, настолько, что топовый Stockfish перешел на него с YBW. Правда, некоторые считают, что улучшение произошло из-за плохой реализации YBWC и слишком агрессивных отсечений, а не из-за преимущества Lazy SMP.
Young Brothers Wait Concept (YBWC)
Первый узел (старший брат) должен быть полностью проанализирован, после чего запускается параллельный анализ остальных узлов (младших братьев). Идея всё та же, первый ход либо заметно улучшит альфу, либо вообще позволит отсечь все остальные узлы.
Dynamic Tree Splitting (DTS)
Быстрый и сложный алгоритм. Немного о скорости: скорость поиска измеряется через ttd (time to depth), то есть время, за которое поиск достигает определенной глубины. Этот показатель обычно можно использовать для сравнения работы разных версий движка или движка, запущенного на разном количестве ядер (хотя Komodo, например, увеличивает ширину дерева при большем количестве доступных ядер). Кроме того, во время работы движок отображает скорость поиска в nps (nodes per second). Это метрика гораздо более популярная, но она не позволяет сравнивать даже движок сам с собой. Lazy SMP, в котором нет никакой синхронизации, практически линейно увеличивает nps, но из-за большого объема лишней работы, его ttd не так впечатляющ. В то время как для DTS nps и ttd изменяются практически одинаково.
Если честно, я так и не смог до конца разобраться в этом алгоритме, который, несмотря на высокую эффективность, используется буквально в паре движков. Кому очень интересно, проследуйте по ссылке выше.
Оценка
Итак, мы достигли необходимой глубины, произвели поиск спокойствия и, наконец нам надо оценить статическую позицию.
Какие параметры компьютер учитывает при оценке позиции?
Материал и мобильность
Самое простое. Ферзь 9-12 пешек, ладья 5-6, конь и слон 2.5-4 и пешка, соответственно, одна пешка. В общем, материал — это достойная эвристика оценки позиции и любое позиционное преимущество обычно трансформируется в конце концов в материальное.
Мобильность считается просто — количество возможных ходов в текущей позиции. Чем их больше, тем более мобильна армия игрока.
Таблицы позиций фигур
Конь в углу доски обычно плох, пешки ближе к вражескому тылу становятся всё ценнее и так далее. Для каждой фигуры составляется таблица бонусов и штрафов в зависимости от ее положения на доске.
Пешечная структура
Этапы игры
Все вышеперечисленные параметры влияют по-разному на оценку игры, в зависимости от этапа игры. В дебюте нет толку от проходной пешки, а в эндшпиле нужно выводить короля в центр доски, а не прятать за пешками.
Поэтому многие движки имеют отдельную оценку для эндшпиля и для дебюта. Они оценивают этап игры в зависимости от оставшегося на доске материала и в соответствии с этим считают оценку — чем ближе к концу игры, тем меньше влияет дебютная оценка и тем больше — эндшпильная.
Прочее
Кроме этих основных факторов движки могут добавлять еще какие-то факторы к оценке — например безопасность короля, запертые фигуры, пешечные острова, контроль центра и т.д.
Точная оценка или быстрый поиск?
Традиционный спор: что эффективнее, точно оценить позицию или достичь большей глубины поиска. Опыт показывает, что слишком «тяжелые» оценочные функции неэффективны. С другой стороны, более подробная оценка, учитывающая больше факторов, обычно приводит к более «красивой» и «агрессивной» игре.
Дебютные книги и эндшпильные таблицы
Дебютные книги
На заре компьютерных шахмат программы очень слабо играли дебют. Дебют часто требует стратегических решений, которые повлияют на всю игру. С другой стороны, у людей дебютная теория была развита хорошо, дебюты были многократно проанализированы и игрались по памяти. Вот и для компьютеров была создана подобная «память». Начиная с начальной позиции строилось дерево ходов и каждый ход оценивался. Во время игры движок просто выбирал один из «хороших» ходов с определенной вероятностью.
С тех пор дебютные книги разрослись, многие дебюты проанализированы при помощи компьютеров вплоть до эндшпиля. Необходимости в них нет, сильные движки научились играть дебют, но сходят с главных линий достаточно быстро.
Эндшпильные таблицы
Вернемся к введению. Помните идею хранить много позиций в памяти и выбирать нужную. Вот она. Для малого (до 7) количества фигур просчитаны все существующие позиции. То есть в этих позициях компьютер начинает играть идеально, выигрывая в минимальное количество ходов. Минус — размер и время генерации. Создание этих таблиц помогло в исследовании эндшпилей.
Генерация таблиц
Сгенерируем все возможные (с учетом симметрии) позиции с определенным набором фигур. Среди них найдем и обозначим все позиции, где стоит мат. Следующим проходом обозначим все позиции, в которых можно попасть в позиции с матом — в этих позициях ставится мат в 1 ход. Таким образом находим все позиции с матом 2,3,4,549 ходов. Во всех неотмеченных позициях — ничья.
Таблицы Налимова
Первые эндшпильные таблицы, опубликованные в далёком 1998 году. Для каждой позиции хранится результат игры и количество ходов до мата при идеальной игре. Размер всех шестифигурных окончаний — 1.2 терабайта.
Таблицы Ломоносова
В 2012 году на суперкомпьютере Ломоносов в МГУ были посчитаны все семифигурные окончания (кроме 6 против 1). Эти базы доступны только за деньги и это единственные существующие полные семифигурные эндшпильные таблицы.
Syzygy
Стандарт де-факто. Эти базы гораздо компактнее баз Налимова. Они состоят из двух частей — WDL (Win Draw Lose) и DTZ (Distance to zeroing). WDL базы предназначены для использования во время поиска. Как только узел дерева найден в таблице, у нас есть точный результат игры в этой позиции. DTZ предназначены для использования в корне — они хранят количество ходов до обнуляющего счётчик ходов хода (хода пешкой или взятия). таким образом для анализа достаточно WDL баз, а DTZ базы могут пригодиться при анализе эндшпилей. Размер Syzygy гораздо меньше — 68 гигабайт для шестифигурных WDL и 83 для DTZ. Семифигурных баз не существует, так как их генерация требует примерно терабайт оперативной памяти.
Использование
Эндшпильные таблицы используются в основном для анализа, прирост силы игры движков небольшой — 20-30 пунктов ЭЛО. Тем не менее, так как глубина поиска современных движков может быть очень большой, запросы к эндшпильным базам из дерева поиска происходят еще в дебюте.
Прочие интересности
Жираф или нейронные сети играют в шахматы
Некоторые из вас возможно слышали о шахматном движке на нейронных сетях, достигшем уровня IM (что, как мы поняли во введении, не так уж и круто для движка). Его написал и выложил на Bitbucket Matthew Lai, который, к сожалению прекратил работу над ним из-за того, что начал работать в Google DeepMind.
Тюнинг параметров
Добавить новую функцию в движок несложно, но как проверить что она дала усиление? Простейший вариант — сыграть несколько партий между старой и новой версией и посмотреть кто победит. Но если улучшение небольшое, а так оно обычно и бывает после того, как все основные фичи добавлены, игр должно быть несколько тысяч, иначе достоверности не будет.
Stockfish
Над этим движком работ немало людей, и каждую их идею надо проверить. При текущей силе движка каждое улучшение дает прибавку в пару пунктов рейтинга, но в итоге получается стабильный рост на несколько десятков пунктов ежегодно.
Их решение типично для опенсорса — добровольцы предоставляют свои мощности чтобы прогнать на них сотни тысяч игр.
Программа, которая оптимизирует параметры через линейную регрессию, используя результаты игр движка с самим собой с разными параметрами. Из минусов — очень ограниченной размер задачи: оптимизировать сотню параметров (вполне адекватное число для движка) ей не под силу, по крайней мере за адекватное время.
Texel’s tuning
Решает проблему предыдущего метода. Берем большое количество позиций (автор предлагал 9 миллионов позиций из 64000 игр, я брал 8 миллионов из почти 200000), для каждой сохраняем результат партии (победа белых 1, ничья 0.5, поражение 0). Теперь минимизируем ошибку, которая находится сумма квадратов разности результата и сигмоида оценки. Метод эффективный и популярный, но работает не на всех движках.
Stockfish tuning
Еще одна методика от лидера. Берем параметр равный x, и сравниваем (в нескольких десятках тысяч партий) движок с параметром равным x-sigma и x+sigma. Если победил движок с большим параметром, сдвигаем немного вверх, иначе — немного вниз, и повторяем.
Соревнования движков
Из всех проводимых тестирований соревнований хотелось бы отдельно выделить TCEC. От всех остальных он отличается мощным железом, тщательным подбором дебютов и длинным контролем. В последнем финале было сыграно 100 партий на 2 x Intel Xeon E5-2690v3 с 256 гигабайтами RAM с контролем 180’+30″. В таких условиях количество ничей огромно, и результативными было всего 11 партий.
Lichess
Почему Lichess называется Lichess?
Lichess — это комбинация live/light/libre и chess. Живые, легковесные и свободные шахматы. Lichess произносится личес. Прослушайте это в исполнении диктора.
Живые, потому что можно играть партии и смотреть игры в реальном времени 24/7. Легковесные и свободные, потому что разрабатываются на принципах свободного программного обеспечения и не завалены проприетарным хламом, как коммерческие проекты.
То же относится к исходному коду Lichess, lila, что означает li[chess in sca]la, основная часть Lichess написана на Scala, интуитивно понятном языке программирования.
Как я могу внести свой вклад в Lichess?
Lichess существует на пожертвования игроков и разрабатывается командой волонтёров.
Вы можете узнать о том, как стать покровителем (и изучить отчёт о тратах). Если вы хотите помочь Lichess, пожертвовав свои знания и время, есть и другие способы помочь.
Есть ли другие сайты, основанные на Lichess?
Да, это так. Многие сайты вдохновились Lichess и используют наш Исходный код, API и Архив партий.
Честная игра
Если оказалось, что я проиграл жулику, мне вернут рейтинг?
Через минуту после того, как жулик был обнаружен, 40 рейтинговых игр, в которых он одержал победу за последние 3 дня, подлежат рассмотрению. Если вы были его соперником в этих играх, и ваш собственный рейтинг считается надёжным, вы можете рассчитывать на возмещение рейтинга. Возмещение может быть ограничено различными условиями, такими как ваш максимальный рейтинг и изменение рейтинга после нечестных игр.
Например, если ваш рейтинг значительно вырос после таких игр, вы можете не получить возмещения, или получить лишь часть. В любом случае, возмещение не может превышать 150 очков рейтинга.
Что происходит с игроками, который выходят из игры, не сдаваясь при этом?
Если ваш соперник часто прерывает или покидает игру, он временно блокируется, при этом признак блокировки видит только он сам. Если после окончания блокировки он продолжает вести себя так же, он опять блокируется, но уже на более длительный срок. В дальнейшем его учётная запись может быть полностью заблокирована.
Могу ли я стать модератором?
Мы не принимаем заявки на просьбу стать модератором. Если мы видим, что кто-то, по нашему мнению, может стать хорошим модератором, мы сами с ним связываемся напрямую.
Игра по переписке отличается от обычной игры?
В Lichess основное отличие в правилах для игры по переписке заключается в том, что доступна книга дебютов. Использование компьютерных программ запрещено и может привести к блокировке за жульничество. Несмотря на то, что международной ассоциацией игры по переписке ICCF помощь компьютерных программ разрешена, на Lichess это не так.
Описание игры
Как определяется тип игры: пуля, блиц и т. д., в зависимости от контроля времени?
Контроль времени влияет на общее ожидаемое время на партию, равное (начальное время) + 40 × (добавка)
Например, время партии с контролем 5+3 равно 5 × 60 + 40 × 3 = 420 секунд.
Lichess
Почему Lichess называется Lichess?
Lichess — это комбинация live/light/libre и chess. Живые, легковесные и свободные шахматы. Lichess произносится личес. Прослушайте это в исполнении диктора.
Живые, потому что можно играть партии и смотреть игры в реальном времени 24/7. Легковесные и свободные, потому что разрабатываются на принципах свободного программного обеспечения и не завалены проприетарным хламом, как коммерческие проекты.
То же относится к исходному коду Lichess, lila, что означает li[chess in sca]la, основная часть Lichess написана на Scala, интуитивно понятном языке программирования.
Как я могу внести свой вклад в Lichess?
Lichess существует на пожертвования игроков и разрабатывается командой волонтёров.
Вы можете узнать о том, как стать покровителем (и изучить отчёт о тратах). Если вы хотите помочь Lichess, пожертвовав свои знания и время, есть и другие способы помочь.
Есть ли другие сайты, основанные на Lichess?
Да, это так. Многие сайты вдохновились Lichess и используют наш Исходный код, API и Архив партий.
Честная игра
Почему меня подозревают в жульничестве? Как то: использование помощи других игроков, договорные игры или подсказки компьютерных программ?
Lichess использует очень надёжные способы и тщательно проработанный процесс для изучения доказательств и принятия решений. В этот процесс вовлечено множество модераторов и он может занять довольно продолжительное время. В результате выносится только решение о том, был ли игрок нечестен, но никакие подробности не разглашаются, иначе это могло бы облегчить нечестным игрокам возможность обходить способы их обнаружения. Кроме того, чем больше деталей, тем больше пустопорожних споров, а это время лучше потратить на что-то более стоящее. Игроки могут обжаловать решение по электронной почте support@doppelkraft.ru, но надо иметь в виду, что ответ на него не гарантируется, и решения отменяются крайне редко.
Если оказалось, что я проиграл жулику, мне вернут рейтинг?
Через минуту после того, как жулик был обнаружен, 40 рейтинговых игр, в которых он одержал победу за последние 3 дня, подлежат рассмотрению. Если вы были его соперником в этих играх, и ваш собственный рейтинг считается надёжным, вы можете рассчитывать на возмещение рейтинга. Возмещение может быть ограничено различными условиями, такими как ваш максимальный рейтинг и изменение рейтинга после нечестных игр.
Например, если ваш рейтинг значительно вырос после таких игр, вы можете не получить возмещения, или получить лишь часть. В любом случае, возмещение не может превышать 150 очков рейтинга.
Что происходит с игроками, который выходят из игры, не сдаваясь при этом?
Если ваш соперник часто прерывает или покидает игру, он временно блокируется, при этом признак блокировки видит только он сам. Если после окончания блокировки он продолжает вести себя так же, он опять блокируется, но уже на более длительный срок. В дальнейшем его учётная запись может быть полностью заблокирована.
Могу ли я стать модератором?
Мы не принимаем заявки на просьбу стать модератором. Если мы видим, что кто-то, по нашему мнению, может стать хорошим модератором, мы сами с ним связываемся напрямую.
Игра по переписке отличается от обычной игры?
В Lichess основное отличие в правилах для игры по переписке заключается в том, что доступна книга дебютов. Использование компьютерных программ запрещено и может привести к блокировке за жульничество. Несмотря на то, что международной ассоциацией игры по переписке ICCF помощь компьютерных программ разрешена, на Lichess это не так.
Описание игры
Как определяется тип игры: пуля, блиц и т. д., в зависимости от контроля времени?
Контроль времени влияет на общее ожидаемое время на партию, равное (начальное время) + 40 × (добавка)
Например, время партии с контролем 5+3 равно 5 × 60 + 40 × 3 = 420 секунд.
В какие виды шахмат я могу играть на Lichess?
Lichess поддерживает стандартные шахматы и ещё 8 видов шахмат.
Что такое «потеря сантипешек в среднем» (ACPL)?
Сантипешка — это единица измерения, которую используют в шахматах в качестве представления преимущества. Сантипешка равна ¹/₁₀₀ стоимости пешки. 100 сантипешек равны 1 пешке. Эти значения не играют никакой роли в игре, но полезны в компьютерных шахматах и для компьютерного анализа при оценке позиций.
Ход по первой линии компьютера означает нулевую потерю сантипешек, а любой другой ход ведёт к ухудшению позиции, которое выражается в потере сантипешек. Чем хуже ход, тем больше значение потери.
Это значение может использоваться как индикатор качества игры. Чем меньше потеря сантипешек на ход в среднем, тем сильнее игра.
Для компьютерного анализа на Lichess используется Stockfish.
Проигрыш по времени, ничья и недостаток материала
Как правило, если у игрока закончилось время, ему засчитывается проигрыш. Однако игра может быть признана закончившейся вничью, если соперник не может поставить мат никакой из возможных последовательностей ходов (§6.9 правил ФИДЕ, формат pdf).
В редких случаях бывает трудно вынести решение автоматически (серия вынужденных ходов, крепость). По умолчанию мы принимаем сторону того игрока, чьё время не вышло.
Имейте в виду, что мат возможен и одним конём, и слоном, если у соперника есть фигура или пешка, способная заблокировать его короля.
Почему можно взять пешку, когда она уже прошла битое поле? (взятие на проходе)
Это ход, известный как «взятие на проходе». Статья в Википедии даёт хорошее объяснение.
«Пешка, занимающая поле на той же горизонтали и на соседней вертикали с пешкой соперника, которая только что продвинулась на два поля в один ход от своей первоначальной позиции, может взять эту продвинутую пешку соперника, как если бы последний ее ход был только на одно поле. Это взятие возможно только ходом, следующим за этим продвижением, и называется взятием «на проходе».»
Посмотрите практику на Lichess и попрактикуйтесь.
Троекратное повторение позиции
Если позиция на доске повторилась три раза, любой из игроков может объявить ничью повторением позиции. В Lichess реализованы официальные правила ФИДЕ, как описано в статье 9.2 (d) of the правил (pdf).
Наши ходы не повторялись. Почему игра закончилась повторением?
Троекратное повторение связано с повторением позиции на доске, а не сделанных ходов. К повторению позиции могут приводить разные ходы, не обязательно одинаковые.
У нас трижды повторилась позиция. Почему игра не закончилась вничью?
Повторение необходимо для объявления ничьей любым из игроков. Вы можете сделать это нажав кнопку, которая появляется в этот момент, или предложив обычную ничью. Вы также можете настроить Lichess для автоматического объявления ничьей в этом случае. Пятикратное повторение позиции принудительно завершит игру вничью.
Учётные записи
Какие официальные звания используются на Lichess?
Lichess может отображать все звания ФИДЕ, полученные в обычных турнирах, а также множество званий национального мастера. Вот список званий ФИДЕ:
Если у вас есть звание ФИДЕ или национального мастера, и вы хотите, чтобы оно отображалось на Lichess, вы можете заполнить форму подтверждения, приложив чёткое фото документа, подтверждающего ваше звание, и селфи с этим документом в руках.
Подтверждённое звание позволит вам участвовать в Титульных Аренах.
И ещё у нас есть почётное звание Lichess master (LM).
Могу ли я получить звание Lichess Мастера (LM)?
Это почётное звание, оно неофициальное и существует только на Lichess.
Изредка мы награждаем самых значимых игроков, имеющих заслуги перед Lichess, по нашему выбору. Не вы получаете звание LM, звание само находит вас. Если вы его заслуживаете, вы получите сообщение об этом, и сможете принять новое звание или отказаться.
Не выпрашивайте у нас звание LM.
Каким может быть моё имя пользователя?
В целом, имя пользователя не должно быть оскорбительным, выдающим вас за кого-то другого и рекламирующем что-то. Узнайте больше в наших рекомендациях.
Уникальные трофеи
The way of Berserk
Это уникальные трофеи за всю историю Lichess, и ни у кого, кроме hiimgosu их не было.
Чтобы его получить, hiimgosu бросил вызов самому себе выиграть с Берсерком 100% игр в ежечасном турнире в Пулю.
The Golden Zee
Это уникальные трофеи за всю историю Lichess, и ни у кого, кроме ZugAddict их не было.
ZugAddict во время стрима два часа безуспешно пытался обыграть компьютер на 8-м уровне в игре 1+0. Тибо пообещал наградить его уникальным трофеем, если он всё же сделает это во время стрима. Спустя час он разгромил Стокфиш, и обещание было исполнено.
Рейтинги Lichess
Какая система рейтинга используется на Lichess?
Рейтинги считаются на основе метода Glicko-2, разработанного Марком Гликманом. Это очень распространённый метод, используемый большим количеством шахматных организаций (ФИДЕ при этом, наоборот, всё ещё использует устаревший метод Эло).
В основе рейтинга Glicko лежат «доверительные интервалы», которые используются для уточнения рейтинга. Когда вы впервые регистрируетесь на Lichess, вы получаете 1500 ± 700 очков рейтинга. 1500 соответствует собственно рейтингу, а 700 представляет собой доверительный интервал.
В этом случае система на 90 % уверена, что ваш рейтинг находится в пределах от 800 до 2200. Это просто невероятно неопределённое значение. И поэтому, когда игрок начинает играть первые партии, его рейтинг может очень сильно меняться, порой на сотни очков за раз. Но уже после нескольких игр против игроков с хорошо подтверждённым рейтингом, доверительный интервал рейтинга игрока начнёт сужаться, и число изменяющихся очков рейтинга будет уменьшаться с каждой новой игрой.
Следует заметить, что доверительный интервал увеличивается, если игрок долго не играет, так как считается, что игрок не подтверждает свой рейтинг, а его уровень игры может меняться со временем.
Что означает вопросительный знак (?) рядом с рейтингом?
Вопросительный знак означает, что рейтинг «предварительный». Причины могут быть следующими:
Говоря конкретно, в Glicko-2 рейтинг отклонение в 110 очков и больше считается «предварительным». Отклонение — это уровень доверительности. Чем меньше отклонение, тем более стабильным считается рейтинг.
Как распределяются места в списках лидеров?
Чтобы попасть в список лидеров:, вы должны:
Второе условие заключается в том, что игроки с закрытыми учётными записями пропадают из списков лидеров.
Почему рейтинги игроков выше, чем на других сайтах и в других организациях, как, например, ФИДЕ или РШФ?
Лучше всего не думать о рейтинге в абсолютных числах и не сравнивать их с другими организациями. Разные организации имеют разный уровень игроков, разные системы подсчёта рейтинга (Elo, Glicko, Glicko-2, и их модификации). Всё это очень сильно влияет на конкретные значения.
Лучше всего думать о рейтинге как относительной величине. Сравнивая рейтинги игроков в одной организации, вы сможете предположить, кто выиграет, проиграет или сыграет вничью и как часто это будет случаться. Утверждение «Мой рейтинг равен X» ничего не значит до тех пор, пока не станет известен рейтинг вашего соперника или другого игрока, с которым вы сможете сравнить ваш.
Как скрыть рейтинги во время игры?
Включите режим «Дзен» в настройках отображения, или нажмите z во время игры.
Я проиграл из-за пропадания сети. Могу ли я вернуть очки рейтинга?
К сожалению, мы не можем возвращать очки рейтинга из-за проблем сети или компьютера, и не важно, на чьей стороне возникла проблема, на вашей или на нашей. Второе, однако, случается крайне редко. Также следует заметить, что если мы перезагружаем серверы, мы прерываем игры, чтобы игроки могли избежать незаслуженного поражения.
Узнайте, как.
Включить или отключить всплывающие окна уведомлений?
Lichess может по вашему желанию показывать всплывающие уведомления, например, когда наступает ваш ход или вы получили личное сообщение.
Нажмите на значок замочка рядом с адресом lichess.org в адресной строке вашего браузера.
Затем выберите, разрешить или блокировать уведомления от Lichess.

