So sánh giữa P/T net và GPSS

Một phần của tài liệ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 (Trang 42 - 77)

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

Một phần của tài liệ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 (Trang 42 - 77)