运筹学课程设计_第1页
运筹学课程设计_第2页
运筹学课程设计_第3页
运筹学课程设计_第4页
运筹学课程设计_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

/XX建筑科技大学课程设计〔论文任务书一、本次课程设计应达到的目的1.掌握运筹学知识在管理问题中应用的基本方法与步骤;2.巩固和加深对所学运筹学理论知识及方法的理解与掌握;3.培养与锻炼学生从管理实践中提炼问题、分析问题、构建模型求解问题的综合应用能力;4.上机练习,了解与掌握几种常用的运筹学计算软件及其使用与操作方法;5.锻炼并初步掌握运筹学模型求解程序的编写方法与技术。6.初步了解学术研究的基本方法与步骤,并通过设计报告的撰写,了解学术报告的写作方法。二、本次课程设计任务的主要内容和要求1.结合专业知识,对某一实际管理问题进行分析,调查收集相关数据,并整理出符合问题特征的数据,包括目标因素、约束因素以及必须的参数与系数等等;2.在上一步分析基础上,按照运筹学建模的基本方法与要求,通过抽象处理,建立所研究问题的运筹学模型,判断模型的类型并选择求解方法;3.上机练习,学习常用运筹学计算软件的使用与基本操作方法,并选择其中一种对所建运筹学模型进行求解,得出最优解、灵敏度计算等相关计算结果;4.结合理论课以及计算机程序设计课程所学的基本知识,编写线性规划单纯形法的计算程序,别用所编写程序和已学习的某种运筹学计算软件,并分求解相关课后习题,对所编写的算程序进行验证;5.总结设计过程,整理与记录设计中的关键工作与成果,撰写设计报告。三、应收集的资料及主要参考文献:1.应收集的资料:[1]研究对象的现状数据材料[2]与所建模型的参数、系数、约束条件等因素相关的数据材料2.主要参考文献:[1]杨茂盛.运筹学<第三版>.XX科学技术出版社,2006[2]运筹学编写组.运筹学<第三版>.清华大学出版社,2005[3]徐玖平,胡知能,王緌.运筹学<第二版>.北京:科学出版社,2004[4]胡运权.运筹学基础及应用.XX:XX工业大学出版社,1998[5]陈汝栋,于延荣.数学模型与数学建模<第2版>.国防工业出版社,2009[6]刘建永.运筹学算法与编程实践:Delphi实现.清华大学出版社,2004[7]谢金星,薛毅.建优化建模LINDO/LINGO软件.清华大学出版社,2005设计总说明运筹学在实际生活中的应用主要解决两类问题,而本次设计是研究烟草种植的成本最小化问题。在一个系统中经常遇到两类决策问题:一类是如何利用确定的资源去完成最大的任务,另一类是如何利用最少的资源来完成一个确定的任务。问题的背景是某烟草基地的烟草种植对肥料的合理分配问题,可以有多种方案,但要使成本资金达到最小,节约成本,增加经济效益。从表面现象难以做出准确的决策。这就需要用运筹学中的有关知识,通过对一个问题条件分析,建立模型,求解问题,提高对解进行分析与评价的综合运用能力。并利用lindo计算软件求解问题的操作掌握计算软件的基本操作方法,了解计算机在运筹学中的运用,提高自身分析问题、解决问题的能力。到最后求解出最优的研究路线,来得出问题的最优方案。关键词:运筹学,烟草肥料,最优搭配,成本最小化,LINDO目录1绪论-4-1.1研究背景-4-1.2研究意义与目的-4-1.3研究的内容-5-1.4研究主要方法与思路-6-2理论方法的选择-7-2.1所研究问题特点-7-2.2拟采用的运筹学理论方法特点-7-2.3理论方法的实用性及有效性论证-7-3模型的建立-8-3.1基础数据的确定-8-3.2变量的设定-8-3.3目标函数的建立-8-3.4限制条件的确定-9-3.5模型的建立-10-4模型的求解及解的分析-11-4.1模型的求解-11-4.2解的分析及评价-15-5总结……………………-16-代码:-16-参考文献:-22-1绪论1.1研究背景近两年来,在玛纳斯县境内、塔西河冲积扇的中部进行了烤烟的试验和试种。试种结果表明,玛纳斯县种植的G-140,NC89,中烟14、15等新品种,均获得了可喜的成果。1985~1986年全县试种烤烟700亩,收获优质烟叶71490.5公斤,总产值达184157.84元。1987年扩种面积1000亩。预计比往年有较大幅度的增长。经XX省烟草研究所化验,烟叶指标基本上达到了国家规定的质量标准。而肥料是作物增产的物质基础,合理施用肥料是提高烟叶产量和质量的一项重要技术措施。烤烟施肥的目的不但要提高单位面积上的产量和经济效益,更重要的是要有利于烟叶品质的形成与提高。本课程设计通过对烟草施肥进行研究,运用运筹学的有关知识,对研究数据进行规划、建模实现施肥搭配优化。1.2研究意义与目的研究的意义:通过本次研究,可以得到此题的最佳解决方案,并可以建立数学模型,把其推广至同类问题,为其他类似问题提供快捷、高效的方法。让烟草种植者再以后遇到类似问题时可以一定的参考文献,可以从一定程度上提高种植者的收入,作到合理的资金分配和最有效的资源的配制。研究的目的:1>巩固和学习曾经学习过的运筹学课程,学会用理论解决实际问题。2>种植花费最小,获得最大收益。3>通过运筹设计,一定程度上解决种植成本分配,助决策者或决策机构对其所控制的活动进行实现优化决策。加快烟草种植的标准化步伐,增强产品的市场竞争力,提高种植的效益,刺激并提高烟草种植者的种植积极性。4通过利用运筹学软件求解模型的操作,掌握运筹学计算机软件的基本操作方法。1.3研究的内容通过对资金的计算和生产的需要的分析可以制定出有效的肥料搭配,使农民既可以提高烟草产量又可以合理改善其品质。本次研究针对以下存在问题:〔一、改善烟草的肥料搭配,并且不影响烟草种植新技术的推广工作,提高烟草生产效益。〔二、改善标准化生产水平低的状况。〔三、不同时期的烟草所用的肥料搭配不同。本次研究课题是:某烟草种植基地所用的化肥是由各种肥料配混而成。包括氮肥、磷肥、钾肥、复XX,且各种烟草的肥料配比成分及比例是不一样的,这里以每亩烟草为单位。具体需要如下表:表1:各种肥料及配比关系表种类比例种类氮肥磷肥钾肥复XX经济烟草≥2/9≥2/9≥3/9≤2/9高档烟草≥2/9≥1/9≤1/3≤1/3烟草苗≤1/3≤1/30≥1/3虽然各种烟草的肥料比例各不一样,但各种原料每周的最大供应量是确定的。根据近期调查和统计,具体数据如下:表2:各种原料的单价及供应量表原料种类氮肥磷肥钾肥复XX单价〔元/斤0.80.032.21.5周供应量〔斤42323050再根据烟草的种类及数目确定每周需要的肥料数量,数据如下表:表3:各种肥料需求表:烟草种类种类经济烟草高档烟草烟草苗周需求量7447331.4研究主要方法与思路在现实生活中,如果若干项活动都要使用数量有限的某种资源,或者一项或几项活动生产出同一种资源要供另外一些活动来使用,那么这些活动之间就存在着相互抵赖的关系。这种有限的资源可以是资金、材料、劳力、或生产设备或经营设备。在任何实际活动中,这些资源中总有一些或几种必然要限制利润的最大化或成本的最小化。在这中情况下找出最好的活最优的分配方案就是线性规划的任务。本次研究用运筹学线性规划解决的实际问题是如何使种植费用最小,首先根据自己所需要结局的问题建立线性规划的数学模型,其次对已得模型利用计算机求解这个线性规划,得出最优解,确定符合实际再施于实践。本次研究将采用运筹学中线性规划的有关思想方法,从而取得问题的最优解决方案。主要思路是:从要求和条件入手,分析数据结构,建立恰当的数学模型,用Lindo软件在计算机上求解。2理论方法的选择2.1所研究问题特点既然是合理搭配必定会遇到各种线性规划的条件。利用并不是盲目的,而是在一定的条件下进行的。要求成本最小,肥料选用不能为负数。求解过程在Lindo软件上进行计算。2.2拟采用的运筹学理论方法特点将采用线性规划的思想方法对此题求解。线性规划是运筹学中发展最完善,并且应用最广泛的一个分支,其研究的主要对象有:一类是给定了人力、物力资源,研究如何用这些资源完成任务,另一类是研究如何统筹安排,尽量以最少的人力、物力资源完成该项任务。在本设计中研究的是资金一定的条件下,合理规划资金,使烟农种植费用花费最少。在本次设计中,我利用到了处理线性规划所需的电脑软件:LINDO,LINDO一种专门用于求解数学规划问题的软件包。由于LINDO执行速度很快、易于方便输入、求解和分析数学规划问题。因此在数学、科研和工业界得到广泛的应用。LINDO主要用于解线性规划、非线性规划、二次规划和整数规划等问题。也可以用于一些非线性和线性方程组得球界以及代数方程求根等。LINDO中包括了一种建模语言和许多常用的数学函数〔包括大量概论函数,可供使用者建立规划问题是调用。2.3理论方法的实用性及有效性论证此题的特点与运筹学中线性规划的第二类问题的特点完全一致,故采用线性规划求解此题是可行的。3模型的建立3.1基础数据的确定各种肥料配比关系及供应和需求关系3.2变量的设定为了方便直观起见,我们将表1、表2和表3放在一起,来确定变量。表4:各种肥料配比关系及供应、需求关系表原料单价〔元/斤周供应量〔斤肥料配比关系经济烟草A1高档烟草A2烟草苗A3氮肥B10.8≤42≥2/9≥2/9≤1/3磷肥B20.03≤32≥2/9≥1/9≤1/3钾肥B32.2≤30≥1/3≤1/30化肥B41.5≤50≤2/9≤1/3≥1/3各种肥料周需求量≥74≥47≥33设配制M1斤A1,M2斤A2和M3斤A3,所用的B1、B2、B3、B4四种原料数量分别为Xij〔i=1,2,3;j=1,2,3,4斤。再设Z,Z—配料的总成本。其中,Z,Xij的取值范围都是大于或等于0。3.3目标函数的建立根据问题的特点,我们要求的目标函数是使Z=0.8〔X11+X21+X31+0.03〔X12+X22+X32+2.2〔X13+X23+X33+1.5〔X14+X24+X34的最小的解。这里的是单位〔一千克最优目标,因为种植肥料的供应量总量一定,需要确定是配比的比例,通过确定最优配比比例达到种植肥料的最低花费。3.4限制条件的确定假设混合调配的过程中没有重量损失,可以得出以下式子:X11+X12+X13+X14=M1〔1-1X21+X22+X23+X24=M2〔1-2X31+X32+X33+X34=M3〔1-3由配比关系可得:X11≥2/9M1,X12≥2/9M1,X13≥1/3M1,X14≤2/9M1〔1-4X21≥2/9M2,X22≥1/9M2,X23≤1/3M2,X24≤1/3M2〔1-5X31≤M3,X32≤2/3M3,X33=0M3,X34≥1/3M3〔1-6在式〔1-1两边同乘以2/9得:2/9X11+2/9X12+2/9X13+2/9X14=2/9M1又因〔1-4的第一项为:X11≥2/9M1所以有:2/9X11+2/9X12+2/9X13+2/9X14≤X11移项整理得:-7/9X11+2/9X12+2/9X13+2/9X14≤0同理将式〔1-1〔1-2〔1-3分别与式〔1-4〔1-5〔1-6相结合,得其它约束条件:5/9X11-4/9X12+5/9X13+5/9X14≤0-2/9X11-2/9X12-2/9X13+7/9X14≤0-7/9X21+2/9X22+2/9X23+2/9X24≤01/9X21-8/9X22+1/9X23+1/9X24≤0-2/3X21-2/3X22+1/3X23-2/3X24≤0-2/3X31+1/3X32-2/3X33-3/3X34≤01/3X31+1/3X32+1/3X33-2/3X34≤0因为供应量也是有限的,所以还有:X11+X21+X31≤42X12+X22+X32≤32X13+X23+X33≤30X14+X24+X34≤50又因为需求量也是有底线的,所以:X11+X12+X13+X14≥74X21+X22+X23+X24≥47X31+X32+X33+X34≥33以及:X31=0,X13=0,X33=0,X24=0和Xij≥03.5模型的建立综上所述,得该问题的线性规划模型MinZ=0.8〔X11+X21+X31+0.03〔X12+X22+X32+2.2〔X13+X23+X33+1.5〔X14+X24+X34S.T.-7/9X11+2/9X12+2/9X13+2/9X14≤05/9X11-4/9X12+5/9X13+5/9X14≤0-2/9X11-2/9X12-2/9X13+7/9X14≤0-7/9X21+2/9X22+2/9X23+2/9X24≤01/9X21-8/9X22+1/9X23+1/9X24≤0-2/3X21-2/3X22+1/3X23-2/3X24≤0-2/3X31+1/3X32-2/3X33-3/3X34≤01/3X31+1/3X32+1/3X33-2/3X34≤0X11+X21+X31≤42X12+X22+X32≤32X13+X23+X33≤30X14+X24+X34≤50X11+X12+X13+X14≥74X21+X22+X23+X24≥47X31+X32+X33+X34≥33X31=0,X13=0,X33=0,X24=0Xij≥04模型的求解及解的分析4.1模型的求解在此由于约束条件及变量比较多,我们运用lindo软件来进行计算。Lindo是一个专门对线性规划问题求解的软件,它的运用简化了人工计算时的复杂性。在原来的约束条件经过整理后在Lindo输入:Min0.53X11+0.53X21+0.53X31+0.76X12+0.76X22+0.76X32+0.3X13+0.3X23+0.3X33+1.5X14+1.5X24+1.5X34ST-0.778X11+0.222X12+0.222X13+0.222X14<=00.556X11-0.444X12+0.556X13+0.556X14<=0-0.222X11-0.222X12-0.222X13+0.778X14<=0-0.778X21+0.222X22+0.222X23+0.222X24<=00.111X21-0.889X22+0.111X23+0.111X24<=0-0.667X21-0.667X22+0.333X23-0.667X24<=0-0.667X31+0.333X32-0.667X33-0.667X34<=00.333X31+0.333X32+0.333X33-0.667X34<=0X11+X21+X31<=120X12+X22+X32<=320X13+X23+X33<=60X14+X24+X34<=130X11+X12+X13+X14>=420X21+X22+X23+X24>=94.5X31+X32+X33+X34>=107.1X11>=0X12>=0X13=0X14>=0X21>=0X22>=0X23>=0X24=0X31=0X32>=0X33=0X34>=0END运行后的结果为:LPOPTIMUMFOUNDATSTEP10OBJECTIVEFUNCTIONVALUE1>507.2000VARIABLEVALUEREDUCEDCOSTX1199.0209960.000000X2120.9790000.000000X310.0000000.000000X12306.4790040.000000X2213.5210000.000000X320.0000000.000000X130.0000000.000000X2360.0000000.000000X330.0000000.000000X1414.5000000.000000X240.0000000.000000X34107.0999980.000000ROWSLACKORSURPLUSDUALPRICES2>5.7809990.0000003>72.9590000.0000004>78.7399980.0000005>0.0000000.0000006>3.0315000.0000007>3.0315000.0000008>71.4356990.0000009>71.4356990.00000010>0.0000000.97000011>0.0000000.74000012>0.0000001.20000013>8.4000000.00000014>0.000000-1.50000015>0.000000-1.50000016>0.000000-1.50000017>99.0209960.00000018>306.4790040.00000019>0.0000000.00000020>14.5000000.00000021>20.9790000.00000022>13.5210000.00000023>60.0000000.00000024>0.0000000.00000025>0.0000000.00000026>0.0000000.00000027>0.0000000.00000028>107.0999980.000000NO.ITERATIONS=10RANGESINWHICHTHEBASISISUNCHANGED:OBJCOEFFICIENTRANGESVARIABLECURRENTALLOWABLEALLOWABLECOEFINCREASEDECREASEX110.5300000.000000INFINITYX210.530000INFINITY0.000000X310.530000INFINITYINFINITYX120.7600000.0000000.000000X220.7600000.0000001.200000X320.760000INFINITY0.000000X130.300000INFINITYINFINITYX230.3000001.200000INFINITYX330.300000INFINITYINFINITYX141.5000000.0000000.000000X241.500000INFINITY0.000000X341.5000000.0000001.500000RIGHTHANDSIDERANGESROWCURRENTALLOWABLEALLOWABLERHSINCREASEDECREASE20.000000INFINITY5.78099930.000000INFINITY72.95900040.000000INFINITY78.73999850.00000020.9790003.03150060.000000INFINITY3.03150070.000000INFINITY3.03150080.000000INFINITY71.43569990.000000INFINITY71.43569910120.00000014.5000005.78099911320.00000014.5000008.4000001260.0000003.0315008.40000013130.000000INFINITY8.40000014420.0000008.40000014.5000001594.5000008.4000004.54497716107.0999988.400000107.099998170.00000099.020996INFINITY180.000000306.479004INFINITY190.00000060.0000000.000000200.00000014.500000INFINITY210.00000020.979000INFINITY220.00000013.521000INFINITY230.00000060.000000INFINITY240.0000000.0000000.000000250.0000005.7809990.000000260.0000000.000000INFINITY270.00000060.0000000.000000280.000000107.099998INFINITY4.2解的分析及评价由此可见,计算机在7次迭代后算出每个月的最少花费为507.2元,这时:X11=99.021,X21=20.979,X31=0,X12=235.043,X22=13.521,X32=71.436,X13=0,X23=60,X33=0,X14=85.936,X24=0,X34=35.664通过以上计算结果可以看出,最优值符合实际情况,如果种植户按这个结果来配料,将在满足肥料需求及其供给的情况下,使自己的利益得到最大化的满足。5总结通过完成本次课程设计,将所学的运筹学知识进行了简单实现。从题目的选定、背景的调研、实际数据的查证,到问题分析、问题建模和最后的解决问题,巩固了运筹知识。在使用计算机软件解决问题时,能将实际问题联系到计算机上,提高了解决问题的效率。通过LINDO的使用,加强了运筹问题的计算能力。在使用程序编译并将问题实现后,给以后遇到类似问题时可以直接通过程序将其解决。在调研烟草数据过程中,更加意识到实践的重要性。本次设计不仅是巩固了运筹知识,更是开阔了视野,初步了解烟草行业。在实现设计过程中遇到过复杂问题,比如问题如何分析、模型如何建立,都是本次设计的难点。在查阅资料后虽解决的部分问题,可模型还有不严整的地方,在以后建模中将会加强。代码:#include<stdio.h>

#include<math.h>

#definem3/*定义约束条件方程组的个数*/

#definen5/*定义未知量的个数*/

floatM=1000000.0;

floatA[m][n];

/*用于记录方程组的数目和系数;*/

floatC[n];

/*用于存储目标函数中各个变量的系数*/

floatb[m];

/*用于存储常约束条件中的常数*/

floatCB[m];

/*用于存储基变量的系数*/

floatseta[m];

/*存放出基与入基的变化情况*/

floatdelta[n];/*存储检验数矩阵*/

floatx[n];

intnum[m];

/*用于存放出基与进基变量的情况*/

floatZB=0;

/*记录目标函数值*/

voidinput<>;

voidprint<>;

intdanchunxing1<>;

intdanchunxing2<inta>;

voiddanchunxing3<inta,intb>;intdanchunxing1<>

{

inti,k=0;

intflag=0;

floatmin=0;

for<i=0;i<n;i++>

if<delta[i]>=0>

flag=1;

else{flag=0;break;}

if<flag==1>

return-1;

for<i=0;i<n;i++>

{

if<min>delta[i]>

{min=delta[i];k=i;}

}

returnk;

}intdanchunxing2<inta>

{

inti,k,j;

intflag=0;

floatmin;

k=a;

for<i=0;i<m;i++>

if<A[i][k]<=0>

flag=1;

else{flag=0;break;}

if<flag==1>

{printf<"\n该线性规划无最优解!\n">;return-1;}

for<i=0;i<m;i++>

{

if<A[i][k]>0>

seta[i]=b[i]/A[i][k];

elseseta[i]=M;

}

min=M;

for<i=0;i<m;i++>

{

if<min>=seta[i]>

{min=seta[i];j=i;}

}

num[j]=k+1;

CB[j]=C[k];

returnj;

}voiddanchunxing3<intp,intq>

{

inti,j,c,l;

floattemp1,temp2,temp3;

c=p;/*行号*/

l=q;/*列号*/

temp1=A[c][l];

b[c]=b[c]/temp1;

for<j=0;j<n;j++>

A[c][j]=A[c][j]/temp1;

for<i=0;i<m;i++>

{

if<i!=c>

if<A[i][l]!=0>

{

temp2=A[i][l];

b[i]=b[i]-b[c]*temp2;

for<j=0;j<n;j++>

A[i][j]=A[i][j]-A[c][j]*temp2;

}

}

temp3=delta[l];

for<i=0;i<n;i++>

delta[i]=delta[i]-A[c][i]*temp3;

}

voidprint<>

{

inti,j=0;

printf<"\n\n">;

for<i=0;i<m;i++>

{

printf<"%8.2f\tX<%d>%8.2f",CB[i],num[i],b[i]>;

for<j=0;j<n;j++>

prin

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论