在强化学习中,如何告诉智能体动作空间中的某些动作目前在健身房中不可用?

问题描述 投票:0回答:0

我想通过强化学习来做出任务分配决策。假设有 N 个任务需要分配,M 个服务器来完成这些任务。 但是,有一个限制,即一项任务只能由一台服务器来服务。我应该如何设计操作空间?

所以当我设计决策动作空间时,我不知道哪种设计更好:

        self.action_space = spaces.MultiDiscrete([2]*(M*N)) #action space: [a_11,a_12,...,a_1N,a_M1,a_M2,...,a_MN]  M*N discrete vector,a_mn in [0,1]
        self.action_space = spaces.MultiDiscrete([M]*N) #action space: [a_1,a_2,...,a_N] N discrete vector, a_n in [0,M-1]

在第一种方式中,变量a_mn代表第n个任务是否被卸载到第m个服务器。而第二种方式中,a_n代表第n个任务应该选择哪个服务器。

如果第一种方法更好,由于动作空间中有很多不可行的动作,我该如何实现前面提到的约束?

非常感谢

machine-learning reinforcement-learning markov-chains design-decisions
© www.soinside.com 2019 - 2024. All rights reserved.