【多目标优化算法】基于分解的多目标进化算法 MOEA/D
多目标优化算法:基于分解的多目标进化算法 MOEA/D
相关概念
- MOP-多目标优化
多目标优化问题(MOP):
maxF(x)=(f1(x),,,fm(x))Tmax F(x) = (f_1(x),,,f_m(x))^T maxF(x)=(f1(x),,,fm(x))T
subjecttox∈Ωsubject\ to\ x \in \varOmega subject to x∈Ω
Ω\varOmegaΩ是决策空间,F:Ω→RmF: \varOmega \to R^mF:Ω→Rm包含m个实数值目标函数,RmR^mRm被称为目标空间,{F(x)∣x∈ΩF(x)|x \in \varOmegaF(x)∣x∈Ω}为可得到目标集合
if x∈Rnx \in R_nx∈Rn,所有的连续目标和Ω\varOmegaΩ被描述为
Ω={x∈Rn∣hj(x)≤0,j=1,...,m}\varOmega =\{x \in R^n|h_j(x) \le 0,j=1,...,m\} Ω={x∈Rn∣hj(x)≤0,j=1,...,m}
MOEA/D的特点
- 将多目标问题分解成一定数量N的子问题,再同时进行优化每个子问题,简单但是有效
- 由于MOEA/D算法利用相邻子问题的解同时优化多个子问题而不是优化整体,MOEA/D对保持多样性和降低适应度分配的难度都有很好的表现
- 当MOEA/D算法当遇到种群数量较小时,也可以产生分步均匀的解。
- T为最接近的相邻子问题的数量,当T太小时,搜索域太小;当T太大时,产生的解质量会下降。
- 相比于NSGA-II和MOGLS,MOEA/D有较好的计算复杂度,MOGLS和MOEA/D在解决0-1背包问题时,使用相同的分解方法,MOEA/D的解更优。在有个3目标连续测试中,使用一个先进分解方法的MOEA/D算法的表现比NSGA-II优秀许多。
MOEA/D的分解策略
权重求和法(Weighted Sum Approach)
使λ=(λ1,......,λm)T\lambda = (\lambda_1,......,\lambda_m)^Tλ=(λ1,......,λm)T为一个权重向量,对所有的i=1,...,mi=1,...,mi=1,...,m有λi≥0\lambda_i \geq 0λi≥0且∑i=1m=1\sum_{i=1}^m=1∑i=1m=1.对于优化问题:
maxgws(x∣λ)=∑i=1mλifi(x)max \ g^{ws}(x|\lambda) = \sum_{i=1}^m \lambda_if_i(x) max gws(x∣λ)=i=1∑mλifi(x)
subjecttox∈Ωsubject \ to \ x \in \varOmega subject to x∈Ω
当xxx是需要被优化的变量时,λ\lambdaλ在目标函数中是一个系数向量。在上面标量化的问题中,我们可以使用不同权重的λ\lambdaλ以生成一组不同的Pareto最优向量。不是每个Pareto最优向量可以通过这种方法获得非凹PFs.。切比雪夫法(Tchebycheff Approach)
标量优化问题如下:
mingte(x∣λ,z∗)=max1≤i≤m{λi∣fi(x)−zi∗∣}min \ g^{te}(x|\lambda,z^*) = {\ \max_{1 \leq i \leq m}}\ \{\lambda_i|f_i(x)-z_i^*|\} min gte(x∣λ,z∗)= 1≤i≤mmax {λi∣fi(x)−zi∗∣}
subjecttox∈Ωsubject \ to\ x \in \varOmega subject to x∈Ω
其中z∗=(z1∗,...,zm∗)Tz^* = (z_1^*,...,z_m^*)^Tz∗=(z1∗,...,zm∗)T是参照点,对于每个i=1,,,mi=1,,,mi=1,,,m,zi∗=max{fi(x)∣x∈Ω}3z_i^*=max\{f_i(x)|x \in \varOmega\}^3zi∗=max{fi(x)∣x∈Ω}3。一个能够获得不同Pareto最优解的方式是交换权重向量。一个缺点是,对于连续的MOP,使用这种方法的聚合函数不平滑。然而这种方法仍然可以使用在我们提出的EA框架中,因为我们不需要计算该聚合函数的倒数。边界交叉法(Boundary Intersection)
mingbi(x∣λ,z∗)=dmin \ g^{bi}(x|\lambda,z^*) = d min gbi(x∣λ,z∗)=d
subjecttoz∗−F(x)=dλ,x∈Ωsubject\ to\ z^*-F(x) = d\lambda, \ x \in \varOmega subject to z∗−F(x)=dλ, x∈Ω
当λ\lambdaλ和z∗z^*z∗分别是权重向量和参考点时,上图中约束z∗−F(x)=dλz^*-F(x)=d\lambdaz∗−F(x)=dλ保证F(x)F(x)F(x)这个点总是在方向为λ\lambdaλ且穿过z∗z^*z∗的直线L上。优化的目标是尽可能高的将F(x)推至可达到目标集合的边界上。
上述方法其中有个最大的缺点是处理相等约束。我们可以使用罚函数来解决约束问题,具体如下:
mingbip(x∣λ,z∗)=d1+θd2min \ g^{bip}(x|\lambda,z^*)=d_1+\theta d_2 min gbip(x∣λ,z∗)=d1+θd2
subjecttox∈Ωsubject \ to\ x \in \varOmega subject to x∈Ω
where
d1=∥(z∗−F(x))Tλ∥∥λ∥d_1 = \frac {\lVert (z^* - F(x))^T \lambda \rVert} {\lVert \lambda \rVert} d1=∥λ∥∥(z∗−F(x))Tλ∥
andd2=∥F(x)−(z∗−d1λ)∥and \ d_2 = \lVert F(x) - (z^* - d_1\lambda) \rVert and d2=∥F(x)−(z∗−d1λ)∥
θ>0\theta > 0θ>0是一个预设的惩罚参数。yyy是F(x)在直线L上的投影,d1d_1d1是z∗z^*z∗和y的距离,d2d_2d2是F(x)和L的距离。当θ\thetaθ去适当的值时,两种边界交叉法的结果会非常接近。
MOEA/D的算法步骤(Tchebycheff Approach)
令λj=(λ1j,...,λmj)T\lambda^j = (\lambda_1^j,...,\lambda_m^j)^Tλj=(λ1j,...,λmj)T为一组均匀分布的权重向量,z∗z^*z∗为参考点,第j个问题的目标函数为:
gte(x∣λj,z∗)=max1≤i≤m{λij∣fi(x)−zi∗∣}g^te(x|\lambda^j,z^*)= \max_{1 \leq i \leq m}\{\lambda_i^j | f_i(x) - z_i^*|\} gte(x∣λj,z∗)=1≤i≤mmax{λij∣fi(x)−zi∗∣}
MOEA/D可以在一次运行中,同时优化所有这N个子问题目标函数。
在MOEA/D中,权重向量的邻居中取几个最接近的权重向量,每一代的种群由每个子问题的最优解组成。只有相邻子问题可以进行优化当前的解。
每一代(t),MOEA/D(Techebycheff)包括:
- x1,...,xN∈Ωx^1,...,x^N \in \varOmegax1,...,xN∈Ω由N个点组织成的种群,xix^ixi是第i个问题的当前解
- FVi,...,FVNFV^i,...,FV^NFVi,...,FVN,FVi=F(xi)FV^i = F(x^i)FVi=F(xi)
- z=(z1,...,zm)Tz = (z_1 , ... ,z_m)^Tz=(z1,...,zm)T,ziz_izi是目标fif_ifi中已发现最好的值。
- EP用来存储咋搜索过程中的非支配解
Input:
- MOP(1);
- 算法停止条件
- N:分解成的子问题的个数
- N个分布均匀的权重向量
- T:每个权重向量相邻的权重向量的个数
Output:EP
Step 1) 初始化:
Step 1.1) Set EP = ∅\empty∅。
Step 1.2) 计算任意两个权重向量的欧氏距离,找出每个权重向量最近邻的T个权重向量,对每一个 i=1,...,Ni = 1,...,Ni=1,...,N,设$B(i) = {i_1,…,i_T}, 其中其中其中 \lambda{i1},…,\lambda{iT}是最接近是最接近是最接近\lambda^i$的N个权重向量。
Step 1.3) 随机或者使用特定方法生成一个初始化种群x1,...,xNx^1,...,x^Nx1,...,xN。设FVi=F(xi)FV^i = F(x^i)FVi=F(xi)。
Step 1.4) 根据特定的问题初始化z=(z1,...,zm)Tz = (z_1,...,z_m)^Tz=(z1,...,zm)T。
Step 2) 更新:
循环对i=1,...,Ni=1,...,Ni=1,...,N做以下操作
Step 2.1)繁殖: 从B(i)B(i)B(i)中随机选择两个索引k,lk,lk,l,xkx^kxk和xlx^lxl使用遗传算子生成新的解yyy。
Step 2.2)改善: 根据特定问题,使用启发式方法改进yyy生成y′y'y′。
Step 2.3)更新z: 对于每一个$j = 1 , …,m ,如果,如果,如果z_j < f_i(y’),使,使,使z_j = f_j(y’)$。
Step 2.4)更新邻域解: 对每个属于B(i)B(i)B(i)的索引j,如果gte(y′∣λj,z)≤gte(xj∣λj,z)g^{te}(y'|\lambda^j,z) \leq g^{te}(x^j|\lambda^j,z)gte(y′∣λj,z)≤gte(xj∣λj,z),则令xj=y′x^j = y'xj=y′ ,FVj=F(y′)FV^j = F(y')FVj=F(y′)。
Step 2.5)更新EP:
1.删除EP中所有被F(y′)F(y')F(y′)支配的向量。
2.如果EP中没有向量支配F(y′)F(y')F(y′),则将F(y′)F(y')F(y′)加入到EP中。
Step 3)停止条件: 如果满足停止条件,停止并且输出EP,否则则跳转至Step 2。
MOEA/D与NSGA-II的对比
- 评价准则
1.1 C-Metric
A和B是MOP问题的两个接近的PF集合
C(A,B)=∣{u∈B∣∃v∈A:vdominatesu}∣∣B∣C(A,B) = \frac {\lvert \{u \in B | \exist v \in A: v dominates \ u \} \rvert} {\lvert B \rvert} C(A,B)=∣B∣∣{u∈B∣∃v∈A:vdominates u}∣
C(A,B)C(A,B)C(A,B)不等于1−C(B,A)1-C(B,A)1−C(B,A)。C(A,B)=1C(A,B) = 1C(A,B)=1表示B中所有的解都被A中的一些解支配。当C(A,B)=0C(A,B)=0C(A,B)=0表示B中没有解被A中支配。
1.2 D-Metric
令P∗P^*P∗为沿着PF的一组分布均匀的点,令A为接近PF的集合,P∗P^*P∗和A的平均距离定义如下:
D(A,P∗)=∑v∈P∗d(v,A)∣P∗∣D(A,P^*) = \frac {\displaystyle\sum_{v \in P^*}d(v,A)} {\lvert P^* \rvert} D(A,P∗)=∣P∗∣v∈P∗∑d(v,A)
d(v,A)d(v,A)d(v,A)是vvv和A中的点之间的最小欧氏距离。如果∣P∗∣\lvert P^* \rvert∣P∗∣足够大,说明集合很好的代表了PF,D(A,P∗)D(A,P^*)D(A,P∗)可以一定程度上评估A的多样性和收敛性。
- MOEA/D与NSGA-II的对比
2.1 时间复杂度对比
采用改良的MOEA/D进行实验,去掉了额外种群EP,因此去掉步骤2.5,去掉了启发式优化过程,因此删去了步骤2.2,所以时间复杂度主要在步骤2部分。步骤2.3进行了O(m)O(m)O(m)次比较,步骤2.4部分的时间复杂度为O(mT)O(mT)O(mT),由于分成了N个子问题,所以改良的MOEA/D的时间复杂度为O(mTN)O(mTN)O(mTN)。而NSGA-II的时间复杂度为O(mN2)O(mN^2)O(mN2)。因为N为权重向量的个数,而T为一个权重向量相邻的权重向量的个数,所以T<NT < NT<N,故而MOEA/D的时间复杂度比NSGA-II要小,但时间复杂度的优势不是非常明显。
2.2 空间复杂度对比
改良后的MOEA/D没有EP,只有m个参照点z需要存储,但是与一代种群大小相比,所占空间非常小,我觉得两者是空间复杂度上没有特别大的差别。
2.3 测试函数及实验结果
根据论文中,针对2个目标问题将NSGA-II和MOEA/D的种群大小都100。针对3目标问题,种群数都设为300,都采用模拟二进制的交叉变异和多项式变异,pc=1.0,pm=1/n,T=20p_c=1.0,p_m=1/n,T=20pc=1.0,pm=1/n,T=20
- ZDT1
f1(X)=x1f_1(X) = x_1 f1(X)=x1
f2(X)=g(X)[1−x1/g(X)]f_2(X) = g(X)[1-\sqrt{x_1/g(X)}] f2(X)=g(X)[1−x1/g(X)]
g(X)=1+9(∑i=2nxi)/(n−1)g(X) = 1+9(\sum_{i=2}^nx_i)/(n-1) g(X)=1+9(i=2∑nxi)/(n−1)
n=30,n=30, n=30,
x1∈[0,1],xi=0x_1\in[0,1],x_i = 0 x1∈[0,1],xi=0
NSGA-II MOEA/D
- ZDT2
f1(X)=x1f_1(X) = x_1 f1(X)=x1
f2(X)=g(X)[1−(x1/g(X))2]f_2(X) = g(X)[1-(x_1/g(X))^2] f2(X)=g(X)[1−(x1/g(X))2]
g(X)=1+9(∑i=2nxi)/(n−1)g(X) = 1+9(\sum_{i=2}^nx_i)/(n-1) g(X)=1+9(i=2∑nxi)/(n−1)
n=30,n=30, n=30,
x1∈[0,1],xi=0x_1\in[0,1],x_i = 0 x1∈[0,1],xi=0
NSGA-II MOEA/D
- ZDT3
f1(X)=x1f_1(X) = x_1 f1(X)=x1
f2(X)=g(X)[1−x1/g(X)−x1g(X)sin(10πx1)]f_2(X) = g(X)[1-\sqrt{x_1/g(X)}-{\frac{x_1}{g(X)}}\sin(10\pi x_1)] f2(X)=g(X)[1−x1/g(X)−g(X)x1sin(10πx1)]
g(X)=1+9(∑i=2nxi)/(n−1)g(X) = 1+9(\sum_{i=2}^nx_i)/(n-1) g(X)=1+9(i=2∑nxi)/(n−1)
n=30,n=30, n=30,
x1∈[0,1],xi=0x_1\in[0,1],x_i = 0 x1∈[0,1],xi=0
NSGA-II MOEA/D
- ZDT4
f1(X)=x1f_1(X) = x_1 f1(X)=x1
f2(X)=g(X)[1−x1/g(X)]f_2(X) = g(X)[1-\sqrt{x_1/g(X)}] f2(X)=g(X)[1−x1/g(X)]
g(X)=1+10(n−1)+∑i=2n[xi2−10cos(4πxi)]g(X) = 1+10(n-1)+\sum_{i=2}^n[x_i^2-10\cos(4\pi x_i)] g(X)=1+10(n−1)+i=2∑n[xi2−10cos(4πxi)]
n=10,n=10, n=10,
x1∈[0,1],xi=0x_1\in[0,1],x_i = 0 x1∈[0,1],xi=0
NSGA-II MOEA/D
- ZDT6
f1(X)=1−exp(−4πx1)sin6(6πx1)f_1(X)= 1-exp(-4\pi x_1)\sin^6(6\pi x_1) f1(X)=1−exp(−4πx1)sin6(6πx1)
f2(X)=g(X)[1−(f1(X)/g(X))2]f_2(X)= g(X)[1-(f_1(X)/g(X))^2] f2(X)=g(X)[1−(f1(X)/g(X))2]
g(X)=1+9[(∑ni=2xi)/(n−1)]0.25g(X) = 1+9[(\sum_n^{i=2}x_i)/(n-1)]^{0.25} g(X)=1+9[(n∑i=2xi)/(n−1)]0.25
n=10,n=10, n=10,
x1∈[0,1],xi=0x_1\in[0,1],x_i = 0 x1∈[0,1],xi=0
NSGA-II MOEA/D
- DTLZ1
f1(X)=(1+g(X))x1x2f_1(X) = (1+g(X))x_1x_2 f1(X)=(1+g(X))x1x2
f2(X)=(1+g(X))x1(1−x2)f_2(X) = (1+g(X))x_1(1-x_2) f2(X)=(1+g(X))x1(1−x2)
f3(X)=(1+g(X))(1−x1)f_3(X) = (1+g(X))(1-x_1) f3(X)=(1+g(X))(1−x1)
g(X)=100(n−2)+100∑i=3n{(xi−0.5)2−cos[20π(xi−0.5)]}g(X) = 100(n-2)+100\sum_{i=3}^n\{(x_i-0.5)^2-\cos[20\pi(x_i-0.5)]\} g(X)=100(n−2)+100i=3∑n{(xi−0.5)2−cos[20π(xi−0.5)]}
x=(x1,...,xn)T∈[0,1]nx = (x_1,...,x_n)^T \in [0,1]^n x=(x1,...,xn)T∈[0,1]n
NSGA-II MOEA/D
- DTLZ2
f1(X)=(1+g(X))cos(x1π2)cos(x2π2)f_1(X) = (1+g(X))\cos(\frac {x_1\pi} {2})\cos(\frac {x_2\pi} {2}) f1(X)=(1+g(X))cos(2x1π)cos(2x2π)
f2(X)=(1+g(X))cos(x1π2)sin(x2π2)f_2(X) = (1+g(X))\cos(\frac {x_1\pi} {2})\sin(\frac {x_2\pi} {2}) f2(X)=(1+g(X))cos(2x1π)sin(2x2π)
f3(X)=(1+g(X))sin(x1π2)f_3(X) = (1+g(X))\sin(\frac {x_1\pi} {2}) f3(X)=(1+g(X))sin(2x1π)
g(X)=∑i=3nxi2g(X)=\sum_{i=3}^nx_i^2 g(X)=i=3∑nxi2
x=(x1,...,x2)T∈[0,1]2∗[−1,1]n−2x = (x_1,...,x_2)^T \in [0,1]^2*[-1,1]^{n-2} x=(x1,...,x2)T∈[0,1]2∗[−1,1]n−2
NSGA-II MOEA/D
Δ\DeltaΔ的Mean
Problem | ZDT1 | ZDT2 | ZDT3 | ZDT4 | ZDT6 | DTLZ1 | DTLZ2 |
---|---|---|---|---|---|---|---|
NSGA-II | 0.642 | 0.706 | 0.425 | 1.00 | 0.610 | 0.945 | 0.0323 |
MOEA/D | 1.00 | 1.00 | 0.931 | 1.00 | 0.041 | 0.830 | 0.0281 |
γ\gammaγ的Mean
Problem | ZDT1 | ZDT2 | ZDT3 | ZDT4 | ZDT6 | DTLZ1 | DTLZ2 |
---|---|---|---|---|---|---|---|
NSGA-II | 0.00574 | 0.0662 | 0.00614 | 29.299 | 0.00397 | 72.558 | 0.07819 |
MOEA/D | 0.0177 | 0.4017 | 0.0135 | 15.672 | 0.00635 | 44.726 | 0.4634 |
可以从图的对比和表中Δ\DeltaΔ与γ\gammaγ两个参数的对比看出,在两目标问题上,两者算法相差不多,甚至在ZDT1、ZDT2、ZDT3等问题上NSGA-II更优一些,但是在ZDT6上MOEA/D表现的更好,MOEA/D的主要优势在算法的计算速度上,在面对三目标问题时,MOEA/D比NSGA-II要优秀很多。
【多目标优化算法】基于分解的多目标进化算法 MOEA/D相关推荐
- 计算机视觉算法——基于Anchor Free的目标检测网络总结
计算机视觉算法--基于Anchor Free的目标检测网络总结 计算机视觉算法--基于Anchor Free的目标检测网络总结 1. CornerNet 1.1 关键知识点--网络结构及特点 1.2 ...
- 【图像压缩】基于matlab香农熵和差分进化算法多级图像阈值图像压缩【含Matlab源码 2035期】
一.差分进化算法简介 1 前言 在遗传.选择和变异的作用下,自然界生物体优胜劣汰,不断由低级向高级进化和发展.人们注意到,适者生存的进化规律可以模式化,从而构成一些优化算法:近年来发展的进化计算类算法 ...
- 遗传算法 python 简书_基于DEAP库的Python进化算法从入门到入土—(二)简单遗传算法实现...
前言 在上一篇中,我们已经介绍了如何在DEAP中实现进化算法的基本操作,在这一篇中我们试图将各个操作组装起来,用进化算法解决一个简单的一元函数寻优问题. 进化算法实例 - 一元函数寻优 问题描述与分析 ...
- 基于分解的改进型双目樽海鞘算法在有多辆自动导引车的柔性制造蜂窝环境中的绿色调度问题
文献翻译来源 [1]An improved bi-objective salp swarm algorithm based on decomposition for green scheduling ...
- 差分进化算法_特邀嘉宾 | 科普差分进化算法(创新奇智运筹优化算法工程师朱小龙博士)...
文案:段克邪 排版:随心390 hello,大家好.各位可点击此处,访问公众号官方店铺.谨防上当受骗,感谢各位支持! 今天我们有幸请到创新奇智运筹优化算法工程师朱小龙博士为大家科普差分进化算法,本次推 ...
- 【目标检测】基于yolov5海上船舶目标检测(附代码和数据集)
Hello,大家好,我是augustqi.今天给大家分享的目标检测项目是:基于yolov5海上船舶目标检测(附代码和数据集) Part1 前言 传统的海上目标检测是通过雷达来实现,但是随着技术的发展, ...
- 【目标定位】基于matlab粒子滤波的定位算法【含Matlab源码 2161期】
一.基于粒子滤波污染源定位简介 粒子滤波定位算法是目前最精准定位可移动物体的位置,由于水域的流动,工业固体废物污染源很可能随着水流移动位置,基于粒子滤波算法将污染物定位分为预测.测量以及重新采样可大大 ...
- MOEAD原理及Python实现、MOEAD实现、基于分解的多目标进化、 切比雪夫方法-(python完整代码)
- tensorflow2 目标检测_基于光流的视频目标检测系列文章解读
作者:平凡的外卖小哥 全文5747字,预计阅读时间15分钟 1 简介 目前针对于图片的目标检测的方法大致分为两类: faster R-CNN/R-FCN一类: 此类方法在进行bbox回归和分类之前,必 ...
- python路线寻优_基于DEAP库的Python进化算法从入门到入土 --(四)遗传算法的改进...
前言 前面一节我们尝试了用GA求解TSP问题,简单遗传算法总是不能很好收敛到一个较优的解,在用时和求解精度上都被贪心算法吊打.在末尾我们总结了三个可能的改进方向,这次我们想要沿着这三个方向试着改进简单 ...
最新文章
- go语言笔记——append底层实现和Cpp vector无异,只是有返回值,double后返回了新的vector地址而已...
- Linux命令行下关机【Ubuntu】
- 111. 畜栏预定【贪心】
- 一行命令 优化上传速度
- 如何在Windows 10上使用Microsoft Defender扫描文件或文件夹中的恶意软件
- Java Web 学习与总结(一)Servlet基础
- CSS中clear:both用法及事例
- 阿里影业“灯塔平台”今日正式启动,阿里影视云解决方案强势推出
- 全网找不到jpeg2000的代码范例和图片,怎么可能流行开来?
- 【安全测试工具】Drozer介绍及使用
- matlab 快速傅里叶反变换函数(ifft)编写
- [转]《博客园精华集》ASP.NET分册第2论筛选结果文章列表
- 加解密:MD5DesAesRSARSA C#和Java适配
- 启动Maven项目 死活报404 配置文件都没问题
- 二十一世纪大学英语读写教程(第四册)学习笔记(原文)——2 - The Gratitude We Need(我们所需要的感激)
- L9953LXP_车门致动器驱动器
- hive表加载csv格式数据或者json格式数据
- 2021年web前端基础面试题
- C语言中long long的用法
- 联想小新14pro锐龙版网卡rtl8852ae在ubunru18.04装网卡驱动
热门文章
- FANUC主板图纸 电路图
- 数字交通灯设计(Multisim仿真+PCB实物)
- 机械专业热门选题 论文+图纸+PPT
- 鸿蒙系统底部任务栏无响应,win10底部任务栏无响应两种修复方法
- 鸿蒙系统底部任务栏无响应,win10底部任务栏无响应怎么办?win10底部任务栏无响应修复方法汇总...
- 2016中国互联网络发展状况统计报告(摘要)
- wps软件打不开共享超链接_wps excel的超链接打不开怎么办?
- SecureCRT资源下载安装
- myeclipse10破解补丁激活方法
- LINUX重新编译BIN固件,固件编译