各位大大好
我是用CPLEX内建的函式库去写
如果要处理的问题是二元整数规划
% Maximize x1 + 2 x2 + 3 x3 + x4
% Subject to
% - x1 + x2 + x3 + 10 x4 <= 20
% x1 - 3 x2 + x3 <= 30
% x2 - 3.5x4 = 0
% Binary Integer
% x1 x2 x3 x4
那么只要这样打以下
f = [-1 -2 -3 -1]';
Aineq = [-1 1 1 10;
1 -3 1 0];
bineq = [20 30]';
Aeq = [0 1 0 -3.5];
beq = 0;
options = cplexoptimset;
options.Display = 'on';
[x, fval, exitflag, output] = cplexbilp (f, Aineq, bineq, Aeq, beq, ...
[ ], options);
fprintf ('\nSolution status = %s\n', output.cplexstatusstring);
fprintf ('Solution value = %d\n', fval);
disp ('Values = ');
disp (x');
这样就能正确跑出最佳解了
问题来了
但是如果今天模型的限制式长这样
http://imgur.com/Pz1X1VN
该怎么处理变量前面包了两个sigma呢?
另外ARJH可以自行给定
感谢好心的大大