Dựa vào thuật toán được trình bày trong sơ đồ hình 4.10, mô phỏng hệ thống bằng GPSS World [1], code chương trình như sau:
;Sigment 1 – Mô tả quá trình máy bay hạ cánh ;DOWN
;blok 1
GENERATE 10,5,,,1 ;Khởi tạo tham số trong khoảng 5'=>15'
;cho máy bay hạ cánh
ASSIGN 1,0 ;Xác lập tham số 1 của kênh phục vụ tại thời điểm khởi
Kênh phục vụ λ2
λ1 μ
; tạo là 0, tham số 1 lưu lại số vòng bay ; trong trường hợp máy bay phải bay vòng
Again QUEUE Q_POL ; Nhận yêu cầu hạ cánh vào hàng đợi Q_POL
TEST NE F$POLOSA,1,Busy;Nếu đường băng bận thì đi tới khối Busy
PREEMPT POLOSA,PR ;Đường băng tiếp nhận các máy bay theo sự ưu tiên
ADVANCE 2 ;Đường băng phục vụ trong thời gian 2 phút
DEPART Q_POL ;Lấy yêu cầu ra khỏi hàng đợi Q_POL
RETURN POLOSA ;Giải phóng đường băng
TERMINATE ;blok 2
Busy TEST NE *1,5,term ;Nếu tham số 1 của kênh phục vụ hiện tại bằng 5
;thì đi tới khối term, tức là máy đã bay 5 vòng ;do đó sẽ hạ cánh tại sân bay phụ
ADVANCE 4 ;Thời gian bay 1 vòng
ASSIGN 1+,1 ;Tăng số vòng bay đối với máy bay này
TRANSFER ,Again ;Tiếp tục gửi yêu cầu hạ cánh
term ASSIGN 1,0 ;Máy bay sẽ bay sang sân bay phụ
TERMINATE
;sigment 2 – Mô tả quá trình máy bay cất cánh ;UP
GENERATE 10,2,,,2 ;Khởi tạo tham số trong khoảng 8'=>12' cho máy bay
;cất cánh
QUEUE Q_POL ;Nhận yêu cầu cất cánh vào hàng đợi Q_POL
PREEMPT POLOSA,PR ;Đường băng tiếp nhận các máy bay theo sự ưu tiên
ADVANCE 2 ;Đường băng phục vụ trong thời gian 2 phút
DEPART Q_POL ;Lấy yêu cầu ra khỏi hàng đợi Q_POL
RETURN POLOSA ;Giải phóng đường băng
TERMINATE ;sigment 3
GENERATE 1440 ;1440 = 60*24 nghĩa là thời gian 1 ngày đêm tính
;bằng phút
TERMINATE 1 START 1
Bằng việc thực hiện chương trình này ta nhận được kết quả:
NAME VALUE AGAIN 3.000 BUSY 10.000 POLOSA 10001.000 Q_POL 10000.000 TERM 14.000
LABEL LOC BLOCK TYPE ENTRY COUNT CURRENT COUNT RETRY 1 GENERATE 146 0 0 2 ASSIGN 146 0 0 AGAIN 3 QUEUE 174 0 0 4 TEST 174 0 0 5 PREEMPT 146 0 0 6 ADVANCE 146 0 0 7 DEPART 146 0 0 8 RETURN 146 0 0 9 TERMINATE 146 0 0 BUSY 10 TEST 28 0 0 11 ADVANCE 28 0 0 12 ASSIGN 28 0 0 13 TRANSFER 28 0 0 TERM 14 ASSIGN 0 0 0 15 TERMINATE 0 0 0 16 GENERATE 142 0 0 17 QUEUE 142 0 0
18 PREEMPT 142 0 0 19 ADVANCE 142 0 0 20 DEPART 142 0 0 21 RETURN 142 0 0 22 TERMINATE 142 0 0 23 GENERATE 1 0 0 24 TERMINATE 1 0 0
FACILITY ENTRIES UTIL. AVE. TIME AVAIL. OWNER PEND INTER RETRY DELAY POLOSA 288 0.400 2.000 1 0 0 0 0 0 QUEUE MAX CONT. ENTRY ENTRY(0) AVE.CONT. AVE.TIME AVE.(-0) RETRY Q_POL 30 28 316 0 12.521 57.058 57.058 0 FEC XN PRI BDT ASSEM CURRENT NEXT PARAMETER VALUE 290 2 1440.749 290 0 16
291 1 1445.367 291 0 1 292 0 2880.000 292 0 23
Dựa vào những kết quả xuất ra từ mô phỏng hệ thống hoạt động liên tục trong 24h bằng GPSS World, ta có:
- Số lượng máy bay cất cánh: 142
- Số lượng máy bay cất cánh thành công: 142 - Số lượng máy bay hạ cánh: 146
- Số lượng máy bay hạ cánh thành công: 146
- Số lượng máy bay hạ cánh, mà phải thực hiện chuyến bay vòng : 28 - Số lượng máy bay hạ cánh không thành công: 0
- Hệ số sử dụng đường băng: 40
4.2.5 Mô phỏng bài toán bằng mô hình Petri Net
Dựa vào thuật toán được trình bày trong sơ đồ hình 4.10, ta có thể mô hình hóa bằng mạng Petri trình bày ở hình 4.11.
Mạng Petri được xây dựng như sau: Gồm một bộ 5 thành phần: PN=(P,T,F,W,M0) Trong đó: - Tập các place P={p1,p2,p3,…,p19} - Tập các transition T={t1,t2,t3,…, t15} - Tập các cung (Arcs) F ={(p1,t1);(t1,p14);(t1,p3);(p2,t2) ;(p3,t2);(t2,p4); (t2,p15); (p3,t3);(t3,p5);(t3,p11); (p4,t4);(p5,t4); (t4;p19); (t4,p5); (t4,p12); (p4;t5); (t5,p6); (p6,t6);(p5,t6); (t6,p17); (t6,p5);(t6; p12);(p6,t7); (t7, p7); (p5,t8);(P7,T8) (t8,p5); (t8,p12); (t8,p16); (p7,t9); (t9,p8); (p5,t10); (p8,t10); (t10,p5);(t10,p12); (t10,p18); (p8,t11); (t11,p9); (p5,t12); (p9,t12); (t12,p5) ; (t12,p12);(p9,t13); (t13,p10); (p5,t14);(p10,t14);(p10,t15);(t15,P13)} - Hàm trọng số W: F 1
- Marking khởi tạo M0=(m1,m2,0,0,1,0,…,0) với m1, m2 cần thay đổi theo thời gian mô phỏng.
Để dễ hiểu có thể thấy mối liên hệ tương ứng như sau:
Các token
- Các token trong các place đại diện cho các yêu cầu cất cánh, hạ cánh của máy bay
Các place
- p1: chứa giá trị khởi tạo là số các yêu cầu cất cánh - p2: chứa giá trị khởi tạo là số các yêu cầu hạ cánh - p14: lưu số lượng máy bay gửi yêu cầu cất cánh - p11: lưu số lượng máy bay đã cất cánh thành công - p15: lưu số lượng máy bay gửi yêu cầu hạ cánh - p12: lưu số lượng máy bay đã hạ cánh thành công - P13: lưu số máy bay phải hạ cánh ở sân bay phụ
- p5: đỉnh chứa token là điều kiện cần để kích hoạt t3, t4, t6, t8, t10. Nó có vai trò như là thông báo về tình trạng đường băng. Nếu tại p5 có token có nghĩa đường bằng “rảnh”, ngược lại có nghĩa đường băng “bận”
- p17: lưu số máy bay hạ cánh thành công sau khi thực hiện bay thêm 1 vòng - p16: lưu số máy bay hạ cánh thành công sau khi thực hiện bay thêm 2 vòng - p18: lưu số máy bay hạ cánh thành công sau khi thực hiện bay thêm 3 vòng
- Các pi còn lại có vai trò trung gian là điều kiện đầu vào, đầu ra của các transition tj.
Các transition
- t1: đại diện cho bộ sinh yêu cầu cất cánh gửi đến hệ thống - t2: đại diện cho bộ sinh yêu cầu hạ cánh gửi đến hệ thống
- t3, t4, t6, t8, t10, t12, t14: có vài trò như các phương tiện phục vụ (tức đường băng), các yêu cầu được giữ lại 2 phút (tương ứng với máy bay chiếm giữ đường băng trong 2 phút để phục vụ cho việc cất cánh hoặc hạ cánh).
- t5, t7, t9, t11, t13: các yêu cầu được giữ lại trong 4 phút tương ứng với trường hợp máy bay hạ cánh phải bay vòng, lần lượt tương ứng sự kiện máy bay hạ cánh phải bay thêm 1 vòng, 2 vòng, 3 vòng, 4 vòng, 5 vòng trên không trung.
- t15: tương ứng sự kiện máy bay hạ cánh sau khi bay 5 vòng mà vẫn không được quyền hạ cánh thì máy bay đó sẽ hạ cánh ở sân bay phụ.
Mô tả hoạt động chương trình theo mô hình Petri Net hình 4.11
- Transition t1 hoạt động theo thời gian và xác suất như đã cho trong tham số đầu vào của t1, nó sẽ lấy một token (hay một yêu cầu cất cánh) từ p1, đặt một token vào p3 và p14 (đếm số yêu cầu cất cánh gửi đến hệ thống), đồng thời t3 được kích hoạt.
- Transition t2 hoạt động theo thời gian và xác suất như đã cho trong tham số đầu vào của t2, nó sẽ lấy một token (hay một yêu cầu hạ cánh) từ p2, đặt một token vào p4 và p15 (đếm số yêu cầu hạ cánh gửi đến hệ thống), đồng thời t4 được kích hoạt. Nhưng do t3 có chỉ số nhỏ hơn nên t3 được ưu tiên hoạt động trước (ưu tiên cho máy bay cất cánh được sử dụng đường băng trước), sau thời gian trễ là 2 phút một yêu cầu cất cánh thành công sẽ được ghi nhận tại p11 (bộ đếm số máy bay cất cánh thành công) và một thông báo (token) sẽ được gửi đến p5 báo hiệu đường băng “rảnh”. Nếu tại p4 có yêu cầu hạ cánh thì yêu cầu này sẽ được đáp ứng, tức là t4 hoạt động và sẽ ghi nhận máy bay hạ cánh thành công tại p12 (bộ đếm số máy bay hạ cánh thành công), đồng thời gửi một thông báo đến p5 (báo hiệu đường băng “rảnh”), ngược lại nếu tại p5 không có (token) thông báo đường băng “rảnh” thì máy bay phải bay một vòng trên không trung (tức t5 hoạt động). Sau đó, nếu đường băng “rảnh” (p5 có token) thì máy bay sẽ được hạ cánh nghĩa là t6 hoạt động và ghi nhận máy bay hạ cánh thành công tại p12, p17 ghi nhận thêm một máy bay hạ cánh thành công sau 1 vòng bay thêm, đồng thời gửi một thông báo đến p5, còn nếu đường băng vẫn còn “bận” thì máy bay tiếp tục bay vòng thứ 2 trên không, tức là t7 hoạt động. Tương tự như vậy, nếu máy bay bay đến 5 vòng mà vẫn chưa nhận được quyền hạ cánh thì nó sẽ phải hạ cánh tại một sân bay phụ, trong trường hợp này t15 hoạt động và ghi nhận trường hợp máy bay hạ cánh không thành công tại p13.
Để có thể có kết quả kiểm chứng, tôi đã thực hiện mô phỏng với các xác suất thời gian xuất hiện yêu cầu khác nhau cho các tham số đầu vào.
Thực nghiệm 2.1: Cho các tham số đầu vào như sau: - Truyền các giá trị cho các tham số đầu vào của t1 là:
Bảng 4.9. Các giá trị tham số đầu vào của t1
1 Đầu vào p1
2 Đầu ra p3, p14
3 Thời gian và xác suất xuất hiện yêu cầu cất cánh (10±2) 10 phút – với xác suất 0.400 11 phút – với xác suất 0.200 12 phút – với xác suất 0.100 8 phút – với xác suất 0.100 9 phút – với xác suất 0.200
- Truyền các giá trị cho các tham số đầu vào của t2 là:
Bảng 4.10. Các giá trị tham số đầu vào của t2
1 Đầu vào p2
2 Đầu ra p4, p15
3 Thời gian và xác suất xuất hiện yêu cầu hạ cánh (10± ) 10 phút – với xác suất 0.1200 11 phút – với xác suất 0.1100 13 phút – với xác suất 0.1100 14 phút – với xác suất 0.1100 15 phút – với xác suất 0.1100 5 phút – với xác suất 0.1100 6 phút – với xác suất 0.1100 7 phút – với xác suất 0.1100 9 phút – với xác suất 0.1100
Mô phỏng trong thời gian 24 h, số lượng token khởi tạo trên p1 và p2 là 500 tokens
Kết quả phân tích trasition t
Hình 4.12. Cửa sổ kết quả trên các transition
Kết quả phân tích place p
Từ 2 bảng phân tích trên, ta có các kết quả đạt được khi mô phỏng hệ thống hoạt động liên tục trong một ngày đêm (24 giờ) như sau:
- Số lượng máy bay yêu cầu hạ cánh (p15): 146
- Số lượng máy bay hạ cánh thành công sau khi bay thêm 1 vòng (p17): 32 - Số lượng máy bay hạ cánh thành công sau khi bay thêm 2 vòng (p16): 2 - Số lượng máy bay hạ cánh thành công sau khi bay thêm 3 vòng (p18): 0 - Tổng số máy bay hạ cánh thành công (p12): 146
- Số lượng máy bay hạ cánh không thành công (p13): 0 - Số lượng máy bay yêu cầu cất cánh (p14): 146
- Số lượng máy bay cất cánh thành công (p11): 146
Hệ số sử dụng của đường băng cho việc cất cánh và hạ cánh: là tổng hệ số sử dụng tại t3, t4, t6, t8, t10, t14:
(292/1441 +224/1441 +64/1441+4/1441)*100%= 40.52%
Thực nghiệm 2.2: Cho các tham số đầu vào như sau: - Truyền các giá trị cho các tham số đầu vào của t1 là:
Bảng 4.11. Các giá trị tham số đầu vào của t1
1 Đầu vào p1
2 Đầu ra p3, p14
3 Thời gian và xác suất xuất hiện yêu cầu cất cánh (10±2) 8 phút – với xác suất 0.200 9 phút – với xác suất 0.200 10 phút – với xác suất 0.200 11 phút – với xác suất 0.200 12 phút – với xác suất 0.200 - Truyền các giá trị cho các tham số đầu vào của t2 là:
Bảng 4.12. Các giá trị tham số đầu vào của t2
1 Đầu vào p2
2 Đầu ra p4, p15
3 Thời gian và xác suất xuất hiện yêu cầu hạ cánh (10± ) 5 phút – với xác suất 0.100 6 phút – với xác suất 0.100 7 phút – với xác suất 0.100 9 phút – với xác suất 0.100 10 phút – với xác suất 0.200 11 phút – với xác suất 0.100 13 phút – với xác suất 0.100 14 phút – với xác suất 0.100 15 phút – với xác suất 0.100
Tại t3,t4, t6, t8, t10, t12 , t14 các yêu cầu sẽ được để lại trong 2 phút, vì đặt tham số thời gian là 2 phút.
Tại t5, t7, t9, t11, t13 các yêu cầu được để lại trong 4 phút, vì đặt tham số thời gian là 4 phút.
Mô phỏng trong thời gian 24 h, số lượng token đầu tiên trên p1 và p2 là 500 tokens
Kết quả phân tích trasition t
Hình 4.14. Cửa sổ kết quả trên các transition
Kết quả phân tích place p
Hình 4.15. Cửa sổ kết quả trên các place
Từ 2 bảng phân tích trên, ta có các kết quả đạt được khi mô phỏng hệ thống hoạt động liên tục trong một ngày đêm (24 giờ) như sau:
- Số lượng máy bay yêu cầu hạ cánh (p15): 144
- Số lượng máy bay hạ cánh thành công sau khi bay thêm 1 vòng (p17): 32 - Số lượng máy bay hạ cánh thành công sau khi bay thêm 2 vòng (p16): 1 - Số lượng máy bay hạ cánh thành công sau khi bay thêm 3 vòng (p18): 0 - Tổng số máy bay hạ cánh thành công (p12): 144
- Số lượng máy bay hạ cánh không thành công (p13): 0 - Số lượng máy bay yêu cầu cất cánh (p14): 142
- Số lượng máy bay cất cánh thành công (p11): 142
Hệ số sử dụng của đường băng cho việc cất cánh và hạ cánh: là tổng hệ số sử dụng tại t3, t4, t6, t8, t10, t14:
(284/1441+222/1441+64/1441+2/1441)*100%= 39.69%
Như vậy, khi thay đổi các xác suất xuất hiện yêu cầu cất cánh và xác suất xuất hiện yêu cầu hạ cánh theo bảng phân phối xác suất theo thực nghiệm 2 cho kết quả tốt hơn. Từ các kết quả đạt được theo 3 phương pháp trên, ta có bảng so sánh sau:
Bảng4.13. So sánh các kết quả đạt được đối với 3 phương pháp
Tiêu chí Lý thuyết
hàng đợi GPSS World TNET
Số lượng máy bay yêu cầu cất cánh 144 142 142
Số lượng máy bay cất cánh thành
công 144 142 142
Số lượng máy bay yêu cầu hạ cánh 144 146 144
Số lượng máy bay hạ cánh thành
công 144 146 144
Số lượng máy bay hạ cánh phải thực hiện chuyến bay vòng
Không tính
được 28 33
Số lượng máy bay hạ cánh không thành công
Không tính
được 0 0
Hệ số sử dụng của đường băng cho
việc cất cánh- hạ cánh 40% 40% 39.69%