Wireless Network Resource Allocation Environment
The Challenge Lab supplies a lightweight wireless environment so that the
experiments can focus on cooperative decisions rather than simulator
implementation. It ships in the
Python package as
WirelessResourceAllocationEnv. This section defines the access-point agents,
channel-selection actions, the geometry that decides who interferes with whom,
the rate function, demand regimes, local observations, and shared reward in
that order. It concludes with an enumerated performance ceiling.
Agents, Actions, and Channels
Section titled “Agents, Actions, and Channels”- access points, each choosing for itself
- channels available, fewer than there are access points
- the channel access point i selects this step
Note immediately. This is not incidental: it is what makes the problem an allocation rather than a colouring.
Who Interferes With Whom
Section titled “Who Interferes With Whom”The access points sit at fixed positions and never move. Two of them interfere only if they choose the same channel, and how much they interfere depends on how far apart they are.
- the interference access point i receives on the channel it chose
- the distance between access points i and j
- the distance at which two access points couple at half strength, 1.0 here
For the four positions the lab ships with, that gives:
| Pair | Coupling | Rate if they share a channel |
|---|---|---|
| AP0 + AP1 | 0.671 | 1.20 |
| AP2 + AP3 | 0.328 | 1.74 |
| AP1 + AP2 | 0.206 | 2.09 |
| AP0 + AP2 | 0.125 | 2.45 |
| AP1 + AP3 | 0.084 | 2.69 |
| AP0 + AP3 | 0.059 | 2.87 |
Alone on a channel an access point achieves 3.46. So sharing with AP0’s closest neighbour costs 2.26, and sharing with its most distant one costs only 0.59. Nearly a factor of four, from geometry alone.
Interference-Based Rate Function
Section titled “Interference-Based Rate Function”- transmit power, fixed at 1 in this lab
- quality of the channel this access point chose, 1.0 unless an experiment degrades it
- noise floor, 0.1
- interference from Figure 2, a continuous quantity rather than a count
Demand Regimes
Section titled “Demand Regimes”Each access point has its own traffic demand, and throughput is capped by it. Delivering more capacity than an access point wants earns nothing.
- the traffic demand at access point i
- the channel selected by access point i
- the achievable rate after interference
Three regimes, all in the notebook, selected with traffic=:
| Regime | Demands | Character | Ceiling |
|---|---|---|---|
| skewed | two want 3.2, two want 0.8 | asymmetric; about who yields | 7.90 |
| hotspot | one wants 3.4, three want 1.2 | one saturated access point | 6.98 |
| uniform | each wants 1.6 or 2.4 | symmetric; mostly about avoiding collisions | 8.20 |
The ceilings differ, so a reward from one regime cannot be compared with a reward from another. Quote the ceiling or the comparison means nothing.
Local Access-Point Observations
Section titled “Local Access-Point Observations”Local only, and this is the constraint that makes the lab interesting.
| In the observation | Not in the observation |
|---|---|
| its own traffic demand | any other access point’s demand |
| its own last channel | the full network state |
| how busy each channel was last step | what anyone will choose this step |
When communication is switched on, each access point broadcasts one bit, which in this lab carries its demand level. The team therefore sends four messages per step, and the reward charges for each.
Shared Network Reward
Section titled “Shared Network Reward”- interference weight, 0.2
- price per message, 0.05 by default and a slider in the notebook
- messages sent this step: four when communication is on, otherwise zero
Interference is summed over access points rather than counted as collisions, so it is a continuous quantity: two distant access points sharing a channel contribute far less than two close ones.
Enumerated Performance Ceiling
Section titled “Enumerated Performance Ceiling”env.best_possible() computes the best achievable reward by exhaustive search
over all joint actions at each step. Averaged over the 150
evaluation episodes it is 7.90 under skewed demand, 6.98 under hotspot
and 8.20 under uniform.
Knowledge check
Correct.
Not quite.
The two low-demand ones. Even the worst pairing in the network delivers 1.20, which already exceeds the 0.8 they want, so the network loses nothing.
Exactly. Their throughput is capped by demand rather than by capacity, so the capacity they give up was never going to be used. This holds even when the two light access points are the closest pair in the network, which is what makes demand the deciding factor rather than distance. Measured over 150 episodes: 7.90 for the best allocation against 5.35 for the worst that still uses all three channels.
The two high-demand ones, since they can make better use of a busy channel.
The opposite. Sharing caps a busy access point somewhere between 1.20 and 2.87 depending on which neighbour it shares with, when it wanted 3.2, so a large part of its demand goes unserved.
One high and one low, to balance the load across channels.
Intuitive and wrong here. Balancing wastes a clean channel on an access point that cannot use it while a high-demand one is constrained. The reward depends on delivered throughput, not on even loading.
It does not matter, since the same number of collisions occurs either way.
The number of sharing pairs is indeed the same, which is precisely why counting them is not a sufficient objective. What differs is throughput, because throughput is capped by each access point’s own demand, and how much interference that sharing actually causes, which depends on the distance between the pair.
Explanation
If you can explain this without the table, you have the environment.
Environment Summary
Section titled “Environment Summary”- Four access points, three channels: , so somebody must share, and the question is which pair.
- Access points sit at fixed positions. Two on the same channel interfere by , which ranges from 0.671 for the closest pair to 0.059 for the most distant.
- , so a close neighbour costs nearly four times what a distant one does.
- Throughput is , so capacity beyond demand is wasted.
- Demand decides which pair shares; distance decides what it costs. The two light access points should share even when they are the closest pair.
- Observations are local: own demand, own channel qualities, per-channel interference measured last step, own last channel. Not other access points’ demands.
- Communication is one message per access point, four per team, priced at by default.
- The ceiling is computable by enumerating all 81 joint actions: 7.90 under skewed demand, 6.98 under hotspot, 8.20 under uniform.