2SD-GAT workflow scheduler

An energy-aware scheduler for cloud workflows that makes each decision in two stages. A graph attention network encodes the workflow DAG and an MLP encodes the VMs. The policy first picks a ready task, then picks a VM for that task. It is trained with PPO on a preference-weighted reward over makespan, energy use and QoS latency.
On real-world Google cluster traces under dynamic conditions it achieves a 26.8% hypervolume gain and 4.5× lower IGD than the baselines.
The repository also implements the baselines it is compared against: HEFT, MOHEFT, NSGA-II, NSGA-III, MOEA/D and greedy heuristics such as Min-Min and Max-Min.