Loading

最大密度子图

最大密度子图

参考

胡伯涛论文

博客总结

无向图 \(G(V,E)\) 的密度 \(D = \dfrac {|E|} {|V|}\)

若选择了边 \((u,v)\) 则必须有 \(u \in V , v \in V\)

最大密度子图

具有最大密度的子图,最大化 \(D' = \dfrac {|E'|} {|V'|}\)

根据之前的分数规划

可以二分答案

并且有如下引理

  • 任意两个子图的密度差 \(\ge \dfrac 1{n^2}\)

\(\dfrac {m_1}{n_1} - \dfrac {m_2}{n_2} = \dfrac {m_1n_2 - m_2n_1} {n_1n_2} \ge \dfrac 1 {n_1n_2} \ge \dfrac 1 {n^2}\)

现在的主要问题是如何 \(Judge\)

设要检验的值为 \(g\) , 构造函数 $f = |E| - g|V| $ , 现在的目标是使得 \(f\) 最大

有两种方法

1. 最大权闭合子图

目标:

最大化 \(f = |E| - g|V|\)

把无向边 \((u,v)\) 看做一个点连接两条有向边指向 \(u\)\(v\) 原图的点权值设为 \(-g\)

边的点为 \(1\) ,这样就转成了最大权闭合子图的问题

2.优化算法(诱导子图最小割)

对于点集 \(V'\) , 显然能选的边要尽可能的都选上

所有能选的边为 \(V'\) 中点的度的和减去割 \([V',\overline{V'}]\) 的容量的一半

\[|E'| = \dfrac {\sum_{v\in V'}deg(v) -c[V',\overline{V'}]}2 \]

\[f = \dfrac 12\big(\sum_{v\in V'}deg(v)-c[V',\overline{V'}] - 2\sum_{v \in V'}g\big) \\ = \dfrac 12\big(\sum_{v\in V'}(deg(v)-2g)-c[V',\overline{V'}] \big) \]

按如下建图, \(U\) 是一个大常数,保证边权不是负数

\([S,T]\) , \(S = {s} + V'\) ,\(T = {t} + \overline{V'}\)

割的容量 \(c[S,T]\) 有四个部分

\(s\to t\)\(0\)

\(s \to \overline{V'}\) : \(\sum_{v \in \overline{V'}}U\)

\(V' \to \overline{V'}\) : 其实就是 \(c[V',\overline{V'}]\)

\(V' \to t\)\(\sum_{v\in V'}U+2g-d_v\)

\[c[S,T] = c[V',\overline{V'}] + Un + \sum_{v \in V'}2g-d_v = Un -2f \]

所以最大化 \(f\) 即最小化 \(c[S,T]\) ,求最小割就可以了

posted @ 2020-10-27 12:03  —O0oO-  阅读(750)  评论(0编辑  收藏  举报