文章目录

  • 一、Abstract 摘要
  • 二、Introduction 介绍
  • 三、General polyhedral structure 一般多面体结构
    • 3.1 Basic properties 基本性质
    • 3.2 Covers 覆盖不等式
  • 四、Binary formulations based on strong covers 基于强覆盖的二元公式
  • 五、Lifting 提升
    • 5.1 Sequential up-lifting
    • 5.2 Sequential down-lifting
    • 5.3 Sequence independent lifting and superadditivity 序列独立提升和超加性
    • 5.4 Complete characterization of facets from simple LCIs 从简单LCIs中完全描述facet

论文来源:(2020)Knapsack polytopes: a survey
作者:Christopher Hojny 等人


一、Abstract 摘要

  • 0/1背包多面体是所有0/1向量的凸包,这些向量满足给定的具有非负系数的线性不等式。
  • 本文全面综述了背包多面体。
  • 我们讨论了基本的多面体性质、(提升)覆盖和其他有效的不等式、已知完整线性描述的情况、小维度的几何性质以及与独立系统的联系。
  • 我们还讨论了(混合)整数背包多面体和变体的推广。

二、Introduction 介绍

0/1背包问题包括选择具有给定权重和利润的物品,使得权重之和不超过一定容量,并且利润之和最大化。如果n项的权重由 a=(a1,…,an)⊤∈R+na=\left(a_1, \ldots, a_n\right)^{\top} \in \mathbb{R}_{+}^na=(a1​,…,an​)⊤∈R+n​ ,容量为 β∈R+\beta \in \mathbb{R}_{+}β∈R+​ 和利润 p=(p1,…,pn)⊤∈R+np=\left(p_1, \ldots, p_n\right)^{\top} \in \mathbb{R}_{+}^np=(p1​,…,pn​)⊤∈R+n​ ,可以写成 max⁡{p⊤x:x∈Ka,β}\max \{p^{\top} x:x \in K^{a,\beta}\}max{p⊤x:x∈Ka,β} :

是与重量 aaa 和容量 β\betaβ 相关的0/1背包集。

背包问题在离散优化中具有根本重要性,并且具有使其独特的几个特征。

首先,它是弱NP难的,但可以通过伪多项式时间 O(nβ)O(n\beta)O(nβ) 中的动态规划来解决 ( if a∈Z+n,β∈Z+a \in \mathbb{Z}_{+}^n, \beta \in \mathbb{Z}_{+}a∈Z+n​,β∈Z+​ ) or O(npˉ)\mathcal{O}(n \bar{p})O(npˉ​) ( if p∈Z+p \in \mathbb{Z}_{+}p∈Z+​ ),其中p是最优目标的某个上界,例如 p1+...+pnp_1+...+p_np1​+...+pn​ ,参见例如Kellerer等人(2004,引理2.3.1和引理2.3.2)。因此,就其复杂性而言,它是一个中间问题。

第二,这个问题很容易描述,但根据权重和利润有着丰富的结构。

第三,它在一般二进制程序 max{p⊤x:Ax≤b,x∈{0,1}n}max \left\{p^{\top} x: A x \leq b, x \in\{0,1\}^n\right\}max{p⊤x:Ax≤b,x∈{0,1}n}。为了导出此类程序的切割平面,例如,可以取任意行a⊤x≤βa^{\top} x \leq \betaa⊤x≤β 系统 Ax≤bAx\le bAx≤b 并研究由 a⊤x≤βa^{\top} x \leq \betaa⊤x≤β 定义的背包问题,可参照 Crowder 等人(1983)。

第四,由于它具有组合结构(或与其他组合约束相结合),但具有一般系数,因此它是组合优化和整数规划之间的桥梁。

因此,关于背包问题的文献非常多,研究算法、多面体和计算问题。例如,在Kellerer等人(2004年)或Martello和Toth(1990年)的书中,算法方面得到了处理,但我们不知道多面体研究的概述。本文的一个动机是特殊背包问题的出现,研究了其多面体结构(Hojny和Pfetsch 2019),甚至找到了完整的线性描述(Hojny2018)。在此背景下,我们(未成功)搜索了一篇关于背包多面体的综述文章。

在本文中,我们试图通过对0/1背包多面体的概述来弥补这一差距:

即:背包问题所有可行解的凸包。每当背包不等式从上下文中明确时,我们分别写 KKK 和 PPP 而不是 Ka,βK^{a,\beta}Ka,β 和 Pa,βP^{a,\beta}Pa,β 。

在下文中,我们专注于研究最多的0/1情况,但也涵盖了背包问题和其他约束的整数情况或组合。在整数情况下,变量可以达到任何非负整数值(可能有上限)。这种情况的实际重要性较小,并且这种情况下存在的多面体结果较少。然而,这具有理论意义,因为每个有界整数程序的可行域(可能具有松弛变量)可以表示为满足框约束和单个线性方程的整数点,见Bradley(1971)。此外,存在大量的背包变体,难以涵盖所有结果;然而,本文的后面部分也涵盖了一系列变体。

本文所选主题及其陈述自然是主观的。对于重要的结果,我们力求全面,并在路上提到许多其他的结果。

由于这是一篇综述性论文,因此重点关注文献的结果。我们为一些所需空间相当小的结果提供了证明。此外,我们用一些新材料补充了文献结果。例如,Sects中的大多数内容。2和6以及引理20、命题22和推论31都是新的。此外,我们提供了运行示例,并以统一的符号表示所有内容。最后,我们提出了一些开放性问题,以促进进一步的研究。

在本文中,我们假设多面体理论和整数规划的基本知识。有很多书提供了介绍,例如Schrijver(1986)、Nemhauser和Wolsey(1999)或Korte和Vygen(2012)。

如果没有不同的表述,nnn 是一个正整数,表示背包多面体周围空间的维数。我们分别用 N,Z\mathbb{N}, \mathbb{Z}N,Z 和 R\mathbb{R}R 表示所有正整数、整数和实数的集合;Z+\mathbb{Z}_+Z+​ 和 R+\mathbb{R}_+R+​ 分别表示非负整数和实数的集合。

前k个正整数的集合 {1,….k}\{1,….k\}{1,….k} 由 [k][k][k] 表示,[0]=∅[0]=\varnothing[0]=∅ 。此外,我们定义 [k]0:=[k]∪{0}[k]_0:=[k] \cup\{0\}[k]0​:=[k]∪{0}。集合 S⊆[n]S ⊆ [n]S⊆[n] 的特征向量用 χS\chi^{S}χS 表示。特别地,我们用 1\mathbb{1}1 表示全1向量 χ[n]\chi^{[n]}χ[n] ,用 eie^iei 表示第 iii 个单位向量 χ{i}\chi^{\{i\}}χ{i}。

给定集合 S⊆[n]S \subseteq[n]S⊆[n] ,我们通过 x(S)x(S)x(S) 缩写了总数 ∑i∈Sxi\sum_{i \in S} x_i∑i∈S​xi​ 。

这特别意味着 x(∅)=0x(\varnothing)=0x(∅)=0


三、General polyhedral structure 一般多面体结构

在本节中,我们回顾了任意0/1背包多面体的基本多面体性质。

而第3.1节提供了基本属性,如可以从平凡的不等式出发,推导出维度和facet;3.2节重点讨论了基于覆盖不等式的背包多形体的面。所提出的研究结果的大部分已经在20世纪70年代发表。

3.1 Basic properties 基本性质

在说明背包多面体的多面体性质之前,我们讨论了关于数据 a∈Rna∈\mathbb{R}^na∈Rn 和 β∈Rβ∈\mathbb{R}β∈R 而不失一般性的基本假设。

假设1:我们有 0<ai<β0<a_i<\beta0<ai​<β,对于所有的 i∈[n]i \in [n]i∈[n] 和 a1+...+an>βa_1+...+a_n > \betaa1​+...+an​>β

观察2:设 a∈Rna∈\mathbb{R}^na∈Rn, β∈Rβ∈\mathbb{R}β∈R ,假设1可以按照指定的顺序执行以下预处理步骤:

  • 如果 ai<0a_i<0ai​<0,我们可以补充变量 xix_ixi​ (即用 1−xi1-x_i1−xi​ 替换它),注意,注意,此步骤意味着 β\betaβ 值增加 ∣ai∣|a_i|∣ai​∣
  • 如果 ai=0a_i=0ai​=0,我们可以去掉对象 iii ,因为 Pa,βP^{a,\beta}Pa,β 等价于背包多面体在变量 [n]\{i}[n] \backslash\{i\}[n]\{i} 和区间 [0,1][0,1][0,1] 上的笛卡尔积,即变量 iii 对 Pa,βP^{a,\beta}Pa,β 的相关结构没有贡献
  • 如果 ai>βa_i>\betaai​>β,我们可以移除对象 iii ,因为在所有解中 xi=0x_i = 0xi​=0 。

如果 β<0β < 0β<0 或 β=0β = 0β=0 ,多面体分别为空或仅由零向量组成。

此外,如果 a1+⋅⋅⋅+an≤βa_1 +···+ a_n≤βa1​+⋅⋅⋅+an​≤β , 则 Pa,β=[0,1]nP^{a,\beta} = [0,1]^nPa,β=[0,1]n 。

注意,背包多面体是通过“小于或等于”约束定义的 a⊤x≤βa^{\top} x \leq \betaa⊤x≤β 。

通过补充变量,也可以考虑一个 a⊤x≥βa^{\top} x \geq \betaa⊤x≥β 的背包,即对应的多面体是仿射等效的。此外,对于相等约束的背包,它是成立的

也就是说,理解 ≤−≤-≤− 和 ≥−≥-≥− 多面体就足够了。因此,我们只考虑 ≤−≤-≤− 多面体。关于等式约束背包的基本结果,例如,关于它们的维度和定义不等式的基本方面,请读者参考Lee(1997)。

为了能够描述背包多形体的面定义不等式,有必要知道它们的维数。下面的引理给出了它们的维数的一个刻画,以及平凡不等式 xi≥0x_i≥0xi​≥0 和 xi≤1,i∈[n]x_i≤1,i∈[n]xi​≤1,i∈[n] 为面定义的刻画。

引理3:a∈R+na∈\mathbb{R}^n_+a∈R+n​ 和 β∈R+β∈\mathbb{R}_+β∈R+​

a) 背包集合 Ka,βK^{a,\beta}Ka,β 是下单调的,也就是说,如果 x∈Ka,βx∈K^{a,\beta}x∈Ka,β 和 y≤xy≤xy≤x 且 y∈{0,1}ny∈\{0,1\}^ny∈{0,1}n ,则 y∈Ka,βy∈K^{a,\beta}y∈Ka,β 也成立。

b) 假设 H:={i∈[n]:ai>β}H:=\left\{i \in[n]: a_i>\beta\right\}H:={i∈[n]:ai​>β} 。则 Pa,βP^{a,\beta}Pa,β 的维度数为 n−∣H∣n-|H|n−∣H∣

c) 对于每一个 i∈[n]i∈[n]i∈[n] , xi≥0x_i≥0xi​≥0 定义了 Pa,βP^{a,\beta}Pa,β 的一个面当且仅当 i∉Hi \notin Hi∈/H

d) 对于一个 i∈[n]i∈[n]i∈[n] ,xi≤1x_i≤1xi​≤1 定义了一个facet当且仅当 i∉Hi \notin Hi∈/H 且 ai+aj≤βa_i + a_j≤βai​+aj​≤β 对于所有 j∈[n]\(H∪{i})j \in[n] \backslash(H \cup\{i\})j∈[n]\(H∪{i})

备注4:注意,假设1和引理3(b)保证 Pa,βP^{a,\beta}Pa,β 是全维的。相反,如果 a≥0a≥0a≥0 且 Pa,βP^{a,\beta}Pa,β 是全维的,则对于所有 i∈[n]i∈[n]i∈[n] , 都有 ei∈Pa,βe^i∈P^{a,\beta}ei∈Pa,β 和 ai≤βa_i≤βai​≤β 。

示例5:考虑下面的背包不等式:

这将作为贯穿整个调查的运行示例。因为对于所有 i∈[5]i∈[5]i∈[5] 有 ai≤βai≤βai≤β,引理3中定义的集合H为空。

因此,背包多面体 Pa,βP^{a,\beta}Pa,β 是全维的(引理3(b)),所有非负不等式 xi≥0x_i≥0xi​≥0 定义切面(引理3©)。

在所有的上限不等式 xi≤1x_i≤1xi​≤1 中,只有 x1≤1x_1≤1x1​≤1 定义了一个facet(引理3(d))。

最后,唯一满足背包不等式 a⊤x≤βa^{\top} x \leq \betaa⊤x≤β 的 可行的 0/1点 等于 (1,0,0,0,1)⊤,(0,0,1,1,0)⊤(1,0,0,0,1)^{\top},(0,0,1,1,0)^{\top}(1,0,0,0,1)⊤,(0,0,1,1,0)⊤。

因此, a⊤x≤βa^{\top} x \leq \betaa⊤x≤β 定义一个维度为1的面

备注6:不同的背包约束 a⊤x≤βa^{\top} x \leq \betaa⊤x≤β 可能导致相同的背包集/多面体,例如,如果 a∈Z+na∈\mathbb{Z}^n_+a∈Z+n​ 和 β∈Z+β∈\mathbb{Z}_+β∈Z+​ 有一个最大公约数至少为2。有时也可以在不改变背包集/多面体的情况下增加a的分量或减少 βββ ,例如 x1+2x2≤2x_1 + 2 x_2≤2x1​+2x2​≤2 可以替换为 2x1+2x2≤22x_1 + 2x_2≤22x1​+2x2​≤2 ,然后再替换为 x1+x2≤1x_1 + x_2≤1x1​+x2​≤1 。

在下面,我们研究了定义 Pa,βP^{a,\beta}Pa,β 不等式的一般facet的性质。

不等式 c⊤x≤γc^{\top} x \leq \gammac⊤x≤γ, 如果 γ=0\gamma = 0γ=0 则称为齐次,否则称为非齐次。

引理7:(Hammer 等人,1975,命题4) 设 a∈R+na \in \mathbb{R}_{+}^na∈R+n​ 和 β∈R+\beta \in \mathbb{R}_{+}β∈R+​ 。如果 Pa,βP^{a,\beta}Pa,β 是全维的,唯一的齐次面定义不等式 Pa,βP^{a,\beta}Pa,β 是平凡不等式 −xi≤0,i∈[n]−x_i≤0,i∈[n]−xi​≤0,i∈[n] 的正倍数。

引理8:(Hammer 等人, 1975,命题5) 设 a∈R+na \in \mathbb{R}_{+}^na∈R+n​ 和 β∈R+\beta \in \mathbb{R}_{+}β∈R+​ ,使得 Pa,βP^{a,\beta}Pa,β 为全维背包多面体,设 c⊤x≤γc^{\top} x \leq \gammac⊤x≤γ 定义 Pa,βP^{a,\beta}Pa,β 的一个面,γ≠0\gamma \neq 0γ=0。那么对于所有的 i∈[n]i∈[n]i∈[n],有 γ>0γ > 0γ>0 和 0≤ci≤γ0≤c_i≤γ0≤ci​≤γ 。
与引理3(a)类似,引理8使我们能够证明背包多面体的单调性结果。

推论9:设 a∈R+na \in \mathbb{R}_{+}^na∈R+n​ 和 β∈R+\beta \in \mathbb{R}_{+}β∈R+​ 。背包多面体 Pa,βP^{a,\beta}Pa,β 是下单调的,即如果 x∈Pa,βx∈P^{a,\beta}x∈Pa,β 且 0≤y≤x0≤y≤x0≤y≤x ,则 y∈Pa,βy∈P^{a,\beta}y∈Pa,β 。

请注意引理3、7 和 8 的结果也可以从独立系统的一般陈述(或等价的集合覆盖问题)得到,参见例如Conforti和Laurent (1988), Balas和Ng (1989), Laurent(1989)和Sassano(1989)。

理解具有积分系数的一般背包多面体的一般方法是通过所谓的主背包多面体。主0/1背包多形体 PMP_MPM​ 是与背包不等式相关的背包多形体


Ki:=1+⌊βi⌋K_i:=1+\left\lfloor\frac{\beta}{i}\right\rfloorKi​:=1+⌊iβ​⌋ ,即 KiK_iKi​ 是大于 βi\frac{β}{i}iβ​ 的最小整数,二元变量 xjix^i_jxji​ 对应系数为 iii 的第 jjj 个变量。以下结果是由Hammer和Peled(1982)所述的Hammer等人(1977)得出的。

观察任何背包不等式 a⊤x≤βa^{\top} x \leq \betaa⊤x≤β 且 a∈Z+n,β∈Z+a \in \mathbb{Z}_{+}^n, \beta \in \mathbb{Z}_{+}a∈Z+n​,β∈Z+​ 表示为公式(2):对于 i∈[β]i∈[β]i∈[β] ,假设Ai:={ℓ∈[n]:aℓ=i}A_i:=\left\{\ell \in[n]: a_{\ell}=i\right\}Ai​:={ℓ∈[n]:aℓ​=i} 和 定义 Ia,β:={(i,j):i∈[β],j=1,...,∣Ai∣I_{a, \beta}:=\{(i, j): i \in[\beta], \quad j=1,...,|A_i|Ia,β​:={(i,j):i∈[β],j=1,...,∣Ai​∣ 。

那么背包多面体 Pa,βP^{a,\beta}Pa,β 与 PMP_MPM​ 的面同构,PMP_MPM​ 的面定义为 xji=0,(i,j)∉Ia,βx_j^i=0,(i, j) \notin I_{a, \beta}xji​=0,(i,j)∈/Ia,β​ 。

因此,如果我们得到 PMP_MPM​ 的完整线性描述,我们就可以直接推导出任意背包多面体的完整线性描述。Hammer和Peled(1982)给出了 β≤7β≤7β≤7 时 PMP_MPM​ 的完整描述。

然而,一般来说,一个完整的线性描述是不可用的,人们需要考虑一个具体的背包上的知识,以找到定义不等式的面。

相对于背负式多面体 PPP ,该多面体对应于标准LP松弛

很好理解。假设1成立,背包不等式 a⊤x≤βa^{\top} x \leq \betaa⊤x≤β 和下界约束 xi≥0,i∈[n]x_i≥0 ,i∈[n]xi​≥0,i∈[n] 始终是facet定义。当 ai<βa_i < βai​<β 时,上限约束 xi≤1x_i≤1xi​≤1 为facet定义。因此,PLPP_{LP}PLP​ 至少有 n+1n+1n+1 个facet,且至多有 2n+12n+12n+1 个facet 。

此外,PLPP_{LP}PLP​ 顶点的完整表征是可用的,它将Dantzig(1957)对最优LP解的表征转化为多面体语言。

命题10:让假设1保持不变。向量 xˉ∈[0,1]n\bar{x} \in[0,1]^nxˉ∈[0,1]n 是 PLPP_{LP}PLP​ 的顶点,当且仅当存在不相交集 I0,I1⊆[n]I_0, I_1 \subseteq[n]I0​,I1​⊆[n] 且 ∣I0∪I1∣≥n−1\left|I_0 \cup I_1\right| \geq n-1∣I0​∪I1​∣≥n−1 ,使得对于j∈[n]\(I0∪I1)j \in[n] \backslash\left(I_0 \cup I_1\right)j∈[n]\(I0​∪I1​),有 a(I1)≤β,aj>β−a(I1)a(I_1)≤β,a_j > β−a(I_1)a(I1​)≤β,aj​>β−a(I1​) ,,并且对于每一个 i∈[n]i∈[n]i∈[n] 我们有:

假设11:背包不等式的系数非递减排序,即 a1≤a2≤⋅⋅⋅≤ana_1≤a_2≤···≤a_na1​≤a2​≤⋅⋅⋅≤an​ 。

在本节的最后,我们提出了一些研究问题;据我们所知,这些问题目前是开放的,但部分答案将在之后讨论。

(Q1) (渐近地)存在多少不同的背包多形体(w.r.t.仿射或0/1等价)?

(Q2) 一般来说,确定定义不等式的背包 a⊤x≤βa^{\top} x\le \betaa⊤x≤β 定义了 PPP 的非空面,因为我们需要确定相等背包是否有解。是否存在有效的充分条件来保证 aaa 的二元可行性 a⊤x=βa^{\top} x=\betaa⊤x=β 还是 a⊤x≤βa^{\top} x \leq \betaa⊤x≤β 定义facet?

(Q3) 是否有一个定义不等式的背包上的可能操作的特征,使得背包集/多面体不改变,参见注释6?它试图描述集合的特征

关于问题(Q3), Bradley等人(1974)证明了线性不等式系统的解


它们是否定义了与a相同的背负式多面体 a⊤x≤βa^{\top} x \leq \betaa⊤x≤β ,假设11成立。因此,对于一个具体的背包实例,(Q3)可以回答,而对背包不等式的一般运算/操作产生相同的背包多面体是未知的。

3.2 Covers 覆盖不等式

背包多形体最重要的一类有效不等式是由覆盖不等式给出的,本节将讨论覆盖不等式。

定义12:设 a∈R+na \in \mathbb{R}_{+}^na∈R+n​ and β∈R+\beta \in \mathbb{R}_{+}β∈R+​ 。如果 a(C)>βa(C)>\betaa(C)>β ,则集合 C⊆[n]C \subseteq[n]C⊆[n] 被称为 Pa,βP^{a, \beta}Pa,β 的覆盖 。如果它不包含作为覆盖的适当子集,即 C\{i}C \backslash\{i\}C\{i} 不是任何 i∈Ci∈Ci∈C 的覆盖,则称为最小覆盖不等式。对应的(最小)覆盖不等式为:

覆盖不等式对 Pa,βP^{a, \beta}Pa,β 明显有效,参见,例如,Crowder 等人(1983)。此外,盒子约束和所有最小覆盖不等式的集合为背包集提供了一个整数公式,因为对于一个点 x~∈{0,1}n\tilde{x} \in\{0,1\}^nx~∈{0,1}n 且 a⊤x~>βa^{\top} \tilde{x}>\betaa⊤x~>β ,覆盖 {i∈[n]:x~i=1}\left\{i \in[n]: \tilde{x}_i=1\right\}{i∈[n]:x~i​=1} 包含一个最小覆盖,其覆盖不等式被 x~\tilde{x}x~ 违反。

示例13:(继续示例5)再次考虑背包不等式(1) 4x1+5x2+6x3+7x4+9x5≤134 x_1+5 x_2+6 x_3+7 x_4+9 x_5 \leq 134x1​+5x2​+6x3​+7x4​+9x5​≤13 。对应的最小覆盖为:

集合 C=1,2,3,4C ={1,2,3,4}C=1,2,3,4 是一个覆盖,但不是 C1⊊CC_1 \subsetneq CC1​⊊C 。

通过分析背包多面体的最小覆盖不等式,可以推导出背包多面体的面。为此,我们将背包多面体限制为包含在封面中的变量,并得到以下结果,这已由Padberg(1975)隐式地表明。

命题14:设 a∈R+na \in \mathbb{R}_{+}^na∈R+n​ 和 β∈R+\beta \in \mathbb{R}_{+}β∈R+​ 满足 Pa,βP^{a, \beta}Pa,β 是全维的,设 CCC 是最小覆盖 w.r.tw.r.tw.r.t 。背包不等式 a⊤x≤βa^{\top} x \leq \betaa⊤x≤β 。然后 x(C)≤∣C∣−1x(C) \leq|C|-1x(C)≤∣C∣−1 定义了背包多面体的一个面:


它定义了一个 Pa,βP^{a, \beta}Pa,β 的面,其维度数至少为 ∣C∣−1|C|−1∣C∣−1 。

定义15:设 a∈R+na \in \mathbb{R}_{+}^na∈R+n​ 和 β∈R+\beta \in \mathbb{R}_{+}β∈R+​ ,设假设11成立。然后一个覆盖 C={i1,…,ik}C = \{i_1,…, i_k\}C={i1​,…,ik​} ,i1<i2<⋯<iki_1<i_2<\cdots<i_ki1​<i2​<⋯<ik​ ,如果 CCC 是一个最小覆盖,则称为 StrongStrongStrong :


对于每个 j∈[ik−1]\Cj \in\left[i_k-1\right] \backslash Cj∈[ik​−1]\C 。而且,扩展a(不一定强)覆盖 C={i1,…,ik}C = \{i_1,…, i_k\}C={i1​,…,ik​} 是集合 E(C):=C∪{ik+1,…,n}E(C):=C \cup\left\{i_k+1, \ldots, n\right\}E(C):=C∪{ik​+1,…,n} 。由于权重 aia_iai​ 是按非递减排序的,所以可拓不等式:


对P有效

示例16:(继续例子5)注意,假设11在这个例子中成立。较强的覆盖层为C1,C5,C6C_1, C_5, C_6C1​,C5​,C6​ 和 C7C_7C7​ 。为了查看 C5=2,5C_5 ={2,5}C5​=2,5 ,我们检查定义15:


对于每个 j∈1,3,4j∈{1,3,4}j∈1,3,4 ,因为 a4=7=max⁡{aℓ:ℓ∈[ik−1]\C5}a_4=7=\max \left\{a_{\ell}: \ell \in\left[i_k-1\right] \backslash C_5\right\}a4​=7=max{aℓ​:ℓ∈[ik​−1]\C5​} 。

然而,最小的覆盖 C3C_3C3​ 并不强大,因为从覆盖上删除第4项并在封面上添加第2项会产生一个不可行的项目集合。

关于强覆盖(扩展不等式)的进一步细节由Balas(1975)提供。

此外,对于可拓不等式定义 Pa,βP^{a, \beta}Pa,β 面的情况,存在一个完整的描述。

定理17:(Balas 1975)设 a∈R+na \in \mathbb{R}_{+}^na∈R+n​ 和 β∈R+\beta \in \mathbb{R}_{+}β∈R+​ ,设假设11成立。设 E⊆[n]E⊆[n]E⊆[n] 包含至少两个元素,设 k∈[n]k∈[n]k∈[n] 。不等式 x(E)≤k−1x(E)≤k−1x(E)≤k−1 定义了 Pa,βP^{a, \beta}Pa,β 的一个面当且仅当它是强覆盖的扩展不等式 C=i1,…,ik,i1<i2<⋅⋅⋅<ikC = {i_1,…, i_k}, i_1 < i_2 <···< i_kC=i1​,…,ik​,i1​<i2​<⋅⋅⋅<ik​ 和:


注意,定理17中的 x(E)≤k−1x(E)≤k−1x(E)≤k−1 在两种情况下都是有效的(要么它定义了一个面,要么它来自一个强覆盖)。Laurent(1989,命题3.11和3.14)给出了一个等价于定理17在独立系统方面的描述。

示例18:(继续例5)如例16所示,运行示例的强覆盖是 C1,C5,C6,C7{C_1, C_5, C_6, C_7}C1​,C5​,C6​,C7​ 。它们的扩展是:


条件(4)对于17个结果:


因此,所有不等式 x(E(Ci))≤∣Ci∣−1,i∈1,5,6,7x(E(C_i))≤|C_i |−1 , i∈{1,5,6,7}x(E(Ci​))≤∣Ci​∣−1,i∈1,5,6,7 ,定义了facet,这些是定义 x(E)≤k−1x(E)≤k−1x(E)≤k−1 形式的不等式的唯一facet。

(Q4) 我们能否得到一个背包的特征,其中覆盖不等式提供了 Pa,βP^{a, \beta}Pa,β 的完整线性描述?

(Q5) 使用(最小)覆盖不等式的公式有多强(例如,就LP-gap而言)?


四、Binary formulations based on strong covers 基于强覆盖的二元公式

分离 K=Ka,βK=K^{a, \beta}K=Ka,β 和 {0,1}n\K\{0,1\}^n \backslash K{0,1}n\K 的一组线性不等式 Ax≤bAx≤bAx≤b 称为 KKK 的二元公式,即 K={x∈{0,1}n:Ax≤b}K = \{x∈\{0,1\}^n: Ax≤b\}K={x∈{0,1}n:Ax≤b} 。利用强覆盖(扩展)的概念,我们可以找到 KKK 的最小大小的二进制公式,其所有不等式的左边系数都是0或1,即所谓的0/1-二进制公式。

这样的公式是有趣的,因为它们通常在数值上比原始不等式更稳定,如果后者包含较大的数字。此外,这些不等式有一个简单的解释,因为它们编码了变量子集的基数限制。以下结果是由于Glover(1973),由Wolsey(1975)所述。

定理19: (Glover 1973)设 a∈R+na \in \mathbb{R}_{+}^na∈R+n​ 且 β∈R+\beta \in \mathbb{R}_{+}β∈R+​ 。假设11成立,设 S\mathfrak{S}S 是 Ka,βK^{a, \beta}Ka,β 的所有强覆盖的集合。


是 Ka,βK^{a, \beta}Ka,β 最小值的0/1-二进制公式。也就是说,在左边没有更小的0/1系数不等式集可以保证一个二元向量包含在 Ka,βK^{a, \beta}Ka,β 中。

请注意,Balas(1975)以另一种方式引用了Glover的结果,他将定理19中的强覆盖限制在集合上


因此,如果 S‾⊊S\overline{\mathfrak{S}} \subsetneq \mathfrak{S}S⊊S ,定理19中Balas版本的二元公式的大小比Wolsey版本的小,这与公式的最小值是矛盾的。但是,不可能出现这种差异。

引理20:设 CCC 和 C‾\overline{C}C 分别为由 a⊤x≤βa^{\top} x \leq \betaa⊤x≤β 且 ∣C∣=∣Cˉ∣|C|=|\bar{C}|∣C∣=∣Cˉ∣ 。那么 E(C)⊆E(Cˉ)E(C) \subseteq E(\bar{C})E(C)⊆E(Cˉ) 和 E(Cˉ)⊆E(C)E(\bar{C}) \subseteq E(C)E(Cˉ)⊆E(C) 都不成立。

示例21:(继续例5)根据例16,所有强覆盖的集合是 S={C1,C5,C6,C7}\mathfrak{S}=\left\{C_1, C_5, C_6, C_7\right\}S={C1​,C5​,C6​,C7​} ,扩展在例18中给出。因此, Ka,βK^{a, \beta}Ka,β 的最小尺寸0/1-二进制公式为


一般来说,定理19所提供的 KKK 的0/1-二进制公式的最小大小可以是 nnn 的指数级,精确计算可能比较复杂。因此,我们提出了一种简单的技术来生成 ∣S∣|\mathfrak{S}|∣S∣ 的下界。假设 A:={ai:i∈[n]}A:=\left\{a_i: i \in[n]\right\}A:={ai​:i∈[n]} 是背包不等式 a⊤x≤βa^{\top} x \leq \betaa⊤x≤β 。对每个 α∈Aα∈Aα∈A , 我们定义 Aα:={i∈[n]:ai=α}A_\alpha:=\left\{i \in[n]: a_i=\alpha\right\}Aα​:={i∈[n]:ai​=α} ,即 AαA_αAα​ 包含背包约束中系数为 ααα 的变量的所有指标。此外,定义 (Aαnα)\left(\begin{array}{l}A_\alpha \\ n_\alpha\end{array}\right)(Aα​nα​​) 是包含 AαA_αAα​ 的所有子集的集合,其基数为 nαn_αnα​ 。

命题22:设假设11成立,a∈R+na \in \mathbb{R}_{+}^na∈R+n​ , β∈R+\beta \in \mathbb{R}_{+}β∈R+​ , CCC 是 Ka,βK^{a,\beta}Ka,β 的强覆盖,nα:=∣C∩Aα∣,α∈An_\alpha:=\left|C \cap A_\alpha\right|, \alpha \in Anα​:=∣C∩Aα​∣,α∈A ,并定义 αˉ:=max⁡{α∈A:nα>0}\bar{\alpha}:=\max \left\{\alpha \in A: n_\alpha>0\right\}αˉ:=max{α∈A:nα​>0} 。那么,对于每一个 Cα′∈(Aαnα),α∈A\{αˉ}C_\alpha^{\prime} \in\left(\begin{array}{l}A_\alpha \\ n_\alpha\end{array}\right), \alpha \in A \backslash\{\bar{\alpha}\}Cα′​∈(Aα​nα​​),α∈A\{αˉ} 都有:


是 KKK 的强大覆盖。

示例23:考虑背包不等式 ∑i=1nxi+2∑i=n+12nxi≤n\sum_{i=1}^n x_i+2 \sum_{i=n+1}^{2 n} x_i \leq n∑i=1n​xi​+2∑i=n+12n​xi​≤n 写成 a⊤x≤na^{\top} x \leq na⊤x≤n, 当 nnn 为偶数。令 Ik:=[k]∪{n+1,…,n+n−k−12}I_k:=[k] \cup\left\{n+1, \ldots, n+\frac{n-k-1}{2}\right\}Ik​:=[k]∪{n+1,…,n+2n−k−1​} , 对于奇数 k∈[n]k∈[n]k∈[n] 。这时,一个 a⊤χIk=n−1a^{\top} \chi^{I_k}=n-1a⊤χIk​=n−1 表示 χIk∈K\chi^{I_k} \in KχIk​∈K 。此外,将权值为2的任何元素添加到 IkI_kIk​ ,将权值增加到 n+1n + 1n+1 。因此,扩展集不在 KKK 中。因此,集合 Ck:=Ik∪{n+n−k+12}C_k:=I_k \cup\left\{n+\frac{n-k+1}{2}\right\}Ck​:=Ik​∪{n+2n−k+1​} 是一个最小覆盖,它是强覆盖,因为 [n+n−k+12]\Ck\left[n+\frac{n-k+1}{2}\right] \backslash C_k[n+2n−k+1​]\Ck​ 中的每个元素的权值都是1。因此,22号命题表明,我们可以生成 (nk)\left(\begin{array}{l}n \\ k\end{array}\right)(nk​) 的许多强有力的封面,它们是两两不同的。此外,请注意由 CkC_kCk​ 和 Ck′C_{k'}Ck′​ 对于不同的 kkk 和 k′k'k′ 不能重合,因为它们在 [n][n][n] 中的元素数量不同。因此,K的任何0/1-二进制公式至少包含

不等式。因此,与系数为 0,±1,±2{0,±1,±2}0,±1,±2 的公式相比,对0/1-系数不等式的限制会导致必要约束的数量急剧增加。

示例24:考虑背包不等式 ∑i=12n2⌈i/2⌉−1xi≤2n−1\sum_{i=1}^{2 n} 2^{\lceil i / 2\rceil-1} x_i \leq 2^n-1∑i=12n​2⌈i/2⌉−1xi​≤2n−1 ,记为 a⊤x≤βa^{\top} x \leq \betaa⊤x≤β ,与Kaibel和Loos(2011)提出的所谓orbisack有关。设 C={i∈[2n]:iC=\{i \in[2 n]: iC={i∈[2n]:i odd or i=2}i=2\}i=2} 。因为一个 a⊤χC=2na^{\top} \chi^C=2^na⊤χC=2n , CCC 是最小覆盖,因为所有系数都大于或等于1。

此外,$C是强的:当 n≤2n≤2n≤2 时,这是一个case区别。否则,如果 n>2n > 2n>2 ,我们有 2n−22n - 22n−2 是我们估计的非 CCC 中系数最大的指标


因此,C是一个强大的覆盖。

因为C包含所有权值为1的元素,一个权值为 2n−12^{n−1}2n−1 的元素,以及 2i2^i2i for i∈{1,…,n−2}i \in\{1, \ldots, n-2\}i∈{1,…,n−2} ,命题22意味着我们可以从 CCC 生成2n−22^{n−2}2n−2 个强覆盖。这表明我们需要在 KKK 的任何0/1二进制公式中有指数级的不等式。事实上,我们可以证明强覆盖的确切数量是2n−12^{n−1}2n−1 。

因此,通过猜测单个集合 CCC ,我们可以生成所有强覆盖的一半。

(Q6) 定理19通过要求 x∈0,1nx∈{0,1}^nx∈0,1n 隐式地使用边界。公式 Ax≤bAx≤bAx≤b ,系数为 0,±1{0,±1}0,±1 ,使得 K={x∈Zn:Ax≤b}K=\left\{x \in \mathbb{Z}^n: A x \leq b\right\}K={x∈Zn:Ax≤b} 的最小尺寸是多少?上界是 ∣S∣+2n|\mathfrak{S}|+2 n∣S∣+2n 通过显式地加上平凡的不等式。

(Q7) 强覆盖数量的下界依赖于 KKK 通过背包不等式 a⊤x≤βa^{\top} x \leq \betaa⊤x≤β 。但是,如果 aaa 中的所有系数都不同,则不适用边界技术。在这种情况下,是否有一种简单的机制来推导强覆盖数的边界?


五、Lifting 提升

在本节中,我们考虑提升,一个重要的概念,以加强背包多面体 P:=Pa,βP:=P^{a, \beta}P:=Pa,β 且 a∈R+na \in \mathbb{R}_{+}^na∈R+n​ , β∈R+\beta \in \mathbb{R}_{+}β∈R+​ 的有效不等式。(上)提升需要一个不平等 ∑i∈Sπixi≤π0\sum_{i \in S} \pi_i x_i \leq \pi_0∑i∈S​πi​xi​≤π0​ ,具有 S⊆[n]S \subseteq[n]S⊆[n] ,对于受限背包集KS:={x∈K:xi=0,i∈[n]\S}K_S:=\{x \in K:x_i=0,i \in [n] \backslash S\}KS​:={x∈K:xi​=0,i∈[n]\S} 有效,并通过将变量 xi,i∉Sx_i, i \notin Sxi​,i∈/S 的系数从0提升到适当的提升系数,将其转化为 K:=Ka,βK:=K^{a, \beta}K:=Ka,β 的有效不等式。目标是获得一个更强或更均匀的定义 PPP 不等式的方面。

也可以减小包含在初始不等式中的变量系数,即所谓的 down-lifing 。下面我们详细讨论了lift,经常用lift代替up-lifting。 down-lifing 将在5.2节中讨论。

我们首先注意到“trivial lifting”总是可能的,即S外系数为0的不等式对 KKK 是有效的:

引理25:设 a∈R+na \in \mathbb{R}_{+}^na∈R+n​ and β∈R+\beta \in \mathbb{R}_{+}β∈R+​. If ∑i∈Sπixi≤π0\sum_{i \in S} \pi_i x_i \leq \pi_0∑i∈S​πi​xi​≤π0​ 对于 KSK_SKS​ 有效,那么它对于 KKK 也是有效的。

5.1 Sequential up-lifting

顺序提升修复了 [n]\S[n]\backslash S[n]\S 的顺序。通过迭代求解一系列优化问题,计算出可能的最强提升系数,使不等式对相应的受限背包集仍然有效。在每次迭代中,所有先前计算的系数都被考虑在内。

这个过程将首先描述一般有效不等式。然后应用于最小覆盖不等式。

可以为任意有效不等式定义 Sequential up-lifting 过程

对于 π≥0π≥0π≥0 的 KSK_SKS​。那么对于 k∈[n]\Sk∈[n]\backslash Sk∈[n]\S 计算 πkπ_kπk​ ,使:


等于 KS∪{k}K_{S \cup\{k\}}KS∪{k}​ 。考虑升降函数 ΦS:R+→R\Phi_S: \mathbb{R}_{+} \rightarrow \mathbb{R}ΦS​:R+​→R 定义为

定理26:(Padberg 1975)设 a∈R+n,β∈R+a \in \mathbb{R}_{+}^n, \beta \in \mathbb{R}_{+}a∈R+n​,β∈R+​ ,令(6)对 KSK_SKS​ 成立,如果 πk≤ΦS(ak)\pi_k \leq \Phi_S\left(a_k\right)πk​≤ΦS​(ak​) ,不等式(7)对 KS∪{k}K_{S \cup\{k\}}KS∪{k}​ 成立。此外,如果 dim(P)=ndim(P) = ndim(P)=n ,πk=ΦS(ak)\pi_k=\Phi_S\left(a_k\right)πk​=ΦS​(ak​) ,且(6)定义了conv(KSK_SKS​)的一个维数为t的面,(7)定义了conv(KS∪{k}K_{S \cup\{k\}}KS∪{k}​)维数至少为 t+1t + 1t+1 的面。

计算 k∈[n]\Sk \in[n] \backslash Sk∈[n]\S 的提升系数 πk=ΦS(ak)\pi_k=\Phi_S\left(a_k\right)πk​=ΦS​(ak​) 后,可以将 SSS 更新为 S∪kS∪{k}S∪k ,并计算 [n]\S[n]\backslash S[n]\S 的新元素的下一个系数(只要 S≠[n]S \neq[n]S=[n] )。通过迭代这个过程,其他提升系数可以一个接一个地计算,从而得出的不等式对 KKK 有效。一般来说,提升函数 ΦS\Phi_SΦS​ 会随着更多的变量被提升而减小。因此,提升系数取决于提升变量的顺序。这种举升过程称为 sequential lifting 。

请注意,由于 π≥0,ΦS(u)≤π0\pi \geq 0, \Phi_S(u) \leq \pi_0π≥0,ΦS​(u)≤π0​ 成立。而且,由于(6)对 KSK_SKS​ 有效,且(8)中考虑的每一个可行解 xxx 在 u≥0u≥0u≥0 时都包含在 KSK_SKS​ 中,则 ΦS(u)≥0\Phi_S(u) \geq 0ΦS​(u)≥0 。

因此,在 uuu 中求 ΦS\Phi_SΦS​ 等于求解一个0/1背包问题,其客观值包含在 [0,π0][0,π_0][0,π0​] 中。迭代应用定理26,得到的不等式对较大的集合有效,因此每个中间目标值位于区间 [0,π0][0,π_0][0,π0​] 。此外,如果原始不等式(6)具有积分系数,则计算得到的 lifting 系数也是积分系数。

因此,若πππ与π0π_0π0​为积分,则动态规划可在 O(nπ0)\mathcal{O}\left(n \pi_0\right)O(nπ0​) 时间内求出 ΦS(u)\Phi_S(u)ΦS​(u) 。因此,计算所有提升系数的总运行时间为 O(n2π0)\mathcal{O}\left(n^2 \pi_0\right)O(n2π0​) 。

注意,如果a和β是积分,ΦS(u)\Phi_S(u)ΦS​(u) 可以在 O(nβ)O(n β)O(nβ) 时间内计算出来,因为 u≥0u≥0u≥0 and,所以右边总是最大 βββ 。然而,常常有 π0<β\pi_0<\betaπ0​<β, 所以第一种方式更快;请参见下一节。

一类重要的有效不等式是通过解除最小覆盖不等式得到的,即起始不等式(6)为 x(C)≤∣C∣−1x(C) \leq|C|-1x(C)≤∣C∣−1 ;其中S=CS=CS=C 且 π0=∣C∣−1\pi_0=|C|-1π0​=∣C∣−1。考虑某个 i1,…,iki_1, \ldots, i_ki1​,…,ik​ of [n]\C[n] \backslash C[n]\C ,并定义

对于 r∈[k]r∈[k]r∈[k] ,设 αi=1,i∈Cα_i = 1 ,i∈Cαi​=1,i∈C ,迭代 αir=ΦCr(air)\alpha_{i_r}=\Phi_{C_r}\left(a_{i_r}\right)αir​​=ΦCr​​(air​​) for r∈[k]r \in[k]r∈[k] 。由此产生的不等式


称为简单解除覆盖不等式(LCI);“简单”指的是我们在这里只是在抬升。注意(9)中的所有系数都是构造积分。

回顾命题14, x(C)≤∣C∣−1x(C) \leq|C|-1x(C)≤∣C∣−1 定义了conv(KCK_CKC​)的一个面,它仿射等价于PCP_CPC​。因此,根据定理26,得到的简单 LCILCILCI 对 KKK 和有效定义 PPP = conv(KKK)的一个面。然而,由于举升系数取决于 [n]\C[n]\backslash C[n]\C 的顺序,举升一个盖C理论上可以产生 (n−∣C∣)!(n-|C|) !(n−∣C∣)! (不一定是不同的) PPP 的方面。

采用上述动态规划方法,可在 O(n∣C∣2)\mathcal{O}\left(n|C|^2\right)O(n∣C∣2) 时间内计算出所有升力系数。事实上,这甚至可以改进到Zemel(1989)所示的 O(n∣C∣)\mathcal{O}(n|C|)O(n∣C∣) ,即计算最小覆盖不等式的所有提升系数与计算单个提升系数具有相同的复杂性。此外,Kaparis和Letchford(2010)指出,结合Balas和Zemel(1978)和Gu等人(2000)的思想,大部分 lifting 系数可以在 O(n+∣C∣log⁡∣C∣)\mathcal{O}(n+|C| \log |C|)O(n+∣C∣log∣C∣) 时间内计算出来。

示例27:(继续示例5)再次考虑背包不等式 4x1+5x2+6x3+7x4+9x5≤134 x_1 + 5 x_2 + 6 x_3 + 7 x_4 + 9 x_5≤134x1​+5x2​+6x3​+7x4​+9x5​≤13 。与最小覆盖 C={2,3,4}C =\{2,3,4\}C={2,3,4} 相关的最小覆盖不等式由 x2+x3+x4≤2x_2 + x_3 + x_4≤2x2​+x3​+x4​≤2 给出。为了消除这个不等式,我们对 [n]\C={1,5}[n] \backslash C=\{1,5\}[n]\C={1,5} 排序有两种选择。

如果我们使用排序(i1,i2)=(1,5)(i_1, i_2) =(1,5)(i1​,i2​)=(1,5),即首先将变量x1和x5提升到覆盖不等式中,我们有 C1=C={2,3,4}C_1 = C =\{2,3,4\}C1​=C={2,3,4} 和 C2={1,2,3,4}C_2 =\{1,2,3,4\}C2​={1,2,3,4} 。在第一步中,x1x_1x1​ 的lifting系数 αi1=ΦC1(ai1)\alpha_{i_1}=\Phi_{C_1}\left(a_{i_1}\right)αi1​​=ΦC1​​(ai1​​) 为

我们得到不等式 x1+x2+x3+x4≤1x_1 + x_2 + x_3 + x_4≤1x1​+x2​+x3​+x4​≤1 。x5x_5x5​ 的lifting系数 αi2=ΦC2(ai2)\alpha_{i_2}=\Phi_{C_2}\left(a_{i_2}\right)αi2​​=ΦC2​​(ai2​​) 由

这就得到了简单的LCI x1+x2+x3+x4+x5≤2x_1 + x_2 + x_3 + x_4 + x_5≤2x1​+x2​+x3​+x4​+x5​≤2 。

使用排序 (i1,i2)=(5,1)(i_1, i_2) =(5,1)(i1​,i2​)=(5,1) 得到:

这就产生了不同的简单LCI x2+x3+x4+2x5≤2x_2 + x_3 + x_4 + 2x_5≤2x2​+x3​+x4​+2x5​≤2。

为了加快提升系数的计算速度,Balas(1975)提出了一种较弱的提升形式,它在线性时间内运行,并且不依赖于求解优化问题。

折衷之处在于Balas的简单LCI不一定定义P的面。

定理28:(Balas 1975)设 a∈R+n,β∈R+a \in \mathbb{R}_{+}^n, \beta \in \mathbb{R}_{+}a∈R+n​,β∈R+​ ,设假设11成立,设 CCC 是 PPP 的最小覆盖,E(C)E(C)E(C) 是 CCC 的扩展,ChC_hCh​ 是 CCC 的最后h个元素的集合,h∈{1,…,∣C∣}h \in\{1, \ldots,|C|\}h∈{1,…,∣C∣} 。考虑分区 N0,N1,…,Nq,q=∣C∣−1N_0, N_1, \ldots, N_q, q=|C|-1N0​,N1​,…,Nq​,q=∣C∣−1, of [n][n][n]


然后定义:

然后是不等式

对于 PPP 是有效的,如果

然后(10)定义 PPP 的一个面

最近,Letchford和Souli(2019)提出了一种改进的提升程序,如果覆盖 CCC 不是最小的,也可以应用该程序。它生成的不等式不弱于(10),并且在某些情况下可以更强,即使 CCC 是最小的。特别地,Letchford 's和Souli 's方法可以用包含在C中的指标修改变量的系数,并且对于最小覆盖C,它产生一个形式为(9)的简单LCI。

推论29:(Balas and Zemel 1978)设 CCC 为最小覆盖。如果条件(11)成立,则每个提升序列都会导致相同的顺序提升的最小覆盖不等式。这个不等式由


其中 πiπ_iπi​ 定义为定理28。此外,它是定义 PPP 的不等式的唯一方面,对于所有 i∈Ci∈Ci∈C ,系数为1,右侧为 ∣C∣−1|C|−1∣C∣−1 。

因此,在满足条件(11)的情况下,通过依次提升 CCC 的最小覆盖不等式,恰好可以找到 PPP 的一个方面。特别是,定义这个方面的不等式可以通过Balas过程找到,并且不需要依赖于顺序提升方法。

示例30:(继续示例5)再次考虑背包不等式 4x1+5x2+6x3+7x4+9x5≤134 x_1 + 5 x_2 + 6 x_3 + 7 x_4 + 9 x_5≤134x1​+5x2​+6x3​+7x4​+9x5​≤13 。对于最小覆盖 C={1,2,3}C =\{1,2,3\}C={1,2,3} 及其扩展 E(C)={1,2,3,4,5}E(C) =\{1,2,3,4,5\}E(C)={1,2,3,4,5} ,定理28中定义的六个集合 C1,C2,C3C_1, C_2, C_3C1​,C2​,C3​ and N2,N1,N0N_2, N_1, N_0N2​,N1​,N0​ 由

因此,我们得到 π4=π5=1π_4 = π_5 = 1π4​=π5​=1 和有效不等式

由于 N0=N2=∅N_0 = N_2 =∅N0​=N2​=∅ ,只需要在 h=1h = 1h=1 时检查条件(11)。由于 a1≤13−aja_1≤13−a_ja1​≤13−aj​ 对于所有 j∈[5]j∈[5]j∈[5] 都为真,有效不等式(12)定义了 PPP 的一个面。此外,根据推论29,它是 PPP 的唯一面,可以通过顺序提升从 CCC 得到。实际上,(12)是覆盖 C={1,2,3}C =\{1,2,3\}C={1,2,3} 的可拓不等式。

对于封面 C={2,3,4}C =\{2,3,4\}C={2,3,4} 及其扩展 E(C)={2,3,4,5}E(C) =\{2,3,4,5\}E(C)={2,3,4,5} ,六个集合 C1,C2,C3C_1, C_2, C_3C1​,C2​,C3​ 和 N2,N1,N0N_2, N_1, N_0N2​,N1​,N0​ 由

这就得到了有效的不等式

这不是 PPP 的面定义,因为它是由例27中的取消的不等式主导的。因此,如果条件(11)不成立(如本例中 h=0h = 0h=0 和 j=1j = 1j=1 ),定理28不一定会产生顺序提升的facet。

在示例30中,我们已经看到,顺序提升可以产生覆盖的扩展不等式。下面的推论描述了这种情况何时会发生。回想一下,根据定义,强覆盖是最小覆盖。

推论31:假设11成立,假设 C={i1,……,ik}C = \{i1,……, ik\}C={i1,……,ik} 是K的覆盖,其中 i1<i2<⋅⋅⋅<iki_1 < i_2 <···< i_ki1​<i2​<⋅⋅⋅<ik​ 且 K≥2K≥2K≥2 。当且仅当 CCC 是强覆盖且(4)成立时,CCC 的可拓不等式是 PPP 的顺序提升覆盖不等式。

(Q8) 使用解除覆盖不等式的公式有多强(例如,就LP-gap而言)?
(Q9) 有多少被解除的覆盖不平等?
(Q10) 在定理28中,附加假设(11)不仅依赖于背包多面体,而且依赖于它通过背包不等式的表示。是否存在独立于背包不等式的类似特征?

5.2 Sequential down-lifting

上面描述的过程称为向上提升,因为在初始不等式中为零的系数可能会增加。还记得我们假设初始不等式吗? ∑i∈Mπixi≤π0\sum_{i \in M} \pi_i x_i \leq \pi_0∑i∈M​πi​xi​≤π0​ 对于 KSK_SKS​ 有效,即不在 SSS 中的变量处于其下界。

与此相反,向下提升过程假设初始不等式对集合 KS:={x∈K:xi=1,i∈[n]\S}K^S:=\left\{x \in K: x_i=1, i \in[n] \backslash S\right\}KS:={x∈K:xi​=1,i∈[n]\S} 有效 ,即 SSS 之外的变量在其上界。

虽然在上升过程中的初始不等式对整个背包集 KKK 是有效的,参见引理25,但这个不等式在下降的情况下通常对 KKK 无效。

下推的目的是将一个对 KSK_SKS​ 有效的不等式转化为对 KKK 有效的不等式。

为此,下提升过程确定 i∈[n]\Si \in[n] \backslash Si∈[n]\S 的系数 πiπ_iπi​ ,使


对 KKK 有效。为了找到这样的系数,类似于抬升的情况,抬升序列必须固定,而抬升函数 ΦS:R+→R\Phi^S: \mathbb{R}_{+} \rightarrow \mathbb{R}ΦS:R+​→R ,


被认为是。如果 xk,k∈[n]\Sx_k, k \in[n] \backslash Sxk​,k∈[n]\S 是第一个被提升的变量,提升过程将 kkk 从 [n]\S[n]\backslash S[n]\S 中移除,并确定了当 xkx_kxk​ 固定在其下界时可能发生的初始不等式的最大违规 πk=ΦS(ak)\pi_k=\Phi^S\left(a_k\right)πk​=ΦS(ak​) 。因此,

等于 KS∪{k}K^{S \cup\{k\}}KS∪{k} 。请注意,这完全类似于抬升的情况,因为抬升函数 ΦS\Phi_SΦS​ 可以等效地定义为

示例32:(继续示例5)设S ={2,3,4,5}。T h ne x(S)≤1对K S有效,但对K无效,因为它截断了可行解(0,1,1,0,0)?。

为了使这个不等式对 KKK 有效,我们通过计算将变量 x1x_1x1​ 下移

得到有效不等式 x1+x(S)≤1+1=2x_1 + x(S)≤1 + 1 = 2x1​+x(S)≤1+1=2 。

精确计算举升系数 πkπ_kπk​ 可能很耗时,因为它需要解决一个背包问题。或者,也可以不精确地降低初始不等式。类似于向上的情况,我们得到了定理26的类似情况。

定理33:(Nemhauser and Wolsey 1999)设 a∈R+n,β∈R+a \in \mathbb{R}_{+}^n, \beta \in \mathbb{R}_{+}a∈R+n​,β∈R+​ ,设(6)对 KSK_SKS​ 有效。如果 {x∈KS∪{k}:xk=0}≠∅\left\{x \in K^{S \cup\{k\}}: x_k=0\right\} \neq \varnothing{x∈KS∪{k}:xk​=0}=∅ and πk≥ΦS(ak)\pi_k \geq \Phi^S\left(a_k\right)πk​≥ΦS(ak​) ,则:

对 KS∪{k}K^{S \cup\{k\}}KS∪{k} 是有效的。此外,如果 πk=ΦS(ak)\pi_k=\Phi^S\left(a_k\right)πk​=ΦS(ak​) 且(6)定义了conv(KSK_SKS​)的一个维数为 ttt 的面,则(13)定义了conv(KS∪{k}K^{S \cup\{k\}}KS∪{k})的一个维数至少为 t+1t + 1t+1 的面。

注意,向上和向下提升的过程可以同时应用于一个不等式。

为了说明这一点,考虑向上和向下提升的最小覆盖不等式。设 CCC 是一个极小盖,设 (C0,C1)(C_0, C_1)(C0​,C1​) 是 CCC 的一个分区,则提升过程的初始不等式为 x(C1)≤∣C1∣−1x(C_1)≤|C_1|−1x(C1​)≤∣C1​∣−1 ,这对KC1有效,但对 KC1K^{C_1}KC1​ 无效,如果 C1≠CC_1 \neq CC1​=C。在固定提升序列时,[n]\C[n]\backslash C[n]\C 中的变量依次向上提升,C0C_0C0​ 中的变量依次向下提升。结果是


定义 KKK 的一个方面,见Nemhauser和Wolsey(1999)。在文献中,将这类不等式称为解除覆盖不等式(LCI),而 C0=∅C_0=\varnothingC0​=∅ 的不等式仍然是简单的LCI。对于给定的封面,通过上述动态程序可以在多项式时间内找到简单LCIs,计算非简单LCIs是np困难的,参见Chen和Dai(2019)。

5.3 Sequence independent lifting and superadditivity 序列独立提升和超加性

由顺序提升产生的不平等可能取决于顺序,正如我们在例27中看到的那样。另一种方法是同时计算索引在 [n]\S[n]\backslash S[n]\S 中的变量的所有系数,这可能更快。这个概念被称为序列无关或同步提升。由于举升函数的超可加性起着重要作用,这种方法有时也称为超可加举升。请注意,定理28中的Balas提升过程可以被认为是一种同步提升方法,因为它产生了有效的不等式,其系数不依赖于指标 i∈[n]\Si∈[n]\backslash Si∈[n]\S 的任何顺序。

我们首先描述了任意有效不等式在一般情况下的同时提升,然后更具体地描述了覆盖不等式。

提升一般不等式令 π∈R+[n]0\pi \in \mathbb{R}_{+}^{[n]_0}π∈R+[n]0​​ 和 ∑i∈Sπixi≤π0\sum_{i \in S} \pi_i x_i \leq \pi_0∑i∈S​πi​xi​≤π0​ 是 KS:={x∈K:xi=0,i∈[n]\S}K_S:=\left\{x \in K: x_i=0, i \in[n] \backslash S\right\}KS​:={x∈K:xi​=0,i∈[n]\S} 与 S⊆[n]S \subseteq[n]S⊆[n] 的有效不等式。同时提升是通过一个函数 Ψ:R+→R\Psi: \mathbb{R}_{+} \rightarrow \mathbb{R}Ψ:R+​→R 使

对 KKK 有效。 Ψ(u)=ΦS(u)\Psi(u)=\Phi_S(u)Ψ(u)=ΦS​(u) 通常不能得到一个有效的不等式,因为集合S会随着更多的变量被引入而增长。因此,如果 i1,…,iki_1,…, i_ki1​,…,ik​ 为顺序提升方法选择的 [n]\S[n]\backslash S[n]\S 的提升顺序,提升函数(8)满足

为了克服这个问题,我们需要超可加函数。

定义34:函数 f:R→Rf: \mathbb{R} \rightarrow \mathbb{R}f:R→R 是 D⊆RD⊆RD⊆R 上的超可加性,如果对于所有 d1,d2∈Dd_1, d_2∈Dd1​,d2​∈D 满足 f(d1)+f(d2)≤f(d1+d2)f (d_1) + f (d_2)≤f (d_1 + d_2)f(d1​)+f(d2​)≤f(d1​+d2​) 。

定理35:(Gu 等人 . 2000;Wolsey 1977)不等式(15)对 KKK 有效,如果函数 Ψ:R→R\Psi: \mathbb{R} \rightarrow \mathbb{R}Ψ:R→R 满足:
(a) Ψ(u)≤ΦS(u)\Psi(u) \leq \Phi_S(u)Ψ(u)≤ΦS​(u) for all u∈[0,π0]u \in\left[0, \pi_0\right]u∈[0,π0​] and
(b) Ψ\PsiΨ 是 [0,π0][0,π_0][0,π0​] 上的超加性。

在Marchand等人(2002年,第2.2.2节)、Gu等人(2000年)或Letchford和Souli(2019年)中可以找到超添加剂提升函数的例子。

提升覆盖不等式令 C=i1,…,ikC = {i_1,…, i_k}C=i1​,…,ik​ ,其中 i1<⋅⋅⋅<iki_1 <···< i_ki1​<⋅⋅⋅<ik​ 为最小覆盖,假设11成立。设 aja_jaj​ 是 {ai1,…,aik}\left\{a_{i_1}, \ldots, a_{i_k}\right\}{ai1​​,…,aik​​} 的j个最大元素的和,即A j = ?j i=1 aik+1−i,定义 Aj=∑i=1jaik+1−iA_j=\sum_{i=1}^j a_{i_{k+1-i}}Aj​=∑i=1j​aik+1−i​​ 以及 λ:=∑i∈Cai−β>0\lambda:=\sum_{i \in C} a_i-\beta>0λ:=∑i∈C​ai​−β>0 。然后是函数

对于 u≥0u≥0u≥0 ,ΦC(u)\Phi_C(u)ΦC​(u) 占主导地位,并且是 R+\mathbb{R}_{+}R+​ 上的超加性,见Marchand et al .(2002)。

这就得到了有效的不等式

示例36:(继续示例5)再次考虑背包不等式 4x1+5x2+6x3+7x4+9x5≤134 x_1 + 5 x_2 + 6 x_3 + 7 x_4 + 9 x_5≤134x1​+5x2​+6x3​+7x4​+9x5​≤13 和最小覆盖 C={2,3,4}C =\{2,3,4\}C={2,3,4} 。其中 λ=5+6+7−13=5λ = 5 + 6 + 7−13 = 5λ=5+6+7−13=5 ,A0=0A_0 = 0A0​=0, A1=7A_1 = 7A1​=7, A2=13A_2 = 13A2​=13, A3=18A_3 = 18A3​=18,超加性函数 Ψ(u)\Psi(u)Ψ(u) 由

这就得到 Ψ(4)=25\Psi(4)=\frac{2}{5}Ψ(4)=52​ 和 Ψ(9)=65\Psi(9)=\frac{6}{5}Ψ(9)=56​ ,因此是有效的不等式

它不同于我们在例27中通过顺序提升从 CCC 中获得的定义不等式的面,并且不定义 PPP 的面。然而,情况并非总是如此。对于最小覆盖 C={1,2,3}C =\{1,2,3\}C={1,2,3} ,上述方法也得到定义不等式的面(12)。

备注37:(注:例27,30,36)注意,对于所有具有两个元素w.r.t. 4x1+5x2+6x3+7x4+9x5≤134x_1 + 5x_2 + 6x_3 + 7x_4 + 9x_5≤134x1​+5x2​+6x3​+7x4​+9x5​≤13 的最小覆盖,即 C={2,5}C = \{2,5\}C={2,5}, C={3,5}C =\{3,5\}C={3,5} 和 C={4,5}C =\{4,5\}C={4,5},所有三个提升过程(定理26和28中的顺序提升,以及序列独立提升)对其余三个变量的系数为0。这是因为这三个覆盖都是 E(C)=CE(C) = CE(C)=C 的强覆盖,并且很容易看出,这三种情况下的覆盖不等式已经定义了 PPP 的facet。

Easton和Hooker(2008)提出了一个同时将一组变量提升到覆盖不等式的过程。如果盖子和要提升的变量集是排序的,这个过程只需要线性工作。具体来说,对于一个覆盖 C⊆[n]C⊆[n]C⊆[n] 和一个集合 F⊆[n]\CF⊆[n]\backslash CF⊆[n]\C ,他们定义了 (F,ρ)(F, ρ)(F,ρ) -同时解除的覆盖不等式(SLCI)。

如果 ρ≥0ρ≥0ρ≥0 足够小,这是有效的。Easton和Hooker(2008,定理2.1)给出了一个精确的描述。一般来说,slci不是面定义的,而只是增加了由底层覆盖不等式定义的面的维度。但是,Easton和Hooker(2008,定理2.3)给出了 SLCIs 确实是 PC∪F=conv⁡(KC∪F)P_{C \cup F}=\operatorname{conv}\left(K_{C \cup F}\right)PC∪F​=conv(KC∪F​) 的facet定义的充分条件。

表1总结了本节和前两节中提出的不同提升方法。对于本表,假设11对背包不等式的系数和最小覆盖 CCC 中的指数都成立,即不需要对变量/系数进行排序。然后,“复杂性”列显示了计算所有提升系数的复杂性,而“facet”列报告了提升方法是否生成了定义不平等的facet,而没有进一步的假设。

5.4 Complete characterization of facets from simple LCIs 从简单LCIs中完全描述facet

Balas和Zemel(1978)给出了facet的完整描述,定义了可以通过连续或同时提升从最小覆盖中获得的不等式,我们将在本节中描述。对于任意0/1多面体,Peled (1977) 和 Zemel(1978)给出了这个结果的推广。Wolsey (1976a)讨论了一般整数程序的提升过程。为了说明Balas和Zemel的结果,需要引入额外的符号。

回想一下,定理28描述了容易计算的有效不等式,如果条件(11)满足,甚至可以依次提升最小覆盖不等式。设我是满足条件(11)a的 j∈[n]\Cj \in[n] \backslash Cj∈[n]\C 的指标集合 J:=[n]\(C∪I)J:=[n] \backslash(C \cup I)J:=[n]\(C∪I) 。给定集合 JJJ,定义

对于每个 M∈M(J)M \in \mathcal{M}(J)M∈M(J) 定义 βM′\beta_M^{\prime}βM′​ 为:

定理38:(Balas and Zemel 1978,定理9)设 a∈R+n,β∈R+a \in \mathbb{R}_{+}^n, \beta \in \mathbb{R}_{+}a∈R+n​,β∈R+​ ,设假设11成立,设 CCC 是 PPP 的最小覆盖,设 πiπ_iπi​ 定义为定理28。这是简单LCI

facet定义 PPP 当且仅当

(a) 对于每一个 i∈Ji∈Ji∈J ,存在 δi∈[0,1]\delta_i \in[0,1]δi​∈[0,1] ,使得


(b) 向量 δ∈RJ\delta \in \mathbb{R}^Jδ∈RJ 是多面体的一个顶点

推论39:(Balas and Zemel 1978,推论9.1)极小覆盖C的提升系数 αiα_iαi​ 满足定理38的(a)和(b)的简单LCI(9)是一个顺序提升的极小覆盖不等式当且仅当 δ∈{0,1}J\delta \in\{0,1\}^Jδ∈{0,1}J 。

这意味着定义具有整数系数的简单LCIs的所有facet都可以通过顺序提升生成,而同时提升的最小覆盖不等式通过顺序提升无法找到具有分数系数。这些可以通过计算多面体T的分数顶点得到。另一个含义是对顺序提升面的提升系数的描述。

推论40::(Balas and Zemel 1978,定理3)设(9)为顺序简单的提升覆盖不等式,定义p的一个面,则提升系数 αi,i∈[n]\C\alpha_i, i \in[n] \backslash Cαi​,i∈[n]\C 满足

此外,Hartvigsen和Zemel(1992)证明了可以在 O(n2)O(n^2)O(n2) 时间内确定有效不等式 c⊤x≤γc^{\top} x \leq \gammac⊤x≤γ 且 c∈Z+nc \in \mathbb{Z}_{+}^nc∈Z+n​ 是一个(facet定义)简单提升的最小覆盖不等式。然而,如果 c∈Rnc \in \mathbb{R}^nc∈Rn,决定 c⊤x≤γc^{\top} x \leq \gammac⊤x≤γ 定义了通过提升最小覆盖不等式获得的有效不等式,即使底层覆盖是已知的,它也是NP完备的。

示例41:(继续示例5)再次考虑背包不等式 4x1+5x2+6x3+7x4+9x5≤134 x_1 + 5 x_2 + 6 x_3 + 7 x_4 + 9 x_5≤134x1​+5x2​+6x3​+7x4​+9x5​≤13 和最小覆盖 C={2,3,4}C =\{2,3,4\}C={2,3,4}。在示例30中:

且 π1=0,π5=1π_1 = 0, π_5 = 1π1​=0,π5​=1。可得 I=∅I=\varnothingI=∅,J={1,5}J =\{1,5\}J={1,5} 。M(J)={{1},{5},{1,5}}\mathcal{M}(J)=\{\{1\},\{5\},\{1,5\}\}M(J)={{1},{5},{1,5}} 。对于 M={1}M =\{1\}M={1} ,系数 βM′=β{1}′\beta_M^{\prime}=\beta_{\{1\}}^{\prime}βM′​=β{1}′​ 由下式给出

这意味着不平等

对于 M={5}M =\{5\}M={5} 和 M={1,5}M =\{1,5\}M={1,5} ,可以类似地导出不等式 δ5≤1\delta_5 \leq 1δ5​≤1 和 δ1+δ5≤1\delta_1+\delta_5 \leq 1δ1​+δ5​≤1 。根据定理38,不等式

facet定义 PPP 当且仅当

(a)


(b) δ=(δ1,δ5)⊤∈R2\delta=\left(\delta_1, \delta_5\right)^{\top} \in \mathbb{R}^2δ=(δ1​,δ5​)⊤∈R2 是多面体的一个顶点

因为T有两个顶点 (1,0)⊤(1,0)^{\top}(1,0)⊤ 和 (0,1)⊤(0,1)^{\top}(0,1)⊤ 呢?,通过顺序提升或同时提升从最小覆盖 C={2,3,4}C =\{2,3,4\}C={2,3,4} 得到的定义不等式的仅有两个面是

这里不等式(18)对应顶点 (1,0)⊤(1,0)^{\top}(1,0)⊤ 不等式(19)对应顶点 (0,1)⊤(0,1)^{\top}(0,1)⊤ 。TTT 只有整顶点,推论29表明两个面定义不等式都可以通过顺序提升得到。

对于最小覆盖 C={1,2,3}C =\{1,2,3\}C={1,2,3} ,则 I={4,5}I = \{4,5\}I={4,5} ,J=∅J=\varnothingJ=∅ 。因此,不等式

是唯一可以从C连续或同时提升得到的面。

在例30中,我们已经总结了这种独特性——至少对于连续升降是这样。

(Q11) 对于不同于封面的被解除不等式,我们能否(依次地或同时地)发展出类似的理论?例如,是否可以描述定义由解除包的不平等引起的不平等的方面(见第六章)?


【论文阅读】(2020)Knapsack polytopes: a survey(上)相关推荐

  1. 论文阅读:Knowledge Distillation: A Survey 知识蒸馏综述(2021)

    论文阅读:Knowledge Distillation: A Survey 知识蒸馏综述2021 目录 摘要 Introduction Background 知识 基于响应的知识 基于特征的知识 基于 ...

  2. 【论文阅读】PU-GAN:点云上采样的对抗生成网络

    [论文阅读]PU-GAN:点云上采样的对抗生成网络 在本文中,作者提出了一种点云上采样的对抗网络模型,那么什么是点云的上采样任务呢? 简单来说,点云上采样任务就是输入稀疏点云,输出稠密点云,同时需要保 ...

  3. 模型量化论文阅读#1----综述:A Survey of Quantization Methods for Efficient Neural Network Inference

    1. 量化的基本概念 A. 问题设置和符号表示 假设网络有L层,其每层的参数表示为:{W1,W2,-,WL}\left\{W_{1}, W_{2}, \ldots, W_{L}\right\}{W1​ ...

  4. 论文阅读——利用Inceptioin V3在PET上进行AD预测

    文章目录 一.数据及预处理 1.数据集 2.预处理 二.模型 三.结果 1.模型结果 2.模型解释与可视化 四.讨论 1.关于结果的讨论 2.局限性 结束语 分享一篇用18F-FDG PET进行AD预 ...

  5. 论文阅读:multimodal remote sensing survey 遥感多模态综述

    遥感多模态 参考:From Single- to Multi-modal Remote Sensing Imagery Interpretation: A Survey and Taxonomy Ke ...

  6. 论文阅读笔记--Monocular Human Pose Estimation: A Survey of Deep Learning-based Methods 人体姿态估计综述

    趁着寒假有时间,把之前的论文补完,另外做了一点点笔记,也算是对论文的翻译,尝试探索一条适合自己的论文阅读方法. 这篇笔记基本按照原文的格式来,但是有些地方翻译成中文读起来不太顺,因此添加了一些自己的理 ...

  7. [论文阅读笔记17]A Survey on Knowledge Graph-Based Recommender Systems

    一,题目 TKDE 2020 A Survey on Knowledge Graph-Based Recommender Systems 综述:基于知识图谱的推荐系统 In IEEE Transact ...

  8. 论文阅读:Natural Language Processing Advancements By Deep Learning: A Survey

    文章目录 一.介绍 二.背景 1.人工智能和深度学习 (1)多层感知机 (2)卷积神经网络 (3)循环神经网络 (4)自编码器 (5)生成对抗网络 2.NLP中深度学习的动机 三.NLP领域的核心概念 ...

  9. 【论文阅读】 Object Detection in 20 Years: A Survey

    [论文阅读]Object Detection in 20 Years: A Survey 摘要 论文介绍 1.目标检测 2.目标检测的里程碑 3.数据集 4.性能度量 摘要 本篇博客参考Object ...

最新文章

  1. eyoucms range 范围判断标签
  2. Who悄悄偷走了我的流量
  3. golang map嵌套struct 结构体字段 不能直接修改 解决方法
  4. MySQL 同步(三)不同版本问题
  5. With you With me
  6. 流程图虚线框表示什么_UI设计|APP的交互线框布局设计
  7. 蒸汽机器人q和锤石q_英雄联盟:圣杯锤石的启发,辅助的作用是否应该更倾向多元化?...
  8. 论无线网络中的网络与信息安全技术
  9. 吴恩达机器学习神经网络作业(python实现)
  10. 区块链项目开发最容易受区块链技术影响的行业
  11. HTTP Header 详解 Requests 与 Responses 头信息
  12. 暑期训练第四次团队赛
  13. 【优化系列】VS与YASM的集成使用
  14. TE波TM波和TEM波波阻抗
  15. 如何远程办公电脑 关于电脑远程办公的方法和工具分享
  16. 数据结构之树与二叉树
  17. Win10右键菜单栏目中增加新建excel的方法教学
  18. 三年大厂面试官——二面题(偏难)
  19. 校园一卡通系统发展概况及未来趋势
  20. ERP增长放缓 传统厂商纷纷向全程电子商务扩张

热门文章

  1. AI一周热闻:地平线获6亿美元融资;小米最大规模组织架构调整
  2. AcrelCloud-1000变电所运维云平台为用户提供便捷、全面的运维服务
  3. jai-codec等相关包的pom引入问题
  4. jsp页面导入java包能干嘛_在JSP中如果要导入java.util.*包要使用什么指令
  5. 大数据分析案例-基于朴素贝叶斯算法构建微博谣言检测模型
  6. 【PCB】AD17绘制PCB注意事项
  7. 点击添加MSN机器人小新,为您收听下载MSDN中文网络广播课程加油助力
  8. 关于产品的一些思考——腾讯之搜搜百科
  9. 专题:知乎推荐学习APP评测目录及计划
  10. Linux的自我修养