- 1、本文档共11页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
PAGE
数学规划课程设计
题目 最小元素法求初始基本可行解
姓名
学号
成绩
摘要:最小元素法的基本思想就是就近供应,即从单位运价表中最小的运价(称为最小元素)开始确定产销关系。用最小元素法得到的()是一个基本可行解,画*号的数对应的变量都是基变量。
关键字:最小元素法 就近供应 基本可行解 基变量
平衡问题题目数学形式及本课程设计题目分析
1.1 平衡问题
平衡运输问题的一般提法是:设某种货物有m个产地 , ,…,,每个产地的产量分别是,,…,;另有n个销地,,…,,每个销地的销量分别是,,…,。假定产销平衡,即=。此外,已知由产地向销地运一单位货物的运价为,问怎样调运货物,才能使总运费最少。
设由产地向销地运送的货物量是,问题的数学模型是:求X=(,,…,,,,…,,,…,),使其满足:
minS=
s.t.
由条件,,,是上式的一个可行解。由基本定理知上式一定有基本可行解
1.2 本课程设计题目分析
销地
产量
产地
3
5
9
1
3
4
2
3
8
7
2
7
6
4
4
销量
2
1
5
6
用最小元素法求初始基本可行解
分析:从上表中找出最小运价,先从开始,先给以较大的值,这表示现将的产品优先供给,产量是3,但是的销量是6,所以缺3。画好一张表格,把相继求出的变量的值填在表上。我们已求出,在6的右上方写3,故在表格上打上叉表示无运输量,在没有打叉的位置找到最小运价同上得,则则产量优先供给,则产量还余2,重复以上步骤可以求出, ,,,,,得表如下所示
销地
产量
产地
×4
3
×10
5
×13
9
3*
1
3
7
×2
4
1*
2
5*
3
1*
8
7
3
2*
2
×9
7
×7
6
2*
4
4
销量
2
1
5
6
求得第一个基本可行解:X=(0,0,0,3,0,1,5,1,2,0,0,2)
利用C语言完成此运算过程
2.1 编程思想:利用for循环计算找出比较数组中的一个最小元素直到这些最小元素只和为产量或者销量则终止程序,输出这些最小元素组成的矩阵则是我们需要的结果。
2.2 程序实现代码:
#includestdio.h
#includestdlib.h
float x;
int r,s;
float ff(float d[100][100],int b[100][100],int *m,int *n);
void main()
{
printf(************* 最小元素法求初始基本可行解 *******\n\n);
FILE *fp;
int i,j;
float a[100][100],c[100][100];
int g[3][4]= {0,0,0,3,0,1,5,1,2,0,0,2};
int b[100][100];
fp=fopen(stdin.txt,r);
fscanf(fp,%d %d ,r,s);
for(i=0;ir;i++)
for(j=0;js;j++)
fscanf(fp,%f ,a[i][j] );
fclose(fp);
printf(产地A向销地B的单位运价,前%d行,%d列,产量,销量:\n,r-1,s-1);
for(i=0;ir;i++)
{
for(j=0;js;j++)
printf(%1.1f ,a[i][j]);
printf(\n);
}
for(i=0;ir;i++)
{
for(j=0;js;j++)
{
b[i][j]=0;
c[i][j]=0;
}
}
int k=0,l=0,flag=1,p;
for(p=0;p2;p++)
{
ff(a,b,k,l);
if(a[k][s-1]a[r-1][l]a[k][s-1]0a[r-1][l]0)
{
c[k+1][l+1]=a[k][s-1];
a[r-1][l]=a[r-1][l]-a[k][s-1];
for(j=0;js-2;j++)
{
a[k
文档评论(0)