我正在研究一个电源管理问题,我根据事件的发生来控制计算板的电源管理。我正在使用强化学习(传统的 Q 学习)进行电源管理,其中计算板作为服务提供商 (SP) 来处理请求(图像)。SP 连接到智能相机,电源管理器 (PM) 算法在相机上运行,向 SP 发出适当的电源命令(睡眠、唤醒)。智能相机根据事件的发生捕获图像(请求),并为请求(图像)维护一个服务队列(SQ)。我还有一个基于 ANN 的工作负载估计器,可将当前工作负载分类为低或高. Q 学习算法的状态空间因此包括 Q(s,a) 的复合,其中 s=(SR, SQ, SP)。SR 是工作负载的状态。SQ 是服务队列的状态,SP 是服务提供者的状态。PM 根据当前的工作量、队列的状态和服务提供者的状态,向 SP 发出某些命令(睡眠、唤醒)。该决定是在以下阶段做出的:
- SP 空闲
- SP刚进入休眠状态,SQ>=1
- 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) 但这当队列中的一些请求到达时,请求会自动到达,因此在此状态下没有采取任何行动,也没有任何行动可用于分配成本。