BFS 的数学分析(二)
by Amamiya Fuko
没落灯火随夜逝,孤灼一捻对穹星
引言
FUKO⭐️ 参上desu这篇博客会试着介绍一些特殊的性质与它们的证明(当然,可能还有很多性质没有被介绍,这是由于我本人的局限性所致,毕竟我数学实在是不好)。
目录
- 引入
- 邻接矩阵的幂的特殊性质
- 最短路径之间的关系
引入
这里是引入,为了防止你对基础知识一点都不了解就被后面的内容劝退,所以会介绍一些基本的知识。这里的引入部分是在续写上一篇博客的引入部分(其实上一篇博客只写了引入),所以你可以去看看上一篇博客《BFS的数学分析(一)》。然后第一部分的博客是个小故事,不想看的话可以点击跳转到干货部分。
邻接矩阵的幂的特殊性质
在很久很久以前,有一个住在森林旁边的家族,他们的老祖母G领导着这个家族,事实上如果失去了她,整个家族也都就无法维系了。起初家族的成员们在森林的边缘奋力地开垦,劳作,彼此之间也谦让友爱,可是随着家族的繁盛,他们之间的矛盾也越发多了起来,而每每争论发生的时候,他们就会请老祖母来裁决是非,可是最近老祖母生了一场重病,人们有了矛盾也只能私下解决,可是这往往很难公道,比如说今天一个拉着他的朋友们硬要别一个人给他一个说法,明天别一个人又要拉着他的朋友们去找回场子,以至于愈演愈烈,整个家族也都要因为这些矛盾分崩离析了。
这时我们的主角,老祖母的小孙子,邻接矩阵A决定去找森林里的女巫帮忙治好老祖母的病,以拯救整个家族。相传森林里的女巫有着神奇的力量,可以化腐朽为神奇,是世界上最有聪明的人,当她在大陆上游历的时候,曾经解决了古圣贤留下的地图涂色问题,又曾治好过国王的怪病,想必凭借她的力量一定可以治好老祖母的病。
邻接矩阵下定决心,很快收拾好行李,准备进入森林寻找女巫,他的兄弟问他“你难道不知道森林的危险么,没有人可以找得到她,也许她早就死在森林里头了”,邻接矩阵回道“那就教我也死在里头吧,老祖母死了,你们便高高兴兴地分家”。于是邻接矩阵就进入了森林。
森林占地甚广,如果你站在附近的高山上,也无法看到它的尽头。邻接矩阵进到了森林里头,他不知道时间过了多久,因为森林里看不到什么阳光,他只知道他走了很久,把干粮吃完了也没能找到女巫“我想我就快要放弃了”他说,随后他找了片合适的地方扎营,沉沉地睡去了。
在梦里他见到了女巫“年轻人,你的毅力令人惊叹。如果你解开了这个问题,便到梦中再来找我吧。”,随后他就醒了,发现自己到了森林边缘,他想女巫一定是打算帮他,便仔细回想起梦中的问题来。
“你的心灵里有种神秘的力量,叫做幂,假如你弄懂了它的用法,便能够在梦中再见到我。”
邻接矩阵暗暗记下了这个叫做幂的东西,便回去问老祖母。老祖母听了他的描述,便说“我当初曾解开过女巫提出的问题,才使家族在森林边缘安定下来,如今我就要死了,家族恐怕也要离开这森林,命运赠与的东西总是有归还的那天,你不必为了我再做什么,我活得已经够久了。”邻接矩阵不语,只是接着问幂是什么,老祖母便答道,幂是你与你自己的关系。
邻接矩阵不能够理解老祖母的意思,也不知道应该做些什么,便尽早睡了,希望能在梦中再见到女巫。
梦里不同于往常,有一个矩阵,可没有女巫。那矩阵是
A
=
{
0
1
0
1
0
1
0
1
0
}
A= \left \{ \begin{array}{rrr} 0 & 1 & 0 \\ 1 & 0 & 1 \\ 0 & 1 & 0 \end{array} \right \}
A=⎩
⎨
⎧010101010⎭
⎬
⎫
“自己与自己的关系么”邻接矩阵自言自语道,便试着将矩阵与自己点乘,得到了
A
2
=
{
1
0
1
0
2
0
1
0
1
}
A^2= \left \{ \begin{array}{rrr} 1 & 0 & 1 \\ 0 & 2 & 0 \\ 1 & 0 & 1 \end{array} \right \}
A2=⎩
⎨
⎧101020101⎭
⎬
⎫
他又想到自己也是矩阵,如果将梦中矩阵视作是邻接矩阵的话,那么便表示下图
a
⟷
b
⟷
c
a \longleftrightarrow b \longleftrightarrow c
a⟷b⟷c
那么矩阵的二次幂似乎就代表了从某点出发经过一个节点所能抵达的节点,就比如
a
⟶
b
⟶
c
a \longrightarrow b \longrightarrow c
a⟶b⟶c
如果
v
a
v_a
va与
v
b
v_b
vb联通,
v
b
v_b
vb与
v
c
v_c
vc联通,那么
v
a
v_a
va与
v
c
v_c
vc联通,而
A
a
c
2
A^2_{ac}
Aac2恰好等于
A
A
A的
a
a
a行
c
c
c列相乘,如果
A
a
b
≥
1
A_{ab} \ge 1
Aab≥1,且
A
b
c
≥
1
A_{bc} \ge 1
Abc≥1,那么
A
a
c
2
≥
1
A^2_{ac} \ge 1
Aac2≥1
邻接矩阵一下就明白了幂的意义,便大喊道“邻接矩阵的幂中的(i,j)元素是图中长度为幂次的,从 v i v_i vi到 v j v_j vj的路径的数目!”可是女巫并没有出现,只是听见她的声音“你还没有给出当幂次大于二时的证明。”这无疑给邻接矩阵浇了一盆冷水,但很快他就发现自己离答案已经很近了。
如果一条路径的终点恰好是另一条路径的起点的话,那么前者的起点自然与后者的终点联通。那么如果 A 2 a c ≥ 1 A^2{ac} \ge 1 A2ac≥1,且 A c b A_{cb} Acb,那么 A a b 3 ≥ 1 A^3_{ab} \ge 1 Aab3≥1,因此邻接矩阵的幂中的(i,j)元素是图中长度为幂次的,从 v i v_i vi到 v j v_j vj的路径的数目。
随后矩阵消失了,邻接矩阵看到一个穿着袍子与短斗篷的人,她说“你醒来吧”,于是邻接矩阵就醒来了,他跑去见老祖母,她也醒着。见着自己的小孙子来了,便与他说“命运给予的东西总是要收回的”邻接矩阵感到有些委屈,便说“老祖母你休息吧,过几日身体就会好些的。”
此后老祖母的病果然好了,家族里头想着分家的声音也安分了不少。
最短路径之间的关系
编不下去了,但我想氛围大概是足够了的,毕竟这些东西并不难嘛
设 v i v_i vi到 v j v_j vj的最短路径为 δ ( v i , v j ) \delta (v_i,v_j) δ(vi,vj),试求 δ ( v s , v i ) + δ ( v i , v j ) \delta (v_s,v_i) + \delta (v_i,v_j) δ(vs,vi)+δ(vi,vj)与 δ ( v s , v j ) \delta(v_s,v_j) δ(vs,vj)的关系
易知当一条路径的终点恰好是另一条路径的起点的话,前者的起点自然与后者的终点联通,反过来说如果 δ ( v s , v j ) ≥ 2 \delta (v_s,v_j) \ge 2 δ(vs,vj)≥2,我们就可以将其分解为一条路径与另一条路劲的和,如 δ ( v s , v j ) = δ ( v s , v x ) + δ ( v x , v j ) \delta (v_s,v_j) = \delta (v_s,v_x) + \delta (v_x,v_j) δ(vs,vj)=δ(vs,vx)+δ(vx,vj)
又易知 δ ( v s , v j ) \delta (v_s,v_j) δ(vs,vj)已经是最短路径了,所以
δ ( v s , v i ) + δ ( v i , v j ) ≥ δ ( v s , v x ) + δ ( v x , v j ) \delta (v_s,v_i) + \delta (v_i,v_j) \ge \delta (v_s,v_x) + \delta (v_x,v_j) δ(vs,vi)+δ(vi,vj)≥δ(vs,vx)+δ(vx,vj)
当 δ ( v s , v i ) + δ ( v i , v j ) > δ ( v s , v x ) + δ ( v x , v j ) \delta (v_s,v_i)+ \delta (v_i,v_j) > \delta (v_s,v_x) + \delta (v_x,v_j) δ(vs,vi)+δ(vi,vj)>δ(vs,vx)+δ(vx,vj)时,有三种情况
- 当 δ ( v s , v i ) = δ ( v s , v x ) , δ ( v i , v j ) > δ ( v x , v j ) \delta (v_s,v_i) = \delta (v_s,v_x), \delta (v_i,v_j) > \delta (v_x,v_j) δ(vs,vi)=δ(vs,vx),δ(vi,vj)>δ(vx,vj)时
- 当 δ ( v i , v j ) = δ ( v x , v j ) , δ ( v s , v i ) > δ ( v s , v x ) \delta (v_i,v_j) = \delta (v_x,v_j), \delta (v_s,v_i) > \delta (v_s,v_x) δ(vi,vj)=δ(vx,vj),δ(vs,vi)>δ(vs,vx)时
- 当 δ ( v i , v j ) > δ ( v x , v j ) , δ ( v s , v i ) > δ ( v s , v x ) \delta (v_i,v_j) > \delta (v_x,v_j), \delta (v_s,v_i) > \delta (v_s,v_x) δ(vi,vj)>δ(vx,vj),δ(vs,vi)>δ(vs,vx)时
当 δ ( v s , v i ) + δ ( v i , v j ) = δ ( v s , v x ) + δ ( v x , v j ) \delta (v_s,v_i) + \delta (v_i,v_j) = \delta (v_s,v_x) + \delta (v_x,v_j) δ(vs,vi)+δ(vi,vj)=δ(vs,vx)+δ(vx,vj)时,只有一种情况
- 当 δ ( v i , v j ) = δ ( v x , v j ) , δ ( v s , v i ) = δ ( v s , v x ) \delta (v_i,v_j) = \delta (v_x,v_j), \delta (v_s,v_i) = \delta (v_s,v_x) δ(vi,vj)=δ(vx,vj),δ(vs,vi)=δ(vs,vx)时
当 δ ( v s , v j ) = 2 \delta(v_s,v_j) = 2 δ(vs,vj)=2时,若 A s j = 0 A_{sj} = 0 Asj=0,则必然有 δ ( v s , v i ) + δ ( v i , v j ) = δ ( v s , v j ) \delta (v_s,v_i) + \delta (v_i,v_j)= \delta (v_s,v_j) δ(vs,vi)+δ(vi,vj)=δ(vs,vj)
下篇应该就结束了,话说这么写是不是有点多余过头,我写故事很差劲说是