How to force intlinprog to give integer solution ?

The following command
x=intlinprog([0; 0; 0],[1 2 3],-[0 2 0;0 1 2;3 1 0],-[6;13;11],[],[],[0;0;0],[])
produced x=[2.6667 3 5]' which is not integer.

Antworten (2)

Matt J
Matt J am 7 Nov. 2015
Bearbeitet: Matt J am 7 Nov. 2015
I think it's a bug. If your goal is simply to find some feasible solution to the constraints, I think you can workaround the bug with any nonzero f vector, e.g.,
>> x=intlinprog([1e-10,0,0],[1 2 3],-[0 2 0;0 1 2;3 1 0],-[6;13;11],[],[],[0;0;0],[]);
x =
0
11
1

3 Kommentare

Jan
Jan am 7 Nov. 2015
Bearbeitet: Walter Roberson am 7 Nov. 2015
Thanks for the prompt answer, but try the following real optimization:
x=intlinprog([0; 1; 0],[1 2 3],-[0 2 0;0 1 2;3 1 0],-[6;13;11],[],[],[0;0;0],[]);
This gives x=[2.6667 3 5]'. Moreover, I have no idea how to find a proper f in a bigger problem.
What is the exitflag being returned? You do not appear to be recording the exitflag so you do not know what the output represents.
Jan
Jan am 8 Nov. 2015
Bearbeitet: Walter Roberson am 8 Nov. 2015
Walter,
[x,y,exitflag,output]=intlinprog([0;1;0],[1 2 3],-[0 2 0;0 1 2;3 1 0],-[6;13;11],[],[],[0;0;0],[])
gives:
Optimal solution found.
Intlinprog stopped at the root node because the objective value is within a gap tolerance of the
optimal value, options.TolGapAbs = 0 (the default value). The intcon variables are
integer within tolerance, options.TolInteger = 1e-05 (the default value).
x =
2.6667
3.0000
5.0000
y =
3
exitflag =
1
output =
relativegap: 0
absolutegap: 0
numfeaspoints: 1
numnodes: 0
constrviolation: 0
message: 'Optimal solution found.…'

Melden Sie sich an, um zu kommentieren.

Alan Weiss
Alan Weiss am 9 Nov. 2015
Bearbeitet: Alan Weiss am 9 Nov. 2015

0 Stimmen

I think that this must be a bug in your Optimization Toolbox™ version. Please report the issue to technical support. There might be a workaround.
Alan Weiss
MATLAB mathematical toolbox documentation

Kategorien

Mehr zu Linear Programming and Mixed-Integer Linear Programming finden Sie in Hilfe-Center und File Exchange

Gefragt:

Jan
am 7 Nov. 2015

Bearbeitet:

am 9 Nov. 2015

Community Treasure Hunt

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

Start Hunting!

Translated by