Lý do dùng 2 phương pháp thay vì chỉ dùng một phương phá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
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ênngà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ôngnghệthông tin
Chuyênngành: Kỹthuậtphầnmề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
HàNội - 2017
Trang 31
LỜ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 tham khả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 42
MỤC LỤC
LỜI CAM ĐOAN 1
MỤC LỤC 2
DANH MỤC HÌNH VẼ 4
DANH MỤC CÁC BẢNG 5
Chương 1: LÝ THUYẾT HÀNG ĐỢI 8
1.1 Các khái niệm cơ bản 8
1.1.1 Biến ngẫu nhiên 8
1.1.2 Phân phối sác xuất thường gặp 8
1.1.3 Khái niệm hàng đợi và lý thuyết hàng đợi 11
1.1.4 Kí hiệu Kendall 15
1.1.5 Định nghĩa các độ đo hiệu suất 16
1.1.6 Luật Little 17
1.2 Một số mô hình hàng đợi cơ bản 18
1.2.1 Hệ thống một kênh phục vụ M/M/1 19
1.2.2 Hệ thống đa kênh phục vụ M/M/c 20
1.2.3 Hệ thống hàng đợi có thời gian phục vụ chính xác (M/D/1) 22
1.2.4 Hệ thống hàng đợi giới hạn kích thước M/M/c/K 22
1.3 Các điều kiện để bài toán có thể giải được bằng lý thuyết 23
1.4 Phương pháp giải quyết bài toán bằng lý thuyết hàng đợi 24
Chương 2: CÔNG CỤ MÔ PHỎNG GPSS WORLD 25
2.1 Cách tiếp cận mô phỏng 25
2.2 Hiện trạng một số công cụ mô phỏng chuyên dụng 25
2.3 Giới thiệu về GPSS World 26
2.3.1 Đặc điểm nổi bật của ngôn ngữ GPSS World 26
2.3.2 Một số khái niệm trong GPSS World 27
2.3.3 Các thực thể trong GPSS 30
2.3.4 Cú pháp lệnh GPSS 33
2.3.5 Các khối cơ bản trong GPSS 35
2.3.6 Một số hàm thư viện 41
2.3.7 Cài đặt và sử dụng GPSS World Student Version 41
2.4 Hàng đợi có ưu tiên Priority Queueing 42
Trang 53
2.5 Các bước mô phỏng bài toán trên GPSS World 44
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Ị 48
3.1 Một số quan sát về hàng đợi siêu thị 48
3.2 Bài toán xếp hàng gồm 1 phase phục vụ 49
3.2.1 Phát biểu bài toán 49
3.2.2 Phân tích bài toán bằng lý thuyết hàng đợi 50
3.2.3 Mô phỏng bài toán bằng công cụ mô phỏng 52
3.3 Bài toán xếp hàng nhiều phase phục vụ 56
3.3.1 Phát biểu bài toán 56
3.3.2 Phân tích bài toán bằng lý thuyết hàng đợi 57
3.3.3 Mô phỏng bài toán bằng công cụ mô phỏng 61
KẾT LUẬN 70
Trang 64
DANH 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à 11
Hình 1 2- Thành phần cơ bản của hàng đợi 12
Hình 1 3 - Mô hình hàng đợi M/M/1 19
Hình 1 4- Mô hình hàng đợi M/M/1 19
Hình 1 5 - Sơ đồ chuyển trạng thái của hàng đợi M/M/1 19
Hình 1 6- Mô hình hàng đợi M/M/c 20
Hình 1 7 - Sơ đồ chuyển trạng thái hàng đợi M/M/c 21
Hình 1 8- Mô hình hàng đơi M/M/c/K 22
Hình 1 9 - Sơ đồ chuyển trạng thái mô hình hàng đợi M/M/c/K 23
Hình 2 1 - Mô tả chương trình mô phỏng bằng GPSS 35
Hình 2 2- Một segment điển hình 37
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 42
Hình 2 4- Cách lấy yêu cầu của hàng đợi Priority Queueing 43
Hình 2 7- Quy trình mô phỏng 46
Hình 3 1- Đồ thị sác xuất số khách hàng trong hệ thống 51
Hình 3 2- Mô hình thuật toán giải bài toán bãi đậu xe 52
Hình 3 3- Mã nguồn mô phỏng bài toán bãi đỗ xe 53
Hình 3 4- Báo cáo thu được khi chạy mô phỏng 54
Hình 3 5- Mô tả mô hình hoạt động của siêu thị 57
Hình 3 6- Mô hình thuật toán hoạt động của siêu thị 61
Trang 75
DANH MỤC CÁC BẢNG
Bảng 1 1- Một số hàm phân phối thường gặp 8
Bảng 1 2 - Một số tham số của hàng đợi 16
Bảng 1 3-Một số mô hình hàng đợi cơ bản 18
Bảng 2 1- Một số Block cơ bản làm việc với giao tác 36
Bảng 2 2- Một số khối làm việc với thực thể thiết bị 38
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 40
Bảng 3 1- Kết quả mô phỏng với thời gian 8h 54
Bảng 3 2 Kết quả mô phỏng với thời gian khác nhau 55
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ụ 55
Bảng 3 4- Kết quả tính toán hàng đợi gửi xe ô tô 58
Bảng 3 5-Bảng kết quả tính toán hàng đợi bãi gửi xe máy 58
Bảng 3 6- Kết quả tính toán hàng đợi giỏ hàng trong 8h 59
Bảng 3 7- Kết quả tính toán hàng đợi xe đẩy trong 8h 60
Bảng 3 8 – Kết quả mô phỏng hoạt động của siêu thị 66
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) 68
Bảng 3 10 Bảng so sánh thời gian thanh toán trung bình 68
Trang 86
LỜ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ại nhữ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àng bá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ác yê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ệ
đã được xâ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ân tí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ải tí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ương phá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 gian dị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ân tí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ủa hà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)
Trang 97
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ôn ngữ lập trình; Mô phỏng bằng các công cụ chuyên nghiệp như (Petri Nets, MatLab, GPSS, NS2,…) Công cụ mô phỏng cần sinh ngẫu nhiên sự kiện và quản lý vòng đời củ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ện rời rạc của IBM phát triển vào khoảng thập niên 1960 - General Purpose Simulation System (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ận vă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 ứng dụ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ên việ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ành phầ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ên quan đế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 quy trì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 so sá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ừ đó định hướng phát triển trong thời gian tới
Trang 108
CHƯƠ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ến ngẫ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 đặc trư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ển trạ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ác suấ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
mũ
Phân phối Erlang
Phân phối siêu bội
f
1
q)
Trong đó: μj >0, qj>0, j∈{1 k},
Trang 111.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 [6 tr.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, độc lậ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ủa quá 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ói khá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 qua lại lẫn nhau
Trang 1210
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ất nếu thời điểm xuất hiện các yêu cầu không trùng nhau
Tí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ào giá 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ằng nhau 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
Trang 1311
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
1.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ục
vụ
Đầu những năm 1900, A K Erlang, kỹ sư điện thoại Đan Mạch bắt đầu nghiên cứ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ết hà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 đợi gồ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 14· Phân bố thời gian phục vụ
Hì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 được thoả 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ác yê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 đa
Trang 1513
hà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ụ đượ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ác dị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ọc lớ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ệnh nhâ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ột cá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 gian nhấ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ời gian đế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ác suấ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
Trang 1614
tốc độ đến (arrivals rate) của khách hàng
Ví dụ: với Khách hàng đến/1 giờ thì xác suất không có khách hàng (k=0) đến tạ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%, 3 khá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 đến khi đượ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ặc thiế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ổi bậ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ủa bệ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 trong mộ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êu cầ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 quan trọ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ớn hiệ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ách hà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ững
Trang 1715
thủ 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ý
Phâ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ọi khá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
1.1.4 Kí hiệu Kendall
Kendall [3 tr.14] sử dụng ký tự để mô tả một cách ngắn gọn cấu trúc hệ thống hàng đợi, bao gồm 3 phần cơ bản: A/B/c, với:
- A: là hàm phân phối thời gian của các lần đến liên tiếp Tùy thuộc vào đặc điểm
của hàng đợi mà luật phân phối được thể hiện trong ký hiệu sẽ có 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ố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ật
phâ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ối Erlangian), 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
Trang 18λ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ống phụ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ác tham 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
Trang 1917
5
Ws
Thời gian tạm trú của khách hàng trong hệ thống (thời gian
đợi + thời gian phục vụ) của khách hàng thứ n
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)
Luật Little [12 tr.82] phát biểu như sau: “Trong điều kiện trạng thái dừng, số
lượng trung bình khách hàng trong một hệ thống hàng đợi bằng với tốc độ trung bình khách hàng đến nhân với thời gian trung bình mà một khách hàng sử dụng trong hệ thống”
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àng trung 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)
Trang 2018
Để 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ó
Với là số khách hàng ở trong quầy phục vụ (áp dụng tương tự với hàm thời gian 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.2 liệ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ính hiệ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
Tên hàng đợi Số kênh
phục vụ
Số bước phục
vụ
Phân phối tín hiệu đến
Phân phối thời gian phục vụ
Kích thước của dòng đến
Nguyên tắc phục
Không giới hạn
Trang 21Là 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
- 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:
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:
Input
FCFS
Output
W thời gian đợi
Hàng đợi (queue)
Server
K-1 vị trí
Hình 1 3 - Mô hình hàng đợi M/M/1 Hình 1 4- Mô hình hàng đợi M/M/1
Trang 2220
= 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 được phụ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ụ)
= 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)
1.2.2 Hệ thống đa kênh phục vụ M/M/c
Hàng đợi M/M/c được mô tả như sau: Mô hình hàng đợi với 2 hoặc nhiều quầy phục
vụ, khách hàng đến một hàng đợi và tiến đến quầy phục vụ đầu tiên trống Đây là mô hình áp dụng nhiều tại các ngân hàng hoặc các hệ thống tổng đài hỗ trợ
a) Đặc điểm:
Input
W thời gian đợi
Hàng đợi (queue)
Trang 2321
- 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:
Hì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
Trang 2422
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, như 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
Input
W thời gian đợi
Hàng đợi (queue)
Trang 2523
a) Đặc điểm
- Hàng gồm c kênh phục vụ
- Nguyên tắc phục vụ FCFS
- 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
Hiệ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ụ
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
Trang 2624
Đ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
Đ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 được phụ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ải tí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ương phá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ống hà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ệu Kedall 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ân phố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ác phâ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ập cá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ương phá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 27Á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ức tạ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ống theo sự kiện và thời gian theo đúng quy luật quan sát được ngoài thực tế Khi đó tính chấ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ỗi phầ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ách tiế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ụng cá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ụng cá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ều ngườ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ài nhữ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 tin cậ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ụng cô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ác cô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ổi bật là MatLab, Petri Network, NS2 Nhìn chung các công cụ được nêu đều có chung mụ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ệ áp dụ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 phong trong mô phỏng hệ thống phục vụ đám đông là GPSS World Các ứng dụng chính của cô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 2826
- 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, được nhậ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ác thà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ển và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 ra cá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ương mạ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áy tí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ủa GPSS/PC Hiện nay, GPSS World chạy trên môi trường Windows và được mở rộng thê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à đáng tin 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ực quan 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 đó, GPSS World 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ụng cho 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 đổi củ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ại bấ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: Model Objects, Simulation Objects, Report Objects, Text Objects
Trang 2927
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ây dự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 quả 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-screen text hoặc chèn các Block command GPSS bằng cách sử dụng các hộp thoại được cung cấ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ỏng bằ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ụng cô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);
Trang 3028
- Report Objects (đối tượng báo cáo);
- Text Objects (đối tượng văn bản)
Khả 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ụng bở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ện trong 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 đánh dấ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ệnh trong 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ăn bả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ượng vă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 INCLUDE trong Mô hình đối tượng Làm như vậy sẽ làm cho tất cả các câu lệnh
Trang 3129
trong đối tượng văn bản được chèn vào trong lệnh INCLUDE khi đối tượng Mô phỏng được tạ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 kế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ác tươ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ấn Search / 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ối cử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 trong Command
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ải mộ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ức tạ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ới một phím tắt duy nhất
Trang 3230
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ác thuộc tính và các thao tác trên các thực thể đó
GPSS 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 di chuyể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ất lớ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ác hà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ính toá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ộc
tí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ực thể ở 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
Trang 332.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ượng riê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]
Mộ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ấp hoặc trả lại bởi Transaction Thực thể lưu trữ có thể sử dụng như "token pools" để điều khiể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ỗi Delay (Delay Chain) của thực thể lưu trữ hay phải chờ cho đến khi các giao tác khác giả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ên dươ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ờ
ít hơ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 Events
Trang 3432
Chain) 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 giao tá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ết bị
- 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
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ác khố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ảo việ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ể
Trang 3533
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ởi cá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ước củ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ết lập
mô hình
- 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ó
Trang 3634
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ãn phả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ãn bằ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ạn muố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ác loạ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ột STORAGE 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
Verbs – 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ếp theo 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 đầu tiê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 3735
Hì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:
Trang 3836
2.3.5.1 Các khối làm việc với các giao tác
Đố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ời gian, 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
nó tuân theo các phân bố khác
C: xác định thời điểm xuất hiện giao 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ác giao tác Mặc định là số 0
sinh ra các giao tác tương lai đi vào mô phỏng
TERMINATE A A: là lượng giảm của
Termination Count (Termination Count được thiết lập bởi lệnh START và mô phỏng sẽ dừng khi Termination Count <=0)
Hủy một giao tác
ADVANCE A,B A: số gia thời gian trung bình
(bắt buộc) B: tùy chọn thời gian khoảng biến thiên giao độ (không bắt buộc)
Để giữ các giao tác lại trong một khoảng thời gian nào đó, tức là mô phỏng khoảng thời gian phục vụ các yêu cầu ASSIGN A,B,C A: số hiệu tham số của giao tác
hoạt động (Active Transaction)
Khi một giao tác nhập vào một khối ASSIGN, giá trị của tham số định nghĩa