一个求解线性规划问题的程序(有源代码)
最近我们的《线性规划》的老师(大三数学系的课程)布置了一道作业程序。我是用C++ Builder 4.0写的程序获得了第一名。比较兴奋。写程序的过程中也比较有感触,只是想与大家分享。程序在 http://kkcocoon.top263.net/download/lp_exe.zip 上,代码的链接是 http://kkcocoon.top263.net/download/lp_code.zip ,具体可看 http://kkcocoon.top263.net/essay/works_lp.htm 。
如果学过<线性规划>的话,这个程序要干什么大家都知道,就是求解线性规划问题,即在一组线性不等式或等式组的约束条件下求某个线性函数的最值问题.关于线性规划问题应用的重要性应该不是在这里说的,不过据说现代计算机的60%的计算能力都花在了求解线性规划问题上.下面只是举一道具体的题目给大家看看:
线性函数为: min(z) = -20*x1 - 10*x2 - 3*x3
约束条件为: 3*x1 - 3*x2 + 5*x3 <= 50
x1 + x3 <= 10
x1 - x2 + 4*x3 + x4 = 20
x1>=0,x2>=0,x3>=0,x4>=0
由于最值肯定是在约束条件所确定范围的边界上达到的,所以拉格朗日求最值的方法在这里是不适用的.而我们的一门课<线性规划>讲的就是怎么来解这一类问题(特别是用计算机求解,具体应用通常的变量有150个左右).