2

我正在研究一个电源管理问题,我根据事件的发生来控制计算板的电源管理。我正在使用强化学习(传统的 Q 学习)进行电源管理,其中计算板作为服务提供商 (SP) 来处理请求(图像)。SP 连接到智能相机,电源管理器 (PM) 算法在相机上运行,​​向 SP 发出适当的电源命令(睡眠、唤醒)。智能相机根据事件的发生捕获图像(请求),并为请求(图像)维护一个服务队列(SQ)。我还有一个基于 ANN 的工作负载估计器,可将当前工作负载分类为. Q 学习算法的状态空间因此包括 Q(s,a) 的复合,其中 s=(SR, SQ, SP)。SR 是工作负载的状态。SQ 是服务队列的状态,SP 是服务提供者的状态。PM 根据当前的工作量、队列的状态和服务提供者的状态,向 SP 发出某些命令(睡眠、唤醒)。该决定是在以下阶段做出的:

  1. SP 空闲
  2. SP刚进入休眠状态,SQ>=1
  3. SP 处于休眠状态,SQ 从 0 变为 1。

对于每个动作,都会分配一个成本,该成本由该动作引起的每个请求的平均功耗和平均延迟的加权和组成。在睡眠状态和空闲状态中,该动作包括从预定义超时值列表中选择一些超时值。我的问题如下:

当 SP 进入休眠状态并选择一个超时值时,一些请求可能会在超时值期间到达,因此 SQ 的状态会发生变化。这也将复合状态(例如,S(0,0,0) 更改为 S(0,N,0)。在超时值结束时,PM 决定唤醒 SP(因为 SQ>0 ). 唤醒后,SP 处理请求,当 SQ =0 时,它的状态为 (0,0,1) 或 (1,0,1)。然后它为之前的状态分配一个成本。它还更新相应的 Q 矩阵。我的问题是,应该将成本分配给状态 (0,0,0) 还是 (0,N,0)?原则上,先前的状态是 (0,N,0) 但这当队列中的一些请求到达时,请求会自动到达,因此在此状态下没有采取任何行动,也没有任何行动可用于分配成本。

4

1 回答 1

0

Q 学习适用于马尔可夫决策过程 (MDP),其中在给定状态下执行操作会导致确定性转换到新状态。

目前尚不清楚您描述的问题是部分可观察马尔可夫决策过程(POMDP)还是MDP。如果你有一个 POMDP(你在没有关于队列状态的信息的情况下决定睡觉或醒来),那么问题就更难解决了。

如果您仅在可以观察系统状态时才做出睡眠超时决定,那么您就有了 MDP。在这种情况下,您应该只在到达您选择动作的下一个状态时更新 Q 矩阵。

以下是我如何理解您的示例中的事件顺序:

  1. 系统处于睡眠状态 (0,0,0)
  2. 请求到达队列,系统仍在休眠 - (0,N,0)。
  3. 系统唤醒 - (0,N,1) 或 (1,N,1)
  4. 系统处理请求 - (0|1,0,1)

在第 4 步之后,系统需要做出另一个超时决定并更新 Q 矩阵。当前状态是(0|1,0,1),这个状态应该用在Q-learning算法中。

但是,您担心在 (0|1,0,1) 处更新 Q 矩阵不会考虑系统处理在睡眠时到达的 N 个请求所花费的时间。可能有许多选项可以处理这个问题,其中大多数可能涉及重构问题的状态空间。这样做的一种方法是在奖励函数中考虑 N 个请求 - 如果系统发现您在唤醒时发现的大量请求,那么它应该立即惩罚之前的操作。

于 2012-07-02T20:18:44.720 回答