Tải bản đầy đủ (.doc) (16 trang)

Tài liệu CHƯƠNG 1. MÔ HÌNH MÔ PHỎNG CƠ BẢN docx

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (284.61 KB, 16 trang )

M« h×nh m« pháng c¬ b¶n
CHƯƠNG 1. MÔ HÌNH MÔ PHỎNG CƠ BẢN
1.1. GIỚI THIỆU.
1.1.1. Tính tất yếu của mô phỏng
Mô phỏng là một phương pháp sử dụng rộng rãi khi nghiên cứu các hệ thống tự nhiên và kỹ
thuật, các quá trình và hiện tượng, trong nhiều lĩnh vực khác nhau. Mô phỏng được phát triển
trên cơ sở sử dụng các mô hình toán học, các mô hình tự nhiên và bán tự nhiên với sự trợ giúp
của máy tính và một số kỹ thuật khác để diễn tả lại các quá trình hay hiện tượng của thế giới
thực. Các quá trình hay hiện tượng được quan tâm gọi là hệ thống và để nghiên cứu nó một
cách khoa học phải nắm bắt các giả thiết, quy luật hoạt động của hệ thống đó. Tập hợp các giả
thiết và quy luật, thường được đưa ra dưới dạng các công thức toán học hay quan hệ logic gọi
là mô hình.
Đối với các mô hình đủ đơn giản có thể sử dụng các phương pháp toán học (đại số, giải tích
hay lý thuyết xác suất) khi nghiên cứu và sẽ có các kết quả chính xác về hệ thống, phương
pháp này được gọi là phương pháp phân tích. Tuy nhiên hầu hết các hệ thống thực đều quá
phức tạp để xây dựng các mô hình chỉ sử dụng phương pháp này, các mô hình này phải
nghiên cứu bằng phương pháp hiệu quả hơn là mô phỏng. Phương pháp mô phỏng sử dụng
máy tính để ước lượng mô hình số và dữ liệu được tập hợp từ mô hình nhằm diễn tả lại các
đặc tính của mô hình.
Mô phỏng được ứng dụng trong rất nhiều lĩnh vực khác nhau. Dưới đây là một số lĩnh vực cụ
thể mà mô phỏng đã trở thành công cụ hữu ích và hiệu quả:
• Thiết kế và phân tích các hệ thống sản xuất.
• Ước lượng phần cứng và phần mềm cho các hệ thống máy tính.
• Ước lượng các hệ thống vũ khí quân sự mới hay tác chiến.
• Thiết kế hệ thống thông tin liên lạc và giao thức truyền.
• Thiết kế và điều hành các hệ thống giao thông như đường cao tốc, sân bay, đường
hầm, bến cảng…
• Ước lượng, thiết kế các hệ thống phục vụ như bệnh viện, bưu điện, nhà hàng,…
• Phân tích các hệ thống tài chính, kinh tế.
Mô phỏng là một trong những ngành kỹ thuật được sử dụng rộng rãi nhất trong công tác
nghiên cứu và quản lý khoa học về kỹ thuật. Mô phỏng mới chỉ được phát triển trong vài năm


gần đây, tuy nhiên giá trị và tính hiệu quả ngày càng tăng do sự cải thiện đáng kể về máy tính
và phần mềm mô phỏng.
Tuy nhiên cũng có một vài trở ngại hạn chế sự ứng dụng rộng rãi của mô phỏng. Thứ nhất,
các mô hình được nghiên cứu thường rất phức tạp và việc viết chương trình mô phỏng gặp
nhiều khó khăn. Trong những năm gần đây, sự hạn chế này được khắc phục do phát triển
nhiều phần mềm tốt có khả năng tự động cung cấp các tính năng cần thiết để mã hoá (coding)
mô hình mô phỏng. Thứ hai, các hệ thống phức tạp cần một số lượng lớn máy tính. Điều này
cũng được khắc phục do máy tính ngày càng rẻ. Do đó cùng với sự phát triển của công nghệ
sản xuất máy tính (cải thiện tốc độ, giá thành hạ) và công nghệ phần mềm, mô phỏng ngày
càng là một công cụ mạnh và không thể thiếu khi nghiên cứu các hệ thống phức tạp và các hệ
thống phục vụ huấn luyện.
1
M« h×nh m« pháng c¬ b¶n
1.1.1. Hệ thống, mô hình và mô phỏng.
Hệ thống được định nghĩa là tập hợp các thực thể (người hoặc máy) có các tác động lẫn nhau
nhằm đạt được một mục đích nào đó (Định nghĩa của Schmidt và Taylor năm 1970). Thực tế,
hệ thống còn phụ thuộc vào các đối tượng nghiên cứu cụ thể, có thể tập hợp các thực thể tạo
nên hệ thống này lại là tập hợp con đối với toàn bộ hệ thống cho nghiên cứu khác. Hệ thống
được định nghĩa như sau:
Hệ thống được xác định bởi tập hợp (T, U, Y, Q, Ω, δ, λ), trong đó:
♦ T là tập hợp thời gian.
♦ U là tập đầu vào, chứa các giá trị có thể có của đầu vào hệ thống.
♦ Y là tập đầu ra, chứa các giá trị kết quả của hệ thống.
♦ Q là tập trạng thái.
♦ Ω là tập các hàm đầu vào.
♦ δ tập hợp các hàm chuyển dịch trạng thái, δ: Q×T×T×Ω → Q.
♦ λ tập hợp đầu ra λ: Q → Y.
Hình 1.1. Sơ đồ minh hoạ hệ thống.
Trạng thái hệ thống là tập hợp tất cả các biến mô tả hệ thống tại từng thời điểm và có quan hệ
với đối tượng nghiên cứu. Các biến này được gọi là biến trạng thái của hệ thống. Ký hiệu

trạng thái hệ thống (S
1
, S
2
, , S
n
), n là số thành phần của vectơ trạng thái, S
i
(i=
n,1
) là các
thành phần trạng thái. Tập hợp các trạng thái của hệ thống Q gọi là không gian trạng thái.
Sự kiện là biến cố xảy ra mà có thể thay đổi trạng thái hệ thống, ký hiệu là (t, S
1
S
2
, , S
n
),
trong đó t là thời gian xảy ra sự kiện.
Ví dụ 1.1: Đối với hoạt động của một ngân hàng, có thể các biến trạng thái là số trạm
thu ngân bận, số khách hàng và điểm thời gian mỗi khách hàng đến. Kí hiệu n, k ∈ N
là trạm thu ngân bận và số khách hàng, t là thời gian đến của khách hàng, ta có (n, k, t)
biểu diễn trạng thái của hệ thống. Vậy có không gian trạng thái của hệ thống là Q =
{(n, k, t)| n,k∈N, t∈R }.
2
S
1
S
2

S
3
S
4
S
5
Mô hình
Đầu ra
Đầu v oà
Hệ thống
M« h×nh m« pháng c¬ b¶n
Hệ thống có thể phân thành 2 loại rời rạc và liên tục. Hệ thống rời rạc là hệ thống mà biến
trạng thái thay đổi theo từng khoảng thời gian, tức tồn tại các khoảng thời gian mà trạng thái
hệ thống không đổi. Ví dụ trên là một hệ thống rời rạc vì các biến trạng thái chỉ thay đổi tại
các thời các thời điểm khách hàng đến và rời hệ thống. Hệ thống liên tục là hệ thống mà biến
trạng thái thay đổi tương ứng với thời gian. Ví dụ máy bay đang bay với biến trạng thái là vận
tốc và vị trí là một hệ thống liên tục vì các biến trạng thái thay đổi tương ứng với thời gian.
Rất ít hệ thống thực tế là hoàn toàn rời rạc hoặc hoàn toàn liên tục nhưng hầu hết các hệ thống
loại nào đó thường chiếm ưu thế nên có thể phân hệ thống hoặc rời rạc, hoặc liên tục. Khái
niệm rời rạc hay liên tục ở đây chỉ là tương đối, đặc biệt đối với các hệ thống được xây dựng
bằng các mô hình số và được mô phỏng trên máy tính. Vì khi xây dựng các mô hình số cho hệ
thống ta đã rời rạc hoá thời gian thực.
Đối với một hệ thống, ta cần nghiên cứu theo giai đoạn hoạt động trong các điều kiện khác
nhau nhằm tìm ra quan hệ lôgic giữa các thành phần hoặc xác định được nguyên tắc làm việc
của nó khi thay đổi điều kiện. Sau đây ta xét các phương pháp khác nhau khi nghiên cứu một
hệ thống, được mô tả ở Hình 1.2.
• Thí nghiệm với hệ thống thực và mô hình của hệ thống:
Thí nghiệm với các hệ thống thực: thay đổi cơ cấu vật lý của hệ thống hay điều kiện làm việc
và cho hệ thống hoạt động dưới điều kiện mới. Điều này có thể đạt được mục đích nghiên cứu
một số tính năng của hệ thống. Tuy nhiên, phương pháp ít khả thi đối với các hệ thống phức

tạp, đặc biệt là các hệ thống sản xuất hiện đại, các hệ thống vũ khí hạt nhân chiến lược hay hệ
thống có thời gian làm việc dài. Vì vậy cần thiết xây dựng mô hình thể hiện đúng các đặc tính
của hệ thống và nghiên cứu mô hình thay thế cho hệ thống thực.
Hình 1.2. Các phương pháp nghiên cứu hệ thống
• Mô hình vật lý và mô hình toán học:
Từ “mô hình” ở đây có thể là buồng tập lái máy bay để huấn luyện phi công, hay một chiếc
tàu chiến trong một bể bơi Đó là các ví dụ về mô hình vật lý, nhưng không có một loại mô
hình cụ thể nào để nghiên cứu và phân tích các hệ thống tương tự. Lợi ích của mô hình vật lý
là có được các kết quả nghiên cứu trực quan về hệ thống, tuy nhiên ít có kết quả về quan hệ
lôgic và các đại lượng trong hệ thống. Mô hình toán học cho một hệ thống là các thành phần
3
Hệ thống
Thí nghiệm với
hệ thống hiện tại
Thí nghiệm với
mô hình hệ thống
Mô hình vật lý Mô hình toán học
Phương pháp
phân tích.
Mô phỏng
M« h×nh m« pháng c¬ b¶n
logic, đại lượng và quan hệ mà khi thay đổi thì mô hình thay đổi theo, vì vậy hệ thống cũng
thay đổi. Có lẽ mô hình toán học đơn giản nhất là quan hệ d = rt, trong đó r là vận tốc
chuyển động của vật thể, t là thời gian chuyển động và d là quảng đường đi được của vật thể.
Đây là một mô hình đúng đối với một số hệ thống đơn giản nhưng quá nghèo nàn khi thể hiện
một số hệ thống ( ví dụ giờ cao điểm trên một đường phố).
• Phương pháp phân tích và mô phỏng:
Sau khi đã xây dựng được mô hình toán học, cần phải kiểm tra xem nó có thể hiện đúng hệ
thống mà mô hình xây dựng trên đó. Nếu mô hình đủ đơn giản, có thể nghiên cứu thông qua
các quan hệ và đại lượng để đưa ra kết quả chính xác, gọi là phương pháp phân tích. Ví dụ

trong mô hình d = rt, nếu biết khoảng cách d và vận tốc r của vật thể, ta có thể làm việc với
mô hình thông qua quan hệ t = d/r, đó chính là thời gian cần tìm. Đối với những mô hình mà
phương pháp phân tích quá phức tạp, có tốc độ tính toán lớn hay mô hình toán học của hệ
thống phức tạp thì phương pháp này tỏ ra kém hiệu quả. Khi đó các hệ thống này thường
được nghiên cứu thông qua mô phỏng. Như đã nêu ở trên mô phỏng là phương pháp hiệu quả
đối với nhiều hệ thống trong nhiều lĩnh vực khác nhau, đặc biệt đối với các hệ thống phức tạp.
Chúng ta đã đề cập đến khái niệm mô hình toán học và nghiên cứu chúng bằng mô phỏng (từ
đây về sau gọi là mô hình mô phỏng), nhưng khả năng ứng dụng còn tuỳ thuộc vào các bài
toán cụ thể. Mô hình mô phỏng có thể chia làm ba loại chính:
• Mô hình mô phỏng tĩnh và động (Static vs. Dynamic): Mô hình mô phỏng tĩnh là
mô hình chỉ thể hiện hệ thống tại các thời điểm hay mô hình mà thời gian không được chú ý
đến. Ví dụ điển hình là các mô hình Monte Carlo, được xét ở phần 8.3. Mô hình mô phỏng
động là mô hình thể hiện hệ thống gắn với thời gian như hệ thống vận chuyển trong nhà máy.
• Mô hình mô phỏng tất định và ngẫu nhiên (Deterministic vs. Stochastic): Nếu mô
hình mô phỏng không chứa các yếu tố ngẫu nhiên được gọi là mô hình tất định. Ví dụ các
phương trình phản ứng hoá học là mô hình tất định vì kết quả phản ứng xảy ra theo các quy
luật hoá học, không có yếu tố ngẫu nhiên. Trong các mô hình tất định, kết quả được xác định
thông qua đại lượng đầu vào và các quan hệ trong mô hình, như vậy trong mọi trường hợp kết
quả giống nhau đối với một mô hình. Nhiều hệ thống thực mà mô hình của nó chứa ít nhất
một yếu tố ngẫu nhiên, các mô hình này được gọi là mô hình ngẫu nhiên. Ví dụ đối với các hệ
thống hàng đợi và hệ thống tồn kho (được xét ở phần sau) là các mô hình mô phỏng ngẫu
nhiên. Đối với loại mô hình này thay các yếu tố ngẫu nhiên bằng các yếu tố tất định thì mô
hình không thể hiện đúng hệ thống cần nghiên cứu. Khó khăn lớn nhất khi mô hình hoá các hệ
thống này là cần ước lượng các yếu tố ngẫu nhiên để mô hình thể hiện đúng các đặc tính của
hệ thống thực.
• Mô hình mô phỏng rời rạc và liên tục (Discrete vs. Continuous): Ta định nghĩa mô
hình mô phỏng rời rạc và liên tục tương ứng với cách định nghĩa các hệ thống rời rạc và liên
tục ở trên. Các khái niệm và mô phỏng (sự kiện) rời rạc và mô phỏng liên tục được đề cập
trong mục 3 và mục 8. Khi đề cập đến các mô hình rời rạc không chỉ sử dụng để mô hình hoá
các hệ thống rời rạc và ngược lại. Sử dụng mô hình rời rạc hay liên tục cho hệ thống cụ thể

còn phụ thuộc vào các đối tượng nghiên cứu. Ví dụ đối với mô hình dòng chảy giao thông
4
M« h×nh m« pháng c¬ b¶n
trên đường là rời rạc nếu chỉ xét đến đặc tính và sự chuyển động của từng chiếc xe. Nhưng
dòng chảy giao thông được xét đến trong các phương trình khác nhau của mô hình liên tục.
Mô hình mô phỏng được xét đến trong phần dưới đây là mô hình rời rạc, động và ngẫu
nhiên, từ đây gọi là mô hình sự kiện rời rạc.
1.1.2. Mô phỏng mô hình sự kiện rời rạc.
Mô phỏng sự kiện rời rạc là mô hình hoá hệ thống, trong đó các biến trạng thái thay
đổi theo khoảng thời gian. Sự kiện là biến cố xảy ra có thể làm thay đổi trạng thái hệ thống.
Do đó tại những điểm thời gian mà trạng thái hệ thống thay đổi thì xảy ra các sự kiện.
Ví dụ 1.2: Xét một hệ thống phục vụ chỉ có một server như hoạt động của bàn
thông tin ở sân bay, buồng khám bệnh của một dịch vụ y tế,… Ở đây, chúng ta cần
phải ước lượng thời gian đợi trung bình của một khách hàng khi đến hệ thống. Thời
gian đợi là khoảng thời gian từ khi khách hàng đến hệ thống đến khi được phục vụ.
Các biến trạng thái cho mô phỏng sự kiện rời rạc của hệ thống là trạng thái server (bận
hay rỗi), số khách hàng đợi trong hàng đợi và thời gian đến của mỗi khách hàng trong
hàng đợi. Khi khách hàng đến hệ thống hoặc được phục vụ ngay (server sẽ chuyển
trạng thái từ rỗi sang bận) hoặc xếp vào cuối hàng đợi (server bận). Khi server phục
vụ xong một khách hàng, số khách hàng trong hàng đợi xác định trạng thái của server,
hoặc chuyển sang trạng thái rỗi khi hàng đợi rỗng, hoặc tiếp tục đối với khách hàng
đầu tiên của hàng đợi. Thời gian đến của một khách hàng cần để tính thời gian đợi khi
đã biết thời gian bắt đầu được phục vụ của khách hàng đó. Đối với hệ thống này có hai
loại sự kiện xảy ra: khách hàng đến và kết thúc phục vụ một khách hàng tức khách
hàng rời hệ thống. Khách hàng đến là một sự kiện vì khi nó xảy ra trạng thái server
(biến trạng thái) thay đổi từ rỗi sang bận hoặc số khách hàng trong hàng đợi (biến
trạng thái) tăng thêm 1. Tương tự, khách hàng rời hệ thống cũng là một sự kiện vì
trạng thái server chuyển từ bận sang rỗi hoặc số khách hàng trong hàng đợi giảm 1.
Trong ví dụ trên, có hai loại sự kiện xảy ra làm thay đổi trạng thái hệ thống. Tuy
nhiên, trong một vài mô hình mô phỏng sự kiện rời rạc, sự kiện xảy ra không ảnh hưởng đến

trạng thái hệ thống. Ví dụ sự kiện kết thúc mô phỏng hệ thống tại một điểm thời gian hay sự
kiện mà khi xảy ra thay đổi hoạt động của hệ thống. Vì vậy trong khái niệm sự kiện, ta định
nghĩa có thể làm thay đổi trạng thái hệ thống.
a) Đồng hồ mô phỏng.
Vì mô hình đang xét là mô hình mô phỏng động nên cần lưu giữ thời gian trong quá
trình mô phỏng cho các xử lý về sau. Ta gọi biến lưu giá trị thời gian mô phỏng là đồng hồ
mô phỏng (simulation clock). Đơn vị của thời gian trong mô phỏng không được xác định rõ
ràng, nó cùng đơn vị với tham số đầu vào và tuỳ thuộc vào mô hình cụ thể. Nói chung không
có tính tương ứng giữa thời gian thực và thời gian mô phỏng mô hình trên máy tính, trừ các
mô hình mô phỏng ứng với thời gian thực.
Có hai phương pháp cơ bản khi sử dụng đồng hồ mô phỏng: xác định thời gian sự kiện tiếp
theo và gia tăng bước thời gian đều. Phương pháp thứ nhất được sử dụng bởi tất cả các ngôn
ngữ mô phỏng chính và những người sử dụng ngôn ngữ lập trình chung như C, Foxtran,
Pascal,… Nó rất có hiệu quả khi sử dụng cho các mô hình mô phỏng sự kiện rời rạc, thời gian
mô phỏng dài và khoảng thời gian giữa các sự kiện có phương sai lớn. Phương pháp thứ hai là
trường hợp đặc biệt của phương pháp thứ nhất khi gia tăng bởi các khoảng thời gian bằng
5
M« h×nh m« pháng c¬ b¶n
nhau. Tuy nhiên nó không kém hiệu quả khi mô hình có các khoảng thời gian giữa các sự kiện
có phương sai bé và mô phỏng các hệ thống liên tục.
• Xác định thời gian sự kiện tiếp theo:
Khởi tạo đồng hồ mô phỏng bằng 0 khi bắt đầu mô phỏng và xác định thời gian xảy ra
sự kiện tiếp theo. Tăng đồng hồ mô phỏng đến giá trị thời của sự kiện gần nhất trong các sự
kiện sắp xảy ra, cập nhật lại thông tin của hệ thống và xác định thời gian xảy ra sự kiện tiếp
theo. Tiếp tục tăng đồng hồ mô phỏng đến sự kiện sắp xảy ra nhất và thực hiện các thao tác
như bước đầu… Quá trình mô phỏng cứ tiếp tục như thế đến khi kết thúc mô phỏng. Vì trạng
thái hệ thống chỉ thay đổi khi xảy ra sự kiện nên quá trình nhảy giá trị thời gian của đồng hồ
mô phỏng từ sự kiện này đến sự kiện tiếp theo đã bỏ qua các giai đoạn “bất động” của hệ
thống và không ảnh hưởng đến kết quả mô phỏng. Giai đoạn “bất động” của hệ thống là
khoảng thời gian giữa hai sự kiện và không có sự thay đổi trạng thái.

Ví dụ 1.3: Chúng ta xét phương pháp xác định thời gian sự kiện tiếp theo cho hệ thống
hàng đợi đơn một server trong ví dụ 1.2. Ta kí hiệu các đại lượng như sau:
- t
i
là thời gian đến của khách hàng thứ i (t
0
= 0).
- SA là trạng thái server (=idle hoặc busy).
- A
i
= t
i
- t
i-1
là khoảng thời gian đến giữa khách hàng thứ i-1 và khách hàng thứ i.
- S
i
là thời gian mà server phục vụ khách hàng thứ i (không tính thời gian khách hàng
ở trong hàng đợi).
- D
i
là thời gian đợi trong hàng đợi của khách hàng thứ i.
- c
i
= t
i
+ D
i
+ S
i

là thời gian khách hàng thứ i rời hệ thống.
- e
i
là thời gian sự kiện thứ i xảy ra (không phân biệt loại sự kiện và e
0
= 0)
Hình 1.3. Phương pháp xác định sự kiện tiếp theo cho hệ thống hàng đợi một server.
Các đại lượng trên đều là các biến ngẫu nhiên. Giả sử ta biết phân bố xác suất của các khoảng
thời gian đến A
1,
A
2
, … và thời gian phục vụ S
1
, S
2
, S
3
, … và có hàm phân bố xác suất tương
ứng F
A
, F
S
. Thông thường F
A
, F
S
được xác định thông qua quá trình tập hợp dữ liệu của hệ
thống và xử lý số liệu bằng một số kỹ thuật thống kê để xác định các hàm phân bố. Tại thời
điểm e

0
= 0, trạng thái server rỗi và t
1
được xác định qua A
1
(A
1
là giá trị của biến ngẫu nhiên
sinh ra bởi F
A
). Đồng hồ mô phỏng được tăng từ e
0
đến e
1
= t
1
. Vì khách hàng đến tại thời
điểm t
1
được phục vụ ngay (SA = idle) và có D
1
= 0 và SA = busy. Ta có thời gian rời hệ
thống của khách hàng thứ nhất là c
1
= S
1
+ t
1
, S
1

được sinh từ F
S
. Thời gian đến của khách
6
M« h×nh m« pháng c¬ b¶n
hàng thứ hai là t
2
= t
1
+ A
2
(A
2
được sinh từ F
A
). Nếu t
2
< c
1
, mô tả ở hình 1.3, đồng hồ mô
phỏng nhảy từ e
1
lên e
2
= t
2
(nếu ngược lại đồng hồ mô phỏng nhảy đến c
1
). Vì khách hàng thứ
hai đến và SA = busy nên xếp vào hàng đợi và lưu lại thời gian đến, thời gian phục vụ không

được tính ở đây nhưng thời gian đến của khách hàng thứ ba là t
3
= t
2
+ A
3
. Nếu c
1
< t
3
, như
hình vẽ, đồng hồ mô phỏng tăng từ e
2
đến e
3
= c
1
và khách hàng này rời hệ thống, khách hàng
đầu tiên trong hàng đợi được phục vụ, có thời gian đợi là D
2
= c
1
– t
2
và c
2
= c
1
+ S
2

(S
2
được
sinh từ F
S
), hàng đợi giảm một khách hàng. Đồng hồ mô phỏng sẽ nhảy đến sự kiện gần nhất
sắp xảy ra…
• Gia tăng bước thời gian đều:
Đối với phương pháp này, đồng hồ mô phỏng tăng lên các khoảng

t bằng nhau, từ (n-1)∆t
đến n∆t. Sau mỗi bước tăng thời gian, xác định các sự kiện xảy ra trong khoảng [(n-1)∆t,
n∆t). Nếu có một hay nhiều sự kiện xảy ra trong đó thì các sự kiện này được xét đến ở thời
điểm n∆t. Hình vẽ 1.04 minh hoạ phương pháp này, trong đó đồng hồ mô phỏng nhảy qua các
điểm ∆t, 2∆t, 3∆t, … và e
i
(i=1,2…) là các sự kiện (không phải giá trị thứ i của đồng hồ mô
phỏng). Trong khoảng đầu tiên [0, ∆t) có một sự kiện xảy ra tai e
1
và được xét đến tại ∆t.
Khoảng [∆t, 2∆t) không có sự kiện nào, khoảng [2∆t, 3∆t) có hai sự kiện e
2
, e
3
và được xét
đến tại 3∆t… Như vậy trong các mô hình phải quy ước thứ tự xử lý của các sự kiện khi trong
khoảng có nhiều sự kiện xảy ra. Bất lợi của phương pháp này là sai số thời gian do các sự
kiện chỉ được xử lý ở cuối mỗi khoảng thời gian, do đó kết quả mô phỏng không đúng với mô
hình. Tuy nhiên điều này có thể giải quyết được phần nào khi ta giảm


t tức là tăng các
khoảng chia, như vậy sẽ làm tăng thời gian xử lý mô phỏng. Vì những lý do này nên phương
pháp này không được sử dụng khi khoảng thời gian giữa các sự kiện có phương sai lớn.
Hình 1.4. Sơ đồ phương pháp gia tăng bước thời gian đều
Phương pháp này thường được sử dụng trong các hệ thống mà có thể giả thiết rằng các sự
kiện chỉ xuất hiện tại các thời điểm n

t. Ví dụ dữ liệu của các hệ thống kinh tế thường thay
đổi hàng năm do đó có thể sử dụng phương pháp này với

t = 1 năm.
b) Xây dựng các thành phần cho mô hình mô phỏng sự kiện rời rạc.
Dù mô phỏng đã được ứng dụng trong nhiều hệ thống thực, các mô hình mô phỏng sự kiện rời
rạc cần chia thành các thành phần rời rạc và có các quan hệ logic giữa các thành phần đó giúp
người lập trình dễ cài đặt, tìm lỗi và nâng cấp chương trình. Các thành phần của mô hình mô
phỏng sự kiên rời rạc sử dụng phương pháp xác định thời gian sự kiện tiếp theo:
•Trạng thái hệ thống: tập hợp các biến cần thiết để mô tả hệ thống tại một thời điểm.
•Đồng hồ mô phỏng: biến lưu thời gian mô phỏng hiện tại.
•Danh sách sự kiện: danh sách chứa thời gian của các sự kiện sắp xảy ra.
•Bộ đếm thống kê: các biến lưu thông tin thống kê về hiệu suất hệ thống.
•Thủ tục Initialization: thủ tục khởi tạo mô hình khi bắt đầu.
•Thủ tục Timing: thủ tục xác định sự kiện tiếp theo trong danh sách sự kiện và đặt đồng hồ
mô phỏng đến giá trị này khi sự kiện xảy ra.
•Thủ tục Event:thủ tục cập nhật trạng thái hệ thống khi mỗi sự kiện xảy ra
7
M« h×nh m« pháng c¬ b¶n
•Thủ tục Library: tập hợp các thủ tục tạo biến ngẫu nhiên từ các phân bố xác suất được xác
định trong mô hình.
•Tạo báo cáo: thủ tục tính các ước lượng (từ bộ đếm thống kê) của các đại lượng đo hiệu
suất và tạo báo cáo khi kết thúc.

•Chương trình chính: thủ tục gọi thủ tục Timing để xác định sự kiện tiếp theo, chuyển điều
khiển đến thủ tục Event để cập nhật trạng thái hệ thống. Chương trình chính cũng kiểm tra
đầu ra và gọi thủ tục Tạo báo cáo khi kết thúc mô phỏng.
Hình 1.5. Sơ đồ khối phương pháp xác định sự kiện tiếp theo.
Quan hệ lôgic giữa các thành phần này được mô tả ở hình 1.4. Khi mô phỏng bắt đầu, chương
trình chính gọi thủ tục Initialization, khi đó đặt đồng hồ mô phỏng bằng 0, khởi tạo trạng thái
hệ thống, bộ đếm thống kê và danh sách sự kiện. Sau đó điều khiển sẽ trả về chương trình
chính và thủ tục Timing được gọi để xác định sự kiện sắp xảy ra nhất, nếu sự kiện loại i được
xác định thì đặt đồng hồ mô phỏng đến thời gian của sự kiện này. Chương trình chính sẽ gọi
thủ tục Event cho loại i, khi đó sẽ có ba thao tác: (1) trạng thái hệ thống được cập nhật, (2)
thông tin về hiệu suất hệ thống được lưu bởi bộ đếm thống kê, (3) thời gian của sự kiện loại i
8
Bắt đầu
Gọi thủ tục Initialization.
Bước lặp
Gọi thủ tục Timing.
2. Gọi thủ tục Event i.
Xác định sự kiện
tiếp theo loại i
Tăng đồng hồ mô
phỏng.
1
Thủ tục Initialization
Đặt đồng hồ mô phỏng = 0
Khởi tạo trạng thái hệ thống
v bà ộ đến thống kê
Khởi tạo danh sách sự kiện
0
Thủ tục Event i
Cập nhật trạng thái hệ thống

Cập nhật bộ đếm thống kê
Tạo sự kiện tiếp theo v à đưa
v o danh sách sà ự kiện
Thủ tục Library
Tạo các biến ngẫu
nhiên
Kết thúc
No
yes
Tạo báo cáo
Tính các ước lượng cần thiết.
In báo cáo
Kết thúc
2
Thủ tục Timing
M« h×nh m« pháng c¬ b¶n
tiếp theo được sinh từ hàm phân bố xác suất tương ứng và thêm vào danh sách sự kiện. Sau
khi hoàn thành các thao tác này, hoặc thủ tục Event hoặc chương trình chính sẽ kiểm tra điều
kiện dừng của mô phỏng. Nếu kết thúc mô phỏng, thủ tục Tạo báo cáo được gọi, tính các ước
lượng cần thiết và in kết quả mô phỏng. Nếu chưa kết thúc, thực hiện vòng lặp chương trình
chính-thủ tục timing-chương trình chính-thủ tục event-kiểm tra điều kiện kết thúc cho đến khi
điều kiện đầu ra được thoả mãn.
Như đã đề cập ở phần 2, hệ thống là tập hợp các thực thể. Các thực thể mô tả đặc tính của hệ
thống gọi là thuộc tính, và trong mô hình mô phỏng sự kiện rời rạc các thuộc tính này là một
phần của trạng thái hệ thống. Hơn nữa, các thực thể với một số thuộc tính chung được nhóm
thành danh sách (file hoặc tập hợp), mỗi thực thể là một bản ghi trong danh sách. Đối với hệ
thống hàng đợi đơn một server trong ví dụ 1.2 và 1.3, các thực thể là server và khách hàng.
Server có thuộc tính “trạng thái server” (IDLE hay BUSY) và khách hàng đợi trong hàng đợi
có thuộc tính thời gian đến (số khách hàng trong hàng đợi có thể xem là một thuộc tính của
server). Hơn nữa, các khách hàng trong hàng đợi được nhóm thành một danh sách, mỗi khách

hàng là một bản ghi.
Tổ chức và hoạt động của chương trình mô phỏng sự kiện rời rạc sử dụng phương pháp thời
gian sự kiện tiếp theo, có thể cài đặt bằng một ngôn ngữ như Pascal, C, Foxtran, được gọi là
phương pháp tính thời gian sự kiện để mô hình hoá mô phỏng. Thời gian các sự kiện sắp xảy
ra được đưa vào mô hình và thời gian sự kiện xảy ra được xác định trước thông qua phân bố
xác suất tương ứng. Ngoài ra có một phương pháp có thể được lựa chọn khi xây dựng mô
hình là phương pháp quá trình, thay thế quan sát mô phỏng theo các thành phần thực thể
riêng biệt và viết các mô tả thực thể khi nó hoạt động trong hệ thống: mã hoá các mô hình mô
phỏng tại điểm quan sát cần phần mềm mô phỏng riêng.
1.1.4 Các bước nghiên cứu mô phỏng.
Chúng ta xem lại một cách chi tiết các bước xây dựng mô phỏng các sự kiện rời rạc, từ đó có
một phương pháp tổng quát các bước xây dựng một chương trình mô phỏng. Hình 1. là các
bước thực hiện khi nghiên cứu một mô phỏng và quan hệ giữa các bước. Tuy nhiên không
phải tất cả các mô phỏng đều tuân theo sơ đồ này, một vài nghiên cứu chỉ có một số bước.
1. Xây dựng bài toán và kế hoạch nghiên cứu: mỗi nghiên cứu đều bắt đầu với bài
toán rõ ràng, xác định được đối tượng, có nhiều hy vọng thành công. Toàn bộ nghiên cứu
được kế hoạch hoá về con người, giá cả và thời gian cho từng khía cạnh của nghiên cứu.
2. Tập hợp dữ liệu và xây dựng mô hình:Thông tin và dữ liệu về hệ thông quan tâm
cần được tập hợp, sử dụng nó để xác định nguyên tắc hoạt động và các phân bố cho biến ngẫu
nhiên sử dụng trong mô hình. Xây dựng mô hình toán học và logic của hệ thống thực. Một mô
hình phải đủ chi tiết chứa đủ các tính chất của hệ thống mà nó thay thế. Tuy nhiên không cần
một ánh xạ một-một giữa các thành phần của mô hình và các thành phần của hệ thống thực.
3. Đánh giá? Mặc dù chúng ta tin rằng sự đánh giá có thể thực hiện trong suốt quá
trình nghiên cứu mô phỏng, có một vài điểm trong nghiên cứu mà ở đó cần có sự đánh giá cụ
thể. Trong xây dựng mô hình, bắt buộc đối với người lập mô hình xét đến ảnh hưởng của con
người trong nghiên cứu, những người có quan hệ mật thiết với hoạt động của hệ thống thực.
Đó cũng là lời khuyên đối với người lập mô hình khi đưa ra quyết định (hoặc đưa người sử
dụng vào mô hình) trên một cơ sở nào đó. Điều này sẽ làm tăng giá trị thực của mô hình và độ
tin cậy của mô hình. Thêm vào đó, cần phải có đầy đủ các phân bố xác suất xác định để sinh
các đầu vào ngẫu nhiên.

9
M« h×nh m« pháng c¬ b¶n
4. Xây dựng chương trình và kiểm tra. Mô hình mô phỏng có thể được viết bằng một
ngôn ngữ thông dụng như FOXTRAN, Pascal, C hay bằng một ngôn ngữ mô phỏng như
GPSS, SIMAN, SIMSCRIPT II.5 hoặc SLAM II.
5. Tạo các lần chạy thử. Các lần chạy thử của mô hình đã kiểm tra dùng cho mục
đích đánh giá trong bước 6.
6. Đánh giá ? Các lần chạy thử được sử dụng để kiểm tra độ nhạy đầu ra mô hình khi
có sự thay đổi nhỏ của đầu vào. Nếu đầu ra thay đổi lớn, một ước lượng tốt hơn của tham số
đầu vào cần đạt được. Nếu một hệ thống tương tự với hệ thống đã có, đầu ra của các lần chạy
thử của mô hình có thể so sánh với hệ thống thực.
7. Thiết kế thử nghiệm: Cần phải quyết định những gì về thiết kế hệ thống nếu, như
một vài trường hợp trong thực hành, có nhiều lựa chọn. Thông thường, một quyết định chính
xác không thể đưa ra vào lúc này. Vì thế sử dụng đầu ra của các lần chạy sản phẩm (bước 8)
của các thiết kế hệ thống được lựa chọn và một số kỹ thuật khác. Với mỗi thiết kế hệ thống
10
no
yes
yes
Xây dựng b i toán v kà à ế
hoạch nghiên cứu
1
Tập hợp dữ liệu v xây à
dựng mô hình
2
Xây dựng chương trình
máy tính v kià ểm tra
4
Chạy thử chương trình
5

Đánh giá?
6
Thiết kế thử nghiệm
7
Chạy sản phẩm
8
Phân tích dữ liệu ra
9
T i lià ệu, kết quả
10
Đánh giá?
3
no
Hình 1.47. Các bước
nghiên cứu mô phỏng.
M« h×nh m« pháng c¬ b¶n
được mô phỏng, quyết định đưa ra dựa trên điều kiện đầu cho mô phỏng, thời gian quá độ
(nếu có), thời gian mô phỏng và số lần mô phỏng cho mỗi lần sửa đổi. Khi thiết kế và tạo các
lần chạy sản phẩm, có thể sử dụng kỹ thuật giảm phương sai (variance-reduction techniques)
để có kết quả có sự chính xác hơn về thống kê.
8. Chạy sản phẩm: Mục đích nhằm cung cấp dữ liệu hiệu suất về thiết kế hệ thống
cần xét.
9. Phân tích dữ liệu ra: Kỹ thuật thống kê được sử dụng để phân tích dữ liệu đầu ra
từ các lần chạy sản phẩm. Mục đích nhằm xây dựng khoảng tin cậy cho các đại lượng đo hiệu
suất một thiết kế hệ thống cụ thể hoặc để quyết định hệ thống nào có quan hệ tốt nhất với một
vài đại lượng đo hiệu suất.
Tài liệu và kết quả: Vì các mô hình mô phỏng thường được sử dụng cho nhiều ứng dụng nên
cần có tài liệu về mô hình cũng như các chương trình máy tính. Cuối cùng, một nghiên cứu
mô phỏng mà kết quả không bao giờ được bổ sung là không thành công.
1.2. MỘT SỐ MÔ HÌNH BÀI TOÁN

1.2.1. Mô phỏng hệ thống hàng đợi đơn một server.
Phần này mô tả chi tiết làm thế nào để mô phỏng hệ thống hàng đợi một server. Mặc dù hệ
thống này rất đơn giản đối với các hệ thống thực, tuy nhiên nó là một mô hình điển hình để
nghiên cứu các hệ thống phức tạp hơn. Trong mục 4.1 ta mô tả hệ thống quan tâm và trạng
thái của các đối tượng chi tiết hơn. Chúng ta giải thích trực quan mô phỏng hệ thống trong
phần 4.2 bằng cách mô phỏng một hệ thống phục vụ khi mỗi sự kiện xảy ra. Phần 4.3 giải
thích về tổ chức và tính logic của chương trình, diễn đạt bằng ngôn ngữ C trong phần 4.4. Bàn
luận về kết quả mô phỏng ở phần 4.5, phần 4.6 sửa đổi thủ tục kiểm tradấu hiệu kết thúc mô
phỏng và tính logic của chương trình. Cuối cùng, phần 4.7 mô tả tóm tắt kỹ thuật nhận biết,
đơn giản hoá sự kiện và cấu trúc biến một chương trình mô phỏng.
a) Bài toán.
Xét hệ thống hàng đợi một server (như hình 1.6) bao gồm một server và một hàng đợi kiểu
FIFO với các khoảng thời gian đến A
1
,
A
2
, … là các biến ngẫu nhiên độc lập,
cùng phân bố (kí hiệu là biến ngẫu nhiên
IID). Mỗi khách hàng đến và gặp server
rỗi thì được phục vụ ngay và các khoảng
thời gian phục vụ S
1
, S
2
, … của mỗi
khách hàng cũng là biến ngẫu nhiên IID
và độc lập với khoảng thời gian đến. Khi
phục vụ xong một khách hàng, server
phục vụ tiếp khách hàng ở hàng đợi (nếu

có).
Mô phỏng bắt đầu với trạng thái “Trống
và IDLE”, tức không có khách hàng nào
và trạng thái server rỗi. Tại thời điểm 0,
ta đợi khách hàng đầu tiên đến và có
khoảng thời gian A
1
(A
1
>= 0). Ta sẽ mô
11
Server
KH rời hệ thống
KH đang được phục vụ
KH trong h ng à đợi
KH đến hệ thống
Hình 1.6. Mô hình SSQ
M« h×nh m« pháng c¬ b¶n
phỏng hệ thống này cho đến khi có khách hàng thứ n rời khỏi hàng đợi bắt đầu được phục vụ.
Lưu ý thời gian kết thúc mô phỏng theo cách trên là một biến ngẫu nhiên phụ thuộc vào các
biến ngẫu nhiên: thời gian phục vụ và khoảng thời gian đến.
Để đo hiệu suất làm việc của hệ thống này, ta sử dụng ba đại lượng. Thứ nhất là kỳ vọng của
trung bình thời gian đợi trong hàng đợi của các khách hàng đến khi kết thúc mô phỏng, kí
hiệu là d(n). Kỳ vọng này có nghĩa là: khi thực hiện mô phỏng (hay hệ thống thực), thời gian
đợi trung bình phụ thuộc vào các quan sát khoảng thời gian đến và thời gian phục vụ. Do đó
đối với lần chạy khác (hay ngày khác đối với hệ thống thực) với các điểm thời gian khác và
khoảng thời gian phục vụ mỗi khách hàng khác nên ta có một trung bình mới. Và giá trị trung
bình này được xem như là một biến ngẫu nhiên và ta ước lượng d(n) là kỳ vọng của các biến
ngẫu nhiên này. Hay d(n) có thể được xem là trung bình của các trung bình thời gian đợi của
n khách hàng. Đối với mô phỏng đơn , có thời gian đợi của các khách hàng là D

1
, D
2
,…, D
n
,
d(n) được tính như sau:
n
D
nd
n
i
i

=
=
1
)(
ˆ
Chú ý rằng thời gian đợi của mỗi khách hàng D
i
có thể bằng 0, nếu hệ thống có nhiều D
i
= 0
thì đó là một hệ thống phục vụ tốt và ước lượng đầu ra sẽ phản ánh điều này. Lý do đưa ra
ước lượng trung bình của các D
i
vì chúng không cùng phân bố xác suất (do D
1
= 0 nhưng có

thể D
2
> 0) và trung bình này có được từ thời gian đợi của các khách hàng, nó không phải là
một “trung bình” thông thường trong thống kê vì các số hạng không cùng phân bố.
)(
ˆ
nd

một ước lượng dựa trên “mẫu” (ở đây là số lần chạy mô phỏng) có kích thước bằng 1 vì
chúng ta chỉ chạy một lần mô phỏng.
Ước lượng d(n) đưa ra thông tin về hiệu suất hệ thống từ khách hàng, nhưng hệ thống cần
nhiều thông tin khác, thêm vào đó hệ thống thường phức tạp và có thể tốn kém khi thực hiện,
do đó cần tập hợp nhiều đại lượng đầu ra để đo hiệu suất của hệ thống, mô tả hệ thống ở các
khía cạnh khác nhau. Một đại lượng cần thiết đối với hệ thống đang xét là kỳ vọng của trung
bình thời gian các khách hàng trong hàng đợi, kí hiệu là q(n). Đây là một loại trung bình khác
d(n) vì nó được xét (liên tục) trên toàn bộ thời gian. Do đó ta cần định nghĩa nó theo thời gian
tức thời gian trung bình của khách hàng trong hàng đợi. Kí hiệu Q(t) là số khách hàng trong
hàng đợi tại thời điểm t, t∈R
+
và T(n) là thời gian cần thiết để quan sát được n khách hàng qua
hàng đợi. Ta có ∀t ∈ [0, T(n)] thì Q(t) ≥ 0 và nếu gọi p
i
là hệ số thời gian mà Q(t) = i. Ta có
q(n) được tính như sau:


=
=
1
)(

i
i
ipnq
Vậy q(n) là tỷ trọng trung bình của các giá trị có thể i, với i là độ dài hàng đợi và q
i
là kỳ vọng
hệ số thời gian có độ dài hàng đợi là i. Có thể ước lượng q(n) từ kết quả mô phỏng bằng cách
thay p
i
bởi ước lượng của nó:


=
=
1
ˆ
)(
ˆ
i
i
pinq
(1.1)
Trong đó
i
p
ˆ
là hệ số quan sát của thời gian trong quá trình mô phỏng mà có i khách hàng
trong hàng đợi. Nếu gọi T
i
là tổng thời gian mà hàng đợi có i khách hàng và T(n) = T

0
+ T
1
+
T
2
+ … và
i
p
ˆ
= T
i
/T(n), vì vậy công thức 1.1 có thể viết lại:
)(
)(
ˆ
1
nT
iT
nq
i
i


=
=
(1.2)
12
M« h×nh m« pháng c¬ b¶n
Hình 1.6 minh hoạ hàm Q(t) theo thời gian cho hệ thống đang xét với n=6. Khách hàng đến

tại các thời điểm 0.4, 1.6, 2.1, 3.8, 4.0, 5.6, 5.8 và 7.2. Khách hàng rời hệ thống tại các thời
điểm 2.4, 3.1, 3.3, 4.9 và 8.6, mô phỏng kết thúc tại T(6) = 8.6. Nhìn vào Q(t) ta biết các tham
số hiệu suất hệ thống, trong khoảng [0.4,1.6] có một khách hàng trong hệ thống và hàng đợi
rỗng (Q(t) = 0), điều này đúng đối với hai khoảng [3.1,3.3] và [3.8,4.0]. Khoảng [3.3, 3.8] hệ
thống không có khách hàng và server rỗi, tương tự với khoảng [0,0.4]. Để tính
)(
ˆ
nq
, ta phải
tính các T
i
mà theo hình 1.6 miền giá trị của Q(t) là { 0, 1, 2, 3 } và ta có:
T
0
= (1.6 - 0) + (4.0 – 3.3) + (5.6 – 4.9) = 3.2
T
1
= (2.1 – 1.6) + (3.1 – 2.4) + (4.9 – 4.0) + (5.8 – 5.6) = 2.3
T
2
= (2.4 – 2.1) + (7.2 – 5.8) = 1.7
T
3
= (8.6 – 7.2) = 1.4
Thay số vào phương trình (1.2) ta có:
9.9)4.13()7.12()3.21()2.30(
0
=×+×+×+×=



=i
i
iT
(1.3)
Vì vậy ước lượng cần tính là:
)(
ˆ
nq
=9.9/8.6 = 1.15. Mỗi số hạng khác 0 ở vế phải biểu thức
1.3 tương ứng với một trong các phần diện tích ở hình 1.6: 1×2.3 tương ứng phần nhạt (4
phần), 2×1.7 tương ứng với phần có màu sẫm hơn (2 phần) và 3×1.4 tương ứng với phần màu
đậm (1 phần). Như vậy ta có thể nói: Phương trình 1.2 chính là phần diện tích dưới đường
Q(t) từ điểm bắt đầu đến điểm kết thúc mô phỏng. Diện tích dưới đường cong là một tích
phân, vì vật ta có thể viết:


=

=
)(
0
0
)(
nT
i
i
dttQiT

Hình 1.7. Q(t), thời gian đến và đi của một hệ thống hàng đợi đơn một server.
và ước lượng của q(n) được tính như sau:

13
Mô hình mô phỏng cơ bản
)(
)(
)(

)(
0
nT
dttQ
nq
nT

=
(1.4)
Biu thc (1.2) v (1.4) l cỏch tớnh c lng ca q(n). Nhng biu thc (1.4) thng c
dựng hn vỡ tớch phõn trong biu thc c tớnh n gin t din tớch cỏc hỡnh ch nht, trong
quỏ trỡnh mụ phng tớnh
)(

nq
bng cỏch cng thờm din tớch cỏc hỡnh ch nht. Mt khỏc
biu thc (1.4) c dựng cho trung bỡnh liờn tc ca hm Q(t) vỡ tớch phõn l mt tng liờn
tc.
i lng cui cựng o hiu sut ca h thng l i lng phn ỏnh hiu qu lm vic ca
server. Trung bỡnh hiu sut ca server l trung bỡnh h s thi gian trong quỏ trỡnh mụ phng
m server lm vic, v kớ hiu l u(n). c lng ca u(n) l
)(

nu

: h s quan sỏt ca thi
gian trong quỏ trỡnh mụ phng m server bn.
)(

nu
cú th c tớnh trc tip t mụ phng
da vo cỏc thi im m server thay i trng thỏi (IDLE sang BUSY hay ngc li). Tuy
nhiờn thy i lng ny nh l mt trung bỡnh thi gian liờn tc, tng t nh s khỏch
hng trong hng i, ta nh ngha hm bn nh sau:



=
t tại rỗiserver ếu n
t tại bậnserver ếu n
0
1
)(tB
Vỡ vy
)(

nu
c xem nh l h s thi gian m B(t) = 1. Hỡnh 1.8 l s ca B(t) i vi
mụ phng ó s dng trong hỡnh 1.6 vi Q(t). Trong trng hp ny ta cú:
90.0
6.8
7.7
6.8
)8.36.8()4.03.3(
)(


==
+
=nu
(1.5)
Nh vy server lm vic 90% thi gian mụ phng, ú l mt hiu sut cao. Phng trỡnh 1.5
chớnh l din tớch di ng B(t) trong khi mụ phng, õy B(t) nhn giỏ tr 0 hoc 1. Ta
cú:
)(
)(
)(

)(
0
nT
dttB
nu
nT

=
(1.6)
Hỡnh 1.8. B(t), thi gian n v i ca h thng hng i n mt server (nh hỡnh 1.7)
v cú
)(

nu
l trung bỡnh liờn tc ca hm B(t). Nh trng hp ca
)(

nq

, lý do s dng (1.6)
d tớnh toỏn, trong quỏ trỡnh mụ phng tớch phõn ca B(t) c tớnh bng cỏch cụng dn
din tớch cỏc hỡnh ch nht. Trong nhiu mụ phng, cỏc thng kờ hiu sut rt cú ớch khi xỏc
nh cỏc nỳt c chai (hiu sut gn 100%) hay cụng sut ti hn, iu ny quan trng khi
server l cỏc mỏy t tin nh robot trong cỏc h thng sn xut hay cỏc mỏy tớnh ln trong
cỏc h x lý d liu.
14
M« h×nh m« pháng c¬ b¶n
Tóm lại, có ba đại lượng đo hiệu suất là: thời gian đợi trung bình
)(
ˆ
nd
, thời gian trung bình
của khách hàng trong hàng đợi
)(
ˆ
nq
và hệ số thời gian server bận
)(
ˆ
nu
. Thời gian trung bình
trong hàng đợi là một ví dụ về thống kê thời gian rời rạc vì đại lượng này được xác định dựa
trên tập biến ngẫu nhiên {D
i
} mà có chỉ số “thời gian” rời rạc, i = 0, 1, 2, …Thời gian trung
bình của khách hàng trong hàng đợi và hệ số thời gian server bận là các ví dụ về thống kê thời
gian liên tục, vì chúng xác định dựa trên tập hợp các biến ngẫu nhiên {Q(t)} và {B(t)} tương
ứng, mỗi đại lượng tính theo tham số thời gian liên tục t∈[0,∞).
Các sự kiện của hệ thống là khách hàng đến và khách hàng rời hệ thống, các biến trạng thái

cần thiết để ước lượng d(n), q(n), u(n) là trạng thái server, số khách hàng trong hàng đợi, thời
gian đến của mỗi khách hàng và thời gian của sự kiện cuối cùng. Thời gian sự kiện cuối cùng
được định nghĩa là e
i-1
nếu e
i-1
≤ t < e
i
(t là thời gian hiện tại), cần thiết để tính diện tích hình
chữ nhật khi ước lượng q(n) và u(n).
b) Ví dụ trực quan.
Chúng ta giải thích một cách trực quan hoạt động của hệ thống với số liệu đã dùng ở hình 1.7
và 1.8. Ta mô phỏng hệ thống với n = 6, e
0
= 0 và 13 sự kiện xảy ra e
1
, e
2
, …, e
13
. Giả sử rằng
khoảng thời gian đến và thời gian phục vụ được xác định như sau:
A
1
= 0.4, A
2
= 1.2, A
3
= 0.5, A
4

= 1.7, A
5
= 0.2, A
6
= 1.6, A
7
= 0.2, A
8
= 1.4, A
9
= 1.9,
S
1
= 2.0, S
2
= 0.7, S
3
= 0.2, S
4
= 1.1, S
5
= 3.7, S
6
= 0.6,…
Các A
i
và S
i
được tạo từ các phân bố xác suất tương ứng. Hình 1.8 thể hiện hoạt động của hệ
thống theo từng bước. Hoạt động của hệ thống như sau:

+t=0:khởi tạo (KT):mô phỏng bắt đầu, chương trình chính gọi thủ tục Initialization. Hệ thống
được khởi tạo với trạng thái server idle và không có khách hàng nào. Biến trạng thái mô
hình: trạng thái server là 0, số khách hàng trong hàng đợi là 0. Mảng một chiều lưu thời
gian đến của các khách hàng trong hàng đợi, mảng được khởi tạo rỗng. Đồng hồ mô
phỏng đặt bằng 0, danh sách sự kiện được khởi tạo như sau: Thời gian đến đàu tiên là 0
+ A
1
= 0.4, kid hiệu là “A”. Vì không có khách hàng được phục vụ nên không đưa ra thời
gian của sự kiện rời hệ thống (kí hiệu “D”) nhưng để thuận tiện trong quá trình xử lý ta
đặt bằng ∞. Bốn đại lượng thống được đặt bằng 0. Sau kho khởi tạo xong, điều khiển trả
về chương trình chính và gọi thủ tục timing để xác định sự kiện tiếp theo. Vì 0.4 < ∞ nên
sự kiện tiếp theo là quá trình đến tại thời điểm 0.4.
+t = 0.4:khách hàng thứ nhất đến. Vì khách hàng đến và tìm được server rỗi (trạng thái 0) và
được phục vụ ngay, có thời gian đợi D
1
=0. Trạng thái server đặt bằng 1, hàng đợi vẫn
rỗng. Đồng hồ tăng đến thời gian hiện tại, danh sách sự kiện được cập nhật: quá trình đến
tiếp theo với A
2
=1.2 tại thời điểm 0.4+1.2=1.6, và khách hàng 1 rời hệ thống với S
1
=2.0
tại 0.4+2.0=2.4. Số khách hàng đợi n=1 và D
1
=0 được thêm vào tổng thời gian đợi. Các
phần diện tích dưới đường Q(t) và B(t) được cập nhật. Cuối cùng lưu lại thời gian sự kiện
cuối cùng là 0.4 và xác định được thời gian sự kiện tiếp theo là khách hàng thứ hai đến tại
t=1.6.
+t = 1.6: khách hàng thứ hai đến: Vì khách hàng này đến và gặp server bận nên xếp vào vị trí
đầu tiên của hàng đợi, thời gian đến được lưu vào vị trí đầu của mảng và số khách hàng

trong hàng đợi là 1. Thời gian đến tiếp theo được cập nhật với A
3
=0.5 tại 1.6+0.5=2.1,
thời gian rời hệ thống không thay đổi. Vì không có khách hàng nào từ hàng đợi vào phục
vụ nên tổng thời gian đợi không thay đổi. Phần diện tích dưới Q(t) tăng thêm 0 và diện
tích dưới B(t) tăng thêm 1.2 (=1.6-0.4). Sự kiện tiếp theo được xác định là khách hàng
thứ ba đến tại t=2.1.
+t = 2.1: khách hàng thứ 3 đến: Vì trạng thái server 1 nên hàng đợi tăng thêm 1, thời gian đến
lưu vào vị trí thứ hai trong hàng đợi. Quá trình đến tiếp theo được xác định với tại t + A
4
15
M« h×nh m« pháng c¬ b¶n
= 2.1 + 1.7 = 3.8. Hai phần diện tích dưới B(t) và Q(t) được cập nhật với khỏng thời gian
2.1-1.6=0.5. Sự kiện tiếp theo được xác định là khách hàng 1 rời hệ thống tại t=2.4.
+t = 24:khách hàng thứ nhất kết thúc: Trạng thái server vẫn là 1 và khách hàng thứ hai từ
hàng đợi vào dịch vụ. Hàng đợi giảm 1, mảng lưu thời gian đến được xoá phần thứ nhất.
Thời gian được phục vụ của khách hàng thứ hai là S
2
=0.7 nên danh sách sự kiện xác định
thời gian kết thúc dịch vụ 2.4+0.7=3.1. Thời gian đến không thay đổi. Tông thời gian đợi
tăng thêm D
2
=2.4–1.6=0.8 (Giá trị 1.6 là thời gian khách hàng thứ hai được lưu trong
mảng thời gian đến ). Diện tích dưới Q(t) tăng thêm 2×(2.4-2.1) và B(t) tăng thêm
1×(2.4-2.1). Thời gian sự kiện cuối cùng được cập nhật và xcá định thời gian sự kiện tiếp
theo là khách hàng thứ hai kết thúc dịch vụ tại t=3.1.
+t = 3.1: khách hàng thứ hai kết thúc: Các thay đổi tương tự như khách hàng 1 tại t=2.4. Nhớ
rằng sau khi sự kiện được xử lý thì hàng đợi rỗng và trạng thái server 1.
+t = 3.3: khách hàng thứ ba kết thúc. Các thay đổi tương tự hai phần trên với các chú ý: vì
hàng đợi rỗng nên trạng thái server chuyển sang 0 và thời gian kết thúc dịch vụ tiếp theo trong

danh sách sự kiện là ∞.
16

×