Шахи & 8212; одна з найстаріших покрокових стратегій у світі. Вона користувалася величезною популярністю ще кілька сотень років тому, та й зараз щорічно проводиться безліч турнірів з великими призовими фондами, а про імена гросмейстерів чули навіть ті, хто далекий від світу цієї гри. З початком часу розвитку комп'ютерних технологій вже було зрозуміло, що рано чи пізно з'явиться безліч програм, значно перевершують людину в плані обчислень, відповідно, бачать кращі ходи і абсолютно всі можливі варіанти розвитку подій. Такий софт використовують любителі і професіонали для аналізу партій. Саме про це і піде мова в нашій статті.
Для початку ми хочемо уточнити, що далі мова піде про найпопулярніші движках і графічних оболонках, які використовуються як для повноцінної гри, так і для перевірки певних стратегій. Ми підбирали цей список, виходячи з результатів WCCC (міжнародного щорічного турніру з шахів між движками). Існує актуальний список CCRL 40/40 з рейтингом двигунів. Саме від нього ми і будемо відштовхуватися, розташувавши весь софт за спаданням рангу.
SugaR NN
Повністю відкритий двигун SugaR NN став відомим лише нещодавно. Ще буквально кілька років тому його не було в згаданому вище списку, а тепер він тримається на першому місці з рейтингом 3490 при 672 зіграних матчів. Звичайному користувачеві інформація про підтримку 128 ядер і інші технічні характеристики будуть марні, оскільки в більшості випадків запуск відбувається на звичайному комп'ютері. Ми пропонуємо відразу ж ознайомитися з важливими аспектами. В першу чергу варто задуматися про встановлення додаткового графічного інтерфейсу, що рекомендують зробити творці для підвищення комфорту взаємодії з SugaR NN. Цей движок може бути інтегрований в XBoard з PolyGlot, eboard, Arena, Sigma Chess, Shredder, Chess Partner, Aquarium або Fritz. Додатково творці надають документацію, де більш детально розписано про кожну оболонці і інсталяції движка в них. Ще уточнимо, що в останній версії движка з'явилася підтримка Syzygy Bases. Це компактна база даних ендшпілів. У ній зберігаються файли з відомостями про всіх матчах, а також окремі DTZ-об'єкти для розрахунку до нуля (аналіз партій з поглибленням до самого останнього ходу).
У SugaR NN присутні важливі опції, що дозволяють знижувати рівень майстерності. Перша з них називається &171;UCI_LimitStrength&187; . Її особливість полягає в установці рейтингу ELO (система оцінки гравців). Другий алгоритм має назву &171;MultiPV&187; . При його активації програма з більшою часткою ймовірності вибере слабкий хід. Для аналізу партій використовується функція &171;ICCF Analyses&187; . За замовчуванням конфігурація движка виставлена на максимальну продуктивність без пропуску важких ударів, проте Вам доступна коригування його поведінки шляхом зміни значення сили. Про це більш детально написали розробники на офіційному сайті. Ми можемо сміливо рекомендувати SugaR NN як найсильніший на поточний момент часу движок. Якщо вас зацікавив цей софт, клікніть за вказаною нижче посиланням для переходу до сторінки його завантаження.
Leela Chess Zero
Leela Chess Zero &8212; досить старий шаховий движок з відкритим вихідним кодом, який з кожним роком показує всі кращі результати на міжнародних змаганнях. На даний момент він вибився в топ 2 За рейтингом CCRL 40/40, набравши 3463 ELO за 362 проведені гри. Lc0 складається всього з двох важливих файлів, навколо яких і будуються всі обчислювальні потужності. Перший двійковий елемент зберігає в собі дані функції оцінки різної ваги для пошуку, приймаючи при цьому вхідні дані. Другий об'єкт є нейронною мережею. Завдяки йому даний движок взагалі може працювати, аналізувати і підбирати оптимальні варіанти, виходячи із заданих налаштувань. Інформація в цьому об'єкті генерується постійно під час власної ж гри програми. В процесі своїх обчислень Lc0 задіє потужності графічного адаптера, що дозволяє в кілька разів збільшити швидкість роботи. Якщо ж звалити всі завдання на CPU, то виробники не гарантують такого ж швидкого обчислення.
Leela Chess Zero виділяється тим, що всі старі нейромережі, які вже перестали використовуватися в актуальній версії, зберігаються у відкритому доступі. Тобто кожен користувач може завантажити їх і замінити поточний файл, якщо це буде необхідно. Використовуйте найважливіший пункт &171;Cpuct value&187; для встановлення параметрів пошуку. Чим більше його значення, тим ширше буде надана інформація. Однак будьте обережні з встановленням занадто великих значень. Вони можуть привести до того, що на пошук витратиться величезна кількість ресурсів, але при цьому серед вигідних і кращих ходів відобразяться непотрібні руху, які просто ніколи не будуть виконані на дошці. Більш детальна інформація по конфігурації доступних параметрів написана на офіційному сайті. Розробники постаралися максимально докладно розписати кожне значення, а також продемонстрували приклади взаємодії з різними GUI (графічними інтерфейсами).
Komodo
Тепер мова піде про шаховому движку з закритим вихідним кодом &8212; Komodo. Його поточна версія 13.2 поширюється платно. Вона ще не була оцінена в CCRL 40/40, проте на третьому місці в топі знаходиться збірка 13.1, набравши 3416 очок рейтингу за 448 проведених ігор. На офіційному сайті безкоштовно доступна тільки версія 10, а всі наступні доведеться купувати, оплачуючи покупку через PayPal. В першу чергу відразу відзначимо, що Komodo поширюється без графічної оболонки, тобто не включає в себе шахову дошку. Для інтеграції ви можете використовувати будь-який зручний софт, що підтримує установку движків. Детально про це написано на сторінці ПЗ, де знаходяться всі відповідні інструкції.
Давайте швидко пробіжимося по основних функціях, які ви знайдете в даному движку. Технічні конфігурації, що відносяться до швидкодії і методам обчислень ми пропустимо, оскільки про це більш правильно написано на офіційному сайті. Обов'язково прислухайтеся до рекомендацій розробників, щоб випадково не зламати систему аналізу помилками при редагуванні параметрів. Ми ж хочемо відзначити опцію &171;Null Move Pruning&187; : при її активації Komodo починає грати набагато сильніше. Задіяти цей алгоритм пошуку рекомендується в складних ситуаціях, коли знайти вихід не виходить. Движок проведе максимально ретельний пошук і видасть правильний хід. Однак він може виявитися недостатньо сильним при серйозних загрозах або позиціях цугцванга (коли будь-який хід веде до погіршення положення на дошці). Редагуйте значення &171;Null Scale&187; для визначення агресивності глибини пошуку. Низькі значення роблять кожен хід більш безпечним, а високі підвищують ризик пропуску загроз. В якості останньої цікавої функції відзначимо &171;Contempt&187; &8212; при позитивному значенні відбувається заохочення або перешкоджання обміну фігурами. Існує формула, за якою вираховується оптимальне Contempt для кожного супротивника. Вам потрібно відняти його ELO від рейтингу Komodo, а потім розділити на 15. Відхилення від формули рекомендуються тільки при гандикапі (надається перевазі слабшому гравцеві).
Houdini
На четвертому місці в CCRL 40/40 розташувалася остання версія відомого у всьому світі движка Houdini. Зараз його ELO становить 3398 за результатами 1800 зіграних матчів. Популярні коментатори і гравці відзначають, що стиль ведення гри Houdini не схожий на всі інші движки. Він більше схильний вести агресивну партію, жертвуючи фігури. Це відбувається через обробки рухливостей фігур. Houdini & 8212; це UCI-сумісний шаховий движок, для роботи якого потрібне графічне середовище. Встановлений інтерфейс покаже вам шахову дошку і дозволить грати і аналізувати позиції. Вибір GUI залежить саме від вас, а що стосується інсталяції, вся інформація є на сайті творців.
По функціональності відразу ж хотілося б відзначити опцію &171; Tactical Mode&187; . У нього є безліч режимів роботи. За замовчуванням він відключений, але якщо задати значення 1, 2, 3 або, наприклад, 8, то в певну кількість потоків, що залежать від встановленого числа, Houdini буде шукати найбільш хитрі варіанти ходів, використовуючи свою нейронну мережу. Це дозволить зробити партію ще більш непередбачуваною і потренувати свої навички на прораховуванні небанальних ситуацій. Опція під назвою &171;Limit strength&187; вже говорить сама за себе. Гранично низьке значення визначає мінімальну силу движка, а при підвищенні відбувається зміна рівня складності в більшу ступінь. Існують певні обмеження для кожного типу сили, а також є таблиця, яка відображає приблизний ELO на певному рівні сили. Додатково розробники Houdini створили велику базу даних. Використовуйте її для отримання всієї необхідної інформації по взаємодії з розглянутим движком.
Ethereal
Ethereal &8212; UCI-сумісний шаховий движок (а це значить, що поширюється він без графічного інтерфейсу), що використовує альфа-бета-фреймворк. Він був створений за прикладом ряду проектів з відкритим вихідним кодом і покликаний служити як високопродуктивним аналізатором і суперником, так і довідковим матеріалом для інших розробників подібних інструментів. Цей движок знаходиться на п'ятій сходинці взятого за приклад рейтингу, ім'я 3328 балів при 520 відіграних матчів. Ethereal підтримує ряд відносно стандартних опцій. Більшість графічних інтерфейсів повинні підтримувати встановлення кожного параметра. Якщо щось налаштувати не вдається, доведеться звернутися за допомогою до офіційної документації програмного забезпечення.
Що стосується доступних параметрів і принципів поведінки, то можна відзначити ряд тих опцій, який присутні і в інших подібних движках. Давайте коротко пробіжимося по самим основним алгоритмам, щоб у користувачів не виникло питань з приводу їх наявності в Ethereal:
- &171;Hash&187; &8212; розмір хеш-таблиці визначається в мегабайтах і не має практично ніяких обмежень. При тестуванні з різними движками розробник рекомендує встановлювати однаковий хеш, щоб не виникло неполадок з сумісністю.
- &171;Threads&187; &8212; цей параметр визначає кількість потоків. Виставляйте найбільше значення, щоб забезпечити найбільш високий рівень ELO. Відповідно, цей пункт відповідає за складність движка. Чим вона менша, тим легше буде проти нього битися.
- &171;MultiPV&187; &8212; опція, що використовується для аналізу. Вона відповідає за кількість рядків ітерації під час пошуку. Рекомендується залишити значення за замовчуванням, яке дорівнює &171;1&187; , тоді MultiPV забезпечить максимальну продуктивність.
- &171;MoveOverhead&187; &8212; виступає в ролі буфера часу. Регулюйте цей параметр при грі з обмеженням за часом. Зменшуйте буфер, якщо помітили, що движок не встигає укладатися у відведені секунди або почав помітно відставати.
Інші технічні параметри ви знайдете в офіційній документації движка. Не змінюйте показники самостійно, якщо попередньо не дізналися про значення функції. При виборі графічного інтерфейсу також враховуйте сумісність з основними можливостями.
Xiphos
Xiphos &8212; безкоштовний движок, створений любителями, які спочатку не ставили перед собою мету реалізації професійного проекту. Однак у майбутньому справи у цього програмного забезпечення пішли вгору, і тепер він займає сьоме місце в топі движків, набравши 3312 при 721 грі. Підтримується Xiphos абсолютно всіма графічними оболонками, сумісними з форматом UCI, тому з інсталяцією не повинно виникнути ніяких проблем.
Поточний движок реалізований точно за таким же принципом, як і інші аналоги, але має свої особливості поведінки, що залежать від завантаженої бази ігор. Всі встановлені за замовчуванням параметри відповідають тим, про які ми вже говорили вище. Окремо можна відзначити тільки &171;MoveOverhead&187; : значення цієї опції визначають мінімальну кількість секунд, яка залишається на годиннику до завершення партії або ходу. Змінювати це варто тільки в тому випадку, якщо Xiphos програє за часом. Ми ж радимо безкоштовно завантажити цей софт, встановити його в GUI і перевірити на собі принципи гри і аналізу партій.
Laser
В якості останнього топового движка ми вирішили взяти Laser, оскільки своїми особливостями він виділяється серед всіх розглянутих раніше представників. Для початку варто уточнити, що в тому ТОПі, який ми взяли за приклад, дана нейронна мережа займає останнє місце, закриваючи топ 10. При цьому поступається цей движок тільки на п'ять очок позиції вище, набравши 3285 за 726 ігор. Він реалізований все в тому ж форматі UCI, тобто представлений тільки у вигляді коду для командного рядка. Ви можете використовувати абсолютно будь-який GUI для підключення движка точно так же, як це стосувалося і інших представників цієї статті. Далі ми пройдемося по основних функціях, на які слід звернути увагу.
Найцікавіше &8212; режими оцінки ходів. Вони діляться на кілька типів. Давайте розглянемо кожен, щоб будь-який користувач в майбутньому зміг підібрати оптимальний алгоритм.
- Перший режим є налаштованим, де використовується навчається система Texel&8217;s Tuning Method. Тобто за аналіз беруться вже зіграні партії, а потім шляхом перебору вибираються оптимальні ходи для поточної ситуації.
- Стиль гри для захисту короля. У цьому режимі всі сили йдуть на оборонні позиції пішаків, щоб забезпечити повну безпеку королю.
- В третьому стилі упор теж зроблений на пішаки, але тут вони бувають ізольованими, здвоєними або зворотними.
- Останній режим спрямований на детальне виявлення загроз. Це дозволить прорахувати абсолютно всі втрати, але на цей процес піде найбільше часу.
Гнучкий пошук основного варіанту дозволить налаштувати складність конкретно під певну ситуацію. Тут може обрізатися нульовий хід для зменшення пізнього ходу, видалятися безрезультативні варіанти або буде здійснюватися перевірка на виняткові рішення. Додатково Laser здатний оцінювати важливість кожної фігури в грі. З цього вже формуються жертви або додатковий захист для об'єктів. Всі значення і опису опцій шукайте в офіційній документації движка.
Stockfish
В якості останнього шахового движка ми хочемо взяти Stockfish. Зараз він не тримається в топах CCRL, але раніше займав лідируючі позиції. Дане програмне забезпечення особливо корисно буде новачкам через реалізацію певних функцій, які в іншому по відсутні або налаштовуються більш складним чином. Важливо відзначити, Stockfish теж є UCI-движком, тому обов'язково підшукайте відповідний графічний інтерфейс для проведення та аналізу партій. Рекомендованими варіантами вважаються Arena, SCID і Winboard. Розглянутий софт має цілих двадцять рівнів складності, що дозволить використовувати його не тільки для глибокого аналізу, але і застосовувати на практиці, граючи партії з різними умовами.
Упор в грі Stockfish зроблений саме на тактику, однак і позиційні аспекти не будуть зовсім упущені. Спробуйте убити між собою це інструмент проти, наприклад, Komodo, щоб самостійно побачити всю різницю опрацювання ходів. Звичайно, для цього краще задіяти максимальний рівень складності. У Stockfish підтримується велика база даних шахових закінчень, що використовується при аналізі доступних ходів. Глибина пошуку цього движка просто величезна, тому на виході ви отримуєте безліч доступних варіантів як кращих, так і досить спірних або хитрих. Stockfish розповсюджується безкоштовно та доступний для завантаження на веб-сайті розробників.
Ми представили інформацію з приводу топових движок для аналізу шахових партій. Як бачите, всі вони досить потужні і приблизно рівні за силою, але при цьому мають різні тактики і формули розрахунків. Вам залишилося тільки підібрати оптимальний для себе варіант і інтегрувати його в графічну оболонку з підтримкою UCI.