# samuelmartinezupm/nsga-ii-based-satellite-beam-hopping-bh-algorithm architecture

> Architecture diagram of the GitHub repository samuelmartinezupm/nsga-ii-based-satellite-beam-hopping-bh-algorithm, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-26). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/samuelmartinezupm/nsga-ii-based-satellite-beam-hopping-bh-algorithm
- Repository: https://github.com/samuelmartinezupm/nsga-ii-based-satellite-beam-hopping-bh-algorithm

## Overview

This MATLAB research application generates LEO satellite cell/user scenarios, compares demand-based beam hopping with a hybrid NSGA-II optimizer, and evaluates illumination and resource-allocation solutions using UC, EC, and TTS. The documented workflow runs through MultiObjectiveFunction; the separate statistical-confidence tools analyze hypervolume results across configurations. Relationships are based on the README because no source excerpts were provided; GUI wiring and other undocumented connections are therefore omitted.

Main entry points: [`LEO/MultiObjectiveFunction.m`](https://github.com/samuelmartinezupm/nsga-ii-based-satellite-beam-hopping-bh-algorithm/blob/main/LEO/MultiObjectiveFunction.m) (Optimization workflow), [`Algorithms/Multi-objective optimization/NSGA-II/NSGAII.m`](https://github.com/samuelmartinezupm/nsga-ii-based-satellite-beam-hopping-bh-algorithm/blob/main/Algorithms/Multi-objective%20optimization/NSGA-II/NSGAII.m) (NSGA-II), [`LEO/loadSmall.m`](https://github.com/samuelmartinezupm/nsga-ii-based-satellite-beam-hopping-bh-algorithm/blob/main/LEO/loadSmall.m) (Small scenarios), [`LEO/loadLarge.m`](https://github.com/samuelmartinezupm/nsga-ii-based-satellite-beam-hopping-bh-algorithm/blob/main/LEO/loadLarge.m) (Large scenarios)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_scenario["Scenario preparation"]
  node_small_loader["Small scenarios<br/>[loadSmall.m]"]
  node_large_loader["Large scenarios<br/>[loadLarge.m]"]
  node_traffic["Traffic distribution"]
  node_cell_scenario["Cell generation<br/>[Cell_Scenario.m]"]
  node_user_model["User model<br/>[u.m]"]
  node_cell_model["Cell model<br/>[c.m]"]
end

subgraph group_optimization["Beam-hopping optimization"]
  node_orchestrator["Optimization workflow"]
  node_demand_init["Demand initialization"]
  node_random_init["Random initialization"]
  node_nsga["NSGA-II<br/>[NSGAII.m]"]
  node_mutation["LEO mutation<br/>[MutationLEO.m]"]
  node_db_search["Demand local search<br/>[DB_LocalSearch.m]"]
  node_db_mutation["Demand mutation<br/>[DB_Mutation.m]"]
end

subgraph group_evaluation["Solution evaluation"]
  node_solution_eval["Solution evaluation"]
  node_fom_optimized["Optimization FoM"]
  node_constraints["Constraint checks"]
  node_demand_eval["Demand-based FoM"]
end

subgraph group_analysis["Results analysis"]
  node_hv_generation["HV generation"]
  node_hv_analysis["Confidence analysis"]
  node_statistics["Statistical tests<br/>[statistics.m]"]
end

node_researcher(("Researcher"))

node_researcher -->|"runs"| node_orchestrator
node_orchestrator -->|"generates instance"| node_small_loader
node_orchestrator -->|"generates instance"| node_large_loader
node_small_loader -->|"generates users"| node_traffic
node_large_loader -->|"generates users"| node_traffic
node_small_loader -->|"generates cells"| node_cell_scenario
node_large_loader -->|"generates cells"| node_cell_scenario
node_traffic -->|"creates users"| node_user_model
node_cell_scenario -->|"creates cells"| node_cell_model
node_orchestrator -->|"initializes population"| node_demand_init
node_orchestrator -->|"initializes population"| node_random_init
node_orchestrator -->|"runs optimization"| node_nsga
node_orchestrator -->|"runs comparison"| node_demand_eval
node_nsga -->|"evaluates solutions"| node_solution_eval
node_solution_eval -->|"calculates FoM"| node_fom_optimized
node_solution_eval -->|"checks constraints"| node_constraints
node_nsga -->|"mutates solutions"| node_mutation
node_nsga -->|"applies local search"| node_db_search
node_nsga -->|"applies mutation"| node_db_mutation
node_hv_generation -->|"provides HV samples"| node_hv_analysis
node_hv_analysis -->|"runs tests"| node_statistics

click node_orchestrator "https://github.com/samuelmartinezupm/nsga-ii-based-satellite-beam-hopping-bh-algorithm/blob/main/LEO/MultiObjectiveFunction.m"
click node_small_loader "https://github.com/samuelmartinezupm/nsga-ii-based-satellite-beam-hopping-bh-algorithm/blob/main/LEO/loadSmall.m"
click node_large_loader "https://github.com/samuelmartinezupm/nsga-ii-based-satellite-beam-hopping-bh-algorithm/blob/main/LEO/loadLarge.m"
click node_traffic "https://github.com/samuelmartinezupm/nsga-ii-based-satellite-beam-hopping-bh-algorithm/blob/main/LEO/Traffic_Distribution.m"
click node_cell_scenario "https://github.com/samuelmartinezupm/nsga-ii-based-satellite-beam-hopping-bh-algorithm/blob/main/LEO/Cell_Scenario.m"
click node_user_model "https://github.com/samuelmartinezupm/nsga-ii-based-satellite-beam-hopping-bh-algorithm/blob/main/LEO/u.m"
click node_cell_model "https://github.com/samuelmartinezupm/nsga-ii-based-satellite-beam-hopping-bh-algorithm/blob/main/LEO/c.m"
click node_demand_init "https://github.com/samuelmartinezupm/nsga-ii-based-satellite-beam-hopping-bh-algorithm/blob/main/LEO/DB_PopulationInitialization.m"
click node_random_init "https://github.com/samuelmartinezupm/nsga-ii-based-satellite-beam-hopping-bh-algorithm/blob/main/LEO/PopulationInitialization.m"
click node_nsga "https://github.com/samuelmartinezupm/nsga-ii-based-satellite-beam-hopping-bh-algorithm/blob/main/Algorithms/Multi-objective%20optimization/NSGA-II/NSGAII.m"
click node_mutation "https://github.com/samuelmartinezupm/nsga-ii-based-satellite-beam-hopping-bh-algorithm/blob/main/LEO/MutationLEO.m"
click node_db_search "https://github.com/samuelmartinezupm/nsga-ii-based-satellite-beam-hopping-bh-algorithm/blob/main/LEO/DB_LocalSearch.m"
click node_db_mutation "https://github.com/samuelmartinezupm/nsga-ii-based-satellite-beam-hopping-bh-algorithm/blob/main/LEO/DB_Mutation.m"
click node_solution_eval "https://github.com/samuelmartinezupm/nsga-ii-based-satellite-beam-hopping-bh-algorithm/blob/main/LEO/MultiObjectiveFunction.m"
click node_fom_optimized "https://github.com/samuelmartinezupm/nsga-ii-based-satellite-beam-hopping-bh-algorithm/blob/main/LEO/FOM_calculation_optimization_based.m"
click node_constraints "https://github.com/samuelmartinezupm/nsga-ii-based-satellite-beam-hopping-bh-algorithm/blob/main/LEO/Single_Objective_Constraints.m"
click node_demand_eval "https://github.com/samuelmartinezupm/nsga-ii-based-satellite-beam-hopping-bh-algorithm/blob/main/FOM_calculation_demand_based_band_slots.m"
click node_hv_generation "https://github.com/samuelmartinezupm/nsga-ii-based-satellite-beam-hopping-bh-algorithm/blob/main/Statistical_Confidence/HV_files_generation.m"
click node_hv_analysis "https://github.com/samuelmartinezupm/nsga-ii-based-satellite-beam-hopping-bh-algorithm/blob/main/Statistical_Confidence/HV_statistic_confidence.m"
click node_statistics "https://github.com/samuelmartinezupm/nsga-ii-based-satellite-beam-hopping-bh-algorithm/blob/main/Statistical_Confidence/matlab/statistics.m"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_small_loader,node_large_loader,node_traffic,node_cell_scenario,node_user_model,node_cell_model toneBlue
class node_orchestrator,node_demand_init,node_random_init,node_nsga,node_mutation,node_db_search,node_db_mutation toneAmber
class node_solution_eval,node_fom_optimized,node_constraints,node_demand_eval toneMint
class node_hv_generation,node_hv_analysis,node_statistics toneRose
class node_researcher toneIndigo
```

## Components

### Scenario preparation

- [Small scenarios](https://github.com/samuelmartinezupm/nsga-ii-based-satellite-beam-hopping-bh-algorithm/blob/main/LEO/loadSmall.m): `LEO/loadSmall.m`
- [Large scenarios](https://github.com/samuelmartinezupm/nsga-ii-based-satellite-beam-hopping-bh-algorithm/blob/main/LEO/loadLarge.m): `LEO/loadLarge.m`
- [Traffic distribution](https://github.com/samuelmartinezupm/nsga-ii-based-satellite-beam-hopping-bh-algorithm/blob/main/LEO/Traffic_Distribution.m): `LEO/Traffic_Distribution.m`
- [Cell generation](https://github.com/samuelmartinezupm/nsga-ii-based-satellite-beam-hopping-bh-algorithm/blob/main/LEO/Cell_Scenario.m): `LEO/Cell_Scenario.m`
- [User model](https://github.com/samuelmartinezupm/nsga-ii-based-satellite-beam-hopping-bh-algorithm/blob/main/LEO/u.m): `LEO/u.m`
- [Cell model](https://github.com/samuelmartinezupm/nsga-ii-based-satellite-beam-hopping-bh-algorithm/blob/main/LEO/c.m): `LEO/c.m`

### Beam-hopping optimization

- [Optimization workflow](https://github.com/samuelmartinezupm/nsga-ii-based-satellite-beam-hopping-bh-algorithm/blob/main/LEO/MultiObjectiveFunction.m): `LEO/MultiObjectiveFunction.m`
- [Demand initialization](https://github.com/samuelmartinezupm/nsga-ii-based-satellite-beam-hopping-bh-algorithm/blob/main/LEO/DB_PopulationInitialization.m): `LEO/DB_PopulationInitialization.m`
- [Random initialization](https://github.com/samuelmartinezupm/nsga-ii-based-satellite-beam-hopping-bh-algorithm/blob/main/LEO/PopulationInitialization.m): `LEO/PopulationInitialization.m`
- [NSGA-II](https://github.com/samuelmartinezupm/nsga-ii-based-satellite-beam-hopping-bh-algorithm/blob/main/Algorithms/Multi-objective%20optimization/NSGA-II/NSGAII.m): `Algorithms/Multi-objective optimization/NSGA-II/NSGAII.m`
- [LEO mutation](https://github.com/samuelmartinezupm/nsga-ii-based-satellite-beam-hopping-bh-algorithm/blob/main/LEO/MutationLEO.m): `LEO/MutationLEO.m`
- [Demand local search](https://github.com/samuelmartinezupm/nsga-ii-based-satellite-beam-hopping-bh-algorithm/blob/main/LEO/DB_LocalSearch.m): `LEO/DB_LocalSearch.m`
- [Demand mutation](https://github.com/samuelmartinezupm/nsga-ii-based-satellite-beam-hopping-bh-algorithm/blob/main/LEO/DB_Mutation.m): `LEO/DB_Mutation.m`

### Solution evaluation

- [Solution evaluation](https://github.com/samuelmartinezupm/nsga-ii-based-satellite-beam-hopping-bh-algorithm/blob/main/LEO/MultiObjectiveFunction.m): `LEO/MultiObjectiveFunction.m`
- [Optimization FoM](https://github.com/samuelmartinezupm/nsga-ii-based-satellite-beam-hopping-bh-algorithm/blob/main/LEO/FOM_calculation_optimization_based.m): `LEO/FOM_calculation_optimization_based.m`
- [Constraint checks](https://github.com/samuelmartinezupm/nsga-ii-based-satellite-beam-hopping-bh-algorithm/blob/main/LEO/Single_Objective_Constraints.m): `LEO/Single_Objective_Constraints.m`
- [Demand-based FoM](https://github.com/samuelmartinezupm/nsga-ii-based-satellite-beam-hopping-bh-algorithm/blob/main/FOM_calculation_demand_based_band_slots.m): `FOM_calculation_demand_based_band_slots.m`

### Results analysis

- [HV generation](https://github.com/samuelmartinezupm/nsga-ii-based-satellite-beam-hopping-bh-algorithm/blob/main/Statistical_Confidence/HV_files_generation.m): `Statistical_Confidence/HV_files_generation.m`
- [Confidence analysis](https://github.com/samuelmartinezupm/nsga-ii-based-satellite-beam-hopping-bh-algorithm/blob/main/Statistical_Confidence/HV_statistic_confidence.m): `Statistical_Confidence/HV_statistic_confidence.m`
- [Statistical tests](https://github.com/samuelmartinezupm/nsga-ii-based-satellite-beam-hopping-bh-algorithm/blob/main/Statistical_Confidence/matlab/statistics.m): `Statistical_Confidence/matlab/statistics.m`

### Other components

- **Researcher**

## Connections

- Researcher → Optimization workflow: runs
- Optimization workflow → Small scenarios: generates instance
- Optimization workflow → Large scenarios: generates instance
- Small scenarios → Traffic distribution: generates users
- Large scenarios → Traffic distribution: generates users
- Small scenarios → Cell generation: generates cells
- Large scenarios → Cell generation: generates cells
- Traffic distribution → User model: creates users
- Cell generation → Cell model: creates cells
- Optimization workflow → Demand initialization: initializes population
- Optimization workflow → Random initialization: initializes population
- Optimization workflow → NSGA-II: runs optimization
- Optimization workflow → Demand-based FoM: runs comparison
- NSGA-II → Solution evaluation: evaluates solutions
- Solution evaluation → Optimization FoM: calculates FoM
- Solution evaluation → Constraint checks: checks constraints
- NSGA-II → LEO mutation: mutates solutions
- NSGA-II → Demand local search: applies local search
- NSGA-II → Demand mutation: applies mutation
- HV generation → Confidence analysis: provides HV samples
- Confidence analysis → Statistical tests: runs tests
