Optimization-Techniques

There are many optimization algorithms described in the book "Optimization of Engineering Design: Algorithms and Examples" by Prof. Kalyanmo
1.3K Downloads
Updated 4 Mar 2019

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

  1. 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:
  2. 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:
  3. 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:
  4. 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:
  5. 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:
  6. 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:
  7. 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:
  8. Newton-Raphson Method

    • Description: It is a very simple gradient-based method, suitable for unconstrained optimization problems.
    • Version available for Python:
  9. 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:
  10. 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:
  1. 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

View Optimization-Techniques on File Exchange

Cite As

Soumyabrata Bhattacharjee (2024). Optimization-Techniques (https://github.com/Soumyabrata111/Optimization-Techniques), GitHub. Retrieved .

MATLAB Release Compatibility
Created with R2022a
Compatible with any release
Platform Compatibility
Windows macOS Linux
Categories
Find more on Get Started with Optimization Toolbox in Help Center and MATLAB Answers

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Versions that use the GitHub default branch cannot be downloaded

Version Published Release Notes
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:
(i) Bounding Phase Method
(ii) Exhaustive Search Method
(iii) Interval Halving Method
(iv) Newton Raphson Method

1.0.2

The total algorithms included are now:
(i) Bounding Phase Method
(ii) Exhaustive Search Method
& (iii) Interval Halving Method

1.0.1

In the first update, 'Bounding Phase Method' has also been included
See release notes for this release on GitHub: https://github.com/Soumyabrata111/Optimization-Techniques/releases/tag/v1.0.1
See release notes for this release on GitHub: https://github.com/Soumyabrata111/Optimization-Techniques/releases/tag/v1.0.1

1.0.0

To view or report issues in this GitHub add-on, visit the GitHub Repository.
To view or report issues in this GitHub add-on, visit the GitHub Repository.