Algorithm 具有相关顶点代价的二部选择

Algorithm 具有相关顶点代价的二部选择,algorithm,graph,bipartite,Algorithm,Graph,Bipartite,我想我正在寻找一种算法,可以在二部图中找到“最小”选择。每个顶点都有一个选择它的相关(整数)代价。我只能找到最小化所选集合中顶点数量的算法,而不是成本。我以前以为我需要一个“匹配”,但实际上我只需要覆盖每一条边的顶点子集 我认为贪婪的解决方案行不通。假设我们的集合是A,B: 顶点1、2、3位于A中,成本为1。 顶点4位于B中,成本为2 解决方案是删除最昂贵的顶点4。基于成本的贪婪解决方案将失败。类似地,如果B的成本为10,我们就不能贪婪地选择最连通的顶点 我想到了一个不同的措辞:“给定一个二部图

我想我正在寻找一种算法,可以在二部图中找到“最小”选择。每个顶点都有一个选择它的相关(整数)代价。我只能找到最小化所选集合中顶点数量的算法,而不是成本。我以前以为我需要一个“匹配”,但实际上我只需要覆盖每一条边的顶点子集

我认为贪婪的解决方案行不通。假设我们的集合是A,B:

顶点1、2、3位于A中,成本为1。 顶点4位于B中,成本为2

解决方案是删除最昂贵的顶点4。基于成本的贪婪解决方案将失败。类似地,如果B的成本为10,我们就不能贪婪地选择最连通的顶点

我想到了一个不同的措辞:“给定一个二部图,其中每个顶点都有一个相关的代价,找到一个最小代价的顶点子集,这样每个边都至少关联到所选子集中的一个顶点上。”

Primal LP:

min sum_v c_v x_v
s.t.
forall e=vw. x_v + x_w >= 1
forall v. x_v >= 0
双LP:

max sum_e y_e
s.t.
forall v. sum_{e=vw} y_e <= c_v
forall e. y_e >= 0
max sum\u e y\u e
s、 t。
福尔五世。和{e=vw}y_e=0
  • 找到一个最小切割,其中边是从a到B的具有无限容量的弧,a中的顶点是源,B中的顶点是汇,所有顶点的容量等于其成本。(等效地,生成一个从a到a的弧的超源和一个从B到a的弧的超链接。)

  • 以切割“汇”侧的As和“源”侧的Bs为例。每个边缘vw都被覆盖,因为如果v和w都不属于覆盖层,那么vw将是剩余的

  • 我想对JenőEgerváry说,“相当于min cut”是我需要的关键!谢谢