圖上隨機游走問題學習筆記


聽說這東西有必要學習一下?

本文內容全部參考《淺談圖模型上的隨機游走問題》by 王修涵。

定義

給定一張有向簡單圖 \(G = (V,E)(V = \{v_1,v_2,\cdots,v_{|V|}\} )\)和起點 \(v_s\in V\) ,終點 \(v_t \in V\),每條邊\(e = (v_x,v_y)\)有正權值\(w_e\),滿足 ∀\(v_x \in V-\{v_t\},\sum_{(v_x,v_y)\in E} w(v_x,v_y) = 1\),且對於任意點 \(v_x\) 都存在一條從 \(v_x\) 出發到達 \(v_t\) 的路徑。有一枚棋子從起點出發,每秒從當前所在點 \(v_x\)\(w(v_x,v_y)\) 的概率選擇出邊 \((v_x,v_y)\) 並走向 \(v_y\) ,到達終點則停止,求期望花費時間。

思想

一般做法都是DP,根據圖和題目的性質設計不同的狀態來解決問題

網格圖

例題(CF963E Circles of Waiting):有一枚棋子起始被放在平面直角坐標系的\((0,0)\)點。每秒棋子會隨機移動。假設它當前在\((x,y)\),它下一秒有\(p_1\)的概率移動到\((x−1,y)\)\(p_2\)的概率移動到\((x,y−1)\)\(p_3\)的 概率移動到\((x+1,y)\)\(p_4\) 的概率移動到\((x,y+ 1)\)。保證 \(p_1 + p_2 + p_3 + p_4 = 1\) 。求期望 經過多少時間它會移動到一個離原點的歐幾里得距離大於\(R\) 的位置。\(0≤R≤50, p_1, p_2, p_3, p_4 >0\) ,答案對\(10^9 + 7\)取模。

朴素做法

\(f(i,j)\)表示\((i,j)\)移動到外面需要的期望時間,那么有

\[f(i,j)=\begin{cases} p_1f(i-1,j)+p_2f(i,j-1)+p_3f(i+1,j)+p_4(i,j+1)&,i^2+j^2\le R^2\\ 0&,i^2+j^2>R^2 \end{cases} \]

直接高斯消元,復雜度\(O(R^6)\)

直接消元法

把點從左到右、從上到下標號,把方程也排個序。

考慮高斯消元的過程,發現消到\((i,j)\)時只有\((i,k),k>j\)\((i+1,k),k\le j\)的方程有\(f(i,j)\)這個變量,所以只需要消\(O(R)\)個方程。

所以最終復雜度是\(O(R^4)\)

主元法

把每一行第一個格子的\(f\)作為主元,從左往右推過去,得到最右邊關於主元的表達式。

當歐幾里得距離大於\(R\)時即可得到方程:\(f(i,j)=0\),共\(O(R)\)個方程,直接高斯消元即可。

復雜度\(O(R^3)\)

總結

設總點數為\(n\)

從復雜度上看,直接消元法復雜度\(O(n^2)\),主元法\(O(n\sqrt{n})\)

精度上,據說直接消元法更優?

適用性來看:

  • 網格圖中存在障礙/邊權為0時主元法會出現無法向右推的情況,需要再設一個主元,復雜度增加,但直接消元法復雜度不變。
  • 轉移方程為\(f(i,j)=p_1f(i,j+1)+p_2f(i+1,j)+p_3(pre(i,j))+1\),其中\(pre(i,j)=(x,y),x<i,y<j\)給定時直接消元法復雜度分析就是假的了,而主元法仍然可以使用。
  • 求鄰接矩陣行列式(別問我這東西有啥用)時只能直接消元法。

稀疏圖

例題就是定義里的題,\(n,m\le 2000\),答案模隨機質數。

考慮答案就是\(\sum_{t>0}P(T>t)\),可以求出走\(i\)步還沒有走到終點的概率,然后求和。

\(f_{i,u}\)表示走了\(i\)步,到了\(u\),還沒有走到過終點的概率,那么有轉移方程:

\[f_{i,u}=\sum_v p(v,u)f_{i-1,v} \]

顯然,轉移方程和\(i\)無關,所以可以寫成矩陣的形式:\(f_i=M\times f_{i-1}=f_0M^{i}\)

考慮\(M\)的特征多項式\(p(\lambda)\)的次數不超過\(n\),且\(p(M)=0\),所以\(p\)就是\(M^i\)的線性遞推式。

\(M^i\)左乘一個\(f_0\),線性遞推式不變,所以\(f\)的線性遞推式長度也不超過\(n\)

所以\(P(T>t)=\sum_u f_{t,u}\)的遞推式長度也是\(O(n)\)的,可以預處理出前\(2n\)項,然后BM算法求出遞推式。設遞推式的生成函數為\(C(x)\)\(a_t=P(T>t)\)的生成函數為\(A(x)\)

那么可以得到:\(A=C\times A+A_0\),其中\(A_0\)由前\(n\)項決定。

於是可以得到\(A=\frac{A_0}{1-C}\),且易得答案就是\(x=1\)\(A(x)\)的值,可以求出。由於模的是隨機質數,可以假設分母不為0。

一般圖

不會,咕咕咕……


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM