You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
docs: add comprehensive documentation for new optimization algorithms
Add detailed documentation for four newly implemented optimization algorithms:
- QOJAYA (Quasi-Oppositional Jaya): Enhanced Jaya with quasi-oppositional learning
- GOTLBO (Generalized Oppositional TLBO): TLBO with oppositional-based learning
- ITLBO (Improved TLBO): TLBO with adaptive teaching factors and elitism
- Multi-objective TLBO: Extension of TLBO for problems with multiple objectives
Updates include:
- New algorithm descriptions in README.md with usage examples
- Detailed API documentation with parameters, return values and flow diagrams
- Algorithm-specific markdown files in docs/algorithms with mathematical formulations
- Real-world application examples and references to original papers
- Updated index.md with algorithm comparison table and usage recommendations
- Fixed test cases to account for stochastic nature of optimization algorithms
References:
- R.V. Rao & D.P. Rai (2017) - QOJAYA paper
- R.V. Rao & V. Patel (2013) - GOTLBO paper
- R.V. Rao & V. Patel (2012) - ITLBO paper
- R.V. Rao & V.D. Kalyankar (2014) - Multi-objective TLBO paper
These algorithms are designed to solve both **constrained** and **unconstrained** optimization problems without relying on metaphors or algorithm-specific parameters. The BMR and BWR algorithms are based on the paper:
11
15
@@ -17,6 +21,7 @@ These algorithms are designed to solve both **constrained** and **unconstrained*
17
21
-**Simple**: Most algorithms have no algorithm-specific parameters to tune.
18
22
-**Flexible**: Handles both constrained and unconstrained optimization problems.
19
23
-**Versatile**: Includes a variety of algorithms suitable for different types of optimization problems.
24
+
-**Multi-objective Optimization**: Support for problems with multiple competing objectives.
20
25
21
26
## Installation
22
27
@@ -123,6 +128,106 @@ best_solution_rao3, best_scores_rao3 = Rao3_algorithm(bounds, num_iterations, po
123
128
print(f"Rao-3 Best solution found: {best_solution_rao3}")
124
129
```
125
130
131
+
### Example: QOJAYA Algorithm
132
+
133
+
```python
134
+
import numpy as np
135
+
from rao_algorithms importQOJAYA_algorithm, objective_function
This package comes with unit tests. To run the tests:
@@ -173,6 +278,34 @@ TLBO is a parameter-free algorithm inspired by the teaching-learning process in
173
278
174
279
-**Paper Citation**: R. V. Rao, V. J. Savsani, D. P. Vakharia, "Teaching-Learning-Based Optimization: An optimization method for continuous non-linear large scale problems", Information Sciences, 183(1), 2012, 1-15.
175
280
281
+
### QOJAYA (Quasi-Oppositional Jaya) Algorithm
282
+
283
+
QOJAYA enhances the standard Jaya algorithm by incorporating quasi-oppositional learning to improve convergence speed and solution quality. It generates and evaluates quasi-opposite solutions alongside the standard Jaya updates.
284
+
285
+
-**Paper Citation**: R. V. Rao, D. P. Rai, "Optimization of welding processes using quasi-oppositional-based Jaya algorithm", Journal of Mechanical Science and Technology, 31(5), 2017, 2513-2522.
286
+
-**Real-world Application**: The algorithm has been successfully applied to optimize welding processes, including tungsten inert gas (TIG) welding and friction stir welding. It determines optimal parameters like welding current, voltage, and speed to maximize weld strength while minimizing defects.
GOTLBO combines TLBO with generalized opposition-based learning to enhance exploration capabilities and convergence speed. It applies opposition in both teacher and learner phases.
291
+
292
+
-**Paper Citation**: R. V. Rao, V. Patel, "An improved teaching-learning-based optimization algorithm for solving unconstrained optimization problems", Scientia Iranica, 20(3), 2013, 710-720.
293
+
-**Real-world Application**: GOTLBO has been applied to mechanical design optimization problems, including the design of pressure vessels, spring design, and gear train design. It effectively finds optimal dimensions and parameters that minimize weight while satisfying safety constraints.
294
+
295
+
### ITLBO (Improved TLBO) Algorithm
296
+
297
+
ITLBO enhances the standard TLBO algorithm with an adaptive teaching factor, elite solution influence, and three-way interaction in the learner phase.
298
+
299
+
-**Paper Citation**: R. V. Rao, V. Patel, "An elitist teaching-learning-based optimization algorithm for solving complex constrained optimization problems", International Journal of Industrial Engineering Computations, 3(4), 2012, 535-560.
300
+
-**Real-world Application**: ITLBO has been successfully applied to optimize heat exchangers, finding the optimal design parameters that maximize heat transfer while minimizing pressure drop and material costs. It has also been used for power system optimization to minimize generation costs and transmission losses.
301
+
302
+
### Multi-objective TLBO Algorithm
303
+
304
+
Multi-objective TLBO extends TLBO to handle multiple competing objectives using Pareto dominance and crowding distance for selection. It returns a set of non-dominated solutions (Pareto front).
305
+
306
+
-**Paper Citation**: R. V. Rao, V. D. Kalyankar, "Multi-objective TLBO algorithm for optimization of modern machining processes", Advances in Intelligent Systems and Computing, 236, 2014, 21-31.
307
+
-**Real-world Application**: The algorithm has been applied to optimize machining processes like turning, milling, and grinding operations. It simultaneously optimizes multiple objectives such as surface roughness, material removal rate, and tool wear, helping manufacturers achieve high-quality parts with efficient production.
308
+
176
309
## Docker Support
177
310
178
311
You can use the included `Dockerfile` to build and test the package quickly. To build and run the package in Docker:
@@ -191,4 +324,8 @@ This package is licensed under the MIT License. See the [LICENSE](LICENSE) file
191
324
1. Ravipudi Venkata Rao, Ravikumar Shah, "BMR and BWR: Two simple metaphor-free optimization algorithms for solving real-life non-convex constrained and unconstrained problems," [arXiv:2407.11149v2](https://arxiv.org/abs/2407.11149).
192
325
2. Ravipudi Venkata Rao, "Jaya: A simple and new optimization algorithm for solving constrained and unconstrained optimization problems", International Journal of Industrial Engineering Computations, 7(1), 2016, 19-34.
193
326
3. Ravipudi Venkata Rao, "Rao algorithms: Three metaphor-less simple algorithms for solving optimization problems", International Journal of Industrial Engineering Computations, 11(2), 2020, 193-212.
194
-
4. Ravipudi Venkata Rao, V. J. Savsani, D. P. Vakharia, "Teaching-Learning-Based Optimization: An optimization method for continuous non-linear large scale problems", Information Sciences, 183(1), 2012, 1-15.
327
+
4. Ravipudi Venkata Rao, V. J. Savsani, D. P. Vakharia, "Teaching-Learning-Based Optimization: An optimization method for continuous non-linear large scale problems", Information Sciences, 183(1), 2012, 1-15.
328
+
5. Ravipudi Venkata Rao, D. P. Rai, "Optimization of welding processes using quasi-oppositional-based Jaya algorithm", Journal of Mechanical Science and Technology, 31(5), 2017, 2513-2522.
329
+
6. Ravipudi Venkata Rao, V. Patel, "An improved teaching-learning-based optimization algorithm for solving unconstrained optimization problems", Scientia Iranica, 20(3), 2013, 710-720.
330
+
7. Ravipudi Venkata Rao, V. Patel, "An elitist teaching-learning-based optimization algorithm for solving complex constrained optimization problems", International Journal of Industrial Engineering Computations, 3(4), 2012, 535-560.
331
+
8. Ravipudi Venkata Rao, V. D. Kalyankar, "Multi-objective TLBO algorithm for optimization of modern machining processes", Advances in Intelligent Systems and Computing, 236, 2014, 21-31.
The Generalized Oppositional Teaching-Learning-Based Optimization (GOTLBO) algorithm is an enhanced version of the standard TLBO algorithm developed by Prof. R.V. Rao. It incorporates oppositional-based learning to improve convergence speed and solution quality. The algorithm maintains the two-phase approach of the original TLBO (Teacher Phase and Learner Phase) while adding the ability to explore more of the search space through opposition.
6
+
7
+
## Key Features
8
+
9
+
-**Enhanced exploration**: Uses oppositional-based learning to explore more of the search space.
10
+
-**Parameter-free**: Like the original TLBO, GOTLBO doesn't require any algorithm-specific parameters.
11
+
-**Improved convergence**: Often converges faster than the standard TLBO algorithm.
12
+
-**Two-phase approach**: Maintains the Teacher Phase and Learner Phase from the original TLBO.
13
+
-**Handles constraints**: Effectively handles both constrained and unconstrained optimization problems.
14
+
15
+
## Algorithm Workflow
16
+
17
+
```mermaid
18
+
graph TD
19
+
A[Initialize Population] --> B[Evaluate Fitness]
20
+
B --> C[Identify Best Solution as Teacher]
21
+
C --> D[Teacher Phase: Update Solutions Based on Teacher]
22
+
D --> E[Generate Opposition-Based Solutions in Teacher Phase]
23
+
E --> F[Select Better Solutions]
24
+
F --> G[Learner Phase: Update Solutions Based on Peer Learning]
25
+
G --> H[Generate Opposition-Based Solutions in Learner Phase]
26
+
H --> I[Select Better Solutions]
27
+
I --> J{Termination Criteria Met?}
28
+
J -->|No| B
29
+
J -->|Yes| K[Return Best Solution]
30
+
```
31
+
32
+
## Mathematical Formulation
33
+
34
+
### Teacher Phase with Opposition
35
+
36
+
For each student (solution) $X_i$ in the population at iteration $t$:
37
+
38
+
1. Generate a new solution using the standard TLBO teacher phase:
GOTLBO has been applied to mechanical design optimization problems, including the design of pressure vessels, spring design, and gear train design. It effectively finds optimal dimensions and parameters that minimize weight while satisfying safety constraints.
132
+
133
+
In a typical pressure vessel design problem:
134
+
-**Decision variables**: Thickness of the shell, thickness of the head, inner radius, length of the cylindrical section
135
+
-**Objective**: Minimize the total cost of the pressure vessel
GOTLBO efficiently navigates this complex parameter space to find optimal designs that minimize cost while meeting all safety requirements.
139
+
140
+
## References
141
+
142
+
- R. V. Rao, V. Patel, "An improved teaching-learning-based optimization algorithm for solving unconstrained optimization problems", Scientia Iranica, 20(3), 2013, 710-720.
143
+
- R. V. Rao, V. J. Savsani, D. P. Vakharia, "Teaching-Learning-Based Optimization: An optimization method for continuous non-linear large scale problems", Information Sciences, 183(1), 2012, 1-15.
Copy file name to clipboardExpand all lines: docs/algorithms/index.md
+13-1Lines changed: 13 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -9,6 +9,10 @@ This section provides detailed documentation for all the optimization algorithms
9
9
-[Jaya Algorithm](jaya.md): A parameter-free algorithm that always tries to move toward the best solution and away from the worst solution.
10
10
-[Rao Algorithms (Rao-1, Rao-2, Rao-3)](rao.md): Three metaphor-less algorithms that use different strategies to guide the search process.
11
11
-[TLBO (Teaching-Learning-Based Optimization)](tlbo.md): A parameter-free algorithm inspired by the teaching-learning process in a classroom.
12
+
-[QOJAYA (Quasi-Oppositional Jaya)](qojaya.md): An enhanced version of Jaya that incorporates quasi-oppositional learning for improved convergence.
13
+
-[GOTLBO (Generalized Oppositional TLBO)](gotlbo.md): An enhanced version of TLBO that incorporates oppositional-based learning to improve convergence.
14
+
-[ITLBO (Improved TLBO)](itlbo.md): An enhanced version of TLBO with adaptive teaching factors and elitism for better performance.
15
+
-[Multi-objective TLBO](multiobjective_tlbo.md): An extension of TLBO for solving problems with multiple competing objectives.
12
16
13
17
## Algorithm Comparison
14
18
@@ -23,6 +27,10 @@ The following table provides a comparison of the key features of the implemented
23
27
| Rao-2 | Yes | Best, Worst, and Average fitness | Uses fitness comparison with average |
24
28
| Rao-3 | Yes | Best solution and phase factor | Decreasing influence of best solution over time |
25
29
| TLBO | Yes | Teacher-Student learning process | Two-phase approach with good performance on large-scale problems |
30
+
| QOJAYA | Yes | Jaya with quasi-oppositional learning | Enhanced exploration with improved convergence |
31
+
| GOTLBO | Yes | TLBO with oppositional-based learning | Better exploration and faster convergence |
32
+
| ITLBO | Yes | TLBO with adaptive teaching factors | Improved convergence with elite influence |
@@ -46,5 +54,9 @@ The convergence speed and solution quality of these algorithms can vary dependin
46
54
-**Rao-2**: Useful when the average fitness of the population provides meaningful guidance.
47
55
-**Rao-3**: Effective when you want a decreasing influence of the best solution over time.
48
56
-**TLBO**: Excellent for large-scale problems and when you want a two-phase approach to optimization.
57
+
-**QOJAYA**: When you need better exploration capabilities than standard Jaya, especially for multimodal problems.
58
+
-**GOTLBO**: When you need faster convergence than standard TLBO for complex problems.
59
+
-**ITLBO**: When you need better solution quality than standard TLBO, especially for constrained problems.
60
+
-**MO-TLBO**: When you have multiple competing objectives and need a set of trade-off solutions.
49
61
50
-
For most problems, it is recommended to start with Jayaor TLBO due to their parameter-free nature and good general performance, then try the other algorithms if needed.
62
+
For most single-objective problems, it is recommended to start with Jaya, TLBO, or their enhanced versions (QOJAYA, GOTLBO, ITLBO) due to their parameter-free nature and good general performance. For multi-objective problems, MO-TLBO is the recommended choice.
0 commit comments