Как представить шахматную партию в виде математики/массива чисел?
Здравствуйте, разумеется в этом плане я не первый, однако я хочу попробовать написать нейронную сеть играющую в шахматы, однако я ни как не могу понять, как представить правила шахмат для неё. Расположение шахматных фигур я думал представить, как массив с первым элементом либо ноль, либо единица, где ноль - белые, следующий элемент - номер фигуры, где 0 - пешка, 1 - ладья, и т.д. Однако, я не могу придумать, как представить программе правила движения фигур, или варианты при которых в игре будет ничья. Может быть вы что-нибудь подскажете?
Можно так попробовать:
Пусть нейронная сеть выполняет роль оценочной функции.
Т.е. на вход сети подается состояние доски, а на выходе получается числовая оценка позиции.
Дерево возможных ходов формируется не сетью, а внешней функцией.
По факту строиться дерево ходов из текущей позиции и для каждого хода получается оценка с помощью нейронной сети, а дальше отбирается ход с наилучшей оценкой.
По такая реализация шахмат с нейронной сетью должна работать быстрее, чем поиск в глубину.
Для обучения можно попробовать просчитать позицию классическим перебором, а затем отдать ее же нейронной сети и тренировать пока оценки от нейронной сети не станут совпадать с оценками полученными перебором.
Похожий вопрос вот тут разбирается:
qaru.site/questions/6525/how-to-program-a-neural-network-for-chess
Спасибо, я как-то не подумал про оценку нейросетью. Но я предполагаю, что за время хода просчитать все варианты дерева событий до мата нереально (или все же нет?), что же будет оценивать нейронная сеть?
wintreist, прочитывать нужно в момент обучения. В момент игры сеть уже сама должна давать оценку. Ну и до конца партии считать не нужно. Можно просчитать например на 5 ходов вычислить оценку и научить сеть хотя бы этому.
peshenka, альфу так и тренировали, но это очень много ресурсов требует и в реализации сильно сложнее.
Тут вопрос цели, если просто поиграть с НС, то хватит простого варианта с перебором, а если нужно Карсена сделать, то нужно по полной заморачиваться.