This repository builds upon the UGAT codebase (forked from UGAT) to support our proposed Joint-Local Grounded Action Transformation (JL-GAT) framework. Our approach focuses on improving sim-to-real transfer in multi-agent traffic signal control by allowing flexible control over centralized, decentralized, and hybrid grounding configurations.
To run the JL-GAT experiment, first follow the instructions section in UGAT to download the necessary resources (CityFlow & SUMO), then use the following command:
python run_s2r.py --network cityflow1x3 --agent presslightYou can swap out the network name with:
cityflow1x3for the 1×3 networkcityflow4x4for the 4×4 network
This will initiate training and evaluation under the specified environment.
To customize the GAT configuration:
Open the config file:
JL-GAT/configs/tsc/base.ymlModify the following parameters:
gattype: Choose from:"centralized""decentralized""jlgat"
gat: Set tofalseto run without GAT.prob_grounding: Set a value (e.g.,0.2) to control the probability of applying grounding during training.