How to code a multi-objective mixed integer linear (MILP) programming problem in MATLAB?

30 ビュー (過去 30 日間)
I have an MILP model with two objective functions, constarints, and upper and lower limits.
Any helpful examples of similar codes would be greatly appreciated.
Thanks.
  3 件のコメント
Summer
Summer 2019 年 4 月 17 日
I have 2 objective functions; one to be minimized while maximizing the other one. I also have a long list of constraints and bounds to be implemented and was wondering if MATLAB is capable of solving multi-objective optimization problems. I need some examples of codes that have dealt with the same problem that I have.
Thanks.
Suganthi D
Suganthi D 2022 年 6 月 23 日
could you please send me the code of mixed integer linear programming, because i am using this algorithm.
code a multi-objective mixed integer linear (MILP)

サインインしてコメントする。

採用された回答

Alan Weiss
Alan Weiss 2019 年 4 月 17 日
You might find this example to be relevant. Instead of using fgoalattain, you can use intlinprog on an objective function that is a weighted sum of your two objective functions:
F = alpha*f1 + (1-alpha)*f2; % F is the objective, alpha is between 0 and 1
Remember to negate the objective that you are trying to maximize.
Alan Weiss
MATLAB mathematical toolbox documentation
  2 件のコメント
Paul Safier
Paul Safier 2021 年 7 月 25 日
Can this be extended to >2 objectives?
Alan Weiss
Alan Weiss 2021 年 7 月 25 日
Of course. Use a weight vector alpha with coefficients that are nonnegative and add up to 1.
Alan Weiss
MATLAB mathematical toolbox documentation

サインインしてコメントする。

その他の回答 (1 件)

Ashfaq Ahmed
Ashfaq Ahmed 2020 年 8 月 5 日
There is another approach other than weighted sum approach as been suggested above. In weighted sum approach usually we provide weights to the functions as input, which sometimes seems unfair. You can write your objective functions in fractions, like f1/f2. Now you have to decide if the frqction need to be mqximized or minimised by looking at the individual functions. For example min f1 and max f2. And in the fraxtion, when you minimise the numerator and at the same time maximise the denominator, it means overall fraction will be minimised. There is only one problem with this thing....the fractional programming in non linear and you cannot use the linear optimizers to solve it. But there are non linear solvers too. Otherwise there are methods to linearization the fractional programming.
  2 件のコメント
Paul Safier
Paul Safier 2021 年 7 月 25 日
What if both of your objectives are to be minimized? For example I want to minimize (z1 + z2) and then minimize (z3 + z4).
Ashfaq Ahmed
Ashfaq Ahmed 2021 年 7 月 25 日
Hi Paul,
If you have two function f1 and f2 and you want to minimize both. In that case, if you use the fractionl programming approach. You write the fraction as f1/f2. It is better if you convert one of the function to maximum, like if you rewrite your fraction as -f1/f2, then it would be mean you want to maximize -f1 and you want to minimize f2.
Otherwise, even if you want to solve f1/f2, still there are multiple cases, For example,
  1. if f1 is not changing and f2 is minimizing, the fraction will be minimized.
  2. If f2 is not changing and f1 is minimizing, the fraction will be minimized.
  3. If both are minimizing, the fraction will be minimized. But it is conditional.
Therefore, the better solution is to put a minus sign with one of the function.

サインインしてコメントする。

カテゴリ

Help Center および File ExchangeMultiobjective Optimization についてさらに検索

製品

Community Treasure Hunt

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

Start Hunting!

Translated by