Nghiên cứu bài toán hàng đợi có ưu tiên và mô phỏng ứng dụng (LV thạc sĩ)Nghiên cứu bài toán hàng đợi có ưu tiên và mô phỏng ứng dụng (LV thạc sĩ)Nghiên cứu bài toán hàng đợi có ưu tiên và mô phỏng ứng dụng (LV thạc sĩ)Nghiên cứu bài toán hàng đợi có ưu tiên và mô phỏng ứng dụng (LV thạc sĩ)Nghiên cứu bài toán hàng đợi có ưu tiên và mô phỏng ứng dụng (LV thạc sĩ)Nghiên cứu bài toán hàng đợi có ưu tiên và mô phỏng ứng dụng (LV thạc sĩ)Nghiên cứu bài toán hàng đợi có ưu tiên và mô phỏng ứng dụng (LV thạc sĩ)Nghiên cứu bài toán hàng đợi có ưu tiên và mô phỏng ứng dụng (LV thạc sĩ)Nghiên cứu bài toán hàng đợi có ưu tiên và mô phỏng ứng dụng (LV thạc sĩ)Nghiên cứu bài toán hàng đợi có ưu tiên và mô phỏng ứng dụng (LV thạc sĩ)Nghiên cứu bài toán hàng đợi có ưu tiên và mô phỏng ứng dụng (LV thạc sĩ)Nghiên cứu bài toán hàng đợi có ưu tiên và mô phỏng ứng dụng (LV thạc sĩ)
Trang 1ĐẠ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
Trang 2Tô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
Trang 3LỜ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 1 LÝ THUYẾT HÀNG ĐỢI 3
1.1 Các khái niệm cơ bản 3
1.1.1 Khái niệm xếp hàng 3
1.1.2 Các yếu tố cơ bản của hệ thống hàng đợi [6] 4
1.1.3 Phân tích hàng đợi 7
1.1.4 Phân loại Kendall 12
1.1.5 Các số đo hiệu năng 13
1.1.6 Kết quả nhỏ (Little's result) [8] 16
1.1.7 Quá trình sinh tử (Birth-Death) 17
1.2 Một số hàng đợi cơ bản 18
1.2.1 Hàng đợi Markov M/M/1 18
1.2.2 Hàng đợi Markov M/M/n 19
1.2.3 Hàng đợi có Markov M/M/n/n 21
Chương 2 HÀNG ĐỢI CÓ ƯU TIÊN VÀ CÔNG CỤ XÂY DỰNG MÔ PHỎNG 25
2.1 Hàng đợi có ưu tiên Priority Queueing [1] 25
2.2 Các thuật toán lập lịch cho hàng đợi 28
2.2.1 First Come First Served (FCFS) 28
2.2.2 Round robin(RR) 28
2.2.3 Shortest Remain Time(SRT) 29
2.3 Công cụ GPSS mô phỏng cho hàng đợi có ưu tiên 29
2.3.1 Các hướng tiếp cận mô phỏng 29
2.3.2 Những điểm nổi bật của ngôn ngữ GPSS World [4] 30
2.3.3 Một số khái niệm trong GPSS World [9][10] 32
2.3.4 Các thực thể trong GPSS 33
Trang 42.3.6 Các khối cơ bản trong GPSS 37
2.4 Cách hiện thực hóa hàng đợi có ưu tiên đối với GPSS World [2] 44
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
Trang 5Hì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
Hình 1.12 Chuỗi Markov của hàng đợi M/M/n/n 22
Hình 2.1 Cách lấy gói tin của hàng đợi Priority Queueing 25
Hình 2.2 Tiến trình gởi gói tin của Priority Queueing 26
Hình 2.3 Tóm tắc tính năng Priority Queueing 27
Hình 2.4 Mối quan hệ giữa các đối tượng 30
Hình 2.5 Minh họa một segment 39
Hình 3.1 Mô hình một chương trình mô phỏng hệ thống hàng đợi đơn giản 47
Hình 3.2 Ví dụ một cửa sổ Block Window 47
Hình 3.3 Ví dụ về một cửa sổ REPORT 48
Hình 3.4 Mô hình phân tích bài toán 1 48
Hình 3.5 Sơ đồ thuật toán bài toán 1 49
Hình 3.6 Mô hình phân tích bài toán 2 54
Hình 3.7 Sơ đồ thuật toán bài toán 2 55
Trang 6LỜI MỞ ĐẦU
Lý thuyết xếp hàng đã được nghiên cứu và ứng dụng rộng rãi trên thế giới trong nhiều lĩnh vực nghành nghề khác nhau như bưu chính viễn thông, hàng không, đường sắt, kiểm soát lưu lượng giao thông, đánh giá hiệu năng hệ thống máy tính, y tế và chăm sóc sức khỏe, không lưu, bán vé… Trong nhiều hệ thống phục vụ, các khách hàng (costumer) phải dùng chung tài nguyên, phải chờ để được phục vụ và đôi khi bị
từ chối phục vụ Lý thuyết quá trình xếp hàng (queueing process) xác định và tìm các phương án tối ưu để hệ thống phục vụ tốt nhất Trong nửa đầu của thế kỷ XX lý thuyết xếp hàng đã được ứng dụng để nghiên cứu thời gian đợi trong các hệ thống điện thoại Ngày nay lý thuyết xếp hàng còn có nhiều ứng dụng trong các lĩnh vực khác nhau như trong mạng máy tính, trong việc quản lý xí nghiệp, quản lý giao thông và trong các hệ phục vụ khác Ngoài ra lý thuyết xếp hàng cũng còn là cơ sở toán học để nghiên cứu
và ứng dụng trong nhiều bài toán kinh tế như đầu tư, kiểm kê, rủi ro của bảo hiểm, thị 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
Trang 7Luậ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 (General Purpose Simulation System), một ngôn ngữ mô phỏng các hệ thống phức
tạp rời rạc 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…
Luận văn bao gồm 3 chương với nội dung tóm tắt như sau:
Chương 1 – Lý thuyết hàng đợi
Đưa ra cơ sở lý thuyết hệ thống phục vụ đám đông, tức hệ thống hàng đợi, bao gồm: các yếu tố của hệ thống phục vụ (dòng vào, dòng ra, hàng chờ, kênh phục vụ), trạng thái của hệ thống, các quy luật liên quan đến trạng thái hệ thống…
Chương 2 – Hàng đợi có ưu tiên và công cụ xây dựng mô phỏng
Đưa ra lý thuyết hàng đợi có ưu tiên áp dụng cho bài toán Tìm hiểu về ngôn ngữ General Purpose Simulation System – GPSS Nêu lên các hướng tiếp cận mô phỏng: lập trình và các công cụ mô phỏng có sẵn trong GPSS
Chương 3 – Kết quả ứng dụng công cụ mô phỏng và nhận xét
Ứng dụng công cụ mô phỏng GPSS vào bài toán thực tế: mô phỏng hệ thống hàng đợi có ưu tiên phục vụ xếp hàng, giảm tải xếp hàng trong bệnh viện Từ bài toán
cụ thể đó, phân tích, tính toán, tiến hành mô phỏng và đánh giá kết quả thu được
Trang 8Nguồn vào
Phương tiện phục vụ
Đầu ra
Độ dài hàng đợi
Quá trình đến Quá trình đến trung gian t n
Trang 9Đặt t n là khoảng thời gian giữa 2 lần đến của khách hàng thứ n và thứ n+1 Ta giả định rằng tất cả các t n (n ≥ 1) là độc lập và có cùng phân bố Vì vậy việc đến của
các khách hàng tạo thành 1 hàng kế tiếp nhau với tốc độ đến là
1
1 ( )
E t
Ta gọi quá
trình {t n , n=1,2,…} là quá trình đến Khách hàng đến hệ thống yêu cầu các server của
hệ thống phục vụ Ta giả sử rằng khách hàng thứ n cần một thời gian phục vụ là s (n n
≥ 1), tất cả các s độc lập và có cùng phân bố Quá trình n t n n; 1, 2, được gọi là quá trình phục vụ Ta cũng giả thiết rằng các thời gian đến trung gian độc lập với thời gian phục vụ
Quá trình xếp hàng được phân loại dựa vào các tiêu chí sau:
1) Phân bố của quá trình đến (input process) là l tq t 0
2) Phân bố của thời gian phục vụ (service distribution) s nn; 1, 2,
3) Nguyên tắc phục vụ: Các khách hàng đến được sắp xếp vào hàng đợi đến 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:
Hình 1.1 Hệ thống hàng đợi
KÊNH PHỤC VỤ Input
Dòng tín hiệu đến
Output Dòng tín hiệu ra
Hàng chờ
Trang 10Cá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:
Single Channel – Single Server (Một kênh phục vụ, một loại dịch vụ)
Single Channel – Multi Server (Một kênh phục vụ, nhiều loại dịch vụ)
Multi Channel – Single Server (Nhiều kênh phục vụ, một loại dịch vụ)
Multi Channel – Multi Server (Nhiều kênh phục vụ, nhiều loại dịch vụ)
Hình1.2 Các dạng hệ thống hàng đợi
Các kênh phục vụ được hiểu là những thiết bị kĩ thuật hoặc con người hoặc những tổ hợp các thiết bị kĩ thuật và con người được tổ chức quản lí một cách thích hợp nhằm phục vụ các yêu cầu / các tín hiệu đến hệ thống Chẳng hạn, ở các trạm điện thoại tự động, kênh phục vụ là các đường dây liên lạc cùng các thiết bị kĩ thuật khác phục vụ cho việc đàm thoại
Nguyên tắc phục vụ
Nguyên tắc phục vụ (hay nội quy) của hệ thống 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ì 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ế
Trang 11nà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 hoặc phải chờ và giới hạn của thời gian chờ
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
Trang 12Tí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
nào đó trong khoảng thời gian chỉ phụ thuộc vào độ dài của chứ không phụ thuộc vào điểm khởi đầu của
1.1.3 Phân tích hàng đợi
Có các phương pháp phân tích hàng đợi như sau
Phân tích giải tích
Quá trình mô phỏng
Cả hai phương pháp trên
Phương pháp giải tích để giải mô hình hàng đợi gồm các bước sau:
Bước 1: Phân tích hệ thống, chủ yếu là phân tích bản chất của dòng yêu cầu /
tín hiệu đến 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 cho các xác suất trạng thái (xác
suất để hệ thống ở một trạng thái nào đó tại thời điểm t)
Bước 3: Giải hệ phương trình để tìm các xác suất trạng thái Từ đó thiết lập các
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 các nhận xét và
các quyết định
Phương pháp giải tích thường sử dụng các giả thiết rất chặt chẽ của Toán học về các đặc trưng của hệ thống, vì vậy nó có một số hạn chế nhất định khi giải các bài toán thực tế
Trong khi đó, phương pháp mô phỏng/mô phỏng ngẫu nhiên để giải mô hình hàng đợi được áp dụng cho các bài toán dịch vụ đám đông không giải được bằng công cụ giải tích, nhất là những bài toán liên quan đến hệ thống lớn, bất ổn định, hàm chứa nhiều yếu tố ngẫu nhiên, không tuân theo các giả thiết quá chặt chẽ của Toán học Trong nhiều trường hợp phương pháp mô phỏng cho ta tiết kiệm được thời gian và chi phí nghiên cứu Tuy phương pháp mô phỏng chỉ tạo ra các phương án đủ tốt để đánh giá hoạt động của hệ thống chứ không đưa ra được kĩ thuật tìm lời giải tốt nhất
Các bước cần tiến hành khi áp dụng phương pháp mô phỏng bao gồm:
Trang 13Bướ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ế)
• Lợi ích bị mất (thông số dịch vụ và các xem xét về kinh tế)
Trang 14Ta phân tích hàng đợi sau:
Hình 1.3 Phân tích mô hình hàng đợi
tốc độ đến trung bình , thời gian đến trung bình
1/μ tốc độ phục vụ trung bình, thời gian phục vụ trung bình 1/μ
Với kích thước của bộ đệm là vô hạn, quy tắc phục vụ là FIFO
- Sự kiện A: có 1 sự đến trong t
- Sự kiện B: không có sự đến nào trong t
- Sự kiện C: có nhiều hơn 1 sự đến trong t
Giả sử rằng t→ 0 Như vậy ta sẽ có:
Số lượng sự kiện đến tuân theo phân bố Poisson
Định nghĩa luật phân bố Poisson
Trang 15Đồng thời, khoảng thời gian đến (được tính giữa hai sự đến liên tiếp) tuân theo luật phân bố mũ
- 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 P tN( )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ó:
Trang 16Tứ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:
Trang 17Tổng thời gian chờ trong hàng đợi:
Sự kiện một khách hàng đến phải đợi chính là khi trong hệ thống có ít nhất 1 khách hàng:
Đây cũng chính là xác suất hệ thống ở trạng thái bận Pbusy
1.1.4 Phân loại Kendall
Kendall (1951) đã đưa ra ký hiệu A/B/C/K/N/D để mô tả các tham số cơ bản
của hệ thống sắp hàng, thông thường được viết gọn lại dưới dạng A/B/C/K
Ví dụ: M/M/k, G/M/k/N
Trong đó
A Biểu diễn dạng của phân bố thời gian đến trung gian
B Dạng phân bố thời gian phục vụ
Trang 18A và B có thể mang bất kỳ kiểu phân bố sau đây:
* Nếu quá trình đến là quá trình Poisson, nghĩa là thời gian đến trung gian có
phân bố mũ thì A được ký hiệu M (Markovian) Tương tự nếu thời gian phục vụ có phân bố mũ thì B cũng được ký hiệu M
* Nếu thời gian đến trung gian hoặc thời gian phục vụ có phân bố Erlang-k thì A,
đến sẽ bị từ chối hoặc bị mất Trong trường hợp này hệ thống được ký hiệu A/B/k /N
1.1.5 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)
Trang 19Thờ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 biểu thức sau
Cường độ lưu thông (ρ) = Tỉ lệ tới trung bình / Tỉ lệ phục vụ trung bình
= λ/μ = 1/μ/ 1/λ = Thời gian phục vụ trung bình / Thời gian khoảng tới trung bình < 1
Chẳng hạn, nếu có bốn khoảng tới khách hàng trông đợi trong mỗi phút, và việc phục vụ cho 5 khách hàng có thể được hoàn thành trong một phút,
Cường độ lưu thông (ρ) = 4/5 =0.8→80% hay 12(sec) / 15(sec) = 0.8→80%
Trang 20Điều này nghĩa là từng nguồn phục vụ đều bận đến 80% thời gian
4) Độ dài hàng đợi trung bình của hệ thống (Số khách hàng trung bình trong hệ thống) (L)
Số khách hàng trung bình trong hệ thống là "số trông đợi về các khách hàng trong hệ thống xếp hàng, kể cả đang đợi phục vụ và hiện đang được phục vụ ", được kí hiệu là
L Chúng ta có thể tính số này từ cường độ lưu thông ρ bằng việc dùng phương trình sau Số khách hàng trung bình trong hệ thống (L) = cường độ lưu thông / (1- cường độ lưu thông)=ρ/ (1-ρ)
Chẳng hạn, nếu 4 khách hàng xuất hiện trong một phút và 5 khách hàng có thể nhận được phục vụ trong một phút,Số trung bình các khách hàng trong hệ thống (L) = 0.8 / (1-0.8) = 4
Điều này chỉ ra rằng về trung bình 4 khách hàng đang trong hệ thống xếp hàng, chờ nhận được phục vụ
5) Thời gian đợi (chờ) trung bình trong hệ thống (W)
Thời gian cần dùng trung bình cho khách hàng trong hệ thống là "thời gian chờ đợi được trông đợi trong hệthống (kể cả thời gian phục vụ)", được kí hiệu bởi W Số này
có thể được tính từ số trung bình các khách hàngtrong hệ thống (L) và tỉ lệ tới trung bình (λ) (hay thời gian khoảng tới trung bình (1/λ)), bằng việc dùngđẳng thức sau:
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
Trang 21Đ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]
Công thức liên hệ giữa độ dài hàng đợi và thời gian đợi ở trạng thái cân bằng
L = λW
L q =λW q
trong đó λ là tốc độ đến được định nghĩa như sau:
*Kết quả là kết quả nhỏ của định lý Little :
Tính trung bình, số lượng khách hàng nằm trong hệ thống được tính bằng tích của tốc độ đến và thời gian phục vụ:
Trang 22T : thời gian chiếm dùng của khách hàng i
Hình 1.5 Biểu đồ thời gian hàng đợi
Đẳng thức sau đây đúng vì 2 vế đều biểu diễn diện tích phần màu đậm:
1 0
( )
t
t
i i
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
Trang 23Với một hệ thống dừng và ổn định thì tổng các dòng đi vào một trạng thái bằng tổng các dòng đi ra
1.2 Một số hàng đợi cơ bản
1.2.1 Hàng đợi Markov M/M/1
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 1 server phục vụ và trạng thái hệ thống (kích thước bộ đệm) không giới hạn
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:
1]
Trang 24 Thời gian đợi trung bình trong hàng đợi là:
)1(
1][]
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
Trang 25Đặt P = (P 0 ,P 1 , ,P n ) là xác suất trạng thái cân bằng của hệ thống, với P i là xác suất trạng thái ổn định (steady-state) của trạng thái i ( 0 in) 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:
P
P P
P
P
P
)(
23
2
1 1
2 1
3
1 0
3 3
0 2
2 2
0 1
!
!32
P n P
P P
P P
P P
P 0 !1
Suy ra
1 1
0 0
!
! 1
i i
n n i
Xác suất của một yêu cầu phải đợi được tính theo công thức Erlang’s C hoặc được goi là Erlang’s delay:
)(
!
)(
!)
,()
n p i
n n
n p n
n P n
C waiting
i i n
n i
n i i
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
Trang 26 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:
),(]
n C 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) bị giới hạn bởi số lượng n
Lưu lượng tràn (overflow traffic): còn được gọi là lưu lượng mất (lost traffic), có
thể được tính như sau:
Lưu lượng tràn = Lưu lượng xảy đến – lưu lượng được mang
Do đó, đối với mô hình M/M/n/n, lưu lượng tràn bằng:
PB PB
tr
(1 )
Lược đồ chuyển trạng thái và hệ phương trình trạng thái cân bằng:
Trang 27Hình 1.12 Chuỗi Markov của hàng đợi M/M/n/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à i 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
Đặ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-8, ta có hệ phương trình trạng thái cân bằng sau:
P
P P
P
P P
2 2
1 1 3
1 1
0 0 2
0 0 1
) 2 (
3
) (
1 0
0 3 2 1 0 3
0 2 1 0 2
0
0 1
!
!32
P n
P
P P
P P
P P
Trang 281 1 2
1 0 2
1 0 0 0
!2
n
i
n P
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, số lượng trung bình server bận
0 0
)1(
!
!]
j
j n
j
i
P j j jP
n n
n P n
i U
1
)1(
Thời gian chờ trung bình của một server nhất định:
Bằng cách áp dụng các mối quan hệ nổi tiếng
/1
/1)idleisserver
trong đó là thời gian rỗi trung bình của server Như vậy
/ 1
/ 1 ) 1
Trang 29
1)1
E
E P
n
i i
r
i
i P
P E
0
0 0
0
!1
!1
Tuy nhiên, để vận dụng lý thuyết hàng đợi vào các bài toán về hệ thống hàng đợi trong thực tế với rất nhiều các ràng buộc là rất khó khăn Ngày nay, với sự phát triển của khoa học máy tính, với ưu thế của sự 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 thì việc 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, và để làm được điều đó chúng ta hãy tìm hiểu qua về công
cụ này để có thể sử dụng vào trong mô phỏng các hệ thống hàng đợi thực tế, nó sẽ cung cấp các công cụ rất tiện ích cho người sử dụng trong quá trình mô phỏng
Trang 30Chương 2 HÀNG ĐỢI CÓ ƯU TIÊN VÀ CÔNG CỤ XÂY DỰNG MÔ PHỎNG
2.1 Hàng đợi có ưu tiên Priority Queueing [1]
Đối với lớp bài toán mô phỏng hàng đợi có ưu tiên thì một vấn đề cần phải quan tâm đó là làm thế nào để thể hiện được sự ưu tiên của các lớp sự kiện ở các mức độ khác nhau Các công cụ mô phỏng cung cấp cách thức để người sử dụng có thể dễ
dàng làm được điều đó
Hình 2.1 Cách lấy gói tin của hàng đợi Priority Queueing
- Tính năng đặc biệt của Priority Queueing là ở bộ lập lịch Priority Queueing lập lịch lưu lượng đảm bảo hàng đợi ưu tiên luôn được phục vụ trước Với 4 mức ưu tiên: cao, trung bình, bình thường, và thấp Nếu hàng đợi ưu tiên cao luôn có một gói đang chờ, bộ lập lịch luôn luôn lấy các gói trong hàng đợi ưu tiên cao Nếu hàng đợi
ưu tiên cao không có gói nào đang chờ nhưng có trong hàng đơi ưu tiên trung bình, một gói trong hàng đợi này sẽ được lấy và tiến trình cứ như thế tiếp tục
Trang 31- Bộ lập lịch Priority Queueing có một số thuận lợi và hạn chế Các gói trong hàng đợi ưu tiên cao có thể đạt 100% băng thông liên kết, với độ trì hoãn nhỏ và độ biến động trễ nhỏ Thật ra, khi nghẽn mạch, các gói trong hàng đợi ưu tiên thấp tốn nhiều thời gian phục vụ Khi liên kết tắc nghẽn, các ứng dụng người dùng có thể ngừng làm việc nếu các gói đặt trong hàng đợi ưu tiên thấp
- Priority Queueing phân lớp các gói dựa trên nội dung của các tiêu đề Nó sử dụng tối đa 4 hàng đợi Chỉ áp dụng chính sách hủy gói cuối hàng đợi (tail drop), mặt khác sau khi phân lớp các gói, nếu hàng đợi tương ứng đầy, các gói bị bỏ Mặt khác, chiều dài mỗi hàng đợi là nguyên nhân ảnh hưởng đến độ trễ và mất gói Thật ra, Priority Queueing có thể thiết lập chiều dài hàng đợi trở về giá trị 0, có nghĩa là chiều dài hàng đợi “không giới hạn” (“không giới hạn” có nghĩa là khi bộ định tuyến ra ngoài vùng nhớ, các gói không thể lập lịch, tuy nhiên chúng ta gặp vấn đề rắc rối hơn việc lập lịch cho gói nếu bộ định tuyến ngoài vùng nhớ.)
Hình 2.2 Tiến trình gởi gói tin của Priority Queueing
1 Priority Queueing có thể phân lớp các gói sử dụng danh sách điều khiển truy cập ACL với giao thức lớp 3 Priority Queueing cũng có thể so trùng trực tiếp không cần
sử dụng ACL, đầu vào, chiều dài gói và cổng TCP và UDP
2 Hủy bỏ gói cuối hàng đợi là chính sách bỏ gói mặc định
3 Số hàng đợi cực đại là 4
Trang 324 Chiều dài hàng đợi cực đại có thể là 0, nghĩa là hàng đợi có chiều dài “không xác định” theo lý thuyết Mặc định là 20, 40, 60 và 80 tướng ứng với các hàng đợi ưu tiên cao, trung bình, bình thường và thấp
5 Bên trong một hàng đợi, Priority Queueing sử dụng hảng đợi FIFO
6 Khi lập lịch các hàng đợi, Priority Queueing luôn phục vụ các hàng đợi ưu tiên cao trước
- Khi ngõ xuất không tắc nghẽn (nói một cách khác TX không đầy), các gói mới đặt vào TX một cách trực tiếp Khi TX đầy, Priority Queueing thể hiện việc lập lịch Khi tất cả các hàng đợi Priority Queueing truyền hết các gói (TX không đầy), tắc nghẽn dịu đi Các gói mới đến lại vào TX, cho đến khi nó đầy trở lại, nó sẽ khởi động tiến trình hàng đợi với Priority Queueing
- Priority Queueing làm việc tốt trong các chính sách QoS cần xử lý một loại lưu lượng với khả năng phục vụ tốt nhất Tuy nhiên, dịch vụ Priority Queueing với các hàng đợi thấp giảm nhanh chóng, làm cho Priority Queueing không thiết thực cho hầu hết các ứng dụng hiện nay Chẳng hạn, việc chạy một kết nối FTP, một trình duyệt web, một cuộc gọi NetMeeting, và 2 cuộc gọi VoIP khi xuất, các kết nối TCP với lưu lượng HTTP và FTP thường xuyên vượt quá thời gian cho phép
Hình 2.3 Tóm tắc tính năng Priority Queueing
Trang 332.2 Các thuật toán lập lịch cho hàng đợi
Lập lịch có nghĩa là tổ chức một hàng đợi các tiến trình sẵn sàng để phân phối thời gian thực hiện các yêu cầu của hệ thống dựa trên độ ưu tiên của các tiến trình; sao cho hiệu suất sử dụng của hệ thống là tối ưu nhất Mỗi tiến trình ở trạng thái sẵn sàng
sẽ được gắn với một thứ tự ưu tiên Thứ tự ưu tiên này được xác định dựa vào các yếu
tố như: thời điểm hình thành tiến trình, thời gian thực hiện tiến trình, thời gian kết thúc tiến trình… Các tiến trình đang chờ được cung cấp để được thực hiện được xếp vào hàng đợi sẵn sàng Các tiến trình khác có thể đang trong quá trình chờ kết thúc hoặc sẽ nằm trong các hàng đợi tương ứng Một số thuật toán có thể kể đến như sau:
2.2.1 First Come First Served (FCFS)
Trong thuật toán này, độ ưu tiên phục vụ tiến trình căn cứ vào thời điểm hình thành tiến trình Hàng đợi các tiến trình được tổ chức theo kiểu FIFO Mọi tiến trình đều được phục vụ theo trình tự xuất hiện cho đến khi kết thúc hoặc bị ngắt
Ưu điểm của thuật toán này là giờ hệ thống không bị phân phối lại (không bị ngắt) và chi phí thực hiện thấp nhất (vì không phải thay đổi thứ tự ưu tiên phục vụ, thứ
tự ưu tiên là thứ tự của tiến trình trong hàng đợi)
Nhược điểm của thuật toán là thời gian trung bình chờ phục vụ của các tiến trình là như nhau (không kể tiến trình ngắn hay dài), do đó dẫn tới ba điểm sau:
- Thời gian chờ trung bình sẽ tăng vô hạn khi hệ thống tiếp cận tới hạn khả năng phục vụ của mình
- Nếu độ phát tán thời gian thực hiện tiến trình tăng thì thời gian chờ đợi trung bình cũng tăng theo
- Khi có tiến trình dài, ít bị ngắt thì các tiến trình khác phải chờ đợi lâu hơn