采用优化方法时,要明确4个要素,决策变量,目标函数,约束条件是什么。下面进行阐述3种类型的优化处理以及matlab代码。
线性规划问题
用matlab处理一般的线性规划问题的标准型为:
min z= ∑ j = 1 n c j x i \sum_{j=1}^nc_jx_i ∑j=1ncjxi
s.t. ∑ j = 1 n a i j x i ≤ b j \sum_{j=1}^na_{ij}x_i\leq b^j ∑j=1naijxi≤bj
也就是说标准形式应该满足,目标函数必须是 ≤ \leq ≤的形式,约束条件也应该是 ≤ \leq ≤的形式。如果目标函数
是
max z= ∑ j = 1 n c j x i A x ≥ b \sum_{j=1}^nc_jx_i Ax\geq b ∑j=1ncjxiAx≥b
可以转化为 m i n z = ∑ j = 1 n c j x i − A x ≤ − b min z=\sum_{j=1}^n c_jx_i -Ax \leq -b minz=∑j=1ncjxi−Ax≤−b形式。
在MATLAB中基本的函数形式是
[c,favl]=linprog(c,A,b,Aeq,beq,LB,UB,X0,OPTIONS),返回值是最有解的一组向量x.解释如下:
A,b对应不等式的约束
Aeq,beq对应等式的约束
LB,UB分别是变量x的上界和下界
X0是变量的初始值,OPTIONS是控制参数(一般不用管)
例子: