intlinprog求和MILP优化问题:已经解决了在gam(提供代码),但在MATLAB混淆
2视图(30天)
显示旧的评论
困惑:如何使Aeq,这也困惑如何使用值的一个向量在solve.m乐趣
请帮我解决了这个最大化策略,gam但困在MATLAB
gam工作代码:
SP、PCL、PCM、PCH ICL, ICM,我,CL,厘米,CH, 1, RM2 = 1 x54翻倍
R = [500500]
预算= 1000
我想优化F(下面定义)并找到的值X, Y (int)、Z (int), L, M,使用intlinprog H
PROD.m
函数[F, A, B, Aeq,说真的,intcon,磅,乌兰巴托)= Prod (SP、PCL、PCM、PCH ICL, ICM,我,CL,厘米,CH, 1, RM2, R,预算,X, Y, Z, L, M, H)
D =长度(X);
F = 0;
为d = 1: d
F = F-SP (d) * X (d) + PCL (d) * L (d) + PCM (d) * M (d) + PCH (d) * H (d);
结束
(1:)= (1;0;-10000;0,0,0);
(2:)= (0,1,0,1,0,0);
(3:)= (0,1,0,0,0,1];
为d = 1: d
一(4,1)= (1)+ X (d) * 1 (d);
(5、1)= (1)+ X (d) * RM2 (d);
(6,4)= (6,4)+ ICL (d) * L (d);
5 (6)= (6 5)+ ICM (d) * M (d);
一个(6,6)=(6,6)+我(d) * H (d);
结束
B = [0, 0, 1, R (1)、R(2);预算)';
intcon = (2、3);
Aeq = 0(55岁,6);
为d = 1: d
Aeq (d, 1) = X (d);
Aeq (d, 4) = cl (d) * L (d);
Aeq (d, 5) =厘米(d) * M (d);
Aeq (d, 6) = ch (d) * H (d);
结束
Aeq(55岁)= (0,0,1,1,1,1,);
说真的= 0(55岁,1);
磅= [0 0 0 0 0 0];
乌兰巴托=[正正正正正正);
结束
解决。M(困惑)
clc;明确;
有趣= @Prod;
[F, A, B, Aeq,说真的,intcon,磅,乌兰巴托)=乐趣(SP、PCL、PCM、PCH ICL, ICM,我,CL,厘米,CH, 1, RM2, R,预算,X, Y, Z, L, M, H);
% X, Y, Z, L, M, H
[x, fval] = intlinprog (F intcon A、B Aeq,说真的,磅,乌兰巴托);