集合包装、覆盖和划分模型

一、划分与覆盖的定义(set covering & set partitioning)

文字描述:
若把一个集合 A A A分成若干个叫做分块的非空子集,使得 A A A中的每个元素至少属于一个分块,那么这些分块的全体构成的集合叫做 A A A的一个覆盖
如果 A A A中的每个元素属于且仅属于一个分块,那么这些分块的全体构成的集合叫做 A A A的一个划分
数学描述:
给定 A A A为非空集合, S = { S 1 , S 2 , ⋅ ⋅ ⋅ , S m } S=\{S_1,S_2,···,S_m\} S={S1,S2,⋅⋅⋅,Sm},其中 S i ⊆ A , S i ≠ ∅ , i = 1 , ⋅ ⋅ ⋅ , m S_i \subseteq A,S_i \neq \varnothing, i=1,···,m SiA,Si=,i=1,⋅⋅⋅,m ∪ i = 1 m S i = A \cup_{i=1}^mS_i=A i=1mSi=A,则集合 S S S为称作集合 A A A的覆盖。
若除以上条件外,另有 S i ∩ S j ≠ ∅ S_i \cap S_j \neq \varnothing SiSj=,则称 S S S A A A的划分。

对于 A = { a , b , c } A=\{a,b,c\} A={a,b,c},考虑一下集合:
S = { { a , b } , { a , c } } S=\{\{a,b\},\{a,c\} \} S={{a,b},{a,c}},则 S S S A A A覆盖
Q = { { a } , { a , b } , { a , c } } Q=\{\{a\},\{a,b\},\{a,c\}\} Q={{a},{a,b},{a,c}},则 Q Q Q A A A覆盖
P = { { a } , { b , c } } P=\{\{a\},\{b,c\} \} P={{a},{b,c}},则 P P P A A A覆盖,也是 A A A划分
G = { { a , b , c } } G=\{\{a,b,c\} \} G={{a,b,c}},则 G G G A A A覆盖,也是 A A A划分
E = { { a } , { b } , { c } } E=\{\{a\},\{b\},\{c\}\} E={{a},{b},{c}},则 E E E A A A覆盖,也是 A A A划分
F = { { a } , { a , c } } F=\{\{a\},\{a,c\} \} F={{a},{a,c}},则 F F F既不是覆盖,也不是划分。

二、集合包装、覆盖和划分模型

集合包装约束(set packing constraint)要求每个子集 J J J中最多有一个元素出现在最优解中,可以表示为 ∑ j ∈ J x j ≤ 1 \sum_{j \in J}x_j \leq 1 jJxj1

集合覆盖约束(set covering constraint)要求每个子集 J J J中至少有一个元素出现在最优解中,可以表示为 ∑ j ∈ J x j ≥ 1 \sum_{j \in J}x_j \geq 1 jJxj1

集合划分约束(set partioning constraint)要求每个子集 J J J中有且仅有一个元素出现在最优解中,可以表示为 ∑ j ∈ J x j = 1 \sum_{j \in J}x_j = 1 jJxj=1

三、从集合划分模型到列生成算法

集合划分模型在论文中经常有路径优化问题的建模方式
参考:https://zhuanlan.zhihu.com/p/84742072

  • 5
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值