PATH = {<G, s,t >: G is a directed graph in which there is a path from s to t}
在有向图G中判断有一条路径从s到t,在空间复杂度为O(logn)上。
用数学的方式表述是:
<G,s,t>∈PATH<=>在G中存在一条从s到t的路径<=>∃ 长度不超过n的结点序
即为:x1,x2,...xm+1;m<n 使得[x0=s∧(xm+1=i)∧1 ∀1<=i<=m+1,(xi-1,xi)∈E]<=>(∃ P)[p(0)=s∧P(m+1)=i ∧ 1 ,∀1<=i<=m+1, ∃ m<n,(P(i-1),P(i))∈E]<=>(∃ P)(∃ m<n)∀(1<=i<=m+1)[P(0)∧s.....M(P(i-1),P(i))=1]
使用上述数学形式来推验证。其实是假定存在一个序列我们每次都去去这个序列的点来做判定。
具体是在图中从S点开始找一条边来得到另一个点X1,经过X1得到X2,依次往下获取直到次数大于n时判定为不存在此路径从S到t,或是找到终止点t此判定为有一条路径为从S到t。