观察规格和动作规格为2D矩阵的TF规格代理

2024-06-14 20:37:28 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试将tf_agent library与自定义环境一起使用,以构建执行以下操作的代理:

  • 代理通过向大量用户(10个用户)提供资源(12个资源)来为他们提供服务

  • 它接收一个输入(观察/状态),该输入是0和1的2D矩阵;假设它有10行(用户数)和3列。如果某一行的某一列的值为1,则表示必须将资源分配给该行的用户

观察(状态)矩阵示例:

[
[0, 0, 0],
[0, 1, 0],
[1, 0, 0],
...
]
  • 这意味着(例如,row[1]的用户需要一个资源。(用户1)

  • 输出也是0和1的2D矩阵,有12行(资源数量)和10列(用户数量)

  • 如果资源0被分配给(比如)用户1,那么输出矩阵中的第一行将具有值为1的第二列row[0][1]

  • 每个资源一次只能分配给一个用户,每个用户一次只能分配一个资源。(这意味着每一行只有一列的值为1,而整个矩阵中的每一列只能有一行的值为1 |例如:第一行的第一列和第二行的第一列的值均为1,其中一列必须为1,其他列都必须为0)

行动矩阵示例:

[
[0, 1, 0, 0, ...],
[0, 0, 0, 0, ...],
[1, 0, 0, 0, ...],
[0, 0, 0, 1, ...],
...
]
  • 在上面的示例中,第一行在第二列(row[0][1])中有1,这意味着第二个用户,即用户1,被分配了资源0,如果我们验证输入矩阵,我们确实看到用户1(row[1])请求分配资源

  • 如果用户没有请求资源,则不应向该用户提供任何资源

我不知道如何为这个定制环境初始化tf_代理的观察规范和操作规范

我不确定TFU代理是否是最好的方法

我刚刚开始深入学习,从头开始为这种定制环境构建神经网络非常令人困惑


Tags: 用户规范示例代理数量环境状态tf