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').
-
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 function's first derivative within the search space. The search space reduces with every iteration.
- Version available for Python:
-
Secant Method
- Description: The 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 the first derivative of the function.
- Version available for Python:
- Cubic Search Method
- Description: The 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:
I am pursuing my PhD from the Department of Mechanical Engineering, Indian Institute of Technology Indore. I am also available for freelancing in Optimization Algorithms, Machine Learning, and Deep Learning. My current research work is in time series analysis and classification algorithms. A list of my publications is available at Google Scholar