Я хочу запрограммировать шахматный движок, который учится делать хорошие ходы и побеждать других игроков. Я уже кодировал представление шахматной доски и функцию, которая выводит все возможные ходы. Поэтому мне нужна только функция оценки, которая говорит, насколько хороша данная ситуация на доске. Поэтому я хотел бы использовать искусственную нейронную сеть, которая затем должна оценить данную позицию. Вывод должен быть числовым значением. Чем выше значение, тем лучше позиция для белого игрока.
Мой подход заключается в построении сети из 385 нейронов: на доске шесть уникальных шахматных фигур и 64 поля. Таким образом, для каждого поля мы берем 6 нейронов (по 1 на каждый кусок). Если есть белая часть, входное значение равно 1. Если есть черная часть, значение равно -1. И если на этом поле нет такого фрагмента, значение равно 0. Кроме того, для перемещения игрока должен быть 1 нейрон. Если ход черных, входное значение равно 1, а черных - -1.
Я думаю, что конфигурация нейронной сети довольно хорошая. Но основная часть отсутствует: как я могу внедрить эту нейронную сеть в язык кодирования (например, Delphi)? Я думаю, что веса для каждого нейрона должны быть одинаковыми в начале. В зависимости от результата матча, веса должны быть скорректированы. Но как? Я думаю, что я должен позволить двум компьютерным игрокам (оба используют мой движок) играть друг против друга. Если белые побеждают, черные получают сообщение о том, что их вес плохой.
Так что было бы здорово, если бы вы могли помочь мне внедрить нейронную сеть в язык кодирования (лучше всего Delphi, иначе псевдокод). Заранее спасибо!