An Efficient Evolutionary Algorithm for Subset Selection with General Cost Constraints
简介
论文标题:
An Efficient Evolutionary Algorithm for Subset Selection with General Cost Constraints
具有通用成本约束的子集选择的高效进化算法
简介:
提出了一个高效的演化算法 EAMC,来解决一般约束下的子集选择问题
论文地址
背景知识
子模
子模(submodular)函数/次模函数
定
义
:
对
于
一
个
集
合
函
数
f
:
2
v
→
R
如
果
∀
X
⊆
Y
时
f
(
X
)
≤
f
(
Y
)
,
则
称
集
合
函
数
f
是
单
调
的
对
于
所
有
的
A
⊆
B
⊆
V
和
s
∈
V
−
B
,
如
果
存
在
f
(
A
∪
s
)
−
f
(
A
)
≥
f
(
B
∪
s
)
−
f
(
B
)
,
为
子
模
性
函
数
。
定义: 对于一个集合函数f:2^v→R\\ 如果 ∀X ⊆ Y 时 f(X) ≤ f(Y),则称集合函数 f 是单调的\\ 对于所有的A⊆B⊆V和s∈V - B,\\ 如果存在f(A∪{s})−f(A)≥f(B∪{s})−f(B),为子模性函数。 \\
定 义 : 对 于 一 个 集 合 函 数 f : 2 v → R 如 果 ∀ X ⊆ Y 时 f ( X ) ≤ f ( Y ) , 则 称 集 合 函 数 f 是 单 调 的 对 于 所 有 的 A ⊆ B ⊆ V 和 s ∈ V − B , 如 果 存 在 f ( A ∪ s ) − f ( A ) ≥ f ( B ∪ s ) − f ( B ) , 为 子 模 性 函 数 。 在S中增加一个元素所增加的收益要小于等于在S的子集中增加一个元素所增加的收益。
例
V
=
1
,
2
,
3
,
4
,
5
,
6
,
7
,
8
A
=
1
,
2
,
3
B
=
1
,
2
,
3
,
5
,
6
e
=
3
,
4
,
5
f
(
A
)
=
∣
A
∣
(
表
示
集
合
A
的
个
数
)
所
以
:
f
(
A
+
e
)
−
f
(
A
)
>
=
f
(
B
+
e
)
−
f
(
B
)
V={1,2,3,4,5,6,7,8}\\ A={1,2,3}\\ B={1,2,3,5,6}\\ e={3,4,5}\\ f(A)=|A| (表示集合A的个数)\\ 所以:f(A+e)-f(A)>=f(B+e)-f(B)\\
V = 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 A = 1 , 2 , 3 B = 1 , 2 , 3 , 5 , 6 e = 3 , 4 , 5 f ( A ) = ∣ A ∣ ( 表 示 集 合 A 的 个 数 ) 所 以 : f ( A + e ) − f ( A ) > = f ( B + e ) − f ( B ) 子模性质的三种表示方式
i.e., for any
X
⊆
Y
⊆
V
,
v
∉
Y
X \subseteq Y \subseteq V, v \notin Y
X ⊆ Y ⊆ V , v ∈ / Y
f
(
X
∪
{
v
}
)
−
f
(
X
)
≥
f
(
Y
∪
{
v
}
)
−
f
(
Y
)
f(X \cup\{v\})-f(X) \geq f(Y \cup\{v\})-f(Y)
f ( X ∪ { v } ) − f ( X ) ≥ f ( Y ∪ { v } ) − f ( Y ) or equivalently, for any
X
⊆
Y
⊆
V
X \subseteq Y \subseteq V
X ⊆ Y ⊆ V
f
(
Y
)
−
f
(
X
)
≤
∑
v
∈
Y
\
X
f
(
X
∪
{
v
}
)
−
f
(
X
)
f(Y)-f(X) \leq \sum_{v \in Y \backslash X} f(X \cup\{v\})-f(X)
f ( Y ) − f ( X ) ≤ v ∈ Y \ X ∑ f ( X ∪ { v } ) − f ( X ) or equivalently, for any
X
,
Y
⊆
V
X, Y \subseteq V
X , Y ⊆ V
f
(
X
)
+
f
(
Y
)
≥
f
(
X
∩
Y
)
+
f
(
X
∪
Y
)
f(X)+f(Y) \geq f(X \cap Y)+f(X \cup Y)
f ( X ) + f ( Y ) ≥ f ( X ∩ Y ) + f ( X ∪ Y ) 子模比(submodularity)
α
f
=
min
X
⊆
Y
,
v
∉
Y
f
(
X
∪
{
v
}
)
−
f
(
X
)
f
(
Y
∪
{
v
}
)
−
f
(
Y
)
\alpha_{f}=\min _{X \subseteq Y, v \notin Y} \frac{f(X \cup\{v\})-f(X)}{f(Y \cup\{v\})-f(Y)}
α f = X ⊆ Y , v ∈ / Y min f ( Y ∪ { v } ) − f ( Y ) f ( X ∪ { v } ) − f ( X ) 子模比的概念可用于度量 f 所具有的子模性的程度
(1)0 ≤
α
f
α_f
α f ≤ 1
(2)
α
f
α_f
α f = 1 当且仅当 f 是子模函数。
子模比的两种定义方式
Submodular
∀
X
⊆
Y
⊆
V
,
v
∉
Y
:
f
(
X
∪
{
v
}
)
−
f
(
X
)
≥
f
(
Y
∪
{
v
}
)
−
f
(
Y
)
or
∀
X
⊆
Y
⊆
V
:
f
(
Y
)
−
f
(
X
)
≤
∑
v
∈
Y
\
x
f
(
X
∪
{
v
}
)
−
f
(
X
)
\begin{array}{l} {\forall X \subseteq Y \subseteq V, v \notin Y: f(X \cup\{v\})-f(X) \geq f(Y \cup\{v\})-f(Y)} \\ {\text { or } \forall X \subseteq Y \subseteq V: f(Y)-f(X) \leq \sum_{v \in Y \backslash x} f(X \cup\{v\})-f(X)} \end{array}
∀ X ⊆ Y ⊆ V , v ∈ / Y : f ( X ∪ { v } ) − f ( X ) ≥ f ( Y ∪ { v } ) − f ( Y ) or ∀ X ⊆ Y ⊆ V : f ( Y ) − f ( X ) ≤ ∑ v ∈ Y \ x f ( X ∪ { v } ) − f ( X ) Submodular ratio
α
f
=
min
X
⊆
Y
,
v
∈
Y
f
(
X
∪
{
v
}
)
−
f
(
X
)
f
(
Y
∪
{
v
}
)
−
f
(
Y
)
\alpha_{f}=\min _{X \subseteq Y, v \in Y} \frac{f(X \cup\{v\})-f(X)}{f(Y \cup\{v\})-f(Y)}
α f = X ⊆ Y , v ∈ Y min f ( Y ∪ { v } ) − f ( Y ) f ( X ∪ { v } ) − f ( X )
γ
U
,
k
(
f
)
=
min
X
⊆
U
,
Y
:
\
{
{
K
,
X
∩
Y
=
∅
∑
v
∈
Y
f
(
X
∪
{
v
}
)
−
f
(
X
)
f
(
X
∪
Y
)
−
f
(
X
)
\gamma_{U, k}(f)=\min _{X \subseteq U, Y: \backslash\{\{K, X \cap Y=\emptyset} \frac{\sum_{v \in Y} f(X \cup\{v\})-f(X)}{f(X \cup Y)-f(X)}
γ U , k ( f ) = X ⊆ U , Y : \ { { K , X ∩ Y = ∅ min f ( X ∪ Y ) − f ( X ) ∑ v ∈ Y f ( X ∪ { v } ) − f ( X )
分别来自子模定义1与定义2
总曲率
κ
f
=
1
−
min
v
∈
V
:
f
(
{
v
}
)
>
0
f
(
V
)
−
f
(
V
\
{
v
}
)
f
(
{
v
}
)
\kappa_{f}=1-\min _{v \in V: f(\{v\})>0} \frac{f(V)-f(V \backslash\{v\})}{f(\{v\})}
κ f = 1 − v ∈ V : f ( { v } ) > 0 min f ( { v } ) f ( V ) − f ( V \ { v } ) 总曲率描述了单调子模函数 f 与模块度的相近程度
(1)
1
≥
1
–
κ
f
≥
0
1 ≥ 1 – κ_f ≥ 0
1 ≥ 1 – κ f ≥ 0
(2)如果没有子模性,则
1
/
α
f
≥
1
–
κ
f
≥
0
1/α_f ≥ 1 – κ_f ≥ 0
1 / α f ≥ 1 – κ f ≥ 0 成立
子集选择问题
文本所研究的广义问题
给定一个单调目标函数
f
:
2
V
→
R
+
f : 2^V → R^+
f : 2 V → R + 、一个单调成本函数
c
:
2
V
→
R
+
c : 2^V → R^+
c : 2 V → R + 以及预算
B
B
B ,目标是找到:
arg
max
X
⊆
V
f
(
X
)
s.t.
c
(
X
)
≤
B
\arg \max _{X \subseteq V} f(X) \quad \text { s.t. } \quad c(X) \leq B
arg X ⊆ V max f ( X ) s.t. c ( X ) ≤ B 即最大化单调目标 f,使得单调成本函数 c 的上界处在预算 B 的约束下。f 和 c 并不必须 都是子模函数。
子集选择问题的三种应用
最大覆盖问题
影响力最大化问题
传感器放置问题
最大覆盖问题 给定元素集合
U
U
U 、
U
U
U 的一组子集
V
=
{
S
1
,
.
.
.
,
S
n
}
V =\{S1, . . . , Sn\}
V = { S 1 , . . . , S n } 、一个单调成本函数
c
:
2
V
→
R
+
c : 2^V →R^+
c : 2 V → R + 以及预算
B
B
B ,目标是找到
arg
max
X
⊆
V
f
(
X
)
=
∣
⋃
S
i
∈
X
S
i
∣
s.t.
c
(
X
)
≤
B
\arg \max _{X \subseteq V} f(X)=\left|\bigcup_{S_{i} \in X} S_{i}\right| \quad \text { s.t. } \quad c(X) \leq B
arg X ⊆ V max f ( X ) = ∣ ∣ ∣ ∣ ∣ S i ∈ X ⋃ S i ∣ ∣ ∣ ∣ ∣ s.t. c ( X ) ≤ B 给定一组覆盖了元素全域的集合,最大覆盖任务的目标是在一定成本预算下选择出某些集合并使得这些集合的并集是最大的。可以很容易验证:f 是单调的子模函数 。
影响力最大化
给
定
一
个
有
向
图
G
=
(
V
,
E
)
,
对
于
(
u
,
v
)
∈
E
,
边
概
率
为
p
u
,
v
;
以
及
单
调
成
本
函
数
c
:
2
V
→
R
+
和
预
算
B
,
目
标
是
找
到
:
arg
max
X
⊆
V
f
(
X
)
=
E
[
∣
I
C
(
X
)
∣
]
s.t.
c
(
X
)
≤
B
给定一个有向图 G = (V, E),对于 (u, v)∈E,边概率为 p_{u,v};\\ 以及单调成本函数 c : 2^V →R^+ 和预算 B,目标是找到:\\ \arg \max _{X \subseteq V} f(X)=\mathrm{E}[|I C(X)|] \quad \text { s.t. } \quad c(X) \leq B
给 定 一 个 有 向 图 G = ( V , E ) , 对 于 ( u , v ) ∈ E , 边 概 率 为 p u , v ; 以 及 单 调 成 本 函 数 c : 2 V → R + 和 预 算 B , 目 标 是 找 到 : arg X ⊆ V max f ( X ) = E [ ∣ I C ( X ) ∣ ] s.t. c ( X ) ≤ B
传感器放置 给定 n 个位置
V
=
{
v
1
,
v
2
,
.
.
.
,
v
n
}
V = \{v_1, v_2, ... , v_n\}
V = { v 1 , v 2 , . . . , v n } 、单调成本函数
c
:
2
V
→
R
+
c : 2^V →R^+
c : 2 V → R + 和预算
B
B
B ,目标是找到:
arg
max
X
⊆
V
H
(
{
o
j
∣
v
j
∈
X
}
)
s.t.
c
(
X
)
≤
B
\arg \max _{X \subseteq V} H\left(\left\{o_{j} | v_{j} \in X\right\}\right) \quad \text { s.t. } \quad c(X) \leq B\\
arg X ⊆ V max H ( { o j ∣ v j ∈ X } ) s.t. c ( X ) ≤ B 其中
H
(
⋅
)
H(·)
H ( ⋅ ) 表示熵,已知熵
H
(
⋅
)
H(·)
H ( ⋅ ) 是一个单调子模函数
成本约束
对于这些应用,成本限制(约束)可能是简单的规模限制,即
c
(
x
)
=
∣
x
∣
c(x)=|x|
c ( x ) = ∣ x ∣ ,
或一般的线性成本限制,即
c
(
X
)
=
∑
i
:
v
i
∈
X
c
i
c(X)=\sum_{i: v_{i} \in X} c_{i}
c ( X ) = ∑ i : v i ∈ X c i ,
但在某些情况中,这个限制可能更加复杂,比如路径限制,这是单调非子模的。
约束
集合中元素个数->线性约束->单调次模约束->单调约束->单调非次模约束
介绍
子集选择问题是一个 NP-hard 问题,并且具有很多应用场景,比如最大覆盖 、影响力最大化和传感器放置。
问题目标
从 n 个元素中,选择满足约束 c 的一个子集,使得目标函数 f 的值最大:
arg
max
X
⊆
V
f
(
X
)
s.t.
c
(
X
)
≤
B
\arg \max _{X \subseteq V} f(X) \quad \text { s.t. } \quad c(X) \leq B\\
arg X ⊆ V max f ( X ) s.t. c ( X ) ≤ B 其中
f
f
f 和
c
c
c 都是单调的,但并不一定满足子模性
解法
针对这类问题,现有的代表性算法有广义贪心算法和 POMC,该篇论文提出了EAMC。
广义贪心算法: 耗时较短,但是受限于它的贪心行为,其找到的解质量往往一般;
POMC :随机优化算法,可以使用更多的时间来找到质量更好的解,但是其缺乏多项式的运行时间保证。
EAMC: 通过优化一个整合了 f 和 c 的代理函数,它可以在多项式时间内找到目前已知最好的近似解。
子集选择算法
广义贪心算法
算法流程
迭代的选择使F增益/C增益最大的元素,即F增益尽可能大,C增益尽可能小
第9行,从集合中选择一个使F最大的单个元素,然后和之前的元素集合进行比较,输出最优解
近似解
Theorem 1. For maximizing a monotone objective function
f
f
f with a monotone cost constraint, the generalized greedy algorithm finds a subset
X
⊆
V
X \subseteq V
X ⊆ V with
f
(
X
)
≥
α
f
2
(
1
−
1
e
α
f
)
⋅
O
P
T
f(X) \geq \frac{\alpha_{f}}{2}\left(1-\frac{1}{e^{\alpha_{f}}}\right) \cdot O P T
f ( X ) ≥ 2 α f ( 1 − e α f 1 ) ⋅ O P T
POMC算法
基本思想
演化算法
把原问题转换成一个二目标问题
解是一个零一串,0代表没有被选择,1代表被选择,每个零一串对应一个子集
保留一个种群,对种群中的解变异(逐位变异等)产生新的解
算法流程
全零解加入集合
随机选择一个解逐位变异产生新的解,
如果种群中没有接比这个好,这个解就加入到种群中,质量较差的解被删除
输出种群中最好的解
近似解
Theorem
2.
2 .
2 . For maximizing a monotone objective function
f
f
f with a monotone cost constraint, POMC with
E
[
T
]
≤
e
n
B
P
max
/
δ
c
\mathrm{E}[T] \leq e n B P_{\max } / \delta_{c}
E [ T ] ≤ e n B P max / δ c finds a subset
X
⊆
V
X \subseteq V
X ⊆ V with
f
(
X
)
≥
α
f
2
(
1
−
1
e
α
f
)
⋅
O
P
T
can be exponentially
large w.r.t.
n
f(X) \geq \frac{\alpha_{f}}{2}\left(1-\frac{1}{e^{\alpha_{f}}}\right) \cdot O P T \quad \begin{array}{l} {\text { can be exponentially }} \\ {\text { large w.r.t. } n} \end{array}
f ( X ) ≥ 2 α f ( 1 − e α f 1 ) ⋅ O P T can be exponentially large w.r.t. n 与广义贪心算法相同,但运行时间缺乏多项式保证,可能为指数级
EAMC算法
算法核心
演化算法与零一串
与pomc相同
优化函数g替代f
EAMC 不会最大化式(3)中的 f,而是引入了一个替代目标 g,并对其进行最大化
g
(
x
)
=
{
f
(
x
)
∣
x
∣
=
0
f
(
x
)
/
(
1
−
e
−
α
f
c
^
(
x
)
/
B
)
∣
x
∣
≥
1
g(\boldsymbol{x})=\left\{\begin{array}{ll} {f(\boldsymbol{x})} & {|\boldsymbol{x}|=0} \\ {f(\boldsymbol{x}) /\left(1-e^{-\alpha_{f} \hat{c}(\boldsymbol{x}) / B}\right)} & {|\boldsymbol{x}| \geq 1} \end{array}\right.
g ( x ) = { f ( x ) f ( x ) / ( 1 − e − α f c ^ ( x ) / B ) ∣ x ∣ = 0 ∣ x ∣ ≥ 1 可以看到,
g
g
g 同时纳入了原有的目标函数
f
f
f 以及成本
c
ˆ
cˆ
c ˆ 。更小的
c
ˆ
cˆ
c ˆ 值和更大的
f
f
f 值都会导致
g
g
g 的值更大,即关于
f
f
f 递增,关于
g
g
g 递减.则
g
g
g 会偏好
f
f
f 较大,
c
c
c 较小的解
使用bin分箱储存最优解
在优化过程中,EAMC 会保留一个种群(解的集合) P,然后新生成的解 x’ 只会与 bin(|x’|) 中解进行比较。bin(|x’|) 的定义为:
bin
(
∣
x
′
∣
)
=
{
z
∈
P
∣
∣
z
∣
=
∣
x
′
∣
}
\operatorname{bin}\left(\left|\boldsymbol{x}^{\prime}\right|\right)=\left\{\boldsymbol{z} \in P\ | \ | \boldsymbol{z}|=| \boldsymbol{x}^{\prime} |\right\}
b i n ( ∣ x ′ ∣ ) = { z ∈ P ∣ ∣ z ∣ = ∣ x ′ ∣ } x’ 只与 P 中与 x’ 有同样大小(模的大小,即集合数量)的解相比。这样的设置会让这个解群 P 更加多样化,由此能够提升该算法的搜索能力
在运行过程中,除了有最大 g 值的解之外,每个 bin 都保留有截至目前所生成的最大 f 值的解
算法流程
全零解加入集合P
随机选择一个解x逐位变异产生新的解x'
和集合中模相同的解进行比较,保留g和f最大两个解,其余不要,即每个bin中最多有两个解,一个是最好的f,一个是最好的g
输出集合中最好的
因为行 5,P中的所有解都必须满足约束
EAMC 需要知道子模比
α
f
α_f
α f ,因为替代目标 g 需要使用它。对于子模的 f,
α
f
=
1
α_f = 1
α f = 1 。对于非子模的 f,精确计算
α
f
α_f
α f 可能需要指数级 的时间,不过可以在
α
f
α_f
α f 上使用一个下限来替代。
注意,
α
f
α_f
α f 的这个下限在一些单调非子模应用中已被推导出来,比如贝叶斯实验设计和行列式函数最大化。
近似解
获得与其余两个相同的近似解,证明略
Theorem 3: For maximizing a monotone objective function
f
f
f with a monotone cost constraint, EAMC with
E
(
T
)
≤
2
e
n
2
(
n
+
1
)
E(T) \leq 2 e n^{2}(n+1)
E ( T ) ≤ 2 e n 2 ( n + 1 ) finds a subset
X
⊆
V
X \subseteq V
X ⊆ V with
f
(
X
)
≥
α
f
2
(
1
−
1
e
α
f
)
⋅
O
P
T
⟶
the best known polynomial-
time approximation ratio
f(X) \geq \frac{\alpha_{f}}{2}\left(1-\frac{1}{e^{\alpha_{f}}}\right) \cdot O P T \quad \longrightarrow \begin{array}{l} {\text { the best known polynomial- }} \\ {\text { time approximation ratio }} \end{array}
f ( X ) ≥ 2 α f ( 1 − e α f 1 ) ⋅ O P T ⟶ the best known polynomial- time approximation ratio
参考
[机器之心] AAAI 2020 | 南京大学提出高效演化算法 EAMC:可更好解决子集选择问题: https://mp.weixin.qq.com/s/QDbWwT5ZP2MNF3NVHX_SzQ
视频讲解: https://v.qq.com/x/page/w3063zkkp6h.html