//加了下面的代码,博客会禁止复制(代码还可以复制) // document.body.onselectstart = document.body.ondrag = function(){return false;}

线性规划

线性规划问题的解的概念

一般线性规划问题的(数学)标准型为

\[max \quad z = \sum_{j=1}^nc_jx_j \tag{1} \]

\[ s. t. \begin{cases} \sum\limits_{j=1}^n a_{ij}x_{j} = b_i, & i = 1, 2,\dots,m\\ x_j\geq0, & j = 1,2,\dots n \end{cases} \tag{2} \]

式中,\(b_i\geq0, i = 1,2,\dots,m\)

可行解:满足约束条件(2)的解\(x = [x_1,x_2,...,x_n]^{T}\),称为线性规划问题的可行解,而使目标函数(1)达到最大值的可行解称为最优解。

可行域:所有可行解构成的集合称为问题的可行域,记为\(R^{'}\)

灵敏度分析

灵敏度分析是指对系统因周围条件变化显示出来的敏感程度的分析。

在线性规划问题中,都设定\(a_{ij},b_{i},c_{j}\)是常数,但在许多实际问题中,这些系数往往是估计值或预测值,经常有少许的变动。

因此提出以下两个问题:

(1)如果参数\(a_{ij},b_i,c_j\)中的一个或者几个发生了变化,现行最优方案会有什么变化?

(2)将这些参数的变化限制在什么范围内,原最优解仍是最优的?

有一套关于“优化后分析“的理论方法,可以进行灵敏度分析。具体可以参考运筹学知识。

但在实际应用中,给定一个步长使其重复求解线性规划问题,以观察最优解的变化情况,不失为一种可用的数值方法,特别是使用计算机求解时。

对于数学规划模型,一定要做灵敏度分析。

线性规划的Matlab求解

(1)Matlab基于求解器的求解方法
Matlab基于求解器的求解方法中规定线性规划的标准形式为

\[\underset{x}{min}f^{T}x, \]

\[s.t. \begin{cases} A \cdot x \leq b\\ Aeq \cdot x = beq\\ lb \leq x \leq ub \end{cases} \]

Matlab基于求解器的求解线性规划函数调用格式为

\[[x,fval] = linprog(f,A,b)\\ [x,fval] = linprog(f,A,b,Aeq,beq)\\ [x,fval] = linprog(f,A,b,Aeq,beq,lb,ub) \]

(2)Matlab基于问题的求解方法
Matlab基于问题的求解数学规划方法,首先需要用变量和表达式构造优化问题,然后用solve函数求解。

eg:

数学规划问题

\[min \quad z = |x_1| + 2|x_2| + 3|x_3| + 4|x_4| \]

\[s.t. \begin{cases} x_1 - x2 - x_3 + x_4 \leq -2,\\ x_1 - x_2 + x_3-3x_4 \leq -1,\\ x_1 - x_2 -2x_3 + 3x_4 \leq - \frac{1}{2} \end{cases} \]

式中:$ x = [x_1,x_2,...,x_n]^T$;A和b为相应维数的矩阵和向量

要把上面的问题变换成线性规划问题,可以做如下变幻:

\[u_i = \frac{x_i+|x_i|}{2}\\ v_i = \frac{|x_i| - x_i}{2} \]

\(u = [u_1,u_2,u_3,u_4]^T, v = [v_1,v_2,v_3,v_4]^T\),则可把模型变换为线性规划模型

\[ min \quad c^T(u+v),\\ s.t. \begin{cases} A(u-v) \leq b\\ u,v \geq 0 \end{cases} \]

matlab求解如下:

prob = optimproblem;
c = [1 : 4]';
b = [-2, -1, -1/2]'
a = [1,-1,-1,1; 1,-1,1,-3; 1,-1,-2,3];
u = optimvar('u',4,'LowerBound',0);
v = optimvar('v',4,'LowerBound',0);
prob.Objective = sum(c'*(u+v));
prob.Constraints.con = a * (u-v) <= b;
[sol, fval, flag, out] = solve(prob)
x = sol.u - sol.v
posted @ 2023-09-04 10:57  龙鳞墨客  阅读(30)  评论(0)    收藏  举报