Итак, агент берет наблюдение, которое содержит значения напряжения каждого узла и некоторые другие непрерывные значения, затем выполняет действие, которое представляет собой возможность изменения нагрузки на каждый узел сети (то есть массив с 24 непрерывными значениями), затем выполняется поток мощности для определить новые значения напряжения, а затем на основе этого нового напряжения рассчитывается вознаграждение. ценности.
Я хочу, чтобы мой агент действовал как можно меньше и устранял нарушения за минимальное количество времени. Итак, я структурировал функцию вознаграждения следующим образом:
- Если нарушений нет, я даю награду в размере 10, и выпуск завершается
- На каждом этапе, если есть нарушения, я налагаю базовый штраф и добавляю дополнительный штраф, пропорциональный величине корректировки.
- Если корректировки, внесенные агентом, таковы. крайность, что мой алгоритм потока мощности не сходится и перестает работать, я налагаю штраф в размере -10 и эпизод заканчивается.
Моя модель PPO имеет следующие параметры:
Код: Выделить всё
model = PPO("MlpPolicy", env, verbose=1, n_steps=256, tensorboard_log="C:\Users\antonio\Downloads\RL", ent_coef=0.01, gamma=0.9)
Вот метрики для попытки PPO с 10 тысячами шагов:

Для DDPG я использовал значения по умолчанию SB3, и я получил это:

Это это так, извините за длинный пост. В любом случае, какие предложения вы могли бы мне дать?
Подробнее здесь: https://stackoverflow.com/questions/792 ... -using-ppo