The Stein-Lov´asz Theorem 定理及应用

  • The Stein-Lovasz Theorem 定理及应用

    • 定理描述
    • 贪心算法
    • 证明过程
    • 应用证明分离哈希族的函数数目

The Stein-lov´asz定理最早由数学家[Stein(1974)][1]和[Lov´asz (1975)][2]提出。其最理论基础经过发展,应用到了[编码理论][3]。
The stein-lov´asz Theorem 理论最基本的模型是解决集合的元素覆盖问题。使用贪心算法,以获得一个使用最少列元完成最大行覆盖的方案。下面给出简单的Stein-Lovasm定理简单证明过程。在台湾作者李光祥的研究下,将原有的至少有1个 ′1′ '1'的行元升级到了至少又t个 ′1′ '1'的行元问题[Guang-Siang Lee][5]。
并且就[Deng’s article][4]的理解,介绍了一种分离哈希函数(Separating Hash Families)的应用,本文就分离函数族结合Stein-Lovasm的证明方法重新复述,并且认为其中具有冗余的证明部分,提出了自己的解释。

定理描述

  • 原问题
    假设 (0,1) (0,1)矩阵A的大小是 N×M N\times M ,矩阵 A A的特征是每行至少具有v个1,每列最多a个1。假设现在从其中抽取一个子矩阵C⊂AC \subset A ,大小是 N×K N\times K,使得子矩阵的每行元素都不是全零行,证明 K K存在一个上界。

    K≤N/a+(M/v)ln(a)≤(M/v)(1+ln(a))

    K≤N/a+\left(M/v\right)\ln(a)≤\left(M/v\right)\left(1+\ln(a)\right)
    原问题分析:能不能使用一种抽取列数尽可能少的方案,如果使用的列数目比给定的边界条件 N/a+(M/v)ln(a) N/a+(M/v)\ln(a)小,那么原来的问题就自然获得证明。

贪心算法

  • 思路描述如下

    1. 初始化矩阵 (0,1) (0,1)矩阵 A A,每列的′1′'1'权重值 ci∈{1,2,3,......,a} c_i\in\left\{ 1,2,3,... ...,a \right\},然后按照列权重按照a,a-1,a-2,…,1执行降序排序,此时的矩阵命名为 Aa A_a;
    2. 从最左边权重最高为a的第一列开始,删除这一列,并且这列对应的 ′1′ '1'所在相应的a个行也统一删掉。在删除1列和a行后的矩阵 A A,重新划定权重,继续寻找左边最高权重为a的列,继续删除。在删除22列和 2∗a 2*a行后的矩阵 A A,重新划定权重,继续寻找左边最高权重为a的列,继续删除。重复KaK_a次后,把最高权重为a的列及对应的 a∗Ka a*K_a行都删掉了,此时的矩阵变成了 Aa−1 A_{a-1};
    3. 以矩阵 Aa−1 A_{a-1}开始,从左边权重最高为a-1的第一列开始,删除这一列,并且这列所对应的 a−1 a-1行也统一删掉。删完后,重新划定权重,继续寻找左边最高权重为a-1的列,继续删除。重复 Ka−1 K_{a-1}次后,把最高权重为a-1的列及其对应的 (a−1)∗Ka−1 (a-1)*K_{a-1}行都删掉了,此时的矩阵变成了 Aa−2 A_{a-2}.
    4. 重复步骤3,删除权重为a-2,a-3,…,1的列,直到矩阵 A1 A_1变成了空。
    5. 将之前删除的所有列元集中起来重新组合成 N×K N\times K矩阵, K=∑i:1→aKi K=\sum_{i:1→a} K_i

贪心算法的图例解释如附图1.

证明过程

按照贪心算法的步骤:
定义 Aa:=A A_a := A,其具有属性 (1) (1)、 (2) (2):

(1) (1)每行至少有v个1;
(2) (2)每列至多有a个1;

将 Aa A_a分成两部分 A⋅a A_a^· 与 Aa−1 A_{a-1},其中 A⋅a A_a^· 将所有每列的列权重都是a,而且pairwise disjoint(集合相交为0)的集合合并在一起,并且 A⋅a A_a^· 的列元数目是 Ka K_a,删除 A⋅a A_a^· 及其 ′1′ '1'所在的行后,剩下的 Aa−1 A_{a-1}行数目为 ka−1=N−a∗Ka k_{a-1}=N-a*K_a,列数目为 M−Ka M-K_a。在 Aa−1 A_{a-1}中,每列元的最大权重自然变成了a-1,而且每行权重至少是v不变(但凡是对权重有影响的列删除操作,都已经将其行也删除过了,而对这些剩下的行元没有丝毫影响)。所以 Aa−1 A_{a-1}的属性变成了:

(3) (3)每行至少有v个1;
(4) (4)每列至多有a-1个1;

按照同样的方法,把 Aa−1 A_{a-1}剔除权重为a-1并且pairwise disjoint的列元,以及其所在的 ′1′ '1'行元。那么剔除的列数为 Ka−1 K_{a-1},得到结果 Aa−2 A_{a-2}的行数是 ka−2=N−a∗Ka−(a−1)∗Ka−1 k_{a-2}=N-a*K_a-(a-1)*K_{a-1},列数是 M−Ka−Ka−1 M-K_a-K_{a-1}.
在最多a步的有限步骤下, Aa→Aa−1→Aa−2→...→A1→A0 A_{a}→A_{a-1}→A_{a-2}→...→A_1→A_0, A0 A_0为空时,贪婪算法的删除操作可以终止。注意到,将这些删除的列元具有的特征就刚好是每行权重至少有个1,即不是非零行,将他们集中起来,就可以得到所需的列数目 K K,并且肯定可以构成行数为NN(如果不是 N N,而是一个比NN小的数 n n,那么最后一步剩下的A0A_0行数是 N−n(>0) N-n(>0),考虑到在删除时候属性 (1)(3)(5) (1)(3)(5) 每行至少v个 ′1′ '1'的属性不变,所以 A0 A_0中的列元素最小权重必然大于等于1,与 A0 A_0的 ′0′ '0'含义相矛盾).

(5) (5)每行至少有v个1;
(6) (6)每列至多有0个1;

列数目 K K为:

K=Σi:1→aKi

K=Σ_{i:1\rightarrow a} K_i

当找到最佳的表达式后,下面寻找开始这其中每个 Ki K_i应该满足的条件,对于第一次的剔除操作完了后:

ka−1=N−a∗Ka

k_{a-1}=N-a*K_a
对于第二次的的剔除操作完了后:

ka−2=N−a∗Ka−(a−1)∗Ka−1=ka−1−(a−1)∗Ka−1.

k_{a-2}=N-a*K_a-(a-1)*K_{a-1}=k_{a-1}-(a-1)*K_{a-1}.
所以,可以得到 Ki=(ki−ki−1)i.(ka=N) K_i=\frac{(k_i-k_{i-1})}{i}.(k_a=N)

另一方面,考虑到 (1)(2)(3)(4) (1)(2)(3)(4)的属性,
在变化 Aa→Aa−1→Aa−2→...→A1→A0 A_a→A_{a-1}→A_{a-2}→...→A_1→A_0时,
行变化: ka→ka−1→ka−2→...→ki→...→k1→k0 k_a→k_{a-1}→k_{a-2}→...→k_i→...→k_1→k_0.每行至少又v个1,所以 v∗ki<=Si v*k_i 。 Si S_i是总的权重;
列变化: M→M−Ka→M−Ka−Ka−1→...→M−Ka−...−Ki+1→...→M−Ka−...−K2→M−Ka−...−K1 M→M-K_a→M-K_a-K_{a-1}→...→M-K_a-...-K_{i+1}→...→M-K_a-...-K_2→M-K_a-...-K_1
每列至多 i i个1.S<=i(M−Ka...−Ki)<=iMS.
所以: v∗ki<=iM⇒ki/i<=M/v v*k_i
K=Σi:1→aKi=K=Σi:1→a(ki−ki−1i)=ka−ka−1a+ka−1−ka−2a−1+...+k2−k12+k1+k0 K=Σ_{i:1→a} K_i=K=Σ_{i:1→a} \left(\frac{k_i-k_{i-1}}{i}\right)=\frac{k_a-k_{a-1}}{a}+\frac{k_{a-1}-k_{a-2}}{a-1}+...+\frac{k_2-k_1}{2}+k_1+k_0
=kaa+ka−1a(a−1)+ka−2(a−1)(a−2)+......+k2−k12+k1−k0 =\frac{k_a}{a}+\frac{k_{a-1}}{a(a-1)}+\frac{k_{a-2}}{(a-1)(a-2)}+......+\frac{k_2-k_1}{2}+k_1-k_0
≤Na+Mv(1a+1a−1+......+12)−k0 ≤\frac{N}{a}+\frac{M}{v}\left(\frac{1}{a}+\frac{1}{a-1}+......+\frac{1}{2}\right)-k_0
≤Na+Mvln(a)≤Mv(1+ln(a)) ≤\frac{N}{a}+\frac{M}{v}\ln(a)≤\frac{M}{v}(1+\ln(a))

应用:证明分离哈希族的函数数目

原问题[4]:定义 (n,m,w1,w2)− (n,m,{w_1,w_2})-separating hash family是一系列哈希函数 f f的集合FF。其中每个函数完成映射: f:Y→X f:Y→X,其中 |Y|=n |Y|=n, |X|=m |X|=m。对于输入集合 Y={1,2,3,4,...n} Y=\left\{1,2,3,4,...n\right\}的任意两个不相交子集 C1 C_1、 C2 C_2, C1∩C2=ø C_1 ∩ C_2= ø , |C1|=w1 |C_1 |=w_1, |C2|=w2 |C_2 |=w_2,存在至少一个 f∈F f∈F映射函数,使得函数值不相交:

{f(y):y∈C1}∩{f(y):y∈C2}=ø.

\left\{f(y):y∈C_1\right\}∩\left\{f(y):y∈C_2\right\}=ø.
记 SHF(N;n,m,{w1,w2}) SHF\left(N;n,m,\left\{w_1,w_2\right\}\right)来表示分离哈希函数族,其中 N N为哈希函数集合FF的大小 |F|=N |F|=N.

分析:将函数的输入输出关系记作如下图所示的方格点A(f,y),其中第1列对应于输入集合 Y Y中的输入值1,第二列对应输入值2,第三列…,共计|Y|=n|Y|=n种输入。第1行对应于第1个映射函数 f1∈F f_1∈F,第2行对应于第2个映射函数 f2 f_2,共计有 |F|=N |F|=N种函数。

用图论的观点来解释 C1 C_1与 C2 C_2应该满足的要求。
C1∩C2=ø C_1∩C_2=ø,表示 w1 w_1个点和 w2 w_2个点都不相交,对应于图 G=(V,E) G=(V,E)中 w1+w2 w_1+w_2个顶点数目,记 V=V1+V2 V=V_1+V_2, |V1|=w1 |V_1 |=w_1, |V2|=w2 |V_2 |=w_2, V1∩V2=ø V_1∩V_2=ø;
{f(y):y∈C1}∩{f(y):y∈C2}=ø \left\{f(y):y∈C_1\right\}∩\left\{f(y):y∈C_2\right\}=ø。对每1个函数映射值而言, A(f,y)∈{1,2,3,...,m} A(f,y)∈\left\{1,2,3,...,m\right\},因此最多可能有 m m种不同的映射值,原来条件的f(C1)f(C_1 ), f(C2) f(C_2 )相交为空集,即映射值为空集。现在定义不同的映射值对应于不同的颜色,那么每个顶点的颜色数目最多可能有 m m种。先固定顶点集合V2V_2,观察 V1 V_1中的点x,由于 A(f,V1)∩A(f,V2)=ø A\left(f,V_1\right)∩A\left(f,V_2\right)=ø,所以 A(f,x)∉A(f,V2) A(f,x)∉A(f,V_2),即 x x的顶点颜色与V2V_2中每个顶点的颜色都不同。接下来,对 V1 V_1中剩下的其他点也要满足同样的要求。那么,对于集合 V1 V_1, V2 V_2中所有顶点不能着与对方相同颜色的顶点关系用边来连接,最终可以连接成一个完全二分图 K(w1,w2) K_\left(w_1,w_2\right)每条边的两个顶点都具有不同的颜色值。


现在 C1 C_1与 C2 C_2应该满足的关系转化为了:提供m种不同颜色作为选择,保证二分图 Kw1,w2 K_{w_1,w_2}中的任意两条边的顶点颜色都不相同。着色方案问题,不是研究重点,因此简记着色方案数目为 Π(Kw1,w2,m) Π(K_{w_1,w_2},m).

原来的证明思路[4]:
我们首先构造一个关联矩阵 A A,列数为mnm^n,对应所有顶点都着上 m m种可能的映射值。行数为(n−w1w2)\begin{pmatrix} n-w_1 \\ w_2\end{pmatrix} 对应所有满足子集长度要求的分离对集合编号总数。对于 w1 w_1大小的子集,和不相交的 w2 w_2子集,我们可以给行构建一个双计数变量: i1,i2 i_1,i_2,其中 i1∈{1,2,3,...,(nw1)} i_1\in \left\{1,2,3,..., \begin{pmatrix} n \\ w_1 \end{pmatrix} \right\}, i2∈{1,2,3,...,(n−w1w2)} i_2\in \left\{1,2,3,..., \begin{pmatrix} n-w_1 \\ w_2 \end{pmatrix} \right\}
如果 ai,j=1 a_{i,j}=1,那么第 j j种函数映射值可以使得第i1i_1个 w1 w_1子集和第 i2 i_2个 w2 w_2子集不存在元素相交。否则 ai,j=0 a_{i,j}=0。
现在考虑怎么使用现有的 A A中的列元(一个j列对应了某一种映射方案,也就是特定的一种映射方案函数f,如果需要NN列的话,那么将需要使用N种函数)来对所有的任意 w1 w_1, w2 w_2可能子集都予以覆盖。那么这个问题的方向看起来就和Stein-Lov´asz定理一样——最坏情况的列元选取方案是多少种?选取映射方案的最坏上限值不超过多少,才能符合所有行元被最佳最少列cover掉的这个目标?
在文章[4]给出的一个上界是

N≤mw1+w2Π(Kw1,w2,m)(1+log(Cw1nCw2n−w1))

N≤\frac{m^{w_1+w_2 }}{Π(K_{w_1,w_2,m})} \left(1+\log\left(C_n^{w_1} C_{n-w_1}^{w_2} \right)\right)
但其实个人认为不是这样,而是强行使用Stein-Lovasm定理。

解释:现在A中的每个元素 ai,j a_{i,j}是 (0,1) (0,1)矩阵,每行拥有的权重为 mn−w1−w2Π(Kw1,w2,m) m^{n-w_1-w_2} Π(K_{w_1,w_2},m),每列至多拥有 Cw1nCw2n−w1 C_n^{w_1} C_{n-w_1}^{w_2}权重。按照Stein-Lov´asz定理,可得到 N N的上述边界。但是从证明过程的角度分析, A中的行数目也刚好是Cw1nCw2n−w1C_n^{w_1} C_{n-w_1}^{w_2},因此将这个最大权重的列选出,则可以作为一个子矩阵,cover掉所有的 Cw1nCw2n−w1 C_n^{w_1} C_{n-w_1}^{w_2}行。因此,N=1,而求解这个问题的上界 mw1+w2Π(Kw1,w2,m)(1+log(Cw1nCw2n−w1)) \frac{m^{w_1+w_2 }}{Π(K_{w_1,w_2,m})} \left(1+\log\left(C_n^{w_1} C_{n-w_1}^{w_2} \right)\right)已经在1的基础上放大了很多倍数,作了没必要的放大。从物理意义解释说,所选取的这个最大权重列,对于任意的 w1 w_1, w2 w_2大小的子集,全部可以完成分离函数的映射条件。

[1]: S. K. Stein, Two combinatorial covering problems, J.Combinatorial Theory, Ser. A, 16 (1974), 391-397.
[2]: L. Lov´asz. On the ratio of optimal integral and fractional covers, Discrete Mathematics, 13 (1975), 383-390.
[3]: G. Cohen, S. Litsyn and G. Z´emor, On greedy algorithms in coding theory, IEEE Transactions on Information Theory, Vol. 42 no.6 (1996), 2053-2057
[4]: Dameng Deng, and Yuan Zhang, The Stein-Lov´asz Theorem and Its Applications to
Some Combinatorial arrays, JCMCC-Journal of Combinatorial Mathematicsand Combinatorial Computing, Vol.77 no.17 (2011).
[5]: Lee G S. An extension of Stein-Lovász theorem and some of its applications[J]. Journal of Combinatorial Optimization, 2013, 25(1): 1-18.


附图1

The Stein-Lov´asz Theorem 定理相关推荐

  1. 英文论文中Assumption(假设)、Lemma(引理)、Theorem(定理)、Proof(证明)、Remark(备注、注释)之间的关系

    理论性比较强的英文论文中通常会看到满篇的Remark ,Proof, Lemma,Theorem,Assumption,现在理一下它们之间的关系.        一般顺序是 Assumption(假设 ...

  2. 【翻译】Brewer's CAP Theorem CAP定理

    Brewer's CAP Theorem 原文地址:http://www.julianbrowne.com/article/brewers-cap-theorem Brewer's (CAP) The ...

  3. 定理(Theorem)、引理(Lemma)、推论(Corollary)的定义及LaTeX用法

    1.定理(Theorem) 1.1 定义: Theorem(定理)----a mathematical statement that is proved using rigorous mathemat ...

  4. 机器学习著名定理之—No Free Lunch定理详解

    引言 谈到机器学习一个非常著名的定理,那就不得不提 No Free Lunch 定理了.该定理核心思想是没有一种通用的学习算法可以在各种任务中都有很好的表现,需要对具体问题进行具体的分析.从原理出发去 ...

  5. 命题, 定理,引理和推论的定义

    以下内容摘自此处. 命题 (proposition): 命题是一个陈述语句. 这个陈述语句可以是正确的也可以是错误的. 比如"3比4大"和"7是一个素数"都是命 ...

  6. Definition, Lemma ,Theorem ,Proposition ,Corollary ,Proof ,Conjecture ,Axiom 概念的含义和区别

    1. Definition 定义 对某个数学概念\术语(符号.表达)的解释. An explanation of the mathematical meaning of a word. 2. Lemm ...

  7. 定义Definition、公理、定理、推论、命题和引理的区别

    WHAT IS THE DIFFERENCE BETWEEN A THEOREM(定理), LEMMA(引理),AND A COROLLARY(推论)? PROF. DAVE RICHESON (1) ...

  8. 定义,公理,定理,推论,命题和引理的区别

    一.概念 Definition (定义) - a precise and unambiguous description of the meaning of a mathematical term. ...

  9. latex中使用定理、证明、缩进

    1.定理和证明 1 \documentclass[a4paper,UTF8]{article}2 \usepackage{ctex} 3 \usepackage{amsthm,amsmath,amsf ...

最新文章

  1. CentOS 6.5系统下安装和配置NFS服务
  2. 成功解决AttributeError: 'NoneType' object has no attribute '__array_interface__'
  3. XML 和 JSON 的使用场景
  4. SpringMVC框架结构以及架构流程
  5. php编程怎么和mysql链接_php编程怎么和mysql连接
  6. [JavaScript]只需一行代码,轻松搞定快捷留言功能
  7. 手把手教你报表工具PentahoBI安装和简单使用
  8. android 指针是什么意思,Android系统的智能指针(轻量级指针、强指针和弱指针)的实现原理分析(3)...
  9. Spring事务管理详解_基本原理_事务管理方式
  10. 解决ssh登录慢,等待时间长的问题
  11. python能做什么项目-Python 的练手项目有哪些值得推荐?
  12. 十八、x86汇编基础
  13. 小程序容器化:基于uni-app的Android小程序开发
  14. mysql概念模型中的3种基本联系_数据库建模三步骤:概念模型
  15. 应用程序无法找到入口
  16. JavaWeb——动态 web 资源开发
  17. W806+ST7735R+tftLCD程序开发
  18. 真正厉害的人,都是“反内耗”体质
  19. 塔米狗分享|2022年企业并购创新的融资方式有哪些
  20. 【CSS】纯css实现立体摆放图片效果

热门文章

  1. 1月16日服务器维护,1月16日服务器维护公告
  2. Bert-whitening 向量降维及使用
  3. C++库函数——sort
  4. WordPress博客网站屏蔽搜索特殊关键字和网址,屏蔽恶意特殊关键词的方法分享,附如何屏蔽搜索收录
  5. 南京邮电大学matlab数学实验报告
  6. 进击吧!Pythonista(6/100)
  7. oracle如何查询授权,oracle授权查询
  8. 神州数码牵手国内最大远程接入平台提供商
  9. 国产智能BI产品崛起,帆软Fine BI、瓴羊Quick BI等应该如何选择
  10. fMRI数据处理_预处理_3_批处理和结果解读