Reinforcement Learning for Power Control

Environment

pytwinnet.rl.PowerControlEnv is a lightweight, gym-like environment:

  • State: TX powers + pathloss snapshot to UEs

  • Action: vector in \(\{-1,0,+1\} \times (TX)\), step size = \(\Delta_{dB}\)

  • Reward: sum throughput (Gbps) − \(\lambda\) \(\cdot\) power penalty

Usage

from pytwinnet.rl import PowerControlEnv
# twin/network prepared elsewhere…
env = PowerControlEnv(
    twin, tx_ids=["gNB-1","gNB-2"], ue_ids=["UE-1","UE-2","UE-3"],
    bandwidth_hz=20e6, efficiency=0.75, power_step_db=1.0, penalty_lambda=0.0
)
obs = env.reset(seed=0)
for t in range(10):
    action = np.random.choice([-1,0,1], size=len(env.tx_ids))
    obs, reward, terminated, truncated, info = env.step(action)
    print(t, reward, info)