最优化理论公式大赏(下)

动态规划

连续函数

  • 用动态规划法的顺序法求解下列问题:
    max ⁡ z = x 1 x 2 2 x 3 s . t . { x 1 + 2 x 2 + 4 x 3 = 8 x i ≥ 0 , i = 1 , 2 , 3 \max z=x_1x_2^2x_3\\s.t.\left\{\begin{matrix}x_1+2x_2+4x_3=8\\x_i≥0,i=1,2,3\end{matrix}\right. maxz=x1x22x3s.t.{x1+2x2+4x3=8xi0,i=1,2,3
  • 为了便于分析,作换元 y 1 = x 1 , y 2 = 2 x 2 , y 3 = 4 x 3 y_1=x_1,y_2=2x_2,y_3=4x_3 y1=x1,y2=2x2,y3=4x3,将原命题变成:
    max ⁡ z = 1 16 y 1 y 2 2 y 3 s . t . { y 1 + y 2 + y 3 = 8 y i ≥ 0 , i = 1 , 2 , 3 \max z=\frac1{16}y_1y_2^2y_3\\s.t.\left\{\begin{matrix}y_1+y_2+y_3=8\\y_i≥0,i=1,2,3\end{matrix}\right. maxz=161y1y22y3s.t.{y1+y2+y3=8yi0,i=1,2,3
  • 该命题的现实意义为“假设有8百万资金可以投给三家工厂,求它们的某种总效益的最大值”。
  • (1)假设总资金为u1,为工厂1投资y1,总效益为 1 16 y 1 \frac1{16}y_1 161y1,其最大值为z1(u1)。
    显然,当y1=u1时, z 1 ( u 1 ) = max ⁡ 0 ≤ y 1 ≤ u 1 ( 1 16 y 1 ) = 1 16 u 1 z_1(u_1)=\max\limits_{0≤y_1≤u_1}(\frac1{16}y_1)=\frac1{16}u_1 z1(u1)=0y1u1max(161y1)=161u1
  • (2)假设总资金为u2,为工厂2投资y2,将剩余资金(u2-y2)投给工厂1,总效益为 1 16 y 1 y 2 2 \frac1{16}y_1y_2^2 161y1y22,其最大值为:
    z 2 ( u 2 ) = max ⁡ 0 ≤ y 2 ≤ u 2 ( y 2 2 z 1 ( u 2 − y 2 ) ) = max ⁡ 0 ≤ y 2 ≤ u 2 ( 1 16 y 2 2 ( u 2 − y 2 ) ) = 1 16 y 2 2 ( u 2 − y 2 ) ∣ 2 u 2 y 2 − 3 y 2 2 = 0 = 1 16 y 2 2 ( u 2 − y 2 ) ∣ y 2 = 2 3 u 2 = 1 108 u 2 3 , y 2 = 2 3 u 2 z_2(u_2)\\=\max\limits_{0≤y_2≤u_2}(y_2^2z_1(u_2-y_2))\\=\max\limits_{0≤y_2≤u_2}(\frac1{16}y_2^2(u_2-y_2))\\=\frac1{16}y_2^2(u_2-y_2)|_{2u_2y_2-3y_2^2=0}\\=\frac1{16}y_2^2(u_2-y_2)|_{y_2=\frac23u_2}\\=\frac1{108}u_2^3,y_2=\frac23u_2 z2(u2)=0y2u2max(y22z1(u2y2))=0y2u2max(161y22(u2y2))=161y22(u2y2)2u2y23y22=0=161y22(u2y2)y2=32u2=1081u23,y2=32u2
  • (3)假设总资金为u3,为工厂3投资y3,将剩余资金(u3-y3)投给工厂1和2,总效益为 1 16 y 1 y 2 2 y 3 \frac1{16}y_1y_2^2y_3 161y1y22y3,其最大值为:
    z 3 ( u 3 ) = max ⁡ 0 ≤ y 3 ≤ u 3 ( y 3 z 2 ( u 3 − y 3 ) ) = max ⁡ 0 ≤ y 3 ≤ u 3 ( 1 108 y 3 ( u 3 − y 3 ) 3 ) = 1 108 y 3 ( u 3 − y 3 ) 3 ) ∣ ( u 3 − y 3 ) 3 − 3 y 3 ( u 3 − y 3 ) 2 = 0 = 1 108 y 3 ( u 3 − y 3 ) 3 ) ∣ y 3 = 1 4 u 3 = 1 1024 u 3 4 , y 3 = 1 4 u 3 z_3(u_3)\\=\max\limits_{0≤y_3≤u_3}(y_3z_2(u_3-y_3))\\=\max\limits_{0≤y_3≤u_3}(\frac1{108}y_3(u_3-y_3)^3)\\=\frac1{108}y_3(u_3-y_3)^3)|_{(u_3-y_3)^3-3y_3(u_3-y_3)^2=0}\\=\frac1{108}y_3(u_3-y_3)^3)|_{y_3=\frac14u_3}\\=\frac1{1024}u_3^4,y_3=\frac14u_3 z3(u3)=0y3u3max(y3z2(u3y3))=0y3u3max(1081y3(u3y3)3)=1081y3(u3y3)3)(u3y3)33y3(u3y3)2=0=1081y3(u3y3)3)y3=41u3=10241u34,y3=41u3
  • 题目中只有三个阶段,且总资金为8百万。因此, u 3 = 8 , z max ⁡ = z 3 ( 8 ) = 8 4 1024 = 4 u_3=8,z_{\max}=z_3(8)=\frac{8^4}{1024}=4 u3=8,zmax=z3(8)=102484=4
    相应地, y 3 = 2 , u 2 = 8 − 2 = 6 , y 2 = 2 3 u 2 = 4 , y 1 = u 1 = u 2 − y 2 = 2 y_3=2,u_2=8-2=6,y_2=\frac23u_2=4,y_1=u_1=u_2-y_2=2 y3=2,u2=82=6,y2=32u2=4,y1=u1=u2y2=2
    综上所述,当 x 1 = y 1 = 2 , x 2 = 1 2 y 2 = 2 , x 3 = 1 4 y 3 = 1 2 x_1=y_1=2,x_2=\frac12y_2=2,x_3=\frac14y_3=\frac12 x1=y1=2,x2=21y2=2,x3=41y3=21时,z取得最小值4。
  • 考试时建议用拉格朗日乘数法求一遍准确解以供验算。如果你实在整不来动态规划,也可以借助拉格朗日乘数法在依托答辩般的计算过程末尾强行搞出一个正确的答案。
  • 逆序法只不过是把求解顺序改变了,即从y3向y1分析。最先被分析的阶段虽然叫第三阶段,但总效益写作z1

离散函数

  • 离散函数的动态规划中,最典的是用于求两地之间的最短路程。老师说,有了算力无穷的,超越维度的民用量子计算机之后,就再也不用管什么算法了,硬枚举就完事了,但你毕业之前肯定遇不到。
  • 假设有A、B、C、D、E五座城市,它们之间的路程为 [ A B C D E A 0 6 5 2 2 B 6 0 0.5 5 7 C 5 0.5 0 1 5 D 2 5 1 0 3 E 2 7 5 3 0 ] \begin{bmatrix}&A&B&C&D&E\\A&0&6&5&2&2\\B&6&0&0.5&5&7\\C&5&0.5&0&1&5\\D&2&5&1&0&3\\E&2&7&5&3&0\end{bmatrix} ABCDEA06522B600.557C50.5015D25103E27530 。求E城到其它四座城市之间的最短路程。

函数空间迭代法:

  • 设fn(X)代表所走路程的段数不超过n时从X城到E城的最短路程,n=1,2,3,4。
  • n=1时,显然 f 1 ( A ) = 2 f 1 ( B ) = 7 f 1 ( C ) = 5 f 1 ( D ) = 3 \begin{matrix}f_1(A)=2\\f_1(B)=7\\f_1(C)=5\\f_1(D)=3\end{matrix} f1(A)=2f1(B)=7f1(C)=5f1(D)=3
  • n=2时, f 2 ( A ) = min ⁡ [ f 1 ( A ) , 6 + f 1 ( B ) , 5 + f 1 ( C ) , 2 + f 1 ( D ) ] = 2 f 2 ( B ) = min ⁡ [ 6 + f 1 ( A ) , f 1 ( B ) , 0.5 + f 1 ( C ) , 5 + f 1 ( D ) ] = 5.5 f 2 ( C ) = min ⁡ [ 5 + f 1 ( A ) , 0.5 + f 1 ( B ) , f 1 ( C ) , 1 + f 1 ( D ) ] = 4 f 2 ( D ) = min ⁡ [ 2 + f 1 ( A ) , 5 + f 1 ( B ) , 1 + f 1 ( C ) , f 1 ( D ) ] = 3 \begin{matrix}f_2(A)=\min[f_1(A),6+f_1(B),5+f_1(C),2+f_1(D)]=2\\f_2(B)=\min[6+f_1(A),f_1(B),0.5+f_1(C),5+f_1(D)]=5.5\\f_2(C)=\min[5+f_1(A),0.5+f_1(B),f_1(C),1+f_1(D)]=4\\f_2(D)=\min[2+f_1(A),5+f_1(B),1+f_1(C),f_1(D)]=3\end{matrix} f2(A)=min[f1(A),6+f1(B),5+f1(C),2+f1(D)]=2f2(B)=min[6+f1(A),f1(B),0.5+f1(C),5+f1(D)]=5.5f2(C)=min[5+f1(A),0.5+f1(B),f1(C),1+f1(D)]=4f2(D)=min[2+f1(A),5+f1(B),1+f1(C),f1(D)]=3
  • n=3时, f 3 ( A ) = min ⁡ [ f 2 ( A ) , 6 + f 2 ( B ) , 5 + f 2 ( C ) , 2 + f 2 ( D ) ] = 2 f 3 ( B ) = min ⁡ [ 6 + f 2 ( A ) , f 2 ( B ) , 0.5 + f 2 ( C ) , 5 + f 2 ( D ) ] = 4.5 f 3 ( C ) = min ⁡ [ 5 + f 2 ( A ) , 0.5 + f 2 ( B ) , f 2 ( C ) , 1 + f 2 ( D ) ] = 4 f 3 ( D ) = min ⁡ [ 2 + f 2 ( A ) , 5 + f 2 ( B ) , 1 + f 2 ( C ) , f 2 ( D ) ] = 3 \begin{matrix}f_3(A)=\min[f_2(A),6+f_2(B),5+f_2(C),2+f_2(D)]=2\\f_3(B)=\min[6+f_2(A),f_2(B),0.5+f_2(C),5+f_2(D)]=4.5\\f_3(C)=\min[5+f_2(A),0.5+f_2(B),f_2(C),1+f_2(D)]=4\\f_3(D)=\min[2+f_2(A),5+f_2(B),1+f_2(C),f_2(D)]=3\end{matrix} f3(A)=min[f2(A),6+f2(B),5+f2(C),2+f2(D)]=2f3(B)=min[6+f2(A),f2(B),0.5+f2(C),5+f2(D)]=4.5f3(C)=min[5+f2(A),0.5+f2(B),f2(C),1+f2(D)]=4f3(D)=min[2+f2(A),5+f2(B),1+f2(C),f2(D)]=3
  • n=4时, f 4 ( A ) = min ⁡ [ f 3 ( A ) , 6 + f 3 ( B ) , 5 + f 3 ( C ) , 2 + f 3 ( D ) ] = 2 f 4 ( B ) = min ⁡ [ 6 + f 3 ( A ) , f 3 ( B ) , 0.5 + f 3 ( C ) , 5 + f 3 ( D ) ] = 4.5 f 4 ( C ) = min ⁡ [ 5 + f 3 ( A ) , 0.5 + f 3 ( B ) , f 3 ( C ) , 1 + f 3 ( D ) ] = 4 f 4 ( D ) = min ⁡ [ 2 + f 3 ( A ) , 5 + f 3 ( B ) , 1 + f 3 ( C ) , f 3 ( D ) ] = 3 \begin{matrix}f_4(A)=\min[f_3(A),6+f_3(B),5+f_3(C),2+f_3(D)]=2\\f_4(B)=\min[6+f_3(A),f_3(B),0.5+f_3(C),5+f_3(D)]=4.5\\f_4(C)=\min[5+f_3(A),0.5+f_3(B),f_3(C),1+f_3(D)]=4\\f_4(D)=\min[2+f_3(A),5+f_3(B),1+f_3(C),f_3(D)]=3\end{matrix} f4(A)=min[f3(A),6+f3(B),5+f3(C),2+f3(D)]=2f4(B)=min[6+f3(A),f3(B),0.5+f3(C),5+f3(D)]=4.5f4(C)=min[5+f3(A),0.5+f3(B),f3(C),1+f3(D)]=4f4(D)=min[2+f3(A),5+f3(B),1+f3(C),f3(D)]=3
  • 因此,从A到E的最短路径为A-E,路程为2;从B到E的最短路径为B-C-D-E,路程为4.5;从C到E的最短路径为C-D-E,路程为4;从D到E的最短路径为D-E,路程为3。
  • 用顺序法求一个网络的最优路径时,设f(X)为从起点到X点的最优路径,从起点往终点推理,反之亦然。

策略空间迭代法:

  • 任选一个没有回路的初始策略,如 u 0 ( A ) = u 0 ( B ) = u 0 ( C ) = u 0 ( D ) = E u_0(A)=u_0(B)=u_0(C)=u_0(D)=E u0(A)=u0(B)=u0(C)=u0(D)=E,ui(X)=Y代表第i次迭代时将X的下一步作为Y是目前从X走到E的最优走法。同时,fn(X)也会被顺便解出来。
  • 解方程组 { f 0 ( A ) = ∣ A E ∣ + f 0 ( E ) = 2 f 0 ( B ) = ∣ B E ∣ + f 0 ( E ) = 7 f 0 ( C ) = ∣ C E ∣ + f 0 ( E ) = 5 f 0 ( D ) = ∣ D E ∣ + f 0 ( E ) = 3 \left\{\begin{matrix}f_0(A)=|AE|+f_0(E)=2\\f_0(B)=|BE|+f_0(E)=7\\f_0(C)=|CE|+f_0(E)=5\\f_0(D)=|DE|+f_0(E)=3\end{matrix}\right. f0(A)=AE+f0(E)=2f0(B)=BE+f0(E)=7f0(C)=CE+f0(E)=5f0(D)=DE+f0(E)=3,得 { f 0 ( A ) = 2 f 0 ( B ) = 7 f 0 ( C ) = 5 f 0 ( D ) = 3 \left\{\begin{matrix}f_0(A)=2\\f_0(B)=7\\f_0(C)=5\\f_0(D)=3\end{matrix}\right. f0(A)=2f0(B)=7f0(C)=5f0(D)=3
  • { min ⁡ [ f 0 ( A ) , ∣ A B ∣ + f 0 ( B ) , ∣ A C ∣ + f 0 ( C ) , ∣ A D ∣ + f 0 ( D ) ] = f 0 ( A ) min ⁡ [ ∣ B A ∣ + f 0 ( A ) , f 0 ( B ) , ∣ B C ∣ + f 0 ( C ) , ∣ B D ∣ + f 0 ( D ) ] = ∣ B C ∣ + f 0 ( C ) min ⁡ [ ∣ C A ∣ + f 0 ( A ) , ∣ C B ∣ + f 0 ( B ) , f 0 ( C ) , ∣ C D ∣ + f 0 ( D ) ] = ∣ C D ∣ + f 0 ( D ) min ⁡ [ ∣ D A ∣ + f 0 ( A ) , ∣ D B ∣ + f 0 ( B ) , ∣ D C ∣ + f 0 ( C ) , f 0 ( D ) ] = f 0 ( D ) \left\{\begin{matrix}\min[f_0(A),|AB|+f_0(B),|AC|+f_0(C),|AD|+f_0(D) ]=f_0(A)\\\min[|BA|+f_0(A),f_0(B),|BC|+f_0(C),|BD|+f_0(D) ]=|BC|+f_0(C)\\\min[|CA|+f_0(A),|CB|+f_0(B),f_0(C),|CD|+f_0(D) ]=|CD|+f_0(D)\\\min[|DA|+f_0(A),|DB|+f_0(B),|DC|+f_0(C),f_0(D) ]=f_0(D)\end{matrix}\right. min[f0(A),AB+f0(B),AC+f0(C),AD+f0(D)]=f0(A)min[BA+f0(A),f0(B),BC+f0(C),BD+f0(D)]=BC+f0(C)min[CA+f0(A),CB+f0(B),f0(C),CD+f0(D)]=CD+f0(D)min[DA+f0(A),DB+f0(B),DC+f0(C),f0(D)]=f0(D) { u 1 ( A ) = E u 1 ( B ) = C u 1 ( C ) = D u 1 ( D ) = E \left\{\begin{matrix}u_1(A)=E\\u_1(B)=C\\u_1(C)=D\\u_1(D)=E\end{matrix}\right. u1(A)=Eu1(B)=Cu1(C)=Du1(D)=E
  • 解方程组 { f 1 ( A ) = ∣ A E ∣ + f 1 ( E ) f 1 ( B ) = ∣ B C ∣ + f 1 ( C ) f 1 ( C ) = ∣ C D ∣ + f 1 ( D ) f 1 ( D ) = ∣ D E ∣ + f 1 ( E ) \left\{\begin{matrix}f_1(A)=|AE|+f_1(E)\\f_1(B)=|BC|+f_1(C)\\f_1(C)=|CD|+f_1(D)\\f_1(D)=|DE|+f_1(E)\end{matrix}\right. f1(A)=AE+f1(E)f1(B)=BC+f1(C)f1(C)=CD+f1(D)f1(D)=DE+f1(E),得 { f 1 ( A ) = 2 f 1 ( B ) = 4.5 f 1 ( C ) = 4 f 1 ( D ) = 3 \left\{\begin{matrix}f_1(A)=2\\f_1(B)=4.5\\f_1(C)=4\\f_1(D)=3\end{matrix}\right. f1(A)=2f1(B)=4.5f1(C)=4f1(D)=3
  • { min ⁡ [ f 1 ( A ) , ∣ A B ∣ + f 1 ( B ) , ∣ A C ∣ + f 1 ( C ) , ∣ A D ∣ + f 1 ( D ) ] = f 1 ( A ) min ⁡ [ ∣ B A ∣ + f 1 ( A ) , f 1 ( B ) , ∣ B C ∣ + f 1 ( C ) , ∣ B D ∣ + f 1 ( D ) ] = ∣ B C ∣ + f 1 ( C ) min ⁡ [ ∣ C A ∣ + f 1 ( A ) , ∣ C B ∣ + f 1 ( B ) , f 1 ( C ) , ∣ C D ∣ + f 1 ( D ) ] = ∣ C D ∣ + f 1 ( D ) min ⁡ [ ∣ D A ∣ + f 1 ( A ) , ∣ D B ∣ + f 1 ( B ) , ∣ D C ∣ + f 1 ( C ) , f 1 ( D ) ] = f 1 ( D ) \left\{\begin{matrix}\min[f_1(A),|AB|+f_1(B),|AC|+f_1(C),|AD|+f_1(D) ]=f_1(A)\\\min[|BA|+f_1(A),f_1(B),|BC|+f_1(C),|BD|+f_1(D) ]=|BC|+f_1(C)\\\min[|CA|+f_1(A),|CB|+f_1(B),f_1(C),|CD|+f_1(D) ]=|CD|+f_1(D)\\\min[|DA|+f_1(A),|DB|+f_1(B),|DC|+f_1(C),f_1(D) ]=f_1(D)\end{matrix}\right. min[f1(A),AB+f1(B),AC+f1(C),AD+f1(D)]=f1(A)min[BA+f1(A),f1(B),BC+f1(C),BD+f1(D)]=BC+f1(C)min[CA+f1(A),CB+f1(B),f1(C),CD+f1(D)]=CD+f1(D)min[DA+f1(A),DB+f1(B),DC+f1(C),f1(D)]=f1(D) { u 2 ( A ) = E u 2 ( B ) = C u 2 ( C ) = D u 2 ( D ) = E \left\{\begin{matrix}u_2(A)=E\\u_2(B)=C\\u_2(C)=D\\u_2(D)=E\end{matrix}\right. u2(A)=Eu2(B)=Cu2(C)=Du2(D)=E,与前一步的结果相同。因此可得到最优解f([A,B,C,D])=[2,4.5,4,3]。

Hopfield网络

  • Hopfield网络里有n个形成全连接的神经元,其中第i个神经元和第j个神经元之间的权重为wij,它们组成n阶权重矩阵W,W为对称方阵且对角线元素都为0。该网络还有一个输入向量vn维阈值向量θ
  • 在第t步,网络的能量函数 E ( t ) = − 1 2 v ⃗ t T W v ⃗ t + θ ⃗ T v ⃗ t E(t)=-\frac12\vec v_t^TW\vec v_t+\vec θ^T\vec v_t E(t)=21v tTWv t+θ Tv t,能量总是变得越来越小,即 E ( t + 1 ) ≤ E ( t ) E(t+1)≤E(t) E(t+1)E(t)。能量达到最小值时,即为求得最优解/最优模式。
  • 每步随机选取一个神经元i,选用sgn(x)为非线性激活函数,则有 v i ( t + 1 ) = s g n ( w ⃗ r i v ⃗ t − θ i ) v_i^{(t+1)}=\mathrm{sgn}(\vec w_{ri}\vec v_t-θ_i) vi(t+1)=sgn(w riv tθi) w ⃗ r i \vec w_{ri} w ri代表权重矩阵W的第i行。若状态不变,即 v ⃗ t + 1 = v ⃗ t \vec v_{t+1}=\vec v_t v t+1=v t,则计算终止。

联想记忆

  • Hopfield网络可以用于对稳定模式进行联想记忆,即“输入像哪个稳定模式,网络就向它收敛”。
  • 在稳定模式已知时,使用Hebb学习规则求权重:若给定m个稳定模式 x 1 , x 2 , ⋯ , x m x_1,x_2,⋯,x_ m x1,x2,,xm让Hopfield网络记忆(在优化问题中代表m个极小值),则根据Hebb学习规则可得该网络的权重矩阵 W = ∑ i = 1 m f ( x ⃗ i x ⃗ i T ) W=∑_{i=1}^mf(\vec x_i\vec x_i^T) W=i=1mf(x ix iT),f(A)表示将A的对角线元素清零。

求最优解

  • Hopfield网络可以用于求最优化问题,如旅行商问题和二分图问题。以二分图问题为例,如下图所示的电路板上有10个元件和若干导线,现需要用一条曲线将电路板分成两部分,要求两部分电路中的元件数量相同,且曲线穿过的导线数尽量少。
    在这里插入图片描述
  • 上述元件的导线连接方式可用连接性矩阵 W = [ 0 1 1 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 1 0 0 0 0 0 0 1 1 0 1 0 0 0 0 1 0 0 1 1 0 1 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 1 0 1 0 0 0 0 0 0 1 0 1 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 1 1 1 1 0 ] W=\begin{bmatrix}0&1&1&0&0&0&0&0&0&0\\1&0&0&1&0&0&0&0&0&0\\1&0&0&1&1&0&0&0&0&0\\0&1&1&0&1&0&0&0&0&1\\0&0&1&1&0&1&0&0&0&1\\0&0&0&0&1&0&1&0&0&1\\0&0&0&0&0&1&0&1&0&1\\0&0&0&0&0&0&1&0&1&1\\0&0&0&0&0&0&0&1&0&1\\0&0&0&0&1&1&1&1&1&0 \end{bmatrix} W= 0110000000100100000010011000000110100000001101000100001010010000010101000000101100000001010001111110 表示,wij=1(0)代表第i和第j个元件之间(没)有导线相连。同时,板被分割后元件的状态可用10维向量 v ⃗ \vec v v 表示,vi∈{-1,1},具有相同v值的元件在同一块板上。
  • 于是,该问题的数学模型可表示为:
    max ⁡ ∑ ∑ v i v j w i j = v ⃗ T W v ⃗ s . t . { ∑ v i = 0 v i ∈ { − 1 , 1 } , i = 1 , 2 , 3 , ⋯ , n \max ∑∑v_iv_jw_{ij}=\vec v^TW\vec v\\s.t.\left\{\begin{matrix}∑v_i=0\\v_i∈\{-1,1\},i=1,2,3,⋯,n\end{matrix}\right. max∑∑vivjwij=v TWv s.t.{vi=0vi{1,1},i=1,2,3,,n
  • 用拉格朗日乘数法可将原问题转换为使能量函数 E = − 1 2 v ⃗ T W v ⃗ + λ 2 ( ∑ v i ) 2 E=-\frac12\vec v^TW\vec v+\fracλ2(∑v_i)^2 E=21v TWv +2λ(vi)2最小化。
  • 任取一个满足 ∑ v i = 0 ∑v_i=0 vi=0的初始状态 v ⃗ 0 \vec v_0 v 0和拉格朗日常数λ,在第m轮,计算第i=(m+10)%10个神经元: v i ( t + 1 ) = s g n ( ∑ j = 1 n ( w i j − λ ) v j ) = s g n ( w ⃗ r i v ⃗ t − λ ∑ v i ( t ) ) v_i^{(t+1)}=\mathrm{sgn}(∑_{j=1}^n(w_{ij}-λ)v_j)=\mathrm{sgn}(\vec w_{ri}\vec v_t-λ∑v_i^{(t)}) vi(t+1)=sgn(j=1n(wijλ)vj)=sgn(w riv tλvi(t))。若vi变号,为了满足约束条件,还要随机选一个与vi异号的神经元与之同时变号。

模拟退火算法

  • 以背包问题为例:假设有n件物品,它们的质量为向量 m ⃗ \vec m m ,价值为向量 p ⃗ \vec p p ,背包可容纳的最大物品质量为M;向量 x ⃗ \vec x x 为n件物品的状态,xi=1(0)代表(不)拿第i件物品;模拟退火温度为T。
  • 背包问题的数学模型为:
    max ⁡ p ⃗ T x ⃗ s . t . { w ⃗ T x ⃗ ≤ M x i ∈ { 0 , 1 } , i = 1 , 2 , 3 , ⋯ , n \max \vec p^T\vec x\\s.t.\left\{\begin{matrix}\vec w^T\vec x≤M\\x_i∈\{0,1\},i=1,2,3,⋯,n\end{matrix}\right. maxp Tx s.t.{w Tx Mxi{0,1},i=1,2,3,,n
  • 设E为代价函数(或能量),λ为拉格朗日乘子,则上述模型可变为:
    min ⁡ − p ⃗ T x ⃗ + max ⁡ [ 0 , λ ( w ⃗ T x ⃗ − M ) ] \min -\vec p^T\vec x+\max[0,λ(\vec w^T\vec x-M)] minp Tx +max[0,λ(w Tx M)]
    其意义是使物品的总价值最大化,但背包超重时则需要罚款,超重越多则罚款也越多。
  • 在每步迭代中,随机将一样物品放入或拿出背包,即随机改变一个x值。然后计算状态转移概率 P k = exp ⁡ ( E k − 1 − E k T ) P_k=\exp(\frac{E_{k-1}-E_k}T) Pk=exp(TEk1Ek),再从0~1之间取一个均匀分布的随机数。若该随机数小于(大于)Pk,则接受(拒绝)该改变。
  • 可见,如果总能量变小则必然接受新的改变,否则要“看AI的心情”决定是否改变。爱因斯坦说上帝不掷骰子,但妹说AI不能掷。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值