双流频谱图神经网络用于JSSP调度的最小可运行工程。包含可堆叠编码器、PPO训练、Taillard基准解析、alpha日志与文本可视化、甘特与高频条形图。
- 依赖:Python 3.10+,不强制第三方库
- env/:最小环境、Taillard解析与实例环境
- models/:频谱层、编码器、Actor-Critic
- algorithm/:PPO
- scripts/:训练、批量评测、可视化
- 训练与评测日志输出
python scripts/train.py
- 输出:每轮的完工时间与损失
- 日志:logs/alpha_ep_X.txt、logs/gantt_ep_X.txt
python scripts/visualize_alpha.py
python scripts/plot_paper_figs.py
- 展示alpha文本热力图与条形图,并排打印甘特文本图
- 若需图形绘制,脚本中自行引入matplotlib并替换文本输出
- 将Taillard实例文件置于
data/raw/ - 文件格式示例:
3 2
0 3 1 2
1 4 0 1
0 2 1 5
python scripts/evaluate_batch.py
- 输出:每个实例的完工时间
- 日志:logs/batch/<实例名>.txt 记录文本甘特图
- 随机生成 JSSP 实例并边训练边生成
python scripts/train_gen.py <jobs> <machines> <episodes>
例:python scripts/train_gen.py 6 4 10
- 生成的模型将保存至 checkpoints/spectral_policy_x.pt
- 推理可直接加载对应规模的模型并生成实例:
python scripts/infer.py gen:<jobs>x<machines>
例:python scripts/infer.py gen:6x4
- 低通:ÂX
- 高频:X−ÂX
- 融合:α·低通+(1−α)·高通
- 使用
logs/alpha_ep_X.txt与logs/gantt_ep_X.txt - 关键路径分析:取时间线中结束时间接近makespan的操作集合,与alpha较高节点对比
- Taillard解析假设每行交替给出机器与加工时间
- 若需图形化绘制,可在脚本中自行引入matplotlib并替换文本输出
- 训练日志输出位于
logs/,批量评测输出位于logs/batch/