mixed binary interger linear programming

조회 수: 2 (최근 30일)
ahmed-wali
ahmed-wali 2013년 1월 28일
i'm trying to minimise the following function f=Sum of (ai*xi+150)*di for i between 1 and 20 were di is a binary number (o or 1) and xi greather or equal to zero subject to both equality and inequality. i'm finding difficult to include the binary numbers di which are multiplying the rest of the function.
many thanks
  댓글 수: 2
Matt J
Matt J 2013년 1월 28일
xi greather or equal to zero subject to both equality and inequality
And the "equality and inequality" constraints on the xi are all linear?
ahmed-wali
ahmed-wali 2013년 1월 28일
yes they are all linear. without the multiplying binary numbers (di) it will be a strait forward linear programming question. many thanks Matt

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

채택된 답변

Alan Weiss
Alan Weiss 2013년 1월 28일
I am sorry to say that, currently, there is no Optimization Toolbox solver that handles mixed integer linear programming.
There is a binary integer programming solver, bintprog, but it does not take any continuous variables, so is not suitable for your problem.
If you have Global Optimization Toolbox, you can try using ga for mixed integer programming. However, this is not a very robust solver. If you use it, be sure to follow the tip in the documentation and give finite upper and lower bounds for every component of your solution.
Good luck,
Alan Weiss
MATLAB mathematical toolbox documentation

추가 답변 (2개)

ahmed-wali
ahmed-wali 2013년 1월 29일
Thanks Alan

Matt J
Matt J 2013년 1월 29일
편집: Matt J 2013년 1월 29일
yes they are all linear. without the multiplying binary numbers (di) it will be a strait forward linear programming question.
It might at least be worth a try to enumerate all of the vertices of the feasible set of x, e.g., using
I've sometimes managed to get a tractable result for dimensions up to 20. You know that for each fixed binary vector d, the problem reduces to a linear program in x and a solution must therefore lie at one of the vertices. So, you can search over the vertices exhaustively for a solution.
Furthermore, for each fixed vertex, x, the minimizing binary variables di are easy to get analytically. Each di will be 1 whenever ai*xi+150<0 and 0 otherwise, since only those terms will tend to decrease the objective.

카테고리

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