遷移確率によってリンクされている状態がいくつかあります(マルコフ連鎖のように遷移行列内に埋め込まれています)。ある状態(〜ノード)から別の状態(遷移行列の最初と最後)に移行できる十分に高い確率のみを考慮して、この遷移行列を要約したいと思います。より高い確率のみを考慮した場合、遷移行列が最初の状態(またはノード)から最後の状態(またはノード)に移動することを決して許可しないようにするためのしきい値。
2つの質問:
そのようなメソッドを実装するいくつかのよく知られたライブラリ(優先的にPython言語)はありますか?私のナイーブ/経験的/プロトタイプのアプローチは、しきい値の値を減らす1つのループであり、最初の状態から最後の状態への遷移行列を通過できるかどうかを確認します(距離行列のベストパスアルゴリズムの一種ですか?)。しかし、これには非常に長い計算時間が必要になる可能性がありますか?
Example 1:
DistMatrix = [[ 'a', 'b', 'c', 'd'],
['a', 0, 0.3, 0.4, 0.1],
['b', 0.3, 0, 0.9, 0.2],
['c', 0.4, 0.9, 0, 0.7],
['d', 0.1, 0.2, 0.7, 0]]
states are a,b,c,d. I want to find the value (threshold) that allow to go from a to d (no matter if other states are walked)
Naive approach:
- first loop: threshold 0.9, I get rid of lesser probabilities: I can only connect c and b
- second loop: threshold 0.7, I get rid of lesser probabilities: I can only connect c, b, d
- third loop: threshold 0.4, I get rid of lesser probabilities: I can connect a,c, b, d: here is my threshold: 0.4
->遷移行列に数千の状態があるとすぐに、信じられないほど複雑になるはずですか?->提案するアルゴリズム?
Example 2:
DistMatrix =
[ 'a', 'b', 'c', 'd'],
['a', 0, 0.3, 0.4, 0.7],
['b', 0.3, 0, 0.9, 0.2],
['c', 0.4, 0.9, 0, 0.1],
['d', 0.7, 0.2, 0.1, 0] ]
states are a,b,c,d. I want to find the value (threshold) that allow to go from a to d (no matter if other states are walked)
Naive approach:
-first loop: threshold 0.9, I get rid of all others: I can only connect c and b
-second loop: threshold 0.7, I get rid of lesser connexion: I connect b and c, and a and d but because a and d are connected, I have my threshold!