使用Kuratowski定理检查图的平面性 - C#

时间:2015-10-11 05:45:40

标签: c# graph graph-theory

我想用Kuratowski定理检查图的平面性。

我到目前为止的想法是,最好的方法是将输入图的邻接矩阵与K5和K3,3邻接矩阵进行比较:

public int kuratowskiAut(Grafo g)
    {
        int[,] matrix = new int[g.n.Count, g.n.Count];
        matrix = g.matrizAdyacencia;
        int count1 = 0;
        int count2 = 0;

        /*compare the two matrices
          for(int i = 0; i < g.n.Count; i++)
          {
                for(int j = 0; i < g.n.Count; j++)
                {
                    if(matrix[i, j] == adjK5[i, j])  // comparing to K 5
                    {
                        count1++;
                    }
                }
          }

          if(count1 == 25)
          {
                return 1; // Is non-planar
          }
          else
          {
                for(int i = 0; i < g.n.Count; i++)
                {
                    for(int j = 0; j < g.n.Count; j++)
                    {
                        if(matrix[i,j] == adjK33[i,j]) //Comparing to K 3,3
                        {
                            count2++;
                        }
                    }
                }

                if(count2 == 36)
                {
                    return 1; // Is non-planar
                }
                else
                {
                    return 0; // Is planar
                }
          }
        */
        return 0;
    }

另外,我知道检查图形是否是非平面的一种方法是我需要“转换”输入图形执行一系列操作,包括:删除节点之间的链接,将两个节点合并为一个或插入新的两个节点之间的节点。

有没有办法可以做到这一点?或者有一种更好的方法来检查图形是否是非平面的这个定理?

任何帮助都应该是一种pre <

0 个答案:

没有答案