环境是一个有向图,由具有自己“优点”的节点(标记为绿色)和具有价格的边(标记为红色)组成。在这种环境中存在价格(P)约束。目标是尽可能从节点中累积最多的“好”点,同时制作一个圆圈(例如 0-->6-->5-->0)并且不超过价格限制。.
在没有约束的情况下,我设法实现了 Q-Learning 算法,但我不完全了解如何在逼近 Q-Function 时添加硬约束。
例如,起点是 0。价格限制是 13。走路径 0-->1-->2-->3-->4-->5-->0 对Agent来说不是一个有效的选择,因为在节点 5达到价格(13) 限制,因此,代理应该因违反约束而受到惩罚。然而,采取路径 0-->6-->5-->0 对代理来说是正确的选择,因此他应该得到奖励。我不明白,如何告诉代理有时从 5 到 0 是完美的选择,有时它不适用,因为违反了一些约束。如果违反价格限制并立即结束剧集,我试图给予巨额罚款,但这似乎并没有奏效。
我的问题:
如何为 Q-Learning 等 RL 算法添加硬约束?
Q-Learning 是解决这类问题的有效选择吗?
是否应该选择其他算法,例如蒙特卡洛树搜索而不是 Q-Learning。
我认为这是现实世界场景中非常常见的问题,但我找不到任何关于此的示例。