用于发现派系的 Bron-Kerbosch 算法
谁能告诉我,在网上哪里可以找到用于派系查找的 Bron-Kerbosch 算法的解释或在这里解释它是如何工作的?
我知道它发表在“算法 457:查找无向图的所有派系”一书中,但我找不到描述该算法的免费源代码。
我不需要该算法的源代码,我需要它如何工作的解释。
Can anyone tell me, where on the web I can find an explanation for Bron-Kerbosch algorithm for clique finding or explain here how it works?
I know it was published in "Algorithm 457: finding all cliques of an undirected graph" book, but I can't find free source that will describe the algorithm.
I don't need a source code for the algorithm, I need an explanation of how it works.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(7)
我在这里找到该算法的解释: http://www.dfki .de/~neumann/ie-seminar/presentations/finding_cliques.pdf
这是一个很好的解释...但我需要一个 C# 库或实现 -.-'
i find the explanation of the algorithm here: http://www.dfki.de/~neumann/ie-seminar/presentations/finding_cliques.pdf
it's a good explanation... but i need a library or implementation in C# -.-'
尝试寻找拥有 ACM 学生帐户的人,他可以为您提供论文副本,如下:http://portal.acm.org/itation.cfm?doid=362342.362367
我刚刚下载了它,它只有两页长,在 Algol 60 中实现了!
Try finding someone with an ACM student account who can give you a copy of the paper, which is here: http://portal.acm.org/citation.cfm?doid=362342.362367
I just downloaded it, and it's only two pages long, with an implementation in Algol 60!
这里有算法我已经用Java重写了它链表作为集合 R,P,X 并且它可以工作
就像一个魅力(好的事情是在根据算法进行集合操作时使用函数“retainAll”)。
我建议你在重写算法时考虑一下实现,因为优化问题
There is the algorithm right here I have rewritten it using Java linkedlists as the sets R,P,X and it works
like a charm (o good thing is to use the function "retainAll" when doing set operations according to the algorithm).
I suggest you think a little about the implementation because of the optimization issues when rewriting the algorithm
我还试图了解 Bron-Kerbosch 算法,所以我用 python 编写了自己的实现。 它包括一个测试用例和一些评论。 希望这可以帮助。
I was also trying to wrap my head around the Bron-Kerbosch algorithm, so I wrote my own implementation in python. It includes a test case and some comments. Hope this helps.
对于它的价值,我找到了一个Java实现: http://joelib.cvs.sourceforge.net/joelib/joelib2/src/joelib2/algo/clique/BronKerbosch.java?view=markup
HTH。
For what it is worth, I found a Java implementation: http://joelib.cvs.sourceforge.net/joelib/joelib2/src/joelib2/algo/clique/BronKerbosch.java?view=markup
HTH.
我已经实现了论文中指定的两个版本。 我了解到,未优化的版本如果递归求解,将有助于理解算法。
这是版本 1 的 python 实现(未优化):
您调用此函数:
变量
cliques
将包含找到的 cliques。一旦理解了这一点,实施优化的方案就很容易了。
I have implemented both versions specified in the paper. I learned that, the unoptimized version, if solved recursively helps a lot to understand the algorithm.
Here is python implementation for version 1 (unoptimized):
And you invoke this function:
The variable
cliques
will contain cliques found.Once you understand this it's easy to implement optimized one.
Boost::Graph 具有 Bron-Kerbosh 算法的出色实现,请检查一下。
Boost::Graph has an excellent implementation of Bron-Kerbosh algorithm, give it a check.