Lingo實現求解非線性整數規划


 1 model: !模型;
 2 !集的定義,名稱 /成員/ : 屬性;
 3 sets:
 4 row / 1..4 / : b;
 5 col / 1..5 / : c1, c2, x;
 6 link(row, col) : a;
 7 endsets
 8 !數據部分,對象列 = 數值列,也可以指定一些標量參數;
 9 !實時參數處理:在本該放數的地方放一個問號;
10 data:
11 c1 = 1, 1, 3, 4, 2;
12 c2 = -8, -2, -3, -1, -2;
13 a = 1 1 1 1 1
14     1 2 2 1 6
15     2 1 6 0 0
16     0 0 1 1 5;
17 b = 400, 800, 200, 200;
18 enddata
19 !集循環函數;
20 !@for(setname : expression_list);
21 !@sum(setname : one_expression_list);
22 max = @sum(col : c1 * x ^ 2 + c2 * x);
23 @for(row(i) : @sum(col(j) : a(i, j) * x(j)) < b(i));
24 @for(col : @gin(x));!@gin限制x為整數;
25 @for(col : @bnd(0, x, 99));!@bnd變量界定函數,即x的取值范圍;
26 end

可求得全局最優解。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM