Re: About linear programming
- To: mathgroup at smc.vnet.net
- Subject: [mg126241] Re: About linear programming
- From: Dana DeLouis <dana01 at me.com>
- Date: Thu, 26 Apr 2012 05:32:02 -0400 (EDT)
- Delivered-to: l-mathgroup@mail-archive0.wolfram.com
> I attempt to solve these linear programming problems in Mathematica,
> but its result is "Maximize::natt: The maximum is not attained at any
> point satisfying the given constraints", why?
Hi. I believe the problems are caused by being Unbounded in the Negative direction.
Just add a lower limit that each variable is >= 0.
obj = 5 Subscript[x,1]+4 Subscript[x,2]+3 Subscript[x,3] ;
const = {
Subscript[x,1]+Subscript[x,3]<=15,
Subscript[x,2]+2 Subscript[x,3]<=25,
Subscript[x,1]>=0,
Subscript[x,2]>=0,
Subscript[x,3]>=0}
var = {
Subscript[x,1],
Subscript[x,2],
Subscript[x,3]}
Maximize[{obj ,const},var]
{175, {Subscript[x, 1]->15, Subscript[x, 2]->25, Subscript[x, 3]->0}}
When one has many variable as in your example #2, try including Thread, as in this small example...
Thread[var >= 0]
{Subscript[x, 1]>=0,Subscript[x, 2]>=0,Subscript[x, 3]>=0}
Don't know if you would find this useful:
Although LinearProgramming is a Minimizing function, one can multiply the objective by -1 to reverse the logic.
This changes your Maximizing problem into one of Minimizing.
obj ={5,4,3};
LinearProgramming[ - obj, {{1,0,3},{0,1,2}}, {{15,-1},{25,-1}} ]
{15,25,0}
obj . %
175
= = = = = = = = = =
Good luck. HTH :>)
Dana DeLouis
Mac & Math 8
= = = = = = = = = =
On Apr 25, 12:35 am, Marcela Villa Marulanda <mavim... at gmail.com> wrote:
> Hi,
>
> I attempt to solve these linear programming problems in Mathematica,
> but its result is "Maximize::natt: The maximum is not attained at any
> point satisfying the given constraints", why? I've solved this problem
> in other applications and the solution is achieved.
>
> I don't know the reasons about it. I'll thank to whom give me some
> clues!
>
> Problem 1
>
> Maximize[{5 Subscript[x, 1] + 4 Subscript[x, 2] + 3 Subscript[x, 3],
> Subscript[x, 1] + Subscript[x, 3] <= 15 &&
> Subscript[x, 2] + 2 Subscript[x, 3] <= 25}, {Subscript[x, 1],
> Subscript[x, 2], Subscript[x, 3]}];
>
> Problem 2
>
> Maximize[{30 Subscript[x, 1] + 40 Subscript[x, 2] +
> 20 Subscript[x, 3] + 10 Subscript[x, 4] - 15 Subscript[x, 5] -
> 20 Subscript[x, 6] - 10 Subscript[x, 7] - 8 Subscript[x, 8],
> 0.3 Subscript[x, 1] + 0.3 Subscript[x, 2] + 0.25 Subscript[x, 3] +
> 0.15 Subscript[x, 4] <= 1000 &&
> 0.25 Subscript[x, 1] + 0.35 Subscript[x, 2] +
> 0.3 Subscript[x, 3] + 0.1 Subscript[x, 4] <= 1000 &&
> 0.45 Subscript[x, 1] + 0.5 Subscript[x, 2] + 0.4 Subscript[x, 3] +
> 0.22 Subscript[x, 4] <= 1000 &&
> 0.15 Subscript[x, 1] + 0.15 Subscript[x, 2] +
> 0.1 Subscript[x, 3] + 0.05 Subscript[x, 4] <= 1000 &&
> Subscript[x, 1] + Subscript[x, 5] == 800 &&
> Subscript[x, 2] + Subscript[x, 6] == 750 &&
> Subscript[x, 3] + Subscript[x, 7] == 600 &&
> Subscript[x, 4] + Subscript[x, 8] == 500}, {Subscript[x, 1],
> Subscript[x, 2], Subscript[x, 3], Subscript[x, 4], Subscript[x, 5],
> Subscript[x, 6], Subscript[x, 7], Subscript[x, 8]}]