У вас возникли проблемы с представлением для реальной стратегии, это не удивительно. На самом деле я бы сказал, что это самая сложная часть того, что вы пытаетесь сделать. К сожалению, я не слышал о Стратеге, поэтому, будучи немного ленивым, я собираюсь предположить, что вы сказали, что шахматы.
Беда в том, что шахматная стратегия - довольно сложная вещь. Вы предлагаете в своем ответе много переходов между советами в GA, но шахматная доска имеет более возможные позиции, чем число атомов во Вселенной, что явно не будет работать очень хорошо. То, что вам, скорее всего, нужно будет сделать, - это кодировать в GA ряд весов/параметров, которые привязаны к чему-то, что занимает позицию на борту и срабатывает, я считаю, что это то, о чем вы намекаете во втором предложении.
Возможно, самым простым предложением было бы использовать какое-то общее приближение функции, например нейронную сеть; Perceptrons или Radial Basis Functions - две возможности. Вы можете кодировать веса для различных узлов в GA, хотя есть и другие довольно правильные способы обучения нейронной сети, см. Backpropagation. Вы могли бы, возможно, кодировать структуру сети, а также, это также имеет то преимущество, что я уверен, что проведено значительное количество исследований в разработке нейронных сетей с генетическим алгоритмом, чтобы вы не начинали полностью с нуля.
Вам все равно нужно придумать, как вы собираетесь представить доску в нейронную сеть и интерпретировать ее результат. Тем более, что с шахматами вам нужно будет принять во внимание, что много ходов будет незаконным. Было бы очень полезно, если бы вы могли кодировать плату и интерпретировать результат таким образом, чтобы были представлены только юридические шаги. Я бы предложил реализовать механику системы, а затем поиграть с различными представлениями на борту, чтобы увидеть, что дает хорошие результаты. Несколько идей верхней части идей головы, чтобы вы начали может быть, хотя я на самом деле не убежден, ни один из них особенно большие способы, чтобы сделать это:
- битовая строка со всеми 64 квадратов один за другим с номер, представляющий то, что присутствует в каждом квадрате.Наиболее очевидное, но, вероятно, довольно плохое представление, поскольку для отфильтровывания незаконных ходов потребуется много работы.
- Битовая строка со всеми 64 квадратами одна за другой с номером, представляющим, что может перемещаться на каждый квадрат. Это имеет преимущество, заключающееся в том, чтобы воплотить концепцию покрытия шахмат, в которой вы, насколько это возможно, получаете как можно больше охвата доски своими предметами, но все еще имеете проблемы с незаконными действиями и отношениями с дружественными/вражескими частями.
- Немного строка со всеми 32 штуками одна за другой с номером, представляющим местоположение этой части на каждом квадрате.
В целом, хотя я бы предположил, что шахматы - довольно сложная игра для начала, я думаю, будет довольно сложно получить что-то, играющее со стандартом, что заметно лучше, чем случайное. Я не знаю, проще ли Strategyo, но я бы настоятельно предложил вам выбрать довольно простую игру. Это позволит вам сосредоточиться на правильном использовании механики реализации и представлении состояния игры.
В любом случае, надеюсь, что это поможет вам.
EDIT: В качестве быстрого дополнения стоит обратить внимание на то, как работают стандартные шахматные AI, я считаю, что большинство используют Minimax system.
Stratego действительно немного проще в том плане, что у него меньше возможных ходов - это было по крайней мере достаточно просто, чтобы наш наставник (не уверен, что это правильно срок) одобрил его. Поскольку шахматы хорошо известны, и, насколько этот вопрос, вероятно, достаточно схожим, я решил пойти на это. Спасибо за ваши предложения! – Vincent