Converting a maximizing problem into a minimizing program using linprog

11 visualizaciones (últimos 30 días)
Hi guys,
i have a question about the function linprog.
I want to use this function, and according to the matlab database the function linprog can be applied so that it solves for:
In my case i want to maximize the vector x. Can Anyone help me and tell me how to convert it? What effects will it have on the A matrix and the upper / lower bounds?
Thanks a lot!
Kev

Respuesta aceptada

Bruno Luong
Bruno Luong el 5 de Sept. de 2020
You just need to reverse the sign of f. Don't touch the rest.
  6 comentarios
Bruno Luong
Bruno Luong el 7 de Sept. de 2020
Editada: Bruno Luong el 7 de Sept. de 2020
For a canonic form of LP
x = argmax f'*x
such that A*x <= b, x >= 0
(Method 3) It is also possible to solve the DUAL problem (2)
y = argmin b'*x
such that (-A'*y) <= -f, y >= 0
and finally x is retrieved as
x = Lagrange multiplier of (2)
  • f => b
  • A = -A'
  • b => -f
  • x => Lagrange multiplier of (2)
Example:
f = [6; 14; 13];
A = [0.5 2 1;
1 2 4];
b = [24; 60];
% Primal argmax, method 1
x = linprog(-f, A, b, [], [], zeros(size(f)), [])
% Primal argmax, method 2
x = linprog(f, -A, b, [], [], [], zeros(size(f)));
x = -x
% Dual formulation, method 3
[y, ~, ~, ~, lambda] = linprog(b, -A', -f, [], [], zeros(size(b)), []);
x = lambda.ineqlin
It is also possible formulate the dual for general case, but it gets a bit messy.

Iniciar sesión para comentar.

Más respuestas (1)

Alan Stevens
Alan Stevens el 5 de Sept. de 2020
Minimize -x. The maximum of x will then be the negative of this.
  2 comentarios
Kevin Wang
Kevin Wang el 5 de Sept. de 2020
do you mean that f = -1 then?
How will my constraint vector b be in the minimizing case?
Thanks!
Alan Stevens
Alan Stevens el 5 de Sept. de 2020
Unfortunately, I don't have linprog available to check, but have a look at https://uk.mathworks.com/help/optim/examples/maximize-long-term-investments-using-linear-programming.html where there is a maximizing problem that uses linprog.

Iniciar sesión para comentar.

Categorías

Más información sobre Solver Outputs and Iterative Display en Help Center y File Exchange.

Etiquetas

Productos


Versión

R2019a

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by