Mô phỏng Monte Carlo
Khi nào cần tới mô phỏng và đọc P90 thế nào.
Giá trị kỳ vọng cho biết trung bình, nhưng không cho biết mức độ dao động. Không ai cam kết SLA bằng giá trị trung bình — một nửa số hồ sơ sẽ trễ hẹn.
Cách mô phỏng chạy
Mỗi lượt là một hồ sơ giả lập đi hết quy trình:
- Tới cổng loại trừ: rút số ngẫu nhiên, chọn nhánh theo đúng xác suất đã khai.
- Tới cổng song song: chạy mọi nhánh, cộng dồn chi phí, lấy max thời gian của các nhánh đã mô phỏng.
- Rơi vào nhánh rework: quay lại và chạy tiếp, đúng như thực tế.
- Ghi lại tổng thời gian và tổng chi phí của lượt đó.
Mặc định 2.000 lượt, có thể chỉnh trong tab Đơn vị của bộ chỉnh sửa.
join = joins.get(current)
successors = adjacency.get(current, [])
if join and len(successors) > 1: # khối song song
branch_times = []
for successor in successors:
branch_time, branch_cost = run_segment(successor, join, budget, seen)
branch_times.append(branch_time)
cost_total += branch_cost # chi phí: cộng mọi nhánh
time_total += max(branch_times) # thời gian: chỉ nhánh chậm nhất
current = join
else:
current = choose(current) # rẽ nhánh theo xác suất
Đọc kết quả
| Chỉ số | Ý nghĩa | Dùng để |
|---|---|---|
| Trung bình | Kỳ vọng theo mô phỏng | Đối chiếu với con số giải tích |
| P50 (trung vị) | Một nửa số hồ sơ xong trước mốc này | Mô tả “thường thì mất bao lâu” |
| P90 | 90% hồ sơ xong trước mốc này | Cam kết SLA |
| P95 | 95% hồ sơ xong trước mốc này | Cam kết chặt, hợp đồng lớn |
Một quy trình có 12% hồ sơ bị từ chối sớm (15 phút) và 88% đi hết luồng (khoảng 420 phút).
- Trung bình: 372 phút
- P50: 420 phút
- P90: 455 phút
Cam kết “trung bình 372 phút” nghe hợp lý, nhưng gần 90% hồ sơ sẽ vượt mốc đó — vì phần lớn hồ sơ đi luồng dài, còn số ít bị từ chối sớm đã kéo trung bình xuống. Con số đúng để cam kết là P90.
Biểu đồ phân phối
Cột biểu đồ trong tab Mô phỏng cho thấy hình dạng của phân phối. Hai cụm tách biệt là dấu hiệu quy trình có nhánh loại trừ với thời lượng chênh nhau nhiều — trung bình rơi vào giữa hai cụm và không mô tả đúng hồ sơ nào cả. Khi đó nên tách hai luồng thành hai SLA riêng.
Tính lặp lại được
Khi nào tin mô phỏng hơn giải tích
Khi quy trình có khối song song mà mỗi nhánh lại chứa nhánh rẽ ngẫu nhiên. Lúc đó E[max] lớn hơn max E[·], và mô phỏng phản ánh đúng thực tế: chỉ cần một nhánh xui là cả khối phải chờ. Bảng chỉ số đầu trang hiển thị cả hai con số để bạn tự thấy khoảng cách.