创新实训个人记录:metric k-center

  • 一些概念
    • k-center(k-中心)
    • dominating set(支配集)
    • independent set(独立集)
    • 独立集&&支配集
    • k-中心&&支配集
    • square of graph (H2H^2H2)
  • 开始证明
    • dom(H)的下限(HHH的支配集&&H2H^2H2的独立集)
    • 算法
    • 近似比
    • 近似比最优证明

一些概念

k-center(k-中心)

问题来源:给定n个具有指定城市间距离的城市,选择其中k个城市来放置仓库,以最大程度地减少城市与其最近的仓库之间的最大距离。我们在metric的情况下考虑这个问题,即,满足三角不等式;不然的话,找不到一个近似因子α(n),α(n)是任意可计算的函数(第4章有讲到这个证明)。输入<G,k,d>,是否能找到一个集合,最多k个顶点,使剩下n-k个顶点与这k个顶点的最大距离≤d;是一个NP-hard问题

“最小化”“最大的”“最小距离”:先讲“最小距离”,我们已经确定了k个城市作为仓库,那么对于剩下的n-k个城市中的每一个城市,与这k个城市,有一个最小距离,比如城市A,与这k个城市之间的城市B距离最小,那么城市A与城市B的距离就叫做城市A与这k个城市的最小距离;
然后是“最大的”,对于n-k个城市的每一个城市,有一个对于自己的最小距离,那放到这n-k个城市里考虑,就有n-k个最小距离,在这n-k个距离中最大的,即“最大的”“最小距离”;
最后是“最小化”,对于这n-k个最小距离中最大的距离,进行最小化处理。

数学符号表示:令G =(V,E)是一个完全的无向图,边成本满足三角不等式,而k是一个正整数。 对于任何集合S⊆V和顶点v∈V,将connect(v,S)定义为从v到S中顶点的最便宜边的成本。问题是要找到一个集合S⊆V,且|S|= k,以便最小化maxvmax_vmaxv​{connect(v,S)}。即我们可以写成 minimizing max⁡v∈Vmin⁡s∈Sf(x)\max\limits_{v\in\mathcal{V}}\min\limits_{s\in\mathcal{S}}f(x)v∈Vmax​s∈Smin​f(x)

dominating set(支配集)

概念:支配集就是一个点集,在这个图里,除去这个点集外的所有顶点,都与这个点集中至少一个顶点相连。

看这个图,就可以理解支配的概念。
比如图(a),红色的顶点就是支配集,所有白色的顶点都连着红色的顶点,所以我们称红色顶点支配着白色顶点,称为支配集。支配集问题,就是对于一个给定的图G和一个数k,我们能不能找到一个最小支配集的顶点数≤k。这个问题已经被证明是NP难问题了。我们再看图(b)、(c ),这两个图就是找到了最小支配集的情况,我们可以知道此时对于这个图来说,最小支配集的最大大小k为2。

数学符号表示:对于图H,最小支配集的顶点数用dom(H)表示。

输入<G,k>,能否找到一个顶点数≤k的支配集,是个NP-complete问题。

independent set(独立集)

对于一个图H,它的独立集,就是这个集合中任意两个顶点不相邻。
maximal independent set: 极大独立集,不是任何独立集的子集;就是对于目前这种状况,不能再加点进入独立集了。
maximum independent set: 最大独立集,就是顶点数最多的独立集。
maximum independent set problem: 是否能找到最大独立集。这是一个NP-hard问题。

独立集&&支配集

通过定义,我们可知极大(maximal)独立集是一个支配集

证明:对于一个极大独立集III,如果存在点vvv没有被独立集III支配,,即点vvv和独立集III之间没有边,那么我们可以把点vvv加入独立集III形成一个更大的独立集I′I'I′,这与III是极大独立集矛盾。所以我们可推:极大独立集III是一个支配集。

k-中心&&支配集

我们可以把k-center问题转化成dominating set问题。
前提:把图G的边排序,以不降序的顺序排,即cost(e1)≤cost(e2)≤……≤cost(en)cost(e_1)≤cost(e_2)≤……≤cost(e_n)cost(e1​)≤cost(e2​)≤……≤cost(en​),让Gi=(V,Ei)G_i=(V,E_i)Gi​=(V,Ei​),其中Ei=e1,e2,……eiE_i={e_1,e_2,……e_i}Ei​=e1​,e2​,……ei​。
转化:我们可以把k-中心问题看作,找最小的索引i,使得GiG_iGi​有一个size≤k的支配集。如果i∗i^*i∗是我们找到的最小索引,那么cost(ei∗)就是cost(e_{i^*})就是cost(ei∗​)就是对于k-中心问题的最优解,即我们找到的“最小的 最大的 最小距离”,用OPT表示。
画图举例

以上图为例,来讨论k中心问题,支配集问题,以及转化关系。

  • k中心问题:输入<G,k,d>,是否能找到一个集合,最多k个顶点,使剩下n-k个顶点与这k个顶点的最大距离≤d。我们输入<G,2,3>:不考虑d时,我们有支配集<A,C>、<A,D>、<A,E>;

    • 对于<A,C>,剩下的6-2=4个城市,到这2个城市的最大的最小距离是:max(BA,DC,EA,FA)=EA=2;
    • 对于<A,D>,剩下的6-2=4个城市,到这2个城市的最大的最小距离是:max(BA,CD,EA,FA)=EA=2;
    • 对于<A,E>,剩下的6-2=4个城市,到这2个城市的最大的最小距离是:max(BA,CA,DE,FA)=DE=4;

    对于此题,我们设置d=3,我们找到的满足题意的集合是<A,C>、<A,D>。

  • 支配集问题:输入<G,k>,是否能找到一个顶点数≤k的支配集。我们输入<G,2>,有支配集<A,C>、<A,D>、<A,E>。

  • k中心问题转化成有附加条件的支配集问题:找最小的索引i,使得GiG_iGi​有一个size≤k的支配集。先把边排序:{CD,AB,AF,AE,AC,BE,CE,DE},对于边长度{1,1.2,1.5,2,3.2,3.5,4}。找一个最小的索引i,使得GiG_iGi​有一个size≤2的支配集。我们找到的最小的索引i是4,即{CD,AB,AF,AE},对应的支配集为{A,C},最优解是AE=2。

找到的最优解是相等的,这也可以表明“转化后有附加条件的支配集问题”等价于“k中心问题”。

转化成功,下面我们就可以直接从“支配集问题”的角度来考虑啦。

square of graph (H2H^2H2)

对于图H ,有两个点u、v(u≠vu \neq vu​=v),有一条u,v之间的路径,"a path of length at most two"的意思是u和v之间有边,直接相连或者u通过另外一个顶点连着v,我们定义H2H^2H2为包含(u,v)的图,这里对这个边没有定义长度,通常这样的图中的边是没有长度的。
比如上图的平方:

开始证明

dom(H)的下限(HHH的支配集&&H2H^2H2的独立集)

给定图H,III是H2H^2H2的独立集,有∣I∣≤dom(H)|I|≤dom(H)∣I∣≤dom(H)。
dom(H)dom(H)dom(H)是图H中最小支配集的顶点数,我们这里可以假设D是图H中的最小支配集。有两个概念需要解释一下:star、clique

  • 这里有个star的概念,就是每个支配顶点以及被它支配的顶点、支配边共同形成的图,其实是一个二分图,K1,pK_{1,p}K1,p​,一个支配顶点,对应着p个被支配的顶点,p≥1。如下图,这是一个star,对于支配顶点A的star,支配集有几个顶点,就有几个star。即,我们假设支配集为D,那么star的个数为|D|。(比如图H中的最小支配集为<A,D>)
  • 还有一个概念clique,网上翻译成“团”,在我们这里是完全子图的意思。对照着上面的顶点(即图H中的一个star),我们也可以画出clique的图:(可以看出是一个完全子图,因为star中的每个被支配顶点之间都可以通过支配顶点连在一起,如B、C通过A连在一起。)

    现在有一个显而易见的事情,在图H中最小支配集D的任意一个star,在图H2H^2H2中都是一个clique,所以图H2H^2H2中有|D|个clique。

分析:那么然后,我们回到证明本身。我们要证明的内容是:“给定图H,III是H2H^2H2的独立集,有∣I∣≤dom(H)|I|≤dom(H)∣I∣≤dom(H)。” 图H2H^2H2中的独立集的大小≤图H中的最小支配集的大小,就是说我们可以找到任意图的最小支配集的下限,就是用它的平方的独立集的大小来表示。图H中的最小支配集的大小,是|D|。我们现在要证图H2H^2H2中的独立集III的大小≤|D|。所以我们要先找到图H2H^2H2中的独立集III。

从图H2H^2H2的clique中找独立集III:独立集我们知道,就是这个集合中任意两个顶点不相邻。那么对于一个clique,完全子图来说,每个顶点都彼此相邻,只会存在最多一个顶点属于图H的独立集(0个的情况是,这个子图的顶点与其他子图的顶点相邻,我们取了其他子图的顶点就不再取)。

计算独立集III的大小:我们已经知道,图H2H^2H2中有|D|个clique,那么从每个clique中拿出最多一个顶点,形成独立集,可以说明独立集的大小最多只有|D|。即可证给定图H,III是H2H^2H2的独立集,有∣I∣≤dom(H)|I|≤dom(H)∣I∣≤dom(H)。

得到结论:对于任意一个图H,最小支配集大小的下限是该图平方H2H^2H2的任意一个独立集大小。

算法

思路

  • k-center转化为支配集问题:我们之前已经分析过,k-center问题可以转化为:找最小的索引i成为i∗i^*i∗,使得Gi∗G_{i^*}Gi∗​有一个size≤k的支配集。OPT=cost(ei∗)cost(e_{i^*})cost(ei∗​)。(ei∗e_{i^*}ei∗​在{ei1e_{i^1}ei1​、ei2e_{i^2}ei2​、ei3e_{i^3}ei3​……ei∗e_{i^*}ei∗​}中就是“最大的”“最小距离”,然后我们找最小的索引,就相当于“最小的”“最大的”“最小距离”。)

  • OPT下限:如第1章所说,我们通常的套路就是,因为算不出来OPT,没法算近似比=近似解/OPT;我们就先算OPT的下限,OPT≥a,然后近似解≤a·c,(c为常数),然后呢就有近似解≤c·a≤c·OPT,近似解/OPT≤c。所以这里证明的就是套路中的第一步:先算OPT的下限,即cost(ei∗)cost(e_{i^*})cost(ei∗​)的下限。

  • 计算OPT下限:因为我们按照边的大小给边排序索引,那么我们需要找一个合适的j,满足j<i∗j<i^*j<i∗,这样就有cost(ej)<cost(ei∗)cost(e_j)<cost(e_{i^*})cost(ej​)<cost(ei∗​)啦。

  • 找合适的下限索引j:因为我们之前已经证明:图H最小支配集大小下限是图H2H^2H2任意独立集大小,即∣I∣≤dom(H)|I|≤dom(H)∣I∣≤dom(H)。也就是说,图H中的|最小支配集|≥图H2H^2H2的|最大独立集|。即我们可以用图平方上的独立集问题来考虑找到合适的j

算法内容

1.构造G12G^{2}_{1}G12​,G22G^{2}_{2}G22​,…,Gm2G^{2}_{m}Gm2​。
2.在每个图Gi2G^{2}_{i}Gi2​中计算最大独立集MiM_iMi​。
3.找到最小索引i,使∣Mi∣≤k|M_i|≤k∣Mi​∣≤k,此时,j=ij=ij=i。
4.返回MjM_jMj​。

OPT下限定理:对应我们定义的j,cost(ej)≤OPT.cost(e_j)≤OPT.cost(ej​)≤OPT.
证明:这里证明的就是套路中的第一步:先算OPT的下限

  • 我们在图H中找最小的索引i成为i∗i^*i∗,使得Gi∗G_{i^*}Gi∗​有一个size≤k的支配集,OPT=cost(ei∗)cost(e_{i^*})cost(ei∗​),我们要证的就是j≤i∗j≤i^*j≤i∗。
  • j是对于每个图Gi2G^{2}_{i}Gi2​中最大独立集MiM_iMi​,满足∣Mi∣≤k|M_i|≤k∣Mi​∣≤k的最小索引。i∗i^*i∗是使得图Gi∗G_{i^*}Gi∗​有一个size≤k的支配集的最小索引。 也就是说,我们要证,|图平方最大独立集|≤|图最小支配集|。
  • 我们之前的定理已经推出:图H的最小支配集dom(H)≥I,I是图H2H^2H2中的任意一个独立集,当然也包括最大独立集。定理可证。

直观分析

  • 图HHH和图H2H^2H2,很明显地,图H2H^2H2的边更多。
  • 如果要求支配集的大小,很显然是在图H2H^2H2中的支配集|D’|≤图HHH中的支配集|D|。如果要求最大独立集的大小,也很显然是在图H2H^2H2中的最大独立集|I’|≤图HHH中的最大独立集|I|。而且之前我们有证过,一个图的最大独立集也是这个图的支配集,也符合以上的想法。
  • 然后呢,我们之前证过一个定理,图H的最小支配集dom(H)≥I,I是图H2H^2H2中的一个独立集。也就是说,图H2H^2H2中的最大独立集|I’|≤图H的最小支配集dom(H)。我们找到的j就是对应着图H2H^2H2中的最大独立集|I’|,i∗i^*i∗就是对应着图H的最小支配集dom(H),所以j≤i∗j≤i^*j≤i∗。

近似比

该近似算法可以算出OPT下限,那么就胜利在望了!现在再找个常数,和下限相乘,如果是我们的近似解就没问题啦~

此近似算法的近似比为2,即近似解/最优解≤2近似解/最优解≤2近似解/最优解≤2。
证明

  • 因为我们之前已经证过:最大独立集也是支配集。那么我们找到的图H2H^2H2中的最大独立集I′I'I′也是支配集D′D'D′,也有∣D′∣|D'|∣D′∣个star。即我们找出来的j,对应的Gj2G^2_jGj2​上的最大独立集MjM_jMj​,也是相应的支配顶点。
  • 因为我们找到的eje_jej​是MjM_jMj​中最长的边,所有在MjM_jMj​中该star的边cost(ei)≤cost(ej)cost(e_i)≤cost(e_j)cost(ei​)≤cost(ej​),根据三角不等式,我们可知所有在MjM_jMj​中的边cost(ei)≤2⋅cost(ej)cost(e_i)≤2·cost(e_j)cost(ei​)≤2⋅cost(ej​)。
  • 又因为我们之前证过cost(ej)≤OPTcost(e_j)≤OPTcost(ej​)≤OPT,所以有cost(ei)≤2⋅cost(ej)≤2⋅OPTcost(e_i)≤2·cost(e_j)≤2·OPTcost(ei​)≤2⋅cost(ej​)≤2⋅OPT。

近似比最优证明

即我们要证明对于k-center问题,不存在近似因子2−ε, ε>0。

创新实训个人记录:metric k-center相关推荐

  1. 创新实训个人记录:approximation factor, maximum matchingvertex cover

    创新实训个人记录:approximation factor, maximum matching&&vertex cover approximation factor(近似比) maxi ...

  2. 创新实训个人记录:P versus NP

    创新实训个人记录:P versus NP computation&&computable&& computational efficiency 一些符号 decision ...

  3. 创新实训团队记录:为BR-MTC问题设计一个近似算法

    创新实训团队记录 : 为BR-MTC问题设计近似算法 阅读书籍和论文 近似算法设计思路变化总结 算法框架 改变初始顶点集 继续添加路径,作为新的初始顶点集 程序验证 近似解与最优解存在差距&& ...

  4. 创新实训个人记录 : 个人工作总结

    创新实训个人记录 : 个人工作总结 分条目.分进度总结个人工作 阅读书籍(6.8-6.18) 近似算法设计(6.19-6.27) 程序验证(6.28-7.1) 工作难点 接触近似算法领域,学习新知识 ...

  5. 创新实训工作记录2018-5-31

    我们拍摄了第五集剧本,地点包括教学楼和宿舍,并且我使用pr完成初步的剪辑合成.

  6. 山东大学软件学院项目实训-创新实训-SDUMeeting(一)

    山东大学软件学院项目实训-创新实训-SDUMeeting(一) 一.前言: 这个项目是山东大学视频会议项目,这个项目基于webrtc构建多人视频会议系统,我负责视频会议客户端及服务端安全防护,这个专栏 ...

  7. 山东大学软件学院项目实训-创新实训-SDUMeeting(三)

    山东大学软件学院项目实训-创新实训-SDUMeeting(三) 山大会议项目web安全之文件注入防护 一.前言 山大会议的客户端加入了对用户自定义头像的支持,需要用户自行上传头像图片,这个过程存在文件 ...

  8. 山东大学软件学院项目实训-创新实训-SDUMeeting(六)

    山东大学软件学院项目实训-创新实训-SDUMeeting(六) 端对端加密与密钥交换 端到端加密(end-to-end),是一种只有参与通讯的用户可以读取信息的通信系统.它可以防止潜在的窃听者--包括 ...

  9. LInux 实训二记录

    > 有些有重复的,本人菜鸟一枚,有错的望海涵 2022-3-23 实训二记录 1.新建一个用户user,密码设为123456,并将其加到root组. 新建用户:sudo adduser 用户名 ...

最新文章

  1. C#中new和override区别
  2. 设计模式--抽象工厂(Abstract Factory)模式
  3. 走进AngularJs(六) 服务
  4. 停车场事故频频,AI 达人将摄像头变身安全卫士
  5. 《软件需求分析(第二版)》第 17 章——需求管理工具 重点部分总结
  6. cocos2dx游戏开发——捕鱼达人mini版学习笔记(一)——FishAchor的搭建
  7. python干嘛用的-学 Python 都用来干嘛的?
  8. recyclerview 横向卡片效果_UI设计中卡片式应如何设计
  9. [Swift] 成语我抖Wordle成语猜谜游戏
  10. centos php ioncube_如何在CentOS 7云服务器上安装ionCube?
  11. VTK学习笔记(三十四)VTK简介
  12. 5G适合py还是java,5G比4G到底有啥好处?看完就彻底明白了
  13. 计算机目标作文,人生的目标作文(精选5篇)
  14. idea 导入的模块 右下角没有蓝色方块
  15. python未来怎么样至少现在很开心_Python的未来解析
  16. 银河麒麟/ubuntu 下安装/卸载软件包命令大全
  17. 蓝桥杯练习系统之基础训练Java版(2-26)—— 报时助手
  18. 日常英语口语收集汇总
  19. 离线安装ruby、rubygems
  20. MOTO sbf文件 打包 封包 修改

热门文章

  1. 汽车故障检测软件_汽车没故障,定期保养,为啥尾气检测通不过?老司机说出关键...
  2. android四大组件 简书,android四大组件
  3. 什么?这个机房没人了?
  4. PDU是如何帮助机房安然度夏?如何选择PDU电源配套机柜?
  5. 5图片展示_跃进小型宣传车价格 图片 配置
  6. ML之FE:基于load_mock_customer数据集(模拟客户,单个DataFrame)利用featuretools工具实现自动特征生成/特征衍生
  7. Python之Pandas:利用pandas实现行数据添加,即将字典格式的数据,按照行数据,从头开始循环添加到dataframe中
  8. ML之kNNC:基于iris莺尾花数据集(PCA处理+三维散点图可视化)利用kNN算法实现分类预测
  9. DL之VGG16:基于VGG16(Keras)利用Knifey-Spoony数据集对网络架构FineTuning
  10. CV之NS:图像风格迁移(Neural Style 图像风格变换)算法简介、过程思路、关键步骤配图、案例应用之详细攻略