%输出最优点坐标,罚因子迭代次数,最优值 a(k+1) b(k+1) k f0(k+1) break; else
m(k+1)=c*m(k); end end
% 绘制目标函数曲线图 xx1=0:0.5:50; xx2=0:0.5:50; for i=1:length(xx1) for j=1:length(xx2)
if( (2*xx1(i)-xx2(j)-40<=0) && (25-xx1(i)<=0) ) Z(i,j)=xx1(i)^2+xx2(j)^2- xx1(i)* xx2(j); else
Z(i,j)=0; end end end figure(1); surf(xx1,xx2,Z); axis([0 50 0 50 0 2500]) title('目标函数曲线图'); xlabel('x1'); ylabel('x2');
%绘制目标函数等值线图,并画出优化路径 figure(2); x11=-5:0.5:35; x12=-5:0.5:35;
[xx11,xx12]=meshgrid(x11,x12); F=xx11^2+xx12^2- xx11* xx12; axis([-5 50 -5 50]); contour(xx11,xx12,F); title('目标函数等值线'); xlabel('x1'); ylabel('x2'); hold on
plot(a,b,'r+-');%绘制优化路径
自行选择小型机械设计问题或其他工程优化问题;
某航空公司每天有三个航班服务于A, B, C, H四个城市,其中城市H是可供转机使用的, 三个航班的出发地-目的地分别为AH, HB, HC,可搭乘旅客的最大数量分别为120人, 100人, 110人, 机票的价格分头等舱和经济舱两类. 经过市场调查,公司销售部得到了每天旅客的相关信息, 见表1. 该公司应该在每条航线上分别分配多少头等舱和经济舱的机票? 出发地-目的地 头等舱 头等舱 经济舱 经济舱 需求/人 价格/元 需求/人 价格/元 AH 33 190 56 90 AB(经H转机) 24 244 43 193 AC (经H转机) 12 261 67 199 HB 44 140 69 80 HC 16 186 17 103 问题分析
公司的目标应该是使销售收入最大化, 由于头等舱的机票价格大于对应的经济舱的机票价格, 于是想到先满足所有头等舱的顾客需求: AH 上的头等舱数量为33+24+12=69; HB上的头等舱数量为24+44=68; HC上的头等舱数量为12+16=28;
这种贪婪算法是否一定得到最好的销售计划? 模型建立
设起终点航线i (i=1,2,…,5) 上销售的头等舱机票数为xi ,销售的经济舱机票数为yi , 这就是决策变量. 目标函数
Max Z=190x1+90y1+244x2+193y2+261x3+199y3+140x4+80y4+186x5+103y5
约束条件
(1) 三个航班上的容量限制:
例如, 航班AH上的乘客应当是购买AH, AB, AC机票的所有旅客, 所以
x1 ??x2 ??x3 ??y1 ??y2 ??y3 ??120,
同理, 有 x2 ??x4 ??y2 ??y4 ??100,
x3 ??x5 ??y3 ??y5 ??110.
(2) 每条航线上的需求限制:
0 ??x1 ??33, 0 ??x2 ??24, 0 ??x3 ?12, 0 ??x4 ??44, 0 ??x5 ?16, 0 ??y1 ??56, 0 ??y2 ??43, 0 ??y3 ??67, 0 ??y4 ??69, 0 ??y5 ?17.
线性规划模型
Max Z=190x1+90y1+244x2 +193y2+261x3+199y3+140x4+80y4+186x5+103y5
x1+x2+x3+y1+y2+y3?120 x2+x4+y2+y4?100 x3+x5+y3+y5?110 0?x1?33,0?x2?24,
0?x3 ?12, 0?x4?44, 0?x5?16 0?y1 ?56, 0?y2?43, 0?y3?67 0?y4?69, 0?y5?17
通过计算求得最优解为:
航线AH, AB, AC, HB, HC上分别销售33, 10, 12, 44, 16张头等舱机票, 0,0,65,46,17 张经济舱机票, 总收入为39344元.
4、写出课程实践心得体会,
在学习机械优化设计前,感觉优化只不过是高数中的求一阶、二阶甚至三阶导数然后求极值罢了。没想到优化设计是如此庞大、系统的一门课程,有如此多的优化方法,各有各的优点,适用于不同的问题。总的看来机械优化设计是以数学理论为基础,只要打下扎实的数学功底,哪些看起来复杂的公式,只要静下来读两遍其实也没什么,知识基本的数学计算过程。很多优化方法只存在理论上的可能性,在
实际问题中应用却不是很广,但它们推动了优化方法的发展。现在的优化过程主要还是靠计算机来完成,计算机速度快,精度高,存储信息量大,适用于现代大型工程问题。
很多工程问题的优化程序大同小异,为了方便工程技术人员在设计、开发中缩短周期,提高经济性,相关部门建立了优化设计程序库,这将优化设计提升到了一个新的高度,而我们的老师王卫荣也为此做出了贡献,作为他的学生,我感到很自豪。
现代市场竞争激烈,一个企业能否生存不仅仅取决于它生产的产品的质量好坏,还要取决于很多因素,其中优化就在其中起到了重要的作用,它能让企业在最短的时间内,以最低成本获取最大的利益。
在我们以后的工作、科研生涯中,肯定会遇到种种需要用到机械优化设计知识的问题,只有现在把基础打好,以后才能在处理问题时更加轻松。我们现在学的只是九牛一毛,而且机械优化设计还在不断地丰富和发展,因此我们也不断学习新知识,并尝试将优化知识应用到实际的问题中。
5、为响应学校2014年度教学工作会议的改革要求,探索新的课程考核评价方法,特探索性设立一开放式考核项目,占总成绩的5%。试用您自己认为合适的方式(书面)表达您在本门课程学习方面的努力、进步与收获。
一开始接触这门课,感觉有点像是数学课,随着慢慢地深入地学习,感觉这门课很有意思,没想到优化有如此丰富的内容,我也下定决心要学好这门课,为此,我做出了以下努力:
(1) 当了解到这门课与数学的关系如此紧密,我便及时将相关
的数学知识复习了一边,包括函数的高阶导数,矩阵的运算和逆矩阵的求解,,,,,,这样更有利于学习优化理论, (2) 上课前,我回提前做好预习工作,对于不理解的问题,上
课要留心,上课时,认真做好笔记,跟着老师的思路走,果然,这样的方法非常高效。
(3) 课后,对于老师布置的作业及时完成,并认真地温习课本,
对于课本上一些老师没讲的内容,我也会去自主地学习一般,学完感觉对优化的认识更加系统,搞清楚来龙去脉,将很多零散的知识联系起来,受益匪浅!
(4) 因为现代很多优化问题主要靠计算机来完成,所以必须要
掌握一定的计算机操作技术。为此我学习复习了一些C语言知识并验证了一些程序,我还复习了一些MATLAB中的一些基础操作。同时,我还去找了一些有关优化的论文,看看目前优化技术的发展状况。
学习了机械优化设计之后,我的进步、收获主要有以下几点: (1) 系统地了解了优化的相关知识,具备了一些基本的优化
能力。
(2) 能够将数学中的理论知识运用到实际的问题中,解决了一
些简单的工程实例问题,为以后的工作、科研生涯打下扎实的基础。
(3) 复习了相关的数学、C语言编程知识。