Graph 为什么一个有n个顶点的图有2^n-2个割?

Graph 为什么一个有n个顶点的图有2^n-2个割?,graph,Graph,为什么一个有n个顶点的图有2^n-2个割?我搞不懂这个。有4个顶点,我就不能得到14个切割。我最多可以剪12刀?我错过了什么 通过切割,我的意思是V被分成两对非空的顶点列表-A和B。你的最后一句话说了它-切割只是将顶点集划分为两个集合,两个集合都不是空的 因此,要定义一个特定的割,你只需要取V的子集,它定义了a,也定义了B,它的补码 V的子集数,其中| V |=n是V的幂集的基数,2^n。但是你必须减去两个格,因为A不能为空,也不能等于V,因为这样B就为空了。因此2^n-2。我认为这是相当明显的

为什么一个有n个顶点的图有2^n-2个割?我搞不懂这个。有4个顶点,我就不能得到14个切割。我最多可以剪12刀?我错过了什么


通过切割,我的意思是V被分成两对非空的顶点列表-A和B。

你的最后一句话说了它-切割只是将顶点集划分为两个集合,两个集合都不是空的

因此,要定义一个特定的割,你只需要取V的子集,它定义了a,也定义了B,它的补码


V的子集数,其中| V |=n是V的幂集的基数,2^n。但是你必须减去两个格,因为A不能为空,也不能等于V,因为这样B就为空了。因此2^n-2。

我认为这是相当明显的:

  • 每个顶点可以位于集合A或集合B中
  • 我们有n个顶点
  • n个顶点上的两种可能导致2^n个置换
  • 删除所有顶点都位于A或B中的ONCE
  • 这给了我们2^n-2
或者把它想象成一张真理表
a
表示顶点在集合a中,
b
表示顶点在集合b中

Vertices
1 2 3 4
a a a a
a a a b
a a b a
a a b b
a b a a
a b a b
a b b a
a b b b
b a a a
b a a b
b a b a
b a b b
b b a a
b b a b
b b b a
b b b b

如果我们删除
a
b
集合,我们只剩下所需的14…

一个简单的合理化方法,以及枚举切割,就是为每个节点分配一个二进制数字。0表示它在集合A中,1表示它在集合B中。然后简单地递增,忽略0和2^n-1的情况,留下2^n-2个切割。对于顶点为P,Q,R,S的4顶点图:

PQRS
0000 A : { P,Q,R,S } B : {} // ignore, B is empty
0001 A : { P,Q,R } B : { S }
0010 A : { P,Q,S } B : { R }
0011 A : { P,Q } B : { R,S }
0100 A : { P,R,S } B : { Q }
0101 A : { P,R } B : { Q,S }
0110 A : { P,S } B : { Q,R }
0111 A : { P } B : { Q,R,S }
1000 A : { Q,R,S } B : { P }
1001 A : { Q,R }, B : { P,S } 
1010 A : { Q,S } B : { P,R }
1011 A : { Q } B : { P,R,S }
1100 A : { R,S } B : { P,Q }
1101 A : { R } B : { P,Q,S }
1110 A : { S } B : { P,Q,R }
1111 A : {} B : { P,Q,R,S } // ignore, A empty

这就剩下14,2^4-2了。

切割意味着顶点要么在A集中,要么在B集中

因为两个集合都必须是非空的,所以以下是唯一的可能性

1,(n-1)=>这意味着集合A中有1个顶点,集合B中有(n-1)。从n=nC1中选择1的方法不多

2,(n-2)==>集合A中的2个顶点和集合B中的(n-2)。从n=nC2中选择2个顶点的方法数

3,(n-3)=>集合A中的3个顶点和集合B中的(n-3)。从n=nC3中选择3个顶点的方法数

(n-1),1==>(n-1)集合A中的顶点和集合B中的顶点。从n=nCn-1中选择n-1的方法数

因此,削减的总数为:

nC1 + nC2 + nC3 + ..... nCn-1 = 2^(n)-2

起初,我在计算4个顶点(正方形)的切割数时遇到了类似的问题


记住,你们可以按正方形的对角线来切割。这将为您提供缺少的2。

谢谢。是的,我了解概率部分,我特别想知道如何得到4顶点图的14个割。对,我现在明白了。实际上,这是理论上的最大值,实际的切割数量可能会更少,这取决于图形的结构,不是吗?我拿了一个正方形和它的对角线,并且只能得到12。因此这个查询。不,图形中总是有2^n-2个切割。不要被图形的视觉排列所欺骗,例如,限制在一个平面上的切割。基于可视化,我对具有4个顶点的图形的初始计数是6。但在考虑了你的答案后,我又回到过去,意识到我只是在看直线切割。但是切割不可能总是一条直线,但是你要计算所有切割两次。S/T和T/S是一样的。@vcardillo:是的,如果我们这样想的话,你是对的。但定义是两个不相交集合中的顶点。这属于数学堆栈交换,而不是用于编程的堆栈溢出,我不认为。