Java не является хорошим языком для выполнения сложных математических вычислений (это то, что вам нужно будет сделать для RL). Вы можете попытаться реализовать алгоритмы Q-Learning, Value-Iteration или Policy-iteration, но я бы избегал делать что-либо с нейронными сетями / современными подходами глубокого RL, поскольку ваша рабочая нагрузка значительно возрастет.
Что касается вашей проблемы, если вы хотите реализовать один из алгоритмов старой школы. Подумайте о своем состоянии и пространстве действия. У меня есть серьезные опасения по поводу размера вашего пространства действия, даже с небольшим количеством ходов для каждого солдата (скажем, 3 - атака, движение вверх, движение вниз) с 50 солдатами, пространство действия будет очень большим - 50 ^ 3, дажесо многими из них будет трудно иметь дело, больше (даже 4 или 5) отправит вас глубоко в некоторые сложные темы в RL.
Другие проблемы - определение хорошего сигнала вознаграждения, эффективный запуск (потенциально миллионы) симулируемых игр.
Короткий ответ: это не то, что нужно воспринимать легкомысленно, это будет сложным и трудоемким даже для тех, кто имеет опыт работы в этой области, и использование Java - нет-нет (лучше Python). Учитывая, что вам, вероятно, не придется долго искать хорошее решение, я бы порекомендовал попробовать другой подход - возможно, основанный на планировании, или жесткий код разумной стратегии.
Если вы все еще хотите продолжить и прочитать эту тему, вот несколько хороших ресурсов:
- Укрепление, изучение введения (Саттон и Барто) -подойдет любое издание
- Отдельные главы в Искусственный интеллект: современный подход (Рассел и Норвиг)
Надеюсь, что это поможет, и извините, что это не такмы надеемся ответить вам