ductaingn/multi-connect-rl-scenarios
Viewer • Updated • 23 • 51
Trained policies of MultiConnectRL for joint
interface selection, packet allocation and power control in Sub-6GHz/mmWave multi-AP networks,
on the scenarios of ductaingn/multi-connect-rl-scenarios.
Each run is trained online for 30,000 frames with 4 APs (one agent per AP), 3 seeds per setting.
<run>/config.yaml # full YAML config of the run
<run>/final/agent_<i>.pt # policy of the agent of AP i
<run>/final/metadata.json
<run> is Scenario_<K>_devices_5_dBm_30000_obstacles_<blockage>_<algorithm>_seed_<s> with
| Field | Values |
|---|---|
K (devices per AP) |
3 (scenario scenario_4_30k), 10 (scenario_5_30k) |
blockage |
fixed (static obstacles), dynamic (obstacles rotated at frame 2000) |
algorithm |
SACRA, SACRA-Va (SACRA without power control), RAQL, RAQL-FP, DQN, DQN-FP (-FP: baseline with the full power budget) |
s |
1, 2, 3 |
The algorithm names are those of the paper; runs saved by earlier versions of the library used
SACPA (SACRA) and SACPF (SACRA-Va), which the library still accepts.
import yaml
from huggingface_hub import snapshot_download
from multi_agent_power_allocation.utils.train_config import TrainConfig
from multi_agent_power_allocation.utils.checkpoint import load_policies
run = "Scenario_3_devices_5_dBm_30000_obstacles_fixed_SACRA_seed_1"
root = snapshot_download("ductaingn/multi-connect-rl-checkpoints", allow_patterns=[f"{run}/*"])
with open(f"{root}/{run}/config.yaml") as f:
config = TrainConfig(config_dict=yaml.safe_load(f))
policies = config.env_config["algorithm_mapping"]
load_policies(f"{root}/{run}/final", policies)