Self-Adaptive Brain-Eating Amoeba Optimization(SABEO)

this program ilutrates working of Self-Adaptive Brain-Eating Amoeba Optimization
11 Downloads
Updated 21 Sep 2025

View License

Algorithm: SA-BEAO
Step 1. Initialization
1.1. Define the objective function f(x)f(x)f(x), decision variables dimension DDD, population size NNN, and maximum iterations TmaxT_{\max}Tmax.
1.2. Initialize amoeba population X={x1,x2,,xN}X = \{x_1, x_2, …, x_N\}X={x1,x2,,xN} randomly within bounds [lb,ub][lb, ub][lb,ub].
1.3. Evaluate fitness f(xi)f(x_i)f(xi) for each amoeba.
1.4. Set the best solution xbestx_{best}xbest and record the best fitness.
1.5. Initialize operator probabilities pj=1/Mp_j = 1/Mpj=1/M, where MMM is the number of operators. Initialize operator success counters sj=1s_j = 1sj=1.
Step 2. Adaptive Evolution (for each iteration t=1Tmaxt = 1 \to T_{\max}t=1Tmax)
2.1. Update adaptive parameters
  • Reduce exploration factor α=α0(1t/Tmax)0.5\alpha = \alpha_0 (1 - t/T_{\max})^{0.5}α=α0(1t/Tmax)0.5.
  • Adjust local search radius rloc=0.1+0.9(1t/Tmax)r_{loc} = 0.1 + 0.9(1 - t/T_{\max})rloc=0.1+0.9(1t/Tmax).
2.2. For each amoeba xix_ixi:
  • Select an operator OjO_jOj using roulette wheel selection based on probabilities pjp_jpj.
  • Apply the chosen operator to generate a candidate solution xnewx_{new}xnew.
Operators:
  • Flagellate Motion: Directed movement toward the global best.
  • Phagocytosis: Local Gaussian perturbation (exploit).
  • Encystment: Random reinitialization (diversify).
  • Swarm Interaction: Attraction toward neighbor mean.
  • Shapeshifting: Scaling mutation of current vector.
  • Binary Splitting: Create child solution via Gaussian offspring.
  • Lévy Flight: Large jump with heavy-tailed step.
2.3. Boundary control
  • Ensure xnewx_{new}xnew lies within [lb,ub][lb, ub][lb,ub].
2.4. Selection
  • If f(xnew)<f(xi)f(x_{new}) < f(x_i)f(xnew)<f(xi), replace xixnewx_i \leftarrow x_{new}xixnew.
  • Update operator success counter sj=sj+1s_j = s_j + 1sj=sj+1 if improvement occurred.
2.5. Update global best
  • If f(xnew)<f(xbest)f(x_{new}) < f(x_{best})f(xnew)<f(xbest), update xbest=xnewx_{best} = x_{new}xbest=xnew.
Step 3. Adaptive Operator Probability Update
  • Every Δt\Delta tΔt iterations (e.g., 20):
pj=max(sjk=1Msk,  pmin)p_j = \max\left(\frac{s_j}{\sum_{k=1}^M s_k}, \; p_{\min}\right)pj=max(k=1Msksj,pmin)
  • Normalize probabilities so that jpj=1\sum_j p_j = 1jpj=1.
  • This favors operators with higher success while ensuring exploration.
Step 4. Stopping Condition
  • Repeat Steps 2–3 until TmaxT_{\max}Tmax is reached or convergence is satisfied.
Step 5. Output
  • Return best solution xbestx_{best}xbest and its fitness f(xbest)f(x_{best})f(xbest).

Cite As

praveen kumar (2025). Self-Adaptive Brain-Eating Amoeba Optimization(SABEO) (https://au.mathworks.com/matlabcentral/fileexchange/182078-self-adaptive-brain-eating-amoeba-optimization-sabeo), MATLAB Central File Exchange. Retrieved .

MATLAB Release Compatibility
Created with R2025b
Compatible with any release
Platform Compatibility
Windows macOS Linux
Tags Add Tags

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!
Version Published Release Notes
1.0.0