zoukankan      html  css  js  c++  java
  • 集合覆盖 顶点覆盖: set cover和vertex cover

    这里将讲解一下npc问题中set cover和vertex cover分别是什么。

    set cover:

    问题定义:

      实例:现在有一个集合A,其中包含了m个元素(注意,集合是无序的,并且包含的元素也是不相同的),现在n个集合,分别为B1、B2、...、Bn。并且这n个集合的并集恰好等于A集合,即:B1UB2UB3U...UBn=A。

      问题:是否存在B集合的最小子集,且他们的并集也等于A集合?

      例子:集合A={1,2,3,4,5},集合B={{1,2,3},{2,4},{3,4},{4,5}}。可以看出,B集合的并集恰好等于A集合,那么问题的解是:SETCOVER={{1,2,3},{4,5}}。

    vertex cover:

    问题定义:

      实例:图G=(V,E)。

      问题:是否存在V的子集V',使得|V'|<=|V|,并且G中的每条边e,至少有一个顶点在V'中?

    这个问题有一个npo(np optimization problem)的变种,即:找到满足条件的最小顶点集,也就是使得满足条件下最小|V'|值。

    首先可以看出,这是两类完全不同的问题,set cover属于集合一类问题,应用于计算机科学以及计算理论方面。vertex cover,属于图论一类问题,应用于计算机科学、计算理论、图论、数学等等方面。

  • 相关阅读:
    bzoj3280
    bzoj3876
    洛谷 p1625
    bzoj1407
    bzoj1227
    bzoj1477 && exgcd学习笔记
    bzoj1345
    c#程序的config文件问题
    思维角度的重要性
    python异步初步窥探
  • 原文地址:https://www.cnblogs.com/sddai/p/6036104.html
Copyright © 2011-2022 走看看