GNN+RL:Flexible Job-Shop Scheduling via Graph Neural Network and Deep Reinforcement Learning

读paper的目的:

看懂GNN 如何和 RL 结合的方法。 本文的GNN是HGNN,RL用的PPO算法。主要是看懂GNN和RL如何连接起来以及如何训练的。

启发:

1.不同size 的graph经过feature 抽取之后可以经过pooling 来统一维度,再送入RL学习。

2.对于GNN 可以根据节点的不同特性用不同的 GAT 进行feature的抽取。

3. 对于不同的step,action的维度和可选择的值都在变化,作者是如何处理的??待考证,还没看懂

额外思考:

抽取的是 node feature output,有没有可能变成Link output?会带来什么好处么?

[1]W. Song, X. Chen, Q. Li, and Z. Cao, ‘Flexible Job-Shop Scheduling via Graph Neural Network and Deep Reinforcement Learning’, IEEE Transactions on Industrial Informatics, vol. 19, no. 2, pp. 1600–1610, Feb. 2023, doi: 10.1109/TII.2022.3189725.

code:songwenas12/fjsp-drl (github.com)icon-default.png?t=N7T8https://github.com/songwenas12/fjsp-drl

要解决的问题:

flexible job-shop scheduling problem (FJSP):简单来讲,有n个Job,K个机器。 每个Job有一系列的Operation(可以理解为Job的子步骤,需要按照一定的顺序执行)。

决策:需要去决策,

  • 每一个Operation在哪一台机器上执行,即machine assignment
  • 调度哪一个任务,即operation selection。

简单理解,就是如下面这个Job状态图,有三个Job,任务1有三个Operation,任务2有3个,任务3有2个。

如果现在只有一个machine,那么需要在这个machine上决定如何去执行这三个任务的每个子步骤,即Operation。现在有K个machine,既得把这些任务分到这K个machine上,又决定每个任务在machine上的执行顺序,所以是 两层决策。

采取的方案:

把Job 和machine建模为 顶点,关系建模为edge,构成一个异构的GNN图,然后从原始图raw features抽取隐含的 feature,送PPO,即RL中进行学习。

MDP:

State:即状态,是由一个异构GraphH_t表示的,具体不赘述。

Action:这里比较有意思,action 并不是一个从episode的开头到结尾一样的,而是 在t 时刻可行的O-M pair。 举个例子, 假设在 0时刻, 三个machine 都空闲, 三个任务的Operation 都没开始,即 需要从 O_{11}, O_{21}, O_{31} 开始执行,那0 时刻的 feasible pairs 应该是 9个 ,即 {O_{11}-M1, O_{21}-M1, O_{31}-M1;O_{11}-M2, O_{21}-M2, O_{31}-M2;O_{11}-M3, O_{21}-M3, O_{31}-M3}

假如1时刻 采用了O_{11}-M1, 那么相当于 M1机器被O_{11}占用了,下一个时刻的 feasible pairs 变成了 4个{O_{21}-M2, O_{31}-M2; O_{21}-M3, O_{31}-M3},这样的话 action在每个step的状态空间和状态值都不同,如何输出policy呢?

Reward: Makespan difference,即最大完工时间的差。

HGNN:

1)Machine Node embedding(融合了自己和周围的Operation,以及edge)

对于machine node,他的一阶邻居应该是 相连的可执行的Operation。

the importance of each neighboring operation Oij

machine specific weights:

machine embedding ν′ k is computed by fusing features from neighboring operations and itself

2)Operation Node Embedding:(融合了自己和,前一个、后一个operation 加上 可选的Machine 的features)

在经过 L层的HGNN 之后,放入 pooling layer:

Through the above process, a varying-size heterogeneous graph can be transformed into a fixed-dimensional embedding.

Decision making:

把operation,machine 和 state embedding加和起来作为policy network的输入。

每个 action 被采样的概率:

网络结构:

  • 20
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

远离科研,保命要紧

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值