Juhi Optimization Algorithm (JOA)

The main inspiration of this algorithm comes from the juhi (Jasminum auriculatum)plant.
19 Downloads
Updated 6 Oct 2025

View License

Mathematical Model
Let:
  • NNN = number of plants (population)
  • XiX_iXi = position of plant iii in the search space
  • f(Xi)f(X_i)f(Xi) = fitness (objective function)
  • XbestX_{best}Xbest = best position found so far
  • ttt = current iteration, TmaxT_{max}Tmax = maximum iterations
Mathematical Model
Let:
  • NNN = number of plants (population)
  • XiX_iXi = position of plant iii in the search space
  • f(Xi)f(X_i)f(Xi) = fitness (objective function)
  • XbestX_{best}Xbest = best position found so far
  • ttt = current iteration, TmaxT_{max}Tmax = maximum iterations
1. Root Expansion Phase (Exploration)
Plants spread roots randomly to explore nutrients:
Xinew=Xi+αrand(1,D)(XrandXi)X_i^{new} = X_i + \alpha \cdot rand(1, D) \cdot (X_{rand} - X_i)Xinew=Xi+αrand(1,D)(XrandXi)
where
  • α\alphaα = root expansion rate (0.5–1.0),
  • XrandX_{rand}Xrand = random plant position.
2. Stem Growth Phase (Transition)
Plants grow toward light and resources:
Xinew=Xi+βrand(1,D)(XbestXi)X_i^{new} = X_i + \beta \cdot rand(1, D) \cdot (X_{best} - |X_i|)Xinew=Xi+βrand(1,D)(XbestXi)
where
  • β\betaβ = growth factor (0.3–0.7).
3. Flower Blooming Phase (Exploitation)
Flowers bloom around the best nutrient/light zone:
Xinew=Xbest+γ(randn(1,D))X_i^{new} = X_{best} + \gamma \cdot (randn(1, D))Xinew=Xbest+γ(randn(1,D))
where
  • γ=γ0(1tTmax)\gamma = \gamma_0 (1 - \frac{t}{T_{max}})γ=γ0(1Tmaxt), decreasing over time to refine the search.
🌸 Algorithm Steps
  1. Initialize population XiX_iXi randomly within bounds [lb,ub][lb, ub][lb,ub].
  2. Evaluate fitness f(Xi)f(X_i)f(Xi).
  3. Identify XbestX_{best}Xbest.
  4. Repeat until maximum iterations:
  • Perform Root Expansion for a fraction of plants.
  • Perform Stem Growth for middle-range plants.
  • Perform Flower Blooming for top-performing plants.
  • Update XbestX_{best}Xbest.
  1. Return XbestX_{best}Xbest as optimal solution.
1. Root Expansion Phase (Exploration)
Plants spread roots randomly to explore nutrients:
Xinew=Xi+αrand(1,D)(XrandXi)X_i^{new} = X_i + \alpha \cdot rand(1, D) \cdot (X_{rand} - X_i)Xinew=Xi+αrand(1,D)(XrandXi)
where
  • α\alphaα = root expansion rate (0.5–1.0),
  • XrandX_{rand}Xrand = random plant position.
2. Stem Growth Phase (Transition)
Plants grow toward light and resources:
Xinew=Xi+βrand(1,D)(XbestXi)X_i^{new} = X_i + \beta \cdot rand(1, D) \cdot (X_{best} - |X_i|)Xinew=Xi+βrand(1,D)(XbestXi)
where
  • β\betaβ = growth factor (0.3–0.7).
3. Flower Blooming Phase (Exploitation)
Flowers bloom around the best nutrient/light zone:
Xinew=Xbest+γ(randn(1,D))X_i^{new} = X_{best} + \gamma \cdot (randn(1, D))Xinew=Xbest+γ(randn(1,D))
where
  • γ=γ0(1tTmax)\gamma = \gamma_0 (1 - \frac{t}{T_{max}})γ=γ0(1Tmaxt), decreasing over time to refine the search.

Cite As

praveen kumar (2026). Juhi Optimization Algorithm (JOA) (https://in.mathworks.com/matlabcentral/fileexchange/182214-juhi-optimization-algorithm-joa), MATLAB Central File Exchange. Retrieved .

MATLAB Release Compatibility
Created with R2025b
Compatible with any release
Platform Compatibility
Windows macOS Linux
Tags Add Tags
Version Published Release Notes
1.0.0