SCUBA DIVER OPTIMIZATION ALGORITHM: for Speed Reducer Design
Version 1.0.0 (99,9 ko) par
Saman M. Almufti
SCUBA DIVER OPTIMIZATION ALGORITHM: for Speed Reducer Design Optimization A NOVEL METAHEURISTICS ALGORITHM FOR CONSTRAINED ENGINEERING
SDOA Algorithm Implementation for Speed Reducer Design Optimization
Core Algorithm: Scuba Diver Optimization Algorithm (SDOA)
- Nature-inspired, population-based metaheuristic derived from scuba diving dynamics
- Adaptive search behaviour regulated by “oxygen” and “depth-stage” transitions
- Key mechanism: oxygen depletion and replenishment drive a controlled shift from exploration to exploitation
Problem Solved: Speed Reducer Design Optimization
- Objective: Minimize speed reducer weight
- Design variables: 7 variables [x1,…,x7], with mixed-integer structure (x3 is integer: number of teeth)
- Constraints: 11 nonlinear constraints reflecting mechanical feasibility:
- Gear tooth bending stress constraints
- Shaft deflection constraints
- Shaft stress constraints
- Geometric and dimensional constraints
Algorithm Components
1) Diver Representation & Initialization
- Each diver represents a candidate solution vector: 7 design variables
- Initialization ensures broad coverage of the search space using a structured distribution strategy
- Includes random diversification for a subset of the population to strengthen global coverage
- Integer enforcement: x3 is rounded after initialization and after every update step
2) Oxygen & Depth Management
- Oxygen decay model:
Oi(t)=Oi(t−1)exp(−αt/tmax)
- The population is partitioned dynamically into 5 depth stages using oxygen thresholds:
Depth stages (oxygen thresholds):
- D1 (high oxygen): Global exploration (Lévy-flight style updates)
- D2 (moderate oxygen): Moderate exploration (crossover with best + random walk)
- B1 (reduced oxygen): Exploitation (local search with optional elite crossover)
- D3 (low oxygen): Fine-tuning (non-uniform mutation with decreasing intensity)
- Reset (very low oxygen): Diversification (reinitialization, especially if infeasible)
This staged strategy implements a structured exploration-to-exploitation pipeline without requiring manual phase switching.3) Search Operators
- Lévy-flight exploration: heavy-tailed perturbations for escaping local minima
- Crossover operator: blends current diver with best/elite diver to accelerate convergence
- Random walk: bounded stochastic perturbations to enhance neighbourhood exploration
- Local search: deterministic refinement around current candidate (hill-climbing style)
- Non-uniform mutation: progressively shrinking perturbations for late-stage tuning
All moves are followed by:
- bound repair (clipping to [Lb,Ub])
- integer snapping for x3
4) Constraint Handling
- Penalty-based constraint handling: pfit=f(x)+106∑max(0,gi(x))
- Acceptance policy prioritises feasibility:
- Improved penalised fitness is accepted
- Feasible solutions are favoured over infeasible ones (feasibility-first bias)
- Constraint verification is included via a dedicated validation routine that reports each constraint value and feasibility status
5) Adaptive Mechanisms
- Elitism: top solutions are preserved and restored each iteration (elite protection)
- Parameter adaptation: mutation and exploration strength decrease with iteration count
- Oxygen replenishment: successful improvements partially restore oxygen to reinforce productive behaviours
- Communication strategy: divers probabilistically move relative to the best diver, strengthening collective convergence
Key Parameters (as provided)
- Population size: 500 divers
- Maximum iterations: 2000
- Runs: 10 independent runs (feasible-first statistics reported)
- Elite size: 15
- Initial oxygen: 200, oxygen decay factor α=0.4\alpha = 0.4α=0.4
- Initial mutation rate: 0.3 (decreases over iterations)
- Initial current strength: 0.3 (decreases faster to focus refinement later)
Results & Visualization
The implementation generates detailed diagnostics and plots, including:
- Best-run convergence history (best vs. feasible-average)
- Constraint-violation history for the best run
- Best design variable bar plot
- Diver distribution across depth stages (area plot)
- Feasible-run percentage (pie chart)
- Cross-run overlays: convergence and constraint histories for all runs
- Final best objective distribution (scatter + boxplot) and feasibility count
Strengths of the Implementation
- Exploration–exploitation balance: controlled by oxygen-driven stage switching
- Robust feasibility management: strong penalty handling with feasibility-first selection pressure
- Mixed-integer compatibility: integer decision handling integrated directly into the update loop
- Convergence stability: elite preservation prevents loss of high-quality solutions
- Rich behavioural tracking: depth-stage population statistics provide interpretability of algorithm dynamics
Algorithm Characteristics
- Computational complexity: O(nDivers×maxIter×nVars)
- Memory usage: moderate (stores histories across iterations and runs)
- Scalability: suitable for constrained, nonlinear engineering design problems with small-to-medium dimension
If you want, I can also rewrite this i
Citation pour cette source
Saman M. Almufti (2026). SCUBA DIVER OPTIMIZATION ALGORITHM: for Speed Reducer Design (https://fr.mathworks.com/matlabcentral/fileexchange/183136-scuba-diver-optimization-algorithm-for-speed-reducer-design), 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
Remerciements
Inspiré par : Scuba Diver Optimization Algorithm: Car Side Impact Design, SCUBA DIVER OPTIMIZATION ALGORITHM (SDOA), SCUBA DIVER OPTIMIZATION ALGORITHM: Tension/Compression Spri
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 |
|
