林志程
摘要:该文提出了用枚举法解决线性函数中的整数规划问题。应用Matlab语言的线性规划函数linprog,先取消整数限制求解;因目标函数为线性函数,它具有一致倾斜性,再求出整数规划的最优解。由于文章所提算法可以很便捷算出整数规划的最优解,因而避免了原有算法的一些困境。
关键词: Matlab语言;整数规划;枚举法;线性规划函数;最优解
中图分类号:TP319 文献标识码:A 文章编号:1009-3044(2013)09-2122-03
1 Matlab语言线性规划函数linprog介绍
[x,fval,exitflag,output,lambda]=linprog(f,a,b,aeq,beq,lb,ub).
在输入部分,f是目标函数,它以列向量形式出现;a、b分别是线性规划中不等式约束的技术系数矩阵和资源向量;aeq、beq分别是线性规划中的技术系数矩阵和资源向量;这其中如有缺省,则以[] 代替;lb是决策变量下界,ub是决策变量上界。在输出部分,x是线性规划最优解,fval是线性规划最优值;exitflag是输出标记,当exitflag=1时,表示线性规划有解,当exitflag=-1时,表示线性规划无解;output是指算法和迭代情况;lambda是指存储情况。当程序通过时,屏目上有一段文字:Optimization terminated successfully(最优化成功地结束),它表示程序通过。当程序中有问题时, 屏目上会用红字告知,在某行某列有什么性质的问题。这些都显示出Matlab语言的智能化的优势。下面举例说明Matlab语言线性规划函数的应用。
3 结束语
Matlab语言是由美国Marhwords公司于1984年正式推出,后集语言专家和各类技术专家的共同努力,版本逐次更新, 功能更为完善。该文采用的是2007年1月发行的Matlab 7.4版,跟原有的计算机语言相比,它具有简洁、直观和智能化的优势。作者所提算法较原有算法,具有简洁、快捷和直观的特点,值得推广。
参考文献:
[1] 张志涌.精通MATLAB 6.5版[M].北京:北京航空航天大学出版社,2003.3.
[2] 胡运权.运筹学教程[M].2版.北京:清华大学出版社,2003.
[3] 胡知能,徐玖平.运筹学——线性系统优化[M].北京:科学出版社,2003.
[4] 刁在筠,郑汉鼎,刘家壮,等.运筹学[M]. 2版.北京:高等教育出版社,2001.9.
[5] 吴良刚,徐选华,王坚强,等.运筹学[M].长沙:湖南人民出版社,2001.3.
[6] 王沫然.Matlab与科学计算(二) [M].西安:电子出版社,2003.9.
[7] 罗建军,杨琦.精讲多练MATLAB[M].西安:西安交通大学出版社,2002.
[8] The MathWorks Inc. MATLAB Help System[M]. Natick: The MathWorks Inc.,2002.