i
ĐẠI HỌC THÁI NGUYÊN
ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG
NGHIÊN CỨU BÀI TOÁN HÀNG ĐỢI CÓ ƯU TIÊN VÀ MÔ PHỎNG
ỨNG DỤNG
CHU MẠNH TOÀN
ii
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 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
CHU MẠNH TOÀN
iii
MỤC LỤC
LỜI CAM ĐOAN ........................................................................................................... ii
MỤC LỤC ..................................................................................................................... iii
DANH MỤC CÁC HÌNH VẼ, BIỂU BẢNG .................................................................v
LỜI MỞ ĐẦU .................................................................................................................1
Chương 3 KẾT QUẢ ỨNG DỤNG CÔNG CỤ MÔ PHỎNG VÀ NHẬN XÉT .........46
3.1. GPSS World Student Version .............................................................................46
3.2. Bài toán 1: Xếp hàng không ưu tiên ..................................................................48
3.2.1. Trình bày mô tả bài toán ...............................................................................48
3.2.2. Phân tích bài toán.......................................................................................... 48
3.2.3. Gải bài toán với lý thuyết hàng đợi .............................................................. 49
3.2.4. Mô phỏng bài toán bằng GPSS World .........................................................50
3.3. Bài toán 2: Xếp hàng có ưu tiên .........................................................................54
3.3.1. Trình bày mô tả bài toán ...............................................................................54
3.3.2. Phân tích bài toán.......................................................................................... 54
3.3.3. Gải bài toán với lý thuyết hàng đợi .............................................................. 55
3.3.4. Mô phỏng bài toán bằng GPSS World .........................................................56
KẾT LUẬN ...................................................................................................................61
TÀI LIỆU THAM KHẢO ............................................................................................. 62
v
DANH MỤC CÁC HÌNH VẼ, BIỂU BẢNG
Hình 1.1 Hệ thống hàng đợi ............................................................................................ 4
Hình1.2 Các dạng hệ thống hàng đợi ..............................................................................5
Hình 1.3 Phân tích mô hình hàng đợi ..............................................................................9
Hình 1.4 Minh họa thời gian 1 khách hàng lưu lại trong hệ thống ............................... 11
Hình 1.5 Biểu đồ thời gian hàng đợi .............................................................................17
Hình 1.6 Lược đồ chuyển tiếp trạng thái sinh tử ........................................................... 17
Hình 1.7 Mô hình hàng đợi M/M/1 ...............................................................................18
Hình 1.8 Chuỗi Markov của hàng đợi M/M/1 ............................................................... 18
Hình 1.9 Mô hình hàng đợi M/M/n ...............................................................................19
Hình 1.10 Chuỗi Markov của hàng đợi M/M/n ............................................................. 19
Hình 1.11 Mô hình hàng đợi M/M/n/n ..........................................................................21
trường chứng khoán ...
Đối với lý thuyết xếp hàng ta quan tâm đến các số đo hiệu năng, đó là các giá
trị trung bình khi quá trình đạt trạng thái dừng bao gồm: độ dài hàng đợi trung bình
của hàng, độ dài hàng đợi trung bình của hệ thống, thời gian đợi trung bình của hàng
(trễ của hàng) và thời gian đợi trung bình của hệ thống (trễ của hệ thống). Để tính các
đại lượng này ta có thể sử dụng phương pháp giải phương trình tích phân dạng
Wiener-Hopf hoặc phương pháp khảo sát chuỗi Markov nhúng[3]. Từ đó suy ra các
công thức tính các phân bố ổn định cho các loại hàng M/M/k, M/M/k/N; Công thức
tổng quát tính các giá trị trung bình này cho các hàng G/G/1 và công thức cụ thể cho
các hàng đặc biệt M/M/1, M/D/1 và M/Ek/1… Bên cạnh đó với những hệ thống hàng
đợi có ưu tiên (Priority Queueing), các cơ sở lý thuyết tính toán thường gặp nhiều khó
khăn, đặc biệt với những mức ưu tiên khác nhau của từng đối tượng tham gia trong hệ
thống, vì vậy việc áp dụng các công cụ mô phỏng để tiến hành mô phỏng và đánh giá
hoạt động của hệ thống, đưa ra các đặc điểm, thông số của hệ thống là một cách tiếp
cận đã được nhiều nghiên cứu đặt ra.
2
Luận văn này xác định mục tiêu tìm hiểu, nghiên cứu về các hàng đợi có ưu tiên
(Priority Queueing), các lĩnh vực ứng dụng và nghiên cứu cách tiếp cận mô phỏng
bằng các công cụ mô phỏng chuyên dụng, từ đó áp dụng để mô phỏng bài toán cụ thể.
Để giải bài toán trên, chúng ta có thể: tìm kiếm và giải quyết bằng các mô hình toán
học, hoặc tìm ra các giải thuật và sử dụng các ngôn ngữ lập trình (C++, Pascal,
Java,…) xây dựng chương trình để đưa ra các kết quả cần tìm. Nhưng việc sử dụng các
công thức toán học mà lý thuyết hàng đợi cung cấp để tính toán, cũng như mô phỏng
hệ thống bằng cách sử dụng các ngôn ngữ lập trình truyền thống là khá phức tạp, khó
khăn, vì khi lập trình chúng ta phải quản lý các sự kiện theo một mô hình nhiều sự
kiện xảy ra đồng thời và cần xây dựng các hàm ngẫu nhiên sinh các sự kiện. Do vậy,
đã xuất hiện ngôn ngữ mô phỏng chuyên dụng đó là ngôn ngữ lập trình GPSS
Các khách hàng yêu cầu và
tìm kiếm dịch vụ
Quá trình đến
Quá trình đến trung gian tn
Độ dài
hàng
đợi
của hệ
thống
Độ
dài
hàng
đợi
Hàng đợi
-Dung lượng:
Hữu hạn hoặc vô hạn
- Quy tắc phục vụ:
FIFO hoặc LIFO
Phương tiện
phục vụ
Các khách hàng đã được phục vụ
Đầu ra
lượt được phục vụ. Để đơn giản ta giả thiết chỉ có một hàng. Tuy nhiên trong nhiều
trường hợp có thể mở rộng cho nhiều hàng cùng hoạt động song song. Nếu độ dài
hàng có đặt ngưỡng thì các đơn vị đến hàng khi hàng đầy vượt ngưỡng sẽ bị loại. Các
khách hàng được chọn để phục vụ theo nguyên tắc "đến trước phục vụ trước" (FIFO),
nghĩa là phục vụ cho khách nào đứng đầu hàng.
4) Cơ cấu phục vụ: Một phương tiện phục vụ bao gồm một hay nhiều Server.
Các Server có thể kết nối thành chuỗi vì thế mỗi yêu cầu phục vụ được phục vụ theo
nhiều cách hoặc lần lượt hoặc song song.
1.1.2. Các yếu tố cơ bản của hệ thống hàng đợi [6]
Hệ thống hàng đợi tổng quát được minh hoạ như hình sau:
Input
Dòng tín hiệu đến
Hàng
chờ
Output
KÊNH PHỤC VỤ
Hình 1.1 Hệ thống hàng đợi
Dòng tín hiệu ra
5
Các yếu tố cơ bản của hệ thống hàng đợi bao gồm:
Bố trí vật lí của hệ thống
Hệ thống hàng đợi có một số dạng bố trí vật lí (phisical layout) như minh họa
dưới đây:
Một số nguyên tắc phục vụ thường được áp dụng trong các hệ thống hàng đợi là FIFO
(First in first out), LIFO (Last in first out), FCFS (First come first serve), có ưu tiên,
không ưu tiên,...
Các phân phối xác suất của các dòng tín hiệu, dòng phục vụ
Số tín hiệu đến trong một khoảng thời gian cũng như thời gian phục vụ
từng tín hiệu nói chung là những biến ngẫu nhiên, và do đó, chúng tuân theo các quy
luật phân phối xác suất. Các quy luật phân phối xác suất này được thiết lập căn cứ các
số liệu thực nghiệm thu thập từ các quan sát, thí nghiệm, hay từ cơ sở dữ liệu sẵn có.
Đối với dòng tín hiệu đầu vào, thông thường chúng ta giả sử rằng số tín hiệu
đến trong vòng một khoảng thời gian nào đó được ấn định trước (1 phút, 3 phút, 5
phút, 30 phút,...) tuân theo luật phân phối Poisson P(). Ở đây, tham số đặc trưng
cho số tín hiệu đến (trung bình) trong khoảng thời gian trên. Ví dụ, số khách
vào siêu thị (trung bình) là 100 người trong 1 giờ. Có nghĩa là, số khách vào siêu thị
là biến ngẫu nhiên X có phân phối Poisson với = 100. Hoặc, với số cuộc gọi (trung
bình) đến tổng đài trong vòng 1 phút là 3 (tín hiệu) thì có X ~ P(3).
Một cách chính xác hơn, trong những trường hợp trên, ta có dòng tín hiệu đến là dòng
Poisson dừng (còn gọi là dòng tối giản) với các tính chất trên sau:
Tính không hậu quả: Một dòng tín hiệu có tính không hậu quả nếu xác suất xuất
hiện một số tín hiệ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 tín hiệu đã xuất hiện và xuất hiện như thế nào trước khoảng thời
gian đó.
Tính đơn nhất: Dòng tín hiệu có tính đơn nhất nếu xét trong khoảng thời gian
khá bé thì sự kiện “có nhiều hơn một tín hiệu xuất hiện” hầu như không xảy ra. Về mặt
thời gian ta có thể xem dòng tín hiệu có tính đơn nhất nếu thời điểm xuất hiện các tín
hiệu không trùng nhau.
7
Tính dừng: Dòng tín hiệu có tính dừng nếu xác suất xuất hiện một số tín hiệu
8
Bước 1: Xác định bài toán hay hệ thống hàng đợi cần mô phỏng và mô
hình mô phỏng.
Bước 2: Đo và thu thập số liệu cần thiết cần thiết để khảo sát thống kê các
số đặc trưng / các yếu tố cơ bản của mô hình.
Bước 3: Chạy mô phỏng kiểm chứng (test simulation) mô hình và so sánh
kết quả kiểm chứng với các kết quả đã biết được trong thực tế. Phân tích kết quả
chạy mô phỏng kiểm chứng, nếu cần thì phải sửa lại phương án đã được đánh giá qua
chạy mô phỏng.
Bước 4: Chạy mô phỏng để kiểm chứng phương án cuối cùng và kiểm tra tính
đúng đắn của mọi kết luận về hệ thống thực tế được rút ra sau khi chạy mô phỏng.
Triển khai hoạt động của hệ thống hàng đợi dựa trên phương án tìm được.
Từ những phân tích trên đây có thể thấy Lí thuyết xếp hàng còn gọi là Lí
thuyết hệ phục vụ công cộng hay Lí thuyết hệ dịch vụ đám đông là lĩnh vực rất quan
trọng của Toán ứng dụng / Vận trù học. Nhiều bài toán thực tế trong các lĩnh vực
hệ thống dịch vụ, kĩ thuật, … đã được giải quyết thành công nhờ áp dụng phương
pháp mô phỏng mô hình hàng đợi.
Kết quả phân tích (về phía khách hàng)
• Thời gian xếp hàng (trễ hàng đợi)
• Tổng trễ (bao gồm trễ hàng đợi và trễ phục vụ)
• Số lượng khách hàng trong hàng đợi
• Số lượng khách hàng trong hệ thống (gồm khách hàng chờ và khách hàng đang được
phục vụ)
• Xác suất nghẽn mạng (khi kích thước bộ đệm hữu hạn)
• Xác suất chờ để phục vụ
Kết quả phân tích (về phía người phục vụ)
• Khả năng sử dụng server
• Khả năng sử dụng bộ đệm
• Lợi ích thu được (thông số dịch vụ và các xem xét về kinh tế)
.
- Sự kiện A: có 1 sự kiện đi trong t
- Sự kiện B: không có sự kiện đi nào trong t
- Sự kiện C: có nhiều hơn 1 sự kiện đi trong t
Giả sử rằng t →0 Như vậy ta sẽ có:
• D là sự kiện của 1 hoặc nhiều sự đến AND với sự kiện của 1 hoặc nhiều sự đi trong
khoảng t. Giả sử Pr{D}=0
• Định nghĩa PN (t ) là xác xuất mà hệ thống có N khách hàng tại thời điểm t
Từ đó ta có
• Ở điều kiện ổn định, khi t→∞, ta có:
11
Tức là xác xuất hệ thống rơi vào một trạng thái nào đó không phụ thuộc thời gian
nữa...
• Xét trong một khoảng thời gian đủ lớn, số lượng khách hàng lưu trong hệ thống được
tính theo công thức:
• Số lượng khách hàng lưu trong hàng đợi được tính bằng:
•Thời gian một khách hàng lưu lại trong hệ thống bao gồm:
-Thời gian chờ xếp hàng
-Thời gian phục vụ
Hàng đợi
Sự kiện
Dạng phân bố thời gian phục vụ
C
Số Server
K
Số lượng vị trí trong hàng đợi
N
Số lượng khách hàng
D
Nguyên tắc phục vụ: FIFO, LCFS, SIRO, PNPN..
13
A và B có thể mang bất kỳ kiểu phân bố sau đây:
Ký hiệu
Dạng phân bố
M
Phân bố theo cấp số nhân (Markovian)
thống)
1) Tỉ lệ tới trung bình (λ)
Tỉ lệ tới trung bình chỉ ra "số kì vọng các khách hàng tới theo đơn vị thời gian ", được
biểu diễn bởi "λ"(lambda).
Thời gian tới trung bình có thể thu được bằng việc dùng biểu thức sau.
14
Thời gian tới trung bình = 1 / Tỉ lệ tới trung bình = 1 / λ
Chẳng hạn, nếu có 4 lần tới được trông đợi trong một phút,
Tỉ lệ tới trung bình (λ) = 4 lần khách hàng tới trong một phút
Thời gian tới trung bình = 1/4 phút cho mỗi lần khách hàng tới = 15 giây cho
mỗi lần khách hàng tới
Tức là, về trung bình khách hàng tới cứ sau mỗi 15 giây
2) Tỉ lệ phục vụ trung bình (μ)
Tỉ lệ phục vụ trung bình nghĩa là "số lượng trông đợi các khách hàng được hoàn thành
phục vụ theo đơn vị thời gian ", được biểu diễn bởi "μ".
Thời gian phục vụ trung bình có thể thu được bằng việc dùng biểu thức sau.
Thời gian phục vụ trung bình = 1 / Tỉ lệ phục vụ trung bình = 1 /μ
Chẳng hạn, nếu dịch vụ cho 5 khách hàng có thể được hoàn tất trong mỗi phút,
Tỉ lệ phục vụ trung bình (λ) = 5 khách hàng một phút
Thời gian phục vụ trung bình = 1/5 phút cho mỗi khách hàng = 12 giây cho mỗi khách
hàng
Tức là,về trung bình phải mất 12 giây để phục vụ một khách hàng.
Nếu μ>λ hay 1/μ < 1/λ là đúng trong hệ thống xếp hàng, thì hệ thống này được gọi là
trong "điều kiện trạng thái vững vàng ".
3) Cường độ lưu thông (ρ)
Cường độ lưu thông biểu diễn cho "phân số trông đợi về thời gian các nguồn phục vụ
riêng lẻ bận rộn",được kí hiệu bởi "ρ"(rho). Điều này có thể thu được bằng việc dùng
Thời gian cần dùng trung bình cho khách hàng trong hệ thống (W)
= số khách hàng trung bình trong hệ thống×(1/tỉ lệ tới trung bình) = L×1/λ
= số khách hàng trung bình trong hệ thống × thời gian khoảng tới trung bình
Thời gian cần dùng trung bình cho khách hàng trong hệ thống (W)
= thời gian trung bình cho khách hàng trong hàng đợi + thời gian phục vụ trung
bình = Wq+ 1/μ
6) Độ dài hàng đợi trung bình của hệ thống (Số khách hàng trung bình trong
hàng đợi) (Lq)
Số khách hàng trung bình trong hàng đợi là "chiều dài hàng đợi dự kiến (loại ra các
khách hàng đang được phục vụ)", được kí hiệu bởi Lq.
16
Điều này được tính bằng phương trình sau, dùng số khách hàng trung bình trong hệ
thống (L) và cường độ lưuthông (ρ).
Số trung bình các khách hàng trong hàng đợi (Lq)
= số trung bình các khách hàng trong hệ thống (L) × cường độ lưu thông (ρ)
= (cường độ lưu thông) 2 / (1 - cường độ lưu thông) =ρ 2 / (1-ρ)
7) Thời gian đợi trung bình của hàng (Thời gian trung bình của khách hàng
trong hàng đợi) (Wq)
Thời gian trung bình của khách hàng trong hàng đợi là "thời gian đợi dự kiến
trong hàng đợi (trừ thời gian phục vụ)", được kí hiệu bởi Wq.
Điều này có thể được tính từ số trung bình các khách hàng trong hàng đợi (Lq)
và tỉ lệ tới trung bình (λ) (haythời gian khoảng tới trung bình (1/λ)), bằng việc dùng
phương trình sau.
Thời gian trung bình của khách hàng trong hàng đợi (Wq)
= số trung bình các khách hàng trong hàng đợi × (1/tỉ lệ tới trung bình) = Lq ×1/λ
= số trung bình các khách hàng trong hàng đợi × thời gian khoảng tới trung bình
1.1.6. Kết quả nhỏ (Little's result) [8]
i
t
Tương đương với:
Ti
t
1
t
i 1
N (t )
dpcm
t0
t t
1.1.7. Quá trình sinh tử (Birth-Death)
Trạng thái của hệ thống được biểu diễn bằng số các công việc trong một hệ
thống, khi có một công việc mới đến thì trạng thái của hệ thống sẽ thay đổi sang n+1,
khi có một công việc ra đi thì trạng thái hệ thống sẽ thay đổi sang n-1, ta có lược đồ
chuyển tiếp trạng thái là quá trình sinh tử
Hình 1.6 Lược đồ chuyển tiếp trạng thái sinh tử
Trong đó i , là tốc độ sự kiện đến và đi xét tại trạng thái i
;với
là xác suất ổn định trạng thái n
λ
i
i-1
µ
λ
µ
i+1
µ
Hình 1.8 Chuỗi Markov của hàng đợi M/M/1
Các công thức sau đây đã được chứng minh bằng phương pháp giải tích.
Số lượng trung bình khách hàng trong hệ thống:
E[N ]
1
với
Số lượng trung bình khách hàng đợi, có nghĩa là chiều dài hàng đợi trung bình:
U s 1 P0
1.2.2. Hàng đợi Markov M/M/n
Là hàng đợi có quá trình đến Poisson với tốc độ , thời gian phục vụ có phân phối
mũ tốc độ phục vụ với n server và trạng thái hệ thống (kích thước bộ đệm) không
giới hạn.
Hình 1.9 Mô hình hàng đợi M/M/n
Lược đồ chuyển trạng thái và hệ phương trình trạng thái cân bằng:
Hình 1.10 Chuỗi Markov của hàng đợi M/M/n
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
thời. Tốc độ đến và tốc độ phục vụ của chùm trong trạng thái i được xác định là
và
i Khi một khách hàng đến tại trạng thái i sẽ được chuyển sang trạng thái i+1; ngược
lại, khi một khách hàng hoàn thành phục vụ của nó và rời khỏi hệ thống, trạng thái i sẽ
được chuyển về trạng thái i-1.
20
Đặt P = (P0,P1,...,Pn) là xác suất trạng thái cân bằng của hệ thống, với Pi là xác suất
trạng thái ổn định (steady-state) của trạng thái i (0 i n) . Theo lược đồ trạng thái như
hình 2-6, ta có hệ phương trình trạng thái cân bằng sau:
2P P P
2
0
1
3P3 P1 2 P2
nPn1 Pn1 ( n ) Pn
Với ràng buộc:
P 1
i
i 0
i
1
Nếu i < n, Pi P0 .
i!
i
1
Nếu i n, Pi P0
i n
n
C (n, )