我正在尝试解决 Sutton 的强化学习书 [1] 第 10 章中提出的访问控制队列任务问题的变体。
我的设置的具体细节如下:
- 我有不同类型的任务到达系统(重/中/轻,需要更多时间处理的繁重任务。)。具体的任务类型是统一随机选择的。任务到达间隔时间为一般。
- 我有不同类别的服务器可以处理这些任务(低容量;中等容量;高容量;高容量服务器具有更快的处理时间)。当我从给定类中选择特定服务器时,它在分配给它的任务的处理时间内变得不可用。请注意,服务器集(以及因此每个类的服务器数量)不是固定的,而是根据用于对服务器集建模的数据集定期更改(因此特定服务器可能会消失,而新的服务器可能会出现) ,而不是由分配引起的不可用)。每个类的最大服务器数为.
- 我的目标是决定哪类服务器应该处理给定的任务,以最小化所有任务的处理时间总和。
具体的强化学习公式如下:
- 状态:任务类型(重/中/轻);可用的低容量服务器的数量;可用的中等容量服务器的数量;可用大容量服务器的数量
- 动作:(1)将任务分配给低容量服务器(2)将任务分配给中等容量服务器(3)将任务分配给高容量服务器(4)处理时间比服务器更差的虚拟动作容量低。当没有空闲服务器时选择它。
- 奖励:与处理时间相反,处理时间如下(以秒为单位):
| | 慢速服务器 | 中型服务器 | 快速服务器 | “假动作” | |---------------|----------------|---------------|--- ----------|----------------| | 轻任务 | 0.5 | 0.25 | 0.166 | 0.625 | | 中等任务 | 1.5 | 0.75 | 0.5 | 1.875 | | 繁重的任务 | 2.5 | 1.25 | 0.833 | 3.125 |
我将问题表述为 RL 问题的直觉是“即使将轻量级任务分配给高容量服务器(即贪婪)可能会在短期内导致高回报,但它可能会减少可用的高容量服务器的数量。重任务来了。因此,繁重的任务将不得不由容量较低的服务器处理,这将减少累积的奖励。
然而,当我实现这个(特别是使用深度 Q 网络[2])并将其与贪婪策略进行比较时,我发现两种方法都获得了相同的奖励。事实上,深度 Q 网络最终会学习贪心策略。
我想知道为什么会发生这种行为,尤其是我希望 DQN 方法能够比贪婪的方法学习更好的策略。这可能与我的 RL 问题表述有关吗?或者说不需要强化学习来解决这个问题?
[1]Sutton, RS 和 Barto, AG (1998)。强化学习简介(第 135 卷)。剑桥:麻省理工学院出版社。
[2]Mnih, V., Kavukcuoglu, K., Silver, D., Rusu, AA, Veness, J., Bellemare, MG, ... & Petersen, S. (2015)。通过深度强化学习进行人工控制。自然,518(7540),529-533.f