您的当前位置:首页运筹学课程设计报告书---运输问题的表上作业法

运筹学课程设计报告书---运输问题的表上作业法

2022-11-11 来源:爱问旅游网


运筹学课程设计报告书

专业

班级 学号 姓名 LMZZ 日期 2011.09.01

设计题目:运输问题的表上作业法 设计方案:运输问题是一种应用广泛的网络最优化模型,该问题的主要目的是为物资调运、车辆高度选择最经济的运输路线。有些问题,如m台机床加工零件问题、工厂合理布局问题,虽要求与提法不同,经适当变化也可以使用本模型求得最佳方案。 运输问题的一般提法: 某种物资有m个产地Ai,产量是ai(i=1,2,…,m),有m个销售地Bi,销量(需求量)是bj(j=1,2,…,m)。若从Ai运到Bi单位运价为dij(i=1,2,…,m;j=1,2,…,m),又假设产销平衡,即 abii1j1mnj 问如何安排运输可使总运费最小? 若用xij(i=1,2,…,m;j=1,2,…,n)表示由Ai运到Bj的运输量,则平衡运输问题可写出以下线性规划模型: 约束条件 minZdijxiji1j1mn nxijai(i1,2...,m)j1mxijbj(j1,2...,n)i1xij0(i1,2...,m;j1,2,...,n) 表上作业法原理同于单纯形法,首先给出一个初始的调运方案(实际上是初始基本可行解),求出各非基变量的检验数去判定当前解是否为最优解,若不是则进行方案调整(即从一个基本可行解转换成另一个基本可行解),再判定是否为最优解,重复以上步骤,直到获得最优解为止。这些步骤在表上进行十分方便。 操作过程在表上进行 方案实施:通过运输问题在C++程序中的运用,从而实现方案的最优。程序主要分两部:(1)求解,(2)最优解判断 结果与结论:程序运行过程中,依次输入所需要的运价,产量,销量等数据,单击回车可以再次现实所需数据,按任意键可以运行至求出初始可行解并显示,再次按任意键程序进行最优解的判断,并求出最优解,显示在程序页面上,从而可以得到该运输问题的最优方案。 收获与致谢:收获:通过对《运筹学》运输问题的课程设计对《运筹学》的书本知识得到了进一步的巩固,具体化就是加深了我对运输问题深层理解,使我们能成熟的理解和应用运筹学模型,使我们认识运筹学在生产与技术管理和经营管理决策中的作用,领会其基本思想和分析与解决问题的思路。为我们以后毕业参加工作单位的策略策划打下坚实的基础。还又我了解并发现了很多调试程序的方法,而且懂得了如何处理错误的方法。对C语言以及C++的使用得到了进一步的提高。 经历了这次课程设计,不仅对我的学习提供了帮助,而且在意志力方面也得到了锻炼。没有足够的耐力和信心就很难坚持对课程设计每一步的。实践是捡验真理的唯一标准。通过实践,使我们加强了对理论知道的理解。 致谢:首先感谢老师给了我们这次锻炼的机会,让我们能够学会怎么去运用运筹学的方法解决实际的问题,其次是感谢我的队友——,正是他和我的一起努力才使我们能按时完成这次课程设计,这使我明白了团队合作的重要性。还有就是感谢我的学长在C++教育方面的帮助。 参考文献:《运筹学》 《C++程序基础教程》 附件:程序的主函数: int main() { int M, N, i, j; double* C; // 存储运价, 产量及销量 double* X; // 存储运量分配方案 double z; double sum; int psum,csum cout<<\"请输入产地/销地数量: \"; cin>>psum>>csum M=psum+1; N=csum+1; X=new double[sizeof(double)*(M-1)*(N-1)]; C=new double[sizeof(double)*M*N]; // 把运价, 供应量和需求量的数据读入到数组 c( i, j ) cout<<\"输入所需要的相关数据(按顺序):\"<>z; c(i,j)=z; } } cout<<\"\\n============= 显示数据 ================\\n\"; for(i=0;i=BIG_NUM) cout<

因篇幅问题不能全部显示,请点此查看更多更全内容