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.

Réponses (2)

Matt J
Matt J le 7 Nov 2015
Modifié(e) : Matt J le 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 commentaires

Jan
Jan le 7 Nov 2015
Modifié(e) : Walter Roberson le 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 le 8 Nov 2015
Modifié(e) : Walter Roberson le 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.…'

Connectez-vous pour commenter.

Alan Weiss
Alan Weiss le 9 Nov 2015
Modifié(e) : Alan Weiss le 9 Nov 2015

0 votes

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

Catégories

En savoir plus sur Linear Programming and Mixed-Integer Linear Programming dans Centre d'aide et File Exchange

Question posée :

Jan
le 7 Nov 2015

Modifié(e) :

le 9 Nov 2015

Community Treasure Hunt

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

Start Hunting!

Translated by