- 在线时间
- 4 小时
- 最后登录
- 2011-9-10
- 注册时间
- 2011-8-15
- 听众数
- 3
- 收听数
- 0
- 能力
- 0 分
- 体力
- 50 点
- 威望
- 0 点
- 阅读权限
- 20
- 积分
- 20
- 相册
- 0
- 日志
- 0
- 记录
- 2
- 帖子
- 5
- 主题
- 3
- 精华
- 0
- 分享
- 0
- 好友
- 19
升级   15.79% TA的每日心情 | 郁闷 2011-8-22 14:50 |
---|
签到天数: 2 天 [LV.1]初来乍到
 群组: 数学建模 |
建模项目
项目所需知识: |
- |
项目描述: |
- |
项目预算: |
- |
项目联系邮箱: |
- |
联系QQ: |
- |
有效期至: |
- |
摘要
本文解决的问题是,在满足每日电力需求的前提下,合理分配发电机,使得每天的成本最低。利用非线性规划的思想来建立单一目标规划的模型,采用LINGO来进行求解。
针对问题(1),通过对电力需求,发电功率与发电机型号与数量的限制,利用非线性规划思想建立了使每天成本最低的单一目标规划的模型,利用LINGO进行求解,得出的最小成本是1403730元,合理的发电机分配计划见表4。
针对问题(2),同样也是使每天的成本最小,条件要求把型号2的发电机的可用数量变为6,只需要把建立的单一目标规划模型进行约束条件的改动,即可得出最有解。利用LINGO程序得出的每天的最小成本是1350255元,合理的发电机分配计划见表5。
针对问题(3),要求在任意时刻,正在工作的发电机组必须留出20%的发电能力余量,以防用电量突然上升,同样利用LINGO程序对单一目标规划模型进行求解,只需要把约束条件中发电机运行时的输出功率变为最大功率的80%,解出每天最小成本为1417325元,合理的发电机分配计划见表6。
进一步对模型进行评价分析,并且进行推广,使其能够解决类似的单目标非线性规划问题。
关键词:单目标规划、非线性规划、最小成本、配置方案、LINGO软件
问题重述
为了满足每日电力需求(单位:兆瓦),可以选用四种不同类型的发电机。每日电力需求如下所示:
表1 每日用电需求(兆瓦)
时段 0点—6点 6点—9点 9点—12点 12点—14点 14点—18点 18点—22点 22点—24点
需求 12000 32000 25000 36000 25000 30000 18000
每种发电机都有一个最大发电能力,当接入电网时,其输出功率不应低于某一最小输出功率。所有发电机都存在一个启动成本,以及工作于最小功率状态时的固定的每小时成本,并且如果功率高于最小功率,则超出部分的功率每兆瓦每小时还存在一个成本,即边际成本。这些数据均列于下表中。
表2 发电机数据
可用
数量 最小输出功率
(兆瓦) 最大输出功率
(兆瓦) 固定成本
(元/小时) 每兆瓦边际成本
(元/小时) 启动成本
(元)
型号1 10 750 1750 2250 2.7 5000
型号2 4 1000 1500 1800 2.2 1600
型号3 8 1200 2000 3750 1.8 2400
型号4 3 1800 3500 4800 3.8 1200
只有在每个时段开始才允许启动或关闭发电机。与启动发电机不同,关闭发电机不需要付出任何代价。我们的问题是:
(1)在每个时段应分别使用哪些发电机才能够使每天的总成本最小?
(2)如果型号2的发电机的可用数量变为6,问发电机的使用计划是否发生改变?
(3)如果要求在任意时刻,正在工作的发电机组必须留出20%的发电能力余量,以防用电量突然上升,问发电机的使用计划如何?
问题分析
本题的前两问具有相似性,是一个典型的优化问题,题目的难度在于如何正确地表示出每天的总成本。在该题目中,总成本主要来自于三个方面:
1) 启动成本:每台发电机在启动时都有一个启动成本。若某台发电机再连续两个或两个以上时段内使用时,则在计算第二个时段的成本时,不需要再加启动成本。
2) 固定成本:固定成本是每天发电机工作于最小功率状态时的固定的每小时成本,固定成本再发电机工作的过程中不发生改变。
3) 边际成本:边际成本指的是发电机工作的功率高于最小功率,则超出部分的功率每兆瓦每小时还存在的一个成本。边际成本与发电机的功率有关,功率越大,边际成本也越大;当功率等于最小功率时,边际成本为0。若想确定某台发电机的边际成本,必须将其工作功率表示出来。
综合以上三种成本,确定目标函数,根据题目中给出的约束条件,建立非线性规划的模型,算出最终结果。
对于问题(3),则需要添加题目的约束条件,考虑发电机的供电能力,使得供电能力的80%就能满足电力的需求量。
模型假设
1) 在某一时段发电机工作的过程中,功率是一定值,在该时段内不发生变化。
2) 同一台发电机可以在两个或两个以上的时段内连续使用。
3) 在供电的过程中,各台发电机运行正常,不会出现突然故障或其它突发问题而影响供电的效果。
4) 电力需求量基本稳定,不会出现短时间内电力需求量急剧增加的情况。
符号说明
符号 说明 单位
第i时段所用的第j种型号发电机的台数(i=1,2,… ,7;j=1,2,3,4;) 台
第i时段所用的第j种型号发电机超出最小功率的部分(i=1,2,… ,7;j=1,2,3,4;) 兆瓦
第i时段新开启的第j种型号发电机的台数(i=1,2,…,7;j=1,2,3,4) 台
第i个时段的持续时间(i=1,2,…,7) 小时
第j种型号发电机的固定成本(j=1,2,3,4) 元/小时
第j种型号发电机的边际成本(j=1,2,3,4) 元/小时
第j种型号发电机的启动成本(j=1,2,3,4) 元
每天的总成本 元
第i个时段的电力需求量(i=1,2,…,7) 兆瓦
第j种型号发电机的可用台数(j=1,2,3,4) 台
第j种型号发电机的最小输出功率(j=1,2,3,4) 兆瓦
第j种型号发电机的最大输出功率(j=1,2,3,4) 兆瓦
模型的建立与求解
基本模型
决策变量:第i时段所用的第j种型号发电机的台数(i=1,2,… ,7;j=1,2,3,4;) ,第i时段所用的第j种型号发电机超出最小功率的部分(i=1,2,… ,7;j=1,2,3,4;) ,第i时段新开启的第j种型号发电机的台数(i=1,2,…,7;j=1,2,3,4) ;
目标函数:设每天总成本为 , 可以表示为:
= ( + + )
约束条件:
电力需求 发电机每个时段的功率要达到每个时段的电力需求,即:
( + )* ≥ ;
功率输出 每种发电机都有一个最大发电能力,当接入电网时,其输出功率不应低于某一最小输出功率,即:
0≤ ≤( - );
可用台数 每种型号发电机的可用台数不同,在分配发电机时,每时段使用某机型发电机的台数不能超过这种机型发电机的可用台数,即:
≤ ;
非负约束 , , 均不能为负值,即:
≥0;
≥0;
≥0;
整数约束 , 表示的是使用某种机型发电机的台数,该数要为整数。
综上可得:
Min = ( + + )
s.t. ( + )* ≥
0≤ ≤( - )
≤ ;
≥0;
≥0;
≥0;
, 且为整数
问题一模型求解
软件实现 本题为非线性规划问题利用LINGO软件,编写相应的程序,进行求解。求解结果如下:
机型 时间段 0点—6点 6点—9点 9点—12点 12点—14点 14点—18点 18点—22点 22点—24点
型号Ⅰ 0 3 1 5 1 2 0
型号Ⅱ 4 4 4 4 4 4 4
型号Ⅲ 3 8 8 8 8 8 6
型号Ⅳ 0 3 1 3 1 3 0
得到每天最小成本为1403730元。
问题二模型求解
分配方案如下:
机型 时间段 0点—6点 6点—9点 9点—12点 12点—14点 14点—18点 18点—22点 22点—24点
型号Ⅰ 0 1 0 4 0 0 0
型号Ⅱ 6 6 6 6 6 6 6
型号Ⅲ 2 8 8 8 8 8 5
型号Ⅳ 0 3 0 3 0 3 0
最小成本为1350255元。
问题三模型求解
分配方案如下:
机型 时间段 0点—6点 6点—9点 9点—12点 12点—14点 14点—18点 18点—22点 22点—24点
型号Ⅰ 0 5 2 8 2 3 0
型号Ⅱ 4 4 4 4 4 4 4
型号Ⅲ 1 8 6 8 6 8 4
型号Ⅳ 2 3 3 3 3 3 3
最小成本为1417325元。
模型的评价与推广
模型的优点:
该模型具有较强的代表性,在改变某些条件时,不需要重新建立模型,只需对原有的模型进行局部改动便能解决不同的问题。
模型的缺点:
1)该模型是一个非线性的整数规划问题,其结果对对处置的依赖性可能较大;
2)本题是利用LINGO软件来求解的,不能进行灵敏度分析;
3)模型中符号较多,容易引起混淆;
4)本题中的数据有限,不能完全准确地反映出实际供电时发电机的工作情况,因此,得到的结果与实际结果可能稍有出入。
模型的改进
1)对模型中运用的复杂符号进行进一步简化。
2)在处理数据时,尽量科学化,在避免特殊结点影响模型的同时,也尽量不要将能反映规律的结点删掉。
模型的推广
实际情况当中,电力需求量,在一定时间段内不可能固定不变,模型稍加修改即可应用于实际电量需求的情况当中。
本题中建立的模型是一个典型的非线性单目标整数规划模型,可以应用到其他单目标整数规划问题中,如分配问题,生产计划问题等问题。
参考文献
【1】《数学模型》姜启源、谢金星、叶俊,高等教育出版社,2003;
附录
问题一的程序:
model:
sets:
shiduan/1..7/:x,q ;
jixing/1..4/:b,n,m,w,l,p,r,z;
y(shiduan,jixing):k,o,c;
endsets
min=@sum(y(i,j):
x(i)*n(j)*k(i,j)+(c(i,j)-l(j))*b(j)*k(i,j)*x(i)+w(j)*o(i,j));
@for(y(i,j) bnd(0,k(i,j),r(j)));
@for(y(i,j) bnd(l(j),c(i,j),z(j)));
@for(shiduan(i) sum(jixing(j):k(i,j)*c(i,j))>=q(i));
@for(y(i,j) gin(k));
data:
r = 10 4 8 3 ;
n = 2250 1800 3750 4800 ;
x =6 3 3 2 4 4 2;
b = 2.7 2.2 1.8 3.8;
w = 5000 1600 2400 1600;
q = 12000 32000 25000 36000 25000 30000 18000;
l = 750 1000 1200 1800;
p = 1000 500 800 1700;
z = 1750 1500 2000 3500;
enddata
end
!n 表示固定成本
x 表示隔段时间的时长
b 表示边际成本
k(i,j) 表示第i时段里型号j的运行台数
o(i,j) 表示第i时段里型号j的新开启的台数
m 表示超出最小功率的部分
w 表示启动成本
l 表示最小输出功率
q 表示每段时间内的电量需求
r 表示每种机型的数量
z 表示最大功率
问题的运行结果:
Local optimal solution found.
Objective value: 1403730.
Extended solver steps: 60
Total solver iterations: 812
Variable Value Reduced Cost
X( 1) 6.000000 0.000000
X( 2) 3.000000 0.000000
X( 3) 3.000000 0.000000
X( 4) 2.000000 0.000000
X( 5) 4.000000 0.000000
X( 6) 4.000000 0.000000
X( 7) 2.000000 0.000000
Q( 1) 12000.00 0.000000
Q( 2) 32000.00 0.000000
Q( 3) 25000.00 0.000000
Q( 4) 36000.00 0.000000
Q( 5) 25000.00 0.000000
Q( 6) 30000.00 0.000000
Q( 7) 18000.00 0.000000
B( 1) 2.700000 0.000000
B( 2) 2.200000 0.000000
B( 3) 1.800000 0.000000
B( 4) 3.800000 0.000000
N( 1) 2250.000 0.000000
N( 2) 1800.000 0.000000
N( 3) 3750.000 0.000000
N( 4) 4800.000 0.000000
M( 1) 0.000000 0.000000
M( 2) 0.000000 0.000000
M( 3) 0.000000 0.000000
M( 4) 0.000000 0.000000
W( 1) 5000.000 0.000000
W( 2) 1600.000 0.000000
W( 3) 2400.000 0.000000
W( 4) 1600.000 0.000000
L( 1) 750.0000 0.000000
L( 2) 1000.000 0.000000
L( 3) 1200.000 0.000000
L( 4) 1800.000 0.000000
P( 1) 1000.000 0.000000
P( 2) 500.0000 0.000000
P( 3) 800.0000 0.000000
P( 4) 1700.000 0.000000
R( 1) 10.00000 0.000000
R( 2) 4.000000 0.000000
R( 3) 8.000000 0.000000
R( 4) 3.000000 0.000000
Z( 1) 1750.000 0.000000
Z( 2) 1500.000 0.000000
Z( 3) 2000.000 0.000000
Z( 4) 3500.000 0.000000
K( 1, 1) 0.000000 1822.500
K( 1, 2) 4.000000 -5955.000
K( 1, 3) 3.000000 0.000000
K( 1, 4) 0.000000 774.0000
K( 2, 1) 3.000000 675.0000
K( 2, 2) 4.000000 -3450.000
K( 2, 3) 8.000000 -630.0000
K( 2, 4) 3.000000 -180.0000
K( 3, 1) 1.000000 675.0000
K( 3, 2) 4.000000 -3450.000
K( 3, 3) 8.000000 -630.0000
K( 3, 4) 1.000000 -180.0000
K( 4, 1) 5.000000 450.0000
K( 4, 2) 4.000000 -2300.000
K( 4, 3) 8.000000 -420.0000
K( 4, 4) 3.000000 -120.0000
K( 5, 1) 1.000000 900.0000
K( 5, 2) 4.000000 -4600.000
K( 5, 3) 8.000000 -840.0000
K( 5, 4) 1.000000 -240.0000
K( 6, 1) 2.000000 900.0000
K( 6, 2) 4.000000 -4600.000
K( 6, 3) 8.000000 -840.0000
K( 6, 4) 3.000000 -240.0000
K( 7, 1) 0.000000 607.5000
K( 7, 2) 4.000000 -1985.000
K( 7, 3) 6.000000 0.000000
K( 7, 4) 0.000000 258.0000
O( 1, 1) 0.000000 5000.000
O( 1, 2) 0.000000 1600.000
O( 1, 3) 0.000000 2400.000
O( 1, 4) 0.000000 1600.000
O( 2, 1) 0.000000 5000.000
O( 2, 2) 0.000000 1600.000
O( 2, 3) 0.000000 2400.000
O( 2, 4) 0.000000 1600.000
O( 3, 1) 0.000000 5000.000
O( 3, 2) 0.000000 1600.000
O( 3, 3) 0.000000 2400.000
O( 3, 4) 0.000000 1600.000
O( 4, 1) 0.000000 5000.000
O( 4, 2) 0.000000 1600.000
O( 4, 3) 0.000000 2400.000
O( 4, 4) 0.000000 1600.000
O( 5, 1) 0.000000 5000.000
O( 5, 2) 0.000000 1600.000
O( 5, 3) 0.000000 2400.000
O( 5, 4) 0.000000 1600.000
O( 6, 1) 0.000000 5000.000
O( 6, 2) 0.000000 1600.000
O( 6, 3) 0.000000 2400.000
O( 6, 4) 0.000000 1600.000
O( 7, 1) 0.000000 5000.000
O( 7, 2) 0.000000 1600.000
O( 7, 3) 0.000000 2400.000
O( 7, 4) 0.000000 1600.000
C( 1, 1) 750.0000 0.000000
C( 1, 2) 1500.000 -9.480000
C( 1, 3) 2000.000 -14.31000
C( 1, 4) 1800.000 0.000000
C( 2, 1) 1533.333 0.000000
C( 2, 2) 1500.000 -6.000000
C( 2, 3) 2000.000 -21.60000
C( 2, 4) 1800.000 9.900000
C( 3, 1) 1200.000 0.000000
C( 3, 2) 1500.000 -6.000000
C( 3, 3) 2000.000 -21.60000
C( 3, 4) 1800.000 3.300003
C( 4, 1) 1720.000 0.000000
C( 4, 2) 1500.000 -4.000000
C( 4, 3) 2000.000 -14.40000
C( 4, 4) 1800.000 6.600000
C( 5, 1) 1200.000 0.000000
C( 5, 2) 1500.000 -8.000000
C( 5, 3) 2000.000 -28.80000
C( 5, 4) 1800.000 4.400004
C( 6, 1) 1300.000 0.000000
C( 6, 2) 1500.000 -8.000000
C( 6, 3) 2000.000 -28.80000
C( 6, 4) 1800.000 13.20000
C( 7, 1) 750.0000 0.000000
C( 7, 2) 1500.000 -3.160000
C( 7, 3) 2000.000 -9.540000
C( 7, 4) 1800.000 0.000000
Row Slack or Surplus Dual Price
1 1403730. -1.000000
2 0.000000 -15.57000
3 0.000000 -8.100000
4 0.000000 -8.100000
5 0.000000 -5.400000
6 0.000000 -10.80000
7 0.000000 -10.80000
8 0.000000 -5.190000
问题二的程序:
model:
sets:
shiduan/1..7/:x,q ;
jixing/1..4/:b,n,m,w,l,p,r,z;
y(shiduan,jixing):k,o,c;
endsets
min=@sum(y(i,j):
x(i)*n(j)*k(i,j)+(c(i,j)-l(j))*b(j)*k(i,j)*x(i)+w(j)*o(i,j));
@for(y(i,j) bnd(0,k(i,j),r(j)));
@for(y(i,j) bnd(l(j),c(i,j),z(j)));
@for(shiduan(i) sum(jixing(j):k(i,j)*c(i,j))>=q(i));
@for(y(i,j) gin(k));
data:
r = 10 6 8 3 ;
n = 2250 1800 3750 4800 ;
x =6 3 3 2 4 4 2;
b = 2.7 2.2 1.8 3.8;
w = 5000 1600 2400 1600;
q = 12000 32000 25000 36000 25000 30000 18000;
l = 750 1000 1200 1800;
z = 1750 1500 2000 3500;
enddata
end
!n 表示固定成本
x 表示隔段时间的时长
b 表示边际成本
k(i,j) 表示第i时段里型号j的运行台数
o(i,j) 表示第i时段里型号j的新开启的台数
m 表示超出最小功率的部分
w 表示启动成本
l 表示最小输出功率
q 表示每段时间内的电量需求
r 表示每种机型的数量
z 表示最大功率
y 表示某段时间内的输出功率
问题二程序运行结果:
Local optimal solution found.
Objective value: 1350255.
Extended solver steps: 285
Total solver iterations: 4693
Variable Value Reduced Cost
X( 1) 6.000000 0.000000
X( 2) 3.000000 0.000000
X( 3) 3.000000 0.000000
X( 4) 2.000000 0.000000
X( 5) 4.000000 0.000000
X( 6) 4.000000 0.000000
X( 7) 2.000000 0.000000
Q( 1) 12000.00 0.000000
Q( 2) 32000.00 0.000000
Q( 3) 25000.00 0.000000
Q( 4) 36000.00 0.000000
Q( 5) 25000.00 0.000000
Q( 6) 30000.00 0.000000
Q( 7) 18000.00 0.000000
B( 1) 2.700000 0.000000
B( 2) 2.200000 0.000000
B( 3) 1.800000 0.000000
B( 4) 3.800000 0.000000
N( 1) 2250.000 0.000000
N( 2) 1800.000 0.000000
N( 3) 3750.000 0.000000
N( 4) 4800.000 0.000000
M( 1) 0.000000 0.000000
M( 2) 0.000000 0.000000
M( 3) 0.000000 0.000000
M( 4) 0.000000 0.000000
W( 1) 5000.000 0.000000
W( 2) 1600.000 0.000000
W( 3) 2400.000 0.000000
W( 4) 1600.000 0.000000
L( 1) 750.0000 0.000000
L( 2) 1000.000 0.000000
L( 3) 1200.000 0.000000
L( 4) 1800.000 0.000000
P( 1) 1000.000 0.000000
P( 2) 500.0000 0.000000
P( 3) 800.0000 0.000000
P( 4) 1700.000 0.000000
R( 1) 10.00000 0.000000
R( 2) 6.000000 0.000000
R( 3) 8.000000 0.000000
R( 4) 3.000000 0.000000
Z( 1) 1750.000 0.000000
Z( 2) 1500.000 0.000000
Z( 3) 2000.000 0.000000
Z( 4) 3500.000 0.000000
K( 1, 1) 0.000000 3600.000
K( 1, 2) 6.000000 -2400.000
K( 1, 3) 2.000000 4740.000
K( 1, 4) 0.000000 5040.000
K( 2, 1) 1.000000 675.0000
K( 2, 2) 6.000000 -3450.000
K( 2, 3) 8.000000 -630.0000
K( 2, 4) 3.000000 -180.0000
K( 3, 1) 0.000000 750.0000
K( 3, 2) 6.000000 -3300.000
K( 3, 3) 8.000000 -430.0000
K( 3, 4) 0.000000 0.000000
K( 4, 1) 4.000000 450.0000
K( 4, 2) 6.000000 -2300.000
K( 4, 3) 8.000000 -420.0000
K( 4, 4) 3.000000 -120.0000
K( 5, 1) 0.000000 1133.333
K( 5, 2) 6.000000 -4400.000
K( 5, 3) 8.000000 -573.3333
K( 5, 4) 0.000000 0.000000
K( 6, 1) 0.000000 2400.000
K( 6, 2) 6.000000 -1600.000
K( 6, 3) 8.000000 3160.000
K( 6, 4) 3.000000 3360.000
K( 7, 1) 0.000000 1200.000
K( 7, 2) 6.000000 -800.0000
K( 7, 3) 5.000000 1580.000
K( 7, 4) 0.000000 1680.000
O( 1, 1) 0.000000 5000.000
O( 1, 2) 0.000000 1600.000
O( 1, 3) 0.000000 2400.000
O( 1, 4) 0.000000 1600.000
O( 2, 1) 0.000000 5000.000
O( 2, 2) 0.000000 1600.000
O( 2, 3) 0.000000 2400.000
O( 2, 4) 0.000000 1600.000
O( 3, 1) 0.000000 5000.000
O( 3, 2) 0.000000 1600.000
O( 3, 3) 0.000000 2400.000
O( 3, 4) 0.000000 1600.000
O( 4, 1) 0.000000 5000.000
O( 4, 2) 0.000000 1600.000
O( 4, 3) 0.000000 2400.000
O( 4, 4) 0.000000 1600.000
O( 5, 1) 0.000000 5000.000
O( 5, 2) 0.000000 1600.000
O( 5, 3) 0.000000 2400.000
O( 5, 4) 0.000000 1600.000
O( 6, 1) 0.000000 5000.000
O( 6, 2) 0.000000 1600.000
O( 6, 3) 0.000000 2400.000
O( 6, 4) 0.000000 1600.000
O( 7, 1) 0.000000 5000.000
O( 7, 2) 0.000000 1600.000
O( 7, 3) 0.000000 2400.000
O( 7, 4) 0.000000 1600.000
C( 1, 1) 750.0000 0.000000
C( 1, 2) 1333.333 0.000000
C( 1, 3) 2000.000 -4.799998
C( 1, 4) 1800.000 0.000000
C( 2, 1) 1600.000 0.000000
C( 2, 2) 1500.000 -9.000000
C( 2, 3) 2000.000 -21.60000
C( 2, 4) 1800.000 9.900000
C( 3, 1) 750.0000 0.000000
C( 3, 2) 1500.000 -8.400000
C( 3, 3) 2000.000 -20.80000
C( 3, 4) 1800.000 0.000000
C( 4, 1) 1400.000 0.000000
C( 4, 2) 1500.000 -6.000000
C( 4, 3) 2000.000 -14.40000
C( 4, 4) 1800.000 6.600000
C( 5, 1) 1750.000 0.000000
C( 5, 2) 1500.000 -11.20000
C( 5, 3) 2000.000 -27.73333
C( 5, 4) 1800.000 0.000000
C( 6, 1) 750.0000 0.000000
C( 6, 2) 1433.333 0.000000
C( 6, 3) 2000.000 -12.80000
C( 6, 4) 1800.000 19.19999
C( 7, 1) 750.0000 0.000000
C( 7, 2) 1333.333 0.000000
C( 7, 3) 2000.000 -3.999999
C( 7, 4) 1800.000 0.000000
Row Slack or Surplus Dual Price
1 1350255. -1.000000
2 0.000000 -13.20000
3 0.000000 -8.100000
4 0.000000 -8.000000
5 0.000000 -5.400000
6 0.000000 -10.66667
7 0.000000 -8.800000
8 0.000000 -4.400000
问题三的程序:
model:
sets:
shiduan/1..7/:x,q ;
jixing/1..4/:b,n,m,w,l,p,r,z;
y(shiduan,jixing):k,o,c;
endsets
min=@sum(y(i,j):
x(i)*n(j)*k(i,j)+(c(i,j)-l(j))*b(j)*k(i,j)*x(i)+w(j)*o(i,j));
@for(y(i,j) bnd(0,k(i,j),r(j)));
@for(y(i,j) bnd(l(j),c(i,j),z(j)));
@for(shiduan(i) sum(jixing(j):k(i,j)*c(i,j))>=q(i));
@for(shiduan(i) sum(jixing(j):k(i,j)*z(j)*0.8)>=q(i));
@for(y(i,j) gin(k));
data:
r = 10 4 8 3 ;
n = 2250 1800 3750 4800 ;
x =6 3 3 2 4 4 2;
b = 2.7 2.2 1.8 3.8;
w = 5000 1600 2400 1600;
q = 12000 32000 25000 36000 25000 30000 18000;
l = 750 1000 1200 1800;
z = 1750 1500 2000 3500;
enddata
end
!n 表示固定成本
x 表示隔段时间的时长
b 表示边际成本
k(i,j) 表示第i时段里型号j的运行台数
o(i,j) 表示第i时段里型号j的新开启的台数
m 表示超出最小功率的部分
w 表示启动成本
l 表示最小输出功率
q 表示每段时间内的电量需求
r 表示每种机型的数量
z 表示最大功率
y 表示某段时间内的输出功率
问题三的程序运行结果:
Local optimal solution found.
Objective value: 1417325.
Extended solver steps: 56
Total solver iterations: 1342
Variable Value Reduced Cost
X( 1) 6.000000 0.000000
X( 2) 3.000000 0.000000
X( 3) 3.000000 0.000000
X( 4) 2.000000 0.000000
X( 5) 4.000000 0.000000
X( 6) 4.000000 0.000000
X( 7) 2.000000 0.000000
Q( 1) 12000.00 0.000000
Q( 2) 32000.00 0.000000
Q( 3) 25000.00 0.000000
Q( 4) 36000.00 0.000000
Q( 5) 25000.00 0.000000
Q( 6) 30000.00 0.000000
Q( 7) 18000.00 0.000000
B( 1) 2.700000 0.000000
B( 2) 2.200000 0.000000
B( 3) 1.800000 0.000000
B( 4) 3.800000 0.000000
N( 1) 2250.000 0.000000
N( 2) 1800.000 0.000000
N( 3) 3750.000 0.000000
N( 4) 4800.000 0.000000
M( 1) 0.000000 0.000000
M( 2) 0.000000 0.000000
M( 3) 0.000000 0.000000
M( 4) 0.000000 0.000000
W( 1) 5000.000 0.000000
W( 2) 1600.000 0.000000
W( 3) 2400.000 0.000000
W( 4) 1600.000 0.000000
L( 1) 750.0000 0.000000
L( 2) 1000.000 0.000000
L( 3) 1200.000 0.000000
L( 4) 1800.000 0.000000
P( 1) 1000.000 0.000000
P( 2) 500.0000 0.000000
P( 3) 800.0000 0.000000
P( 4) 1700.000 0.000000
R( 1) 10.00000 0.000000
R( 2) 4.000000 0.000000
R( 3) 8.000000 0.000000
R( 4) 3.000000 0.000000
Z( 1) 1750.000 0.000000
Z( 2) 1500.000 0.000000
Z( 3) 2000.000 0.000000
Z( 4) 3500.000 0.000000
K( 1, 1) 0.000000 -10200.00
K( 1, 2) 4.000000 -16800.00
K( 1, 3) 1.000000 -14460.00
K( 1, 4) 2.000000 -12240.00
K( 2, 1) 5.000000 675.0000
K( 2, 2) 4.000000 -3450.000
K( 2, 3) 8.000000 -630.0000
K( 2, 4) 3.000000 -180.0000
K( 3, 1) 2.000000 675.0000
K( 3, 2) 4.000000 -3450.000
K( 3, 3) 6.000000 -630.0000
K( 3, 4) 3.000000 -180.0000
K( 4, 1) 8.000000 450.0000
K( 4, 2) 4.000000 -2300.000
K( 4, 3) 8.000000 -420.0000
K( 4, 4) 3.000000 -120.0000
K( 5, 1) 2.000000 900.0000
K( 5, 2) 4.000000 -4600.000
K( 5, 3) 6.000000 -840.0000
K( 5, 4) 3.000000 -240.0000
K( 6, 1) 3.000000 900.0000
K( 6, 2) 4.000000 -4600.000
K( 6, 3) 8.000000 -840.0000
K( 6, 4) 3.000000 -240.0000
K( 7, 1) 0.000000 2199.750
K( 7, 2) 4.000000 -800.0000
K( 7, 3) 4.000000 1580.000
K( 7, 4) 3.000000 1680.000
O( 1, 1) 0.000000 5000.000
O( 1, 2) 0.000000 1600.000
O( 1, 3) 0.000000 2400.000
O( 1, 4) 0.000000 1600.000
O( 2, 1) 0.000000 5000.000
O( 2, 2) 0.000000 1600.000
O( 2, 3) 0.000000 2400.000
O( 2, 4) 0.000000 1600.000
O( 3, 1) 0.000000 5000.000
O( 3, 2) 0.000000 1600.000
O( 3, 3) 0.000000 2400.000
O( 3, 4) 0.000000 1600.000
O( 4, 1) 0.000000 5000.000
O( 4, 2) 0.000000 1600.000
O( 4, 3) 0.000000 2400.000
O( 4, 4) 0.000000 1600.000
O( 5, 1) 0.000000 5000.000
O( 5, 2) 0.000000 1600.000
O( 5, 3) 0.000000 2400.000
O( 5, 4) 0.000000 1600.000
O( 6, 1) 0.000000 5000.000
O( 6, 2) 0.000000 1600.000
O( 6, 3) 0.000000 2400.000
O( 6, 4) 0.000000 1600.000
O( 7, 1) 0.000000 5000.000
O( 7, 2) 0.000000 1600.000
O( 7, 3) 0.000000 2400.000
O( 7, 4) 0.000000 1600.000
C( 1, 1) 1749.750 -0.6600000E-05
C( 1, 2) 1500.000 -38.40000
C( 1, 3) 2000.000 -12.00001
C( 1, 4) 2000.000 0.000000
C( 2, 1) 920.0000 0.000000
C( 2, 2) 1500.000 -6.000000
C( 2, 3) 2000.000 -21.60000
C( 2, 4) 1800.000 9.900000
C( 3, 1) 800.0000 0.000000
C( 3, 2) 1500.000 -6.000000
C( 3, 3) 2000.000 -16.20000
C( 3, 4) 1800.000 9.900000
C( 4, 1) 1075.000 0.000000
C( 4, 2) 1500.000 -4.000000
C( 4, 3) 2000.000 -14.40000
C( 4, 4) 1800.000 6.600000
C( 5, 1) 800.0000 0.000000
C( 5, 2) 1500.000 -8.000000
C( 5, 3) 2000.000 -21.60000
C( 5, 4) 1800.000 13.20000
C( 6, 1) 866.6667 0.000000
C( 6, 2) 1500.000 -8.000000
C( 6, 3) 2000.000 -28.80000
C( 6, 4) 1800.000 13.20000
C( 7, 1) 1749.750 0.000000
C( 7, 2) 1150.000 0.000000
C( 7, 3) 2000.000 -3.199999
C( 7, 4) 1800.000 9.599997
Row Slack or Surplus Dual Price
1 1417325. -1.000000
2 0.000000 -22.80000
3 0.000000 -8.100000
4 0.000000 -8.100000
5 0.000000 -5.400000
6 0.000000 -10.80000
7 0.000000 -10.80000
8 0.000000 -4.400000
9 0.000000 0.000000
10 1000.000 0.000000
11 600.0000 0.000000
12 1200.000 0.000000
13 600.0000 0.000000
14 200.0000 0.000000
15 1600.000 0.000000
|
zan
|