多目标线性规划

多目标线性规划是多目标最优化理论的重要组成部分,由于多个目标之间的矛盾性和不可公度性,要求使所有的目标均达到最优解是不可能的,因此多目标规划问题往往只是求其有效解。

目前求解多目标规划有着两个和两个以上的目标函数,且目标函数和约束条件全是线性函数,其数学模型表示为:

目标函数:

max z=\left\{ \begin{aligned} z_1=c_{11}x_1+c_{12}x_2+...+c_{1n}x_n \\ z_2=c_{21}x_1+c_{22}x_2+...+c_{2n}x_n \\ ...~~~~~~~~~~~~~~~~~\\ z_r=c_{r1}x_1+c_{12}x_2+...+c_{rn}x_n \end{aligned} \right.

约束条件:

s.t.\left\{ \begin{aligned} a_{11}x_1+a_{12}x_2+...+a_{1n}x_n\le b_1~~~\\ a_{21}x_1+a_{22}x_2+...+a_{2n}x_n\le b_2~~~\\ ...~~~~~~~~~~~~~~~~\\ a_{m1}x_1+a_{m2}x_2+...+a_{mn}x_n\le b_m\\ x_1,x_2,...,x_n\ge0~~~~~~~~~~~~~~~~~~~~~~~ \end{aligned} \right.

理想点法

对于多目标规划问题,先求解 r 个单目标问题。设其最优解Z_j^*,称Z^*为值域中的一个理想点。于是,在期望的某种度量之下,寻求距离Z^*最近的Z作为近似解。一种最直接的方法就是最短距离理想点法,构造评价函数。

\varphi(Z)=\sqrt{\sum_{i=1}^r[Z_i-Z_i^*]^2}

然后极小化\varphi[Z(x)],即求解

\min_{x\in D}\varphi[Z(x)]=\sqrt{\sum{i=1}^r[Z_i(x)-Z_i^*]^2}

并将它的最优解x^*作为约束条件下的“最优解”。


【例】

利用理想点法解:

\max f_1(x)=3x_1-2x_2

\max f_2(x)=-4x_1-3x_2

s.t.\left\{ \begin{aligned} 2x_1+3x_2\le18\\ 2x_1+x_2\le10~\\ x_1,x_2\ge0~~~~~~ \end{aligned} \right.

解分别对单目标求解

求解f_1(x)最优解的MATLAB程序为

f=[3,-2];
A=[2,3;2,1];
b=[18;10];
lb=[0;0];
[x,fval]=linprog(f,A,b,[],[],lb)

结果输出为

x =

     0
     6


fval =

   -12

即最优解为12。

求解f_2(x)最优解的MATLAB程序为

f=[-4,-3];
A=[2,3;2,1];
b=[18;10];
lb=[0;0];
[x,fval]=linprog(f,A,b,[],[],lb)

求解结果为

x =

     3
     4


fval =

   -24

即最优解为24。

于是得到理想点:(12,24)

目标函数转变为

\min_{x\in D}[f(x)]=\sqrt{[f1(x)-12]^2+[f_2(x)-24]^2}

MATLAB程序如下

f='((-3*x(1)+2*x(2)-12)^2+(4*x(1)+3*x(2)-24)^2)^(1/2)';
A=[2,3;2,1];
b=[18;10];
x0=[1;1];
lb=[0;0];
[x,fval]=fmincon(f,x0,A,b,[],[],lb,[])

求解结果

x =

    0.5268
    5.6488


fval =

    5.4478

多目标线性规划_第1张图片

关注公众号,学习数学建模。 

你可能感兴趣的:(数学建模,MATLAB,动态规划,算法,matlab)