How to solve such an optimization problem efficiently??

Which algorithms are needed to solve an optimization problem?

  • Please suggest name of some optimization algorithms.

  • Answer:

    Depends on your optimization problem. Here are some algorithms you can google. 1. Simplex method for linear optimization. 2. Nelder-Mead simplex method for nonlinear optimization. 3. Steepest descent. Gradient descent. 4. Conjugate gradient method (for positive definite problems). 5. Bi-conjugate gradient method (for not positive definite problems). 6. Newton's method for optimization. Create a system of equations based on the  derivatives. Also see secant method. 7. Bracketing methods - including the bisection algorithm. 8. Quasi-Newton methods - see BFGS algorithm and limited memory BFGS.     also Davidon-Fletcher-Powell, DFP. 9. Newton and quasi-newton methods with a confidence region. 10. Particle swarm. 11. Genetic algorithms. 12. Simulated anealing. There are more, I am sure. Some methods work better  for different situations. A combinations of methods may be used also. Some methods require only function values and some require derivatives or approximate the derivatives. Basically optimization of a differentiable function is finding roots of the derivatives, so you will see a lot of root finding methods applied to optimization problems. Keep in mind also the difference in local and global optimums when you apply algorithms.

Adrian Bennett at Quora Visit the source

Was this solution helpful to you?

Other answers

Eclipsoid Method / Mirror Descend / Self-Concordent Barrier / EM / Dynamic Programming / Convex Relaxation just some minor additions to Adrain Bennett's answer. :)

Tengyuan Terry Liang

This depends on what approach you wish to take as per the needs and requirements of your problem. Computationally, we can attack any optimization problem in three ways: 1. Exact programming  (DP, Branch and Bround, etc) 2. Heuristics 3. Metaheuristics (intelligent heuristics like PSO, Firefly) All the three categories have different classes of algorithms for optimization task.

Mohit Mishra

Its not an algorithm. It is a technique called "Dynamic programming". Here is a link- http://en.wikipedia.org/wiki/Dynamic_programming

Sourabh Bansal

Related Q & A:

Just Added Q & A:

Find solution

For every problem there is a solution! Proved by Solucija.

  • Got an issue and looking for advice?

  • Ask Solucija to search every corner of the Web for help.

  • Get workable solutions and helpful tips in a moment.

Just ask Solucija about an issue you face and immediately get a list of ready solutions, answers and tips from other Internet users. We always provide the most suitable and complete answer to your question at the top, along with a few good alternatives below.