Хорошо, похоже, никто не помогает вам, поэтому я просто написал для вас файл среды Python, как вы описали.Я также разработал для вас как можно больше стилей OpenAI, вот ссылка на него, она есть в моем репозитории GitHub.Вы можете скопировать код или разветвить его.Я объясню это ниже:
https://github.com/RuiNian7319/Miscellaneous/blob/master/ShootingRange.py
Состояния = [0, 1, 2, ..., 10]
Actions = [-2, -1, 0, 1, 2]
Таким образом, игра начинается со случайного числа от 0 до 10 (вы можете легко изменить это, если хотите), и случайное число является вашей «целью», которую вы описали выше.Учитывая эту цель, ваш агент ИИ может стрелять из оружия, и он стреляет пулями, соответствующими числам выше.Цель состоит в том, чтобы ваша пуля и цель суммировались до 5. Существуют отрицательные значения в случае, если ваш агент ИИ перешагнул 5, или если целью является число выше 5.
Чтобы получить положительное вознаграждение, агентдолжен получить 5. Таким образом, если текущее значение равно 3, а агент стреляет 2, то агент получит вознаграждение 1, так как он получил общее значение 5, и этот эпизод закончится.
Есть 3 способа завершения игры:
1) Агент получает 5
2) Агент не получает 5 из 15 попыток
3) Число выше 10. В этом случае мы говорим, что цель слишком далеко
Иногда вам нужно стрелять несколько раз, чтобы получить 5. Так что, если ваш агент стреляет, его текущая пуля будет добавлена ксостояние, и агент пытается снова из этого нового состояния.
Пример:
Текущее состояние = 2. Агент снимает 2. Новое состояние - 4. И агент начинает с 4 на следующемшаг времени.Это «последовательное принятие решений» создает вспомогательную учебную среду, а не контекстный бандит.
Надеюсь, это имеет смысл, дайте мне знать, если у вас есть какие-либо вопросы.