-2

Рассмотрите стандартную плату 7 * 6. Предположим, я хочу применить алгоритм Q-Learning. Для его применения мне нужен набор всех возможных состояний и действий. Там может быть 3^(7 * 6) = 150094635296999121. Поскольку его невозможно сохранить, я рассматриваю только юридические состояния.Как сгенерировать все законные пары действия-действия соединить четыре?

Как я могу создать Q (s, a) для всех правовых состояний и действий?

Это не моя домашняя работа. Я пытаюсь узнать об алгоритмах усиления. Я искал это с двух дней. Самое близкое, к чему я пришел, - это рассматривать только правовые государства.

ответ

0

Существует 3 процесса, которые необходимо настроить. Один, который генерирует следующий ход, который изменяется там, где это движение ведет, и, наконец, оценивает блок 4x4 через серию проверок, чтобы убедиться, что это победитель. Это поможет помощь в работе с Numpy и Scipy.

Настройте массив Numy нулей. Измените число на 1 для 1-го игрока и -1 для ходов, выполняемых игроком 2. Проверка 4x4 суммируется по оси x, а затем по оси y, а затем по сумме диагоналей, если абс (сумма (ось)) = = 4, тогда выведите плату раньше, чем конец.

Это может создавать дубликаты в зависимости от реализации, поэтому все они помещаются в набор в конце.

** Редактировать из-за комментариев и вопрос модификации.

Вам необходимо использовать генераторы и выполнить первый поиск глубины. Существует максимум 7 возможных ветвей для любого состояния с возможностью 42 ходов. Вы только хотите выиграть или потерять состояния для хранения (не сохраняйте тупики, поскольку они занимают больше всего памяти). Штатами будет 2 набора мест по одному для каждого игрока. Когда вы переходите вперед и находите выигрышное/проигравшее состояние, сохраните состояние со значением, перейдите назад к предыдущему движению и обновите значение, там также сохраняя это.

Существует 144 возможных способа выиграть/проиграть, чтобы соединить четыре, и я не знаю, сколько состояний связано с каждым. поэтому я не уверен, сколько шагов от победы вы хотите сохранить.

+0

1. Готово - следующий шаг генерируется NextMove() 2. Готово - Новое состояние возвращается applyMove (NextMove()) 3. Готово - У меня есть функция для вертикально, горизонтально и по диагонали оценки доски. Но мой вопрос не в этом. Мне нужны все (законные) пары действия действия, которые являются первым шагом алгоритма Q-Learning. Я отредактировал этот вопрос, чтобы сделать мой вопрос более ясным. –