Trong thực tế, chúng ta bắt gặp rấtnhiều các hệ thống được thiết lập bởi các yêu cầu của khách hàng, trong đócác thời điểm xuất hiện được xem như một đại lượng ngẫu nhiên, còn nhu cầ
Trang 1Nguyễn Ngọc Thanh
NGHIÊN CỨU VÀ SỬ DỤNG CÔNG CỤ
GENERAL PURPOSE SIMULATION SYSTEM
TRONG BÀI TOÁN MÔ PHỎNG HÀNG ĐỢI
LUẬN VĂN THẠC SĨ KHOA HỌC MÁY TÍNH
Thái Nguyên - 2012
ĐẠI HỌC THÁI NGUYÊN
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG
Trang 2NGHIÊN CỨU VÀ SỬ DỤNG CÔNG CỤ GENERAL PURPOSE SIMULATION SYSTEM
TRONG BÀI TOÁN MÔ PHỎNG HÀNG ĐỢI
Chuyên ngành: Khoa học máy tính
Mã số: 60 48 01
LUẬN VĂN THẠC SĨ KHOA HỌC MÁY TÍNH
NGƯỜI HƯỚNG DẪN KHOA HỌC
TS Lê Quang Minh
Thái Nguyên - 2012 LỜI CAM KẾT
Tôi xin cam đoan Luận văn là do tôi thực hiện, được hoàn thành trên cơ
sở tìm kiếm, nghiên cứu, tổng hợp phần lý thuyết và các phương pháp kĩ thuậtđược trình bày bằng văn bản trong nước và trên thế giới Mọi tài liệu tham
Trang 41.2.1 Cường độ dòng vào 7
1.2.1.1 Cường độ dòng vào tiền định 7
1.2.1.2 Cường độ dòng vào Poisson 7
1.2.2 Hàng chờ (Queue) 8
1.2.3 Kênh phục vụ 8
1.2.4 Dòng ra 9
1.2.5 Nguyên tắc phục vụ của hệ thống dịch vụ 10
1.3 Trạng thái hệ thống phục vụ 10
1.3.1 Định nghĩa 10
1.3.2 Quá trình thay đổi trạng thái của hệ thống phục vụ 11
1.3.3 Sơ đồ trạng thái 11
1.3.4 Qui tắc thiết lập hệ phương trình trạng thái 12
Chương 2: 14
HIỆN TRẠNG MỘT SỐ CÔNG CỤ MÔ PHỎNG BÀI TOÁN HÀNG ĐỢI .14 2.1 Ngôn ngữ mô phỏng GPSS và công cụ GPSS World 15
2.1.1 Giới thiệu về ngôn ngữ GPSS 15
2.1.2 Sự ra đời của ngôn ngữ GPSS 15
2.1.3 Những ưu điểm của ngôn ngữ GPSS 16
2.1.4 Các ứng dụng của công cụ mô phỏng GPSS World 17
2.2 Các công cụ mô phỏng sử dụng ngôn ngữ đặc tả Petri-net 19
2.2.1 Các khái niệm cơ bản về Petri-net 19
2.2.2 Mô tả toán học về Petri-net 21
2.2.3 Một số thuộc tính của Petri-net 22
2.2.4 Một số công cụ sử dụng ngôn ngữ Petri-net 23
2.2.5 Ứng dụng của mạng Petri-net 24
2.3 Ngôn ngữ lập trình Matlab 24
2.4 Ngôn ngữ lập trình Java 25
2.5 Ngôn ngữ lập trình C++ và bộ công cụ Visual Studio.net 26
Chương 3: 28
NGHIÊN CỨU VỀ NGÔN NGỮ GPSS VÀ CÔNG CỤ GPSS WORLD 28
Trang 53.3 Các đối tượng trong GPSS 32
3.4 Block cơ bản trong GPSS 34
3.4.1 Block làm việc với Transactions 36
3.4.2 Facilities 39
3.4.3 Queue 40
3.4.4 Các Blocks dùng để điều khiển dịch chuyển của Transactions 41
3.4.5 Phân phối xác suất nội tại (Built-in Probability Distributions) 41
3.5 GPSS World Student Version 42
Chương 4: 45
SỬ DỤNG NGÔN NGỮ GPSS VÀO BÀI TOÁN THỰC TẾ 45
4.1 Quy trình ứng dụng GPSS mô phỏng hệ thống phục vụ đám đông 45
4.2 Bài toán 46
4.2.1 Bài toán 1: 46
4.2.1.1 Phân tích bài toán 46
4.2.1.2 Giải bài toán 49
4.2.1.3 Mô hình GPSS World 50
4.2.2 Bài toán 2: 57
4.2.2.1 Phân tích bài toán 57
4.2.2.2 Giải bài toán 60
4.2.2.3 Mô hình GPSS WORLD 61
KẾT LUẬN VÀ KIẾN NGHỊ 65
1 Kết luận 65
2 Kiến nghị 66
TÀI LIỆU THAM KHẢO 67
DANH MỤC CÁC KÝ HIỆU, CHỮ VIẾT TẮT
Kí hiệu Diễn giải
Trang 6GPSS General Purpose Simulation System
WoPeD Workflow Petri-net Designer
TAPAAL Tool for Verification of Timed-Arc Petri-nets
DANH MỤC CÁC BẢNG, BIỂU
Trang
Trang 7Bảng 2 So sánh kết quả tính toán theo lý thuyết với tính toán
Bảng 3 So sánh kết quả tính toán theo lý thuyết với tính toán
DANH MỤC CÁC HÌNH
Trang
Trang 8Hình 1.3: Sơ đồ trạng thái của hệ thống phục vụ 12
Hình 2.1: Minh họa cửa sổ làm việc của GPSS World 16
Hình 2.2: Ví dụ về Petri-net 20
Hình 2.3: Minh họa tính tiếp cận của Petri-net 22
Hình 2.4: Minh họa tính bất tử của Petri-net 23
Hình 2.5: Minh họa tính không có đường bao giới hạn của Petri-net 23
Hình 2.6: Minh họa tính bảo thủ của Petri-net 23
Hình 2.7: Minh họa công cụ Netlab tích hợp trên nền tảng Matlab 24
Hình 2.8: Minh họa Applet: The Petri - Net - Simulator chạy trên
Hình 2.9: Minh họa công cụ YASPER phát triển trên công nghệ Net 26
Hình 3.1 Một hệ phục vụ đám đông đơn giản 35
Hình 3.2: Cửa sổ Untitled Model 1 với Model của hệ phục vụ đám
Hình 3.3: Ví dụ một cửa sổ Block Window 43
Hình 3.4: Ví dụ về một cửa sổ REPORT 43
Hình 4.1: Điều kiện bài toán 47
Hình 4.2: Cấu trúc mô hình phân tích 47
Hình 4.3: Sơ đồ thuật toán hoạt động của mô hình mô phỏng 48
Hình 4.4: Điều kiện bài toán 58
Hình 4.5: Cấu trúc mô hình phân tích 58
Hình 4.6: Sơ đồ thuật toán hoạt động của mô hình mô phỏng 59
Trang 9MỞ ĐẦU
Những năm gần đây, việc ứng dụng công nghệ thông tin vào các hoạtđộng trong đời sống, xã hội là rất cần thiết Trong thực tế, chúng ta bắt gặp rấtnhiều các hệ thống được thiết lập bởi các yêu cầu (của khách hàng), trong đócác thời điểm xuất hiện được xem như một đại lượng ngẫu nhiên, còn nhu cầuđược đặc trưng bằng khối lượng các công việc phải làm để phục vụ, thứ tự ưutiên trước sau, thời gian hoàn thành công việc và toàn bộ công việc Đó lànhững hệ thống như: Mạng điện thoại, mạng máy tính, hệ thống phục vụ sửdụng phòng máy thực hành, hệ thống các quầy thu ngân trong siêu thị, hệthống bán vé tự động, sân bay, Những hệ thống này được biết đến với têngọi hệ thống phục vụ đám đông (hay hệ thống hàng đợi) [1]
Nhìn chung các hệ thống phục vụ đám đông là hệ thống phức tạp, việcvận hành và tính toán các đặc trưng của hệ thống để tư vấn cho nhà quản lý làmột vấn đề hết sức cần thiết Trong quá khứ, có rất nhiều dự án xây dựng hệthống phục vụ phức tạp dựa trên hàng chờ (Queue) không thành công vì đãkhông đặc tả được chính xác bài toán thực tiễn Việc xây dựng mô hình toánhọc cho mỗi hệ thống là rất cần thiết để giảm chi phí tối đa cho các hoạt độngđặc tả nó Khi đó tính chất đầy đủ của các mô hình mô phỏng cần đạt đượcviệc mô phỏng quá trình làm việc của mỗi phần tử trong hệ thống với việcđảm bảo logic, quy tắc của sự tương tác và phát triển của chúng, cả trong
không gian và trong thời gian Các câu hỏi được đặt ra là: Làm thế nào để mô
phỏng một hệ thống phức tạp dưới dạng đơn giản nhưng chính xác? Phương pháp nào là khả thi nhất, tối ưu nhất ? Có rất nhiều phương pháp đã được đưa
ra để giải quyết bài toán trên như: Tính toán bằng các công thức toán học, xâydựng hệ thống phục vụ bằng các ngôn ngữ lập trình (Pascal, C++,…), môphỏng bằng các công cụ mô phỏng (Matlab, Petri Network, …) Để xây dựng
Trang 10mô hình mô phỏng bằng cách sử dụng các ngôn ngữ lập trình truyền thống làkhá phức tạp, khó khăn do khi lập trình chúng ta phải quản lý các sự kiện theomột mô hình nhiều sự kiện xảy ra đồng thời (song song) với việc xây dựnghàm tạo ngẫu nhiên các sự kiện (random) cũng không hề đơn giản, chính vìvậy đã xuất hiện những ngôn ngữ mô phỏng chuyên dụng Một trong nhữngngôn ngữ chuyên dụng mô phỏng hệ thống phức tạp, rời rạc có hiệu quả vàphổ biến nhất hiện nay là General Purpose Simulation System (GPSS) [4],ngôn ngữ này thuộc về lớp ngôn ngữ hướng vấn đề Lĩnh vực áp dụng chínhcủa GPSS là hệ thống phục vụ đám đông Đối tượng của ngôn ngữ này được
sử dụng tương tự như: Thành phần chuẩn của một hệ thống phục vụ đámđông; các yêu cầu, thiết bị phục vụ, hàng đợi, … Tập hợp đầy đủ những thànhphần như vậy cho phép xây dựng các mô phỏng phức tạp trong khi đảm bảonhững thuật ngữ thông thường của hệ thống phục vụ đám đông
Trên thế giới nói chung và ở Liên bang Nga nói riêng, việc nghiên cứu
và ứng dụng của GPSS rất phổ biến và phát triển Tuy nhiên việc triển khai vàứng dụng công cụ mô phỏng GPSS trong giải quyết các bài toán hệ thốngphục vụ đám đông là rất mới ở Việt Nam
Trên cơ sở những nghiên cứu đã có, luận văn đã dựa trên định hướngxây dựng mô phỏng hệ thống phục vụ đám đông và sử dụng công cụ GPSSvào hai bài toán: Bài toán phân phối sử dụng trong phòng máy thực hành củamột trường đại học và bài toán sử dụng đường băng sân bay
Luận văn gồm 4 chương với nội dung được mô tả sơ bộ dưới đây:
Chương 1 Cơ sở lý thuyết về hệ thống hàng đợi: Cơ sở lý thuyết phục
vụ đám đông bao gồm các mô tả về một hệ thống phục vụ nói chung như: cácyếu tố của hệ thống phục vụ (cường độ dòng vào, dòng ra, hàng chờ, kênhphục vụ), trạng thái của hệ thống (quá trình thay đổi trạng thái của hệ thốngphục vụ, sơ đồ trạng thái, quy tắc thiết lập hệ phương trình trạng thái)
Trang 11Chương 2 Một số công cụ mô phỏng các bài toán hàng đợi: Giới
thiệu tổng quan một số công cụ mô phỏng được sử dụng trong thực tế để giảiquyết các bài toán hàng đợi, như: Ngôn ngữ mô phỏng GPSS và công cụGPSS World; Các công cụ mô phỏng sử dụng ngôn ngữ đặc tả Petri-net;Ngôn ngữ lập trình Matlab; Ngôn ngữ lập trình Java; Ngôn ngữ lập trình C++
và bộ công cụ Visual Studio.NET
Chương 3 Nghiên cứu về ngôn ngữ GPSS và công cụ GPSS World:
Mô tả chi tiết về ngôn ngữ mô phỏng GPSS bao gồm định nghĩa, khái niệmcũng như cấu trúc thành phần Nội dung chính của chương đề cập đến cấutrúc của một thao tác lệnh, các đối tượng (đối tượng động, đối tượng điềuhành, đối tượng thuộc về thiết bị, đối tượng tĩnh, đối tượng hỗ trợ tính toán,đối tượng phục vụ lưu trữ, đối tượng nhóm) và các Block cơ bản trong GPSS.Chương này cũng giới thiệu một trong những công cụ phổ biến hỗ trợ thao tácvới ngôn ngữ GPSS là công cụ GPSS World
Chương 4 Sử dụng ngôn ngữ GPSS vào bài toán thực tế: Chương
này tập trung vào việc giới thiệu bài toán phân phối trong sử dụng phòng máythực hành và bài toán sử dụng đường băng sân bay Đồng thời, đặc tả quytrình chung sử dụng GPSS để mô phỏng một hệ thống phục vụ đám đông,cách tiếp cận giải quyết bài toán thông qua công cụ GPSS World
Kết luận: Tóm lược nội dung chính của luận văn và nêu định hướng
phát triển trong thời gian tới
Trang 12Chương 1:
CƠ SỞ LÝ THUYẾT VỀ HỆ THỐNG HÀNG ĐỢI
Chủ đề chính của luận văn là áp dụng ngôn ngữ GPSS vào bài toán hệthống phục vụ đám đông Chương này tập trung vào cơ sở lý thuyết phục vụđám đông (hay lý thuyết hàng đợi), mô tả hệ thống, các yếu tố của hệ thốngnhư: Cường độ dòng vào, hàng chờ, kênh phục vụ, dòng ra, … và trạng thái
- Hệ thống phục vụ: Bao gồm các máy phục vụ
- Máy phục vụ: Các kênh phục vụ
- Dòng yêu cầu ra: Các yêu cầu được phục vụ
Trang 13Chi tiết về hệ thống phục vụ sẽ được trình bày cụ thể trong phần 1.2.Trong các hệ thống phục vụ, hàng đợi xuất hiện bất cứ lúc nào khi nhucầu hiện tại đối với dịch vụ vượt quá khả năng cung ứng dịch vụ tại thời điểm
đó Thời gian một yêu cầu đến phải chờ đợi phụ thuộc vào một số yếu tố như:
Số lượng giao dịch trong hệ thống, số kênh giao dịch cung ứng dịch vụ tạithời điểm đó và thời gian phục vụ cho mỗi yêu cầu đến Ta có thể sử dụngmột trong hai phương pháp “hộp đen” hoặc phương pháp “hộp trắng” để mô
tả một hệ thống phục vụ đám đông Trong Luận văn này, chúng ta sẽ mô tả hệthống phục vụ đám đông bằng phương pháp “hộp đen” [2]
Hình 1.2: Mô tả hệ thống phục vụ đám đông
Một hệ thống phục vụ đám đông có thể được ký hiệu theo Kendall [2,3]dưới dạng: A|B|m|n
Trong đó:
A: Phân phối của thời gian vào
B: Phân phối thời gian phục vụ
m: Số máy phục vụ
n: Số chỗ trong hàng đợi
A, B có thể nhận một trong các phân phối sau:
λ: Cường độ xuất hiện của sự kiện đầu vào
µ: Cường độ phục vụ của kênh phục vụ
- M: Phân phối mũ [15] có hàm phân phối:
Trang 14 x e x
1 (1.1)Trong đó:
F(x): Hàm phân bố của phân phối mũ
- Ek: Phân phối Erlang k pha [15] có hàm phân phối:
j
j x
j
x e x
(1.2)Phân phối Erlang là trường hợp đặc biệt của phân phối Gamma với tham
số hình dạng là số nguyên, được phát triển để dự đoán các thời gian đợi trongcác hệ thống hàng đợi
x
j
e x
F(x): Hàm phân bố của phân phối mũ
- D: Phân phối tất định (Deterministic distribution), tức thời gian vào vàthời gian phục vụ là hằng số Hàm phân phối của phân phối này:
1, nếu x ≥ x0
F (x) = (1.4)
0, nếu x < x0
- G: Phân phối tổng quát (General distribution)
- GI: Phân phối tổng quát với các thời gian vào hệ thống hoặc thời gianphục vụ độc lập nhau [2]
Trang 15độ dòng vào Poisson.
1.2.1.1 Cường độ dòng vào tiền định
Cường độ dòng vào tiền định là dòng vào trong đó những yêu cầu đến hệthống phục vụ tại các thời điểm cách đều nhau một khoảng a, là một đạilượng ngẫu nhiên có hàm phân bố xác suất là:
0, nếu x < a
F (x) = (1.5)
1, nếu x ≥ a
1.2.1.2 Cường độ dòng vào Poisson
Cường độ dòng vào Poisson là dòng yêu cầu đến hệ thống tuân theo luậtphân phối Poisson
Cường độ dòng vào Poisson được chia làm hai loại:
Trang 16- Cường độ dòng vào Poisson không dừng: Là cường độ dòng vào màxác suất xuất hiện x yêu cầu trong khoảng thời gian Dt, kể từ thời điểm t, phụthuộc vào t, nghĩa là:
t t a
t t a e
(
) , (
(1.6)Trong đó: a(t, Dt) là số trung bình yêu cầu xuất hiện từ t đến Dt
- Cường độ dòng vào Poisson dừng: Là cường độ dòng vào mà xác suấttrong khoảng thời gian Dt, kể từ thời điểm t, có x yêu cầu xuất hiện, khôngphụ thuộc vào t, nghĩa là:
x Dt e t ( t)x
! )
Nếu t là khoảng thời gian giữa lần xuất hiện các yêu cầu liên tiếp, thì t làmột đại lượng ngẫu nhiên tuân theo luật chỉ số, nghĩa là t có hàm phân bố xácsuất dạng:
1.2.3 Kênh phục vụ
Kênh phục vụ là toàn bộ các thiết bị kĩ thuật, con người hoặc một tổ hợpcác thiết bị kĩ thuật có cùng công nghệ tương ứng mà hệ thống sử dụng đểphục vụ yêu cầu khách hàng Ví dụ về một số dạng kênh phục vụ như: Đườngbăng sân bay, kênh đường điện thoại, quầy bán vé, …
Trang 17Đặc trưng quan trọng nhất của kênh phục vụ là thời gian phục vụ Đó làthời gian mỗi kênh phải tiêu phí để phục vụ một yêu cầu Thời gian phục vụ
là một đại lượng ngẫu nhiên tuân theo một quy luật xác suất nào đó Các dòngyêu cầu được phục vụ trong kênh phục vụ gọi là “dòng phục vụ”
Khi dòng yêu cầu được phục vụ trên các kênh phục vụ (dòng phục vụ) làtối giản thì khoảng thời gian giữa các lần xuất hiện liên tiếp các yêu cầu làmột đại lượng ngẫu nhiên tuân theo luật chỉ số, nghĩa là đại lượng ngẫu nhiên
có phân bố xác suất dạng:
F (t) = 1- e –μt (1.10)
Và hàm mật độ xác suất có dạng:
f(t) = μe –μt (1.11)Trong đó:
μ: Là cường độ phục vụ của kênh phục vụ
F(t): Hàm phân bố xác suất
f(t): Hàm mật độ xác suất
Khoảng thời gian giữa những lần xuất hiện liên tiếp các yêu cầu trongdòng phục vụ của mỗi kênh chính là khoảng thời gian kênh đó phục vụ xongtừng yêu cầu, nghĩa là thời gian phục vụ của kênh
Nếu dòng phục vụ trên mỗi kênh là dòng tối giản thì thời gian phục vụcủa kênh đó là đại lượng ngẫu nhiên tuân theo luật chỉ số, nghĩa là có hàmphân phối xác suất và mật độ xác suất dạng (1.10), (1.11)
1.2.4 Dòng ra
Dòng ra là dòng yêu cầu đi ra khỏi hệ thống, bao gồm các yêu cầu đãđược phục vụ và các yêu cầu chưa được phục vụ
- Dòng yêu cầu ra đã được phục vụ: Đó là những yêu cầu đã được phục
vụ ở mỗi kênh, nếu dòng đó là tối giản thì nó có một vai trò rất lớn trong hệ
Trang 18thống dịch vụ Người ta đã chứng minh được rằng: Nếu dòng vào là tối giảnthì dòng ra được phục vụ tại mỗi kênh sẽ là dòng xấp xỉ tối giản.
- Dòng yêu cầu ra không được phục vụ: Đây là bộ phận yêu cầu đến hệthống nhưng không được phục vụ vì một lí do nào đó
1.2.5 Nguyên tắc phục vụ của hệ thống dịch vụ
Nguyên tắc phục vụ của hệ thống dịch vụ là cách thức nhận các yêu cầuvào phục vụ của hệ thống đó và các quy định khác đối với yêu cầu Nó chỉ ra:
- Trong trường hợp nào thì yêu cầu được nhận vào phục vụ
- Cách thức bố trí các yêu cầu vào các kênh phục vụ
- Khi nào và trong trường hợp nào thì yêu cầu bị từ chối hoặc phải chờ
- Cách thức hình thành hàng chờ của các yêu cầu
Các yếu tố của phương pháp phục vụ như: tần suất phục vụ, lựa chọnmáy phục vụ… Các phương pháp phục vụ bao gồm: FCFS: First Come FirstServed (yêu cầu nào đến trước phục vụ trước), LCFS: Last Come First Served(yêu cầu đến sau được phục vụ trước), SIRO: Service In Random Order (phục
vụ các yêu cầu theo thứ tự ngẫu nhiên), PS: Processor Shared (chia sẻ bộ vi
xử lý), IS: Infinitive Server (nguyên mẫu máy chủ), Static priorities (ưu tiên
cố định), Dynamic priorities (ưu tiên không cố định), Preemption (chế độ thayđổi phục vụ)
Trang 19Hệ thống phục vụ đang ở trạng thái nào đó là một quá trình ngẫu nhiên, quátrình này tuân theo một luật phân phối xác suất nào đó Nên khả năng xuất hiệnmột trong các trạng thái xk(t) (k = 0,1,2, ) nào đó tại thời điểm t, có xác suất làmột giá trị xác định Pk(t)
1.3.2 Quá trình thay đổi trạng thái của hệ thống phục vụ
Trong quá trình hoạt động, hệ thống phục vụ chuyển từ trạng thái nàysang trạng thái khác dưới tác động của cường độ dòng vào và cường độ dòngphục vụ Xác suất của quá trình đó được gọi là xác suất chuyển trạng thái.Nguyên nhân gây ra sự chuyển trạng thái là do tác động của cường độ dòngvào và cường độ dòng phục vụ, số kênh bận và số yêu cầu trong hệ thống thayđổi, tức là dưới tác động của cường độ dòng phục vụ μ(t) và cường độ dòngvào λi(t) tại thời điểm t, hệ thống sẽ biến đổi từ trạng thái này sang trạng tháikhác
Trang 20Hình 1.3: Sơ đồ trạng thái của hệ thống phục vụ
1.3.4 Qui tắc thiết lập hệ phương trình trạng thái
Căn cứ vào sơ đồ trạng thái, ta thiết lập quan hệ giữa xác suất xuất hiệntrạng thái xk(t): Pk(t), với những tác nhân gây ra sự biến đổi trạng thái đó Mốiquan hệ này được hiển thị bởi những phương trình toán học chứa xác suất Pk(t)
và cường độ dòng chuyển trạng thái của hệ thống
- Nội dung quy tắc:
Đạo hàm bậc nhất theo thời gian của xác suất xuất hiện trạng thái xk(t),
Pk(t), bằng tổng đại số của một số hữu hạn số hạng, số các số hạng này bằng
số mũi tên nối liền trạng thái xk(t), với trạng thái xj(t) khác, trong đó số sốhạng mang dấu (+) tương ứng với số mũi tên hướng từ xj(t) về xk(t) ; số sốhạng mang dấu (-) tương ứng với số mũi tên hướng từ xk(t) sang xj(t) Mỗi sốhạng có giá trị bằng tích giữa cường độ của dòng biến cố hướng theo mũi tên
và xác suất xuất hiện trạng thái mà mũi tên xuất phát
k
dt
t d
Trang 21Với điều kiện:
Trong (1.12): λjk (t) là cường độ dòng biến cố (dòng yêu cầu hoặc dòngphục vụ) chuyển trạng thái xj(t) về trạng thái xk(t) λjk(t): ý nghĩa ngược lại Pj(t)
là xác suất xuất hiện trạng thái xj(t) ở thời điểm t (trạng thái trong hệ thống có
j kênh đang làm việc) Pk(t) ý nghĩa tương tự
- Định lý Mác-cốp [2, 3]
Dưới tác động của dòng tối giản, quá trình thay đổi trạng thái của hệ thống
sẽ có tính chất dừng, theo nghĩa:
Với điều kiện:
(1.16)
Kết luận chương 1:
Nội dung chương 1 tập trung vào cơ sở lý thuyết phục vụ đám đông (lýthuyết hàng đợi), bao gồm các mô tả về một hệ thống phục vụ nói chung như:Các yếu tố của hệ thống phục vụ (dòng vào, dòng ra, hàng chờ, kênh phụcvụ), trạng thái của hệ thống (quá trình thay đổi trạng thái của hệ thống phục
vụ, sơ đồ trạng thái, quy tắc thiết lập hệ phương trình trạng thái)
Tập trung giải quyết các vấn đề:
k j k k
j
k jk k
j
j
(1.13)
Trang 22- Mô tả hệ thống phục vụ: Dòng các yêu cầu vào, hệ thống phục vụ, cáckênh phục vụ, dòng yêu cầu ra.
- Các yếu tố của hệ thống phục vụ: Dòng vào (dòng vào tiền định, dòngvào Poisson); hàng chờ (Queue); kênh phục vụ; dòng ra; nguyên tắc phục vụcủa hệ thống dịch vụ
- Trạng thái hệ thống phục vụ: Đưa ra định nghĩa; quá trình thay đổitrạng thái của hệ thống phục vụ; sơ đồ trạng thái; qui tắc thiết lập hệ phươngtrình trạng thái (nội dung quy tắc, hệ phương trình trạng thái, định lý Mác-cốp)
Trang 23Chương 2:
HIỆN TRẠNG MỘT SỐ CÔNG CỤ MÔ PHỎNG BÀI TOÁN HÀNG ĐỢI
Chương này giới thiệu tổng quan một số công cụ mô phỏng được sửdụng trong thực tế để giải quyết các bài toán hàng đợi
2.1 Ngôn ngữ mô phỏng GPSS và công cụ GPSS World
Giới thiệu sơ lược về ngôn ngữ GPSS, một ngôn ngữ mô phỏng chuyêndụng với các khái niệm và đặc trưng
2.1.1 Giới thiệu về ngôn ngữ GPSS
Với hai ngôn ngữ căn bản: C và Pascal, cùng với giải thuật đã có, chúng
ta có thể lập trình để tìm ra kết quả cho bài toán mô phỏng Tuy nhiên, với sựphức tạp của thuật toán, và các cơ sở dữ liệu, ngôn ngữ mô phỏng chuyêndụng ra đời là một đòi hỏi tất nhiên cho bài toán mô phỏng
Chúng được thiết kế sao cho gần gũi với tư duy tự nhiên của con người,thuận tiện cho việc thao tác, đơn giản cho việc viết câu lệnh khai báo cấu trúc,tham số liên quan khi lập trình Đồng thời, chúng tích hợp sẵn bên trong(dạng Built-in) những hàm chức năng thông dụng liên quan đến bài toán môphỏng, nhằm giảm thời gian lập trình cho người sử dụng
2.1.2 Sự ra đời của ngôn ngữ GPSS
Khoảng thập niên 1960, Geoffrey Gordon ở hãng IBM đã phát triển ngônngữ GPSS - Gordon’s Programmable Simulation System, sau này đổi thànhGeneral Purpose Simulation System [4-8, 13], loại ngôn ngữ mô phỏng các sựkiện rời rạc GPSS World là một dạng khác của GPSS dành cho máy tính cánhân (GPSS/PC - General Purpose Simulation System/Personal Computer) Công bố năm 1984, GPSS/PC nhanh chóng đạt được thành công lớn,cũng như đem lại tiết kiệm hàng triệu đô la cho người dùng Minh chứng cụ
Trang 24thể là việc khai thác GPSS World trên nền hệ điều hành Windows đã mở rộngkhả năng của nó trong môi trường liên mạng Internet toàn cầu.
Ngôn ngữ mô phỏng GPSS tạo ra các giao dịch (Transaction) và quản lýchúng theo giai đoạn, hoặc theo các khối (Block) Đây là đặc điểm khác biệtcủa ngôn ngữ GPSS Một Transaction liên quan đến hai khái niệm sau:
- CEC: Current Event Chain - Chuỗi sự kiện hiện tại
- FEC: Future Event Chain - Chuỗi sự kiện tương lai
Mỗi Transaction được quản lý trên một ô nhớ khác nhau, nó có thể đượcthực hiện ngay nếu gặp CEC, hoặc chờ thêm các sự kiện FEC thì sẽ thực hiện
Từ cửa sổ màn hình lập trình GPSS, chúng ta có thể quan sát được vị trí củacác Transaction này thông qua CEC/FEC
Hình 2.1: Minh họa cửa sổ làm việc của GPSS World
2.1.3 Những ưu điểm của ngôn ngữ GPSS
GPSS World có một ưu điểm là tính trong suốt với các dẫn chứng cụ thểnhư sau:
- Đầu tiên, nếu chúng ta mô phỏng theo dạng "hộp đen" (Black-Box),chúng ta không thể quan sát bên trong hộp này có những thành phần gì, chúng
Trang 25hoạt động ra sao, tương tác với nhau thế nào Điều này dẫn đến việc chúng takhông thể kiểm soát được hộp đen ngay tại thời điểm làm việc, cũng nhưkhông thể dự đoán được hành vi của nó trong tương lai Đó là điều không aimuốn.
- Thứ hai, chỉ thật sự có lợi cả về mặt mục tiêu cũng như về vấn đề thờigian khi và chỉ khi chúng ta mô phỏng thành công Trên cơ sở đó, khi có sựthay đổi nhân lực, những thành viên mới đến làm việc sẽ hiểu được và tiếpquản được những công việc đã làm, cũng như phát triển tiếp sau này
- Thứ ba, một vấn đề nhỏ nhưng có ý nghĩa khi mô phỏng Đó là làm saochúng ta có thể nhận thấy động lực học bên trong (Internal Dynamics) hệthống tại thời điểm quyết định khi một người có kinh nghiệm tiến hành môphỏng
GPSS World được thiết kế với những điểm mạnh có thể liệt kê như:
- Là ngôn ngữ hướng đối tượng, chạy được trên nhiều nền tảng hệ điềuhành khác nhau như Windows, Linux
- Hình ảnh hóa các mô hình, từ đó giúp người dùng hiểu rõ, nắm bắt môhình tốt nhất có thể, đồng thời sao lưu lại dưới dạng hình ảnh thống kê dễhiểu
- Khả năng tương tác của nó giúp người dùng dễ dàng tìm hiểu và vậnhành các bài toán mô phỏng nhờ giao diện thân thiện
- Tích hợp các cở sở phân tích dữ liệu để tính toán các thành phần trong
hệ thống một cách trực quan
- Là công cụ có thể làm nhiều việc khác nhau tại một thời điểm task) và hoạt động trên cơ sở sử dụng bộ nhớ ảo, do đó không tốn kém tàinguyên của máy tính
Trang 26(Multi-2.1.4 Các ứng dụng của công cụ mô phỏng GPSS World
Các ứng dụng chính của công cụ mô phỏng GPSS World có thể kể đếnnhư:
- Các hệ thống chăm sóc khách hàng như: Call Center, dịch vụ 1080,1900…
- Giao thông vận tải (phổ biến nhất là mô hình bảo trì máy bay Fleettrong kĩ thuật hàng không và vận tải công ty)
- Công nghệ mạng: Nghiên cứu đánh giá các vùng dữ liệu mạng
- Thương mại: Các hệ thống bán hàng tự động, các quầy thanh toán tiềntrong các trung tâm thương mại
- Thực tế đời sống: Bãi đậu xe ô tô, quản lý bay tại phi trường…
Ví dụ một chương trình GPSS đơn giản:
; GPSS World Sample File - BOOKMRK.GPS
170 * Simple Telephone Simulation *
180 * Time Unit is one second *
200 Sets STORAGE 2
210 Transit TABLE M1,100,100,20 ;Transit times
220 GENERATE 100,60 ;Calls arrive
230 Again GATE SNF Sets,Occupied ;Try for a line
240 ENTER Sets ;Connect call
250 ADVANCE 180,60 ;Speak for 3+/-1 min
260 LEAVE Sets ;Free a line
270 TABULATE Transit ;Tabulate transit time
Trang 27280 TERMINATE 1 ;Remove a transaction
290 Occupied ADVANCE 300,60 ;Wait 5 minutes
300 TRANSFER ,Again ;Try again
310 *******************************************************
Chương trình mô phỏng hoạt động đơn giản của hệ thống máy điện thoại(Telephone) với hai đường dây ngoài (External Lines), cuộc gọi từ ngoài vàoxuất hiện với khoảng thời gian 100±60 giây, thời gian của cuộc gọi là 3±1phút, người gọi sẽ quay số để gọi lại sau khoảng thời gian 5±1 phút Câu hỏiđặt ra là hệ thống Telephone trên hoạt động trong bao lâu thì hoàn thành 200cuộc gọi?
2.2 Các công cụ mô phỏng sử dụng ngôn ngữ đặc tả Petri-net
Mạng Petri [14, 16], (còn gọi là Place/Transition-net, hoặc Petri-net) làmột trong số những ngôn ngữ mô tả toán học về các hệ thống song song vàcác hệ thống phân tán Petri-net được Carl Adam Petri phát minh vào năm
1939 Mục đích của việc phát minh ra Petri-net là để mô tả các quá trình hóahọc
Petri-net cung cấp các chú thích đồ họa để tiện cho người sử dụng, thiếtlập các lựa chọn, các quy tắc để mô hình hóa sự kiện một cách tốt nhất
Điểm đặc biệt của mạng Petri là nó có cở sở toán học chính xác để thựchiện đúng nghĩa với những phát triển lý thuyết toán học cho quá trình phântích
2.2.1 Các khái niệm cơ bản về Petri-net
Petri-net gồm ba thành phần cơ bản: Place, Transition và Directed Arc
Trang 28Hình 2.2: Ví dụ về Petri-net
Place Là các vị trí, biểu thị bởi hình tròn, kí hiệu là vị trí P
Transition Là trạng thái và sự nhảy trạng thái, biểu thị bởi hình chữ nhật
hoặc ô vuông, kí hiệu là trạng thái T
Directed Arc Là các đường dẫn trực tiếp liên kết giữa các vị trí P và các
trạng thái T
Token Là các mã thông báo, nó biểu hiện cho đặc trưng của Place,
biểu thị bởi chấm tròn đen nằm trong Place
Marking Sự phân bố các Token trên các Place
Các đường nối (Arc) sẽ liên kết từ P sang T hoặc ngược lại từ T về P,không bao giờ được nối Arc giữa T với T, hoặc P với P Trong hình trên, tathấy P1 được coi là Place đầu vào vì nó chứa đường nối nhảy tới trạng tháiT1 Còn P4 được coi là Place đầu ra từ trạng thái T2
Các Place có chứa một số tự nhiên các mã thông báo (Tokens) nào đó
Sự sắp xếp, phân bố các Token này trên các Place thì được biết đến với thuậtngữ là Marking, tức là các mặt nạ
Một trạng thái trong hệ Petri-net được gọi là Fire (cháy) khi xuất hiệnToken trên toàn bộ các đường dẫn liên kết đầu vào (Arc đầu vào) Chúng tathấy rằng: Việc thực thi trong toàn hệ thống Petri-net là một quá trình khôngthể xác định rõ ràng, khi có rất nhiều trạng thái Transition cùng xảy ra tại mộtthời điểm, trong số các Transition đó, tồn tại một số Transition bị cháy
Trang 29Vì vậy, Petri-net là một ngôn ngữ mô tả thích hợp khi mô hình hóa thóiquen hoạt động của hệ thống phân tán Petri-net có ứng dụng trong hệ thốnghàng đợi
2.2.2 Mô tả toán học về Petri-net
Thuần túy về toán học [14, 16], chúng ta định nghĩa:
S là tập hợp xác định các Place
T là tập hợp xác định các Transition
F là các quan hệ kết nối Flow Relations
Net là một tổ hợp ba yếu tố N = (S, T, F)
Net thỏa mãn các điều kiện sau:
S T = Ø , S T ≠ Ø S và T rời nhau, hợp của S và T khác rỗng
SN là các thành phần có thuộc tính trong tập hợp S
TN là các thành phần có thuộc tính trong tập hợp T
XN là các thành phần có thuộc tính trong tập hợp S T
FN là các thành phần có thuộc tính trong tập hợp F
Như vậy, một net là một đồ thị trực tiếp kết nối tay đôi, trong net không tồn tại cực
Petri-Marked-net là tập hợp gồm các yếu tố (S, T, F, k, w, m 0 )
Trong đó:
- S, T, F đã định nghĩa ở 2.2.2
Trang 30- k: S {1, 2, 3, } {∞} là ánh xạ giới hạn khả năng cục bộ
- w: F {1, 2, 3, } là hàm trọng lượng
- m0: F {0, 1, 2, 3, } là một mặt nạ (marking) thỏa mãn
) ( ) ( )
2.2.3 Một số thuộc tính của Petri-net
Từ các khái niệm căn bản mô tả trên lý thuyết tập hợp, chúng ta pháttriển mô hình Petri-net với các đặc tính toán học, bao gồm:
- Đặc tính tiếp cận (Reachability)
Mặt nạ Marking M có thuộc tính tiếp cận từ mặt nạ M0 nếu tồn tại mộtchuỗi Firing σ = (M1 t1 , M2 t2 , M3 t3 ,… Mk tk) chuyển dịch từ M0 đến M Ví dụ với M = (1,0,1,0) và M0 = (1,1,0,0), chúng ta thấy tồn tại chuỗichuyển dịch Firing như hình vẽ:
Hình 2.3: Minh họa tính tiếp cận của Petri-net
- Tính bất tử (Liveness)
Bất kỳ mặt nạ Marking nào đó, bất kỳ chuyển dịch Transition nào đó,chúng đều có thể trở thành đối tượng có khả năng Firing
Trang 31Hình 2.4: Minh họa tính bất tử của Petri-net
- Tính không có đường bao giới hạn (Boundedness)
Điều này xảy ra khi một số lượng Token trong bất kỳ Place nào đó khôngthể lớn lên một cách không xác định
Hình 2.5: Minh họa tính không có đường bao giới hạn của Petri-net
- Tính bảo thủ (Conservation)
Tổng tất cả các Token trong mạng Petri-net là một hằng số
Hình 2.6: Minh họa tính bảo thủ của Petri-net
2.2.4 Một số công cụ sử dụng ngôn ngữ Petri-net
- WoPeD (Workflow Petri-net Designer), là một công cụ dùng để thiết
kế mô phỏng luồng công việc trong thực tế, sử dụng ngôn ngữ mô tả Petri-net.WoPeD là phần mềm mã nguồn mở [17]
- TAPAAL (Tool for Verification of Timed-Arc Petri-nets), là công cụ
mô hình hóa, mô phỏng chạy trên nền Windows, Linux, Mac, … [18]
Trang 322.2.5 Ứng dụng của mạng Petri-net
- Thiết kế phần mềm
- Quản lý luồng công việc
- Phân tích dữ liệu, mô phỏng hoạt động trong thực tế
2.3 Ngôn ngữ lập trình Matlab
Matlab là ngôn ngữ lập trình bậc cao phổ biến hiện nay Công cụ môphỏng Simulink được sử dụng trong rất nhiều ứng dụng nghiên cứu cũng nhưthực tế
Công cụ Netlab, được viết trên nền ngôn ngữ Matlab, dùng để làm việcvới ngôn ngữ đặc tả Petri-net Công cụ này có một số đặc điểm sau:
- Môi trường hiển thị đồ họa, dễ dàng sử dụng (hình 2.7)
- Phân tích dạng đồ thị và sự thay đổi trên các đồ thị
- Tổng hợp các chức năng phân tích dựa theo đặc tả toán học Petri-net
- Mô phỏng từng bước một
Hình 2.7: Minh họa công cụ Netlab tích hợp trên nền tảng Matlab
Trang 332.4 Ngôn ngữ lập trình Java
Java là một ngôn ngữ lập trình cũng phổ biến với những tính năng mạnhhiện nay Sử dụng môi trường Java, người sử dụng viết các Applet Hình vẽ làmột ví dụ về việc sử dụng ngôn ngữ lập trình Java viết nên một Applet liênquan đến ngôn ngữ mô tả Petri-net Những ưu điểm khi mô phỏng các cấutrúc Petri-net bằng ngôn ngữ Java:
- Thiết lập giao diện thân thiện người dùng (hình 2.8)
- Mô tả dạng đồ họa các cấu trúc đồ thị hệ thống
- Chạy trên nền Windows hoặc Linux đều được
Hình 2.8: Minh họa Applet: The Petri - Net - Simulator chạy trên nền Java
Trang 342.5 Ngôn ngữ lập trình C++ và bộ công cụ Visual Studio.net
Bộ công cụ phát triển Visual Studio của hãng Mircosoft là một bộ công
cụ phổ biến bậc nhất trong thế giới lập trình hiện nay Sau khi nâng cấp nhiềulần, đặc biệt với nền tảng Net Framework, phiên bản mới nhất là version 4.0,các ứng dụng của chúng ta được thỏa sức phát triển
Ở đây, xin giới thiệu một công cụ mô phỏng mạng Petri-net được pháttriển trên nền tảng công nghệ Net của bộ công cụ lập trình Visual Studio, đó
là công cụ YASPER (Yet Another Smart Process EditoR), là kết quả hợp tácgiữa TU Eindhoven và Deloitte [19]
Đây là công cụ dùng để đặc tả và chạy mô phỏng các tiến trình rời rạc, sửdụng ngôn ngữ đặc tả Petri-net để mô tả chúng Hình 2.9 giới thiệu mô phỏnghoạt động thường gặp trong thực tế, đó là các lái xe đỗ xe ở trạm xăng và bơmxăng vào xe
Hình 2.9: Minh họa công cụ YASPER phát triển trên công nghệ Net
Trang 35Ngoài ra, trên môi trường Unix, Linux, việc phát triển công cụ mô phỏngcho Petri-net cũng được tiến hành Tuy nhiên, các môi trường này không phổbiến như môi trường Windows, nên vấn đề nghiên cứu, ứng dụng cho Petri-net là một vấn đề lâu dài.
Chương này giới thiệu về một số công cụ mô phỏng, ngôn ngữ đặc tảliên quan đến bài toán hàng đợi Mỗi công cụ, ngôn ngữ có những ưu điểmriêng
Dựa trên đặc tả toán học của nó, và sử dụng ngôn ngữ lập trình như Java,Matlab, C, C++, các nhà phát triển đã tạo ra các công cụ làm việc theo chủđích của họ Java sử dụng các Applet linh hoạt trên môi trường Java, Matlab
là ngôn ngữ hàng đầu trong nghiên cứu tại các trường học
Ngôn ngữ GPSS và công cụ GPSS World có những ưu điểm riêng biệt
để giải quyết các bài toán hàng đợi khi chúng làm việc với các Transaction,các Block dựa trên một giải thuật nào đó
Kết luận chương 2:
Giới thiệu tổng quan một số công cụ mô phỏng được sử dụng trong thực
tế để giải quyết các bài toán hàng đợi, bao gồm:
Giới thiệu ngôn ngữ GPSS và công cụ GPSS World, một ngôn ngữ môphỏng chuyên dụng với các khái niệm và đặc trưng; sự ra đời của ngôn ngữGPSS; những ưu điểm của ngôn ngữ GPSS; các ứng dụng của công cụ môphỏng GPSS World
Các công cụ mô phỏng sử dụng ngôn ngữ đặc tả Petri-net: Các khái niệm
cơ bản về net; mô tả toán học về net; một số thuộc tính của net; một số công cụ sử dụng ngôn ngữ Petri-net; ứng dụng của mạng Petri-net.Ngoài ra chương này còn tìm hiểu một số ngôn ngữ như: Ngôn ngữ lậptrình Matlab; Ngôn ngữ lập trình Java; Ngôn ngữ lập trình C++ và bộ công cụVisual Studio.net
Trang 36Petri-Chương 3:
NGHIÊN CỨU VỀ NGÔN NGỮ GPSS VÀ CÔNG CỤ GPSS WORLD
Có nhiều ngôn ngữ mô phỏng cũng như các giải thuật có thể được sửdụng để giải quyết bài toán hệ thống phục vụ đám đông Chương này sẽ giớithiệu một trong những ngôn ngữ mô phỏng chuyên dụng: Ngôn ngữ môphỏng GPSS cùng các khái niệm, định nghĩa, cấu trúc cơ bản của ngôn ngữGPSS Đồng thời, đề cập đến công cụ GPSS World [8], một công cụ mạnhđược sử dụng trong việc triển khai các thao tác lệnh của ngôn ngữ GPSS
3.1 Tổng quan về GPSS
Về nguyên tắc, những chức năng phức tạp của thuật toán mô phỏng cóthể được thực hiện bằng các ngôn ngữ lập trình phổ thông (Pascal, C, ), cácngôn ngữ này cung cấp khả năng không hạn chế để lập trình, gỡ lỗi và thửnghiệm các mô hình; Tuy nhiên, nó đòi hỏi nỗ lực lớn cho việc xây dựng vàlập trình nhiều những thuật toán mô phỏng phức tạp, làm việc với danh sách
dữ liệu có cấu trúc Một sự thay thế là sử dụng ngôn ngữ mô phỏng chuyêndụng
Ngôn ngữ chuyên dụng có phương pháp mô tả, khai báo cấu trúc và quátrình làm việc của hệ thống được mô phỏng, điều này đem lại sự thuận tiện vàlàm đơn giản hóa việc lập trình modul mô phỏng, bởi vì các hàm chức năng
cơ bản của thuật toán khi đó được thực hiện một cách tự động Chương trình
mô phỏng các mô hình mẫu viết trên ngôn ngữ chuyên dụng gần với mô tảcủa hệ thống được mô phỏng trong ngôn ngữ tự nhiên, cho phép kể cả nhữngngười dùng không phải là lập trình viên chuyên nghiệp xây dựng mô hình môphỏng phức tạp
GPSS ngôn ngữ mô phỏng sự kiện rời rạc, được Geoffrey Gordon (IBM)[7], phát triển chính thức từ những năm 1960, đã đóng góp nhiều khái niệm
Trang 37quan trọng tới sự phát triển của ngôn ngữ mô phỏng Với tên khai sinh làGPSS – Gordon’s Programmable Simulation System sau này được đổi tênthành GPSS – General Purpose Simulation System như ngày nay GPSSWorld là một biến thể của GPSS/PC, một sự triển khai sớm của GPSS chomáy tính cá nhân Từ khi được giới thiệu vào năm 1984, GPSS/PC và cácphiên bản khác nhau của nó đã thu được hàng nghìn đôla từ hàng triệu người
sử dụng trên toàn thế giới Hiện nay, sự triển khai trên Windows của GPSSWorld đã mở rộng tiềm năng trong môi trường Internet
GPSS không dùng bước nhảy theo thời gian mà dựa vào việc tạo ra
“giao dịch” – Transactions và sau đó quản lý chúng trong các giai đoạn,Blocks khác nhau Transaction được theo vết và được đặt trên vùng quản líkhác nhau phụ thuộc vào việc hoặc chúng đã sẵn thực thi ngay (Current EventChain – CEC) [4], hoặc cần chờ một số sự kiện trong tương lai (Future EventChain – FEC) Khi tất cả sự kiện hiện thời được xử lí, sau đó thời gian đượctăng lên và sự mô phỏng tiếp diễn qua một tập CEC mới Ta có thể xem CEC
và FEC để thấy vị trí của Transaction bằng cách sử dụng menu: Window >Simulation Snapshot > CEC/FEC Snapshot khi sự mô phỏng đang vận hành.Điểm mạnh của GPSS World là tính trong suốt Tính trong suốt được thểhiện bởi ba lí do Thứ nhất, việc mô phỏng bằng phương pháp “hộp đen”(Black-Box) là thật sự nguy hiểm vì không thể quan sát được cơ chế vận hànhbên trong Điều này không chỉ không chắc chắn rằng nó có phù hợp với tìnhhình thực tại hay không mà còn khó đảm bảo nó sẽ làm việc theo đúng dựkiến Thứ hai, sự mô phỏng thành công rất có ý nghĩa về mặt giá trị và có thờigian tồn tại kéo dài Những người mới sẽ dễ dàng nắm bắt được cơ chế vậnhành bên trong của hệ thống để từ đó tiếp quản công việc Thứ ba, một trongnhững thuận lợi của việc mô phỏng tính toán hiệu quả nhất nhưng ít được đềcập nhất là sự hiểu biết về hành vi của hệ thống đạt được khi một chuyên viên
Trang 38mô phỏng có kinh nghiệm có thể nhìn thấy cái động bên trong tại các thờigian quyết định trong mô phỏng.
Ưu điểm của GPSS đối với người sử dụng:
- Thao tác nhiều nghiệp vụ khác nhau
- Sử dụng bộ nhớ ảo
- Tương thích với nhiều hệ điều hành
- Giao diện đồ họa thân thiện với người dùng
- Dễ dàng hình dung được quy trình của mô hình
Với những đặc tính và ưu điểm trên, GPSS có thể được áp dụng trênnhiều lĩnh vực trong thực tế Ứng dụng chính của GPSS có thể kể đến như:
- Giao thông vận tải (phổ biến nhất là mô hình bảo trì máy bay fleettrong kĩ thuật hàng không và vận tải công ty)
- Công nghệ mạng: Nghiên cứu đánh giá các vùng dữ liệu mạng
- Thương mại: Hệ thống bán hàng tự động, hệ thống thanh toán tiềntrong siêu thị…
- Một số ứng dụng trong công nghiệp: Ứng dụng trong sản xuất kim loại
tự động
Ví dụ một chương trình GPSS đơn giản:
GENERATE 300,100 ;Create next customer
ADVANCE 400,200 ;Haircut takes a few minutes
RELEASE BARBER ;Haircut done Give up the barber