Optimization-Techniques

There are many optimization algorithms described in the book "Optimization of Engineering Design: Algorithms and Examples" by Prof. Kalyanmo
다운로드 수: 1.2K
업데이트 날짜: 2019/3/4

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

인용 양식

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

MATLAB 릴리스 호환 정보
개발 환경: R2022a
모든 릴리스와 호환
플랫폼 호환성
Windows macOS Linux
카테고리
Help CenterMATLAB Answers에서 Get Started with Optimization Toolbox에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

GitHub 디폴트 브랜치를 사용하는 버전은 다운로드할 수 없음

버전 게시됨 릴리스 정보
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

이 GitHub 애드온의 문제를 보거나 보고하려면 GitHub 리포지토리로 가십시오.
이 GitHub 애드온의 문제를 보거나 보고하려면 GitHub 리포지토리로 가십시오.