用于枚举逆区间图中的最大团的 Bron-Kerbosch 算法的替代方案

计算科学 计算生物学 算法
2021-11-26 17:06:32

我经常使用逆区间图来表示基因组序列中的生物学相关特征。例如,给定一个(相对)小的基因组区域,该图将包含该区域中每个基因的一个节点,如果相应的基因重叠(区间图的补集),则两个节点之间将存在一条边。

我最近实现了一个程序,该程序使用 Bron-Kerbosch 算法来列出对应于小基因组区域的逆区间图的所有最大团。这个算法具有指数级的复杂性,但我一开始并不担心,因为我没想到在给定区域中会出现多个基因。但是,此后我在数据中遇到了一些 Bron-Kerbosch 算法无法在合理的时间或空间内处理的情况。

这篇 Wikipedia 文章提到了 Bron-Kerbosch 算法的几种替代方案,只要团的数量是多项式有界的,它们就具有多项式复杂度。我已经开始研究Chiba & Nishizeki 的算法作为一种可能的替代方案,但公式非常密集。在我花太多时间研究这个之前,我想问两个问题。

  1. 首先,由于我的图是逆区间图而不是区间图,我真的可以用这些替代算法保证多项式运行时间吗?
  2. 其次,假设我确实想实现这些替代算法之一,它们中是否有可用的参考实现?我不希望参考实现可以开箱即用地解决我的问题,但是在尝试为我的程序调整算法时它会非常有帮助。
1个回答

这个问题已经两个月了,但无论如何我都会添加信息。

  1. Chiba & Nishizeki 的算法适用于任意图,因此可以保证任何类型的图的复杂性。本文暗示,与 Bron-Kerbosch 算法的修改和优化版本相比,Chiba & Nishizeki 的算法实际上表现相当差。当然,这可能是因为他们的实施很差或他们使用的数据集。

  2. 论文通常是参考实现,我不知道有什么好的库,我通常是一个手工编码类型的人。

如果考虑到某个图中的最大独立集,则它是互补图中的最大集团。您可以改为在区间图上实现最大独立集枚举。DS Johnson 的“关于生成所有最大独立集”对他的多项式延迟算法有一个很好而清晰的解释。

co-intervalco-chordalcomparability,您也许可以利用您正在使用的comparability图形。如果您不需要枚举最大团并且只需要一个实例(我对基因组序列一无所知),那么存在有效的最大权重团算法(第 5 章第 7 节)comparability图表。