Nonlinear optimization with branching solution space
1 view (last 30 days)
Show older comments
Consider a nonlinear optimization problem with nonlinear constraints, in which the solution space branches, such that the relevant optimization parameters and their constraints depend upon the branch. In total the problem has many optimization parameters however not all parameters are possible together. The primary parameter is an integer 'x' = 0-10 (although it could be treated as continuous). The error function f(x) depends also upon other parameters as follows. If x < 10 the error function is f(x, c, d = 0) where 'c' is a vector of continuous parameters with constraints, elseif x = 10 the error function is f(x, c = 0, d) where 'd' is a different vector of continuous parameters with constraints.
It seems simplest to first solve for x assuming c = 0 and d = 0, then solve for 'c' and 'd' depending upon the branch, i.e., depending upon whether x < 10 or x = 10, but if 'c' or 'd' are nonzero, the data are affected and the solutions for x are incorrect.
Two questions please;
1) Is this problem even well-posed as stated?
2) Does optimization or global optimization have a tool that can solve this?
0 Comments
Accepted Answer
John D'Errico
on 15 May 2024
Edited: John D'Errico
on 15 May 2024
Just solve 11 distinct problems, each of them continuous. Use a loop, setting x to each of the 11 possible values. Save each solution, then choosing the solution that makes you happy.
Is there a solver that can handle it with x as a variable? Maybe GA, as GA is pretty toleranct off all sorts of crap. But this is a pretty messy thing with x in there. Oncew you remove x as a variable however, solving the 11 distinct problems, then things become well-posed from what you have said. So make it easy, and remove x as a factor at all.
0 Comments
More Answers (0)
See Also
Categories
Find more on Problem-Based Optimization Setup in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!