フィルターのクリア

Incorporating a Max in optimization objective

5 ビュー (過去 30 日間)
cchen
cchen 2016 年 11 月 30 日
回答済み: Mario CASTRO GAMA 2023 年 10 月 1 日
I'm trying to use intlinprog to solve a mixed integer linear program where the objective function has a max function embedded in it. For example, the objective may be of the form:
5*max(10-x, 0)+x
The objective is clearly convex and actually piecewise linear. How can I incorporate this in the form
f'x
so as to be able to use intlinprog?
  3 件のコメント
cchen
cchen 2016 年 12 月 5 日
編集済み: cchen 2016 年 12 月 5 日
I see what you are saying. Currently, I'm using cvx to model a larger convex mixed-integer problem, which then calls Mosek. It is slow however, and I was hoping to improve upon this by using a Matlab solver. I thought I could use intlinprog since the cvx input to Mosek is an integer linear program, but reading the model, I cannot fully understand the reformulation.
Oskar Adolfson
Oskar Adolfson 2017 年 10 月 12 日
I think it is false to say that a convex function is not linear. A convex function can actually be linear, but it doesn't have to be. Try to verify yourself by testing if y = ax is convex.

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

回答 (2 件)

Matt J
Matt J 2017 年 10 月 12 日
Splitting this piecewise linear function into regions where it is a linear function is akin to knowing the minimum solution in the first place, so I don't see what use this has.
Not sure why that approach isn't worth pursuing. For this example, you simply add the constraint x<=10 for the first region and x>=10 for the second.

Mario CASTRO GAMA
Mario CASTRO GAMA 2023 年 10 月 1 日
You can try to use the method presented in this video.

カテゴリ

Help Center および File ExchangeGet Started with Optimization Toolbox についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by