Optimization-Techniques
Optimization Techniques
This repository contains implementations of various optimization techniques outlined in the book "Optimization of Engineering Design: Algorithms and Examples" by Prof. Kalyanmoy Deb. Each technique provides a visual representation by plotting both the function and the approximate minimum point (marked as 'o').
Techniques Included
-
Exhaustive Search Method
- Description: The exhaustive search method is a brute-force approach to finding the minimum of a function within a specified range.
- Versions available for both Python and MATLAB:
-
Golden Section Search
- Description: The Golden Section Search is an iterative method that narrows down the search space to find the minimum of an unimodal function.
- Versions available for both Python and MATLAB:
-
Bounding Phase Method
- Description: The Bounding Phase Method is an optimization technique that involves narrowing down the search interval to find the minimum of an unimodal function.
- Versions available for both Python and MATLAB:
-
Interval Halving Method
- Description: The Interval Halving Method is an iterative approach for finding the minimum of a function within a specified interval.
- Versions available for both Python and MATLAB:
-
Fibonacci Search Method
- Description: The Fibonacci Search Method is another iterative approach for finding the minimum of a function within a specified interval.
- Version available for Python:
-
Quadratic Estimation Method
- Description: The Quadratic Estimation Method is the simplest of all the polynomial interpolation approaches for finding the minimum of a function within a specified interval.
- Version available for Python:
-
Successive Quadratic Estimation Method
- Description: It is the more refined form of the Quadratic Estimation Method, which iteratively finds the minimum of a function within a specified interval.
- Version available for Python:
-
Newton-Raphson Method
- Description: It is a very simple gradient-based method, suitable for unconstrained optimization problems.
- Version available for Python:
-
Bisection Method
- Description: This version of the Bisection Method, does not need the two endpoints, of the search space to have function values of opposite values. Rather, the algorithm is based on the first derivative of the function within the search space. The search space reduces with every iteration.
- Version available for Python:
-
Secant Method
- Description: Secant Method is a modification of the Bisection Method. Here the point 'z', of the search space, is not the mid-point, rather it depends on the values of first derivative of the function.
- Version available for Python:
- Cubic Search Method
- Description: Cubic Search Method is used to find the minimum of an unimodal function, iteratively. It is similar to the successive quadratic point-estimation method.
- Versions available for both Python and MATLAB:
About the Author
I am currently working as an Assistant Professor in the Department of Mechanical Engineering at Mandsaur University. If you come across any bugs or have suggestions for improvement, feel free to reach out at soumyabrata111@gmail.com. I am also available for freelancing work in the field of Optimization Algorithms, Machine Learning, and Deep Learning. My current research work is in time series analysis and classification algorithms.
Get the Latest MATLAB Files
Citation pour cette source
Soumyabrata Bhattacharjee (2024). Optimization-Techniques (https://github.com/Soumyabrata111/Optimization-Techniques), GitHub. Extrait(e) le .
Compatibilité avec les versions de MATLAB
Plateformes compatibles
Windows macOS LinuxCatégories
Tags
Remerciements
A inspiré : Optimization Algorithm, Multi-objective RIME Algorithm (MORIME)
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!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.
Les versions qui utilisent la branche GitHub par défaut ne peuvent pas être téléchargées
Version | Publié le | Notes de version | |
---|---|---|---|
1.3 | Now Cubic Search Method has also been added |
|
|
1.2 | Started updating Gradient-based methods now |
|
|
1.1.904 | Now Successive Quadratic Estimation Method and Newton-Raphson Method have also been added |
|
|
1.1.903 | Now Quadratic Estimation Method has also been added |
|
|
1.1.902 | Now releasing updated code for Fibonacci Search Method |
|
|
1.1.901 | Included upgraded code for Interval Halving Method now. |
|
|
1.1.90 | Bounding Phase method has been updated now. |
|
|
1.1.9 | Golden Section Search method for both python and matlab has been updated now. |
|
|
1.1.8 | The old code has been updated to replace the feval function, as that creates some security concerns. Now the code uses a function handle consisting of the expression that needs to be minimised. |
|
|
1.1.7 | Now, Golden Section Search Method has also been introduced. |
|
|
1.1.6 | Now, Fibonacci Search Method has also been included. |
|
|
1.1.5 | Now Cubic Search Method has also been added. If you find it useful then please leave a comment & rate the repo. If you find any bug, then please point that out. I can be reached at s.bhattacharjee@rgi.edu.in |
|
|
1.1.4 | Now, Bisection Method is also added. |
|
|
1.1.3 | With the current release, the multi-variable problems can also be solved now. For multi-variable problems, use the Gradient Decent Algorithm. |
|
|
1.0.3 | The total methods included now are as follows:
|
|
|
1.0.2 | The total algorithms included are now:
|
|
|
1.0.1 | In the first update, 'Bounding Phase Method' has also been included
|
||
1.0.0 |
|