计算机建设模型Word文档下载推荐.docx
《计算机建设模型Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《计算机建设模型Word文档下载推荐.docx(11页珍藏版)》请在冰豆网上搜索。
代码附录--------------------------------------------10
最佳电站投资建设模型
摘要
本次论文解决“关于电站建设最优”问题,根据论文的要求,采用整数规划的相关知识及逐点分析方法进行讨论。
用到的编译器为VC++6.0,与此同时由于本论题的特殊性,主要应用整数规划的知识以及穷举法解决整数规划方程。
建立的模型为“最佳电站建设模型”。
关键词:
数整规划逐点分析穷举法
一问题重述
某地区在制定十年电力发展规划时遇到这样一个问题:
根据电力需求预测得知,该地区在十年后发电装机容量需要增加180万千瓦,那时的年发电量需要增加100亿度。
根据调查和讨论,电力规划的备选技术方案有三个:
扩建原有的火电站,但最多只能再安装五台10万千瓦的发电机组;
新建水电站,但最多只能安装四台25万千瓦的发电机组;
或再新建一个火电站,最多只能安装四台30万千瓦的发电机组。
通过调研和计算,获得有关的参数如表1所示。
表中负荷因子为全年满功率运行天数与全年总天数之比。
根据该地实际调查原有火电站平均全年满功率运行天数为241天,水电站和新建的火电站应分别为146天和255天,而全年365天,故折算得表中数据。
表中资本回收因子是由如下数据所确定的,火电站的回收年限取15年,年利息率为0.06;
水电站的回收年限取30年,年利息率为0.04。
二基本假设
1.不考虑每年投资的小额差距,以下论文的撰写均是根据表中的数据进行讨论的。
2.不考虑机器的每年运转的状态,也就是忽略机器每年运转的负荷因子、年发电量的差距。
3.不考虑建设电站的延期时间性,本论文的撰写均是采用表中的稳定数据。
三符号说明
扩建旧火电站,需要的扩建的台数
新建水电站,需要建设的水电站台数
新建火电站,需要建设的火电站台数
前期投资工程2,即是否建设新的水电站
前期投资工程3,即是否建设新的火电站
扩建的火电站,每台机子的年发电量
新建的水电站,每台机子的年发电量
新建的火电站,每台机子的年发电量
四问题分析
1.原论题的表:
工程投资
单机容量
(万千瓦)
允许装机台数
资本回收因子
年运行成本(百万元/亿度)
负荷因子
备选方案
工程特点
前期工程投资(百万元)
单机设备投资(百万元)
1
扩建旧火电站
21
10
5
0.103
4.11
0.66
2
新建水电站
504
70
25
4
0.0578
2.28
0.4
3
新建火电站
240
65
30
3.65
0.7
2.依照表中给定的数据,可知:
第一,如果建设发电站,就必须是整个工程的建立。
也就是说建立的发电组必须是整数的。
由此可以确定
第二,由表中前期工程投资的数据分析,可知:
最后
1.
2.
3.
五模型的建立
根据上述三点的分析,如果要求得到最好的经济效果,我们只需要建立资本的最少投资就行了。
也就是建立投资成本的最低目标函数,简化原问题的要求。
●模型最佳电站模型
逐点分析:
(1).满足装机容量的需求约束:
(2).满足十年后的发电量需求:
(3).根据上述“问题的分析”可知:
且
(4)
方案一,每台机组年回收成本=21*0.103=2.163(百万元)
方案二,每台机组年回收成本=70*0.0578=4.046(百万元)
方案三,每台机组年回收成本=65*0.103=6.695(百万元)
同时:
方案二前期工程投资资本回收成本=504*0.0578=29.1312(百万元)
方案三前期工程投资资本回收成本=240*0.103=24.72(百万元)
所以目标函数:
Min=2.163
+4.046
+6.695
+29.1312
+24.72
+4.11
+2.28
+3.65
=25.926376
+24.0188
+73.8404
具体整数规划模型:
六模型的求解
模型的求解:
对于此次方程的解,因为必须是整数,而且
所以观其形式,我们可以采用穷举法进行方程的整数解,所以本人采用的是VC++6.0进行编程的,结果截图:
七模型检验
这里主要采用穷举法进行求解所有可以实施的方案,因为方案还是比较的少的,最多有所600种。
所以采用编程的方式进行穷举,将所有的可行的方案(也即满足约束条件)结果存在一个数组中,再选择出一个最优的方案。
得到数据如下:
七模型的评价
1、模型的优点
(1)建立的模型能够完全的解决题中的问题。
而且全部的可行方案都可以由模型解出来,非常直观。
(2)模型解答,主要采用的是C语言的方式进行的,因为其编译器的庞大,能够处理较为复杂的数据,采用的方法是穷举法,能够查看各个可行方案所要的资金,读者可对比的看数据是否为最优的。
(3)模型的建立采用逐点分析的方法建立的,每一部的建立,都有详细的说明。
2、模型的缺点
我觉得我所建立的模型,仅仅只是关于整数规划以及如何解整数规划的方程,并没有由此推出新的理论或者值得称赞的理论,所以我觉得此模型仅仅可以作为关于整数规划的应用与推广,此后但凡关于整数规划的问题,都可以仿照此模型是如何解出的。
参考文献
[1]赵静,但琦.《数学建模与数学实验.》,整数规划(p57)
[2]江道琪,何建绅,陈松华.《实用线性规划方法及其支持系统.》整数规划及其应用模型
[3]林雪松,周婧,林德新.《MATLAB7.0应用集锦》,
整数规划解法思路
代码附录
#include"
stdio.h"
stdlib.h"
typedefstruct{
doublem;
intx1;
intx2;
intx3;
intx4;
intx5;
}max;
//专用于存放方案一、方案二、方案三、及是否需要前期工程
voidselect_min(maxm[],intsize,int*min);
//选择一个最小的值
main()
{
inti,j,k,m,v=0,min;
doublen;
maxhold[600];
//这里600=6*5*5*2*2
for(i=0;
i<
6;
i++)
{
for(j=0;
j<
5;
j++)
{
for(k=0;
k<
k++)
{
m=10*i+25*j+30*k;
n=5.782*i+8.76*j+18.39*k;
if((m>
=180)&
&
(n>
=100))//约束条件简化
{
if((j==0)&
(k==0))//也是约束条件的简化
{
hold[v].m=25.925376*i+24.0188*j+73.8404*k;
hold[v].x1=i;
hold[v].x2=j;
hold[v].x3=k;
hold[v].x4=0;
hold[v].x5=0;
v++;
}
(k!
=0))
hold[v].m=25.925376*i+24.0188*j+73.8404*k+24.72;
hold[v].x5=1;
if((j!
=0)&
(k==0))
hold[v].m=25.925376*i+24.0188*j+73.8404*k+29.1312;
hold[v].x4=1;
hold[v].m=25.925376*i+24.0188*j+73.8404*k+29.1312+24.72;
}
}
}
}
printf("
投资总额方案一方案二方案三方案二前期是否投资方案三前期是否投资\n"
);
v;
printf("
%f%d%d"
hold[i].m,hold[i].x1,hold[i].x2);
%d%d%d\n"
hold[i].x3,hold[i].x4,hold[i].x5);
\n\n\t\t\t\t总共有%d种方案!
\n"
v);
select_min(hold,v,&
min);
\n\t\t最优方案如下:
"
\n\n\t\t模型最优(最少)的投资为:
%f"
hold[min].m);
\n\t\t此时采取的方案为:
\t\t原来旧火电站需要扩建%d台10万千瓦发电组!
hold[min].x1);
\t\t新建电站需要建设%d台25万千瓦发电组!
hold[min].x2);
\t\t新建火电站需要建设%d台30万千瓦发电组!
hold[min].x3);
\t\t%d\n"
hold[min].x4);
hold[min].x5);
system("
pause"
}
voidselect_min(maxm[],intsize,int*min)
{//选择一个最小的值,min用于存放最小值的下标
inti;
doubletemp=10000;
size;
if(temp>
m[i].m)
temp=m[i].m;
*min=i;