মার্কভ চেইন (Markov Chain) — স্টেটস এবং ট্রানজিশন প্রোবাবিলিটি থাকা একটি র্যান্ডম প্রসেস। প্রতিটি ট্রানজিশন ১ ইউনিট টাইম নেয়।
অ্যালগরিদম
- ট্রানজিশন ম্যাট্রিক্স
Mতৈরি করুন (M[i][j] = i থেকে j যাওয়ার প্রোবাবিলিটি)। - ম্যাট্রিক্স এক্সপোনেনশিয়েশন দিয়ে
M^Tবের করুন। M^T[F-1][S-1]= সোর্সSথেকেTটাইমে ডেস্টিনেশনFপাওয়ার প্রোবাবিলিটি।
C++ কোড উদাহরণ
#include <bits/stdc++.h>
using namespace std;
#define float_vec vector<float>
vector<float_vec> multiply(vector<float_vec> A, vector<float_vec> B, int N) {
vector<float_vec> C(N, float_vec(N, 0));
for (int i=0; i
আউটপুট
Probability of reaching: 2 in time 100 after starting from: 4 is 0.271464