Juhi Optimization Algorithm (JOA)
Version 1.0.0 (4,06 ko) par
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.
Citation pour cette source
praveen kumar (2026). Juhi Optimization Algorithm (JOA) (https://fr.mathworks.com/matlabcentral/fileexchange/182214-juhi-optimization-algorithm-joa), MATLAB Central File Exchange. Extrait(e) le .
Compatibilité avec les versions de MATLAB
Créé avec
R2025b
Compatible avec toutes les versions
Plateformes compatibles
Windows macOS LinuxTags
Découvrir Live Editor
Créez des scripts avec du code, des résultats et du texte formaté dans un même document exécutable.
| Version | Publié le | Notes de version | |
|---|---|---|---|
| 1.0.0 |
