我想用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 <