Petri Net mô phỏng hàng đợi M/M/1

Một phần của tài liệu (LUẬN văn THẠC sĩ) nghiên cứu về hệ thống hàng đợi và các công cụ mô phỏng hệ thống hàng đợi (Trang 47)

- Mạng Petri hình 3.7 gồm 2 transition t1 (sinh sự kiện khách hàng vào hệ thống), t2 (sinh sự kiện khách hàng được phục vụ) và một place P1 là hàng đợi nơi chứa các khách hàng vào hệ thống.Với đồ thị reachability tương ứng biểu diễn trong hình 3.8. Vàsơ đồ tốc độ chuyển đổi trạng thái thể hiện trong hình 2.5, đã trình bày trong mục 2.3.1

Đồ thị reachability có các nhãn bên trong mỗi trạng thái là tokens trong place P1. Sự hoạt động (firing) của t1 sẽ tăng số token trong P1 lên 1 theo tốc độ đến λ (tương ứng với 1 khách hàng đến hệ thống hàng đợi), trong khi sự hoạt động (firing) của t2 sẽ giảm 1 token trong P1 theo tốc độ phục vụ μ (tương ứng với 1 khách hàng ra khỏi hàng đợi đi vào kênh phục vụ).

Rong Hình 3.8. Đồ thị reachability tương ứng Server Khách đến tốc độ  nguyên tắc phục vụ Khách ra tốc độ µ ρ hệ số sử dụng 𝓍 thời gianphục vụ W thời gian đợi

Hàng đợi (queue) P1 t2 t1 … … 0 1 2 k-1 k λ λ λ μ μ μ 0 1 2 k-1 k t1 t1 t1 t2 t2 t2

3.3.3.2. Mạng Petri mô tả hệ thống hàng đợi M/M/1/K

Tương tự với hệ thống M/M/1, chúng ta có thể mở rộng cho mô hình hàng đợi M/M/1/K. Hệ thống được biểu diễn trong Petri Net [20] như sau:

Hình 3.9. Petri Net mô phỏng hàng đợi M/M/1/K

Mạng Petri mô tả hàng đợi M/M/1/K như sau:

- Các token trong các place đại diện cho các khách hàng

- Transition t1 hoạt động tương ứng với sự kiện lấy khách hàng ra khỏi hàng đợi P1 - Place P2 là place trung gian, có vài trò là place đầu vào cho transition t2

- Transition t2 đại diện cho kênh phục vụ.

Mạng Petri được thiết lập đảm bảo:

- Tổng số tokens trong P1 và P2 bằng K - t1 hoạt động theo tốc độ đến λ

- t2 hoạt động theo tốc độ phục vụ μ.

Mô tả hoạt động của mạng:

- Transition t1 hoạt động sẽ lấy 1 token trong P1 và đặt vào P2. Hoạt động này tương ứng với một khách hàng ra khỏi hàng đợi đi vào kênh phục vụ.

- Transition t2 được kích hoạt do place đầu vào P2 có token, sau đó t2 hoạt động sẽ lấy đi 1 token trong P2 và đặt một token vào P1. Hoạt động này tương ứng với một khách hàng được phục vụ, sau đó rời khỏi hệ thống và một khách hàng mới được thêm vào hàng đợi. Như vậy đảm bảo được yêu cầu hệ thống luôn chỉ có tối đa K khách.

3.3.3.3. Mạng Petri mô tả hệ thống hàng đợi M/M/m/K

Để dễ ràng thấy được mối liên hệ giữa mô hình mạng Petri [20] mô tả hệ thống hàng đợi M/M/m/K đã trình bày trong mục 2.3.4 chương 2. Chúng ta có các mô tả tương ứng sau:

- Các token trong các place đại diện cho các khách hàng.

- Transition t1 hoạt động tương ứng với sự kiện khách hàng ra khỏi hàng đợi.

- Transition t2 là một trasition ngay lập tức (chúng bỏ qua thời gian chuyển từ hàng đợi vào kênh phục vụ). Đây là một transition trung gian.

- Transition t3 đại diện cho kênh phục vụ.

K P2 t2 t1 μ λ P1

Mạng Petri được thiết lập đảm bảo:

- Tổng số tokens trong P1 và P2 bằng s=K-m - Tổng số tokens trong P3 và P4 bằng m - Transition t1 hoạt động theo tốc độ đến λ

- Tốc độ hoạt động của t3 là tốc độ phục vụ, tỉ lệ thuận với số các kênh phục vụ hoạt động m4μ (μ: tốc độ phục vụ của một kênh phục vụ, m4: số tokens trong P4)

Hình 3.10. Petri Net mô phỏng hàng đợi M/M/m/K

Mô tả hoạt động của mạng trình bày trong hình 3.10

- Transition t1 hoạt động sẽ lấy 1 token trong P1 và đặt vào P2. Hoạt động này tương ứng với một khách hàng ra khỏi hàng đợi đi vào kênh phục vụ.

- Transition t2 được kích hoạt do place đầu vào P2 có token, sau đó t2 hoạt động sẽ lấy đi 1 token trong P2 và một token trong P3, đặt một token vào P4 và P1. Hoạt động này tương ứng với một khách hàng rời khỏi kênh phục vụ, đồng thời một khách hàng khác sẽ ra khỏi hàng đợi đi vào kênh phục vụ và sau một thời gian ngẫu nhiên một khách hàng sẽ bổ sung vào hàng đợi.

- Transition t3 được kích hoạt do place đầu vào P4 có token, sau một thời gian trễ nào đó t3 hoạt động sẽ lấy đi 1 token trong P4 và đặt một token vào P3. Hoạt động này tương ứng với một khách hàng được đưa vào kênh phục vụ. Như vậy đảm bảo được yêu cầu tại một thời điểm hệ thống chỉ có tối đa m khách hàng được phục vụ.

3.3.4. Các bước phân tích và mô phỏng bài toán trên Petri Nets

Để sử dụng Petri Nets vào mô phỏng hệ thống hàng đợi cần tiến hành các bước sau: Bước 1: Xác định bài toán hay hệ thống hàng đợi cần mô phỏng.

Bước 2: Đo và thu thập hoặc chọn số liệu cần thiết để khảo sát thống kê các số liệu đặc trưng các yếu tố cơ bản của mô hình, tìm thuật toán.

Bước 3: Xây dựng mạng Petri, chạy mô phỏng kiểm chứng 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ế hoặc trong các phương pháp khác. Phân tích kết quả chạy mô phỏng kiểm chứng, nếu cần phải sửa lại phương án đã được đánh giá qua chạy mô phỏng.

t2 t1 s m P1 P2 P3 P4 t3

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.

3.3.5. Một số công cụ dựa trên lý thuyết Petri Nets

Do những ưu điểm vượt trội của Petri Nets đã có rất nhiều công cụ mô hình hóa hệ thống được xây dựng dựa trên lý thuyết Petri Nets. Mỗi một công cụ có một số đặc điểm vượt trội riêng được tổng hợp trong bảng sau:

Bảng 3.8. So sánh một số công cụ Petri Nets

Công cụ Đặc điểm Môi trường

Hỗ trợ PN Thành phần ALPHA/Sim - Các mạng Petri nâng cao - Các mạng Petri với thời gian

- Soạn thảo đồ họa - Mô phỏng nhanh

- Phân tích hiệu năng đơn giản SumOS Solaris MS Windows NT F-net - Các mạng Petri ngẫu nhiên - Các mạng Petri với thời gian

- Soạn thảo đồ họa - Mô phỏng nhanh

- Phân tích hiệu năng đơn giản

- Không gian trạng thái - Phân tích cấu trúc

- Phân tích hiệu năng đơn giản

- Phân tích hiệu năng nâng cao MS Windows OS/2 GreatSPN - Các mạng Petri nâng cao - Các mạng Petri ngẫu nhiên - Các mạng Petri với thời gian

- Soạn thảo đồ họa - Mô phỏng nhanh - Không gian trạng thái - Phân tích cấu trúc

- Phân tích hiệu năng nâng cao Sun Linux Petri.Net Simulator - Các mạng Place/Transition - Các mạng Petri với thời gian

- Trình soạn thảo đồ họa - Mô phỏng nhanh

- Phân tích hiệu năng đơn giản - Các khối hệ thống con MS Windows 98 MS Windows NT MS Windows 2000 MS Windows XP Platform - Các mạng Place/Transition

- Trình soạn thảo đồ họa - Mô phỏng nhanh

Independent Petri Net Editor 2 - Các không gian trạng thái. - Phân tích cấu trúc - Các định dạng tệp và các module phân tích mở rộng. TimeNet - Các mạng Petri nâng cao - Các mạng Place/Transition - Các mạng Petri ngẫu nhiên - Các mạng Petri với thời gian

- Trình soạn thảo đồ họa - Mô phỏng nhanh - Phân tích cấu trúc

- Phân tích hiệu năng đơn giản

- Phân tích hiệu năng nâng cao PC, Linux PC, MS Windows XP WoPeD - Các mạng Place/Transition - Các mạng Workflow

- Trình soạn thảo đồ họa - Trình soạn thảo nguồn lực (các vai trò và các nhóm) - Hỗ trợ tiến trình con - Phân tích ngữ nghĩa - Phân tích định lượng Java Yasper - Các mạng Place/Transition - Các mạng Petri ngẫu nhiên - Các mạng Petri với thời gian

- Trình soạn thảo đồ họa - Mô phỏng nhanh - Các sự rút gọn mạng - Phân tích hiệu năng đơn giản

PC, MS Windows 2000

PC, MS Windows XP

Ngoài ra, còn có rất nhiều các công cụ Petri Nets khác. Trong phạm vi của luận văn không thể trình bày hết. Luận văn chỉ tập trung nghiên cứu về TNET (một phiên bản của FNET) và ứng dụng công cụ này vào mô phỏng các bài toán thực tế. Đây là công cụ được hiện thực dựa trên lý thuyết Petri Nets hỗ trợ các mạng Petri ngẫu nhiên và các mạng Petri thời gian. Công cụ cung cấp một số các tính năng vượt trội như: - Tạo và chỉnh sửa mô hình mô phỏng Petri Nets trong chế độ đồ họa sử dụng chuột và các thành phần đồ họa đã cung cấp sẵn.

- Lưu các mô hình như các tệp và tải các mô hình đã lưu trước đó từ các tệp trên đĩa. - Mô phỏng TNET trong cơ chế tự động, nhanh.

Để tạo một mô phỏng trên TNET, thực hiện như sau:

Bước 1: Tạo một tệp mô hình mới

Vào Файлы, chọn Новый. Xuất hiện cửa sổ soạn thảo mạng Petri sau:

Bước 2: Xây dựng mạng Petri

- Sử dụng các hình được cung cấp trên thanh công cụ để tạo places, transitions, acrs - Thiết lập các thông số cho Pi, Ti bằng cách nháy đúp chuột vào đối tượng cần đặt thông số. Hộp thoại mới sẽ hiển thị cho phép nhập các thông số.

- Đặt chế độ hiển thị và chế độ mô phỏng

Моделирование  Режим, chọn По времени: đặt thời gian mô phỏng Bước 3: Thực hiện mô phỏng

Моделирование  Запустить F9 Bước 4: Xem kết quả mô phỏng

Моделировние  Статистика

- Để hiển thị kết quả phân tích trên các Pi , chọn: Моделировние  Статистика  Позиции - Để hiển thị kết quả phân tích trên các Тi , chọn:

Моделировние  Статистика  Переходы

Ngoài ra, TNET còn cung cấp các trợ giúp trong Подсказка  Содержание

Khi cần mở lại các mô hình đã tạo, chọn:

Файлы  Прочесть F3

Thanh công cụ vẽ

Thanh menu bar

Vùng soạn thảo mạng Petri

3.4. So sánh giữa Petri Nets và GPSS

Sau đây là so sánh một số đặc điểm của Petri Nets và GPSS

Bảng 3.9. So sánh giữa Petri Nets và GPSS

Petri Nets 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 khối (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 các giao thức truyền thông - Thiết kế phần mềm

- Đánh giá hiệu quả hoạt động của hệ thống

- Mô phỏng các chương trình đồng bộ và song song

- Mô phỏng các hệ thống điều khiển công nghiệp; các hệ thống sự kiện rời rạc; các hệ thống bộ nhớ đa xử lý; các hệ thống chịu lỗi…

- Mô phỏng các hệ thống phục vụ đám đông 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 …

Kết luận

Chương 3 giới thiệu về hai ngôn ngữ mô phỏng Petri Nets và GPSS World ngôn ngữ đặc tả liên quan đến bài toán hàng đợi. Mỗi ngôn ngữ có những ưu điểm riêng.

Ngôn ngữ toán học Petri Nets là một ngôn ngữ mạnh để mô tả các hệ thống song song và hệ thống phân tán trong thực tế đời sống xã hội. 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 có những ưu điểm riêng biệt khi giải quyết các bài toán hàng đợi khi chúng làm việc với các giao tác, các khối dựa trên một giải thuật nào đó. Đồng thời, luận văn còn tập trung làm rõ thao tác lệnh của ngôn ngữ GPSS, các lệnh tạo các khối, lệnh khai báo đối tượng, lệnh điều khiển và lệnh vận hành. Các đối tượng trong ngôn ngữ GPSS cũng được phân chia rõ ràng cũng như chỉ ra các đặc trưng của các giao tác và các khối làm việc với giao tác. Về bản chất, ngôn ngữ GPSS hướng đối tượng này làm việc dựa trên các giao tác, tạo ra và quản lý chúng dưới dạng giai đoạn hoặc các khối. Giao tác có thể được coi là một “yêu cầu” hay một “sự kiện” trong bài toán hàng đợi, chúng liên kết với nhau dưới dạng các chuỗi.

Cuối cùng, đưa ra tiến trình chung để tiến hành mô phỏng một hệ thống hàng đợi trên công cụ GPSS World, đó là cần trải qua các giai đoạn phân tích, lập lưu đồ giải thuật, viết mã nguồn, chạy chương trình, sửa lỗi, cho hiển thị kết quả, đánh giá kết quả. Đồng thời, đưa ra một số so sánh vắn tắt về hai ngôn ngữ mô phỏng GPSS và Petri Nets.

Chương 4

ỨNG DỤNG CÔNG CỤ MÔ PHỎNG

VÀO MÔ PHỎNG HỆ THỐNG HÀNG ĐỢI THỰC TẾ

Chương này sẽ tập trung giải quyết các bài toán trong thực tế để làm rõ khả năng áp dụng của ngôn ngữ mô phỏng GPSS và Ptri Nets vào hai bài toán điển hình cho hệ thống hàng đợi không ưu tiên và hệ thống hàng đợi có ưu tiên.

4.1. Mô phỏng hệ thống hàng đợi không ưu tiên

Sau đây là một bài toán thuộc lớp các bài toán về hệ thống hàng đợi không ưu tiên.

4.1.1. Phát biểu bài toán 1

Một điểm giao dịch của một ngân hàng được tổ chức gồm: một bàn tiếp nhận các yêu cầu giao dịch và hai bàn xử lý yêu cầu. Tại bàn tiếp nhận yêu cầu có một nhân viên tiếp nhận các yêu cầu giao dịch của các khách hàng đến với thời gian trung bình của một yêu cầu là 5±4 phút. Sau đó, phân bổ mỗi yêu cầu này đến một trong hai bàn xử lý yêu cầu theo nguyên tắc FIFO với xác suất 0.5 (không có cơ chế ưu tiên), nếu bàn đó “rảnh” thì sẽ xử lý yêu cầu giao dịch, còn ngược lại đơn hàng sẽ được chuyển đến bàn còn lại và cứ thế nhân viên nhận yêu cầu liên tục kiểm tra tình trạng hai bàn xử lý yêu cầu cho đến khi có bàn “rảnh” để thực hiện yêu cầu giao dịch đó. Mỗi lần kiểm tra nhân viên tiếp nhận yêu cầu sẽ mất đúng 1 phút. Nhân viên tiếp nhận có thể nhận đến 5 yêu cầu giao dịch một lúc, sau đó nếu tiếp tục có các yêu cầu giao dịch tiếp theo thì khách hàng sẽ bị từ chối. Mỗi yêu cầu giao dịch được nhân viên tại bàn xử lý yêu cầu thực hiện trong thời gian 12±8 phút.

Để giúp nhà quản lý có được cái nhìn tổng quan về hệ thống và đánh giá được

Một phần của tài liệu (LUẬN văn THẠC sĩ) nghiên cứu về hệ thống hàng đợi và các công cụ mô phỏng hệ thống hàng đợi (Trang 47)

Tải bản đầy đủ (PDF)

(85 trang)