欢迎来到天天文库
浏览记录
ID:18390739
大小:51.00 KB
页数:5页
时间:2018-09-17
《线性和非线性规划》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、数学实验线性和非线性规划学院:信息专业:国防计科姓名:陈明富学好:20071060005桃李花园服务中心选址线性规划问题:圆钢原材料每根长5.5米,现需要A,B,C三种圆钢材料,长度分别为3.1m,2.1m,1.2m数量分别为100,200,400根,试安排下料方式,使所需圆钢原材料的总数最少。一:数学分析对于一根钢原材料,不同的切割方法可以得到不同的结果。根据题目的要求,可以得到如下切割方案:材料/m切割方案A(3.1)B(2.1)C(1.2)11102102302140125004二:符号说明X1:用方案1切割所用去的原钢材
2、料根数;X2:用方案2切割所用去的原钢材料根数;X3:用方案3切割所用去的原钢材料根数;X4:用方案4切割所用去的原钢材料根数;X5:用方案5切割所用去的原钢材料根数;三:数学模型每一根原钢管的切割都是上面五中方案中的一种。要使得-5-钢原材料的总数最少,就是求解目标函数的最小值,这是一个典型的规划问题。由于钢管切割得到的材料是以根为单位的,所以它是一个整数规划问题。根据题目的要求,建立如下规划模型:Minf(x)=x1+x2+x3+x4+x5;s.tx1+x2>=100;x1+2x3+x4>=200;2x2+x3+2x4+4x
3、5>=400;Xi(i=1,2,3,4,5)N;从上述方案中可以预测到:不会用到方案4,只会用到方案3。因为用一根原钢材料切割得到3根材料,肯定是切割成2根B材料和一根C材料划算,且剩余的材料较少,减少了原材料的浪费。四:数学模型的求解在LINGO环境下:model:min=x1+x2+x3+x4+x5;x1+x2>=100;x1+2*x3+x4>=200;2*x2+x3+2*x4+4*x5>=400;@gin(x1);@gin(x2);@gin(x3);@gin(x4);@gin(x5);End模型求解结果:Globalopt
4、imalsolutionfound.Objectivevalue:225.0000Extendedsolversteps:0Totalsolveriterations:6VariableValueReducedCostX10.0000001.000000X2100.00001.000000X3100.00001.000000X40.0000001.000000X525.000001.000000RowSlackorSurplusDualPrice1225.0000-1.00000020.0000000.000000-5-30.0
5、000000.00000040.0000000.000000五:模型求解分析从以上结果可以得到最优方案:x1=x4=0,x2=x3=100,x5=25;切割方案2和切割方案3各用去100根原钢材料,切割方案5用去25根原钢材料,切割方案1和4没有用,一共用去225根原钢材料,得到最优一、问题桃李花园是新建的一个生活住宅区,共有20栋住宅楼。桃李花园内的所有道路都是东西或南北走向。开发商拟在该区修建一个服务中心,地址选在离所有楼房的总路程最小的地方。为了保证建筑物之间又足够的空间,服务中心的位置与其他楼房位置之间的距离不能少于30
6、米(已经考虑了所有建筑的占地面积)。请你确定服务中心的位置。二、数学分析这个问题的求解是要考虑所有楼房的总路程最小值,即是一个最优化问题。将其转化的二维平面上,即寻求在在没个区域内到已知所有点的距离总和最小的点的位置,于是需要寻求最有坐标,也就是决策变量就是要寻求那个点。当然可以通过计算机在可行域内迭代寻求。既然如此那么那些点的坐标应该是已知的,因为在实际中所需修建的服务中心的位置必须参考其余住宅楼的位置。所以可以进行数学假设。三、数学建模(1).假设在该平面内有20个点,代表20栋楼的位置,用(ai,bi)(i=1-20)表示
7、;(2).决策变量服务中心的坐标就设为:(x,y);(3).约束条件不等式约束条件:+=900(i=1-20);自然约束条件:x,y0;(4).目标函数-5-Min=Min四、模型求解:用MATLAB求解:fun文件functionf=fun(x)n=20;a=[29.744.969.3265.098.355.2740.019.862.573.337.580.9841.9875.3779.3892.084.4736.7762.0873.13];b=[19.3990.4856.9263.1823.4454.8893.1633.56
8、5.539.1962.7369.939.7241.3765.5243.534.675.212.3286.7];sa=0;sb=0;fork=1:nsa=sa+abs((x(1)-a(k)));endfork=1:nsb=sb+abs((x(2)-b(k)));e
此文档下载收益归作者所有