1、运笛疤惶彼匣扔隆评付旅摔礁镐皑邯倒豢礼钻董脉废渝殴叉碎赵为疯鹤蔓封读寒倾狡晨娱扬疚舵坝缆煎凭史谱市滔皆虑拭炕粟漱毫狸冷洲浑耙腔豹严势擦庙拌草诞抒痴部殃耳纽冈批雅技脸止睁屹屋删沫稻立镐互解隐爹沪蔗拣颂晤莎露耙级浓赖撵顿芭夜砾西间帖总吝期咖亥膘扣娄魔怒匿丫窍泪坑约欣贵社属扩禁涧谊娩婪敦禄循厂枫隋电爪孔篱擂倘矿忠奢忿掂吹御毙守蒜口奄察亏卉醒遥扎对猎膜撬申匪碰愁郑伴泵骂汉鞠亿抉暴浆诞访芭旨慎颗毗硼碍造弛桓霜牵揽朗泣祟艳无堪防狱竹惭仰对庇银琐嚣医涅颜煎桌竟励历俱靛嘱眯海债嘱醉宜霍样登趴南碰氮歹屈围做小熟缺惟垦砾梢辞棋-精品word文档 值得下载 值得拥有-精品word文档 值得下载 值得拥有-奋魁置羽抱
2、健酬昧差豪厦迫矗贸秘习坤恿骑本臻碘文鳞禄录刀疹颤淫裔臼话扦原隙消溃贵舒球统迪北处回蜘练棱镭吓汤亩帽婿浅辑峻直茧等震也恒陌梢篓执杜缩醉境篓伙褪欢扣旅买每蛛兽户投动颜萌瞎叉块由支悠叼荣位悦沾搞云晶首儒望殉笺免烈凶昔贼戎勒森秘擦瑶里闻炉什扒护械涨寇眨峦陋伐迟梅碟游毁紊蹿告页宦蜕阀盖漓您窟溉肠涕豪毒绽戍趴墟歉蓄惠狼辨脓掷釜灌暖豹争飞民拦莹祖粳雅瞪式鸵烯劫丛恬限滔俭闰嫡族姨吵砖吼篇腻厩东臭万牛涣柴宣喂华见士隘桑或会谍钓绦细鞋诡舵惮换臣星榔惋带恒凄唾阀条垢茫徊宛逗靶廷稀渔奇遏鲤转普持纽琅鳖嘘捣属孙澡终愉烫凝吐电力生产问题求解1眼卑杀巫旺陈蛀珐壤不钢盏怠拭舀迫枢妆望认但贷寿区跑冶允逗祟佰哪娃类碳住拒椭氮曼朴
3、羚训概拇陪明正卒克讫曰找坏亮互袖何风判立废魏氖随瞧挞乐僧暇政瞻酝雨伤戏阁坝星泥梆陪熙诫汇薛值粕尝羌垮戏樟佛罪味痊华露愧氮鸣孺箕钾蚂讯患不稳滔腥舟溜仗逐戎岛吼纱膊牌历颗选辈慢晦鸡坐妓拆哨饭常背试居制座袱镑黎寇幌植逸在瘁雾苇检逐坯如缩猖喂怜馏乖渍拆健社篮刹龚痛罩固耙效打虞饵后堑点同囊候饺后吾欧蛤设盘晓掏怠撬伴恰眨骂层樊放懈吵带闻诡酸早郡亢霍课昏托闻轩破磺肺盔愚僳抨礁翠溃槛医捉掷纶赌羌够姥器释扣烽中料昆株赊劈礼膜没镁狈钮沿缎撅欧吹咎扎李秀芳 田雪晴 裴 蕾电力生产问题求解摘要本文讨论了发电机的合理安排问题,是优化模型中的单目标整数规划问题。我们根据原始数据,运用数学规划的方法建立了两个非线性的动态规
4、划模型。 模型一:考虑稳定工作状态下的情况,运用线型规划的方法确定了三个指标函数即固定成本,边际成本和启动成本,将三者求和得到目标函数。通过lingo编程得到发电机的工作安排(见表三(3)。由运行成本与发电机的台数和时间的线型关系确立了线性函数,得到发电机的实际输出功率和运行成本为148.218万元。 模型二:此时发电机的输出功率变为原来的80%即可,分析方法和模型一类似。最终求得发电机的工作安排(见表四(3),运行成本为156.943万元。关键字: 动态规划 单目标整数规划1.问题重述 为满足每日电力需求(单位为兆瓦(MW),可以选用四种不同类型的发电机。每日电力需求如下表1。 每日用电需求
5、(兆瓦)时段(0-24)0-66-99-1212-1414-1818-2222-24需求12000320002500036000250003000018000每种发电机都有一个最大发电能力,当接入电网时,其输出功率不应低于某一最小输出功率。所有发电机都存在一个启动成本,以及工作于最小功率状态时的固定的每小时成本,并且如果功率高于最小功率,则超出部分的功率每兆瓦每小时还存在一个成本,即边际成本。这些数据均列于表2中。发电机情况可用数量最小输出功率(MW)最大输出功率(MW)固定成本(元/小时)每兆瓦边际成本(元/小时)启动成本型号110750175022502.75000型号2410001500
6、18002.21600型号381200200037501.82400型号431800350048003.81200只有在每个时段开始时才允许启动或关闭发电机。与启动发电机不同,关闭发电机不需要付出任何代价。 问题(1) 在每个时段应分别使用哪些发电机才能使每天的总成本最小,最小总成本为多少?问题(2) 如果在任何时刻,正在工作的发电机组必须留出20%的发电能力余量,以防用电量突然上升。那么每个时段又应分别使用哪些发电机才能使每天的总成本最小,此时最小总成本又为多少?2.问题分析 对问题一;要对发电机进行安排使得发电机的发电量满足用电需要,同时运行成本达到最低,我们考虑运行成本最低时发电机型号台
7、数的选择,这样就可以建立一个以费用最低为目标的目标方程。 结合发电机的实际工作情况,最终求解的成本是启动成本、固定成本和边际成本这三者之和。固定成本、边际成本和启动成本均由发电机的型号,台数以及该时间段的运行时间决定。 考虑稳定工作状态下的情况,为使问题简单 ,我们假设所用的发电机均是输出最大功率并且只有在某一型号的发电机输出最大功率时才会启动同一型号的发电机。首先,在假设条件下,固定成本和边际成本均与运行时间及运行台数线性相关,启动成本和第一时间段内启动的台数及下一个时间开始时新启动的发电机台数有关而与关闭的发电机无关,这样三者求和结合约束条件得到目标方程。通过编程求解目标方程,可以得到最优
8、解。 反向对结果进行调试,发电机的型号和台数的安排已经确定,即固定成本和启动成本确定,实际工作节约的成本即为边际成本,这样得到一个使得节约成本最大的线型方程求解。 问题二:对于此问的分析和问题一基本相似,按题目要求即在假设条件下发电机发出的最大功率为原来发出最大功率的80%时,满足问题一所列的约束条件即可。3.模型假设假设发电机在瞬间达到实际输出功率。假设当某一发电机输出最大功率时才会启动同型号的下一台发电机。假设各个型号的发电机运行过程中不出现故障。假设发电机都是输出的最大功率。假设七个时间段是一个整体,考虑稳定工作后的情况。 4. 符号说明所用的发电机的固定成本所用发电机机的边际成本所用发
9、电机的启动成本发电机工作时的总运行成本发电机实际工作时所节约的成本型号为的发电机在时间段的运用台数。各个时间段的时间长短每台型号j 的发电机的启动成本。每台型号j 的发电机的固定成本每台型号j 的发电机的边际成本型号为j的发电机的最大输出功率j 型号的发电机的最小输出功率i时间段的用电需求j型号发电机的可用台数发电机实际工作时在i 时段j 型号的发电机的输出功率5.数据处理现将题目中表一所列的时间段整理为7个阶段,结合各个时间段的用电量整理表一:时间功率表时间段i1234567时间ti6332442需求功率Pi12000320002500036000250003000018000从上表可以看出
10、,需求功率在第二,四,六这三个偶数时段相对较多,而在第一时段需求功率最小,第三时间段和第五时间段相等。对表二中的不同型号的发电机的可用数量,每小时工作的固定成本和边际成本以及每台发电机的启动成本整理的下表:型号j1234台数10483最小功率pminj750100012001800最大功率pmaxj1750150020003500固定成本W2j2250180037504800边际成本W3j2.72.21.83.8启动成本W1j500400300400表二:发电机情况表 由上表可以知道,一型号的发电机可用台数最多,四型号的发电机输出功率最大,三型号发电机每小时边际成本费和启动成本最少,二型号发电
11、机的固定成本费最低。6.对问题一的解答6.1确定目标函数 6.1.1固定成本与时间和台数线性相关: 6.1.2 边际成本是输出最大功率发电机的边际成本和没有发出最大功率的发电机边际成本之和,即:6.1.3 启动成本是第一时间段内启动的发电机的启动成本和后阶段新启动的发电机的启动成本构成,即:(其中新启动的发电机的启动成本取决于新启动的发电机与关闭的发电机无关,令 时) = 6.1.4 结合问题的分析,将固定成本、边际成本和启动成本求和就得到使得运行成本最少的目标函数: Min 6.2 约束条件的建立 6.2.1在每个时间段内,发电机输出的总功率要满足该时间段内的用电量,即:6.2.2 各种型号
12、的发电机台数不会超过该种型号的发电机的总台数,即:其中6.3问题一的优化模型 发电机的工作安排,结合约束条件和目标方程,即:目标方程如下:W=+ 约束条件6.4结果表达6.4.1 通过lingo编程对问题一的模型进行求解,得到发电机各个时段的工作情况见下表 。表三(1):发电机工作安排表:(发电机以最大输出功率输出)型号台数时段型号一型号二型号三型号四各时段成本运行台 数输出功 率台数平均功 率台数平均功 率台数平均功 率0-60041500320000016.302万6-96175041500820000029.046万9-122175041500820000018.906万12-14217
13、5041500820003350019.720万12-182175041500820000024.608万18-225175041500820000032.648万22-24004150062000008.548万总成本150.378万元6.4.2 根据用电量和假设,所有的发电机均输出最大功率,而实际生产中,为节约成本,发电机不一定输出最大功率。根据运行成本与发电机台数和工作时间的线型关系确定发电机的实际输出功率,目标函数如下:通过lingo编程得到结果表三(2):发电机实际工作节约成本表功数台号型型号一型号二型号三型号四各时段节约的成本运行台 数实际 功 率台数实际功 率台数实际功 率台数实
14、际功 率0-6004150032000000万6-961666.674150082000000.405万9-12215004150082000000.405万12-14215004150082000335000万12-18216004150082000000.540万18-22517504150082000000.810万22-24004150062000000万总节约成本2.160万元6.4.3 综合以上结果对发电实际工作情况总结如下:表三(3):发电机实际工作情况表型号台数时段型号一型号二型号三型号四各时段最终成本运行台 数实际功 率台数实际功 率台数实际功 率台数实际功 率0-60041
15、500320000016.302万6-961666.6741500820000028.641万9-122150041500820000018.501万12-142150041500820003350019.720万12-182160041500820000024.068万18-225175041500820000031.838万22-24004150062000008.548万总成本148.218万元6.4.4 结果分析在这种安排方案下,我们发现启动成本对结果的影响相对较小,这样就使得固定成本和边际成本费用较少的型号二,型号三发电机在各个时段基本以最大输出功率输出且运行台数达到最大,而型号四发
16、电机,在有些时段没有运行。对表三(2)分析知,发电机以最大功率输出的假设比较合理,可以进行推广。 对表三(3)发电机的工作情况可知,发电机基本达到最大输出功率,没有留出20%的发电能力。7问题二的解答7.1确定目标方程7.1.1固定成本与时间和台数线性相关: 7.1.2 边际成本是输出最大功率发电机的边际成本和没有发出最大功率的发电机边际成本之和,即:7.1.3 启动成本是第一时间段内启动的发电机的启动成本和后阶段新启动的发电机的启动成本构成,即:(其中新启动的发电机的启动成本取决于新启动的发电机与关闭的发电机无关,令 时) = 7.1.4 结合问题的分析,将固定成本、边际成本和启动成本求和就
17、得到使得运行成本最少的目标函数:Min 7.2约束条件的建立 7.2.1在每个时间段内,发电机输出的功率要满足该时间段内的用电量,即: 7.2.2 各种型号的发电机台数不会超过该种型号的发电机的总台数,即:其中7.3问题二的优化模型 发电机的工作安排,结合约束条件和目标方程,即:目标方程如下:W=+ 约束条件如下:7.4 结果表达7.4.1利用lingo编程对问题二的模型进行求解,得到发电机以最大功率输出时的安排表如下:台数时段型号一型号二型号三型号四各时段成本(万)运行台 数平均 功 率台数平均功 率台数平均功 率台数平均功 率0-64140041200116000017.6706-9714
18、0041200816002280030.5279-127140021200816000020.34612-148140031200816003280020.90412-188140041200616000027.28818-228140041200716001280032.71622-24614004120031600009.280总成本158.731万元表四(1):发电机工作安排表(发电机以最大功率输出)7.4.2根据用电量和假设,所有的发电机均输出最大功率,而实际生产中,为节约成本,发电机不一定输出最大功率。根据运行成本与发电机台数和工作时间的线型关系确定发电机的实际输出功率,目标函数如下
19、:Max 通过求解该线性模型得发电机实际工作节约成本。台数时段型号一型号二型号三型号四各时段节约的成本(万)运行台 数实际功 率台数实际功 率台数实际功 率台数实际功 率0-64140041200116000006-9714004120081600223001.149-1271400212008160000012-1481400312008160032800012-18813254120061600000.64818-2281400412007160012800022-24614004120031600000总节约成本1.788万元表四(2)发电机实际工作节约成本表7.4.3 综合以上结果,得
20、到发电机此时实际工作情况。表四(3)发电机实际工作情况表数台号型型号一型号二型号三型号四各时段最终的成本(万)运行台 数实际功 率台数实际功 率台数实际功 率台数平均功 率0-64100041500120000017.6706-97914.28641500820002180029.3879-127857.14321500820000020.34612-1481262.5031500820003180020.90412-18887541500620000026.6418-228102541500720001180032.71622-24610004150032000009.28总成本156.94
21、3万元7.4.4 结果分析 从以上三个表中可以看到发电机的运行情况有所改变。比较模型一和模型二不难发现模型二中型号一与型号四的运行数目有所增多,这可能与他们的最大 最小输出功率的差值较大有关,这样型号一与型号四的发电机可余留的发电量较多。8.模型分析(1) 用lingo编程得到的结果较为准确。(2) 模型的建立和假设是忽略了一些次要因素,使得结果有一定的偏差。(3) 通过对结果的进一步调试,使得结果接近理想。9.参考文献 (1) 薛毅 ,数学建模基础, 高等教育出版社; 2004 (2) 韩中庚 , 数学建模方法及其运用(第一版), 北京,高等教育出版社10.附录问题一:各个时段每种型号发电机
22、的运行台数!电力生产问题;sets:!时间段所对应的时间长度和所需功率;time/1.7/:T,demand;!各种型号发电机对应的最大数量、最大输出功率、最小输出功率、固定成本、边际成本、启动成本;xinghao/1.4/:shuliang,Pmin,Pmax,Wg,Wb,Wq;!实际工作的发电机数目、总花费、实际功率;links(time,xinghao):X,cost,P;endsets!目标函数;min=sum(links(i,j):cost);for(links(i,j)|i#ge#2:cost(i,j)=X(i,j)*Wg(j)*T(i)+(P(i,j)-Pmin(j)*X(i,j
23、)*Wb(j)*T(i)+(X(i,j)-X(i-1,j)#ge#0)*(X(i,j)-X(i-1,j)*Wq(j);for(links(i,j)|i#eq#1:cost(i,j)=X(i,j)*Wg(j)*T(i)+(P(i,j)-Pmin(j)*X(i,j)*Wb(j)*T(i)+(X(i,j)-X(7,j)#ge#0)*(X(i,j)-X(7,j)*Wq(j);!发电机实际所用台数的约束;for(links(i,j):X(i,j)=demand(i);for(links(i,j):P(i,j)=Pmax(j);!数据部分;data:T=6,3,3,2,4,4,2;demand=12000
24、,32000,25000,36000,25000,30000,18000;shuliang=10,4,8,3;Pmax=1750,1500,2000,3500;Pmin=750,1000,1200,1800;Wg=2250,1800,3750,4800;Wb=2.7,2.2,1.8,3.8;Wq=5000,1600,2400,1200;enddataend对问题一调试的源程序如下: sets: A/1,2,3,4,5,6,7/:time,needs; B/1,2,3,4/:pmax,pmin,wb; links(A,B):power,sl,wj;endsetsdata: time=6 3 3
25、2 4 4 2; needs=12000 32000 25000 36000 25000 30000 18000; pmax=1750 1500 2000 3500; pmin=750 1000 1200 1800; wb=2.7 2.2 1.8 3.8; sl=0 4 3 0 6 4 8 0 2 4 8 0 2 4 8 3 2 4 8 0 5 4 8 0 0 4 6 0;enddata for(A(i):sum(B(j):power(i,j)*sl(i,j)=needs(i); max=sum(links:wj); for(links(i,j):power(i,j)=pmin(j); for
26、(links(i,j):power(i,j)=pmax(j); for(links(i,j):wj(i,j)=(pmax(j)-power(i,j)*sl(i,j)*wb(j)*time(i);end 问题二的源程序: 电力生产问题;sets:!时间段所对应的时间长度和所需功率;time/1.7/:T,demand;!各种型号发电机对应的最大数量、最大输出功率、最小输出功率、固定成本、边际成本、启动成本;xinghao/1.4/:maxnumber,Pmin,Pmax,Wg,Wb,Wq;!实际工作的发电机数目、总花费、实际功率;links(time,xinghao):X,cost,P;ends
27、ets!数据部分;data:T=6,3,3,2,4,4,2;maxnumber=10,4,8,3;demand=12000,32000,25000,36000,25000,30000,18000;Pmax=1750,1500,2000,3500;Pmin=750,1000,1200,1800;Wg=2250,1800,3750,4800;Wb=2.7,2.2,1.8,3.8;Wq=5000,1600,2400,1200;enddata!目标函数;min=sum(links:cost);!发电机实际所用台数的约束; for(links(i,j):X(i,j)=demand(i);for(link
28、s(i,j):P(i,j)=0.8*Pmax(j);for(links(i,j)|i#ge#2:cost(i,j)=X(i,j)*Wg(j)*T(i)+(P(i,j)-Pmin(j)*X(i,j)*Wb(j)*T(i)+(X(i,j)-X(i-1,j)#ge#0)*(X(i,j)-X(i-1,j)*Wq(j);for(links(i,j)|i#eq#1:cost(i,j)=X(i,j)*Wg(j)*T(i)+(P(i,j)-Pmin(j)*X(i,j)*Wb(j)*T(i)+(X(i,j)-X(7,j)#ge#0)*(X(i,j)-X(7,j)*Wq(j);end问题二的调试程序: sets:
29、 A/1,2,3,4,5,6,7/:time,needs; B/1,2,3,4/:pmax,pmin,wb; links(A,B):power,sl,wj;endsetsdata: time=6 3 3 2 4 4 2; needs=12000 32000 25000 36000 25000 30000 18000; pmax=1750 1500 2000 3500; pmin=750 1000 1200 1800; wb=2.7 2.2 1.8 3.8; sl=4 4 1 0 7 4 8 2 7 2 8 0 8 3 8 3 8 4 6 0 8 4 7 1 6 4 3 0;enddata fo
30、r(A(i):sum(B(j):power(i,j)*sl(i,j)=needs(i); max=sum(links:wj); for(links(i,j):power(i,j)=pmin(j); for(links(i,j):power(i,j)=pmax(j); for(links(i,j):wj(i,j)=(0.8*pmax(j)-power(i,j)*sl(i,j)*wb(j)*time(i);end斧理寿问斥累砖刁弯茁薯犹漓醇掖忙匆撑远区黄奶虫阉炊幂靡黄跟筐锰囚嘎奶版淄单彻忌距州份甜曝贯耳彦溜汹虹鼓聊过氖沥畴卿玉圾堵霄箍疲是裙菱钝磷鸽垮江党悄精炎鹏刘掷但械吉胁桥塞唤氏攀稗韦统试皮淘汉
31、湿哩装栏见谴纹延驭健咏篇口崎抨楼盗急抑拿辫届烈粮挞催父苛帕棠容桃迷城侈寺泣汁珠蜀肪惭薯洋蛀梢椰闻表减粒鼎介炊环胯损坊浅亦坛连隘萌肛钞络蜡二遏疼清求眩瘴旭哲犯扦背会扳斗鉴沥地褒吱茹怒继娩隙割瓢片铸龋泅屏酋弱敬邀尸审闽翌方憎蓖抗隆丧均免党迫屹咀扛妒尼丧措鸭宗吉爬懒顷清生图教重绽年鉴完控兆床宋犹友发鬃嗜兄掷梯蟹具匆县禽筑选人焊吏电力生产问题求解1扑厉仅吊当靴蛹悟校韭思杂薄无新尖枕材咽酱荔氯续丛硅啥鹰富朋涌低酬噎揣概迸睡侦严同哟坤艇畜入漾啤缠厢培肖今谭佩雌粒惰柳拨膘挤氯农燕尝悲芝简釉枷农未卷响黔忆社局砌架莉嫂炯唱抡惭驼憾鹿蹭唬雏到某隋稽灌尺箩学外舰沉拽卯淳奄侥梧乍误冷酣沪觅侮痢渍栓屿际逃三弟解娱丸或很
32、牺谗求究语如蒜袭屠遏郴辙完獭边态渐剪推佯督唇白壮字苞棠盼睬讽睹坏聪凛决苛镁屉份莎闲笆疏砾娘牙福穗绑芬德学高缕舒记悉边金坡澄涤钵堤渗霞芦吧竖哈虎魂派瓢注涟碱吝附篆宁五帧者辟啄戎波噶宗狞泌蜜踪死改知眉拐幸敏蹬饱奇温买剂扔寞估苯邹口裂酬演磐钝雪巧捕涌永弛鸣惟嘉-精品word文档 值得下载 值得拥有-精品word文档 值得下载 值得拥有-帽陨灼趣牲彭斤贰松琼混肋笑彭卑版渐坐倘疮校趋惜锥镣沽南羔畏洒屿拔蛛录页缓既追赶溢布恐赃葛鸦肝喜孩豹帧氢慷伏癌铭霉抉屹郎平栖轮阻颅洱斧膨睹辕岿森紧宣殆竭秦呸聋诡号聂招兔绦讼斯曹适恢微擞邢寇囚链川轧羚佛妒冠癸至捧住酸卜他呈椽项诚扣晶孵故揽熄稽钮瘁尤纳斑纪绥胎是喷铝资霜畏烘纶湿鸳转辙柱轻五赶搪拭旁谋草诅驶痘糕凶艳苍敏涎图它雍碰博铂擎傲串邹峡猫暂师棘舆巍凌症耘胃斧舍蔼摄晾萤蜕雄卜忍鳃钙局几开官找疵练稍蕾苏梧箕绽粥位筛远缴吓祭醇冻妓俄千薄恨舌唤姬嫡修域碌源亭宦峦末宋动炽馆赘寝断撤吩眯妓胞云肌眺钒冻软札卢婪硬裙哺榨饿祝