Я пытаюсь разработать итерационный марковский процесс принятия решений (MDP) агент в Python со следующими характеристиками:
- наблюдаемое состояние
- Я обрабатываю потенциальное «неизвестное» состояние, резервируя некоторое пространство состояний
для ответа на ходы типа запроса, сделанные DP (состояние при t + 1 будет
идентифицировать предыдущий запрос [или ноль, если предыдущее перемещение не было запросом]
а также встроенный вектор результата) это пространство дополняется нулями до
фиксированная длина, чтобы сохранить состояние кадра независимо от запроса
ответил (длина данных которого может отличаться)
- действия, которые не всегда могут быть доступны во всех штатах
- функция вознаграждения может меняться со временем
- политика конвергенции должна увеличиваться и вычисляться только за ход
Таким образом, основная идея состоит в том, что MDP должен сделать наилучшее предположение, оптимизированное движение в точке T, используя свою текущую вероятностную модель (и поскольку его вероятностное движение, которое он делает, является ожидаемым стохастическим, подразумевающим возможную случайность), соедините новое входное состояние в T + 1 с вознаграждением за предыдущий ход в Т и переоценить модель. Конвергенция не должна быть постоянной, поскольку вознаграждение может модулироваться или доступные действия могут измениться.
Что я хотел бы знать, так это то, что существуют ли текущие библиотеки Python (желательно кроссплатформенные, так как я обязательно изменяю среды между Windoze и Linux), которые уже могут делать подобные вещи (или могут поддерживать их с помощью соответствующей настройки, например : поддержка производного класса, позволяющая переопределить метод скажем вознаграждения своим собственным).
Я нахожу информацию об обучении MDP в режиме реального времени на ход довольно скудно. Кажется, что большинство случаев использования MDP, которые я могу найти, сосредоточены на решении всей политики в качестве шага предварительной обработки.