Mathematica 9 is now available
Services & Resources / Wolfram Forums
-----
 /
MathGroup Archive
2007
*January
*February
*March
*April
*May
*June
*July
*August
*September
*October
*Archive Index
*Ask about this page
*Print this page
*Give us feedback
*Sign up for the Wolfram Insider

MathGroup Archive 2007

[Date Index] [Thread Index] [Author Index]

Search the Archive

Re: Problems minimizing an overconstrained system

  • To: mathgroup at smc.vnet.net
  • Subject: [mg80683] Re: Problems minimizing an overconstrained system
  • From: Jean-Marc Gulliet <jeanmarc.gulliet at gmail.com>
  • Date: Tue, 28 Aug 2007 06:44:39 -0400 (EDT)
  • Organization: The Open University, Milton Keynes, UK
  • References: <fb0erc$eo6$1@smc.vnet.net>

Yaroslav Bulatov wrote:

> I'm getting problems using FindMinimum when there are multiple active
> constraints at the minimum point. Here's a test case that demonstrates
> this problem
> 
> FindMinimum[{Max[p[1], p[3]],
>  p[1] + p[2] + p[3] == 1 && 1/10 <= p[3] <= 4/5 && p[1] == 4/5 &&
>   p[2] == 1/10}, {p[1], p[2], p[3]}]
> 
> fails with " There are no points that satisfy the constraints", while
> different objective function with the same constraints works --
> 
> FindMinimum[{p[1] + p[3],
>  p[1] + p[2] + p[3] == 1 && 1/10 <= p[3] <= 4/5 && p[1] == 4/5 &&
>   p[2] == 1/10}, {p[1], p[2], p[3]}]
> 
> Is there any way around this behavior?

Your example is not representative of any failure from *FindMinimum* for 
what you posted is not a minimization problem:

All the "variables" but one have fixed values (p[1] == 4/5, always, and 
p[2] == 1/10, always) and the equation p[1] + p[2] + p[3] == 1 has for 
unique solution p[3] == 1/10, always.

Then, you can add whatever you want as "constraints" and "objectives", 
at best you will get p[1] == 4/5, p[2] == 1/10, and p[3] == 1/10.

Now, if you attempt to solve a genuine optimization problem, contrary to 
your claim, FindMinimum does not have any trouble handling "multiple 
active constraints" correctly (at least in the example below).

In[1]:= FindMinimum[{Max[p[1], p[3]],
   p[1] + p[2] + p[3] == 1 && 1/10 <= p[3] <= 4/5 && 0 < p[1] < 1 &&
    0 < p[2] < 1}, {p[1], p[2], p[3]}]

Out[1]= {0.1, {p[1] -> 0.0277053, p[2] -> 0.872295, p[3] -> 0.1}}

-- 
Jean-Marc


  • Prev by Date: Re: Plot "not working"
  • Next by Date: Re: Re: Mathematica 6.0.1, Crashes when I hit the ENTER key !!
  • Previous by thread: Problems minimizing an overconstrained system
  • Next by thread: Re: Problems minimizing an overconstrained system