Bảng 2.1 So sánh giữa Petri net và GPSS
Petri net GPSS
Đặc điểm
- Ngôn ngữ đặc tả toán học, dựa trên lý thuyết về tập hợp
- Mô tả các thói quen, các quá trình chuyển đổi trong hệ thống rất chi tiết
- Cung cấp các chú thích dạng đồ họa cho người dùng
- Ngôn ngữ lập trình hướng đối tượng
- Tạo ra các Transaction và quản lý chúng theo giai đoạn, hoặc theo Block
- Giao diện đồ họa người dùng - Tích hợp các hàm mật độ xác suất trong cơ sở dữ liệu
Ứng dụng
- Phân tích hoạt động của các hệ thống phân tán
- Phân tích luồng công việc trong thực tế
- Phân tích dữ liệu - Thiết kế phần mềm
- Mô phỏng các hệ thống hàng đợi như Call Center, bãi đậu xe, sân bay,…
- Đánh giá hoạt động trong mạng máy tính
Công cụ phát triển
- Ngôn ngữ lập trình C, C++ - Ngôn ngữ lập trình Java, viết ra dưới dạng Applet, chạy trên môi trường Java
- Ngôn ngữ lập trình Matlab, viết dưới dạng tích hợp trong môi trường Matlab - Ngôn ngữ lập trình GPSS - Công cụ GPSS World, - GPSS/PC, GPSS/H … 2: :
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 như: Ngôn ngữ lập trình Matlab; Ngôn ngữ lập trình Java; Ngôn ngữ lập trình C++ và bộ công cụ Visual Studio.net. Mỗi công cụ, ngôn ngữ có những ưu điểm riêng.
Giới thiệu ngôn ngữ GPSS và công cụ GPSS World, một ngôn ngữ mô phỏng chuyên dụng với các khái niệm và đặc trưng; sự ra đời của ngôn ngữ GPSS; những ưu điểm của ngôn ngữ GPSS; các ứng dụng của công cụ mô phỏng GPSS World.
GPSS World Student Version, ưu n
s .
-
- - -
Chương 3. SỬ DỤNG GPSS VÀ PETRI NET
TRONG BÀI TOÁN MÔ PHỎNG HỆ THỐNG HÀNG ĐỢI 3.1. Mô phỏng bài toán hàng đợi không ưu tiên
3.1.1. Phát biểu bài toán
Số xe cẩu hàng tại một nhà máy trong mỗi ca làm việc có 2 chiếc. Người điều hành nhận được đơn đặt hàng (yêu cầu) từ phía người bán hàng để cẩu hàng lên các xe chở hàng đi đến nơi tiêu thụ. Thời gian trung bình của một đơn đặt hàng là 5±4 phút. Khi nhận được đơn đặt hàng, người điều hành sẽ gọi cho một trong số 2 xe cẩu với xác xuất 0.5 (không có chế độ ưu tiên hay phân biệt đối với các xe), nếu xe đó đang rảnh, sẽ được yêu cầu phục vụ đơn đặt hàng đó, còn ngược lại, người điều hành sẽ gọi điện hỏi xe cẩu thứ hai, và cứ như thế, người điều hành liên tục gọi hỏi hai xe cho đến khi có xe đầu tiên rảnh, để phục vụ đơn đặt hàng đó. Mỗi lần gọi điện cho 1 lái xe cẩu, người điều hành sẽ mất đúng 1 phút. Người điều hành cho phép mình nhận đến 5 đơn đặt hàng một lúc, còn sau đó nếu còn tiếp tục có đơn đặt hàng, khách hàng sẽ bị từ chối. Mỗi xe cẩu hàng phục vụ khách hàng hết thời gian 12±8 phút.
Hãy đưa ra mô hình của việc điều hành xe cẩu tại nhà máy này trong thời gian 60 giờ đồng hồ liên tục. Hãy tính số đơn đặt hàng được phục vụ và số đơn đặt hàng bị từ chối. Xác định hệ số sử dụng của các xe cẩu.
3.1.2. Phân tích bài toán
Mô phỏng điều kiện bài toán theo hình vẽ 3.1:
Hình 3.1 Mô phỏng điều kiện bài toán xe cẩu trên
Bài toán yêu cầu tính số đơn đặt hàng được phục vụ và số đơn đặt hàng bị từ chối trong thời gian 60 giờ liên tục. Các hệ thống công việc, hoặc xác suất từ chối trong hệ thống, trong việc xác lập phương thức trạng thái của công việc.
3.1.3. Phân tích kết quả của bài toán bằng lý thuyết hàng đợi
Mô hình cấu trúc phân tích phù hợp với mô hình cấu trúc mẫu và thể hiện trong hình 3.2:
μ
λ
μ
Hình 3.2 Mô phỏng điều kiện bài toán xe cẩu
: λ:
Mô hình đã cho được thiết lập theo mô hình hàng đợi theo dạng М/M/K/m (số kênh K=2, độ dài trình tự nhất định m=5). Để tính toán mô hình trong đặc tính chi tiết sau: xác xuất hệ thống làm việc Р0 và xác suất từ chối P [2],[3].
1 1 1 1 0 ] ; ) 1 ( ! ) 1 ( 1 1 [ K j c c m c K j K K j P 0 !K P K P m m K tc Với K=2, m=5 ta được: 1 6 2 0 ] ) 1 ( 2 ) 1 ( 1 [ c c P 7 0 6 2 P tc P Hệ số sử dụng ρ được xác lập trong hệ thống là
Tốc độ trung bình nhận các yêu cầu đơn hàng trong hệ thống λ thời gian trung bình phục vụ mỗi yều cầu x. Trong bài toán đã cho thời gian trung bình của một đơn đặt hàng là 5 phút, nên
5
1, thời gian phục vụ 12 phút, nên x= 12 (
12 1
)
Do vậy việc tính toán đặc tả hàng hóa với điều kiện, để ổn định hệ thống, thời gian làm việc của hệ thống trong trường hợp này không ảnh hưởng đến sự đánh giá của xác suất.
Số đơn đặt hàng trong 60h sẽ là: 3600/5=720
Số đơn đặt hàng được mỗi xe phục vụ là: 3600/12=300
Kết quả tính toán nhận được, xác xuất làm việc P0 = 0,03125, và xác xuất từ chối trong hệ thống
P = 0,224
3.1.4. Mô phỏng bài toán bằng công cụ GPSS WORLD
Có hai kênh phục vụ CMO với trình tự nhất định. Hệ thống này phải mô hình theo thuật toán, theo hình vẽ sau:
bài toán xe cẩu
Bắt đầu
QueueLength:= 0 t: = 0 Lost: = 0
Thời gian đơn hàng 5 ± 4
QueueLength:= QueueLength + 1
QueueLength:= 6 ?
Thời gian gọi 1 trong 2 xe cẩu 1 phút
Xe cẩu nào rỗi ? Yêu Cầu phục vụ 12±8 phút t =3600 phút Kết thúc Từ chối đơn hàng Lost: = Lost + 1
Các đơn hàng được tạo ra từ các khối Generate với thời gian ngẫu nhiên 5±4 phút, sau đó các đơn hàng được đưa vào hàng chờ QDisp. Thực thi việc kiểm tra số lượng hàng chờ, và nếu nhận thêm một đơn đặt hàng nữa là sáu hàng chờ nên đơn hàng đó sẽ bị từ chối và tính số từ chối, nếu không tạo khối Transfer với xác xuất 0.5 đặt trong sự kỳ vọng thời gian rỗi của một trong sự phục vụ của hai xe Transport1 và Transport2. Tiếp theo đơn hàng bị từ chối từ các khối hệ thống Terminate. Mô hình vận hành trong thời gian 60 giờ liên tục.
Code của chương trình:
Work of the transport dispatcher Time is in minutes ***************************************************************************************
SAVEVALUE NumInQueue,0 SAVEVALUE Lost,0
GENERATE 5,4 ; Khởi tao yêu cầu 5+-4 phút QUEUE QDisp ; Đưa vào hàng đợi QDisp ; Chiều dài hàng đợi phải nhỏ hơn 5 TEST E Q$QDisp,6,label_1 ; Kiểm tra chiều dài hàng đợi, nếu nhỏ hơn 5 thì đi tiếp, sai thì đi đến label_1
SAVEVALUE Lost+,1 ; Yêu cầu được phục vụ, số đếm tăng lên 1
DEPART QDisp ; Giảm bớt hàng đợi
V_Num VARIABLE Q$QDisp ; Ghi nhớ chiều dài hàng đợi SAVEVALUE NumInQueue,V$V_Num
TERMINATE ; Xóa sự kiện đã được phục vụ xong label_1 ADVANCE 1 ; Tăng số đếm yêu cầu bị từ chối TRANSFER .500,l_Transport1,l_Transport2 ; Sự kiện đến xe01 và xe02 với xác suất bằng nhau là P=0.5
l_Transport1 SEIZE TRANSPORT1 ; Xe01 có thể phục vụ
DEPART QDisp ; Yêu cầu ra khỏi hàng đợi ADVANCE 12,8 ; Yêu cầu được phục vụ trong thời gian 12+-8 phút RELEASE TRANSPORT1 ;giải phóng xe01 sau khi phục vụ xong
l_Transport2 SEIZE TRANSPORT2 ; Xe02 có thể phục vụ tranzakt
DEPART QDisp ; Yêu cầu ra khỏi hàng đợi
ADVANCE 12,8 ; Yêu cầu được phục vụ trong thời gian 12+-8 phút
RELEASE TRANSPORT2 ; Xe01 có thể phục vụ
TERMINATE ; Xóa sự kiện đã được phục vụ xong GENERATE 3600 ; Hệ thống mô phỏng trong thời gian 60h TERMINATE 1
START 1
Kết quả của mô hình:
GPSS World Simulation Report - Var2.54.1 Saturday, June 1, 2013 11:02:46
LABEL LOC BLOCK TYPE ENTRY COUNT CURRENT COUNT RETRY 1 SAVEVALUE 0 0 0 2 SAVEVALUE 0 0 0 3 SAVEVALUE 0 0 0 4 SAVEVALUE 0 0 0 5 GENERATE 734 0 0 6 QUEUE 734 0 0 7 TEST 734 0 0 8 SAVEVALUE 179 0 0 9 DEPART 179 0 0 10 SAVEVALUE 179 0 0 11 TERMINATE 179 0 0 LABEL_1 12 ADVANCE 555 1 0 13 TRANSFER 554 4 0 L_TRANSPORT1 14 SEIZE 290 0 0 15 DEPART 290 0 0 16 ADVANCE 290 1 0
17 RELEASE 289 0 0 18 TERMINATE 289 0 0 L_TRANSPORT2 19 SEIZE 260 0 0 20 DEPART 260 0 0 21 ADVANCE 260 1 0 22 RELEASE 259 0 0 23 TERMINATE 259 0 0 24 GENERATE 1 0 0 25 TERMINATE 1 0 0
FACILITY ENTRIES UTIL. AVE. TIME AVAIL. OWNER PEND INTER RETRY DELAY
TRANSPORT2 260 0.867 12.007 1 730 0 0 0 3 TRANSPORT1 290 0.972 12.064 1 727 0 0 0 1
QUEUE MAX CONT. ENTRY ENTRY(0) AVE.CONT. AVE.TIME AVE.(-0) RETRY
QDISP 6 5 734 179 4.159 20.399 26.978 0
SAVEVALUE RETRY VALUE LOST 0 179.000 NUMINQUEUE 0 5.000 Từ những kết quả nhận được, ta có thể đưa ra các đánh giá sau: 1. Số lượng đơn đặt hàng trong thời gian 60h làm việc liên tục: 734
2. Số lượng đơn đặt hàng bị từ chối trong thời gian 60h làm việc liên tục: 179 3. Xe cẩu 1 (TRANSPORT1) phục vụ được số đơn hàng trong thời gian 60h
liên tục: 290
4. Xe cẩu 2 (TRANSPORT2) phục vụ được số đơn hàng trong thời gian 60h liên tục: 260
5. Tối đa hàng chờ không vượt quá 5 đơn đặt hàng.
3.1.5. Mô phỏng bài toán bằng mô hình mạng Petri
Trong việc tương ứng với thuật toán, thể hiện hình 3.4 tạo ra mô hình theo mạng Petri.
xe cẩu
Phân tích mạng Petri trong bài toán mô phỏng hệ thống xe cẩu.
Yêu cầu xuất hiện từ đỉnh P1 và đi vào hệ thống (lưới Petri) trong thời gian mô phỏng là 3600 đơn vị thời gian (đặt thông số cho đỉnh P1 này để khống chế thời gian mô phỏng). Bộ chuyển đổi T1 xác định thời gian xuất hiện của các trạng thái này trong thời gian từ 5±4 đơn vị thời gian theo một xác xuất cho cụ thể.
Đỉnh P13 phục vụ cho việc theo dõi tổng số yêu cầu xuất hiện và đi vào hệ thống. Vì trong các bộ chuyển đổi T2, T3 và T4 có số thự tự T2 bé hơn nên T2 sẽ có tính ưu tiên cao hơn (đặc điểm của lưới Petri), 5 sự kiện đánh dấu đầu tiên (thiết lập cho P5) sẽ được đi vào T2. T2 sẽ chỉ có các yêu cầu đi qua đúng 5 lần vì thông số đầu vào dàng buộc của T2 là 5 (từ đỉnh mask đầu vào). Cặp T2-P5 chính là cặp quan hệ để giải quyết yêu cầu bài toán không có 5 đơn đặt hàng tại mỗi thời điểm được đi vào hàng chờ, nếu quá 5 sẽ tự động bị từ chối (P4).
Nhóm các đỉnh P14, P15, P16, P17 và T9 sẽ ngăn chặn làm việc bộ chuyển T3 trong khi T2 có thể làm việc. Bộ chuyển dịch T3 thực hiện công việc để đưa yêu cầu vào hàng đợi P2. Bộ chuyển dịch T3 chỉ có thể làm việc trong trường hợp, nếu có một yêu cầu đi ra khỏi hàng đợi P2, khi đó lại có một yêu cầu khác xuất hiện (tối đa 5 yêu cầu). Nếu hết chỗ trong hàng đợi P2 (yêu cầu bị từ chối), khi đó yêu cầu sẽ đến đỉnh P4 qua bộ dịch chuyển T4, vì vậy P4 sẽ là nơi lưu trữ các yêu cầu bị từ chối.
P11 khởi đầu với giá trị thiết lập là 2 (mask), điều này để đảm bảo đồng thời cả 2 xe cẩu (T5, T6) cùng ở trạng thái chờ đợi làm việc. Nếu giá trị của P11 lớn hơn hoặc bằng 1 (có nghĩa là có ít nhất 1 xe cẩu đang rảnh, chờ phục vụ), khi đó T7 sẽ được phép mở và dịch chuyển yêu cầu vào. Từ T7, yêu cầu sẽ được đưa vào P12, từ P12, yêu cầu sẽ được đi xuống tiếp T8 với xác xuất 50-50 cho 2 đỉnh P7, P8 (T8 là dịch chuyển điều khiển với xác xuất 50%). Nếu yêu cầu đi vào P7, ở đó nếu T5 bận (xe cẩu 1 đang phục vụ), khi đó yêu cầu sẽ đi qua T11 và quay ngược lại P12. Nếu tại P7, yêu cầu được phục vụ (T5 rảnh), khi đó yêu cầu phục vụ xong sẽ đi xuống P10 và sau khi phục vụ xong sẽ trả lại 1 giá trị cho P11 để P11 biết được trạng thái sẵn sàng phục vụ của T5. Tương tự như vậy làm việc với nhánh P8, T6, T12.
Các yêu cầu được xe cẩu 01 phục vụ (T5) sẽ được lưu lại ở đỉnh P10, các yêu cầu được xe cẩu 02 phục vụ (T6) sẽ được lưu lại ở đỉnh P9. Ở đỉnh P4 sẽ lưu trữ giá trị các yêu cầu bị tự chối.
Mô tả hoạt động chương trình theo mạng Petri:
Đơn hàng được đưa vào điểm đầu tiên P1 của mạng trong thời gian làm việc 60 h liên tục đi vào T1. T1 được đặt theo các tham số như sau:
Bảng 3.1 Thời gian chờ T1 ở vị trí P1 1 Đầu vào Р1 2 Đầu ra Р3, Р13 3 Thời gian chờ đợi 1 phút. – với xác suất 0.100 9 phút. – với xác suất 0.100 2 phút. – với xác suất 0.100 8 phút. – với xác suất 0.100 7 phút. – với xác suất 0.100 3 phút. – với xác suất 0.100 6 phút. – với xác suất 0.100 4 phút. – với xác suất 0.100 5 phút. – với xác suất 0.200
Ta thấy trong mô hình trên thì Tx được đảm nhiệm như người điều hành để phân phối các đơn đặt hàng và gọi điện cho 2 xe cẩu với xác suất 0.5, thời gian gọi 1 phút, Tx sẽ được đặt tham số như sau:
Bảng 3.2 Thời gian chờ Tx-T8 ở vị trí P12
1 Đầu vào Р12
2 Đầu ra Р7 – với xác suất 0.500 Р8 – với xác suất 0.500 3 Thời gian chờ
đợi
Hai điểm P7, P8 sẽ đi qua hàng T5, T6 chờ đợi để các xe cẩu phục các đơn hàng cho người tiêu dùng với thời gian 12±8 phút . Vì 2 công việc diễn ra song song nên tham số T5 cũng giống T6. Ta có thể đặt các tham số như sau:
Bảng 3.3 Thời gian chờ T5 ở vị trí P7 1 Đầu vào Р7 2 Đầu ra Р10, Р11 3 Thời gian chờ đợi 4 phút. – với xác suất 0.100 20 phút. – với xác suất 0.100 6 phút. – với xác suất 0.100 18 phút. – với xác suất 0.100 8 phút. – với xác suất 0.100 14 phút. – với xác suất 0.100 10 phút. – với xác suất 0.100 16 phút. – với xác suất 0.100 12 phút. – với xác suất 0.200 Bảng 3.4 Thời gian chờ T6 ở vị trí P8 1 Đầu vào Р8 2 Đầu ra Р9, Р11 3 Thời gian chờ đợi 4 phút. – với xác suất 0.100 20 phút. – với xác suất 0.100 6 phút. – với xác suất 0.100 18 phút. – với xác suất 0.100 8 phút. – với xác suất 0.100 14 phút. – với xác suất 0.100 10 phút. – với xác suất 0.100 16 phút. – với xác suất 0.100 12 phút. – với xác suất 0.200
Còn các T2, T3, T4, T7, T9, T10, T11, T12 không có thời gian, tạo ra để thiết lập hàng chờ cho hệ thống.
Trong đó:
P4: Số đơn đặt hàng bị từ chối
P9, P10: Số đơn đặt hàng đã được xe cẩu phục vụ P13: Số đơn đặt hàng từ phía khách hàng
Kết quả chạy của mô hình F-nets: Kết quả phân tích hàng chờ:
Bảng 3.5 Kết quả phân tích hàng chờ T
Kết quả phân tích vị trí các đỉnh P.
Từ những kết quả nhận được, ta có thể đưa ra các đánh giá sau: 1. Số lượng đơn đặt hàng trong thời gian 60h làm việc liên tục: 728
2. Số lượng đơn đặt hàng bị từ chối trong thời gian 60h làm việc liên tục: 134 3. Xe cẩu 1 (TRANSPORT1) phục vụ được số đơn hàng trong thời gian 60h
liên tục: 298
4. Xe cẩu 2 (TRANSPORT2) phục vụ được số đơn hàng trong thời gian 60h liên tục: 291
5. Xác suất từ chối đơn hàng trong mô hình: P = 134 / 728 = 0.19
5, T6:
Bảng 3.7 Thời gian chờ T1 ở vị trí P1 (Khi T1 thay đổi)
1 Đầu vào Р1 2 Đầu ra Р3, Р13 3 Thời gian chờ đợi 1 phút. – với xác suất 0.11 9 phút. – với xác suất 0.11 2 phút. – với xác suất 0.11 8 phút. – với xác suất 0.11 7 phút. – với xác suất 0.11