How to set stopping criteria in mixed integer programming?
4 ビュー (過去 30 日間)
古いコメントを表示
Hi guys~
Recently, I am using mixed integer programming to solve a problem.
Actually, I want to let it stop when Relative gap is less than 2%.
So I set according to https://www.mathworks.com/help/optim/ug/intlinprog.html#btv2x05
options = optimoptions(@intlinprog,'RelativeGapTolerance',0.2,'Display','iter')
[x,fval]=intlinprog(f,iint,A,b,[],[],lb,ub,[],options);
Yet, it seems like this setting doesn't work. It have been running for 30min...
Any suggetions? Thank you very much!
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/621378/image.jpeg)
1 件のコメント
Derya
2021 年 5 月 20 日
I assume 'RelativeGapTolerance',0.02, for the output underneath the setting of options.
採用された回答
Derya
2021 年 5 月 20 日
Hello Frank,
The stopping tolerance is automatically modified to
tolerance = min(1/(1+|L|), RelativeGapTolerance)
As described in https://www.mathworks.com/help/optim/ug/intlinprog.html#btv2x05.
I estimate the lower bound, L, for your problem at around 96, so intlinprog tolerance for stopping on relative gap would be around 0.01, i.e. 1%. It looks like intlinprog cannot reduce the gap from 1.54% in the following 30 minutes.
You have couple of options:
- Increase AbsoluteGapTolerance, e.g. to 2.
- Divide the objective function by a factor 2 or more, perhaps 10.
- Set CutGeneration and/or Heuristics to 'intermediate' and see if this reduces the time to solution.
Kind Regards,
Derya
その他の回答 (0 件)
参考
カテゴリ
Help Center および File Exchange で Get Started with Optimization Toolbox についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!