1
$\begingroup$

I have an objective function

z = 4 x + 2 y

with constraints of

x + 2 y >= 4 && 3 x + y >= 7 && -x + 2 y <= 7 && x >= 0 && y >= 0

(Answer for this particular set of constraints should show a minimum of 10 and no maximum value or that the max is a function z = 4 x, either are fine.)

I tried using Solve :

Solve[z == 4 x + 2 y && x + 2 y >= 4 && 3 x + y >= 7 && -x + 2 y <= 7 && x >= 0 && y >= 0, Reals]

which outputs:

  Out[2]= {{x -> ConditionalExpression[1/4 (-2 y + z), 
          (10 < z <= 12 && 28 + 2 y - 3 z <= 0 && -16 + 6 y + z >= 0) || 
          (12 < z <= 16 && -16 + 6 y + z >= 0 && -28 + 10 y - z <= 0) || 
          (z > 16 && -28 + 10 y - z <= 0 && y >= 0)]},
          {x -> 2, y -> 1, z -> 10}}

This is fine and dandy for the particular example since the second part has the minimum value I was looking for, but for my application, the coefficients will be able to be changed by the user. While testing it, sometimes Solve only had the ConditionalExpression when I expected it to show the z minimum value similar to the above output.

So my question is this. Am I using Solve incorrectly and I'm just missing something, or is there a different function that would be more suitable for me to use to get a minimum and/or maximum value for z?

$\endgroup$

1 Answer 1

4
$\begingroup$

Use Minimize. It will give you the analytical solution:

Minimize[{4 x + 2 y, 
  x + 2 y >= 4 && 3 x + y >= 7 && -x + 2 y <= 7 && x >= 0 && 
   y >= 0}, {x, y}]

Output:

{10,{x->2,y->1}}

For Problems that require heuristical optimization or can't be solved analytically, use FindMinimum

$\endgroup$
1
  • $\begingroup$ Thank you, this worked. I have to check both max and min, so for Maximize, I had to wrap with Quiet since there's an error when it is unbounded. $\endgroup$
    – J_Nat
    Commented Aug 2, 2016 at 14:34

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