Skip to content

ml4wifi-devs/mapc-gnn

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

DOI

MAPC-GNN: Representation learning of IEEE 802.11 MAPC (C-SR) configurations using GNN

This repository contains the implementation of Graph Neural Network (GNN)-based variational autoencoders used to learn representations of Multi-Access Point Coordination (MAPC) configurations in IEEE 802.11 networks. The goal is to generate meaningful latent representations of transmission configurations that can support both reconstruction and further generative modeling.

Overview

This work introduces a method for embedding MAPC transmission graphs using GNNs trained in a variational autoencoder framework. The learned embeddings capture semantic properties of the network (e.g., signal strength, TX power, MCS) and are suitable for tasks such as configuration analysis, visualization, or generative modeling.

We provide three model variants (small, medium, and large), trained on configurations generated using:

Repository structure

  • attributes.py: Defines edge attributes are included in the graph representation.
  • model.py: Defines the main GNN architecture, including update networks for nodes, edges, and global attributes.
  • training.py: Contains the training loop and experiment logic. Supports loading from configuration files and checkpointing.
  • configs/: Contains YAML configuration files for training, model sizes (small/medium/large) and optimizers.
  • dataset/: Includes generators for different MAPC agents:
    • random_dataset.py: generates random AP-station pairs,
    • mab_dataset.py: generates MAPC configurations using the H-MAB agent,
    • optimal_dataset.py: provides configurations from analytical models (T-Optimal and F-Optimal),
    • convert.py: converts generated data into graph structures for training,
    • transform.py: applies postprocessing on the learned embeddings.

Installation

Clone the repository and install the package in editable mode:

git clone https://github.com/ml4wifi-devs/mapc-gnn.git
cd mapc-gnn
pip install -e .

You can also install JAX with CUDA support (local CUDA installation) by:

pip install -e ".[gpu]"

Training

To train a GNN model:

  1. Generate and convert a dataset:
  • use dataset/random_dataset.py, mab_dataset.py, and/or optimal_dataset.py to generate MAPC configurations,
  • use dataset/convert.py to convert them into graphs.
  1. Select an appropriate config from configs. Make sure the paths to datasets are updated in the config files.
  2. Run training.py with appropriate paths to the training and validation sets.

How to reference MAPC-GNN?

@article{wojnar2025representation,
  author={Maksymilian Wojnar},
  title={{Representation Learning of IEEE 802.11 Networks Using Graph Neural Networks}}, 
  year={2025},
}

About

Representation learning of IEEE 802.11 MAPC (C-SR) configurations using GNN

Topics

Resources

License

Stars

Watchers

Forks

Languages