小编sco*_*rus的帖子

C#实现了Bron-Kerbosch算法

我试图在图论中编写Bron-Kerbosch算法的C#实现,用于在图中找到最大尺寸的派系.

理想情况下,此算法将生成一个图表列表,其中每个图表将表示来自初始输入图表的最大集团.我的代码没有产生预期的结果,我希望能够编写更好的代码来实现这个实现.

此实例中使用的图类是基于图的邻接列表表示的自定义类.

public class BronKerbosch
{
    public List<Graph<Person>> Run(Graph<Person> R, Graph<Person> P, Graph<Person> X, List<Graph<Person>> maximalCliques)
    {
        // if P and X are both empty, and the size of R is greater than 1 (implies clique):
        if (!P.Nodes.Any() && !X.Nodes.Any() && R.Nodes.Count() > 1)
            // report R as a maximal clique
            maximalCliques.Add(R);

        else
        {
            // Copy P's nodes for traversal
            List<GraphNode<Person>> nodesCopy = P.Nodes.ToList();

            // For each node v in P:
            foreach (GraphNode<Person> v in nodesCopy)
            { …
Run Code Online (Sandbox Code Playgroud)

.net c# algorithm graph graph-algorithm

7
推荐指数
1
解决办法
1450
查看次数

标签 统计

.net ×1

algorithm ×1

c# ×1

graph ×1

graph-algorithm ×1