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.. Ví dụ trên là một hệ thống rời rạ
Trang 1CHƯƠ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
Trang 21.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, : QTT 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 (S1, S2, , Sn), n là số thành phần của vectơ trạng thái, Si (i= n1 ) 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, S1 S2, , Sn), 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,kN, tR
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
S
2
S 3
S 4
S 5
Mô hình
Đầu ra Đầu v oào
Hệ thống
Trang 3hệ 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
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
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
Trang 4chuyể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
Trang 5trê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
Trang 6nhau 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:
- ti là thời gian đến của khách hàng thứ i (t0 = 0)
- SA là trạng thái server (=idle hoặc busy).
- Ai = ti - ti-1 là khoảng thời gian đến giữa khách hàng thứ i-1 và khách hàng thứ i
- Si 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)
- Di là thời gian đợi trong hàng đợi của khách hàng thứ i
- ci = ti + Di + Si là thời gian khách hàng thứ i rời hệ thống
- ei là thời gian sự kiện thứ i xảy ra (không phân biệt loại sự kiện và e0= 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 A1, A2, … và thời gian phục vụ S1, S2, S3, … và có hàm phân bố xác suất tương ứng FA , FS Thông thường FA, FS đượ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 e0 = 0, trạng thái server rỗi và t1 được xác định qua A1 (A1 là giá trị của biến ngẫu nhiên sinh ra bởi FA) Đồng hồ mô phỏng được tăng từ e0 đến e1 = t1 Vì khách hàng đến tại thời điểm t1 được phục vụ ngay (SA = idle) và có D1 = 0 và SA = busy Ta có thời gian rời hệ
thống của khách hàng thứ nhất là c1 = S1 + t1, S1 được sinh từ FS Thời gian đến của khách
Trang 7hàng thứ hai là t2 = t1 + A2 (A2 được sinh từ FA) Nếu t2 < c1, mô tả ở hình 1.3, đồng hồ mô phỏng nhảy từ e1 lên e2 = t2 (nếu ngược lại đồng hồ mô phỏng nhảy đến c1) 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à t3 = t2 + A3 Nếu c1 < t3, như hình vẽ, đồng hồ mô phỏng tăng từ e2 đến e3 = c1 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à D2 = c1 – t2 và c2 = c1 + S2 (S2 được sinh từ FS), 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 nt 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,
nt) 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 nt 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, 2t, 3t, … 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 e1 và được xét đến tại t
Khoảng [t, 2t) không có sự kiện nào, khoảng [2t, 3t) có hai sự kiện e 2 , e 3 và được xét
đến tại 3t… 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 nt 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
Trang 8Thủ 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
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
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 ào ộ đế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 ào đưa
v o danh sách s ào ự 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
Trang 9khi 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
Trang 104 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
no
yes
yes
Xây dựng b i toán v ào ào
kế hoạch nghiên cứu
1
Tập hợp dữ liệu v xây ào dựng mô hình
2
Xây dựng chương trình máy tính v kiào ể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ào ệu, kết quả
10
Đánh giá?
3
no
Hình 1.47 Các bước
nghiên cứu mô phỏng