You are on page 1of 10

Ứng dụng chuỗi Markov khi tìm giải pháp giải quyết nạn kẹt xe tại khu vực A

1. Tóm tắt
Hiện nay, vấn đề kẹt xe trong thành phố đang được mọi người quan tâm. Đó
là vấn nạn chung trong xu thế hiện nay, khi mà các phương tiện đi lại
ngày một gia tăng. Vây các biện pháp khắc phục vấn nạn ấy như thế nào?
Một số câu hỏi được đặt ra như: Tại một thời điểm, ta có thể biết tình
hình lưu lượng xe ở một nơi nào đó hay không? Sau một khoảng thời gian
thì tại một địa điểm ta can quan tâm có xảy ra kẹt xe hay không? Trong
giờ cao điểm ta nên đi những đường nào là thích hợp và khoa học nhất?
Vậy ta có thể xem các câu hỏi là một bài toán “Dự báo kẹt xe” mà ta cần
tìm lời giải.
Để giải quyết vấn đề này, ta có thể dựa vào lý thuyết về chuỗi Markov.
Một trong những ưu điểm của chuối Markov đó là hầu hết các kỹ thuật tính
toán trong chuỗi đều được qui về giải hệ phương trình tuyến tính, trên
vector và trên ma trận. Chính vì thế, các ngôn ngữ lập trình đều có thể
sử dụng một cách dễ dàng và có hiệu quả cao.

2. Sơ lược về chuỗi Markov


a. Giới thiệu về phân tích Markov
Phân tích Markov là một kỹ thuật ước tính xác suất các sự kiện xảy ra
trong tương lai bằng việc phân tích xác suất đã biết trong hiện tại.
Kỹ thuật này được ứng dụng rất rộng rãi trong các ngành kinh doanh,
phân tích tài chính - kế toán, cũng như kỹ thuật, xây dựng … bao gồm
việc phân tích sự thay đổi của

Dự đoán các trạng thái tương lai thì cần phải biết khả năng hay xác
suất của hệ thống chuyển từ trạng thái này sang trạng thái khác. Các
xác suất này thường được tập hợp và trình bày dưới dạng ma trận. Ma
trận xác suất chuyển đổi cho biết khả năng hệ thống sẽ thay đổi từ một
thời kỳ đến một thời kỳ kế tiếp. Đó là quá trình Markov và nó cho phép
chúng ta dự đoán các trạng thái tương lai.

Mô hình quá trình Markov hữu ích trong việc nghiên cứu sự phát triển
của hệ thống qua các chu trình lặp lại. Các chu trình lập lại thông
thường là các thời kỳ liên tiếp khi người ta không thể xác định một
cách chắc chắn trạng thái của hệ thống tại một bất kỳ một thời kỳ nhất
định. Thay vào đó, xác suất chuyển đổi được sử dụng để mô tả cách thức
hệ thống chuyển đổi từ một thời kỳ này sang một thời kỳ kế tiếp. Do
đó, chúng ta quan tâm đến xác suất của hệ thống ở một trạng thái nhất
định tại một thời kỳ cụ thể.

b. Dự báo trạng thái tương lai


Các trạng thái được dùng để xác định tất cả các điều kiện có thể xảy
ra của một quá trình hay một hệ thống.
Ví dụ, một thiết bị có thể ở một trong 2 trạng thái tại bất kỳ thời
điểm nào: đang hoạt động tốt hay không tốt. Chúng ta có thể gọi trạng
thái thứ nhất là sự vận hành tốt của thiết bị và trạng thái thứ hai
là sự vận hành không tốt của thiết bị.

c. Trạng thái hấp thụ và ma trận cơ bản


Chúng ta giả thiết rằng việc chuyển từ một trạng thái đến một trạng
thái khác giữa hai thời kỳ nào đó là việc có thể thực hiện đối với một
quá trình hay hệ thống. Trong vài trường hợp, nếu bạn đang ở một trạng
thái nhất định thì không thể chuyển sang một trạng thái khác trong
tương lai. Nói một cách khác, khi bạn đang ở một trạng thái cụ thể thì
bạn bị “hấp thụ” với trạng thái này và tiếp tục giữ nguyên trạng thái
này. Bất kỳ trạng thái nào có tính chất này được gọi là trạng thái hấp
thụ.
If a transition matrix P for an absorbing Markov chain is raised to
higher powers, it reaches an absorbing state called the solution matrix
and stays there. The i,j-th entry of this matrix gives the probability
of absorption in state j while starting in state i.
Alternately, the solution matrix can be found in the following manner.
• Express the transition matrix in the form of four sub-matrices as
listed below
𝐼 0
𝑃=[𝑛 ]
𝐴 𝑇
where 𝐼𝑛 is an identity matrix, and 0 is a matrix of all zeros.
• The fundamental matrix F = (I - T)-1 helps us find the number of
steps before absorption.
• F×A is the solution matrix, whose I,j-th entry gives the probability
of absorption in state j while starting in state i.
The sum of the entries of a row of the fundamental matrix gives us the
expected number of steps before absorption for the non-absorbing state
associated with that row.

3. Bài toán cân giải quyết


Ta xem lưu lượng xe tại 1 thời điểm bất kỳ sẽ rơi vào một trong 4 trường
hợp: bình thường, hơi đông, kẹt nhẹ, và kẹt nặng.

Ta giả sử rằng có một địa điểm thường xuyên xảy ra kẹt xe và câu hỏi được
đặt ra như sau:
• Xác suất kẹt xe sau khoảng thời gian t là bao nhiêu?
• Giả sử tình trạng hiện tại đang là kẹt xe, vậy sau bao lâu, giao thông
sẽ trở lại bình thường?

4. Ứng dụng chuỗi Markov trong hướng giải quyết bài toán
Như ta đã biết mục địch chính của chuỗi Markov là dự đoán tương lai dựa
trên dữ liệu hiện tại. Do đó ta dùng định nghĩa và tính chất của chuỗi
Markov để trả lời cho câu hỏi trên.
Ta nhận thấy rằng tình trạng kẹt xe ở một thời điểm nào đó sẽ rơi vào
một trong 4 tình trạng sau: bình thường (BT), hơi đông (HD), kẹt nhẹ(NH)
hoặc kẹt nặng (KN)
Muốn nói tình trạng kẹt xe ở thời điểm xác định đạt được trạng thái nào,
điều đó phụ thuộc vào tình trạng kẹt xe ở thời điểm liền trước: bình
thường, hoặc hơi đông, hoặc kẹt nhẹ, hoặc kẹt nặng? Vậy có thể xem đây
là một chuỗi Markov với 4 trạng thái. Ta có ma trận xác suất chuyển trạng
thái:
𝐵𝑇 𝐻𝐷 𝑁𝐻 𝐾𝑁
𝐵𝑇 𝑝11 𝑝12 𝑝13 𝑝14
𝑃= 𝐻𝐷 𝑝 21 𝑝22 𝑝23 𝑝24
[ ]
𝑁𝐻 𝑝31 𝑝32 𝑝33 𝑝34
𝐾𝑁 𝑝41 𝑝42 𝑝43 𝑝44

a. Gọi 𝑝(0) là vector xác suất ban đầu. Vậy xác suất kẹt xe sau thời gian
t được biểu diễn bằng vector trạng thái được tính như sau:
𝑝(𝑡) = 𝑃𝑡 × 𝑝(0)
Điều này cũng có nghĩa là phân bố xác suất các trạng thái ở thời điểm
t sẽ bằng vector phân phối xác xuất ban đầu nhân với lũy thừa bậc t
của ma trận P.
b. Tuy nhiên, trên thực tế, bất cứ trạng thái nào: khi xảy ra đều có xu
hướng quay trở lại trạng thái bình thường sau một khoảng thời gian nào
đó.
Như vậy, ta xem trạng thái
Bình thường – BT là trạng thái hấp thụ

Hơi đông – HD
Kẹt nhẹ – NH là trạng thái tạm thời
Kẹt nặng - KN

Tù đó, ta viết lại ma trận P thành:

p11 p12 p13 p14 I1×1 03×1


p21 p22 p23 p24
P = =
p31 p32 p33 p34 A1×3 T3×3

p41 p42 p43 p44

với I1×1 là ma trận đơn vị cấp 1,


03×1 là ma trận 0 cấp,
A1×3 là ma trận hấp thụ,
T3×3 là ma trận tạm thời (ma trận cơ bản).
𝑓11 𝑓12 𝑓13
Ma trận cơ bản có thể được tính bằng F = (I - T)-1 = [𝑓21 𝑓22 𝑓23 ]
𝑓31 𝑓32 𝑓33
𝑐 𝐵𝑇
𝐻𝐷 𝑏11
Xét ma trận B = F × A =
𝑁𝐻 [𝑏21 ]
𝐾𝑁 𝑏31
Kết quả tính toán của ma trận F × A có ý nghĩa rất quan trọng. Nó chỉ
rõ xác suất để một tình trạng giao thông đang ở trạng thái không hấp
thụ (tạm thời) cuối cùng chuyển thành một trong các trạng thái hấp
thụ.

Áp dụng tính chất của định lí về chuối Markov hấp thu hữu hạn trạng
thái, ta có thể dự báo như sau:
Dựa vào ma trận F:
Nếu trạng thái hiện tại là kẹt nặng, trạng thái này sẽ:
- Kéo dài trong khoảng thời gian f33
- Chuyển sang kẹt nặng trong khoảng thời gian f32
- Chuyển sang hơi động trong khoảng thời gian f31

Dự đoán tương tự nếu trạng thái hiện tại đang là kẹt nhẹ, hơi đông.
Cộng các phần tử của ma trận f lại với nhau:
𝑓11 + 𝑓12 + 𝑓13 𝐻𝐷
[𝑓21 + 𝑓22 + 𝑓23 ] 𝑁𝐻
𝑓31 + 𝑓32 + 𝑓33 𝐾𝑁
- Nếu trạng thái hiện tại là hơi đông, thì sau khoảng thời gian
f11+f12+f13 sẽ chuyển sang bình thường.
- Nếu trạng thái hiện tại là kẹt nhẹ thì sau khoảng thời gian f21+f22+f23
sẽ chuyển sang bình thường.
- Nếu trạng thái đang là kẹt nặng thì sau khoảng thời gian f31+f32+f33
sẽ chuyển sang bình thường.

Dựa vào ma trận B:


- Nếu trạng thái đang là hơi đông, thì khả năng chuyển sang bình
thường là b11
- Nếu trạng thái đang là kẹt nhẹ thì khả năng chuyển sang bình thường
là b12.
- Nếu trạng thái đang là kẹt nặng thì khả năng chuyển sang bình thường
là b13.

ÁP DỤNG:
Ta áp dụng bài toán trên vào thực tế tại điểm cầu Vĩnh Tuy (phía Timecity)
Lý do chọn địa điểm nảy để thấy rõ công dụng của chuỗi Markov:
Cầu Vĩnh Tuy là một cầu lớn, và quan trọng, nỗi giữa khu vực nội thành
Hà nội với các quận lớn phía bên kia sông Hồng như quận Long Biên, Gia
Lâm. Là 1 trong 7 cây cầu lớn liên kết khu vực nội thành Hà nội với các
tỉnh lân cận thuộc khu vực Đông Bắc Bộ. Đây là khu vực đông dân cư, lưu
lượng phương tiện tham gia giao thông qua cầu là rất lớn.
Khoảng thời gian từ 8h đến 11h30 là khoảng thời gian thường xuyên diễn
ra kẹt xe nhất. Trong phần áp dụng này, ta khảo sát dữ liệu được ghi nhận
trong khoảng thời gian này.
Thời
7h30 8h 8h30 9h 9h30 10h 10h30 11h 11h30 12h
điểm
Tình Ngày
trạng 1
BT HD HD NH HD HD NH KN NH BT
giao
thông
Thời
7h30 8h 8h30 9h 9h30 10h 10h30 11h 11h30 12h
điểm
Tình Ngày
trạng 2
BT BT BT HD HD NH KN NH HD BT
giao
thông
Thời
7h30 8h 8h30 9h 9h30 10h 10h30 11h 11h30 12h
điểm
Tình Ngày
trạng 3
giao
thông
Thời
7h30 8h 8h30 9h 9h30 10h 10h30 11h 11h30 12h
điểm
Tình Ngày
trạng 4
giao
thông
Thời
7h30 8h 8h30 9h 9h30 10h 10h30 11h 11h30 12h
điểm
Tình Ngày
trạng 5
giao
thông
Thời
7h30 8h 8h30 9h 9h30 10h 10h30 11h 11h30 12h
điểm
Tình Ngày
trạng 6
giao
thông
Thời
7h30 8h 8h30 9h 9h30 10h 10h30 11h 11h30 12h
điểm
Tình Ngày
trạng 7
giao
thông
Thời Ngày
7h30 8h 8h30 9h 9h30 10h 10h30 11h 11h30 12h
điểm 8
Tình
trạng
giao
thông
Thời
7h30 8h 8h30 9h 9h30 10h 10h30 11h 11h30 12h
điểm
Tình Ngày
trạng 9
giao
thông
Thời
7h30 8h 8h30 9h 9h30 10h 10h30 11h 11h30 12h
điểm
Tình Ngày
trạng 10
giao
thông
Thời
7h30 8h 8h30 9h 9h30 10h 10h30 11h 11h30 12h
điểm
Tình Ngày
trạng 11
giao
thông
Thời
7h30 8h 8h30 9h 9h30 10h 10h30 11h 11h30 12h
điểm
Tình Ngày
trạng 12
giao
thông
Thời
7h30 8h 8h30 9h 9h30 10h 10h30 11h 11h30 12h
điểm
Tình Ngày
trạng 13
giao
thông
Thời
7h30 8h 8h30 9h 9h30 10h 10h30 11h 11h30 12h
điểm
Tình Ngày
trạng 14
giao
thông
Thời
7h30 8h 8h30 9h 9h30 10h 10h30 11h 11h30 12h
điểm
Tình Ngày
trạng 15
giao
thông
Thời
7h30 8h 8h30 9h 9h30 10h 10h30 11h 11h30 12h
điểm Ngày
Tình 16
trạng
giao
thông
Thời
7h30 8h 8h30 9h 9h30 10h 10h30 11h 11h30 12h
điểm
Tình Ngày
trạng 17
giao
thông
Thời
7h30 8h 8h30 9h 9h30 10h 10h30 11h 11h30 12h
điểm
Tình Ngày
trạng 18
giao
thông
Thời
7h30 8h 8h30 9h 9h30 10h 10h30 11h 11h30 12h
điểm
Tình Ngày
trạng 19
giao
thông
Thời
7h30 8h 8h30 9h 9h30 10h 10h30 11h 11h30 12h
điểm
Tình Ngày
trạng 20
giao
thông
Thời
7h30 8h 8h30 9h 9h30 10h 10h30 11h 11h30 12h
điểm
Tình Ngày
trạng 21
giao
thông
Thời
7h30 8h 8h30 9h 9h30 10h 10h30 11h 11h30 12h
điểm
Tình Ngày
trạng 22
giao
thông
Thời
7h30 8h 8h30 9h 9h30 10h 10h30 11h 11h30
điểm
Tình Ngày
trạng 23
giao
thông
Thời
7h30 8h 8h30 9h 9h30 10h 10h30 11h 11h30
điểm
Tình Ngày
trạng 24
giao
thông
Thời
7h30 8h 8h30 9h 9h30 10h 10h30 11h 11h30 12h
điểm
Tình Ngày
trạng 25
giao
thông
Thời
7h30 8h 8h30 9h 9h30 10h 10h30 11h 11h30 12h
điểm
Tình Ngày
trạng 26
giao
thông
Thời
7h30 8h 8h30 9h 9h30 10h 10h30 11h 11h30 12h
điểm
Tình Ngày
trạng 27
giao
thông
Thời
7h30 8h 8h30 9h 9h30 10h 10h30 11h 11h30 12h
điểm
Tình Ngày
trạng 28
giao
thông
Thời
7h30 8h 8h30 9h 9h30 10h 10h30 11h 11h30 12h
điểm
Tình Ngày
trạng 29
giao
thông
Thời
7h30 8h 8h30 9h 9h30 10h 10h30 11h 11h30 12h
điểm
Tình Ngày
trạng 30
BT NH KN KN NH HD NH HD HD BT
giao
thông

Thống kê dữ liệu ta được tổng của các trạng thái:


BT = 45 HD = 95 NH = 125 KN = 35

Xây dụng ma trận P


BT HD NH KN
BT 15/45 15/95 0 0
HD 18/45 30/95 25/125 0
NH 12/45 45/95 60/125 20/35
KN 0 5/95 40/125 15/35

Ta viết lại ma trân P như sau


0.3333 0.1578 0.0000 0.0000
𝑃 = [0.4000 0.3157 0.2000 0.0000]
0.2666 0.4736 0.4800 0.5714
0.0000 0.0526 0.3200 0.4285

5. Bài toán thứ nhất: Tìm xác suất kẹt xe sau thời gian t.
Chú ý: trong quá trình khảo sát, cứ sau 30 phút ta ghi nhận trạng thái
một lần, do đó, đơn vị của t trong trường hợp này là 30 phút, hay 0.5
giờ.
Ngay tại thời điểm bắt đầu khảo sát, trạng thái bình thường là trạng thái
có xác suất xảy ra lớn nhất, trạng thái kẹt xe hầu như không xảy ra, hay
nói cách khác, ta có vector xác suất ban đầu là:
0.95
(0) 0.05
𝑝 =[ ]
0
0
Giả sử ta tìm xác suất kẹt xe sau 2 giờ (t = 4): p(4) = P4 × p(0)
0.3333 0.1578 0.0000 0.0000 4 0.95 0.0743
0.4000 0.3157 0.2000 0.0000 0.05 0.2108
[ ] ×[ ]=[ ]
0.2666 0.4736 0.4800 0.5714 0 0.4734
0.0000 0.0526 0.3200 0.4285 0 0.2408

Ta có thể dự báo rằng:


So với trạng thái lúc ban đầu, sau 2 giờ (hay nói cách khác là khoảng
9h30) có khả năng xảy ra như sau:
- 7.43% vẫn ở trạng thái bình thường
- 21.08% chuyển sang trạng thái hơi đông
- 47.34% chuyển sang trạng thái kẹt nhẹ
- 24.08% chuyển sang trạng thái kẹt nặng.

6. Bài toán thứ hai: Thời gian trở lại bình thường khi trạng thái hiện tại
là kẹt xe.
1.0000 0.0000 0.0000 0.0000
𝑃 = [0.1578 0.3157 0.4736 0.0526]
0.0000 0.2000 0.4800 0.3200
0.0000 0.0000 0.5714 0.4285

Ma trận F: F = (I3×3 – T3×3)-1


−1
1 0 0 0.3157 0.4736 0.0526 0.6843 −0.4736 −0.0526 −1
= [[0 1 0] − [0.2000 0.4800 0.3200]] = [−0.2000 0.5200 −0.3200]
0 0 1 0.0000 0.5714 0.4285 0.0000 −0.5714 0.5715

0.2941 1.0063 0.4603


= [0.2941 1.0063 0.5905]
0.2941 1.0063 0.6718

Dựa vào ma trận F, ta có thể dự báo:


Nếu hiện tại đang kẹt nặng, trạng thái này sẽ
- Kéo dài trong 0.6718/2 = 0.3359 giờ
- Chuyển sang trạng thái kẹt nhẹ trong 1.006/2 = 0.5030 giờ
- Chuyển sang trạng thái hơi đông trong 0.2941/2 = 0.14705 giờ

Cộng các phần tử của ma trận F:


0.2941 + 1.0063 + 0.4603 1.7608
[0.2941 + 1.0063 + 0.5905] = [1.8909]
0.2941 + 1.0063 + 0.6718 3.6517

Từ ma trận cộng các phần tử của ma trận F, ta dự báo:


- Nếu trạng thái hiện tại đang là hơi đông thì sau 1.7608/2 = 0.8804
giờ sẽ chuyển sang bình thường.
- Nếu trạng thái hiện tại đang là kẹt nhẹ thì sau 1.8909/2 = 0.94545
giờ sẽ chuyển sang bình thường.
- Nếu trạng thái hiện tại đang là kẹt nặng thì sau 3.6517/2 = 1.82585
giờ sẽ chuyển sang bình thường.

0.2941 1.0063 0.4603 0.1578 1


Ma trận B: B = F × A = [0.2941 1.0063 0.5905] × [0.0000] = [1]
0.2941 1.0063 0.618 0.0000 1

Dựa vào ma trận B, ta dự báo: Nếu lưu lượng xe đang là hơi đông, kẹt nhẹ
hay kẹt nặng, thì chắc chắn sẽ chuyển sang bình thường với xác suất 100%.

7. Giải pháp

8. Kết luận

You might also like