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
Tối ưu hóa hệ thống
Quy trình do con người vận hành
Xác định công đoạn có ảnh hưởng lớn đến đầu ra hệ thống
Lấy mẫu Monte Carlo
Hàm mục tiêu
Biểu thức toán học mô tả mục tiêu đầu ra
Chấm điểm các kịch bản mô phỏng
Ví dụ
Tổng: 100%
Tìm kiếm & Dừng: Chạy nhiều cấu hình mô hình và dừng khi đạt điều kiện mong muốn
while total_duration < 24:
model_to_run()
Chấm điểm & Xếp hạng: Chấm điểm kết quả mô phỏng theo tiêu chí trọng số
for i in range(num_runs):
out_1, out_2 = model_to_run(i)
scores[i] = 0.3 * out_1 + 0.7 * out_2
Ví dụ
scenario_num = 0
while scenario_num == 0 or total_duration[s] > 40:
scenario_num += 1
env = simpy.Environment()
env.process(manufacturing_proc(env))
env.run()
plot_results()

Ví dụ: Ngành sản xuất
Gồm các tác vụ (quy trình) tuần tự, như dây chuyền lắp ráp ô tô.
def objective_function_calc():
score_objfunc = np.ones(num_scenarios)
for s in range(num_scenarios):
for p in range(len(processes)):
score_objfunc[s] += (
processes[p]["duration_hours"]
* processes[p]["score_weight"])
Điểm
"ĐỎ": Điểm thấp; "XANH DƯƠNG": Điểm cao

Xếp hạng
Xếp hạng các lần mô phỏng theo điểm số

Tìm kiếm & dừng

Đường "Xanh dương" đạt tiêu chí "dừng"
Kết quả phân rã của mô phỏng "tốt nhất":
sum = 20 min)sum = 20 min)sum = 28 min)sum = 30 min)"Công đoạn 1" là then chốt để đạt mục tiêu này
Điểm
Mục tiêu: điểm thấp nhất = thời lượng thấp nhất

Xếp hạng
"Công đoạn 1" là then chốt để đạt mục tiêu này

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