avva: (Default)
[personal profile] avva
Шахматная программа Stockfish только что победила в самом престижном турнире компьютерных шахмат. Ее можно таким образом считать сильнейшей программой на данный момент. Необычно тут следующее: Stockfish - программа с открытым исходным кодом, который каждый может прочитать и исследовать. Обычно до сих пор самые верхние места в компьютерном рейтинге занимали программы с закрытыми исходниками.

Прямо вот на Github лежит: хочешь - бери, читай, клонируй, меняй.

Исходники при этом у нее написаны довольно чисто и ясно, читается легко, когда немного - посмотрите сами. Я это к чему говорю: тем программистам, которым интересно понять современное положение дел в компьютерных шахматах, можно посоветовать почитать именно эти исходники. Насколько я понимаю, с алгоритмической точки зрения там ровно такой же alpha-beta pruning, как объясняется в начальных курсах по искусственному интеллекту, и различие разных программ в том, какая у них эвристика остановки поиска, а также беспощадная оптимизация. Тем удобнее, что у текущего чемпиона это все получается сделать с небольшим относительно массивом понятно написанного и общедоступного кода.

Date: 2014-06-01 05:44 pm (UTC)
From: [identity profile] strannik1.livejournal.com
В двух словах для чайников объясните как алгоритм работает?

Date: 2014-06-01 05:51 pm (UTC)
From: [identity profile] ircicq.livejournal.com
Alpha-Beta самый примитивный алгоритм для игр:
Перебор всевозможных путей в дереве "а если я так схожу - а он так ответит - а я на него эдак..." на максимально возможную глубину и количественная оценка получившихся после этого позиций.

Выбирается тот ход, при котором все рассмотреные позиции в худшем случае лучше чем при других ходах
Edited Date: 2014-06-01 05:51 pm (UTC)

Date: 2014-06-01 05:55 pm (UTC)
From: [identity profile] psilogic.livejournal.com
это интернет-коммунизм :)

Date: 2014-06-01 05:56 pm (UTC)
From: [identity profile] 3d-object.livejournal.com
Если это так, то победить должен тупо более мощный компьютер, который глубже лезет в дерево?

Date: 2014-06-01 06:01 pm (UTC)
From: [identity profile] ircicq.livejournal.com
на соревнованиях программ техника должна быть одинаковой по вычислитльной мощьности. Побеждает искусство оптимизации

Date: 2014-06-01 06:50 pm (UTC)
From: [identity profile] avva.livejournal.com
Какой мой ход самый лучший? На каждый потенциальный мой ход посмотрю на лучший ответ противника, и из получившихся позиций выберу наилучшую для меня - тот мой ход, который к ней приведет, и есть наилучший.

Но как из всех этих позиций выбрать наилучшую? - тем же способом рекурсивно: попробовать каждый мой ход, на него лучший ответ противника, выбрать то, что получилось удачнее всего. А какое это - "удачнее всего"? Попробуем еще на два хода глубже и посмотрим, что получилось...

Если бы мы могли так продолжать неограниченно, то каждую ветку вычислений довели бы до мата, пата или другой концовки игры, и это был бы полный перебор всех возможностей. Но на практике это невозможно, потому что количество вариантов растет экспоненциально. Поэтому после нескольких уровней перебора надо остановиться и сказать: так, эта позиция, которая получилась, в чью пользу она выглядит "из общих соображений" и насколько? Ну типа, у кого больше фигур и пешек, и другие подобные грубые соображения.

От скорости компьютера и нашего умения оптимизировать программу зависит, как глубоко мы сможем делать перебор вариантов.
Эта глубина поиска, а также то, как хитро мы напишем функцию оценки позиции, какие шахматные соображения в нее внесем, и как будем решать, когда останавливать перебор, определят силу игры алгоритма.

Вышеописанное - это алгоритм минимакс с обрывом (обрывом перебора через какое-то количество шагов). На практике применяется несколько более хитрая разновидность, которая называется alpha-beta pruning. Суть этого улучшения в следующем. Предположим, я уже вычислил, что после моего хода А лучший ответ противника Б приводит к позиции, которую я даю оценку, скажем, 10 (чем больше, тем лучше для меня). Теперь я смотрю на свой ход В и вижу, что на него есть ответ противника Г который дает оценку 5, меньше 10. Тогда я могу другие ответы противника на В даже не рассматривать. Я ведь все равно в итоге выберу лучший ответ за противника (т.е. минимальная оценка в мою пользу), который даст оценку 5 или меньше - и поэтому ход В уже точно не сможет конкурировать с ходом А. Значит, я могу сразу отказаться от хода В и все другие ответы противника на него даже не рассматривать.

Date: 2014-06-01 06:52 pm (UTC)
From: [identity profile] strannik1.livejournal.com
То есть как и 20 лет назад просто перебор вариантов?

Date: 2014-06-01 07:12 pm (UTC)
vlad_suh: Glider in the sky (Default)
From: [personal profile] vlad_suh
Тупо более мощный не получится. Там количество комбинаций растёт так стремительно, что никакой памяти не хватит.

Date: 2014-06-01 07:32 pm (UTC)
From: [identity profile] zveriozha.livejournal.com
Очень важный элемент силы игры шахматных программ - доступ к существующим базам партий. Которые постоянно пополняются.

Date: 2014-06-01 10:26 pm (UTC)
From: [identity profile] dragon-ru.livejournal.com
А чего необычного? До этого сильнейшим был Ippolito/Robbolito, тоже с открытым исходным кодом. Потом - основывавшийся на нем же Houdini - так что ничего особенного

Date: 2014-06-02 08:10 am (UTC)
From: [identity profile] snyders.livejournal.com
по-моему как раз нет.

Date: 2014-06-02 12:45 pm (UTC)
From: [identity profile] zveriozha.livejournal.com
Очень даже да.. :) Иначе они будут в дебюте фигню пороть.

Date: 2014-06-03 06:55 am (UTC)
From: [identity profile] piter239.livejournal.com
И это, говорят, во многих областях так: современный алгоритм на допотопном железе обгоняет допотопный алгоритм на современном железе просто влёт.

Учитывая, как сильно продвинулось железо - это просто удивительно!

Date: 2014-06-03 09:49 am (UTC)
From: [identity profile] ext-2087110.livejournal.com (from livejournal.com)
Это было верно для программ года этак до 2011-го. Современные программы вышли на тот уровень, что даже в дебюте они находят хорошие ходы ( не хуже чем анализ гроссмейстера-профессионала).

Date: 2014-06-06 01:48 pm (UTC)
From: [identity profile] onedrey.livejournal.com
Нет, главное - отсечение ненужных вариантов и, соответственно, незатрачивание на них процессорных мощностей

Date: 2014-06-16 07:51 am (UTC)
From: [identity profile] access07.livejournal.com
Или не находят, что гораздо чаще случается.

January 2026

S M T W T F S
    1 2 3
4 5 6 7 8 910
11 12 1314 151617
18192021222324
25262728293031

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Jan. 16th, 2026 05:28 am
Powered by Dreamwidth Studios