How to solve multi objective problem (Goal Programming) in Matlab

조회 수: 33 (최근 30일)
Vishal Sharma
Vishal Sharma 2017년 5월 23일
댓글: Walter Roberson 2019년 2월 16일
I have a multi objective problem (Goal Programming)...
Maximise Z = 3x + 4y
Minimise Z = 5x +6y
Subject to constraints
x + 4y less than equal to 20
6x + 3y less than equal to 10
Can we solve this problem in Matlab

답변 (3개)

Walter Roberson
Walter Roberson 2017년 6월 3일
No. The problem does not define how to decide between maximizing Z = 3x + 4y and minimizing Z = 5x + 6y .
The constraints do not establish a region in which there is a unique solution to maximizing the one and minimizing the other.
The constraints also do not rule out any x or y range: you can have an indefinitely positive x as long as you have a correspondingly negative y, and you can have an indefinitely positive y as long as you have a correspondingly negative x.

zainab embaby
zainab embaby 2017년 7월 17일
i want to clarify how solve that problem maximization and minimization in one objective by matlab program
  댓글 수: 3
zainab embaby
zainab embaby 2017년 7월 23일
how i edit slack variables in objective fuction
Walter Roberson
Walter Roberson 2017년 7월 23일
To solve a maximization in MATLAB, take the negative of the objective function and minimize that.
There is no general way to "solve two objectives or more in one objective by matlab". You need to decide how to weight satisfaction of the objectives based upon your needs.
Yesterday we had someone who wanted to simultaneously optimize a function that was non-linear over -1 to +1 (with +1 being better), with a second function that could be 0 to infinity (with infinity being better.) A change of .1 from =1 to -0.9 in the first function might be trivial; a change from 500 to 1000 in the second function might be trivial; a change from 0.98 to 0.99 in the first function might be hard and represent significant progress. There is no way that MATLAB can know how the changes in two functions matter relative to each other.
The cases of [-1 +1] compared to [0 +inf) are difficult to automatically compare in any way. If you have two finite ranges then you can scale and translate to produce two [0 to 1] ranges to compare the two. You cannot do that if one of the ranges is infinite: scaling by infinity gives you 0 at every finite value. And dealing with two potentially infinite quantities... how do you compare their relative importances?
Your particular situation involves two functions that are potentially infinite, so no automatic scaling is possible. The two functions work opposite to each other: the more negative one is, the more positive the other can be, and vice versus. Maximizing one forces it toward infinity, and how do you balance that against trying to maximize the other one?
The only semi-coherent guess would be to ask that the two functions be equal if you cannot maximize them simultaneously. And if you ask that then you can reduce down to a single equation.

댓글을 달려면 로그인하십시오.


zainab embaby
zainab embaby 2017년 7월 23일
i want to know formulation deviations simplex method by matlab solver.
  댓글 수: 3
Walter Roberson
Walter Roberson 2017년 7월 23일
In the past, linprog() supported a simplex algorithm. It does not do so in current releases, but current releases do support a dual-simplex algorithm. https://www.mathworks.com/help/optim/ug/linprog.html#inputarg_options
fminsearch uses Nelder-Mead simplex.
For more information on simplex searching in Mathwork-provided optimizers, see the discussions at https://www.mathworks.com/matlabcentral/answers/287850-improving-nelder-mead-optimization-by-genetic-algorithms-and-simulated-annealing-concepts
Walter Roberson
Walter Roberson 2017년 7월 23일
"i ask and i need answer"
You left the question sit for over a month and a half, and then you suddenly start pushing for rapid response, on what is a Sunday afternoon in the timezone of most of the active volunteers. :( If you need that kind of rapid response at inconvenient hours then you should be hiring a consultant and paying priority prices.

댓글을 달려면 로그인하십시오.

카테고리

Help CenterFile Exchange에서 Solver Outputs and Iterative Display에 대해 자세히 알아보기

태그

Community Treasure Hunt

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

Start Hunting!

Translated by