Incorporating a Max in optimization objective
Ältere Kommentare anzeigen
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 Kommentare
Brendan Hamm
am 30 Nov. 2016
Bearbeitet: Brendan Hamm
am 30 Nov. 2016
A convex function is not linear, so intlinprog will not solve it. 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.
What is the need for an optimization routine to solve this anyhow? Are you trying to expand the concept to a larger problem?
Oskar Adolfson
am 12 Okt. 2017
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.
Antworten (2)
Matt J
am 12 Okt. 2017
0 Stimmen
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
am 1 Okt. 2023
0 Stimmen
You can try to use the method presented in this video.
Kategorien
Mehr zu Get Started with Optimization Toolbox finden Sie in Hilfe-Center und File Exchange
Produkte
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!