欢迎来到天天文库
浏览记录
ID:13762108
大小:27.71 KB
页数:16页
时间:2018-07-24
《运筹学建模与源代码--题目是《某企业和用户签订了设备交货合同》》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、运筹学建模与源代码题目:某企业和用户签订了设备交货合同,已知改企业各季度的生产能力、每台设备的生产成本和每季度末的交货量(见下表),若生产出的设备当季度不交货,每台设备每季度需支付保管维护费0.2万元,试问在遵守合同的条件下,企业应如何安排生产计划,才能是年消耗费用最低?并按要求分别完成下列分析:(1)2季度每台设备的生产成本在何范围内变化时最有生产计划不变?(2)每台设备每季度需支付保管维护费在何范围内变化时最优生产计划不变?(3)1季度生产能力在何范围变化内变化时最优基不变?(4)4季度交货量在何范围内变化时最优基不变?表格如下:季
2、度工厂生产能力交货量每台设备生产成本(万元)1251512.02352011.03302511.54202012.5需要《运筹学课程设计报告》的同学可以在我上传的文档中找到一、运筹学建模1.1设定变量设决策变量Xij表示第i季度生产第j季度交货的设备数量1.2根据题意推理由生产能力所限列出下列式子:第一季度生产能力所限:X11+X12+X13+X14<=25第二季度生产能力所限:X22+X23+X24<=25第三季度生产能力所限:X33+X34<=30第四季度生产能力所限:X44<=20得到前四个约束变量由交货量所限列出下列式子:第一季
3、度交货量:X11=15第二季度交货量:X12+X22=20第三季度交货量:X13+X23+X33=25第四季度交货量:X14+X24+X34+X44=20得到后四个约束变量第i季度生产第j季度交货的每台设备所消耗的费用Cij应等于生产成本加上保管维护费用之和其值如下表i1234112.012.212.412.6211.011.211.4311.511.7412.5用Ai表示该企业第i季度的生产能力Bj表示第j季度的交货量,则可将这一问题的数学模型写成:MinZ=C11X11+C12X12+C13X13+C14X14+C22X22+C23
4、X23+C24X24+C33X33+C34X34+C44X44<=Aii=1,2,3,4,,=Bjj=1,2,3,4Xij>=01.3计算机求解前的手工数据准备将原问题第一、二、三、四个约束条件添加松弛变量X1、X2、X3、X4;将问题化为标准形式:maxZ=-12X11-12.2X12-1.24X13-1.26X14-11.0X22-11.2X23-11.4X24-11.5X33-11.7X34-12.5X44X11+X12+X13+X14+X1=25X22+X23+X24+X2=35X33+X34+X3=30X44+X4=20X11
5、=15X12+X22=20X13+X23+X33=25X14+X24+X34+X44=20Xij>=0i,j=1,2.3,4二、程序源代码JAVA代码importjava.util.Scanner;importjava.util.regex.Pattern;publicclassyunxing{privateintm;//约束条件的个数privateintn;//变量个数privateintm1;//<=的约束条件个数privateintm2;//=的约束条件个数privateintm3;//>=的约束条件个数privateinterr
6、or;//判断是否是错误的privateintbasic[];privateintnonbasic[];privatedoublea[][];//约束条件的系数矩阵publicdoubleminmax;//目标函数的最大值或最小值publicstaticvoidmain(String[]args){Scannersc=newScanner(System.in);System.out.println("请输入目标函数类型:1表示max;-1表示min:");//容错处理稍后再做doubleminmax=Integer.parseInt(s
7、c.next());//////////////////////////////////////////////////////////////System.out.println("请输入约束条件个数:");intm=sc.nextInt();//////////////////////////////////////////////////////////////System.out.println("请输入变量个数:");intn=sc.nextInt();/////////////////////////////////////
8、/////////////////////////System.out.println("请输入<=的约束条件个数:");intm1=sc.nextInt();///////////////////////
此文档下载收益归作者所有