SOMA is a novel hybrid evolutionary algorithm inspired by Bacterial Evolutionary Algorithms, Differential Evolution, and Genetic Algorithms. It introduces two custom operators — the Scylla Operator and the Charybdis Bacterial Mutation — inspired by Greek mythology, combined with a differential evolution-like mechanism.
This repository contains the MATLAB implementation of SOMA as described in our conference paper.
The SOMA algorithm operates in three evolutionary phases:
- Scylla Operator – Enhances exploration with parallel, randomized mutation and crossover operations.
- Charybdis Bacterial Mutation – Provides greedy convergence in early iterations, using local search inspired by bacterial behavior.
- Differential Evolution Step – Combines the evolved population with a memory-based step to refine the search direction.
These steps are applied iteratively to solve optimization problems in both synthetic and real-world domains.
SOMA/
├── Main.m # Entry point for running SOMA
├── SOMA.m # Main SOMA implementation
├── CalculateCost.m # Fitness function interface
└── SpecifyFunctionParameters.m # Problem and algorithm parameters
## 🚀 Getting Started
### Requirements
- MATLAB R2024b or later
- No additional toolboxes required
### Usage
Run the main script:
```matlab
Main
This will execute the algorithm on one of the benchmark functions, depending on the settings in SpecifyFunctionParameters.m
.
This implementation is part of the research submitted as:
"Solving Inverse Kinematics Problems Using Strait of Messina Algorithm"
Szilárd Dávid Fecht, Márk Domonkos, János Botzheim
To appear at IntRobFAIR '25, June 23–25, 2025, Budapest, Hungary.
CC-BY
This work is licensed under a Creative Commons Attribution International 4.0 License. IntRob '25 June 23--24, 2025,Budapest, Hungary© 2025 Copyright is held by the owner/author(s). ACM ISBN 979-8-4007-1589-1/25/06 https://doi.org/10.1145/3759355.3759367
This code is made available for academic and non-commercial use.
License: Creative Commons 4.0 https://creativecommons.org/licenses/by/4.0/
For questions or contributions, please contact: fecht@inf.elte.hu