Applied Data Studies - Nghiên cứu Dữ liệu Ứng dụng

  • Home
  • Vietnam
  • Hanoi
  • Applied Data Studies - Nghiên cứu Dữ liệu Ứng dụng

Applied Data Studies - Nghiên cứu Dữ liệu Ứng dụng Giữa một Facebook ồn ào và hời hợt, đây là nơi một giảng viên Kinh tế kiên trì chia sẻ nghiên cứu nghiêm túc về ứng dụng dữ liệu.
(1)

🔄 5 đặc điểm giúp bạn nhận ra có thể áp dụng được Dynamic Programming vào một vấn đề cụ thể hay không(Vận trù học - Phần...
03/08/2026

🔄 5 đặc điểm giúp bạn nhận ra có thể áp dụng được Dynamic Programming vào một vấn đề cụ thể hay không

(Vận trù học - Phần 40)

Không phải bài toán tối ưu nào cũng nên giải bằng Dynamic Programming – Quy hoạch động. Vậy làm thế nào để nhận biết một bài toán có thể áp dụng phương pháp này ?

🚗Hãy tưởng tượng bạn cần đi từ Hà Nội đến một thành phố xa và phải lựa chọn điểm dừng sau mỗi ngày. Mỗi quyết định hôm nay sẽ ảnh hưởng đến vị trí của bạn ngày mai và tổng quãng đường của cả hành trình.

⭐Một bài toán Dynamic Programming thường có 5 đặc điểm quan trọng sau:

1️⃣ Bài toán được chia thành nhiều giai đoạn

Mỗi giai đoạn tương ứng với một thời điểm hoặc một bước trong quá trình ra quyết định. Trong bài toán tìm đường, mỗi ngày di chuyển có thể được xem là một giai đoạn.

Ở ngày thứ nhất, bạn chọn thành phố đầu tiên để dừng lại. Sang ngày thứ hai, bạn tiếp tục lựa chọn điểm đến tiếp theo.

Trong thực tế, “giai đoạn" còn có thể là:

📌 Một ngày trong kế hoạch sản xuất
📌 Một tháng trong bài toán quản lý tồn kho
📌 Một bước trong hành trình vận chuyển
📌 Một thời kỳ trong kế hoạch đầu tư

2️⃣ Mỗi giai đoạn có một hoặc nhiều trạng thái

Trạng thái là toàn bộ thông tin cần thiết để đưa ra quyết định tối ưu tại một thời điểm. Trong bài toán tìm đường, trạng thái có thể đơn giản là:

👉 Bạn đang ở thành phố nào?

Điều quan trọng là bạn không nhất thiết phải nhớ toàn bộ hành trình trước đó. Khi đã đến Đà Nẵng, quyết định tiếp theo thường chỉ phụ thuộc vào việc bạn đang ở Đà Nẵng, chứ không phụ thuộc vào việc bạn đã đến đó bằng tuyến đường nào.

3️⃣ Mỗi quyết định sẽ làm thay đổi trạng thái

Tại mỗi giai đoạn, bạn phải lựa chọn một hành động.Quyết định đó sẽ đưa hệ thống từ trạng thái hiện tại sang trạng thái ở giai đoạn tiếp theo.

Ví dụ:

📍 Trạng thái hiện tại: Bạn đang ở Hà Nội
🚗 Quyết định: Di chuyển đến Thanh Hóa
📍 Trạng thái tiếp theo: Bạn đang ở Thanh Hóa

Trong một số bài toán đơn giản, trạng thái tiếp theo được xác định chắc chắn. Tuy nhiên, trong các bài toán có yếu tố ngẫu nhiên, quyết định chỉ tạo ra một phân phối xác suất cho các trạng thái có thể xảy ra.

4️⃣ Bài toán tuân theo Nguyên lý tối ưu

Đây là tư tưởng quan trọng nhất của Dynamic Programming. Nguyên lý tối ưu phát biểu rằng:

👉 Nếu một phương án tổng thể là tối ưu, thì phần còn lại của phương án đó, tính từ bất kỳ trạng thái trung gian nào, cũng phải là phương án tối ưu.

Giả sử tuyến đường ngắn nhất từ Hà Nội đến TP.HCM đi qua Đà Nẵng. Khi đó, đoạn đường từ Đà Nẵng đến TP.HCM nằm trong tuyến đường này cũng phải là tuyến đường ngắn nhất từ Đà Nẵng đến TP.HCM.

Nếu tồn tại một tuyến đường ngắn hơn từ Đà Nẵng đến TP.HCM, ta chỉ cần thay đoạn đường cũ bằng tuyến ngắn hơn. Khi đó, toàn bộ hành trình Hà Nội – TP.HCM cũng sẽ ngắn hơn. Nói đơn giản là:

💡 Một lời giải tối ưu được tạo thành từ những lời giải tối ưu của các bài toán nhỏ hơn.

5️⃣ Có công thức truy hồi (recusion) liên kết các giai đoạn

Dynamic Programming không giải toàn bộ bài toán trong một lần. Thay vào đó, phương pháp này xây dựng một công thức cho phép sử dụng kết quả của giai đoạn sau để giải giai đoạn hiện tại.

Ví dụ, nếu đích đến là TP.HCM:

📌 Đầu tiên, tìm tuyến tốt nhất từ các thành phố gần TP.HCM đến TP.HCM
📌 Tiếp theo, tìm tuyến tốt nhất từ các thành phố ở giai đoạn trước
📌 Tiếp tục tính ngược lại cho đến điểm xuất phát

Cách làm này được gọi là working backward – giải ngược từ cuối về đầu.

✅ Tóm lại, một bài toán phù hợp với Dynamic Programming thường có:

📌 Nhiều giai đoạn ra quyết định
📌 Một tập hợp trạng thái tại mỗi giai đoạn
📌 Quyết định làm thay đổi trạng thái
📌 Nguyên lý tối ưu
📌 Công thức truy hồi giữa các giai đoạn

⚡ Dynamic Programming hiệu quả đến mức nào trong bài toán tìm quãng đường ngắn nhất kinh điển ?(Vận trù học - Phần 39)Tr...
31/07/2026

⚡ Dynamic Programming hiệu quả đến mức nào trong bài toán tìm quãng đường ngắn nhất kinh điển ?

(Vận trù học - Phần 39)

Trong bài viết trước, chúng ta đã cùng Joe tìm tuyến đường ngắn nhất từ New York đến Los Angeles bằng Dynamic Programming (Quy hoạch động)

💡Tuy nhiên, ở ví dụ đó chỉ có 18 tuyến đường khả thi. Với số lượng phương án nhỏ như vậy, chúng ta hoàn toàn có thể liệt kê từng tuyến rồi so sánh tổng quãng đường.

Vậy Dynamic Programming thực sự phát huy sức mạnh khi nào?

👉 Câu trả lời là: khi quy mô bài toán bắt đầu tăng lên.

Hãy xét một mạng lưới gồm 7 giai đoạn. Ở mỗi giai đoạn trung gian có 5 địa điểm và từ một địa điểm, chúng ta có thể di chuyển đến bất kỳ địa điểm nào ở giai đoạn tiếp theo. Nếu sử dụng phương pháp đơn giản nhất đó là liệt kê toàn bộ, thì số tuyến đường cần kiểm tra là:

👉 5⁵ = 3.125 tuyến đường

Mỗi tuyến cần thực hiện 5 phép cộng để tính tổng khoảng cách. Như vậy, máy tính phải thực hiện:

👉 3.125 × 5 = 15.625 phép cộng

Ngoài ra, để tìm ra tuyến ngắn nhất trong 3.125 tuyến, chúng ta còn cần tới:

👉 3.124 phép so sánh

Đây là điểm yếu của phương pháp liệt kê: rất nhiều đoạn đường giống nhau bị tính toán lặp đi lặp lại trong các tuyến khác nhau.

🔄 Dynamic Programming xử lý khác như thế nào?

Thay vì tính riêng từng tuyến đường hoàn chỉnh, Dynamic Programming bắt đầu từ điểm đích và làm việc ngược trở lại. Tại mỗi địa điểm, thuật toán chỉ cần trả lời một câu hỏi:

👉 Từ vị trí hiện tại đến điểm đích, lựa chọn tiếp theo nào tạo ra tổng quãng đường ngắn nhất?

Kết quả tốt nhất của mỗi địa điểm được tính một lần, lưu lại và tiếp tục sử dụng cho các giai đoạn trước. Công thức tổng quát là:

👉fₜ(i) = minⱼ {cᵢⱼ + fₜ₊₁(j)}

Trong đó:

📌cᵢⱼ là khoảng cách từ địa điểm i đến địa điểm j
📌fₜ₊₁(j) là quãng đường ngắn nhất đã được tính từ j đến điểm đích
📌fₜ(i) là quãng đường ngắn nhất từ i đến điểm đích

Với mạng lưới trên, Dynamic Programming chỉ cần:

✅ 105 phép cộng
✅ 84 phép so sánh

So với 15.625 phép cộng của phương pháp liệt kê, Dynamic Programming chỉ sử dụng khoảng:

⭐105 / 15.625 ≈ 0,7% số phép tính

Nói cách khác, thuật toán đã giảm hơn 99% số phép cộng cần thực hiện.

📈 Sự khác biệt càng lớn khi mạng lưới mở rộng

Với phương pháp liệt kê, số phương án có thể tăng theo cấp số nhân. Chỉ cần thêm một vài giai đoạn hoặc một vài lựa chọn tại mỗi giai đoạn, số tuyến đường cần kiểm tra có thể tăng từ hàng nghìn lên hàng triệu.

Dynamic Programming không thử lại toàn bộ các tuyến đường. Nó tận dụng các bài toán con đã được giải trước đó để tránh tính toán trùng lặp. Đây chính là giá trị lớn nhất của Quy hoạch động khi không nhất thiết làm cho từng phép tính nhanh hơn, mà làm giảm mạnh số phép tính cần thực hiện.

⭐Vì vậy, Dynamic Programming đặc biệt hữu ích trong các bài toán có quy mô lớn
Một bài toán nhỏ có thể chưa cho thấy rõ sự khác biệt. Nhưng khi số phương án tăng lên, việc ghi nhớ và tái sử dụng kết quả có thể quyết định một bài toán được giải trong vài giây hay phải mất rất nhiều thời gian để xử lý.

Ảnh lấy từ sách của Winston về Operation Research

🚗 Cách mà Dynamic Programming giải một bài toán kinh điển trong vận hành doanh nghiệp(Vận trù học - Phần 38, có code giả...
30/07/2026

🚗 Cách mà Dynamic Programming giải một bài toán kinh điển trong vận hành doanh nghiệp

(Vận trù học - Phần 38, có code giải mô hình ở cmt)

Hãy tưởng tượng một bài toán đơn giản về Joe - đang sống tại New York và muốn lái xe đến Los Angeles để tìm kiếm cơ hội mới.

❌ Tuy nhiên, Joe có một hạn chế: ngân sách không nhiều, vì vậy mỗi tối anh phải nghỉ lại nhà của một người bạn. Những người bạn này sống tại các thành phố như Columbus, Nashville, Louisville, Kansas City, Omaha, Dallas, Denver và San Antonio. Các bạn có thể xem rõ hơn đề bài ở trong hình

Câu hỏi đặt ra là:

👉 Joe nên nghỉ lại thành phố nào mỗi đêm để tổng quãng đường di chuyển là ngắn nhất?

Nếu thử liệt kê tất cả các tuyến đường, Joe sẽ phải xem xét rất nhiều phương án khác nhau. Với một mạng lưới lớn hơn, số phương án có thể tăng lên cực kỳ nhanh.

Dynamic Programming giải quyết bài toán theo một cách thông minh hơn: bắt đầu từ đích và tính ngược về điểm xuất phát.

⭐Bước 1: Xét các thành phố gần Los Angeles nhất

Ví dụ xét từ Denver đến Los Angeles, quãng đường là 1.030 dặm. Từ San Antonio đến Los Angeles, quãng đường là 1.390 dặm.

Vì không còn lựa chọn trung gian nào khác, đây chính là khoảng cách ngắn nhất từ hai thành phố này đến Los Angeles.

⭐Bước 2: Tính cho các thành phố ở chặng trước

Giả sử Joe đang ở Kansas City. Anh có thể đi tiếp đến Denver hoặc San Antonio.

📌Nếu qua Denver:

610 + 1.030 = 1.640 dặm

📌 Qua San Antonio:

790 + 1.390 = 2.180 dặm

⭐ Như vậy, lựa chọn tốt nhất từ Kansas City là đi qua Denver, với tổng quãng đường còn lại là 1.640 dặm. Các bạn có thể xem code giải ở cmt để hiểu rõ hơn về cách giải

Điểm quan trọng là khi tính toán cho Kansas City, chúng ta không cần giải lại toàn bộ hành trình từ Denver đến Los Angeles. Kết quả đó đã được tính và lưu lại từ bước trước. Và đây chính là tư tưởng cốt lõi của Dynamic Programming:

👉 Các bạn thấy quy hoạch động khá gần gũi với cách giải quyết vấn đề thường ngày đó là giải từng bài toán nhỏ một lần, lưu kết quả và sử dụng lại khi giải bài toán lớn hơn.

Tiếp tục tính ngược qua các chặng, ta có thể xác định được tuyến đường tối ưu, lấy ví dụ như New York → Columbus → Kansas City → Denver → Los Angeles

Điều thú vị là Dynamic Programming không cố gắng giải toàn bộ hành trình trong một lần. Phương pháp này liên tục trả lời một câu hỏi đơn giản:

Nếu đang ở thành phố hiện tại, nên đi đến đâu tiếp theo để tổng quãng đường từ đây đến Los Angeles là nhỏ nhất ?

⭐Về mặt toán học, nguyên tắc này có thể viết ngắn gọn như sau:

👉 Chi phí tối ưu tại trạng thái hiện tại = min {chi phí di chuyển tiếp theo + chi phí tối ưu còn lại}

Đôi khi, để giải một bài toán lớn, chúng ta không cần xem xét mọi khả năng cùng lúc. Chúng ta chỉ cần giải đúng các bài toán nhỏ, lưu lại kết quả và ghép chúng lại với nhau.

👉 P.s: Do tôi chỉ set được auto comment cho các bài viết trên page, nên phiền các bạn xem được bài đăng này ở gr khác thì vào phần cmt của bài viết gốc để lấy code nhé

🔄 Dynamic Programming: Giải một bài toán lớn bằng những quyết định nhỏ(Vận trù học - Phần 37)Hãy tưởng tượng bạn cần tìm...
29/07/2026

🔄 Dynamic Programming: Giải một bài toán lớn bằng những quyết định nhỏ

(Vận trù học - Phần 37)

Hãy tưởng tượng bạn cần tìm tuyến đường ít tốn kém nhất để đi từ Hà Nội đến một thành phố khác.

Thay vì thử tất cả các tuyến đường có thể, vốn là một cách làm rất mất thời gian khi số lựa chọn tăng lên, thì bạn có thể chia hành trình thành nhiều chặng nhỏ. Ở mỗi chặng, bạn xác định phương án tốt nhất, lưu lại kết quả và sử dụng nó để giải quyết những chặng tiếp theo.

👉Đó chính là tư tưởng cốt lõi của Dynamic Programming – Quy hoạch động

⭐Dynamic Programming là một phương pháp giải quyết bài toán bằng cách:

📌Chia bài toán lớn thành các bài toán nhỏ hơn
📌Giải từng bài toán nhỏ một lần
📌Lưu lại kết quả đã tính
📌Kết hợp các kết quả đó để tìm ra phương án tối ưu cho toàn bộ bài toán

Điểm đặc biệt của phương pháp này thường nằm ở việc các bài toán nhỏ thường bị lặp lại. Thay vì tính đi tính lại cùng một kết quả, Dynamic Programming sẽ ghi nhớ kết quả trước đó và tái sử dụng khi cần.

Ví dụ, doanh nghiệp cần lập kế hoạch tồn kho trong 12 tháng. Ở mỗi tháng, nhà quản lý phải quyết định:

📦 Nên đặt thêm bao nhiêu hàng?
📦 Nên giữ lại bao nhiêu hàng tồn kho?
📦 Làm thế nào để cân bằng chi phí lưu kho và nguy cơ thiếu hàng?

Quyết định trong tháng này sẽ ảnh hưởng đến lượng tồn kho và các lựa chọn trong tháng tiếp theo. Dynamic Programming giúp doanh nghiệp đánh giá chuỗi quyết định theo thời gian, thay vì tối ưu riêng lẻ từng tháng.

⭐Phương pháp này còn được xây dựng trên một tư tưởng nổi tiếng của nhà toán học Richard Bellman khi mà một chiến lược tối ưu phải bao gồm các quyết định tối ưu cho những giai đoạn còn lại của bài toán.

Ngày nay, Dynamic Programming được ứng dụng trong rất nhiều lĩnh vực nghiên cứu tiêu biểu có thể kể đến như:

⭐ Tìm đường đi ngắn nhất
⭐ Lập kế hoạch sản xuất
⭐ Tối ưu tồn kho
⭐ Phân bổ nguồn lực
⭐ Lập lịch vận tải
⭐ Xử lý chuỗi dữ liệu
⭐ Học tăng cường – Reinforcement Learning

Dynamic Programming không đơn thuần là một thuật toán cụ thể. Đây là có thể nói là một cách tư duy rất giống cách chúng ta giải quyết vấn đề trong cuộc sống đó là:

👉Khi một bài toán quá lớn và phức tạp, hãy chia nó thành những quyết định nhỏ hơn, ghi nhớ những gì đã giải quyết và từng bước xây dựng lời giải tối ưu.

Đây cũng là một trong những nền tảng quan trọng mà người học phân tích dữ liệu, khoa học dữ liệu và vận trù học nên tìm hiểu

Ảnh minh hoạ hai kiểu dynamic programming thường thấy

🔥 Từ Nợ xấu đến bài toán Nhân Sự: Thuật toán 50 năm tuổi đang giúp các tập đoàn lớn tiên đoán tương lai như thế nào ?​Nế...
27/07/2026

🔥 Từ Nợ xấu đến bài toán Nhân Sự: Thuật toán 50 năm tuổi đang giúp các tập đoàn lớn tiên đoán tương lai như thế nào ?

​Nếu bạn đang làm việc nghiên cứu trong lĩnh vực Phân tích Dữ liệu hay Vận trù học, chắc chắn bạn từng nghe đến Chuỗi Markov (Markov Chain).

​Nhưng có một nhánh cực kỳ thực tế của Chuỗi Markov mà có thể giúp các ngân hàng, công ty tài chính và phòng HR của các tập đoàn lớn dự báo rủi ro.

👉Và đó chính là Absorbing Markov Chains (Chuỗi Markov Hấp thụ)

​⭐Absorbing Chain thực chất là gì ?

​Hình dung bạn đang chơi một trò chơi xúc xắc. Có những ô khi nhảy vào, bạn có thể nhảy tiếp sang ô khác (gọi là Trạng thái Quá cảnh - Transient States)

​Nhưng có những ô một khi bạn đã bước chân vào, bạn bị kẹt luôn ở đó và trò chơi kết thúc (gọi là Trạng thái Hấp thụ - Absorbing States)

​Chuỗi Markov Hấp thụ đơn giản là một hệ thống xác suất mà:

​📌Có ít nhất một trạng thái hấp thụ (không thể rời đi)
📌​Từ bất kỳ trạng thái ban đầu nào, bạn luôn có khả năng đi tới trạng thái hấp thụ đó

​⭐Ứng dụng thực tế trong Ngân hàng đòi nợ & HR giữ chân nhân tài

​💳 Ví dụ 1: Quản lý Quản lý Nợ Khoản thu

​Hãy nhìn cách một công ty phân loại trạng thái của các khoản nợ hàng tháng thành các nhãn chính như: ​Mới mở , Trễ 1 tháng, Trễ 2 tháng, Trễ 3 tháng

​Đến cuối cùng, khoản nợ đó chỉ có thể rơi vào 1 trong 2 kết cục:
📌​Đã thanh toán (Paid): Khách trả xong, hồ sơ đóng.
📌​Nợ xấu/Xóa sổ (Bad Debt): Không đòi được nữa, nhận lỗ, hồ sơ đóng.

👉 Trong trường hợp này Paid và Bad Debt chính là 2 Trạng thái Hấp thụ. Một khi nợ đã trả hoặc nợ xấu, nó không bao giờ quay lại trạng thái "Trễ 1 tháng" nữa.

​Bài toán đặt ra là Nếu công ty có doanh thu $1,200,000/năm, dựa trên lịch sử thanh toán của khách hàng, làm sao biết chính xác bao nhiêu tiền sẽ bị bốc hơi thành nợ xấu ?

​👔 Câu chuyện 2: Quyết định thăng tiến trong Doanh nghiệp

​Một công ty luật theo dõi con đường sự nghiệp của nhân viên qua các cấp: ​Junior (Chuyên viên), Senior (Thâm niên), Partner (Cổ đông)

​Kết cục sự nghiệp của một luật sư tại đây chỉ có 2 đường:
📌​Nghỉ việc khi chưa lên Partner
📌​Nghỉ việc sau khi đã là Partner

​👉 Đây cũng là 2 trạng thái hấp thụ. Nhờ mô hình bằng chuỗi markov hấp thụ, phòng HR có thể tính chính xác: "Một Junior mới tuyển có xác suất bao nhiêu % sẽ rời công ty trước khi lên được Partner?" hoặc "Trung bình một nhân sự sẽ ở lại công ty bao lâu?"

⭐Tính toán với Ma trận Cơ Sở (Fundamental Matrix)

Trong thực tế, bạn không cần phải ngồi tính thủ công xác suất từng bước một. Sức mạnh của toán học nằm ở việc gom tất cả xác suất vào các ma trận và giải chúng

Công cụ cốt lõi ở đây là Ma trận Cơ Sở (Fundamental Matrix), thường được ký hiệu là N. Nó được tính từ ma trận xác suất chuyển trạng thái của bạn. Từ đây ta có côg thức như sau

​👉 N = (I - Q)⁻¹

(Trong đó I là ma trận đơn vị, Q là ma trận chứa các xác suất dịch chuyển giữa các trạng thái tạm thời)

🎯 Ma trận N này trả lời cho chúng ta 2 câu hỏi lớn:

📌Hệ thống sẽ kẹt ở đâu bao lâu ?: N cho ta biết số lần (số chu kỳ) trung bình hệ thống sẽ ở lại một trạng thái tạm thời (ví dụ: Nợ trễ 1 tháng) trước khi bị "hấp thụ" (ví dụ trạng thái Đã trả).

📌Xác suất kết thúc là gì ?: Khi kết hợp N với ma trận R (ma trận chuyển từ trạng thái tạm thời sang trạng thái hấp thụ), bạn sẽ ra ngay tỷ lệ phần trăm chính xác mà một tài khoản mới mở sẽ kết thúc là "Đã trả" hay "Nợ xấu"

Ví dụ nhu từ đây chúng ta có thể đưa ra một số kết quả chẳng hạn tỷ lệ nợ xấu dự báo là 3.6%. Tức là với doanh số $1.2 triệu/năm, doanh nghiệp biết trước mình sẽ mất trắng khoảng $43,200. Số liệu này cực kỳ quan trọng để công ty trích lập quỹ dự phòng hoặc điều chỉnh chính sách cho vay.

Bạn có thể tìm hiểu thêm ở một số tài liệu về cách tính từng bước cho ma trận N. Ở phần trên mình mô tả cô đọng để chúng ta dễ hiểu thôi nhé

🎓 Nắm vững Stochastic Process trong chưa đến 1 tiếng cùng Phó Giáo sư Đại Học Michigan(Học cùng chuyên gia - Phần 27, bà...
26/07/2026

🎓 Nắm vững Stochastic Process trong chưa đến 1 tiếng cùng Phó Giáo sư Đại Học Michigan

(Học cùng chuyên gia - Phần 27, bài giảng ở cmt)

Nếu bạn đang học phân tích dữ liệu, vận trù học, hoặc machine learning, nhưng vẫn cảm thấy Stochastic Process ( Quá trình ngẫu nhiên) là một chủ đề quá trừu tượng thì chuỗi bài giảng miễn phí này rất đáng để lưu lại.

Khóa học được giảng dạy bởi Michael Dabkowski:
📌Phó Giáo sư Toán học tại University of Michigan–Dearborn
📌Ông nhận bằng Tiến sĩ Toán học từ University of Wisconsin–Madison
📌Từng là Postdoctoral Assistant Professor và Visiting Scholar tại University of Michigan
📌Đồng thời đã vượt qua các kỳ thi về Statistics for Risk Modeling và Predictive Analytics của Society of Actuaries.

Trên kênh YouTube Mike, the Mathematician, ông trình bày Stochastic Process bằng bảng kính trực quan, đi từ những khái niệm nền tảng đến các nội dung quan trọng như:

📌 Discrete Markov Chains
📌 Kolmogorov–Chapman Equations
📌 Stationary Distribution
📌 Law of Large Numbers
📌 Brownian Motion

Điểm đáng giá là mỗi video chỉ kéo dài khoảng 5–10 phút nên rất dễ xem và cô đọng

Đây không chỉ là kiến thức toán học lý thuyết. Stochastic Process là nền tảng để mô hình hóa nhu cầu, tồn kho, rủi ro, hàng đợi, hành vi khách hàng và nhiều hệ thống vận hành thực tế.

👉 P.s: Do tôi chỉ set được auto comment cho các bài viết trên page, nên phiền các bạn xem được bài đăng này ở gr khác thì vào phần cmt của bài viết gốc trên page để xem bài giảng nhé

🔢 n-Step Transition Probabilities: Markov Chain dự đoán tương lai bằng xác suất như thế nào ?(Vân trù học - Phần 35)Giả ...
24/07/2026

🔢 n-Step Transition Probabilities: Markov Chain dự đoán tương lai bằng xác suất như thế nào ?

(Vân trù học - Phần 35)

Giả sử một khách hàng hiện đang sử dụng thương hiệu B. Ở lần mua tiếp theo, họ có thể:
📌 Tiếp tục mua thương hiệu B
📌 Hoặc chuyển sang thương hiệu A

Nhưng doanh nghiệp thường không chỉ quan tâm đến lần mua kế tiếp.Họ muốn biết:

👉 Sau 2, 3 hoặc 10 lần mua nữa, xác suất khách hàng sử dụng mỗi thương hiệu là bao nhiêu?

Đây chính là bài toán của n-Step Transition Probabilities – Xác suất chuyển trạng thái sau n bước trong Markov Chain. Từ một bước đến nhiều bước trong tương lai

Trong Markov Chain, xác suất chuyển từ trạng thái i sang trạng thái j sau một bước thường được ký hiệu là: p(i,j)

Ví dụ, nếu một khách hàng đang sử dụng thương hiệu A và có 90% khả năng tiếp tục mua A ở lần tiếp theo, ta có: p(A,A) = 0,9

Tuy nhiên, nếu muốn biết xác suất khách hàng chuyển từ trạng thái i sang trạng thái j sau n bước, ta sử dụng: P(i,j,n)

Trong đó:

📌 i là trạng thái ban đầu
📌 j là trạng thái sau n bước
📌 n là số lần chuyển trạng thái

Với Markov Chain dừng, xác suất này không phụ thuộc vào thời điểm bắt đầu. Nó chỉ phụ thuộc vào trạng thái ban đầu, trạng thái mục tiêu và số bước chuyển. Điều quan trọng cần nhớ là:

Xác suất chuyển sau n bước không dự đoán chính xác hệ thống sẽ đi theo con đường nào. Nó cộng xác suất của tất cả những con đường có thể đưa hệ thống đến trạng thái mục tiêu sau n bước.

⭐Cách sử dụng nhân ma trận để tính xác suất chuyển trạng thái ?

Giả sử hệ thống đang ở trạng thái i và ta muốn biết xác suất nó ở trạng thái j sau hai bước. Hệ thống có thể đi qua nhiều trạng thái trung gian khác nhau:

i → trạng thái 1 → j

i → trạng thái 2 → j

i → trạng thái 3 → j

Với một trạng thái trung gian k, xác suất đi theo con đường: i → k → j được tính bằng: p(i,k) × p(k,j)

Sau đó, chúng ta cộng xác suất của tất cả các con đường có thể xảy ra:

P(i,j,2) = Tổng của [p(i,k) × p(k,j)] với mọi trạng thái k

📌Do đó:
P sau 2 bước = P × P = P²

📌Tương tự:
P sau 3 bước = P × P × P = P³

📌Và tổng quát:
P sau n bước = Pⁿ

Phần tử ở hàng i, cột j của ma trận Pⁿ chính là xác suất hệ thống chuyển từ trạng thái i sang trạng thái j sau n bước. Nói cách khác lũy thừa ma trận là cách Markov Chain nhìn xa hơn một bước vào tương lai.

Ví dụ: Khách hàng có đổi thương hiệu nước ngọt không?

Giả sử thị trường chỉ có hai thương hiệu: Cola 1 và Cola 2. Nếu một người vừa mua Cola 1:

📌 Có 90% khả năng tiếp tục mua Cola 1
📌 Có 10% khả năng chuyển sang Cola 2

Nếu một người vừa mua Cola 2:

📌 Có 20% khả năng chuyển sang Cola 1
📌 Có 80% khả năng tiếp tục mua Cola 2

Ma trận chuyển trạng thái có thể viết như sau:

Trạng thái hiện tại Mua Cola 1 Mua Cola 2
Đang mua Cola 1 0,90 0,10
Đang mua Cola 2 0,20 0,80

Mỗi hàng thể hiện thương hiệu khách hàng đang sử dụng. Mỗi cột thể hiện thương hiệu khách hàng sẽ mua ở lần tiếp theo.

Bây giờ, giả sử một người hiện đang uống Cola 2.Xác suất để sau hai lần mua nữa người đó sử dụng Cola 1 là bao nhiêu ?

Có hai con đường có thể xảy ra:

📌Con đường 1: Cola 2 → Cola 1 → Cola 1. Xác suất: 0,20 × 0,90 = 0,18

📌Con đường 2: Cola 2 → Cola 2 → Cola 1. Xác suất: 0,80 × 0,20 = 0,16

📌Cộng xác suất của hai con đường: 0,18 + 0,16 = 0,34

Như vậy, một người hiện đang sử dụng Cola 2 có: 34% khả năng sử dụng Cola 1 sau hai lần mua nữa.

Kết quả này cũng chính là phần tử ở hàng 2, cột 1 của ma trận P². Nếu một người hiện đang sử dụng Cola 1, xác suất họ vẫn sử dụng Cola 1 sau ba lần mua là: P(Cola 1 → Cola 1 sau 3 bước) = 0,781. Tức là khoảng 78,1%

⭐ Điều gì xảy ra nếu không biết trạng thái ban đầu ?

Trong thực tế, đôi khi chúng ta không biết từng khách hàng đang sử dụng thương hiệu nào. Thay vào đó, doanh nghiệp chỉ biết cơ cấu thị trường hiện tại.

Ví dụ:
📌 60% khách hàng đang sử dụng Cola 1
📌 40% khách hàng đang sử dụng Cola 2

Phân phối trạng thái ban đầu có thể viết là:

q = [0,60; 0,40]

Muốn xác định cơ cấu thị trường sau n lần mua, ta tính: Phân phối sau n bước = q × Pⁿ Trong ví dụ trên, sau ba lần mua, tỷ lệ khách hàng sử dụng Cola 1 là: 64,38%

Nói cách khác, Markov Chain không chỉ phân tích hành vi của một cá nhân. Nó còn có thể dự báo sự thay đổi trong cơ cấu của cả một thị trường hoặc một quần thể.

⭐Khi n ngày càng lớn, điều gì sẽ xảy ra ?

Một trong những kết quả thú vị nhất của n-Step Transition Probabilities là trong một số Markov Chain, khi số bước chuyển ngày càng lớn, xác suất các trạng thái có thể dần ổn định.

Trong ví dụ về hai thương hiệu nước ngọt, khi n đủ lớn:

📌 Xác suất khách hàng sử dụng Cola 1 tiến gần 67%
📌 Xác suất khách hàng sử dụng Cola 2 tiến gần 33%

Đáng chú ý hơn, kết quả dài hạn gần như không còn phụ thuộc vào việc ban đầu khách hàng sử dụng thương hiệu nào.

Tuy nhiên, không phải mọi Markov Chain đều hội tụ theo cách này. Kết quả dài hạn còn phụ thuộc vào cấu trúc của chuỗi và khả năng di chuyển giữa các trạng thái.

⭐n-Step Transition Probabilities được dùng để làm gì ?

Trong Vận trù học và phân tích dữ liệu, phương pháp này có thể giúp trả lời nhiều câu hỏi thực tế:

📌 Sau sáu tháng, bao nhiêu khách hàng có khả năng rời bỏ doanh nghiệp?

📌 Sau một số chu kỳ vận hành, xác suất máy móc chuyển sang trạng thái hỏng là bao nhiêu?

📌 Một khoản vay có khả năng chuyển từ nhóm nợ tốt sang nợ xấu sau nhiều kỳ hay không?

📌 Sau một số giai đoạn, hệ thống tồn kho hoặc sản xuất có khả năng nằm ở trạng thái nào?

Nếu xác suất chuyển trạng thái một bước cho chúng ta biết: “Điều gì có thể xảy ra tiếp theo ?” thì n-Step Transition Probabilities giúp trả lời một câu hỏi lớn hơn: “Nếu hệ thống tiếp tục vận động theo quy luật hiện tại, nó có thể ở đâu sau nhiều bước nữa ?”

⭐Đó cũng là sức mạnh của Markov Chain trong Vận trù học. Không chỉ mô tả sự thay đổi ở hiện tại, mà còn biến nhiều con đường tương lai thành những xác suất có thể tính toán và phân tích.

🔄 Markov Chain: Mô hình hóa tương lai với xác suất chuyển trạng thái, nền tảng của Reinforcement Learning(Vận trù học - ...
23/07/2026

🔄 Markov Chain: Mô hình hóa tương lai với xác suất chuyển trạng thái, nền tảng của Reinforcement Learning

(Vận trù học - Phần 34)

⭐Markov Chain là gì?

Markov Chain là một dạng đặc biệt của quá trình ngẫu nhiên, trong đó hệ thống chuyển từ trạng thái này sang trạng thái khác theo thời gian. Điểm đặc biệt nằm ở giả định:

👉Trạng thái tiếp theo chỉ phụ thuộc vào trạng thái hiện tại, không phụ thuộc trực tiếp vào toàn bộ con đường đã dẫn hệ thống đến trạng thái đó. Tính chất này thường được gọi là Markov Property

Chúng ta có thể lấy ví dụ như sau, giả sử một người hiện đang có 2 USD và chơi trò đặt cược:

📌Thắng thì được thêm 1 USD
📌Thua thì mất 1 USD
📌Trò chơi kết thúc khi có 4 USD hoặc mất hết tiền

Nếu hiện tại người chơi có 2 USD, xác suất để lượt tiếp theo có 3 USD hay 1 USD CHỈ PHỤ THUỘC vào số tiền hiện tại là 2 USD.

Không quan trọng trước đó người chơi từng có 1 USD rồi thắng lên 2 USD, hay từng có 3 USD rồi thua xuống 2 USD

👉Một khi trạng thái hiện tại giống nhau, quy luật dự đoán trạng thái tiếp theo cũng giống nhau.

⭐ Trái tim của Markov Chain: Ma trận xác suất chuyển trạng thái (Các bạn xem kĩ hơn trong ảnh)

Giả sử một hệ thống có ba trạng thái khách hàng: Chưa mua, Đang hoạt động, Đã rời bỏ. Và giả định ta có thể xác định các xác suất như:

📌Khách hàng chưa mua có 30% khả năng trở thành khách hàng hoạt động
📌Khách hàng đang hoạt động có 80% khả năng tiếp tục hoạt động
📌Khách hàng đã rời bỏ có 10% khả năng quay lại

Các xác suất này được gọi là transition probabilities – xác suất chuyển trạng thái. Chúng thường được trình bày trong một ma trận chuyển trạng thái.

📌Mỗi hàng thể hiện trạng thái hiện tại.
📌Mỗi cột thể hiện trạng thái ở kỳ tiếp theo.

Vì sau mỗi kỳ hệ thống chắc chắn phải nằm ở một trạng thái nào đó nên:

✅ Mọi xác suất đều không âm
✅ Tổng xác suất trên mỗi hàng phải bằng 1

Ma trận này giống như một bản đồ xác suất, mô tả cách hệ thống có thể di chuyển qua thời gian.

⭐Stationary Markov Chain là gì?

Trong nhiều mô hình cơ bản, chúng ta giả định quy luật chuyển trạng thái không thay đổi theo thời gian.

Ví dụ, nếu hôm nay một khách hàng đang hoạt động có 80% khả năng tiếp tục hoạt động vào tháng sau, mô hình giả định tỷ lệ 80% này vẫn được áp dụng ở các tháng tiếp theo.

👉 Đây được gọi là stationarity assumption – hay còn gọi là giả định tính dừng.

👉 Khi xác suất chuyển trạng thái không thay đổi theo thời gian, hệ thống được gọi là Stationary Markov Chain – Chuỗi Markov dừng.

Giả định này giúp mô hình dễ phân tích hơn, nhưng khi áp dụng thực tế, người phân tích vẫn cần kiểm tra xem hành vi của hệ thống có thực sự ổn định hay không.

⭐Trạng thái hấp thụ: Khi hệ thống đi vào nhưng không thể rời khỏi

Quay lại trò chơi đặt cược:

📌Khi người chơi có 0 USD, họ không thể chơi tiếp
📌Khi người chơi đạt 4 USD, trò chơi kết thúc

👉 Hai trạng thái 0 USD và 4 USD được gọi là absorbing states – trạng thái hấp thụ.

Một khi hệ thống đi vào trạng thái hấp thụ, nó sẽ ở đó mãi mãi. Trong thực tế, trạng thái hấp thụ có thể là:

📌 Một thiết bị hỏng hoàn toàn
📌 Một khoản vay đã được tất toán
📌 Một khách hàng đã rời bỏ vĩnh viễn
📌 Một dự án đã hoàn thành

Từ đó, Markov Chain có thể giúp trả lời những câu hỏi như:

📌 Xác suất hệ thống cuối cùng rơi vào trạng thái nào?
📌 Mất bao lâu để đạt đến trạng thái đó?
📌 Khả năng thiết bị hỏng sau một số chu kỳ là bao nhiêu?
📌 Bao nhiêu khách hàng có thể rời bỏ trong sáu tháng tới?

⭐Markov Chain được ứng dụng ở đâu?

Markov Chain không chỉ là một khái niệm xác suất trừu tượng. Nó được sử dụng trong rất nhiều lĩnh vực:

📊 Marketing: Phân tích hành trình và khả năng rời bỏ của khách hàng
🏦 Tài chính: Mô hình hóa thay đổi xếp hạng tín dụng và trạng thái khoản vay
🏭 Sản xuất: Theo dõi trạng thái hoạt động, xuống cấp và hỏng hóc của máy móc
📦 Quản lý tồn kho: Mô hình hóa mức tồn kho và tình trạng thiếu hàng
🌐 Công nghệ: Xếp hạng trang web và mô hình hóa hành vi người dùng
🤖 Trí tuệ nhân tạo: Là nền tảng của Markov Decision Process và Reinforcement Learning

🎲 Stochastic Process – Cách để mô hình hóa một tương lai bất định(Vận trù học - Phần 33) Trong nhiều bài toán thực tế, c...
21/07/2026

🎲 Stochastic Process – Cách để mô hình hóa một tương lai bất định

(Vận trù học - Phần 33)

Trong nhiều bài toán thực tế, chúng ta không chỉ quan tâm một đại lượng hiện tại mà còn cân nhắc đến tương lai ví dụ như:

📈 Giá cổ phiếu sẽ thay đổi như thế nào qua từng ngày ?
📦 Mức tồn kho sẽ biến động ra sao sau mỗi kỳ đặt hàng ?
🏭 Một máy móc có thể chuyển từ trạng thái hoạt động sang hỏng hóc khi nào ?

Điểm chung của những bài toán này là chúng thay đổi theo thời gian, nhưng chúng ta không thể biết chắc trạng thái tiếp theo của vấn đề sẽ là gì.

👉 Đó chính là lúc Stochastic Process – Quá trình ngẫu nhiên xuất hiện.

Hiểu đơn giản, một quá trình ngẫu nhiên là một cách mô hình hoá mà sử dụng một tập hợp các biến ngẫu nhiên mô tả trạng thái của hệ thống tại các thời điểm khác nhau. Ví dụ như:

X₀, X₁, X₂, …

Trong đó, Xₜ biểu diễn trạng thái của hệ thống tại thời điểm t.

⭐ Giả sử bạn bắt đầu với 2 USD và liên tục chơi một trò chơi:

📌Mỗi lượt đặt 1 USD
📌Thắng thì được thêm 1 USD
📌Thua thì mất 1 USD
📌Trò chơi kết thúc khi bạn đạt 4 USD hoặc mất hết tiền

Khi đó, Xₜ có thể được định nghĩa là số tiền bạn có sau lượt chơi thứ t. Ta biết chắc ở thời điểm hiện tại: X₀ = 2

Nhưng ở lượt tiếp theo, số tiền có thể là:

👉 X₁ = 3 nếu thắng
👉 X₁ = 1 nếu thua

⭐ Như vậy, trạng thái tương lai không cố định mà phụ thuộc vào xác suất. Do đó chuỗi X của số tiền sau mỗi vòng chơi là một quá trình ngẫu nhiên

Một ví dụ khác là một chiếc hộp chứa các quả bóng chưa được tô màu. Sau mỗi lượt, ta chọn ngẫu nhiên một quả bóng rồi tô đỏ, tô đen hoặc đổi màu của nó. Trạng thái của vấn đề của mỗi một lần chọn có thể được mô tả bằng:

👉 [Số bóng chưa tô, số bóng đỏ, số bóng đen]

Sau mỗi lần thực hiện, hệ thống chuyển sang một trạng thái mới theo một quy luật xác suất nhất định.

Điểm quan trọng là: quá trình ngẫu nhiên không có nghĩa mọi thứ hoàn toàn hỗn loạn. Ngược lại, chúng ta vẫn có thể xây dựng mô hình để phân tích:

✅ Hệ thống có thể chuyển sang những trạng thái nào?
✅ Xác suất xảy ra của mỗi trạng thái là bao nhiêu?
✅ Hệ thống có xu hướng ổn định tại đâu?
✅ Mất bao lâu để đạt đến một trạng thái mục tiêu?
✅ Rủi ro hệ thống rơi vào trạng thái xấu là bao nhiêu?

Trong Vận trù học, Stochastic Process có rất nhiều các nhánh phát triển (bạn có thể xem thêm trong hình) và là nền tảng của nhiều mô hình quan trọng như:

📌 Chuỗi Markov
📌 Lý thuyết hàng đợi
📌 Mô hình tồn kho ngẫu nhiên
📌 Mô hình tài chính và quản trị rủi ro
📌 Markov Decision Process trong học tăng cường

Nếu tối ưu hóa giúp chúng ta tìm ra quyết định tốt nhất, thì quá trình ngẫu nhiên giúp chúng ta hiểu hệ thống sẽ tiến triển như thế nào trong một thế giới đầy bất định.

Và đó cũng là một trong những tư tưởng cốt lõi của Vận trù học khi có thể chúng ta không biết chắc tương lai, nhưng lại cần mô hình hóa sự không chắc chắn đó đủ tốt để đưa ra quyết định hợp lý ngay hôm nay.

📌 Nguồn ảnh: Anuj Mubayi, Christopher Kribs, Viswanathan Arunachalam, Carlos Castillo-Chavez, Chapter 5 - Studying Complexity and Risk Through Stochastic Population Dynamics: Persistence, Resonance, and Extinction in Ecosystems

Address

Hanoi

Website

Alerts

Be the first to know and let us send you an email when Applied Data Studies - Nghiên cứu Dữ liệu Ứng dụng posts news and promotions. Your email address will not be used for any other purpose, and you can unsubscribe at any time.

Shortcuts

Share