ĐẶT VẤN ĐỀ Trong thực tế, chúng ta bắt gặp rất nhiều các hệ thống được thiết lập bởi các yêu cầu của khách hàng, trong đó các thời điểm xuất hiện được xem như một đại lượng ngẫu nhiên, c
Trang 1Lê Xuân Hiếu
NGHIÊN CỨU CÔNG CỤ MÔ PHỎNG GPSS VÀ PETRI NET
CHO BÀI TOÁN HỆ THỐNG HÀNG ĐỢI
LUẬN VĂN THẠC SĨ KHOA HỌC MÁY TÍNH
Thái Nguyên - 2013
ĐẠI HỌC THÁI NGUYÊN
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG
Trang 2ĐẠI HỌC THÁI NGUYÊN
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG
Lê Xuân Hiếu
NGHIÊN CỨU CÔNG CỤ MÔ PHỎNG GPSS VÀ PETRI NET CHO BÀI TOÁN HỆ THỐNG HÀNG ĐỢI
Mã số: 60 48 01
LUẬN VĂN THẠC SĨ KHOA HỌC MÁY TÍNH
NGƯỜI HƯỚNG DẪN KHOA HỌC
TS Lê Quang Minh
Thái Nguyên - 2013
Trang 3LỜI CAM ĐOAN
Tôi xin cam đoan luận văn này là do tôi thực hiện được hoàn thành trên cơ
sở tìm kiếm, thu thập, nghiên cứu, tổng hợp phần lý thuyết và các phương pháp
kĩ thuật được trình bày bằng văn bản trong nước và trên thế giới Mọi tài liệu tham khảo đều được nêu ở phần cuối của luận văn Luận văn này hoàn toàn mới 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 chịu mọi trách nhiệm./
HỌC VIÊN
Lê Xuân Hiếu
Trang 4MỤC LỤC
ĐẶT VẤN ĐỀ 1
Chương 1 TỔNG QUAN VỀ HỆ THỐNG HÀNG ĐỢI 3
1.1 Vai trò của hệ thống hàng đợi 3
1.2 Mô tả hệ thống hàng đợi 3
1.2.1 Mô hình hóa một hệ thống hàng đợi 5
1.2.2 Công thức Little 7
1.2.3 Hệ thống hàng đợi theo cách viết của Kendall và các phân phối liên quan 7
1.3 Các yếu tố của hệ thống hàng đợi 10
1.3.1 Dòng yêu cầu đầu vào 10
1.3.2 Hàng đợi 12
1.3.3 Kênh phục vụ 12
1.3.4 Dòng yêu cầu đầu ra 13
1.3.5 Các quy luật hoạt động của hệ thống phục vụ 13
1.4 Trạng thái hệ thống phục vụ 15
1.4.1 Định nghĩa về trạng thái của hệ thống phục vụ 15
1.4.2 Quá trình thay đổi trạng thái của hệ thống phục vụ 15
1.4.3 Sơ đồ trạng thái 16
1.4.4 Qui tắc thiết lập hệ phương trình trạng thái 16
Chương 2 CÁC CÔNG CỤ MÔ PHỎNG BÀI TOÁN HÀNG ĐỢI 19
2.1 Quy trình chung của việc phân tích, mô phỏng hệ thống hàng đợi 19
2.2 Một số ngôn ngữ lập trình bậc cao dùng để giải quyết bài toán hàng đợi 20
2.2.1 Ngôn ngữ lập trình Matlab 20
2.2.2 Ngôn ngữ lập trình Java 21
2.2.3 Ngôn ngữ lập trình C++ và bộ công cụ Visual Studio.net 22
2.3 Ngôn ngữ mô phỏng GPSS và công cụ GPSS World 23
2.3.1 Giới thiệu về ngôn ngữ GPSS 23
2.3.2 Sự ra đời của ngôn ngữ GPSS 24
Trang 52.3.3 Những ưu điểm của ngôn ngữ GPSS 25
2.3.4 Các ứng dụng của công cụ mô phỏng GPSS World 26
2.3.5 GPSS World Student Version 28
2.4 Các công cụ mô phỏng sử dụng ngôn ngữ đặc tả Petri-net 29
2.4.1 Các khái niệm cơ bản về Petri-net 29
2.4.2 Mô tả toán học về Petri-net 31
2.4.3 Một số thuộc tính của Petri-net 32
2.4.4 Một số công cụ sử dụng ngôn ngữ Petri-net 33
2.4.5 Ứng dụng của mạng Petri-net 34
2.5 So sánh giữa P/T net và GPSS 34
Chương 3 SỬ DỤNG GPSS VÀ PETRI NET 36
TRONG BÀI TOÁN MÔ PHỎNG HỆ THỐNG HÀNG ĐỢI 36
3.1 Mô phỏng bài toán hàng đợi không ưu tiên 36
3.1.1 Phát biểu bài toán 36
3.1.2 Phân tích bài toán 37
3.1.3 Phân tích kết quả của bài toán bằng lý thuyết hàng đợi 37
3.1.4 Mô phỏng bài toán bằng công cụ GPSS WORLD 39
3.1.5 Mô phỏng bài toán bằng mô hình mạng Petri 43
3.2 Mô phỏng bài toán hàng đợi có ưu tiên 51
3.2.1 Phát biểu bài toán 51
3.2.2 Phân tích bài toán 52
3.2.3 Phân tích kết quả bài toán bằng lý thuyết hàng đợi 54
3.2.4 Mô phỏng bài toán bằng GPSS World 55
3.2.5 Mô phỏng bài toán bằng mô hình mạng Petri 59
3.3 Đánh giá các kết quả mô phỏng 64
KẾT LUẬN VÀ KIẾN NGHỊ 66
TÀI LIỆU THAM KHẢO 68
Trang 6DANH MỤC CÁC KÝ HIỆU, CHỮ VIẾT TẮT
System
Ngôn ngữ mô phỏng hệ thống GPSS
GPSS/PC General Purpose Simulation
System/Personal Computer
Môi trường lập trình cho ngôn ngữ GPSS
Exchange
Tổng đài liên lạc dành cho một
tổ chức, đơn vị độc lập
học, dựa trên lý thuyết về tập hợp
Trang 7DANH MỤC CÁC BẢNG BIỂU
Trang
Bảng 1.4 Các phân phối xác suất liên quan đến A và B trong mô tả
Bảng 3.11 Kết quả phân tích vị trí các đỉnh P khi T1,T5,T6 thay đổi 50 Bảng 3.12 So sánh kết quả tính toán theo lý thuyết với tính toán
Bảng 3.13 So sánh kết quả tính toán theo lý thuyết với tính toán
Bảng 3.18 So sánh kết quả tính toán theo lý thuyết với tính toán
Bảng 3.19 So sánh kết quả tính toán theo lý thuyết với tính toán
Trang 8Hình 2.1 Minh họa công cụ Netlab tích hợp trên nền tảng Matlab 21 Hình 2.2 Minh họa Applet: The Petri - Net - Simulator chạy trên
Hình 2.3 Minh họa công cụ YASPER phát triển trên công nghệ Net 23
Hình 2.5 Ví dụ về một cửa sổ REPORT GPSS World Student
Hình 2.9 Minh họa tính không có đường bao giới hạn của Petri-Net 33
Hình 3.5 Điều kiện bài toán mô phỏng mô hình hệ thống điều khiển
Hình 3.6 Sơ đồ thuật toán bài toán mô phỏng mô hình hệ thống điều
Hình 3.7 Mô hình hàng đợi theo dạng M/M/1 bài toán mô phỏng
Hình 3.8 Mô hình hóa bằng mạng Petri bài toán mô phỏng mô hình
Trang 9ĐẶT VẤN ĐỀ
Trong thực tế, chúng ta bắt gặp rất nhiều các hệ thống được thiết lập bởi các yêu cầu (của khách hàng), trong đó các thời điểm xuất hiện được xem như một đại lượng ngẫu nhiên, còn nhu cầu được đặc trưng bằng khối lượng các công việc phải làm để phục vụ, thứ tự ưu tiên trước sau, thời gian hoàn thành công việc và toàn bộ công việc Đó là những hệ thống như: Xếp hàng mua vé vào rạp hát, xếp hàng thanh toán tiền ở quầy thu ngân ở siêu thị, máy bay cất cánh (hạ cánh), mạng máy tính,
bãi đậu xe, phi trường… Những hệ thống này được gọi là hệ thống hàng đợi (hay
hệ thống phục vụ đám đông)[1],[3],[6],12]
Nhìn chung các hệ thống hàng đợi là các hệ thống phức tạp, việc vận hành và tính toán các đặc trưng của hệ thống để tư vấn cho nhà quản lý là một vấn đề hết sức cần thiết Việc xây dựng mô hình toán học cho mỗi hệ thống là rất cần thiết để giảm chi phí tối đa cho các hoạt động đặc tả nó Việc đặc tả và tính toán một số đặc điểm của hệ thống hàng đợi có thể đem lại các kết quả dự báo quan trọng cho hệ thống Khi đó tính chất đầy đủ của các mô hình mô phỏng cần đạt được việc mô phỏng quá trình làm việc của mỗi phần tử trong hệ thống với việc đảm bảo các logic, quy tắc của sự tương tác và phát triển của chúng cả trong không gian và trong thời gian
Để 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, khó khăn do 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 (song song) với việc xây dựng các hàm tạo ngẫu nhiên các sự kiện (random) cũng không hề đơn giản, chính
vì vậy đã xuất hiện các ngôn ngữ mô phỏng chuyên dụng Hiện nay có một số phương pháp đánh giá, mô phỏng được sử dụng rộng rãi và có hiệu quả trên thực tế
là phương pháp mô hình hoá và các mô hình được sử dụng hiện nay là mô hình hàng đợi, mạng Petri, General Purpose Simulation System (GPSS), đồ thị, và các
mô hình lai ghép Trong đó mô hình hàng đợi là một mô hình đơn giản và tỏ ra có hiệu quả trong thực tế
Trang 10Với nhu cầu cần mô phỏng hệ thống hàng đợi, việc áp dụng cách tiệp cận cũng như công cụ mô phỏng nào là một vấn đề quan trọng do tính chất của hệ thống, quy
mô của hệ thống có thể là những yếu tố ảnh hưởng đến việc lựa chọn công cụ Chính vì vậy, yêu cầu lựa chọn, so sánh, đánh giá các công cụ mô phỏng là một đề tài mang ý nghĩa khoa học và thực tiễn cao Với lý do đó, tôi lựa chọn đề tài
“Nghiên cứu công cụ mô phỏng GPSS và Petri Net cho bài toán hệ thống hàng đợi“ cho luận văn tốt nghiệp thạc sỹ của mình
Luận văn gồm 3 chương với nội dung được mô tả tóm lược như sau:
Chương 1 Tổng quan về hệ thống hàng đợi: Nội dung chương 1 đưa ra vai
trò của hệ thống hàng đợi; tập trung vào cơ sở lý thuyết hàng đợi (lý thuyết phục vụ đám đông) bao gồm các mô tả về một hệ thống hàng đợi nói chung như: Các yếu tố của hệ thống hàng đợi (dòng vào, dòng ra, hàng chờ, kênh phục vụ), trạng thái của
hệ thống (quá trình thay đổi trạng thái của hệ thống phục vụ, sơ đồ trạng thái, quy tắc thiết lập hệ phương trình trạng thái)
Chương 2 Các công cụ mô phỏng bài toán hàng đợi: Cách tiếp cận cho việc
mô phỏng bài toán hàng đợi bằng một số ngôn ngữ lập trình bậc cao như Java, Matlab, C++… và các ngôn ngữ đặc tả ,công cụ mô phỏng chuyên dụng GPSS, Petri Net
Nghiên cứu kỹ cách áp dụng công cụ mô phỏng GPSS và Petri Net cho bài toán hàng đợi
Đưa ra so sánh đặc điểm, ứng dụng giữa công cụ GPSS và Petri Net
Chương 3 Sử dụng GPSS và Petri Net trong bài toán mô phỏng hệ thống hàng đợi: Áp dụng công cụ mô phỏng GPSS và Petri Net vào 2 bài toán hàng đợi
cụ thể: Bài toán hàng đợi không ưu tiên (bài toán mô phỏng điều khiển xe cẩu) và bài toán hàng đợi có ưu tiên (bài toán mô phỏng hệ thống điều khiển hệ thống đường băng sân bay)
So sánh kết quả tính toán theo lý thuyết với kết quả mô phỏng trên GPSS và Petri Net theo thời gian Từ các kết quả mô phỏng được trình bày trong luận văn đưa ra so sánh, khuyến cáo khi sử dụng 2 công cụ mô phỏng GPSS và Petri Net khi
áp dụng vào bài toán cụ thể
Kết luận: Tóm lược nội dung chính của luận văn và nêu định hướng phát triển
trong thời gian tới
Trang 11Chương 1 TỔNG QUAN VỀ HỆ THỐNG HÀNG ĐỢI 1.1 Vai trò của hệ thống hàng đợi
Lý thuyết hàng đợi (queuing theory) đã đượ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 ngà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é …[3]
Trong nhiều hệ thống hàng đợi, các khách hàng (đối tượng cần được phục vụ) 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ụ, việc nghiên cứu đảm bảo sự hiệu quả, tối ưu làm việc của hệ thống hàng đợi chính là mục đích của lý thuyết hàng đợi
1.2 Mô tả hệ thống hàng đợi
Chúng ta làm quen với một ví dụ về hệ thống hàng đợi [2,12,18] với mô hình được
mô tả ở hình 1.1
Hình 1.1: Mô hình cơ bản của hệ thống hàng đợi (hay hệ thống phục vụ đám đông)
Trong mô hình này, chúng ta quan sát thấy có yếu tố khách đến, khách bỏ đi (do không có thời gian chờ đợi, hoặc các lý do khác), khách xếp hàng đợi tới lượt
Trang 12mình được phục vụ, các máy phục vụ, và khách hàng đã được phục vụ xong, rời khỏi hệ thống phục vụ trên
Các yếu tố này có thể tóm lược sơ bộ gồm các thành phần trong bảng 1.1:
Bảng 1.1 Các yếu tố cấu thành một hệ thống hàng đợi
đầu vào
Khách hàng gọi điện thoại đến một tổng đài giải đáp (Call Center), các xe ô tô đi vào bãi đậu xe, các máy bay hạ cánh xuống một đường băng…
từng loại đầu vào cụ thể ở trên, trong hệ thống phục
vụ có hàng đợi, tại đó, khách hàng xếp hàng đợi đến lượt mình được phục vụ Hệ thống phục vụ có các máy phục vụ và chúng hoạt động theo những quy luật, nguyên tắc phục vụ nào?
3 Các máy phục vụ Các máy điện thoại bàn và nhân viên trong một Call
Center, đường băng tại sân bay, vị trí trong bãi đậu xe…
đầu ra
Là các yêu cầu đã được phục vụ sau khi đi ra khỏi
hệ thống phục vụ ở trên
Về bản chất, khi xuất hiện các yêu cầu vượt quá khả năng đáp ứng của một dịch
vụ nào đó tại một thời điểm nào đó, hàng đợi sẽ xuất hiện
Sự chờ đợi (nhanh hay chậm để được đáp ứng yêu cầu) phụ thuộc mạnh vào số lượng kênh phục vụ của hệ thống, cũng như quy tắc phục vụ của hệ thống
Chi tiết về hệ thống hàng đợi sẽ được trình bày cụ thể trong phần 1.2.1
Trang 13Trong các hệ thống phục vụ, hàng đợi xuất hiện bất cứ lúc nào khi nhu cầu hiện tại đối với dịch vụ vượt quá khả năng cung ứng dịch vụ tại thời điểm đó Thời gian một yêu cầu đến phải chờ đợi phụ thuộc vào một số yếu tố như: Số lượng giao dịch trong hệ thống, số kênh giao dịch cung ứng dịch vụ tại thời điểm đó và thời gian phục vụ cho mỗi yêu cầu đến
1.2.1 Mô hình hóa một hệ thống hàng đợi
Chúng ta có thể mô hình hóa đơn giản cho một hệ thống hàng đợi trong hình 1.2 :
Hình 1.2 Mô hình hóa các yếu tố của một hệ thống hàng đợi
Các thông số mô tả liên quan đến hệ thống hàng đợi gồm có:
Trang 14Bảng 1.2 Các tham số đặc trưng trong hệ thống hàng đợi
STT Ký
1 N(t) Số khách hàng ở trong hệ thống tại thời điểm t
2 λ Dòng yêu cầu đầu vào, đặc trưng bởi tốc độ đến (arrival rate)
của khách hàng
3 µ Dòng yêu cầu đầu ra, là các yêu cầu đã được và không được
phục vụ, đặc trưng bởi tốc độ tối đa phục vụ Lưu ý: λ < µ
4 Nq(t) Hàng đợi, đặc trưng bởi số lượng khe để phục vụ cho xếp hàng
6 Ns(t)
Kênh phục vụ và các cách phục vụ, đặc trưng bởi số lượng kênh, cụ thể có c kênh, cũng có nghĩa là đang có c khách hàng
đang được phục vụ
Trang 151.2.2 Công thức Little
Thời gian phục vụ là một đại lượng ngẫu nhiên, chúng ta khó có thể đo được
Tuy nhiên, nhìn tổng thể, thời gian phục vụ trung bình là một yếu tố rất quan trọng,
đem lại nhiều ý nghĩa để đánh giá hiệu suất hoạt động của hệ thống hàng đợi
Công thức Litte [2],[3] phát biểu rằng:
Hệ thống hàng đợi đạt được trạng thái dừng khi mà
Trung bình các khách hàng trong hệ thống bằng Tốc độ đến trung bình
nhân với Thời gian phục vụ trung bình trong hệ thống hàng đợi đó
E[N(t)] = λtb E[T] (1.2) Khi đó, chúng ta suy ra các hệ quả sau:
E[Nq(t)] = λtb E[W]
Trung bình khách hàng chờ đợi và Thời gian chờ đợi trung bình
(1.3)
1- p0 = E[Ns(t)] = λtb E[τ]
( đây là xác suất trạng thái dừng của hệ thống khi có khách hàng)
Trung bình khách hàng đang được phục vụ tại thời điểm t và toàn bộ thời
gian phục vụ trung bình trên các máy phục vụ
Trang 16Theo Kendall [10],[21] , mô tả ngắn gọn về hệ thống hàng đợi có dạng như sau:
Các ký hiệu trong mô tả Kendall được trình bày trong bảng 1.3:
Bảng 1.3 Các yếu tố theo quy tắc Kendall khi mô tả về hàng đợi
STT Ký
hiệu
Ý nghĩa
hệ thống phục vụ được, có tính đến cả khách hàng đang chờ
Chi tiết hơn, với ký hiệu X là biến ngẫu nhiên của phân phối xác suất và E[X]
là kỳ vọng , hoặc giá trị trung bình của X, chúng ta nói về các phân phối xác suất
liên quan đến yếu tố A và B trong bảng 1.4:
Trang 17Bảng 1.4 Các phân phối xác suất liên quan đến A và B trong mô tả Kendall
STT Viết
tắt
Phân phối xác suất
Hàm phân phối Ghi chú
không nhớ, E[X]= 1/µ
x
e x
k
j
j x
j
x e
k
j
x j
e x
a là một thời điểm nào đó cố định
(1.10)
6 GI Phân phối tổng quát
với các thời gian vào
hệ thống hoặc thời gian phục vụ độc lập nhau
Đặc trưng bởi xích Markov hoặc
quá trình Possion, sẽ trình bày kỹ hơn về xích này sau
7 PH Phân phối pha Đặc trưng bởi xích Markov, sẽ
trình bày kỹ hơn về xích này sau
Trang 181.3 Các yếu tố của hệ thống hàng đợi
Các yếu tố của hệ thống hàng đợi [1], gồm có: Dòng yêu cầu đầu vào, Hàng đợi, Kênh phục vụ, dòng yêu cầu đầu ra, và các cách phục vụ (quy luật phục vụ ) Chúng ta sẽ xét từng yếu tố cụ thể đã liệt kê trong bảng 1.1
Một hệ thống hàng đợi, dù ở qui mô nào, tính chất hoạt động ra sao, đều được đặc trưng bởi các yếu tố chủ yếu sau:
1.3.1 Dòng yêu cầu đầu vào
Dòng yêu cầu đầu vào (gọi tắt là dòng vào) là dòng các yêu cầu đến hệ thống phục vụ, đòi hỏi được thỏa mãn một yêu cầu nào đó Đặc trưng rõ nét nhất của dòng
vào là tốc độ đến (arrival rate), ký hiệu là λ
Ví dụ: Khách hàng xếp hàng tại quầy bán vé xem phim, các container chờ để được dỡ hàng, các xe ô tô chờ xếp hàng vào bãi, các máy bay chờ để cấ
Chúng ta thấy rằng, dòng các yêu cầu đầu vào là một yếu tố xuất hiện ngẫu nhiên, chúng có thể ít, có thể nhiều tùy theo thời điểm đến, nó có đặc trưng bởi một
số phân bố xác suất nào đó Trong khóa luận này, chúng ta tập trung xét hai loại dòng yêu cầu đầu vào thông dụng nhất là:
Dòng vào tiền định, đặc trưng bởi phân phối tất định D
Dòng vào Possion, tuân theo phân phối Possion
Dòng vào tiền định
Dòng vào tiền định là dòng vào trong đó các yêu cầu đến hệ thống phục vụ tại
các thời điểm cách đều nhau một khoảng a
Dòng vào tiền định là một đại lượng ngẫu nhiên có hàm phân bố xác suất theo
phân phối D:
F(x) = 1, nếu x ≥ a F(x) = 0, nếu x < a
(1.11)
Dòng vào Poisson
Trang 19Dòng vào Poisson là dòng yêu cầu đi đến hệ thống, dòng vào này tuân theo luật phân phối Poisson với N(t) là số các biến cố xảy ra trong khoảng thời gian [0, t] N(t) là quá trình ngẫu nhiên liên tục, không giảm theo thời gian
N(t) có phân phối Poission có kỳ vọng là λt, và có biểu diễn như sau:
t ke k
t k
t N P
!
) ( ] ) (
Dòng vào Poisson không dừng: Là dòng vào mà xác suất xuất hiện x yêu
cầu trong khoảng thời gian Dt, kể từ thời điểm t, phụ thuộc vào t, nghĩa là:
x t
t a
t t a
e Dt
!)
(
) ,
Trong đó a(t, Dt) là số trung bình các yêu cầu xuất hiện từ t đến Dt
Dòng vào Poisson dừng: Là dòng vào mà xác suất trong khoảng thời gian
Dt, kể từ thời điểm t, có x yêu cầu xuất hiện, không phụ thuộc vào t, nghĩa là:
x t
t
e Dt
!)
Trong đó, λ o là số yêu cầu trung bình xuất hiện trong một đơn vị thời gian
(cường độ dòng yêu cầu) Nói cách khác là mật độ dòng yêu cầu không đổi
Nếu t là khoảng thời gian giữa lần xuất hiện các yêu cầu liên tiếp, thì t là một đại lượng ngẫu nhiên tuân theo luật chỉ số, nghĩa là t có hàm phân bố xác suất và hàm mật độ như sau:
t
o
e t
t o
o
e t
Trang 201.3.2 Hàng đợi
Hàng đợi (Queue) là tập hợp các yêu cầu sắp xếp theo một nguyên tắc nào đó
để chờ đợi đến lượt được vào phục vụ trong hệ thống Trong hàng đợi ta có thể giới hạn hoặc không giới hạn số lượng khách chờ Phần dưới đây, chúng ta nói thêm về các quy luật xếp hàng chờ đợi đến lượt phục vụ
sẽ thiết lập nhân lực, vật lực, phương tiện, trang thiết bị cho hệ thống đó
Đặc điểm quan trọng nhất của kênh phục vụ là thời gian phục vụ τi (xem bảng
1.2) Đó là thời gian mỗi kênh phải tiêu phí để phục vụ một yêu cầu Nói dễ hiểu là
“Anh tốn bao nhiêu thời gian để phục vụ xong một khách hàng”
Thời gian phục vụ cũng là một đại lượng ngẫu nhiên tuân theo một quy luật xác suất nào đó bởi nó phụ thuộc rất mạnh vào thời gian đến của các yêu cầu Các
dòng yêu cầu được phục vụ trong kênh phục vụ gọi là “dòng phục vụ”
Khi dòng phục vụ là tối giản thì khoảng thời gian giữa các lần xuất hiện liên tiếp các yêu cầu là một đại lượng ngẫu nhiên tuân theo luật chỉ số, nghĩa là đại lượng ngẫu nhiên có phân bố xác suất và hàm mật độ xác suất giống hệt như dòng vào Possion dừng ở phần trên
t
o
e t
t o
o
e t
Trong đó:
Trang 21μo: là số yêu cầu được phục vụ trên mỗi kênh trong một đơn vị thời gian (cường độ dòng phục vụ)
F(t): Hàm phân bố xác suất
f(t): Hàm mật độ xác suất
Khoảng thời gian giữa các lần xuất hiện liên tiếp các yêu cầu trong dòng phục
vụ của mỗi kênh chính là khoảng thời gian kênh đó phục vụ xong từng yêu cầu, nghĩa là thời gian phục vụ của kênh
Nếu dòng phục vụ trên mỗi kênh là dòng tối giản thì thời gian phục vụ của kênh đó là đại lượng ngẫu nhiên tuân theo luật chỉ số, nghĩa là có hàm phân phối xác suất và mật độ xác suất dạng (1.16) và (1.17)
1.3.4 Dòng yêu cầu đầu ra
Dòng yêu cầu đầu ra (gọi tắt là dòng ra) là dòng các yêu cầu đi ra khỏi hệ thống Có hai loại dòng ra:
Dòng yêu cầu ra đã được phục vụ xong: là các yêu cầu đã được phục vụ ở mỗi kênh, nếu dòng đó là tối giản thì nó có một vai trò rất lớn trong hệ thống phục vụ Người ta đã chứng minh được rằng: nếu dòng vào là tối giản thì dòng ra được phục vụ tại mỗi kênh sẽ là dòng xấp xỉ tối giản (như
đã trình bày ở phần 1.3.3)
Dòng yêu cầu ra không được phục vụ: là một phần các yêu cầu đến hệ thống nhưng không được phục vụ vì một lí do nào đó
1.3.5 Các quy luật hoạt động của hệ thống phục vụ
Một hệ thống phục vụ hoạt động theo những quy luật nào, nguyên tắc nào? Sự hiệu quả của những quy luật đó ra sao? Ứng với loại dòng vào cụ thể, hệ thống phục vụ phải chọn lựa ra cách thức phục vụ nào để tối ưu nhất? Đó là một vài câu hỏi đặt ra cho hệ thống phục vụ
Trang 22Đặc điểm chung về các quy luật phục vụ
Như vậy, các quy luật phục vụ của hệ thống phục vụ là cách mà hệ thống tiếp nhận các yêu cầu đầu vào, tiến hành phân loại, sắp xếp và phục vụ các yêu cầu đó trong hệ thống, ngoài ra, các quy luật này còn thiết lập một số các quy định khác đối với yêu cầu đầu vào Nó chỉ ra:
Khi nào thì yêu cầu đáp ứng được các quy luật phục vụ và yêu cầu đó được nhận vào phục vụ
Cách phân bổ các yêu cầu đó vào các kênh phục vụ
Khi nào thì yêu cầu bị từ chối hoặc phải chờ đợi trong hàng đợi
Cách bố trí hàng đợi tùy theo các loại yêu cầu
1 FCFS – First Come First Served Ai đến trước phục vụ trước
2 LCFS – Last Come First Served Ai đến cuối phục vụ trước
3 SIRO – Service In Random Order Phục vụ theo thứ tự ngẫu nhiên
Tùy thuộc vào việc chúng ta chọn phương pháp phục vụ, hàng đợi sẽ được điều chỉnh theo phương pháp đó sao cho có hiệu quả nhất
Trang 231.4 Trạng thái hệ thống phục vụ
Phần này, chúng ta quan tâm đến trạng thái hoạt động của hệ thống phục vụ Làm thế nào để tìm hiểu xem hệ thống phục vụ với những yếu tố, các quy luật đã trình bày ở trên, chúng ta tìm ra trạng thái hoạt động của nó? Trước hết, chúng ta tìm hiểu về quá trình Markov
1.4.1 Định nghĩa về trạng thái của hệ thống phục vụ
Trạng thái của hệ thống phục vụ, ký hiệu là xk(t), là khả năng kết hợp dòng vào và dòng ra của hệ thống ở một thời điểm nhất định
Theo nghĩa đó thì trạng thái của hệ thống phục vụ tại thời điểm t chính là tình huống mà trong hệ thống có k yêu cầu được phục vụ, hay nói cách khác hệ thống đang có k kênh phục vụ đang bận (đang làm việc) và do đó có (n-k) kênh được rỗi (không làm việc)
Hệ thống phục vụ đang ở trạng thái nào đó là một quá trình ngẫu nhiên, quá trình này tuân theo một luật phân phối xác suất nào đó Nên khả năng xuất hiện một trong các trạng thái xk(t) (k = 0,1,2, ) nào đó tại thời điểm t, có xác suất là một giá trị xác định Pk(t)
1.4.2 Quá trình thay đổi trạng thái của hệ thống phục vụ
Trong quá trình hoạt động, hệ thống phục vụ chuyển từ trạng thái này sang trạng thái khác dưới tác động của cường độ dòng vào và cường độ dòng phục vụ Xác suất của quá trình đó được gọi là xác suất chuyển trạng thái Nguyên nhân gây ra
sự chuyển trạng thái là do tác động của cường độ dòng vào và cường độ dòng phục
vụ, số kênh bận và số yêu cầu trong hệ thống thay đổi, tức là dưới tác động của cường độ dòng phục vụ μ(t) và cường độ dòng vào λi(t) tại thời điểm t, hệ thống sẽ biến đổi từ trạng thái này sang trạng thái khác
Trang 241.4.3 Sơ đồ trạng thái
Sơ đồ trạng thái của hệ thống được dùng để diễn tả quá trình thay đổi trạng thái của hệ thống phục vụ Sơ đồ trạng thái là tập hợp các mũi tên, hình vẽ, diễn tả quá trình biến đổi trạng thái của hệ
trạng thái mô tả bước chuyển từ trạng thái này sang trạng thái khác, hình chữ nhật biểu diễn trạng thái của hệ thống Tham số ghi trên mũi tên biểu thị tác động của cường độ dòng biến cố kéo trạng thái dịch chuyển theo hướng mũi tên
Chúng ta ví dụ về một hệ thống có sự thay đổi trạng thái gồm bốn yếu tố, và sự thay đổi trạng thái trong hệ thống được mô tả như hình vẽ 1.3
Hình 1.4: Sơ đồ trạng thái của hệ thống phục vụ
1.4.4 Qui tắc thiết lập hệ phương trình trạng thái
Căn cứ vào sơ đồ trạng thái, ta thiết lập quan hệ giữa xác suất xuất hiện trạng thái xk(t)với xác suất xuất hiện là Pk(t), cùng các yếu tố gây ra sự biến đổi trạng thái
đó Mối quan hệ đó được gọi là phương trình trạng thái của hệ thống
Cách tìm phương trình trạng thái:
- Tính đạo hàm bậc nhất của xác suất Pk(t), chúng ta có dPk(t)/dt
Ta thấy dP k (t)/dt bằng tổng đại số của một số hữu hạn số hạng, số các số hạng
này bằng số mũi tên nối liền trạng thái xk(t), với trạng thái xj(t) khác
Trang 25- Số số hạng mang dấu (–) tương ứng với số mũi tên đi từ xk(t) sang xj(t)
- Mỗi số hạng có giá trị bằng tích giữa cường độ của dòng biến cố hướng
theo mũi tên và xác suất xuất hiện trạng thái mà mũi tên xuất phát
Hệ phương trình trạng thái:
(1.19)
Trong đó k = 0, 1,2,…
Với điều kiện tổng tất cả các giá trị xác xuất trong một hàng của ma trận xác
suất chuyển có giá trị bằng 1, tức là:
(1.20) Trong đó:
- λjk (t) là cường độ dòng biến cố (dòng yêu cầu hoặc dòng phục vụ)
chuyển từ trạng thái xj(t) về trạng thái xk(t)
- λkj(t) có ý nghĩa ngược lại với λjk (t)
- Pj(t) là xác suất xuất hiện trạng thái xj(t) ở thời điểm t
(trạng thái trong hệ thống có j kênh đang làm việc)
- Pk(t) có ý nghĩa tương tự như Pk(t)
Định lý Markov
Dưới tác động của dòng tối giản, quá trình thay đổi trạng thái của hệ thống sẽ có
tính chất dừng, theo nghĩa:
k k
Khi đó, hệ phương trình (1.19) có dạng:
1
t t
k j
k k
j
j
k j
jk k
dt
t d
'
Trang 26(1.22) Với điều kiện:
(1.23)
n chương 1:
Nội dung chương 1 tập trung vào cơ sở lý thuyết hàng đợi (lý thuyết phục vụ đám đông), bao gồm các mô tả về một hệ thống phục vụ nói chung như: Cá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 (quá trình thay đổi trạng thái của hệ thống phục vụ, sơ đồ trạng thái, quy tắc thiết lập hệ phương trình trạng thái)
- Trạng thái hệ thống phục vụ: Đưa ra định nghĩa; quá trình thay đổi trạng thái của hệ thống phục vụ; sơ đồ trạng thái; qui tắc thiết lập hệ phương trình trạng thái (nội dung quy tắc, hệ phương trình trạng thái, định lý Markov)
0
'
k k
j
k jk k
j
j jk
1
k j
k k
j
j
Trang 27Chương 2 CÁC CÔNG CỤ MÔ PHỎNG BÀI TOÁN HÀNG ĐỢI
Chương này giới thiệu về một số công cụ mô phỏng, ngôn ngữ đặc tả liên quan đến bài toán hàng đợi Mỗi công cụ, ngôn ngữ có những ưu điểm riêng
Dựa trên đặc tả toán học của nó, và sử dụng ngôn ngữ lập trình như Java, Matlab, C, C++, các nhà phát triển đã tạo ra các công cụ làm việc theo chủ đích của họ Java sử dụng các Applet linh hoạt trên môi trường Java, Matlab là ngôn ngữ hàng đầu trong nghiên cứu tại các trường học
Ngôn ngữ GPSS và công cụ GPSS World, Petri Net
c Transaction, các Block dựa trên một giải thuật nào đó
2.1 Quy trình chung của việc phân tích, mô phỏng hệ thống hàng đợi
Khảo sát, nghiên cứu một hệ thống; Qua đó đưa ra mô hình toán học cho hệ thống cần mô phỏng Ở bước này cần xác định được thông số của hệ thống như: số nguồn yêu cầu, mỗi nguồn sinh yêu cầu theo quy luật phân bố ngẫu nhiên nào, có thứ tự ưu tiên giữa các nguồn hay không; Kích thước hàng đợi và quy tắ
ợi cũng như lấy chúng ra từ hàng đợi; Số kênh phục vụ và quy tắc xử lí yêu cầu, thời gian phục vụ theo quy luật phân bố ngẫu nhiên nào Một quy trình chung cho việc phân tích, mô phỏng một hệ thống hàng đợi được đề xuất như sau:
Bước 1: Phân tích hệ thống, chủ yếu là phân tích bản chất yếu tố dòng đầu vào
(dòng yêu cầu hệ thống), tín hiệu đến và các trạng thái của hệ thống
Cụ thể ở bước này cần xác định luật phân bố đầu vào (input) của kênh phục
vụ Xác định biến số thời gian gắn liền với đầu vào của sự kiện
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 đó ở thời điểm thời gian t)
Trang 28Để mô phỏng hệ thống, cần xác định luật phục vụ đối với kênh phục vụ: Theo
ưu tiên hay không ưu tiên Thời gian phục vụ đối với từng bài toán Từ đây xác định hàm phục vụ trong các công cụ mô phỏng cụ thể
Bước 3: Giải hệ phương trình trạng thái để tìm ra các xác suất trạng thái đối
với mô hình phân tích dựa trên lý thuyết hàng đợi Từ đó thiết lập các mối quan hệ giữa các chỉ tiêu cần đánh giá
Để mô phỏng cần xây dựng chương trình với công cụ mô phỏng và chạy chương trình, đưa ra kết quả mô phỏng
Bước 4: Tính toán, so sánh, phân tích các kết quả tính toán và kết quả mô
phỏng, từ đó đưa ra các kết luận, kiến nghị về hành vi của hệ thống
Với mô hình này, mấu chốt để mô phỏng thành công một hệ thống chính là bước 1, ở đây phải xác định được đúng dạng định luật phân bố của đầu vào để xác định xây dựng hệ thống
2.2 Một số ngôn ngữ lập trình bậc cao dùng để giải quyết bài toán hàng đợi
2.2.1 Ngôn ngữ lập trình Matlab
Matlab là ngôn ngữ lập trình bậc cao phổ biến hiện nay Công cụ mô phỏng Simulink được sử dụng trong rất nhiều ứng dụng nghiên cứu cũng như thực tế Công cụ Netlab, được viết trên nền ngôn ngữ Matlab, dùng để làm việc với ngôn ngữ đặc tả Petri-net Công cụ này có một số đặc điểm sau:
- Môi trường hiển thị đồ họa, dễ dàng sử dụng (hình 2.1)
- Phân tích dạng đồ thị và sự thay đổi trên các đồ thị
- Tổng hợp các chức năng phân tích dựa theo đặc tả toán học Petri-net
- Mô phỏng từng bước một
Trang 29Hình 2.1: Minh họa công cụ Netlab tích hợp trên nền tảng Matlab
- Thiết lập giao diện thân thiện người dùng (hình 2.2)
- Mô tả dạng đồ họa các cấu trúc đồ thị hệ thống
- Chạy trên nền Windows hoặc Linux đều được
Trang 30Hình 2.2: Minh họa Applet: The Petri - Net - Simulator chạy trên nền Java
2.2.3 Ngôn ngữ lập trình C++ và bộ công cụ Visual Studio.net
Bộ công cụ phát triển Visual Studio của hãng Mircosoft là một bộ công cụ phổ biến bậc nhất trong thế giới lập trình hiện nay Sau khi nâng cấp nhiều lần, đặc biệt với nền tảng Net Framework, phiên bản mới nhất là version 4.0, các ứng dụng của chúng ta được thỏa sức phát triển
Ở đây, xin giới thiệu một công cụ mô phỏng mạng Petri-net được phát triển trên nền tảng công nghệ Net của bộ công cụ lập trình Visual Studio, đó là công cụ YASPER (Yet Another Smart Process EditoR), là kết quả hợp tác giữa TU Eindhoven và Deloitte [22]
Trang 31Đây là công cụ dùng để đặc tả và chạy mô phỏng các tiến trình rời rạc, sử dụng ngôn ngữ đặc tả Petri-net để mô tả chúng Hình 2.3 giới thiệu mô phỏng hoạt động thường gặp trong thực tế, đó là các lái xe đỗ xe ở trạm xăng và bơm xăng vào xe
Hình 2.3: Minh họa công cụ YASPER phát triển trên công nghệ Net
Ngoài ra, trên môi trường Unix, Linux, việc phát triển công cụ mô phỏng cho Petri-net cũng được tiến hành Tuy nhiên, các môi trường này không phổ biến như môi trường Windows, nên vấn đề nghiên cứu, ứng dụng cho Petri-net là một vấn đề lâu dài
2.3 Ngôn ngữ mô phỏng GPSS và công cụ GPSS World
Giới thiệu sơ lược về ngôn ngữ GPSS [5],[8],[14], một ngôn ngữ mô phỏng chuyên dụng với các khái niệm và đặc trưng
2.3.1 Giới thiệu về ngôn ngữ GPSS
Với hai ngôn ngữ căn bản: C và Pascal, cùng với giải thuật đã có, chúng ta có thể lập trình để tìm ra kết quả cho bài toán mô phỏng Tuy nhiên, với sự phức tạp của thuật toán, và các cơ sở dữ liệu, ngôn ngữ mô phỏng chuyên dụng ra đời là một đòi hỏi tất nhiên cho bài toán mô phỏng
Trang 32Chúng được thiết kế sao cho gần gũi với tư duy tự nhiên của con người, thuận tiện cho việc thao tác, đơn giản cho việc viết câu lệnh khai báo cấu trúc, tham số liên quan khi lập trình Đồng thời, chúng tích hợp sẵn bên trong (dạng Built-in) những hàm chức năng thông dụng liên quan đến bài toán mô phỏng, nhằm giảm thời gian lập trình cho người sử dụng
2.3.2 Sự ra đời của ngôn ngữ GPSS
Khoảng thập niên 1960, Geoffrey Gordon ở hãng IBM đã phát triển ngôn ngữ GPSS - Gordon’s Programmable Simulation System, sau này đổi thành General Purpose Simulation System [1], [5-9], [14], loại ngôn ngữ mô phỏng các sự kiện rời rạc GPSS World là một dạng khác của GPSS dành cho máy tính cá nhân (GPSS/PC - General Purpose Simulation System/Personal Computer)
Công bố năm 1984, GPSS/PC nhanh chóng đạt được thành công lớn, cũng như đem lại tiết kiệm hàng triệu đô la cho người dùng Minh chứng cụ thể là việc khai thác GPSS World trên nền hệ điều hành Windows đã mở rộng khả năng của nó trong môi trường liên mạng Internet toàn cầu
Ngôn ngữ mô phỏng GPSS tạo ra các giao dịch (Transaction) và quản lý chúng theo giai đoạn, hoặc theo các khối (Block) Đây là đặc điểm khác biệt của ngôn ngữ GPSS Một Transaction liên quan đến hai khái niệm sau:
- CEC: Current Event Chain - Chuỗi sự kiện hiện tại
- FEC: Future Event Chain - Chuỗi sự kiện tương lai
Mỗi Transaction được quản lý trên một ô nhớ khác nhau, nó có thể được thực hiện ngay nếu gặp CEC, hoặc chờ thêm các sự kiện FEC thì sẽ thực hiện Từ cửa sổ màn hình lập trình GPSS, chúng ta có thể quan sát được vị trí của các Transaction này thông qua CEC/FEC
Trang 33Hình 2.4: Minh họa cửa sổ làm việc của GPSS World
2.3.3 Những ưu điểm của ngôn ngữ GPSS
GPSS World có một ưu điểm là tính trong suốt với các dẫn chứng cụ thể như sau:
- Đầu tiên, nếu chúng ta mô phỏng theo dạng "hộp đen" (Black-Box), chúng ta không thể quan sát bên trong hộp này có những thành phần gì, chúng hoạt động ra sao, tương tác với nhau thế nào Điều này dẫn đến việc chúng ta không thể kiểm soát được hộp đen ngay tại thời điểm làm việc, cũng như không thể dự đoán được hành vi của nó trong tương lai Đó là điều không ai muốn
- Thứ hai, chỉ thật sự có lợi cả về mặt mục tiêu cũng như về vấn đề thời gian khi và chỉ khi chúng ta mô phỏng thành công Trên cơ sở đó, khi có sự thay đổi nhân lực, những thành viên mới đến làm việc sẽ hiểu được và tiếp quản được những công việc đã làm, cũng như phát triển tiếp sau này
- Thứ ba, một vấn đề nhỏ nhưng có ý nghĩa khi mô phỏng Đó là làm sao chúng ta có thể nhận thấy động lực học bên trong (Internal Dynamics) hệ thống tại thời điểm quyết định khi một người có kinh nghiệm tiến hành mô phỏng
Trang 34GPSS World được thiết kế với những điểm mạnh có thể liệt kê như:
- Là ngôn ngữ hướng đối tượng, chạy được trên nhiều nền tảng hệ điều hành khác nhau như Windows, Linux
- Hình ảnh hóa các mô hình, từ đó giúp người dùng hiểu rõ, nắm bắt mô hình tốt nhất có thể, đồng thời sao lưu lại dưới dạng hình ảnh thống kê dễ hiểu
- Khả năng tương tác của nó giúp người dùng dễ dàng tìm hiểu và vận hành các bài toán mô phỏng nhờ giao diện thân thiện
- Tích hợp các cở sở phân tích dữ liệu để tính toán các thành phần trong hệ thống một cách trực quan
- Là công cụ có thể làm nhiều việc khác nhau tại một thời điểm (Multitask) và hoạt động trên cơ sở sử dụng bộ nhớ ảo, do đó không tốn kém tài nguyên của máy tính
2.3.4 Các ứng dụng của công cụ mô phỏng GPSS World
Các ứng dụng chính của công cụ mô phỏng GPSS World có thể kể đến như:
- Các hệ thống chăm sóc khách hàng như: Call Center, dịch vụ 1080, 1900…
- Giao thông vận tải (phổ biến nhất là mô hình bảo trì máy bay 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…
Trang 35Ví dụ một chương trình GPSS đơn giản:
; GPSS World Sample File - BOOKMRK.GPS
170 * Simple Telephone Simulation *
180 * Time Unit is one second *
200 Sets STORAGE 2
210 Transit TABLE M1,100,100,20 ;Transit times
220 GENERATE 100,60 ;Calls arrive
230 Again GATE SNF Sets,Occupied ;Try for a line
240 ENTER Sets ;Connect call
250 ADVANCE 180,60 ;Speak for 3+/-1 min
260 LEAVE Sets ;Free a line
270 TABULATE Transit ;Tabulate transit time
280 TERMINATE 1 ;Remove a transaction
290 Occupied ADVANCE 300,60 ;Wait 5 minutes
300 TRANSFER ,Again ;Try again
310 *******************************************************
Chương trình mô phỏng hoạt động đơn giản của hệ thống máy điện thoại (Telephone) với hai đường dây ngoài (External Lines), cuộc gọi từ ngoài vào xuất hiện với khoảng thời gian 100±60 giây, thời gian của cuộc gọi là 3±1 phút, người
Trang 36gọi sẽ quay số để gọi lại sau khoảng thời gian 5±1 phút Câu hỏi đặt ra là hệ thống Telephone trên hoạt động trong bao lâu thì hoàn thành 200 cuộc gọi?
2.3.5 GPSS World Student Version
Để mô phỏng hệ thống phục vụ đám đông bằng ngôn ngữ mô phỏng GPSS cần cài đặt một công cụ hỗ trợ ngôn ngữ này Có nhiều phiên bản khác nhau GPSS World Personal Version, GPSS World Commercial Version, GPSS World Student Version… do công ty Minuteman software cung cấp [23]; trong đó phiên bản GPSS World Student Version là phiên bản được cung cấp miễn phí nhằm mục đích học tập và nghiên cứu; Để tiến hành nghiên cứu và thực hiện mô phỏng đối với hệ thống phục vụ đám đông, trong luận văn đã sử dụng phiên bản này [24]
Sau khi tải phiên bản miễn phí GPSS World Student Version, tiến hành cài đặt như các phần mềm thông thường
Để mô phỏng một hệ thống phục vụ đám đông vào menu File và tạo một project mới, chọn New model, GPSS World sẽ tạo cho chúng ta một Model Thực hiện viết code chương trình bằng ngôn ngữ GPSS cho hệ thống, thực thi lệnh Create Simulation từ menu Command (hoặc nhấn Ctrl+Alt+S) để GPSS World tiến hành biên dịch codes và tạo một mô phỏng mới Lúc này ở menu Window/Simulation Window sẽ xuất hiện các cửa sổ như: Blocks Window, Facilities Window, Plot Window, Queues Window… cho phép theo dõi quá trình mô phỏng và tính toán Trong menu Command có các lệnh: START, STEP, HALT, CONTINUE để điều khiển quá trình mô phỏng Khi quá trình mô phỏng kết thúc theo mặc định cửa
sổ báo cáo kết quả REPORT sẽ xuất hiện
Trang 37Cửa sổ kết quả REPORT sẽ có dạng như sau:
Hình 2.5: Ví dụ về một cửa sổ Report GPSS World Student Version
2.4 Các công cụ mô phỏng sử dụng ngôn ngữ đặc tả Petri-net
2.4.1 Các khái niệm cơ bản về Petri-net
Petri-net gồm ba thành phần cơ bản: Place, Transition và Directed Arc
Trang 38Hình 2.6: Ví dụ về Petri-net
Place Là các vị trí, biểu thị bởi hình tròn, kí hiệu là vị trí P
Transition Là trạng thái và sự nhảy trạng thái, biểu thị bởi hình chữ nhật
hoặc ô vuông, kí hiệu là trạng thái T
Directed Arc Là các đường dẫn trực tiếp liên kết giữa các vị trí P và các trạng
thái T
Token Là các mã thông báo, nó biểu hiện cho đặc trưng của Place, biểu
thị bởi chấm tròn đen nằm trong Place
Marking Sự phân bố các Token trên các Place
Các đường nối (Arc) sẽ liên kết từ P sang T hoặc ngược lại từ T về P, không bao giờ được nối Arc giữa T với T, hoặc P với P Trong hình trên, ta thấy P1 được coi là Place đầu vào vì nó chứa đường nối nhảy tới trạng thái T1 Còn P4 được coi
là Place đầu ra từ trạng thái T2
Các Place có chứa một số tự nhiên các mã thông báo (Tokens) nào đó Sự sắp xếp, phân bố các Token này trên các Place thì được biết đến với thuật ngữ là Marking, tức là các mặt nạ
Một trạng thái trong hệ Petri-net được gọi là Fire (cháy) khi xuất hiện Token trên toàn bộ các đường dẫn liên kết đầu vào (Arc đầu vào) Chúng ta thấy rằng: Việc thực thi trong toàn hệ thống Petri-net là một quá trình không thể xác định rõ ràng, khi có rất nhiều trạng thái Transition cùng xảy ra tại một thời điểm, trong số các Transition đó, tồn tại một số Transition bị cháy