Group Abstract Group Abstract

Message Boards Message Boards

1
|
3.6K Views
|
2 Replies
|
2 Total Likes
View groups...
Share
Share this post:

Local Optimization With Multiple Starting Points

Using Version 11's link to Ipopt, one can write a local minimization function which can take mulitple starting points and bounds on the variables and also return the Lagrange multipliers for the constraints and the variable bounds and the maximum constraint violation, as shown below

In[5]:= imin[
 x^2 - y^2, {Cos[x - y] >= 0.5}, {{x, -5, {.2, 1}, 
   5}, {y, -5, {-4, -1}, 5}}]

Out[5]= {{-24.9443, {x -> 0.235988, y -> -5.}, 
  "conslagmult" -> {0 <= -0.5 + 
       Cos[x - y] <= \[Infinity] -> -0.54499}, 
  "bndlagmult" -> {x -> {4.78912*10^-10, 5.25626*10^-10}, 
    y -> {10.472, 2.50587*10^-10}}, "maxconsviol" -> 4.84126*10^-8, 
  "Solve_Succeeded"}, {-9.37535, {x -> -3.9528, y -> -5.}, 
  "conslagmult" -> {0 <= -0.5 + 
       Cos[x - y] <= \[Infinity] -> -9.12861}, 
  "bndlagmult" -> {x -> {2.39404*10^-9, 2.79887*10^-10}, 
    y -> {2.0944, 2.50574*10^-10}}, "maxconsviol" -> 0, 
  "Solve_Succeeded"}}

Here are the corresponding results from FindMinimum

In[6]:= FindMinimum[{x^2 - y^2, 
  Cos[x - y] >= 0.5, -5 <= x <= 5, -5 <= y <= 5}, {{x, .2}, {y, -4}}]

Out[6]= {-24.9443, {x -> 0.235988, y -> -5.}}

In[7]:= FindMinimum[{x^2 - y^2, 
  Cos[x - y] >= 0.5, -5 <= x <= 5, -5 <= y <= 5}, {{x, 1}, {y, -1}}]

Out[7]= {-9.37535, {x -> -3.9528, y -> -5.}}
Attachments:
POSTED BY: Frank Kampas
2 Replies

Method -> "IPOPT" is an option for FindMinimum. I suspect it is the default for constrained problems.

POSTED BY: Frank Kampas

Thanks for sharing! Does FindMinimum also call (internally) Ipopt functionality? or is that completely different?

POSTED BY: Sander Huisman
Reply to this discussion
Community posts can be styled and formatted using the Markdown syntax.
Reply Preview
Attachments
Remove
or Discard