2
$\begingroup$

I have a multivariable function (9 variables), and I want to find where the function records a minimum value. The function is as follows: https://i.stack.imgur.com/ygj4p.png

It also has a few constraints: https://i.stack.imgur.com/1FgPv.png https://i.stack.imgur.com/TIH4K.png https://i.stack.imgur.com/enyj4.png

I tried a brute force algorithm, but because of 9 variables, it has a really high time complexity, and will take a long time to run. Is there a much better way to do this?

$\endgroup$
1
  • $\begingroup$ For the brute force itself, have you considered reducing the search space? Like for l1, l2, l3, if you know their upper and lower bounds, you can introduce that. And the angle will always be between 0 to 360. Even in the range of that, you can take specific values like 0, 30, 45 etc. Obviously, this won't guarantee a global optimum. $\endgroup$ Apr 8 at 16:59

1 Answer 1

1
$\begingroup$

I'm not sure there is a way to guarantee a global optimum. If you are willing to settle for a local optimum, you could try a penalty method.

For instance, you could square the difference between left and right side of each constraint, sum the squared differences, multiply by a positive parameter value (which I will call the penalty weight) and add that to the original objective function. That gives you an unconstrained problem, on which you could try something like gradient descent. If the solution to which it converged violated any constraints by more than an acceptable amount of rounding error, you would increase the penalty weight and try again, until you got a solution that was close enough to satisfying all constraints.

$\endgroup$
1
  • $\begingroup$ Thanks for your help. $\endgroup$
    – KK29
    Apr 10 at 21:30

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.