Giả ngẫu nhiên hóa sự kiện và phương pháp

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

Ngẫu nhiên hóa quy trình (hoặc sự kiện)

Ngẫu nhiên hóa là gì?

  • Quá trình làm cho một thứ trở nên ngẫu nhiên
  • Ở đây, làm cho sự kiện (hoặc quy trình) ngẫu nhiên
  • Hữu ích để mô phỏng quy trình phi tất định

Lưu ý: Máy tính, do thiết kế, không tạo được số thật sự ngẫu nhiên.

  • Thời gian hiện tại và biến bên ngoài thường được dùng để tăng độ ngẫu nhiên của bộ sinh.
Mô phỏng Sự kiện Rời rạc bằng Python

Ngẫu nhiên vs. giả ngẫu nhiên

Sinh ngẫu nhiên “thật sự”

  • Số là thật sự ngẫu nhiên
  • Ngẫu nhiên bị giới hạn bởi hạn chế nội tại của máy

Sinh giả ngẫu nhiên

  • Số được sinh theo các phân phối xác suất
  • Phân phối thống kê rõ dần khi số mẫu tăng

Ví dụ: Nhà máy với tác vụ lắp ráp thủ công

Biểu đồ phân tán cho thời lượng của một tác vụ lắp ráp thủ công khi lặp lại nhiều lần.

  • Phân phối xác suất phù hợp hơn để sinh lần xuất hiện giả ngẫu nhiên tiếp theo
Mô phỏng Sự kiện Rời rạc bằng Python

Gói cho giả ngẫu nhiên hóa

Có thể dùng nhiều gói thống kê:

  • NumPy
  • SciPy
  • statsmodels
  • pandas
  • Random
  • scikit-learn

Gói Random

  • Sinh số ngẫu nhiêngiả ngẫu nhiên

Trọng tâm của chúng ta

  • Các phương thức thường dùng trong mô hình sự kiện rời rạc
Mô phỏng Sự kiện Rời rạc bằng Python

Số ngẫu nhiên trong một khoảng

Số nguyên ngẫu nhiên trong một khoảng

Phương thức:

random.randint(start, end)

Ví dụ: Số nguyên ngẫu nhiên từ 3 (bao gồm) đến 9 (không gồm)

random.randint(3, 9)
5

Số thực ngẫu nhiên trong một khoảng

Phương thức:

random.uniform(start, end)

Ví dụ: Số thực ngẫu nhiên từ 3 đến 9

random.uniform(3, 9)
6.4557754
Mô phỏng Sự kiện Rời rạc bằng Python

Lấy mẫu và dãy ngẫu nhiên

Lấy mẫu ngẫu nhiên từ một dãy

Phương thức:

random.sample(mylist, k=number_samples)

Ví dụ: 2 phần tử ngẫu nhiên từ một list

mylist = ["apple", "banana", "cherry"]
random.sample(mylist, k=2)
['cherry', 'banana']

Xáo trộn list (đổi thứ tự phần tử)

Phương thức:

random.shuffle(mylist)

Ví dụ: Đổi thứ tự phần tử ngẫu nhiên

mylist = ["book", "pencil", "eraser"]
random.shuffle(mylist)
['eraser', 'pencil', 'book']
Mô phỏng Sự kiện Rời rạc bằng Python

Phân phối Gaussian và mũ

Phân phối Gaussian

Phương thức:

random.gauss(average, standard_dev)

Ví dụ: Số thực giả ngẫu nhiên có trung bình 100 và độ lệch chuẩn 50

random.gauss(100, 50)
123.59383

Phân phối mũ

Phương thức:

random.expovariate(lambda)
  • nếu lambda>0, kết quả [0, infinity]
  • nếu lambda<0, kết quả [-infinity, 0]

Ví dụ: Số thực giả ngẫu nhiên theo phân phối mũ với lambda = 1.5: random.expovariate(1.5)

0.2234355
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...