được đặc trưng bởi phân phối xác suất khoảng thời gian mà khách hàng sử dụng cácdịch vụ.Quá trình phục vụ hay kênh phục vụ là những thiết bị kỹ thuật, con người hoặc tổhợp các thiết bị k
Trang 1ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
NGUYỄN THU THỦY
NGHIÊN CỨU VÀ ỨNG DỤNG
LÝ THUYẾT HÀNG ĐỢI TRONG BÀI TOÁN
MÔ PHỎNG HOẠT ĐỘNG MỘT SIÊU THỊ
Ngành: Công nghệ thông tin Chuyên ngành: Kỹ thuật phần mềm
Mã số: 60480103
LUẬN VĂN THẠC SĨ NGÀNH CÔNG NGHỆ THÔNG TIN
Hà Nội – 2017
Trang 2ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
NGUYỄN THU THỦY
NGHIÊN CỨU VÀ ỨNG DỤNG
LÝ THUYẾT HÀNG ĐỢI TRONG BÀI TOÁN
MÔ PHỎNG HOẠT ĐỘNG MỘT SIÊU THỊ
Ngành: Công nghệ thông tin
Chuyên ngành: Kỹ thuật phần mềm
Mã số: 60480103
LUẬN VĂN THẠC SĨ NGÀNH CÔNG NGHỆ THÔNG TIN
NGƯỜI HƯỚNG DẪN KHOA HỌC: TIẾN SĨ LÊ QUANG MINH
Trang 3LỜI CAM ĐOAN
Tôi xin cam đoan luận văn này là công trình nghiên cứu do chính tôi thực hiện trên cơ
sở tìm kiếm, thu thập, nghiên cứu, tổng hợp trình bày bằng văn bản Các tài liệu thamkhảo đều được nêu ở phần cuối của luận văn Các số liệu, kết quả nêu trong luận văn làtrung thực và không sao chép nguyên bản từ bất kì một nguồn tài liệu nào khác
Nếu có gì sai sót, tôi xin hoàn toàn chịu trách nhiệm
HỌC VIÊN
NGUYỄN THU THỦY
Trang 4MỤC LỤC
LỜI CAM ĐOAN 1
MỤC LỤC 4
DANH MỤC HÌNH VẼ 6
DANH MỤC CÁC BẢNG 7
Chương 1: LÝ THUYẾT HÀNG ĐỢI 10
1.1 Các khái niệm cơ bản 10
1.1.1 Biến ngẫu nhiên 10
1.1.2 Phân phối sác xuất thường gặp 10
1.1.3 Khái niệm hàng đợi và lý thuyết hàng đợi 13
1.1.4 Kí hiệu Kendall 17
1.1.5 Định nghĩa các độ đo hiệu suất 18
1.1.6 Luật Little 19
1.2 Một số mô hình hàng đợi cơ bản 20
1.2.1 Hệ thống một kênh phục vụ M/M/1 20
1.2.2 Hệ thống đa kênh phục vụ M/M/c 22
1.2.3 Hệ thống hàng đợi có thời gian phục vụ chính xác (M/D/1) 23
1.2.4 Hệ thống hàng đợi giới hạn kích thước M/M/c/K 24
1.3 Các điều kiện để bài toán có thể giải được bằng lý thuyết 25
1.4 Phương pháp giải quyết bài toán bằng lý thuyết hàng đợi 26
Chương 2: CÔNG CỤ MÔ PHỎNG GPSS WORLD 27
2.1 Cách tiếp cận mô phỏng 27
2.2 Hiện trạng một số công cụ mô phỏng chuyên dụng 27
2.3 Giới thiệu về GPSS World 28
2.3.1 Đặc điểm nổi bật của ngôn ngữ GPSS World 28
2.3.2 Một số khái niệm trong GPSS World 29
2.3.3 Các thực thể trong GPSS 31
2.3.4 Cú pháp lệnh GPSS 35
2.3.5 Các khối cơ bản trong GPSS 37
2.3.6 Một số hàm thư viện 43
2.3.7 Cài đặt và sử dụng GPSS World Student Version 43
2.4 Hàng đợi có ưu tiên Priority Queueing 44
2.5 Các bước mô phỏng bài toán trên GPSS World 46
Trang 5CHƯƠNG 3: ỨNG DỤNG LÝ THUYẾT HÀNG ĐỢI VÀ CÔNG CỤ MÔ PHỎNG
VÀO BÀI TOÁN HÀNG ĐỢI SIÊU THỊ 50
3.1 Một số quan sát về hàng đợi siêu thị 50
3.2 Bài toán xếp hàng gồm 1 phase phục vụ 51
3.2.1 Phát biểu bài toán 51
3.2.2 Phân tích bài toán bằng lý thuyết hàng đợi .52
3.2.3 Mô phỏng bài toán bằng công cụ mô phỏng 53
3.3 Bài toán xếp hàng nhiều phase phục vụ 58
3.3.1 Phát biểu bài toán 58
3.3.2 Phân tích bài toán bằng lý thuyết hàng đợi 59
3.3.3 Mô phỏng bài toán bằng công cụ mô phỏng 63
KẾT LUẬN 71
Trang 6DANH MỤC HÌNH VẼ
Hình 1 1- Sơ đồ chuyển trạng thái của phân phối Erlang-k với biến quy mô là 12
Hình 1 2- Thành phần cơ bản của hàng đợi 14
Hình 1 3 - Mô hình hàng đợi M/M/1 21
Hình 1 4- Mô hình hàng đợi M/M/1 21
Hình 1 5 - Sơ đồ chuyển trạng thái của hàng đợi M/M/1 21
Hình 1 6- Mô hình hàng đợi M/M/c 22
Hình 1 7 - Sơ đồ chuyển trạng thái hàng đợi M/M/c 23
Hình 1 8- Mô hình hàng đơi M/M/c/K 24
Hình 1 9 - Sơ đồ chuyển trạng thái mô hình hàng đợi M/M/c/K 25
Hình 2 1 - Mô tả chương trình mô phỏng bằng GPSS 37
Hình 2 2- Một segment điển hình 39
Hình 2 3- Mô hình một chương trình mô phỏng hệ thống hàng đợi đơn giản 44
Hình 2 4- Cách lấy yêu cầu của hàng đợi Priority Queueing 45
Hình 2 7- Quy trình mô phỏng 48
Hình 3 1- Đồ thị sác xuất số khách hàng trong hệ thống 53
Hình 3 2- Mô hình thuật toán giải bài toán bãi đậu xe 54
Hình 3 3- Mã nguồn mô phỏng bài toán bãi đỗ xe 55
Hình 3 4- Báo cáo thu được khi chạy mô phỏng 56
Hình 3 5- Mô tả mô hình hoạt động của siêu thị 59
Hình 3 6- Mô hình thuật toán hoạt động của siêu thị 63
Trang 7DANH MỤC CÁC BẢNG
Bảng 1 1- Một số hàm phân phối thường gặp 10
Bảng 1 2 - Một số tham số của hàng đợi 18
Bảng 1 3-Một số mô hình hàng đợi cơ bản 20
Bảng 2 1- Một số Block cơ bản làm việc với giao tác 38
Bảng 2 2- Một số khối làm việc với thực thể thiết bị 40
Bảng 2 3 Một số khối cơ bản điều khiển dịch chuyển của giao tác 41
Bảng 3 1- Kết quả mô phỏng với thời gian 8h 56
Bảng 3 2 Kết quả mô phỏng với thời gian khác nhau 57
Bảng 3 3- Bảng so sánh độ lệch giữa mô phỏng và tính toán từ lý thuyết của lượng xe được phục vụ 57
Bảng 3 4- Kết quả tính toán hàng đợi gửi xe ô tô 59
Bảng 3 5-Bảng kết quả tính toán hàng đợi bãi gửi xe máy 60
Bảng 3 6- Kết quả tính toán hàng đợi giỏ hàng trong 8h 61
Bảng 3 7- Kết quả tính toán hàng đợi xe đẩy trong 8h 61
Bảng 3 8 – Kết quả mô phỏng hoạt động của siêu thị 68
Tương tự cách tiến hành với mô hình bài toán bãi gửi xe, thực hiện thay đổi thời gian mô phỏng bằng cách cài đặt lại biến thời gian v_time_work lần lượt bằng các giá trị: 16*60*60, 24*60*60, 40*60*60, 80*60*60 sau đó chạy mô phỏng Đem so sánh kết quả từng trường hợp với lý thuyết Bảng 3 9 đưa ra so sánh thời gian phục vụ của các quầy phục vụ với thời gian trung bình tính toán từ lý thuyết (225 giây). 69
Bảng 3 10 Bảng so sánh thời gian thanh toán trung bình 70
Trang 8LỜI MỞ ĐẦU
Hàng đợi ảnh hưởng đến nhiều mặt trong cuộc sống thực tế cũng như lĩnh vực kỹ thuật.Trong hoạt động xã hội, hàng đợi là điều không mong muốn của các hệ thống phục vụđám đông, từ thực tế đó các nhà quản lý luôn mong muốn đánh giá được hiệu quả hệthống dịch vụ của họ để cải tiến chất lượng phục vụ, giảm chi phí vô ích
Trong các hoạt động sản xuất kinh doanh cũng như đời sống hàng ngày đều tồn tạinhững hệ thống phục vụ như: Bến cảng, khách sạn, nhà hàng, trạm điện thoại, cửa hàngbán xăng dầu Trong các hệ thống ấy thường diễn ra 2 quá trình: Quá trình nảy sinh cácyêu cầu và quá trình phục vụ các yêu cầu Tuy nhiên, trong quá trình hoạt động của hệthống do nhiều nguyên nhân khác nhau thường dẫn đến các tình trạng:
- Khả năng phục vụ của hệ thống không đáp ứng yêu cầu dẫn đến kết quả là một
số yêu cầu không được phục vụ hoặc phải chờ đợi để được phục vụ.
- Khả năng phục vụ của hệ thống vượt quá yêu cầu dẫn đến kết quả là hệ thống không sử dụng hết năng lực về lao động, vật tư, thiết bị.
Cả hai tình trạng trên đều gây nên thiệt hại về mặt kinh tế nói chung Vì vậy bài toán đặt
ra là phân tích bản chất của các quá trình diễn ra trong hệ thống và thiết lập mối quan hệ
về lượng giữa các đặc trưng của các quá trình ấy Trên cơ sở các mối liên hệ đã đượcxây dựng và các số liệu thu thập được từ hệ thống, tính toán, phân tích và đưa ra quyếtđịnh nhằm điều khiển hệ thống hoạt động có hiệu quả
Để trả lời cho những câu hỏi về hàng đợi, chúng ta có 2 phương pháp cơ bản để phântích là phương pháp phân tích bằng lý thuyết hàng đợi (hay còn gọi là phương pháp giảitích) và mô phỏng hàng đợi Lý do dùng 2 phương pháp thay vì chỉ dùng một phươngpháp là: phân tích bằng lý thuyết chỉ khả thi với các hệ thống hàng đợi đơn giản nhưhàng đợi đơn, hệ thống với những đặc điểm riêng về quy tắc đến và phân phối thời giandịch vụ (phân phối Possion hay Normal); hầu hết hệ thống phức tạp đều cần sử dụng môphỏng, như hệ thống cần quan sát dữ liệu thật hoặc phụ thuộc vào yếu tố thời gian, sẽkhó phân tích bằng lý thuyết
Trên thực tế, mỗi hệ thống phục vụ đám đông có tính đặc thù riêng và cần được phântích kỹ lưỡng bằng mô hình toán học cũng như mô phỏng Mô phỏng tính toán làphương pháp xem xét thông tin về hành vi của hệ thống Khi phân tích hiệu suất củahàng đợi, chúng ta cần tìn hiểu, thiết kế và điều khiển năng lực của hệ thống phục vụ vàquyết định khi nào mở hay đóng dịch vụ Sử dụng thông tin ước lượng giá trị lãng phí,xác định được hạn chế của dịch vụ taị mỗi thời điểm xác định để có giá trị lãng phí nhỏnhất (giá trị dịch vụ + thời gian chờ đợi)
Có nhiều cách để mô phỏng hàng đợi như: xây dựng giải thuật và triển khai bằng ngônngữ lập trình; Mô phỏng bằng các công cụ chuyên nghiệp như (Petri Nets, MatLab,
Trang 9GPSS, NS2,…) Công cụ mô phỏng cần sinh ngẫu nhiên sự kiện và quản lý vòng đờicủa sự kiện theo thời gian và mô phỏng vận hành của của hệ thống, vì vậy sử dụng công
cụ lập trình để triển khai thuật toán tốn khá nhiều thời gian Công cụ mô phỏng sự kiệnrời rạc của IBM phát triển vào khoảng thập niên 1960 - General Purpose SimulationSystem (viết tắt là GPSS) là công cụ được lựa chọn để giới thiệu và sử dụng trong luậnvăn này
Vấn đề nghiên cứu và ứng dụng ngôn ngữ mô phỏng GPSS tại Liên bang Nga,cũng như một số quốc gia phát triển khác không còn xa lạ [1] Ở Việt Nam, việc ứngdụng GPSS cũng đã được đề cập tới ở một số công trình, luận văn khoa học; tuy nhiênviệc áp dụng GPSS để mô phỏng chưa áp dụng theo một phương pháp có tính tổng quát.Trên cơ sở các nghiên cứu về phương pháp giải bài toán hệ thống phục vụ đám đông,luận văn đã tập trung vào các mục tiêu sau:
Luận văn tập trung nghiên cứu về một số kiến thức cơ bản trong “ Lý thuyết hàng đợi”,các mô hình hàng đợi, công cụ mô phỏng hàng đợi là GPSS Đề xuất quy trình xây dựng
mô phỏng bằng GPSS và vận dụng để giải quyết bài toán xếp hàng tại siêu thị có thànhphần ưu tiên và không ưu tiên
Luận văn được trình bày trong ba chương với nội dung chính của mỗi chương như sau
Chương 1: Lý thuyết hàng đợi.
Luận văn tập trung trình bày về lý thuyết hàng đợi, các mô hình hàng đợi có thể sẽ liênquan đến bài toán hoạt động của một siêu thị
Chương 2: Công cụ mô phỏng GPSS
Luận văn tập trung trình bày về các công cụ mô phỏng GPSS các cách tiếp cận môphỏng Quy trình mô phỏng bài toán thực tế bằng GPSS
Chương 3: Ứng dụng lý thuyết hàng đợi và công cụ mô phỏng vào bài toán hàng đợi siêu thị.
Trình bày bài toán mô phỏng hoạt động của siêu thị cụ thể; bằng phương pháp phân tích
sử dụng lý thuyết hàng đợi Áp dụng công cụ mô phỏng GPSS World và áp dụng quytrình mô phỏng hệ thống hàng đợi để giải quyết bài toán Từ kết quả thu được đưa ra sosánh và đánh giá hiệu quả của mô phỏng
Kết luận
Tóm lược kết quả chính của luận văn, nêu lên các hạn chế của nghiên cứu từ đó địnhhướng phát triển trong thời gian tới
Trang 10CHƯƠNG 1 LÝ THUYẾT HÀNG ĐỢI
Chương này tập trung trình bày các khái niệm liên quan đến lý thuyết hàng đợi.Đây là những kiến thức tổng quan, cơ bản nhất để phân tích và giải bài toán hàng đợi
1.1 Các khái niệm cơ bản
1.1.1 Biến ngẫu nhiên
Trong hệ thống hàng đợi dễ dàng nhìn thấy 2 quá trình ngẫu nhiên độc lập: quátrình khách hàng xuất hiện ở đầu vào hệ thống và quá trình phục vụ khách hàng tại đầu
ra của hệ thống Số lượng khách hàng tại một thời điểm được đặc trưng bởi một biếnngẫu nhiên rời rạc Tốc độ đến tại một thời điểm cũng như thời gian phục vụ được đặctrưng bởi các biến ngẫu nhiên
Biến ngẫu nhiên được ký hiệu bởi X, Y có giá trị kỳ vọng E(X) Phương sai:
với độ lệch chuẩn Hệ số biến thiên là đại lượng mô tả mức độ biến động
tương đối của biến ngẫu nhiên Tính hệ số biến thiên:
1.1.2 Phân phối sác xuất thường gặp
Mục tiêu của việc phân tích hàng đợi bằng lý thuyết là xây dựng mô hình chuyểntrạng thái để xác định phân phối dựa vào xác suất ở đầu vào và phân phối xác suất ở đầu
ra của hệ thống Tốc độ đến và thời gian phục vụ được đặc trưng bởi một phân phối xácsuất Các phân phối thường gặp [2] hai đại lượng này được trình bày trong bảng 1.1
Bảng 1 1- Một số hàm phân phối thường gặp
Trang 11Phân phối
6
Possion
1.1.2.1 Phân phối hình học (Geometric distribution)
Là phân phối đặc trưng cho số các biến cố sảy ra trong một khoảng thời gian cho trước Một biến ngẫu nhiên hình học [2 tr.18] với phân phối xác suất:
Với phân phối này chúng ta có một số công thức sau
1.1.2.2 Phân phối Poisson (Poisson distribution)
Là phân phối thường gặp nhất trong các mô hình hàng đợi phân phối Poisson [6tr.6-7] được đặc trưng cho những quá trình đến và phục vụ hoàn toàn ngẫu nhiên, độclập Một biến phân phối Poisson với tham số có phân phối
, n=0, 1, 2,…
Trong đó:
- là xác suất để trong khoảng thời gian τ có n yêu cầu xuất hiện;
- n là số yêu cầu xuất hiện trong khoảng thời gian quan sát τ;
- là số yêu cầu trung bình xuất hiện trong từng khoảng thời gian quan sát τ.Phân phối Poisson ta có:
Biến ngẫu nhiên tuân có phân phối Poisson khi dòng đến có đủ các đặc điểm củaquá trình Poisson Quá trình Poisson có 3 tính chất sau:
Tính không hậu quả: Dòng yêu cầu có tính không hậu quả có nghĩa là: nếu xác
suất xuất hiện một số yêu cầu nào đó trong một khoảng thời gian nhất định không phụthuộc vào việc đã có bao nhiêu yêu cầu xuất hiện trước khoảng thời gian đó Hay nóikhác, số yêu cầu xuất hiện trước và sau thời điểm nào đó không chịu ảnh hưởng qualại lẫn nhau
Tính đơn nhất Dòng yêu cầu có tính chất đơn nhất có nghĩa là: nếu xét trong
khoảng thời gian khá bé thì biến cố “có nhiều hơn một yêu cầu xuất hiện” hầu nhưkhông xảy ra Về mặt thời gian, chúng ta có thể xem dòng yêu cầu có tính chất đơn nhấtnếu thời điểm xuất hiện các yêu cầu không trùng nhau
Trang 12Tính dừng (tính thuần nhất theo thời gian) Dòng yêu cầu có tính chất dừng có
nghĩa là: nếu xác suất xuất hiện k yêu cầu trong khoảng thời gian τ chỉ phụ thuộc vàogiá trị của τ và của k chứ không phụ thuộc vào việc khoảng thời gian τ này nằm ở vị trínào trên dòng thời gian Điều này có nghĩa là với những khoảng thời gian τ dài bằngnhau thì xác suất xuất hiện k yêu cầu như nhau
1.1.2.3 Phân phối mũ (Exponential Distributions)
Mật độ của một phân phối mũ [2 tr.20]với tham số được cho bởi hàm
, t>0
Có hàm phân phối xác suất:
Với hàm phân phối này ta có một số công thức tính kỳ vọng và phương sai nhưsau:
1.1.2.4 Phân phối Erlang (Erlang distribution)
Một biến có một phân phối Erlang-k [9 tr.5] (k=1,2,…) với nếu X là tổng
của E biến độc lập có phân phối mũ chung Ký hiệu chung là
hoặc ngắn gọn là
Hàm phân phối xác suất bằng:
Tham số được gọi là tham số quy mô (scale parameter), là tham số hình dạng(shape parameter) Một sơ đồ trạng thái của được biểu diễn bởi Hình 1.1
Hình 1 1- Sơ đồ chuyển trạng thái của phân phối Erlang-k với biến quy mô là
Các đặc trưng phương sai, phương sai và hệ số bình phương bằng nhau đều bằng nhau
Trang 131.1.2.5 Phân phối siêu bội
Một biến ngẫu nhiên là phân phối siêu bội [2 tr.24] nếu là xác suất ,i=1, ,k một biến phân phối mũ với 1/ Biến ngẫu nhiên này được ký hiệu là
hoặc thu gọn là Hàm mật độ cho bởi:
Hệ số biến thiên của hàm này luôn lớn hơn 1 hoặc bằng 1
1.1.3 Khái niệm hàng đợi và lý thuyết hàng đợi
Hàng đợi (hay dòng chờ) [11] là một dòng đợi dịch vụ Yêu cầu được phục vụ từkhách hàng sinh ra theo thời gian thông qua 1 nguồn đầu vào Khách hàng sẽ phải chờtrong hàng đợi đến lượt được phục vụ Khách rời khỏi hệ thống sau khi đã được phụcvụ
Đầu những năm 1900, A K Erlang, kỹ sư điện thoại Đan Mạch bắt đầu nghiêncứu sự tắc nghẽn và thời gian chờ trong những cuộc gọi điện thoại Từ đó, lý thuyếthàng đợi đã phát triển và được sử dụng rộng rãi cho nhiều tình huống Mô hình hàng đợigồm những biểu thức và những mối liên hệ được dùng để xác định những chỉ tiêu phảnảnh đặc trưng của các hệ thống
Trang 14Hình 1 2- Thành phần cơ bản của hàng đợi
Các thành phần cơ bản của hàng đợi [6 tr.6-7] bao gồm:
Tiến trình đến
Dòng yêu cầu đến hệ thống là dòng các đối tượng đi đến hệ thống và đòi hỏi đượcthoả mãn yêu cầu phục vụ Ví dụ: Dòng khách tới trung tâm bưu điện, dòng các tàu biểnđến cảng để bốc dỡ hàng hóa
Dòng các yêu cầu đến hệ thống hàng đợi được đặc trưng bởi tốc độ đến (arrival rate), ký hiệu là λ Là một biến ngẫu nhiên được đặc trưng bởi phân phối xác suất của
các lần khách hàng đến liên tiếp Dòng yêu cầu đến hệ thống là dòng biến cố ngẫu nhiên
và tuân theo những phân phối xác suất nhất định, như đã nêu ở mục 1.2.2
Tiến trình phục vụ
Bao gồm hàng đợi phục vụ và quá trình phục vụ Hàng đợi phục vụ: là tập hợp cácyêu cầu sắp xếp theo một trật tự để chờ được phục vụ theo một nguyên tắc phục vụ nhấtđịnh
Trong đó nguyên tắc phục vụ là cách thức nhận các yêu cầu vào các kênh phục vụ.Nguyên tắc phục vụ cho biết trường hợp nào thì các yêu cầu được nhận vào phục vụ vàcách thức phân bố các yêu cầu vào các kênh như thế nào Đồng thời nguyên tắc phục vụcũng cho biết trong trường hợp nào yêu cầu bị từ chối
Một số quy tắc xếp hàng là FCFS (Fist-come-fist-server), LCFS server), SIRO (Service-in-random-order), dịch vụ ưu tiên Tùy thuộc vào loại dịch vụ
(Last-come-fist-mà hệ thống phục vụ được thiết kế theo mô hình đơn hàng (có một hàng đợi), hay đahàng (nhiều hàng đợi), một bước phục vụ hay nhiều bước phục vụ Thời gian phục vụ
Trang 15được đặc trưng bởi phân phối xác suất khoảng thời gian mà khách hàng sử dụng cácdịch vụ.
Quá trình phục vụ hay kênh phục vụ là những thiết bị kỹ thuật, con người hoặc tổhợp các thiết bị kỹ thuật và con người mà hệ thống sử dụng để phục vụ các yêu cầu đến
hệ thống Một đặc trưng quan trọng nhất của các kênh phục vụ là thời gian phục vụ, đó
là thời gian ít nhất mỗi kênh phải tiêu hao để phục vụ xong một yêu cầu
Tiến trình ra.
Là dòng các 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 bị từ chối Ở đây chúng ta chỉ chú ý đến dòng yêu cầu đã được phục vụ; vậy
có thể coi tiến trình ra là dòng các yêu cầu đã được phục vụ rời khỏi hệ thống, dòng ra
được đặc trưng bởi tốc độ ra (departure rate), ký hiệu là
1.1.1 Các đặc điểm của hàng đợi
a) Đặc điểm của tiến trình đến
Kích thước khách hàng đến
Là giới hạn hoặc không giới hạn Ví dụ: không ước lượng được số xe đến bãi rửa
xe trong thành phố lớn hoặc lượng sinh viên đăng ký môn học tại một trường đại họclớn, đó là những hàng đợi không xác định được kích thước giới hạn của tiến trình đến.Hầu hết mô hình hàng đợi có kích thước đến là không giới hạn
Quy tắc của dòng đến
Khách hàng đến với dịch vụ theo một lịch trình (VD: Cứ 15 phút có một bệnhnhân đến khám hoặc đúng 30 phút có một sinh viên đến đăng ký học) hoặc đến mộtcách ngẫu nhiên không xác định chính xác được thời gian khách hàng kế tiếp đến
Để tính toán số khách hàng trung bình đến dịch vụ trong một khoảng thời gian,hay trung bình số lần xảy ra thành công của một sự kiện trong một khoảng thời giannhất định ta sử dụng phân phối Possion [6 tr.8] với giá trị trung bình này được ký hiện là Những hàng đợi có khách hàng đến ngẫu nhiên, độc lập và không xác định trước thờigian đến Số yêu cầu đến tại một thời điểm bất kỳ có thể ước lượng bằng phân phối xácsuất Possion được biểu diễn bởi hàm sau:
Trong đó: P(x) = xác suất xuất hiện x khách hàng vào hệ thống
x= Số yêu cầu đến trong 1 đơn vị thời gian
tốc độ đến (arrivals rate) của khách hàng
Trang 16Ví dụ: với Khách hàng đến/1 giờ thì xác suất không có khách hàng (k=0) đếntại thời điểm bất kỳ là 13%, khả năng 1 khách hàng là 27%, 2 khách hàng khoản 27%, 3khách hàng là 18%, 4 khách hàng là khoảng 9%.
Hành vi (tính chất) của tiến trình đến
Con người hay máy móc nói chung thường tuân theo quy luật xếp hàng cho đếnkhi được phục vụ mà không chuyển giữa các hàng Nhiều khách hàng từ chối chờ hoặcthiếu kiên nhẫn nên từ bỏ giữa chừng Những khách hàng đó sẽ đến và rời khỏi khi chưađược phục vụ Trên thực tế, cả hai trong số các trường hợp này chỉ phục vụ để làm nổibật sự cần thiết cho lý thuyết xếp hàng
b) Đặc điểm hàng đợi
Hàng đợi gồm 2 đặc điểm:
Kích thước: Chiều dài của hàng đợi cũng có thể là giới hạn hoặc vô hạn Giới hạn
khi số yêu cầu phục vụ chỉ tăng được đến một số lượng hữu hạn Ngược lại, Dòng đợi
vô hạn có kích thước không bị giới hạn
Nguyên tắc phục vụ:Hầu hết các hàng đợi thường sử dụng nguyên tắc phục vụ là
Fist-in, Fist-out hay còn gọi là Fist come – fist server (FCFS) Một phòng cấp cứu củabệnh việc hoặc quầy thanh toán của một siêu thị thường áp dụng FCFS Tuy nhiên trongmột số trường hợp như bệnh nhân đưa đến cấp cứu có mức độ nghiêm trọng cao hơn thì
sẽ được phục vụ trước, từ đó việc tính toán các yếu tố của hàng đợi cần đảm bảo một sốquy tắc ưu tiên Với những hàng đợi có ưu tiên, ta cũng cần tính xác suất xuất hiện yêucầu cần ưu tiên
c) Đặc điểm dịch vụ
Phần thứ 3 của mỗi hệ thống hàng đợi là đặc điểm về dịch vụ Hai thuộc tính quantrọng của dịch vụ là: Thiết kế của hệ thống phục vụ và phân phối thời gian phục vụ
Thiết kế của hệ thống dịch vụ là cách thiết kế số kênh, số bước (phase) phục vụ
để thực hiện các giao dịch với khách hàng Hầu hết các ngân hàng và các siêu thị lớnhiện nay đều có nhiều quầy phục vụ, và tùy vào tính chất dịch vụ mà số bước giao dịchđược thiết kế cho phù hợp Trong một hệ thống với một bước xử lý duy nhất, kháchhàng đến dịch vụ chỉ thực hiện giao dịch tại 1 trạm sau đó rời khỏi hệ thống Các hệthống dịch vụ công thực hiện chức năng tiếp nhận yêu cầu, xử lý hồ sơ và trả kết quảcho người làm thủ tục là mô hình với 1 bước xử lý duy nhất Tuy nhiên cũng có nhữngthủ tục hành chính cần thực hiện nộp hồ sơ tại một bộ phận, thanh toán lệ phí tại một bộphận và nhận kết quả tại 1 bộ phận khác là mô hình với nhiều bước xử lý
Trang 17Phân phối thời gian phục vụ Thời gian phục vụ thường là chính xác hoặc ngẫu
nhiên Thời gian phục vụ chính xác là khoảng thời gian phục vụ giống nhau với mọikhách hàng, phân phối này thường đặc trưng cho hoạt động của máy móc Trong thực
tế, hầu hết thời gian phục vụ thường tuân theo phân phối ngẫu nhiên
Er( phân phối Erlangian), H (phân phối siêu mũ)
- B: hàm phân phối thời gian phục vụ Tương tự như phân phối thời gian đến, luậtphân phối được thể hiện trong ký hiệu sẽ một trong những giá trị tương ứng nhưsau: M (phân phối mũ), G (phân phối chung), D (phân phối đều), Er( phân phốiErlangian), H (phân phối siêu mũ)
- c: Số kênh phục vụ (c>0)
Ký tự mô tả có thể mở rộng thêm một số thông số sau:
- K: Số lượng khách hàng lớn nhất có thể có trong hệ thống (trong hàng đợi và đang được phục vụ)
- n: Nguồn khác hàng vô hạn (∞) hoặc hữu hạn (n)
- D: Nguyên tắc phục vụ
Một số ví dụ để hiểu rõ về ký hiệu Kendall:
Ví dụ 1: hệ thống hàng đợi M/M/1, là mô hình hệ thống hàng đợi cổ điển, đơn
- Thời gian phục vụ theo luật phân phối G;
- Dung lượng hệ thống là vô hạn;
- Kích thước dòng đến (population size) là vô hạn;
- Nguyên tắc phục vụ FCFS;
- Có 1 kênh phục vụ
Trang 181.1.2 Hệ số sử dụng dịch vụ
Giá trị đến λ, thời gian phục vụ E(B) công việc đến trong 1 đơn vị thời gian làλE(B) Quầy phục vụ thực hiện 1 công việc trên 1 đơn vị thời gian Điều kiện dừng là:
λE(B) < 1 Với B là thời gian phục vụ trung bình
Nếu ρ < 1 thì ρ được gọi là hệ số sử dụng bởi nó đặc trưng cho thời gian hệ thốngphục vụ làm việc Với hệ thống có c quầy phục vụ thì ta có λE(B)< c Vậy hệ số phục vụlà: ρ = λE(B)/c
1.1.5 Định nghĩa các độ đo hiệu suất
Đo hiệu suất của hàng đợi là việc sử dụng cơ sở toán học để xác định được cáctham số sau:
- Phân phối thời gian chờ đợi và tạm trú của một khách hàng (thời gian tạm trú bằng thời gian chờ + thời gian phục vụ)
- Phân phối số lượng khách hàng trong hệ thống (bao gồm hoặc không bao gồm những khách hàng đang được phục vụ)
- Phân phối khối lượng các công việc trong hệ thống (Tổng thời gian khách hàng chờ đợi và thời gian còn lại của khách hàng trong dịch vụ)
- Phân phối thời gian bận rộn của kênh phục vụ (là khoảng thời gian phục vụ liên tục của kênh)
Đặc biệt, đối với hệ thống hàng đợi chúng ta quan tâm đến một số các tham sốsau:
Bảng 1 2 - Một số tham số của hàng đợi
hiệu
1 λ Tốc độ đến (arrival rate) của khách hàng
2 µ Tốc độ phục vụ (service rate)
3 tn Khoảng thời gian giữa khách hàng liên tiếp (tn= τn - τn-1 )
4 Wq Thời gian chờ để được phục vụ trong hàng đợi
5 Thời gian tạm trú của khách hàng trong hệ thống (thời gian
Ws đợi + thời gian phục vụ) của khách hàng thứ n
Sn=Wq+ n
6 A n (t) Hàm phân phối xác suất thời gian giữa hai khách hàng liên
Trang 19( A n (t)=P[tn≤t] )
7 B( ) Phân phối thời gian phục vụ
8 Số khách hàng đến trong khoảng thời gian (0,t)
9 Số khách hàng ra khỏi hệ thống trong khoảng thời gian (0,t)
10 L(t) Số khách hàng ở trong hệ thống tại thời điểm t
Luật Little đưa ra mối quan hệ quan trọng giữa - số khách hàng trong hệthống, thời gian lưu trú của khách hàng trong hệ thống và – số khách hàngtrung bình đến trong một đơn vị thời gian [4 tr.26]
Luật Little ký hiệu như sau:
E(L)= λE(S) (3.1)
Để mô tả cho luật Little ta xét với mô hình hàng đợi 1 quầy phục vụ Với mô hình này chúng ta có thể thu được một số thông số hiệu suất khi áp dụng luật Áp dụng luật cho hàng đợi (không gồm quầy phục vụ) thu được mối quan hệ giữa chiều dài hàng đợi và thời gian đợi như sau:
Cuối cùng, khi áp dụng luật Little cho quầy phục vụ ta có
Trang 20Với là số khách hàng ở trong quầy phục vụ (áp dụng tương tự với hàm thờigian phục vụ) và là thời gian phục vụ.
1.2 Một số mô hình hàng đợi cơ bản
Trong thực tế có rất nhiều mô hình hàng đợi được áp dụng trong quản lý, Bảng 1.2liệt kê một số mô hình thường thấy áp dụng trong các ứng dụng Với mỗi mô hình sẽ cónhững đặc điểm và quá trình chuyển trạng thái riêng; các đặc điểm và phương pháp tínhhiệu suất của từng mô hình sẽ được trình bày trong các tiểu mục của mục 1.2 này
Bảng 1 3-Một số mô hình hàng đợi cơ bản
phục vụ bước phối tín thời gian thước tắc phục
phục hiệu đến phục vụ của dòng vụ
mũ
Hệ thống đa hàng c (c>1) 1 Possion Luật phân Không FIFO
Là hàng đợi đơn giản nhất với một số đặc điểm:
- Không giới hạn kích thước dòng vào
- Không giới hạn kích thước hàng đợi
- Có duy nhất một kênh phục vụ
- Áp dụng quy tắc phục vụ FCFS
Trang 21- Phân phối tốc độ đến và thời gian phục tuân theo phân phối Poisson
Mô hình hàng đợi được miêu tả như sau:
K-1 vị trí FCFS Server
W thời gian
Hìình 1 34 - Mô hìình hàng đợii M//M//1
b) Đo hiệu suất hàng đợi M/M/1
Hình 1 5 - Sơ đồ chuyển trạng thái của hàng đợi M/M/1
Đối với mô hình chuyển trạng thái như hình 1.4 [4 tr.30] tốc độ đến và tốc độ phục vụ không phụ thuộc trạng thái, mà được đặc trưng bởi số khách hàng trong hệ thống
- Phân phối thời gian đến
- Phân phối thời gian phục vụ
- Để hàng đợi đảm bảo điều kiện dừng (không vượt quá khả năng phục vụ) cần đảm bảo ràng buộc [4 tr.29]
Ta có các biến cần tính toán sau:
= Số khách hàng đến trung bình trong một đơn vị thời gian
= Số khách hàng được phục vụ trong một đơn vị thời gian
Số lượng khách hàng lưu trú trong hệ thống (lượng khách đang chờ đợi + đang đượcphục vụ)
Thời gian trung bình khách hàng trong hệ thống (thời gian chờ đợi + thời gian phục vụ)
Trang 22= Số khách hàng trung bình trong hàng đợi
Thời gian chờ đợi trung bình trong hàng đợi
Xác suất không có khách hàng trong hệ thống (hệ thống nhàn rỗi)
…
Hình 1 6- Mô hình hàng đợi M/M/c
- Phân phối thời gian đến là
- Phân phối thời gian phục vụ
- Hiệu suất phục vụ:
b) Đo điệu suất hệ thống M/M/c:
Trang 23Hình 1 7 - Sơ đồ chuyển trạng thái hàng đợi M/M/c
Sơ đồ chuyển trạng thái hình 1.7 [4 tr.43] cho thấy tốc độ phục vụ phụ thuộc vào
số kênh phục vụ; các biến của hệ thống M/M/c:
Số kênh phục vụ
= Số khách hàng đến trung bình trong một đơn vị thời gian
= Số khách hàng được phục vụ trong một đơn vị thời gian ở mỗi kênh
Thời gian trung bình khách hàng ở trong hàng đợi
1.2.3 Hệ thống hàng đợi có thời gian phục vụ chính xác (M/D/1)
Một số hàng đợi có thời gian phục vụ chính xác [6 tr.14] thay vì phân phối mũ Khi khách hàng yêu cầu dịch vụ quá trình phục vụ theo một vòng đời được định sẵn,
Trang 24như trong trường hợp máy rửa xe tự động Vì thời gian phục vụ là cố định nên các giátrị [3 tr.61] luôn luôn nhỏ hơn các thông số tương tự ở mô hình
M/M/1 Cả chiều dài hàng đợi và thời gian chờ đợi trung bình đều giảm một nửa
Độ dài trung bình của hàng đợi
Thời gian đợi trung bình
Số khách hàng trung bình trong hệ thống
Thời gian đợi trung bình trong hệ thống
1.2.4 Hệ thống hàng đợi giới hạn kích thước M/M/c/K
Là hệ thống đa kênh và chỉ có tối đa K khách hàng được phép lưu trú trong hệ thống Hệthống hàng đợi M/M/m/K được mô hình hóa trong Hình 1.8
Server 2FCFS
- Không giới hạn kích thước dòng vào
- Giới hạn kích thước khách hàng trong hàng đợi
b) Đo hiệu suất
Tốc độ đến và tốc độ phục vụ của của trạng thái i được xác định là i và i
Trang 25Hiệu suất hệ thống [4 tr.43]
=
Sơ đồ chuyển trạng thái của hệ thống được mô tả hình 1.9
Hình 1 9 - Sơ đồ chuyển trạng thái mô hình hàng đợi M/M/c/K
Trong mô hình trên, hệ thống ở trạng thái i khi có i khách hàng được phục vụ đồng
Er /1, Er /M/1, M/G/1,G/M/m, G/G/1 được trình bày khá chi tiết trong tài liệu [3]
1.3 Các điều kiện để bài toán có thể giải được bằng lý thuyết
Điều kiện 1: Dòng vào của hệ thống phải là dòng tối giản hoặc xấp xỉ tối giản Điều kiện 2: Khoảng thời gian (T) giữa 2 lần xuất hiện liên tiếp các yêu cầu là đại
lượng ngẫu nhiên tuân theo qui luật hàm số mũ Như vậy, hàm mật độ xác suất có dạng:
(1.1)
Và hàm phân phối xác suất có dạng
(1.2)Với λ là cường độ dòng vào, đó là số yêu cầu trung bình xuất hiện trong một đơn
vị thời gian
Trang 26Điều kiện 3: Thời gian phục vụ của các kênh cũng là đại lượng ngẫu nhiên tuân
theo qui luật hàm số mũ
Như vậy, hàm mật độ xác suất có dạng Và hàm phân phối xác suất
có dạng Với μ là năng suất phục vụ của các kênh, đó là số yêu cầu đượcphục vụ tính bình quân trên một đơn vị thời gian
1.4 Phương pháp giải quyết bài toán bằng lý thuyết hàng đợi
Giải bài toán phục vụ đám đông bằng lý thuyết hàng đợi hay phương pháp giảitích là phương pháp cơ bản và được sử dụng khá phổ biến Đường lối chung của phươngpháp này bao gồm các bước:
Bước 1: Phân tích hệ thống mà chủ yếu là phân tích tính chất của dòng vào và các
trạng thái của hệ thống;
Bước 2: Thiết lập hệ phương trình trạng thái để giải ra các xác suất trạng thái; Bước 3: Giải hệ phương trình để tìm ra các xác suất trạng thái và từ đó thiết lập
mối quan hệ giữa các chỉ tiêu cần phân tích;
Bước 4: Tính toán, phân tích các chỉ tiêu, trên cơ sở đó đưa ra nhận xét và kết
luận
Kết luận chương
Trong chương này, luận văn đã làm rõ các thành phần cơ bản của một hệ thốnghàng đợi và một số kết luận quan trọng của lý thuyết hàng đợi như luật Little, kí hiệuKedall và của một số hàng đợi cơ bản như M/M/1, M/M/c, M/M/c/K
Tuy nhiên, còn cần xem xét nhiều yếu tố khác của hàng đợi như độ ưu tiên, phânphối thời gian bận Ngày nay, với sự phát triển của khoa học máy tính, việc tích hợp cácphân phối xác suất toán học vào trong các phần mềm mô phỏng giúp xây dựng, thiết lậpcác mô hình trở nên đơn giản hơn rất nhiều, khắc phục được những hạn chế của phươngpháp toán học thuần túy trong giải quyết bài toán hàng đợi Chúng ta sẽ thấy được sựhiệu quả của các công cụ mô phỏng chương 2 của luận văn
Trang 27CHƯƠNG 2 CÔNG CỤ MÔ PHỎNG GPSS WORLD
2.1 Cách tiếp cận mô phỏng
Việc giải quyết bài toán các hệ thống phục vụ đám đông [1] là một vấn đề cần thiết
và mang ý nghĩa khoa học thực sự đặc biệt trong việc mô phỏng các hệ thống kênh phục
vụ phức tạp như các hệ thống viễn thông, các hệ thống bán vé tự động, sân bay, giaothông
Áp dụng lý thuyết hàng đợi với những mô hình phức tạp thường khó khăn Môphỏng là một trong những phương pháp hiệu quả nhất để nghiên cứu các hệ thống phứctạp Bản chất của công cụ mô phỏng là là tái tạo quá trình hoạt động của một hệ thốngtheo sự kiện và thời gian theo đúng quy luật quan sát được ngoài thực tế Khi đó tínhchất đầy đủ của các mô hình mô phỏng cần đạt được là: mô phỏng vòng đời của mỗiphần tử trong hệ thống đúng theo logic và quy tắc tương tác và phát triển của chúng cảtrong thời gian và trong không gian
Khi xây dựng mô hình mô phỏng và triển khai thực hiện nó thường có hai cáchtiếp cận, một là sử dụng các ngôn ngữ lập trình để xây dựng mô phỏng, hai là sử dụngcác ngôn ngữ mô phỏng chuyên dụng Xây dựng mô hình mô phỏng bằng cách sử dụngcác ngôn ngữ lập trình truyền thống là khá phức tạp và khó khăn Chính vì vậy, nhiềungười đã lựa chọn cách tiếp cận sử dụng các ngôn ngữ mô phỏng chuyên dụng Ngoàinhững ưu điểm tiện dụng, đơn giản, công cụ mô phỏng chuyên dụng mang lại tính tincậy cao hơn cho bài toán cần mô phỏng
Chương 2 của luận văn này trình bày công cụ đại diện cho cách tiếp cận sử dụngcông cụ mô phỏng chuyên dụng để giải quyết bài toán
2.2 Hiện trạng một số công cụ mô phỏng chuyên dụng
Với ý nghĩa ứng dụng thực tiễn, từ những năm 1960 trở lại đây, đã có nhiều cáccông cụ mô phỏng ra đời Giai đoạn đầu hầu hết các công cụ phục vụ cho môi trường
PC, nhưng thời điểm hiện tại có thể tìm thấy các toolbox chạy trên môi trường Internetđáp ứng nhu cầu nghiên cứu và ứng dụng với phạm vi khác nhau
Công cụ mô phỏng chuyên dụng có khả năng phân tích các hệ thống phức tạp nổibật là MatLab, Petri Network, NS2 Nhìn chung các công cụ được nêu đều có chungmục tiêu, cơ sở lý thuyết, dù cách thể hiện trong ngôn ngữ lập trình hay công nghệ ápdụng có khác nhau Tuy nhiên luận văn tập trung tìm hiểu công cụ mô phỏng tiên phongtrong mô phỏng hệ thống phục vụ đám đông là GPSS World Các ứng dụng chính củacông cụ mô phỏng GPSS World có thể kể đến như:
- Các hệ thống chăm sóc khách hàng như Call Center, dịch vụ 1080, 1900…
Trang 28- Giao thông vận tải (phổ biến nhất là mô hình bảo trì máy bay fleet trong 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ền trong 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…
Là một công cụ đã được kiểm chứng qua nhiều mô hình thành công; GPSS World
là công cụ luận văn sử dụng để thực hiện bài toán áp dụng
2.3 Giới thiệu về GPSS World
GPSS (General Purpose Simulation System) [5, 8, 13] thuộc loại ngôn ngữ lập
trình hướng đối tượng, một ngôn ngữ mô phỏng các hệ thống phức tạp rời rạc, đượcnhận định là hiệu quả nhất hiện nay GPSS dự đoán các hành vi trong tương lai của các
hệ thống hàng đợi Các đối tượng của ngôn ngữ này được sử dụng tương tự như cácthành phần chuẩn của một hệ thống hàng đợi, như là các yêu cầu, các thiết bị phục vụ,hàng đợi… Với tập hợp đầy đủ các thành phần như vậy cho phép xây dựng các môphỏng phức tạp mà vẫn đảm bảo tính logic hệ thống hàng đợi
General Purpose Simulation System được Geoffrey Gordon của IBM phát triểnvào khoảng thập niên 1960, viết tắt là GPSS Sự ra đời của GPSS đã góp phần đưa racác khái niệm quan trọng cho tất cả các ngôn ngữ mô phỏng (sự kiện rời rạc) thươngmại trên máy tính phát triển từ đó [1] GPSS/PC là phiên bản cài đặt đầu tiên cho máytính cá nhân được giới thiệu vào năm 1984 và GPSS World là một hậu duệ trực tiếp củaGPSS/PC Hiện nay, GPSS World chạy trên môi trường Windows và được mở rộngthêm nhiều tính năng trên môi trường Internet
GPSS World được thiết kế để cung cấp câu trả lời một cách nhanh chóng và đángtin cậy, với nỗ lực ít nhất, đạt được các kết quả được xem xét trên nhiều góc độ trựcquan nhất, phù hợp với các mục tiêu khác nhau của các mô phỏng Thêm vào đó, GPSSWorld còn tích hợp một hàm thư viện các hàm phân phối xác suất, đem lại sự tiện dụngcho người viết chương trình mô phỏng Điểm mạnh của GPSS World là trong suốt vàcung cấp hình ảnh động trực quan giúp người sử dụng có thể nhận biết được sự thay đổicủa hệ thống theo thời gian và cung cấp các công cụ ngắt để có thể dừng mô phỏng tạibất kỳ thời điểm nào nhằm ghi nhận lại các chỉ số cần thiết của mô phỏng
2.3.1 Đặc điểm nổi bật của ngôn ngữ GPSS World
GPSS World là ngôn ngữ hướng đối tượng, bao gồm các đối tượng: ModelObjects, Simulation Objects, Report Objects, Text Objects
Một số bước thông dụng để xây dựng mô phỏng bao gồm: thu thập dữ liệu và xâydựng mô hình, kiểm tra - xác minh, mô phỏng, thử nghiệm, và phân tích các kết
Trang 29quả GPSS World cung cấp một cách đa dạng các giải pháp để thực hiện từng bước trên.
Để tạo mô hình và chỉnh sửa mô hình (Model) có thể sử dụng trình soạn thảo full-screentext hoặc chèn các Block command GPSS bằng cách sử dụng các hộp thoại được cungcấp sẵn
Một số đặc điểm nổi bật sau:
- Phím nóng cho tương tác nhanh: một mô hình được định nghĩa như là một
chuỗi những câu lệnh mô hình (Model Statement); quá trình xây dựng mô hình, người
dùng được cung cấp nhiều loại cửa sổ cho phép xem trực tiếp và chụp ảnh mô phỏngbằng với các phím nóng, các kiểm soát điểm ngắt Trình xây dựng mô hình cho phép gỡlỗi dễ ràng hơn trong quá trình thử nghiệm và kiểm tra xác nhận
- Trình tạo thử nghiệm tự động: công cụ Automatic Experiment Generators sinh
ra các thử nghiệm tự động sau khi mô phỏng được kiểm tra, ngoài ra có thể sử dụngcông cụ hỗ trợ các bước thiết kế của GPSS
- Là ngôn ngữ có tập lệnh mạnh nhưng cấu trúc đơn giản, được thiết kế trên môi
trường máy tính, sử dụng bộ nhớ ảo cho phép các mô hình lên tới hàng tỷ byte Ưu tiên
đa nhiệm và xử lý đa luồng
- Được mở rộng thêm PLUS – Programming Language Under Simulation
ngôn ngữ lập trình theo mô phỏng đơn giản nhưng mạnh mẽ, loại bỏ các hạn chế tồn tại trong các phiên bản GPSS cũ
- Ngoài ra, GPSS World còn chứa các hàm thư viện phân phối xác suất trực tiếp được sử dụng trong các biểu thức PLUS
- Hơn 20 phân phối xác suất tích hợp
- 13 chế độ xem đồ họa khác nhau của các đối tượng mô phỏng:Việc phân tích kết
quả trong GPSS World cũng rất dễ dàng, nó cung cấp công cụ hỗ trợ cho việc nắm bắt
và in các cửa sổ đồ họa Cửa sổ Journal ghi lại các hoạt động liên kết với các đối tượng
mô phỏng
Định hướng giao diện người dùng định hướng với mô hình, mô phỏng, báo cáo,
và các đối tượng văn bản
2.3.2 Một số khái niệm trong GPSS World
GPSS bao gồm các đối tượng sau:
- Model Objects (đối tượng mô hình);
- Simulation Objects (đối tượng mô phỏng);
- Report Objects (đối tượng báo cáo);
- Text Objects (đối tượng văn bản).
Trang 30Khả năng lưu và phục hồi mô phỏng cho phép lưu lại các đối tượng bất cứ lúc nào,bất kỳ trạng thái nào, và mở trở lại vào phiên cuối cùng.
Sau khi một mô hình được phát triển bằng cách soạn thảo các câu lệnh trong một
đối tượng; Người dùng sử dụng lệnh Create Simulation để chạy mô phỏng hay tạo ra
một đối tượng mô phỏng có cấu trúc như tập lệnh đã xây dựng trong trình soạn thảo;Quá trình biên dịch tập lệnh thông qua một bộ biên dịch (Translator) Phần mềm chạy
mô phỏng với thời gian được thiết lập sau lệnh START, một đối tượng báo cáo được tựđộng tạo ra Để sử dụng đối tượng văn bản chúng ta đặt các đối tượng này trong câu
lệnh INCLUDE để hỗ trợ phát triển các mô phỏng lớn, tạo ra một thư viện mã nguồn và
cho các ứng dụng tiện ích khác Ngoài ra, các đối tượng văn bản thường được sử dụngbởi các các đối tượng mô phỏng khi thực hiện các thao tác OPEN, CLOSE, READ,WRITE, and SEEK
Để xây dựng được một mô hình đối tượng hoàn chỉnh, người dùng cần có hiểu biếtđầy đủ về các đối tượng này Một mô phỏng tốt là mô phỏng đúng các hành vi, sự kiệntrong hệ thống thực tế Vì vậy xây dựng mô hình cần dựa trên những quan sát đánh giáthực tế nhằm đạt được kết quả đúng đắn nhất
2.3.2.1 Đối tượng mô hình (Model Objects)
Một đối tượng mô hình chứa một chuỗi các câu lệnh mô hình (Model Statement)
và một tập các giá trị thiết lập được xây dựng trong Setting Ngoài ra, một bộ các đánhdấu (bookmark) và một danh sách các lỗi cú pháp cũng là một phần của đối tượng môhình Khi một đối tượng mô phỏng được tạo ra nhờ việc dịch khối lệnh trong mô hình,
nó được kế thừa tất cả các thiết lập từ đối tượng mô hình mẹ
Trong đó:
- Câu lệnh mô hình (Model Statement) có thể là một câu GPSS (GPSS Statement),
hoặc một định nghĩa thủ tục PLUS Các câu GPSS có thể là các câu lệnh khối
(Block Statements) hoặc là các lệnh (Commands).
- Mô hình nhiều tệp tin: Thông thường một mô hình được thiết lập bởi một tập lệnhtrong một mô hình đối tượng Tập các tập tin văn bản được gọi là Đối tượng vănbản (Text Object) Trong một số trường hợp, GPSS cho phép đặt nhiều các thủ tục,báo cáo vào một hoặc nhiều đối tượng text để module hóa mô hình Các đối tượngvăn bản, là các tập tin văn bản đơn giản, có thể được đặt trong câu lệnh INCLUDEtrong Mô hình đối tượng Làm như vậy sẽ làm cho tất cả các câu lệnh trong đốitượng văn bản được chèn vào trong lệnh INCLUDE khi đối tượng Mô phỏng đượctạo ra
- Thiết lập mô hình (Model Settings): tập hợp các chọn lựa nhằm thiết lập các tham
số cho mô hình gọi là "Settings" hay một cách đầy đủ là là Model Setting Các cài
đặt được kế thừa từ các đối tượng mô phỏng và các đối tượng báo cáo sẽ đưa ra
Trang 31kết quả sau khi chạy mô phỏng Một số các thiết lập có thể thay đổi được ngay cả sau khi các đối tượng mô phỏng được biên dịch.
2.3.2.2 Các đối tượng mô phỏng - Simulation Objects
Một đối tượng mô phỏng được tạo ra bằng cách vào menu Command/Create
Simulation để dịch các câu lệnh trong một đối tượng mô hình (Model Object) Sau khi
một mô hình được dịch thành công, lệnh này sẽ tạo ra các trạng thái của mô phỏng.Lệnh CREATE có thể là một phần của Mô hình đối tượng, hoặc chúng có thể được gửiđến Đối tượng Mô phỏng hiện tại như một tương tác
2.3.2.3 Bộ biên dịch (Translator)
Bộ biên dịch của GPSS biên dịch các đối tượng mô phỏng Tất cả các câu lệnh môphỏng được biên dịch trước khi chúng được khởi tạo trong mô phỏng Tương tự, cáctương tác được biên dịch toàn cục trước khi cùng được chuyển thành một đối tượng môphỏng tồn tại [5]
Khi có lỗi xảy ra ngăn cản quá trình tạo đối tượng mô phỏng, một danh sách thôngđiệp trên mô hình đối tượng xuất hiện Có thể chuyển đến thông báo lỗi bằng cách nhấnSearch / Next Error hoặc sử dụng phím tắt Mỗi lỗi mô tả trong dòng trạng thái ở cuốicửa sổ chính Sau khi chỉnh sửa mô hình có thể biên dịch lại bằng lệnh Retranslate trongCommand
2.3.2.4 Các đối tượng báo cáo - Report Objects
Một trong những tính năng mạnh nhất được trang bị cho GPSS là hệ thống báo cáo
chuẩn (Standard Report) IBM đã xây dựng hệ thống báo cáo cho tất cả các thực thể
GPSS của một mô phỏng và được tạo tự động khi mô phỏng hoàn thành Chỉnh sửa các
cài đặt (Settings) là cách để tùy biến các báo cáo, thay đổi tham số của mô phỏng nhằm
đưa lại các kết quả báo cáo hữu ích
2.3.2.5 Các đối tượng văn bản (Text Objects)
Text Object đại diện cho một tập tin văn bản thuần túy trong GPSS World Chúngđược sử dụng chính trong lệnh INCLUDE Text Object cho phép chia sẻ các câu lệnh
mô hình trong đối tượng văn bản tới một đối tượng mô hình khác Thậm chí có thể tảimột câu INCLUDE vào một phím chức năng, bằng cách đó, một danh sách lệnh phứctạp/hoặc thủ tục PLUS trong một tập tin văn bản có thể được gửi đến một mô phỏng vớimột phím tắt duy nhất
2.3.3 Các thực thể trong GPSS
GPSS được xây dựng xung quanh các khái niệm trừu tượng gọi là các thực thể
(Entities) Các thực thể GPSS là những đối tượng trừu tượng tồn tại trong một mô
phỏng Để có thể tạo ra mô hình phức tạp, người sử dụng phải hiểu về các thực thể, cácthuộc tính và các thao tác trên các thực thể đó
Trang 32GPSS cung cấp 14 loại thực thể trong đó nổi bật nhất là các thực thể giao tác
(transactions) và các thực thể khối (blocks) Giao tác là loại thực thể duy nhất có thể
được xóa khỏi mô phỏng Một mô phỏng có qui mô lớn sẽ bao gồm nhiều giao tác dichuyển từ một khối vào khối tiếp theo
Các thực thể GPSS được đánh số, GPSS World thường gán một giá trị duy nhấtlớn hơn hoặc bằng đến 10.000 vào tên của thực thể Một số thực thể phải được khai báo
cụ thể trước khi sử dụng chúng như: các thực thể lưu trữ, các biến, bảng, ma trận, cáchàm… Hầu hết các thực thể GPSS khi cần thiết được tạo ra tự động
Phần tiếp theo của luận văn nêu các kiểu thực thể chính bao gồm: các thực thểthiết bị, các thực thể lưu trữ, Các thực thể động, các thực thể khối, các thực thể tínhtoán, các thực thể nhóm
2.3.3.1 Các thực thể thiết bị (Facility entity)
Một thiết bị là một thực thể có một số thuộc tính, trong đó quan trọng nhất là thuộctính trạng thái của thiết bị, hay nói cách khác là quyền sở hữu thiết bị Các thực thểthuộc về thiết bị (Facility Entities) đại diện cho các máy phục vụ và hoặc các thiết bịkhác của hệ thống thực Một thiết bị có thể được sở hữu bởi một giao tác duy nhất vìvậy một thiết bị không thể được giải phóng bởi một giao tác mà không sở hữu nó Thựcthể ở trạng thái là “bận” khi thiết bị được sở hữu bởi một giao tác; Ngược lại thiết bị ởtrạng thái “rảnh” khi không có giao tác nào sở hữu nó Có thể gán quyền sở hữu thiết bị
hoặc giải phóng quyền sở hữu của giao tác bằng lệnh SEIZE hoặc khối PREEMPT.
Nếu một giao tác không được cấp quyền sở hữu, nó sẽ ở trạng thái nghỉ (idle) [5]
Có một số Block GPSS có thể được sử dụng với các thiết bị: ·
- SEIZE Blocks cố gắng chiếm quyền sở hữu của một thực thể thiết bị
- RELEASE Blocks từ bỏ quyền sở hữu của một thực thể thiết bị
- PREEMPT Blocks cố gắng chiếm quyền sở hữu của một cơ sở, thay thế chủ sở hữu hiện tại
- RETURN Block từ bỏ quyền sở hữu của một cơ sở
- FAVAIL Block đặt một cơ sở ở trạng thái có sẵn
- UNAVAIL Blocks đặt một cơ sở ở trạng thái không khả dụng: máy phục vụ đám đông tương ứng với các thiết bị đơn kênh, đa kênh và thiết bị chuyển logic Thiết bị chuyển logic được sử dụng để mô phỏng thiết bị có 2 trạng thái (bật và tắt, đóng và mở) của tính chất logic hay vật lý
2.3.3.2 Các thực thể lưu trữ (Storage Entity)
Các thực thể lưu trữ đảm bảo việc lưu trữ trong bộ nhớ của máy tính các đại lượngriêng biệt được sử dụng trong mô hình Các đối tượng kiểu này gồm có các thực thể giá
trị lưu (Savevalue Entities), các thực thể ma trận (Matrix Entities) [5].
Trang 33Một thực thể lưu trữ liên kết đến một số các đơn vị lưu trữ Nó được cung cấphoặc trả lại bởi Transaction Thực thể lưu trữ có thể sử dụng như "token pools" để điềukhiển luồng của Transaction trong mô hình.
Khi một giao tác đi vào một thực thể lưu trữ nó chiếm giữ một hoặc nhiều đơn vịcủa thực thể lưu trữ Một giao tác bị từ chối đi vào từ khối ENTER khi thực thể khôngđáp ứng được nhu cầu lưu trữ của giao tác Những giao tác bị từ chối lưu trú tại chuỗiDelay (Delay Chain) của thực thể lưu trữ hay phải chờ cho đến khi các giao tác khácgiải phóng đủ bộ nhớ bằng khối LEAVE
2.3.3.3 Thực thể giao tác (Transaction Entity)
Giao tác chuyển từ khối này qua khối khác trong một mô phỏng được quản lý vàthể hiện trong hệ thống thật mà ta cần mô hình hóa Các thực thể động là các giao tác có
thể xem như là một “yêu cầu”, hay một “sự kiện” đi vào hệ thống phục vụ đám đông.
Trong quá trình mô phỏng, các giao tác được “tạo ra” (ứng với loại “dòng đến”) và “kết thúc” (ứng với loại “dòng đi” được gọi là vòng đời của giao tác Mỗi giao tác trong quá
trình mô phỏng luôn thuộc vào một khối (BLOCK) xác định nào đó, nhưng mỗi khối có
thể chứa cùng lúc nhiều giao tác khác nhau Mỗi giao tác dịch chuyển vào một khối, sau
đó đến khối tiếp theo, cứ thế cho đến khi nó bị xóa bỏ, tức là rơi vào trạng thái
TERMINATED hoặc quá trình mô phỏng dừng [5].
Một số thuộc tính quan trọng của thực thể giao tác là:
- Tham số - Tham số của giao tác là tập các giá trị liên quan đến giao tác Mỗi giao
tác có thể chứa nhiều tham số Mỗi tham số có một giá trị là một số nguyêndương
- Tham số giao tác phải được tạo và gán giá trị trước khi chúng được tham chiếuđến ASSIGN, MARK, and TRANSFER SUB, SELECT, SPLIT và COUNT làcác khối tạo một tham số giao tác nếu nó chưa tồn tại
- Độ ưu tiên – mức độ ưu tiên của giao tác xác định thứ tự của các giao tác có
cùng nguồn phát sinh Giao tác với mức độ ưu tiên cao hơn sẽ có thời gian chờ íthơn Giao tác được ưu tiên trong hàng đợi CEC (Current Events Chain), FDC(Facility Delay Chains), và SDC (Storage Delay Chains) FEC (Future EventsChain) không phải là hàng được ưu tiên Tác động của mức ưu tiên với một giaotác là nó sẽ được chọn trước so với những giao tác có độ ưu tiên thấp hơn khi cócác giao tác tích cực, hoặc trong việc phân phối thực thể lưu trữ và thực thể thiếtbị
- Khối hiện tại – Số thực thể của khối chứa giao dịch.
- Khối kế tiếp – Số thực thể của khối mà giao tác sẽ cố gắng vào tiếp.
- Chuỗi – Trạng thái của giao dịch được xác định bởi một số chuỗi mà nó cư trú
tồn tại các trạng thái sau:
Tích cực – chứa các giao tác có mức độ ưu tiên cao trong CEC
Trang 34 Tạm ngừng – các giao tác đang chờ ở trong FEC hoặc CEC trở thành giao tác tích cực.
Thụ đông – các giao tác trong mô phỏng đang ở chuỗi người dùng, trễ hoặc chuỗi chờ xử lý
Gián đoạn – các giao tác bị tiêu diệt và không thể tiếp tục tồn tại trong mô phỏng
2.3.3.4 Các thực thể khối (Block Entities)
Các thực thể khối (Block Entities) là thành phần cấu trúc cơ bản của một chương
trình mô phỏng GPSS Mỗi loại khối tương ứng với một hành động trong mô phỏng.Mỗi giao tác trong mô hình được chứa chính xác trong một khối, nhưng hầu hết cáckhối có thể chứa nhiều giao tác [5]
Các đối tượng tĩnh được sử dụng để thu thập và xử lý các dữ liệu thống kê về hoạtđộng của mô hình
2.3.3.5 Các thực thể hàng đợi (Queue Entities)
Là một thực thể quan trọng trong mô phỏng, mỗi đối tượng kiểu hàng đợi đảm bảoviệc thu thập và xử lý dữ liệu về các giao tác được giữ lại tại một điểm nào đó trong môhình, ví dụ trước khi vào thiết bị đơn kênh
Các khối liên quan:
- Khối QUEUE: tăng số phần tử trong hàng đợi
- Khối DEPART: giảm số phần tử trong hàng đợi
2.3.3.6 Các thực thể bảng (Table Entities):
Được sử dụng để nhận các phân phối xác suất của các đại lượng ngẫu nhiên, ví dụ lưu lại thời gian chờ đợi của các giao tác trong mô hình mô phỏng
Các khối liên quan:
- Khối TABULATE cập nhật dữ liệu biểu đồ trong thực thể
2.3.3.7 Các thực thể tính toán
Các đối tượng tính toán bao gồm:
- Các biến (Variable Entities) (số học và logic)
- Các hàm (Function Entities) dùng để tính toán các đại lượng nào đó được cho bởicác biểu thức số học hay logic hoặc ở dạng bảng
- Thực thể ma trận là một mảng các phần tử, mỗi phần tử chứa giá trị Kích thướccủa mảng bị giới hạn bởi yêu cầu bộ nhớ tối đa trong trang mô phỏng khi thiếtlập mô hình
Trang 35- Thực thể Logicwitch là thực thể đơn giản nhất với hai trạng thái là Set" hoặc
"Reset" Thực thể này được gán giá trị 0 khi được tạo, khi gặp một lệnh CLEAR(không có tùy chọn OFF) sẽ được gửi đến đối tượng mô phỏng
2.3.3.8 Các thực thể nhóm
Các đối tượng thuộc nhóm gồm có:
Numeric Group Entities – là tập hợp các giá trị số, được sử dụng để ghi lại các
sự kiện hoặc mô tả quá trình mô phỏng chạy.
Các khối lệnh liên quan:
JOIN : đưa một giá trị vào một Numeric
Group; REMOVE lấy một giá trị ra ;
EXAMINE Kiểm tra giá trị trong Numeric Group.
Transaction Group Entities- các thực thể nhóm giao tác dùng để phân loại và truy
cập các giao tác
Thực thể chuỗi người sử dụng (Userchain Entities) dùng để thiết lập các mô hình lập trình phức tạp và các thuật toán sắp xếp.
2.3.4 Cú pháp lệnh GPSS
Phần này trình bày chi tiết về định dạng các lệnh của GPSS, theo định dạng sau:
Giải thích cụ thể:
Line number: tùy chọn có hoặc không nếu được sử dụng, chúng phải bắt đầu
trong cột 1
Label – Nhãn: Nếu trong chương trình không cần tham chiếu thì thành phần nhãn
này của câu lệnh không nhất thiết phải có
Trường nhãn cho phép đặt tên và tham chiếu đến nhãn từ thân chương trình Nhãnphải tuân theo các quy tắc đặt tên của GPSS Có thể gán các giá trị của cho các nhãnbằng lệnh EQU và các khai báo trong các hàm PLUS Điều này rất hữu ích khi bạnmuốn thử nghiệm với một số giá trị với một số biến
Khi GPSS gặp một nhãn mới, nó chỉ định một số nguyên duy nhất cho tên Những
số nguyên này độc lập và bắt đầu từ 10.000 Vì vậy có thể sử dụng cùng tên để chỉ cácloại thực thể khác nhau Ví dụ Bạn có thể có một thực thể lưu trữ và một Thực thể bảng
có tên Motorpool Tuy nhiên nếu bạn sử dụng Motorpool như một nhãn trong mộtSTORAGE Command, thì Entity Storage cũ sẽ được thay đổi Tuy nhiên, các thực thểkhối cố định không được thay thế bằng cách này
Trang 36Verbs – Từ khóa: Đây là thành phần bắt buộc của một câu lệnh Là một trong
những tên khối GPSS hoặc một trong các Lệnh
Operands – Các toán hạng: Hầu hết từ khóa được theo sau bởi một hoặc nhiều
toán hạng Toán hạng phụ thuộc vào từ khóa Một số là bắt buộc có một số không bắt
buộc có toán hạng Trường Verbs sẽ qui định số lượng các tham số, các toán hạng thực
thi tương ứng Một số toán hạng của hàm hay lệnh có thể chứa đến 7 toán hạng sắp xếptheo một trình tự nhất định tùy thuộc vào kiểu và được kí hiệu bởi những chữ cái đầutiên trong bảng chữ cái Latin A, B, C, D, E, F, G
Comment – Phần chú thích: tùy chọn có hoặc không và được đặt sau dấu “;” hoặc
dấu “*” để chú giải nội dung cho từng dòng lệnh hoặc một nhóm dòng lệnh Tuy nhiên,chú thích luôn luôn được khuyến khích nhằm làm chương trình dễ hiểu và rõ ràng hơn
Ví dụ minh họa: Mô phỏng hệ thống khoảng không quảng cáo trong 200 ngày và
xác định xem có sự cố xảy ra không
Trang 37Hình 2 1 - Mô tả chương trình mô phỏng bằng GPSS
2.3.5 Các khối cơ bản trong GPSS
Tập hợp các câu lệnh khối (Block) được sử dụng trong GPSS World có thể chia thành 4 nhóm với hơn 50 câu lệnh:
- Khối lệnh liên quan đến các giao tác (Transactions)
- Khối các lệnh liên quan đến các thực thể thiết bị (Facility)
- Khối các lệnh liên quan đến dữ liệu tĩnh
- Khối các lệnh để điều khiển đường đi của các giao tác trong mô hình mô phỏng.Phần tiếp theo của luận văn sẽ trình bày chi tiết về một số khối cơ bản và các tham số trong mỗi lệnh:
2.3.5.1 Các khối làm việc với các giao tác
Trang 38Đối với các giao tác có các khối thực hiện việc tạo, hủy, lưu lại giao tác một thờigian, thay đổi các thuộc tính và tạo bản sao của một giao tác Bảng 3.1 sẽ giải thích cụthể về một số khối cơ bản làm việc với giao tác.
Bảng 2 1- Một số Block cơ bản làm việc với giao tác
Label GENERATE A: thời gian trung bình xuất hiện sinh ra các giao tác tương
B: xác định độ thay đổi củakhoảng thời gian trung bình xuấthiện một giao tác Độ thay đổinày có thể là thay đổi theokhoảng nếu nó tuân theo phân bốđều, hoặc thay đổi theo hàm khi
nó tuân theo các phân bố khác
C: xác định thời điểm xuất hiệngiao tác đầu tiên
D: xác định số các giao tác màkhối GENERATE sẽ tạo ra Mặcđịnh là ∞
E: thiết lập độ ưu tiên của cácgiao tác Mặc định là số 0TERMINATE A A: là lượng giảm của Hủy một giao tác
Termination Count (TerminationCount được thiết lập bởi lệnhSTART và mô phỏng sẽ dừngkhi Termination Count <=0)ADVANCE A,B A: số gia thời gian trung bình Để giữ các giao tác lại
B: tùy chọn thời gian khoảng gian nào đó, tức là môbiến thiên giao độ (không bắt phỏng khoảng thời gian
ASSIGN A,B,C A: số hiệu tham số của giao tác Khi một giao tác nhập vào
hoạt động (Active Transaction) một khối ASSIGN, giá trị
trong A được thiết lậpC: số hiệu hàm
theo B và C Sau A có thể
sử dụng dấu + hoặc –, khi