Which algorithm can be used to solve this optimization problem
7 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Parikshit Sharma
am 4 Nov. 2017
Kommentiert: Parikshit Sharma
am 6 Nov. 2017
Hello everyone, i have to minimize a objective function and my constraint is linear having only one variable. Objective function is Non Linear, Non Quadratic, often involving sums of products having factorials and integer variable. So which algorithm should i use to solve my optimization problem. Please reply it will be really helpful for me, thanking you in advance!
0 Kommentare
Akzeptierte Antwort
John D'Errico
am 4 Nov. 2017
It is not clear what your problem is from the statement. Is this a problem with integer unknowns? If so, then that restricts the set of solvers that might be employed. You said this:
"and integer variable."
But you state that only in one spot. The comment about factorials may also indicate integer variables. But I cannot know this is true.
Factorials also suggests that you will next be asking why does my optimization fail because infs or NaNs were generated. Since we cannot see your problem, I cannot be sure as to whether this is a problem or not. But double precision arithmetic allows only a very limited set of factorials to be computed, without an overflow to inf.
The presence of a constraint also limits the set of solvers that may be employed.
The presence of integer variables, with a nonlinear objective, and a constraint prevents any of the tools in the optimization toolbox from applying.
I believe that the Global optimization toolbox permits solution with all of those requirements. So I would start there. But remember my earlier statement that your code will probably fail anyway, if you are computing factorials of the variables, due to an overflow.
If the search space is severely restricted due to that limit, then simple enumeration may be sufficient. Other approaches that involve logs can sometimes be applied. Or the fact that factorials often cancel out inside an expression is another thing that can be employed. But none of this is known, because we have not been shown your problem.
3 Kommentare
John D'Errico
am 5 Nov. 2017
Bearbeitet: John D'Errico
am 5 Nov. 2017
If there is only ONE unknown, then just use a loop. WTP? Test each value that is possible. Given that you have issues with factorials, you will never need to go too far anyway.
Weitere Antworten (0)
Siehe auch
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!