遗传算法能否解决同时包含整数约束和等式约束的优化问题?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了遗传算法能否解决同时包含整数约束和等式约束的优化问题?相关的知识,希望对你有一定的参考价值。
matlab自带的GA函数无法解决同时包含整数约束和等式约束的问题,那么遗传算法原理上能不能解决同时包含整数约束和等式约束的优化问题?
针对遗传算法较难处理含等式约束的优化问题,在设计变量独立性分析的基础上对等式约束采用了降维处理方法,不仅使等式约束在优化时始终严格满足,而且经降维处理后优化问题仅包含不等式约束;然后,借鉴多目标优化思想,提出了从个体违反约束程度和违反次数2方面同时对种群进行排序,使算法对个体的排序和选择更符合实际.实例验证了该算法的有效性和可行性. 参考技术A 题主有头绪了吗优化理论09-----线性等式约束问题的投影方法投影最速下降算法解决方向查找问题(DFP)牛顿法的修正在线性等式约束变度量法
线性等式约束问题的投影方法
文章目录
1 回顾最速下降法
无约束最优化问题:
(
P
)
min
f
(
x
)
s.t.
x
∈
R
n
\\begin{aligned} (P) ~ ~ ~ \\min &~ ~ ~ f(x)\\\\ \\text{s.t.} &~ ~ ~x ∈ R^n \\end{aligned}
(P) mins.t. f(x) x∈Rn
其中
f
(
x
)
f(x)
f(x)是可微的。在
x
=
x
ˉ
x =\\bar{x}
x=xˉ处,
f
(
x
)
f(x)
f(x)可以通过线性展开逼近
f
(
x
ˉ
+
d
)
≈
f
(
x
ˉ
)
+
∇
f
(
x
ˉ
)
T
d
f(\\bar{x} + d) ≈ f(\\bar{x}) + ∇f(\\bar{x})^T d
f(xˉ+d)≈f(xˉ)+∇f(xˉ)Td
为了使d小。这就导致了d的选择,由方向查找问题所决定的:
m
i
n
i
m
i
z
e
∇
f
(
x
ˉ
)
T
d
s
.
t
.
∥
d
∥
≤
1
,
minimize~~~ ∇f(\\bar{x})^T d\\\\ s.t. ~~\\|d\\| ≤ 1,
minimize ∇f(xˉ)Tds.t. ∥d∥≤1,
等于:
m
i
n
i
m
i
z
e
∇
f
(
x
ˉ
)
T
d
s
.
t
.
d
T
I
d
≤
1.
minimize~~~ ∇f(\\bar{x})^T d\\\\ s.t.~ ~~d^T Id ≤ 1.
minimize ∇f(xˉ)Tds.t. dTId≤1.
这个方向查找问题的解决方法为:
d
ˉ
=
−
∇
f
(
x
ˉ
)
∥
∇
f
(
x
ˉ
)
∥
\\bar{d}=\\frac{-∇f(\\bar{x})}{\\|∇f(\\bar{x})\\|}
dˉ=∥∇f(xˉ)∥−∇f(xˉ)
因为我们选择了下一步
x
′
=
x
ˉ
+
α
d
ˉ
x' = \\bar{x} + α\\bar{d}
x′=xˉ+αdˉ
对于一些步长尺寸
α
α
α的选择,那么我们可以简单地将
d
ˉ
\\bar{d}
dˉ方向重新缩放为:
d
ˉ
=
−
∇
f
(
x
ˉ
)
\\bar{d} = −∇f(\\bar{x})
dˉ=−∇f(xˉ)
也就是说,最速下降法方向就是f(x)在
x
=
x
ˉ
x =\\bar{x}
x=xˉ处的梯度的负值。
2 等式限制问题
现在考虑稍微复杂一点的问题
(
P
)
min
f
(
x
)
s.t.
A
x
=
b
x
∈
R
n
\\begin{aligned} (P) ~ ~ ~ \\min &~ ~ ~ f(x)\\\\\\text{s.t.} &~ ~ ~ Ax = b\\\\ &~ ~ ~x ∈ R^n \\end{aligned}
(P) mins.t. f(x) Ax=b x∈Rn
其中f(x)是可微的。这个问题的KKT条件如下:
A
x
ˉ
=
b
∇
f
(
x
ˉ
)
+
A
T
π
ˉ
=
0.
A\\bar{x}= b \\\\∇f(\\bar{x}) +A^T\\bar{π} = 0.
Axˉ=b∇f(xˉ)+ATπˉ=0.
我们希望找到KKT点。
假设我们在点
x
=
x
ˉ
x =\\bar{x}
x=xˉ,其中
A
x
ˉ
=
b
A\\bar{x}= b
Axˉ=b,即
x
ˉ
\\bar{x}
xˉ是一个可行点。我们有
f
(
x
ˉ
+
d
)
≈
f
(
x
ˉ
)
+
∇
f
(
x
ˉ
)
T
d
f(\\bar{x} + d) ≈ f(\\bar{x}) + ∇f(\\bar{x})^T d
f(xˉ+d)≈f(xˉ)+∇f(xˉ)Td
使d小。为了选择
d
ˉ
\\bar{d}
dˉ方向并计算下一个点
x
′
=
x
ˉ
+
α
d
ˉ
x' = \\bar{x} + α\\bar{d}
x′=xˉ+αd以上是关于遗传算法能否解决同时包含整数约束和等式约束的优化问题?的主要内容,如果未能解决你的问题,请参考以下文章
matlab遗传算法求解带有时间窗载重约束的外卖配送路径优化(硬约束)