经验证有如下的迭代成立:
f(0) = 1
f(1) = 3
f(2) = 8
f(3) = 22
f(4) = 60
……
f(n) = 2*f(n-1) + 2*f(n-2)
下面看早早的证明:
设:g(n)为不包含点An的独立集数目
h(n)为包含点An的独立集数目
f(n)为所有独立集数,f(n)=g(n)+h(n)
1、当不包含An时,有两种情况:包含Bn、不含Bn
这两种情况是一样的,不影响左面的点的取法
即:g(n) = 2*f(n-1)
此时问题等价于:左面的图中不包含An-1的取法 所以,综合上述两条, f(n) = g(n) + h(n) = 2*f(n-1) + 2*f(n-2) 即广义Fibonacci数列的应用。 感谢早早。 ----------------------------
2、当包含An时,不能取An-1和Bn
即:h(n) = g(n-1) = 2*f(n-2)
笔者在归纳n=3时,按n的取值,结合集合的势归类整理归纳,发现最右上的点,和最右下的点在关于其他点独立时,有一种关系,即有一定的等价关系。(我用具体的实例来观察规律,这里用较为复杂易见的n=3的归纳来找规律):
f(1)=3: 空集,{1},{2}
f(2)=8:空集,{1},{2},{3},{4},{1,4},{2,3},{2,4}
f(3)=22的情况分两种,如下a.含6去5;b.含5去6:
当含点6时不能含点5,则保留点6, 去掉点5:
有集合2f(2)=16个:
{6}, 空集,{1},{2},{3},{4}, {1,4},{2,3},{2,4}
{1,6},{2,6},{3,6},{4,6} {1,4,6}{2,3,6}{2,4,6}
(其中 色部分为f(2)的情况的枚举)
当包含点5时不能含6,则保留点5,去掉点6:
有集合:2f(1)=6个:
{5},空集, {1}, {2}
{1,5},{2,5}
(其中 色部分为f(1)情况的枚举)
故f(3)=2f(1)+2f(2)=22
下面看CD超的抽象验证:
--------------------------------------
再来看codediging超的图示,如下(圈代表 In 的全部独立集):
感谢Codediging超