单目标线性规划

线性规划是在第二次世界大战中发展起来的一种重要的数量方法,它是处理线性目标函数和线性约束的一种较为成熟的方法,主要用于研究有限资源的最佳分配问题,即如何对有限的做出最佳方式的调配和最有利的使用,以便最充分地发挥资源的效能去获取最佳的经济效益。目前已经广泛应用于军事、经济、工业、农业、教育、商业和社会科学等许多方面。

线性规划问题的标准形式为

\left\{ \begin{array}{llll} \min z=c_x_1+c_2x_2+...+c_nx_n\\ a_{11}x_1+a_{12}x_2+...+a_{1n}x_n=b_1\\ a_{21}x_1+a_{22}x_2+...+a_{2n}x_n=b_2\\ ...\\ a_{m1}x_1+a_{m2}x_2+...+a_{mn}x_n=b_m\\ x_1,x_2,...,x_n\ge0 \end{array} \right.

线性规划的标准形式要求使目标函数最小化,约束条件取等式,变量b非负。不符合这几个条件的线性模型可以转化成标准形式。

从实际问题中建立数学模型一般有以下三个步骤:

(1)根据影响所要达到目的的因素找到决策变量。

(2)由决策变量和所要达到目的之间的函数关系确定目标函数。

(3)由决策变量所受限制条件确定决策变量所要满足的约束条件。

所建立的数学模型具有以下特点:

(1)每个模型都有若干个决策变量,决策变量的一组值表示一种方案,同时决策变量一般是非负的。

(2)目标函数是决策变量的线性函数,根据具体问题可以是最大化或最小化,二者统称为最优化。

(3)约束条件也是决策变量的线性函数。

当得到的数学模型的目标函数为线性函数,约束条件为线性等式或不等式时称此数学模型为线性规划模型。

MATLAB采用投影法求解线性规划问题,该方法是单纯形法的变种,求解函数为linprog。


【例】

求解函数的最小值f(x)=-5x_1-4x_2-6x_3 ,其中x满足条件:

\left\{ \begin{array}{llll} x_1-x_2+x_3\le20\\ 3x_1+2x_2+4x_3\le42\\ 3x_1+2x_2\le30\\ 0\le x_1,0\le x_2,0\le x_3 \end{array} \right.

编写MATLAB代码:

f=[-5,-4,-6];
a=[1,-1,1;3,2,4;3,2,0];
b=[20;42;30];
lb=[0;0;0];
ub=[inf;inf;inf];
[x,fval]=linprog(f,a,b,[],[],lb,ub);
x
fval

得到结果:

x =

         0
   15.0000
    3.0000


fval =

   -78

所以函数最小值为-78。



​​​​​​​

关注公众号,学习数学建模,领取免费资料。 

猜你喜欢

转载自blog.csdn.net/weixin_52252897/article/details/124784875