非线性规划,图与网络

非线性规划,图与网络

非线性规划

  下面只针对MATLAB解法做出介绍。在MATLAB中非线性规划的标准型为
m i n f ( x ) min \quad f(x) minf(x) s . t A x ≤ B s.t\quad Ax\leq B s.tAxB A e q x ≤ B e q A_{eq}x \leq B_{eq} AeqxBeq C ⋅ x ≤ 0 C \cdot x \leq0 Cx0 C e q ⋅ x ≤ 0 C_{eq}\cdot x\leq 0 Ceqx0非线性约束要单独成立一个函数文件。例如:

function [c ceq]=nonlcon(x)
%body
end

*fmincon( )函数所求最小值均为参数 x 0 x_0 x0附近的局部最小值。对于无约束优化可使用fminunc( )可求得 x 0 x_0 x0附近的局部无约束最小值。对于带约束的优化过程中可返回函数的梯度来提高准确的程度。对于目标函数为二次型的规划,可以使用quadprog( )*进行二次规划。

图形化界面解法

直接调用优化工具箱中的optimtool命令进行图形化操作,但是在未来的版本中优化工具箱可能被移除。

图与网络流

  1. 最短路径算法:
    参考dijkstra.m 、Floyd.m文件。
  2. 最小生成树算法:
    参考prime.m、kruskal.m文件。
  3. TSP问题-改良圈算法:
    该算法效果一般也只能求得近似解,可参考网上其他优秀算法。main_TSP.m
  4. 最大流问题;
    有两种选择:
    第一种:直接利用线性规划将所有边标号,对每一个非 且非 点加入约束,在此之前图必须为单,若非如此,可增加一个虚拟 v s v_s vs并增加流 v s − s 1 , v s − s 2 , v s − s 3 , v s − s . . . v_s-s_1,v_s-s_2,v_s-s_3,v_s-s_{...} vss1,vss2,vss3,vss...同理增加一个虚拟 v t v_t vt。最大流线性规划模型为: m a x ∑ i v s − i max \quad \sum_iv_{s-i} maxivsi s . t ∑ j : ( i , j ) ∈ A f i j − ∑ j : ( i , j ) ∈ A f j i = 0 s.t\sum_{j:(i,j)\in A}f_{ij}-\sum_{j:(i,j)\in A}f_{ji}=0 s.tj:(i,j)Afijj:(i,j)Afji=0 0 ≤ f i j ≤ u i j ∀ ( i , j ) ∈ A 0\leq f_{ij}\leq u_{ij}\quad \forall (i,j)\in A 0fijuij(i,j)A已证明最大流问题的系数矩阵为完全幺模矩阵,其最优解为整数解。
    第二种:直接调用MATLAB函数graphmaxflow( ) 注意输入的图需要用函数 sparse()转化为稀疏矩阵。
  5. 最小费用流:
    在求得的最大流的前提下,再次进行线性规划,其数学形式为: m i n ∑ c i j f i j min\quad \sum c_{ij}f_{ij} mincijfij s . t ∑ j : ( i , j ) ∈ A f i j − ∑ j : ( i , j ) ∈ A f j i = 0 s.t \sum_{j:(i,j)\in A}f_{ij}-\sum_{j:(i,j)\in A}f_{ji}=0 s.tj:(i,j)Afijj:(i,j)Afji=0 ∑ i f s − i = M a x f l o w \sum_i f_{s-i}=Maxflow ifsi=Maxflow 0 ≤ f i j ≤ u i j ∀ ( i , j ) ∈ A 0\leq f_{ij}\leq u_{ij}\quad \forall (i,j)\in A 0fijuij(i,j)A
  6. 关键路径算法:
    可采用线性规划求解,设 x i x_i xi表示时间i发生的时间其数学形式为: m i n x n − x 1 min \quad x_n-x_1 minxnx1 s . t x j ≥ x i + t i j , ( i , j ) ∈ A , ( i , j ) ∈ V s.t\quad x_j\geq x_i+t_{ij} ,(i,j)\in A,(i,j)\in V s.txjxi+tij,(i,j)A,(i,j)V x i ≥ 0 x_i\geq0 xi0可加入松弛因子 s i j = x j − x i + t i j s_{ij}=x_j-x_i+t_{ij} sij=xjxi+tij把不等式全部转化为等式也计算了每个活动的时间余量。注意:需要加入0虚构工作来表示事件的先后顺序
    最长路径的数学模型为: m a x ∑ t i j x i j , x i j 为 二 进 制 变 量 max\quad \sum t_{ij}x_{ij},x_{ij}为二进制变量 maxtijxijxij s . t ∑ j : ( i , j ) ∈ A x i j − ∑ j : ( i , j ) ∈ A x j i = { 1 v i 为 源 − 1 v i 为 汇 0 o t h e r s s.t\quad \sum_{j:(i,j)\in A}x_{ij}-\sum_{j:(i,j)\in A}x_{ji}= \begin{cases} 1 & v_i为源\\ -1 & v_i为汇\\ 0 & others \end{cases} s.tj:(i,j)Axijj:(i,j)Axji=110viviothers
  7. 计划网络优化:
    x i x_i xi为事件的开始事件 y i j y_{ij} yij是活动的可能减少时间, t i j t_{ij} tij是活动的计划时间, m i j m_{ij} mij是活动的最短完成时间, d d d为要求完成天数 c i j c_{ij} cij为减少 ( i , j ) (i,j) (i,j)活动单位时间所付出的代价,规划模型为: m i n ∑ c i j y i j min \quad \sum c_{ij}y_{ij} mincijyij s . t x j − x i ≥ t i j − y i j , ( i , j ) ∈ V , ( i , j ) ∈ A s.t \quad x_j-x_i\geq t_{ij}-y_{ij}, (i,j)\in V,(i,j)\in A s.txjxitijyij,(i,j)V,(i,j)A x n − x 1 ≤ d x_n-x_1\leq d xnx1d x i ≥ 0 , 0 ≤ y i j ≤ t i j − m i j x_i\geq 0, \quad 0\leq y_{ij}\leq t_{ij}-m_{ij} xi0,0yijtijmij
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值