Algorithm 给定一个无向图G=(V,E),确定G是否是一个完全图
我很确定这个问题是p而不是NP,但我很难想出一个多项式界算法来解决它 您可以:Algorithm 给定一个无向图G=(V,E),确定G是否是一个完全图,algorithm,graph,np,Algorithm,Graph,Np,我很确定这个问题是p而不是NP,但我很难想出一个多项式界算法来解决它 您可以: 检查图形中的边数是否为n(n-1)/2 检查每个顶点是否连接到exacltyn-1不同的顶点 这将在多项式形式的O(V²)中运行 希望有帮助。这里有一个O(E)算法: 使用O(E)作为输入时间,扫描图形 同时,记录每个顶点p的度数,仅当相邻点不是p本身(自连接边)并且不是顶点q,其中p和q已经计算了另一条边(多条边),这些检查可以在O(1)中完成 检查所有顶点的阶数是否为| V |-1,此步骤为O(V),如果是,则它
n(n-1)/2
n-1
不同的顶点O(V²)
中运行
希望有帮助。这里有一个O(E)算法:
bitvec
为长度为| V | 2的位向量,初始化为0
对于每个边(i,j),将bitvec[f(i,j)]
=1
G是完全图当且仅当bitvec
==1的每个元素
这个算法不仅只涉及E一次,而且如果你有一个分散指令,它也完全可以矢量化。这也意味着并行化很简单。对于给定的图G=(V,E),检查V中的每一对u,V,看看边(u,V)是否在E中。
u、v对的总数为| v |*(|v |-1)/2。因此,时间复杂度为O(|V | ^2),您可以检查图形是否完整。p中的所有问题也都是NP。你的意思是“是P而不是NP完全的”(或“不是NP难的”)。你到底被困在哪里?你有不是P的算法吗?或者你不能证明的是P?还是停留在定义上?你必须对你的符号更加迂腐。它不会在O(V^2)中运行,因为您甚至没有描述
V
与n
的关系。