Mô hình toán học của hệ động

Mô phỏng Sự kiện Rời rạc bằng Python

Diogo Costa (PhD, MSc)

Adjunct Professor, University of Saskatchewan, Canada & CEO of ImpactBLUE-Scientific

Mô hình toán học là gì?

Mô tả hệ tự nhiên hoặc do con người chi phối bằng khái niệm và ngôn ngữ toán học.

Phân loại mô hình:

  • Động vs. không động
  • Rời rạc vs. liên tục
  • Tất định vs. ngẫu nhiên (stochastic)
  • Tuyến tính vs. phi tuyến
  • Khác

Mô hình toán có thể đơn giản hoặc phức tạp.

  • Xấp xỉ số của thực tế
  • Không thể xét hết mọi quá trình

George Box: "Mọi mô hình đều sai, nhưng có mô hình hữu ích."

Ảnh con sông chảy qua vùng đá.

Mô phỏng Sự kiện Rời rạc bằng Python

Ví dụ: mô hình dự báo quá trình tự nhiên

Mô hình dòng chảy sông

Biểu đồ lưu lượng quan trắc và mô phỏng theo thời gian tại trạm thủy văn Goaya, Trung Quốc. Mô hình bám sát số liệu quan trắc. Lưu lượng biến thiên lớn theo thời gian ở cả mô hình và quan trắc.

  • Mô hình dự báo lưu lượng tại trạm Goaya, Trung Quốc.

  • Dự báo dựa trên thông tin mưa dùng làm đầu vào mô hình.

Ví dụ khác

  • Dự báo thời tiết
  • Dự báo sóng biển
  • Chất lượng nước hồ
  • Ngập đô thị
  • và nhiều ứng dụng khác
1 Chen, C., He, W., Zhou, H. et al. A comparative study among machine learning and numerical models for simulating groundwater dynamics in the Heihe River Basin, northwestern China. Sci Rep 10, 3904 (2020). https://doi.org/10.1038/s41598-020-60698-9
Mô phỏng Sự kiện Rời rạc bằng Python

Ví dụ: mô hình dự báo hoạt động do con người chi phối

Dự báo lạm phát

Biểu đồ lạm phát Vương quốc Anh (2002-2021) và dự báo (2022) của BNP Paribas. Dự báo cho thấy lạm phát 7% năm 2022.

  • Dự báo lạm phát rất quan trọng để tránh khủng hoảng kinh tế

Ví dụ khác

  • Chuỗi cung ứng
  • Sản xuất
  • Logistics
  • Dự báo kinh tế
  • Vận tải
  • Khác
1 https://www.ft.com/content/218d35ab-b044-467a-bb62-0d17547a4350
Mô phỏng Sự kiện Rời rạc bằng Python

Thành phần và cấu trúc mã chung

  • 3 thành phần chính
  • Dữ liệu đầu vào và tham số mô hình
# Define model parameters
processes = {"process_1": 5,
             "process_2": 2,
             "process_3": 3}
  • Cấu hình chạy
# Simulation period
simulation_time = 365

# Run model
discrete_model(processes, simulation_time)
  • Bộ máy mô hình
def discrete_model(processes, simulation_time):

  # 1) Run end-condition
  while (time < simulation_time):
      process_names = list(processes.keys())

# 2) Loop over all processes for p in range(len(process_names)): process_name_p = process_names[p]
# 3) Account for effect of each process time += processes[process_name_p]
Mô phỏng Sự kiện Rời rạc bằng Python

Đầu ra mô hình

Ví dụ đầu ra mô hình sự kiện rời rạc cho hoạt động sản xuất

=> START OF SIMULATION  (Time = 0 days) 
Time =    6.00 days  |  Process Complete: Transport of raw material
Time =    9.00 days  |  Process Complete: Building components
Time =   11.00 days  |  Process Complete: Assembling parts
Time =   14.00 days  |  Process Complete: Selling product
=> COMPLETED: Supply-Chain cycle #1 | Time = 15.5 days
Time =   21.50 days  |  Process Complete: Transport raw material
Time =   24.50 days  | Process Complete: Building components
Time =   26.50 days  |  Process Complete: Assembling parts
Time =   29.50 days  |  Process Complete: Selling product
=> COMPLETED: Supply-Chain cycle #2 | Time = 31.0 days
Mô phỏng Sự kiện Rời rạc bằng Python

Trực quan hóa kết quả mô hình

  • Trực quan hóa kết quả mô hình: giúp nhận diện mẫu hình và điểm bùng phát trong hệ.

  • Cần tùy biến biểu đồ theo mục tiêu mô phỏng.

  • Nhiều thư viện hữu ích: matplotlib, seaborn, plotly.

Logo thư viện Matplotlib. Logo thư viện Seaborn. Logo thư viện Plotly.

Ví dụ

  • Biểu đồ đường hoặc tán xạ 2D: dữ liệu mô hình (y) theo thời gian (x)
plt.plot(x, y, color='green', marker='o', 
         markersize=12, linestyle='dashed', 
         linewidth=2)
  • Biểu đồ histogram: chia dữ liệu x thành các bin và đếm số giá trị mỗi bin
plt.hist(x, 50, density=True, 
         facecolor='g', alpha=0.75)
Mô phỏng Sự kiện Rời rạc bằng Python

Ayo berlatih!

Mô phỏng Sự kiện Rời rạc bằng Python

Preparing Video For Download...