Juhi Optimization Algorithm (JOA)
Version 1.0.0 (4.06 KB) by
praveen kumar
The main inspiration of this algorithm comes from the juhi (Jasminum auriculatum)plant.
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)⋅(Xrand−Xi)X_i^{new} = X_i + \alpha \cdot rand(1, D) \cdot (X_{rand} - X_i)Xinew=Xi+α⋅rand(1,D)⋅(Xrand−Xi)
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)⋅(Xbest−∣Xi∣)X_i^{new} = X_i + \beta \cdot rand(1, D) \cdot (X_{best} - |X_i|)Xinew=Xi+β⋅rand(1,D)⋅(Xbest−∣Xi∣)
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(1−tTmax)\gamma = \gamma_0 (1 - \frac{t}{T_{max}})γ=γ0(1−Tmaxt), decreasing over time to refine the search.
🌸 Algorithm Steps
- Initialize population XiX_iXi randomly within bounds [lb,ub][lb, ub][lb,ub].
- Evaluate fitness f(Xi)f(X_i)f(Xi).
- Identify XbestX_{best}Xbest.
- 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.
- Return XbestX_{best}Xbest as optimal solution.
1. Root Expansion Phase (Exploration)
Plants spread roots randomly to explore nutrients:
Xinew=Xi+α⋅rand(1,D)⋅(Xrand−Xi)X_i^{new} = X_i + \alpha \cdot rand(1, D) \cdot (X_{rand} - X_i)Xinew=Xi+α⋅rand(1,D)⋅(Xrand−Xi)
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)⋅(Xbest−∣Xi∣)X_i^{new} = X_i + \beta \cdot rand(1, D) \cdot (X_{best} - |X_i|)Xinew=Xi+β⋅rand(1,D)⋅(Xbest−∣Xi∣)
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(1−tTmax)\gamma = \gamma_0 (1 - \frac{t}{T_{max}})γ=γ0(1−Tmaxt), 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 LinuxTags
Discover Live Editor
Create scripts with code, output, and formatted text in a single executable document.
JOA
| Version | Published | Release Notes | |
|---|---|---|---|
| 1.0.0 |
