Incorporating a Max in optimization objective

조회 수: 3 (최근 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 CenterFile Exchange에서 Get 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