# demas-george/algorithms-matlab-python architecture

> Architecture diagram of the GitHub repository demas-george/algorithms-matlab-python, 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/demas-george/algorithms-matlab-python
- Repository: https://github.com/demas-george/algorithms-matlab-python

## Overview

This repository is a Python/MATLAB suite of 35 nature-inspired optimization algorithms with a standardized benchmark and comparison workflow. A user configures a problem, runs one or more optimizers over independent trials, and reviews per-algorithm statistics, convergence histories, plots, and Excel reports; the comparison tool aggregates saved workbooks into a leaderboard and overlaid convergence plot. The graph follows README-documented workflow where runner internals were not sampled; source excerpts substantiate the problem harness, comparison reader, and APO implementation. MATLAB coverage is represented at its documented source-tree level.

Main entry points: [`algorithms (Python)/problem.py`](https://github.com/demas-george/algorithms-matlab-python/blob/main/algorithms%20(Python)/problem.py) (Problem harness), [`algorithms (Python)/run.py`](https://github.com/demas-george/algorithms-matlab-python/blob/main/algorithms%20(Python)/run.py) (Single runner), [`algorithms (Python)/run_all_algorithms.py`](https://github.com/demas-george/algorithms-matlab-python/blob/main/algorithms%20(Python)/run_all_algorithms.py) (Batch runner), [`algorithms (Python)/compare_algorithms.py`](https://github.com/demas-george/algorithms-matlab-python/blob/main/algorithms%20(Python)/compare_algorithms.py) (Comparison aggregator)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_execution["Experiment execution"]
  node_single_runner["Single runner<br/>[run.py]"]
  node_batch_runner["Batch runner"]
  node_problem["Problem harness<br/>[problem.py]"]
end

subgraph group_methods["Optimization methods"]
  node_optimizer_suite["35 Python optimizers"]
end

subgraph group_analysis["Results and analysis"]
  node_experiment_outputs["Run reports"]
  node_comparison["Comparison aggregator"]
  node_leaderboard["Leaderboard and plot"]
end

subgraph group_platforms["Platform implementations"]
  node_apo["APO CEC runner<br/>[APO.py]"]
  node_apo_variant["APO variant<br/>[APOwr.py]"]
  node_cec22["CEC2022 functions"]
  node_matlab_catalog["MATLAB sources"]
end

node_user(("Research user"))

node_user -->|"runs one"| node_single_runner
node_user -->|"runs suite"| node_batch_runner
node_single_runner -->|"runs experiment"| node_problem
node_batch_runner -->|"runs experiments"| node_problem
node_single_runner -->|"selects optimizer"| node_optimizer_suite
node_batch_runner -->|"dispatches algorithms"| node_optimizer_suite
node_optimizer_suite -->|"evaluates candidates"| node_problem
node_problem -->|"writes reports"| node_experiment_outputs
node_user -->|"runs CEC study"| node_apo
node_apo -.->|"evaluates candidates"| node_cec22
node_apo_variant -.->|"evaluates candidates"| node_cec22
node_matlab_catalog -->|"provides implementations"| node_user
node_user -->|"requests comparison"| node_comparison
node_comparison -->|"reads workbooks"| node_experiment_outputs
node_comparison -->|"writes summary"| node_leaderboard

click node_single_runner "https://github.com/demas-george/algorithms-matlab-python/blob/main/algorithms%20(Python)/run.py"
click node_batch_runner "https://github.com/demas-george/algorithms-matlab-python/blob/main/algorithms%20(Python)/run_all_algorithms.py"
click node_problem "https://github.com/demas-george/algorithms-matlab-python/blob/main/algorithms%20(Python)/problem.py"
click node_optimizer_suite "https://github.com/demas-george/algorithms-matlab-python/tree/main/algorithms%20(Python)"
click node_apo "https://github.com/demas-george/algorithms-matlab-python/blob/main/Sources(MATLAB)/Artificial%20Protozoa%20Optimizer%20(APO)/Artificial%20Protozoa%20Optimizer/APO-CEC2022-Python/APO.py"
click node_apo_variant "https://github.com/demas-george/algorithms-matlab-python/blob/main/Sources(MATLAB)/Artificial%20Protozoa%20Optimizer%20(APO)/Artificial%20Protozoa%20Optimizer/APO-CEC2022-Python/APOwr.py"
click node_cec22 "https://github.com/demas-george/algorithms-matlab-python/blob/main/Sources(MATLAB)/Artificial%20Protozoa%20Optimizer%20(APO)/Artificial%20Protozoa%20Optimizer/APO-CEC2022-Matlab/cec22_test_func.cpp"
click node_matlab_catalog "https://github.com/demas-george/algorithms-matlab-python/tree/main/Sources(MATLAB)"
click node_comparison "https://github.com/demas-george/algorithms-matlab-python/blob/main/algorithms%20(Python)/compare_algorithms.py"

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_single_runner,node_batch_runner,node_problem,node_user toneBlue
class node_optimizer_suite toneAmber
class node_experiment_outputs,node_comparison,node_leaderboard toneMint
class node_apo,node_apo_variant,node_cec22,node_matlab_catalog toneRose
```

## Components

### Experiment execution

- [Single runner](https://github.com/demas-george/algorithms-matlab-python/blob/main/algorithms%20(Python)/run.py): `algorithms (Python)/run.py`
- [Batch runner](https://github.com/demas-george/algorithms-matlab-python/blob/main/algorithms%20(Python)/run_all_algorithms.py): `algorithms (Python)/run_all_algorithms.py`
- [Problem harness](https://github.com/demas-george/algorithms-matlab-python/blob/main/algorithms%20(Python)/problem.py): `algorithms (Python)/problem.py`

### Optimization methods

- [35 Python optimizers](https://github.com/demas-george/algorithms-matlab-python/tree/main/algorithms%20(Python)): `algorithms (Python)`

### Results and analysis

- **Run reports**
- [Comparison aggregator](https://github.com/demas-george/algorithms-matlab-python/blob/main/algorithms%20(Python)/compare_algorithms.py): `algorithms (Python)/compare_algorithms.py`
- **Leaderboard and plot**

### Platform implementations

- [APO CEC runner](https://github.com/demas-george/algorithms-matlab-python/blob/main/Sources(MATLAB)/Artificial%20Protozoa%20Optimizer%20(APO)/Artificial%20Protozoa%20Optimizer/APO-CEC2022-Python/APO.py): `Sources(MATLAB)/Artificial Protozoa Optimizer (APO)/Artificial Protozoa Optimizer/APO-CEC2022-Python/APO.py`
- [APO variant](https://github.com/demas-george/algorithms-matlab-python/blob/main/Sources(MATLAB)/Artificial%20Protozoa%20Optimizer%20(APO)/Artificial%20Protozoa%20Optimizer/APO-CEC2022-Python/APOwr.py): `Sources(MATLAB)/Artificial Protozoa Optimizer (APO)/Artificial Protozoa Optimizer/APO-CEC2022-Python/APOwr.py`
- [CEC2022 functions](https://github.com/demas-george/algorithms-matlab-python/blob/main/Sources(MATLAB)/Artificial%20Protozoa%20Optimizer%20(APO)/Artificial%20Protozoa%20Optimizer/APO-CEC2022-Matlab/cec22_test_func.cpp): `Sources(MATLAB)/Artificial Protozoa Optimizer (APO)/Artificial Protozoa Optimizer/APO-CEC2022-Matlab/cec22_test_func.cpp`
- [MATLAB sources](https://github.com/demas-george/algorithms-matlab-python/tree/main/Sources(MATLAB)): `Sources(MATLAB)`

### Other components

- **Research user**

## Connections

- Research user → Single runner: runs one
- Research user → Batch runner: runs suite
- Single runner → Problem harness: runs experiment
- Batch runner → Problem harness: runs experiments
- Single runner → 35 Python optimizers: selects optimizer
- Batch runner → 35 Python optimizers: dispatches algorithms
- 35 Python optimizers → Problem harness: evaluates candidates
- Problem harness → Run reports: writes reports
- Research user → APO CEC runner: runs CEC study
- APO CEC runner → CEC2022 functions: evaluates candidates
- APO variant → CEC2022 functions: evaluates candidates
- MATLAB sources → Research user: provides implementations
- Research user → Comparison aggregator: requests comparison
- Comparison aggregator → Run reports: reads workbooks
- Comparison aggregator → Leaderboard and plot: writes summary
