作业帮 > 综合 > 作业

求整数规划的Lingo程序或matlab程序

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/05/22 07:08:45
求整数规划的Lingo程序或matlab程序
X是10*21的0-1矩阵.
X每行元素和均不大于5;
X每列元素和介于L和H之间,可等于.
L=3,2,1,3,3,1,4,2,1,4,2,1,3,2,1,1,1,1,1,1,1;
H=5,3,2,4,4,2,5,3,2,5,3,2,4,4,2,2,1,1,1,1,1.
且X每行相邻3个元素和不大于1.
求X所有元素和的最大自然是50,求这种情况下所对应所有的X.
Lingo 只 找到了一种,所有情况对应的 X 可以做出来?100100100100010000000001001000100000100100010010010010010000000010010010000100010000100001000100100001000100100100010001000000010010001001001000000100100100001000000010100010010010000000001001000100100100100000就下面的代码:sets:
x/1..10/: vx;
y/1..21/: vy, L, H;
xy(x, y): vxy;
endsets

@for(xy(I,J): @bin(vxy(I,J)));

@for(x(I): @sum(y(J): vxy(I, J)) < 5);
@for(y(J): @sum(x(I): vxy(I, J)) < H(J));
@for(y(J): @sum(x(I): vxy(I, J)) > L(J));

@for(x(I): 
@for(y(J) | J #LE# 19: 
vxy(I, J) + vxy(I, J+1) + vxy(I, J+2) <= 1
)
);

@sum(xy(I,J): vxy(I,J)) = 50;

data:
L=3,2,1,3,3,1,4,2,1,4,2,1,3,2,1,1,1,1,1,1,1;
H=5,3,2,4,4,2,5,3,2,5,3,2,4,4,2,2,1,1,1,1,1;
@text('1.txt') = @writefor(x(I): @writefor(y(J): vxy(I, J)), @newline(1));
enddata