当前位置:网站首页>数学建模2004B题(输电问题)

数学建模2004B题(输电问题)

2022-07-06 08:49:00 亦是远方

一、lingo代码

model: 

sets:
mach /1..8/:  v;
time /1..10/ ;
mt(mach, time): a, x, n, p;
endsets

data:
a = 
70,	0,	50,	0,	0,	30,	0,	0,	0,	40,
30,	0,	20,	8,	15,	6,	2,	0,	0,	8,
110,	0,	40,	0,	30,	0,	20,	40,	0,	40,
55,	5,	10,	10,	10,	10,	15,	0,	0,	1,
75,	5,	15,	0,	15,	15,	0,	10,	10,	10,
95,	0,	10,	20,	0,	15,	10,	20,	0,	10,
50,	15,	5,	15,	10,	10,	5,	10,	3,	2,
70,	0,	20,	0,	20,	0,	20,	10,	15,	5;

p = 
-505,	0,	124,	168,	210,	252,	312,	330,	363,	489,
-560,	0,	182,	203,	245,	300,	320,	360,	410,	495,
-610,	0,	152,	189,	233,	258,	308,	356,	415,	500,
-500,	150,	170,	200,	255,	302,	325,	380,	435,	800,
-590,	0,	116,	146,	188,	215,	250,	310,	396,	510,
-607,	0,	159,	173,	205,	252,	305,	380,	405,	520,
-500,	120,	180,	251,	260,	306,	315,	335,	348,	548,
-800,	153,	183,	233,	253,	283,	303,	318,	400,	800;

v = 2.2, 1, 3.2, 1.3, 1.8, 2, 1.4, 1.8;
enddata

! xi1 是定值;
@for(mt(i,j): x(i, 1) = a(i,1));

@for(mt(i,j): x(i, 2) = a(i,2));

@for(mt(i,j)|j#ge#2 #and# j#le#9: x(i, j+1) <= x(i,j)+15*v(i));

@for(mt(i,j)|j#ge#2 #and# j#le#9: x(i, j+1) >= x(i,j)-15*v(i));

! 和为982.4;
@sum(mt(i, j): x(i,j)) = 982.4;

!  xij <= aij;
@for(mt(i, j) : x(i, j) <= a(i, j));

!  xij >= 0;
@for(mt(i, j) : x(i, j) >= 0);

!  如果xij = 0,nij = 0,否则 nij = 1;
@for(mt(i, j) : n(i, j) = @if(x(i, j)#eq#0, 0, 1));

@for(mt : @bin(n));



! 目标;
c = @max(mt(i, j)  : p(i, j)*n(i, j));

min  = c;

end

二、实验结果

在这里插入图片描述

三、注意

lingo默认求解局部最优解,需要按如下操作进行设置求解全局最优解
在这里插入图片描述
在这里插入图片描述

原网站

版权声明
本文为[亦是远方]所创,转载请带上原文链接,感谢
https://blog.csdn.net/qq_35500719/article/details/125583011