[Date Index]
[Thread Index]
[Author Index]
Re: Constrained Optimization
*To*: mathgroup at smc.vnet.net
*Subject*: [mg57710] Re: Constrained Optimization
*From*: Maxim <ab_def at prontomail.com>
*Date*: Sun, 5 Jun 2005 04:17:52 -0400 (EDT)
*References*: <d7mj30$bqm$1@smc.vnet.net> <d7pb7q$t80$1@smc.vnet.net> <d7rk7r$blu$1@smc.vnet.net>
*Sender*: owner-wri-mathgroup at wolfram.com
On Sat, 4 Jun 2005 07:11:55 +0000 (UTC), Caspar von Seckendorff
<seckendorff at alphatec.de> wrote:
> Thanks to all for your replies,
>
> Your're right "y" was meant to be an unknown constant. As I understand
> it know, Maximize[] does some sort of numerical optimization. I thought
> it would be able to use some concave Programming logic (like
> Kuhn-Tucker) to solve this problem for me, returning a list of possible
> optima in symbolic form together with the neccessary constraints... But
> I admit that maybe this is to much to ask for ;-)
>
> Greetings,
>
> -Capar
Here's how you can reformulate your problem:
In[1]:=
Reduce[ForAll[x, 1/5 <= x <= 2/5, (x - x^2)*y <= a], {y, a}]
Out[1]=
(y <= 0 && a >= (4*y)/25) || (y > 0 && a >= (6*y)/25)
This tells you that if you want to find an upper bound that may depend on
y, then for y>0 you can take any value greater or equal to 6/25*y. I'm not
sure if this formulation is what you were looking for though. Maximize
just solves a different problem, but it also works by performing the
decomposition of the region; it doesn't use the numerical methods employed
by NMaximize.
Here's one interesting application of this technique. The example from the
Maximize documentation shows how to solve the problem of finding the
smallest circle centered at the origin and containing the set of points
x^2 + y^3 == 1 && y >= 0. Now suppose that we want to solve a more general
problem, when we can vary the position of the circle as well. First we
find the lower bound for the radius as a function of the position of the
center on the y axis:
In[2]:=
Reduce[ForAll[{x, y}, x^2 + y^3 == 1 && y >= 0, x^2 + (y - y0)^2 <= a]]
Out[2]=
(y0 <= -(1/2) && a >= 1 - 2*y0 + y0^2) || (Inequality[-(1/2), Less, y0,
LessEqual, 1/8] && a >= (1/27)*(29 - 18*y0 + 27*y0^2) + (2/27)*Sqrt[1 -
18*y0 + 108*y0^2 - 216*y0^3]) || (y0 > 1/8 && a >= 1 + y0^2)
And then minimize this function:
In[3]:=
Minimize[{a, %}, {a, y0}]
Out[3]=
{65/64, {a -> 65/64, y0 -> 1/8}}
The answer is Sqrt[65/64]. (There remains a question of what would be the
simplest way to show that the optimum is achieved on the y axis.)
Maxim Rytin
m.r at inbox.ru
Prev by Date:
**Re: Re: Re: simple set operations**
Next by Date:
**Finding Position in an ordered list**
Previous by thread:
**Re: Re: Constrained Optimization**
Next by thread:
**Re: Constrained Optimization**
| |