Integer optimization returns decimal numbers

Hello!
I am working with a problem where I have implemented an integer linear programming optimization. The optimization variables are all integers with the following setup:
P = optimvar('P', 24,5,'Type','integer','LowerBound',0,'UpperBound',5);
alfa = optimvar('alfa' ,24,5,'Type','integer','LowerBound',0,'UpperBound',1);
I have added an objective function and a set of active constraints, and an optimal solution can be found in every iterations of my algorithm.
Although, in the results I can notice that the optimization variables sometimes are chosen as decimal numbers, e.g. 1e-5 or 1e-15.
How come this can happen?
BR
Johannes

回答 (1 件)

Alan Weiss
Alan Weiss 2023 年 4 月 3 日

0 投票

The intlinprog solver (which solve calls internally for MILP problems) does not necessarily return or use internally exact integers. If you want exact integers, round your results, which might result in some linear constraints becoming slightly infeasible. See Limitations.
Alan Weiss
MATLAB mathematical toolbox documentation

カテゴリ

ヘルプ センター および File ExchangeProblem-Based Optimization Setup についてさらに検索

製品

リリース

R2022b

質問済み:

2023 年 4 月 3 日

回答済み:

2023 年 4 月 3 日

Community Treasure Hunt

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

Start Hunting!

Translated by