DOI: 10.5281/zenodo.17347997
title: Multi-Armed Bandits for Wi-Fi Channel Access — Simulation Dataset

description: Description

This dataset contains the complete simulation results accompanying the papers "Learning-Based Channel Access in Wi-Fi: A Multi-Armed Bandit Approach" and "Performance Evaluation of Multi-Armed Bandit Algorithms for Wi-Fi Channel Access" by Casasnovas et al. (2025).

It provides simulation results obtained using classical and contextual multi-armed bandit (MAB) algorithms (UCB, OSUB, LinUCB, and the proposed E-RLB) for medium access control (MAC) optimization—jointly selecting the operating channel, the primary channel, and the contention window—in IEEE 802.11 (Wi-Fi) networks.

In addition, baseline IEEE 802.11 configurations are included, serving as non-learning reference baselines for comparison against the learning-based approaches. In such configurations, all access points (APs) operate using standard IEEE 802.11 mechanisms such as static channel assignment and a binary exponential backoff.

The dataset includes scenarios involving a single-player (SP) game (involving a single learning AP) and a multi-player (MP) game (involving multiple selfish learning APs), using either static or dynamic channel bonding (SCB/DCB). Learning APs operate under single-agent (SA, a single agent jointly selects the parameters) or multi-agent (MA, multiple agents operate independently, each resposible for a single parameter) intra-AP architectures.

Each configuration comprises 20 independent trials, with simulation data logged at microsecond granularity (env_time_us). Simulations were executed using WiPySim, an event-driven IEEE 802.11 simulator implemented in Python.

If you use this dataset, please cite both the corresponding paper(s) and the dataset.

Simulation Scenarios

Simulations are grouped by scenario:








Scenario ID
Short Description
Details
Type
Channel Bonding




SP1
One learner and one empty channel
1 learning BSS + 2 legacy BSSs
Single-player
Static (SCB)


SP2
One learner and dynamic OBSS traffic
1 learning BSS + 4 legacy BSSs
Single-player
Static (SCB)


SP2-DCB
One learner and dynamic OBSS traffic
1 learning BSS + 4 legacy BSSs
Single-player
Dynamic (DCB)


MP1
Three learners, learning under full-buffer conditions
3 learning BSSs
Multi-player
Static (SCB)


MP1-DCB
Three learners, learning under full-buffer conditions
3 learning BSSs
Multi-player
Dynamic (DCB)


MP2
Four learners, learning under heterogeneous load distributions
4 learning BSSs: 2 high-loaded + 2 low-loaded
Multi-player
Static (SCB)


MP3
Two learners and two non-learners (Learning vs. Legacy coexistence)
2 learning BSS + 2 legacy BSSs
Multi-player
Static (SCB)






The scenario naming convention follows that used in “Learning-Based Channel Access in Wi-Fi: A Multi-Armed Bandit Approach.” In “Performance Evaluation of Multi-Armed Bandit Algorithms for Wi-Fi Channel Access,” the results for the single-player case correspond to scenario SP2, and those for the multi-player case correspond to scenario MP1.

Each test runs for 60 seconds, with 20 trials (seed_1 – seed_20). Each basic service set (BSS) includes one access point (AP) and one associated station (STA), with fixed positions and associations across all trials.



In SP scenarios, the AP from BSS 1 (node_1) is the only learning-enabled node, coexisting with several legacy APs that follow conventional IEEE 802.11 mechanisms. The corresponding baseline configurations treat the AP from BSS 1 as a non-learning device with a static channel-group assignment. All possible static groups are simulated (20/40/80 MHz): Channels 1/, Channels 2/, Channels 3/, Channels 4/, Channels 1-2/, Channels 3-4/, and Channels 1-2-3-4/.

In MP scenarios, multiple APs are learning-enabled and operate simultaneously. The corresponding baselines assume all APs are legacy non-learning devices, statically configured to operate over the 80 MHz channel group (Channels 1-2-3-4/).


Algorithms and Architectures

Each scenario folder contains subfolders for every algorithm–architecture pair (e.g., E-RLB (MA), LinUCB (SA)) and IEEE 802.11 baseline configurations (e.g., Channels 1/, Channels 1-2/, Channels 1-2-3-4/).

Algorithms:








ID
Name
Type
Reference




UCB
Upper Confidence Bound
Non-contextual
[1]


OSUB
Optimal Sampling for Unimodal Bandits
Non-contextual, unimodal
[2]


LinUCB
Linear Upper Confidence Bound
Contextual
[3]


E-RLB
Epsilon-greedy RMSProp-based Linear Bandit (proposed)
Contextual, non-stationary
[4]






Architectures:








ID
Description




SA (Single-Agent)
A single agent jointly selects the full transmission configuration (channel, primary, and contention window).


MA (Multi-Agent)
Three independent agents operate sequentially, each controlling one parameter (channel, primary, or contention window).






File Contents



All CSVs include env_time_us, representing the simulation time in microseconds (µs). It provides a common temporal reference for aligning all per-node and per-metric logs.


Learning APs data (node_X/)

action.csv

Actions selected by the learning AP agent(s): channel,primary, cw.Their values correspond to indices referring to discrete sets:







Channel groups: { {1}, {2}, {3}, {4}, {1,2}, {3,4}, {1,2,3,4} }

Primary channels: { {1}, {2}, {3}, {4} }

CW values: {16, 32, 64, 128, 256, 512, 1024}




Example: channel index 0 corresponds to {1} (20 MHz), while channel index 4 corresponds to {1,2} (40 MHz).

delay.csv

Transmission cycle delay components: backoff(time spent waiting in the backoff process), sensing (time spent sensing the channel before transmission), tx (time spent during transmission), residual (any remaining waiting time from other processes), total (sum of all the previous components, representing the overall duration of the transmission cycle). 

The reward given to learning agent(s) is based on the negative of total, meaning shorter transmission cycles result in higher rewards.

reward.csv

Reward values per agent.







MA: columns channel,primary, cw.

SA: single column joint, representing the unified reward.




Stations data (node_10X/)

rx_stats__delay.csv

Per-packet reception delay statistics: packet_delay_us, representing the delay measured from frame generation to successful reception, encompassing queuing, backoff, sensing, and transmission times, including as many (up to seven) retransmissions as necessary.

rx_stats__goodput.csv

Goodput statistics: instant_goodput_mbps (instantaneous goodput measured at each data frame reception), ema_goodput_mbps (time-weighted exponentially moving average to account for non-uniform sampling intervals).

Runtime Logs

_runtime.csv

Wandb runtime information.

_step.csv

Wandb step logs (iteration-level).

_timestamp.csv

Corresponding wandb stored timestamps.

history_seed_X.pkl

Full wandb history, aggregating all metrics (superset of CSV logs).

summary_seed_X.json

A structured JSON file summarizing the final simulation state and aggregate statistics. It contains both global and per-node metrics.

Top-level fields:

_runtime, _timestamp: wandb execution metadata.

env_time_us: Final simulation time (in microseconds).

global_stats: Network-wide aggregates (e.g., total bytes TX/RX, airtime, utilization, packet losses).

medium_stats: Global medium utilization metrics (throughput, airtime, utilization).

per_channel_stats: Airtime and utilization per 20 MHz channel.

per_node_stats: Detailed TX/RX statistics, state durations, and utilization per node, including:

info: ID, position, type (AP or STA), sensing and allocated channels at the end of simulation.

tx / rx: Transmission/reception metrics (bytes, packets, throughput, airtime, etc.).

states: Time spent in idle, contention, RX, and TX states.

Directory Structure

/<root>
 |
 ├── SP1/
 │   ├── UCB (SA)/
 │   │   ├── seed_1/
 │   │   │   ├── node_1/        # Learning AP from BSS 1 (node_<bss_id>)
 │   │   │   │   ├── action.csv
 │   │   │   │   ├── delay.csv
 │   │   │   │   └── reward.csv
 │   │   │   ├── node_101/      # STA from BSS 1 (node_10<bss_id>)
 │   │   │   │   ├── rx_stats__goodput.csv
 │   │   │   │   └── rx_stats__delay.csv
 │   │   │   ├── _runtime.csv
 │   │   │   ├── _step.csv
 │   │   │   ├── _timestamp.csv
 │   │   │   ├── summary_seed_1.json
 │   │   │   └── history_seed_1.pkl
 │   │   ├── ...
 │   │   └── seed_20/ ...
 │   │
 │   ├── OSUB (MA)/
 │   │   └── ...
 │   │
 │   ├── ...
 │   │
 │   └── Channels 1-2-3-4/      # IEEE 802.11 baseline
 │
 ├── SP2/ ...
 │
 ├── ...
 │
 └── MP3/ ...

Acknowledgements

This paper is supported by the CHIST-ERA Wireless AI 2022 call MLDR project (ANR-23-CHR4-0005), partially funded by AEI and NCN under projects PCI2023-145958-2 and 2023/05/Y/ST7/00004, respectively, by Wi-XR PID2021-123995NB-I00 and TRUE-Wi-Fi PID2024-155470NB-I00 (MCIU/AEI/FEDER,UE), by MCIN/AEI under the Maria de Maeztu Units of Excellence Programme (CEX2021-001195-M), and AGAUR ICREA Academia 00077.



References
[1] P. Auer, N. Cesa-Bianchi, P. Fischer, Finite-time analysis of the multiarmed bandit problem, Machine learning 47 (2002) 235–256.



[2] R. Combes, A. Proutiere, Unimodal bandits: Regret lower bounds and optimal algorithms, in: International Conference on Machine Learning, PMLR, 2014, pp. 521–529.


[3] L. Li, W. Chu, J. Langford, R. E. Schapire, A contextual-bandit approach to personalized news article recommendation, in: Proceedings of the 19th international conference on World wide web, 2010, pp. 661–670.


[4] M. Casasnovas, et al, Contextual Bandit-Based Multi-Agent Coordination for Wi-Fi Channel Access Optimization, 2025.