Skip to content

Research repository for cost-effective deployment and optimisation of next-generation (B5G/6G) reconfigurable RAN and optical X-haul networks. Features greedy, genetic algorithm, local search, and exact CPLEX models for network planning with complete datasets and analysis tools.

License

breezy-codes/B5G-network-planning-algorithms

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Code Repository

This repository contains the complete codebase for my Honours year project, based on research into cost-effective deployment and optimisation of next-generation (B5G/6G) reconfigurable RAN and optical X-haul networks. It includes implementations, datasets, and utilities for generating, analysing, and optimising network configurations.

Algorithms provided:

  • Greedy Algorithm: Fast, heuristic-based solutions for initial network configurations.
  • Genetic Algorithm: Evolutionary optimisation for exploring larger solution spaces.
  • Local Search: Iterative improvement for refining solutions.
  • CPLEX Models: Exact mathematical programming approaches, including shortest-path and full graph optimisation.

Helper scripts are included for preprocessing data, running batch experiments, and analysing results.

The project explores deployment strategies for next-generation (B5G/6G) reconfigurable RAN and optical X-haul networks, balancing cost, scalability, and performance.


Associated Research Papers:

Deakin Mathematics Yearbook Report:


Repository Structure

The project is organised into modular components. Below is the folder layout, along with a description of each directory:

📂 Repository/


Algorithms

Greedy Algorithm

  • Purpose: Provides a fast, heuristic-based solution for initial network configurations.
  • Advantages: Lightweight, quick to implement, and useful as a baseline.
  • Implementation: See code/greedy_solution_generator.ipynb.

Genetic Algorithm

  • Purpose: Explores larger solution spaces through evolutionary optimisation.
  • Advantages: Finds higher-quality solutions at the cost of runtime and computational resources.
  • Implementation: See code/genetic_algorithm.py.
  • Features:
    • Customisable crossover and mutation operators
    • Configurable selection strategies
    • Logging of population performance over time

Local Search

  • Purpose: Provides an alternative to genetic algorithms for refining solutions via iterative improvement.
  • Advantages: Efficient for fine-tuning and escaping local optima.
  • Implementation: See code/local_search.py.

CPLEX Models (Exact Solution Methods)

  • CPLEX Shortest Path: Uses mathematical programming to find exact optimal network paths.
  • CPLEX Graph Model: Provides full graph-based optimisation for deployment strategies, delivering exact solutions.

Datasets

The repository includes two datasets designed on a region within rural Australia, each tailored for different testing scenarios:

  • Full Dataset: Large-scale, complex data designed to fully test algorithms and evaluate scalability.

  • Small Dataset: Simplified data for debugging, quick experiments, and verifying correctness.

See the README in dataset/ for details on dataset structure and usage.


Scripts and Utilities

Located in the scripts/ directory, these tools support:

  • Dataset Updates: Updating dataset files when changes are made.
  • Visualisation: Viewing datasets on a map and plotting algorithm iteration results.

See the README in scripts/ for details on available scripts and their usage.


Figures

The figures/ folder stores images, diagrams, and charts used for documentation within this README. This includes dataset visualisations.


Results

Algorithm outputs are stored under heuristic-algorithm/results/, with logs in heuristic-algorithm/code/logs/.


Meet the Lead Developer (kidding!)

Phoebe the cat with the code
Phoebe: Lead Developer
Phoebe the cat with the code
Phoebe: Chief Bug Finder

Contribution Rule: If you submit code, you must include a photo of your cat. No cat? No commit! (Phoebe enforces this strictly.)


Getting Started

  1. Clone the repository:

    git clone https://github.com/breezy-codes/B5G-network-planning-algorithms.git
    cd B5G-network-planning-algorithms
  2. Install dependencies (Python 3.9+ recommended):

    pip install -r requirements.txt
  3. Explore the project:
    Review the folder structure and documentation to understand available algorithms, datasets, and utilities.

  4. Run experiments:

    • For the Greedy Algorithm, open and run the notebook:

      jupyter notebook code/greedy_solution_generator.ipynb
    • For the Genetic Algorithm, execute:

      python code/genetic_algorithm.py
    • For the Local Search, run:

      python code/local_search.py
    • For CPLEX models, execute either:

      python code/CPLEX_shortest_path.py

      or

      python code/CPLEX_graph_model.py
  5. Inspect results:

    • Outputs will be saved in the results/ directory.
    • Logs can be found in code/logs/.
    • Use the provided scripts in scripts/ for further analysis or visualisation of results.

Contribution Guidelines

  • Fork the repository and create a feature branch.
  • Add documentation for all new scripts or algorithms.
  • Include experiment logs and a summary of results for reproducibility.
  • Optional (but encouraged): Share a photo of your cat colleague.

License

This project is released under the GPL-3.0 License. See the LICENSE file for details.

About

Research repository for cost-effective deployment and optimisation of next-generation (B5G/6G) reconfigurable RAN and optical X-haul networks. Features greedy, genetic algorithm, local search, and exact CPLEX models for network planning with complete datasets and analysis tools.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published