1

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

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

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

观察(状态)矩阵示例:

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

  • 输出也是一个 0 和 1 的二维矩阵,有 12 行(资源数)和 10 列(用户数)。

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

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

动作矩阵示例:

[
[0, 1, 0, 0, ...],
[0, 0, 0, 0, ...],
[1, 0, 0, 0, ...],
[0, 0, 0, 1, ...],
...
]
  • 在上面的例子中,第一行第二列有1 row[0][1]row[1]已要求分配资源。

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

我不知道如何为此自定义环境初始化 tf_agent 的 observation_spec 和 action_spec。

而且我不确定 tf_agent 是否是最好的方法。

我是深度学习的新手,从头开始为这个自定义环境构建神经网络非常令人困惑。

4

0 回答 0