基本等候模式 (M/M/1):(N/N/FCFS)

(M/M/1):(N/N/FCFS) 提示:

客戶以隨機方式 (依卜瓦松分布) 請求服務,由於請求複雜度不一,因此服務者需要隨機時間 (依指數分布) 提供服務,當服務者正在執行某項服務時,其他客戶便必須等候服務者完成前項服務。

    • 服務系統達到穩態時,

      • 客戶進入等候系統人數 λ 為常數。

      • 平均服務客戶人數 μ 為常數。

    • 在任何一個時段,

      • 客戶進入等候系統事件為獨立。

      • 客戶進入等候系統機率相同。

      • 客戶進入等候系統人數與時段長度成正比。

      • 在極短時間內,超過 1 人進入等候系統機率為 0。

應用一

工廠只有一名維修員,維修員負責管理 3 台設備,平均每部設備運轉 6 天即必須維修,設備維修平均需要 2 天時間方能正常運轉。求算:

    1. 維修員閒置機率。

    2. 分別有 1~3 部設備發生維修機率。

    3. 設備等候維修機率。

    4. 服務系統內平均客戶數 L。

    5. 服務系統內平均處理時間 W。

    6. 等候線內平均客戶數 Lq

    7. 等候線內平均處理時間 Wq

rm(list=ls()) options(digits=4) QueuingFullCapacity <- function(lamda, mu, maxNumOfCustomer) { rho <- lamda / mu sumTemp <- 0 for (i in 0:3) { sumTemp <- sumTemp + (rho ^ i) * (factorial(maxNumOfCustomer) / factorial(maxNumOfCustomer - i)) } P0 <- 1/sumTemp Lq <- maxNumOfCustomer - ((lamda + mu) * (1 - P0)) / lamda L <- Lq + (1 - P0) avgLamda <- (maxNumOfCustomer - L) * lamda W <- L / avgLamda Wq <- Lq / avgLamda ans <- c(rho, P0, L, W, Lq, Wq) ans } queuing <- function(maxNumOfCustomer, numOfCustomer, rho, P0) { Pn <- P0 * (rho ^ numOfCustomer) * factorial(maxNumOfCustomer) / factorial(maxNumOfCustomer - numOfCustomer) Pn } avgNumOfCustomer <- 1/6 numOfRequestCanHold <- 1/2 ans <- QueuingFullCapacity(lamda=avgNumOfCustomer, mu=numOfRequestCanHold, maxNumOfCustomer=3) P0 <- ans[2] print(sprintf("維修員閒置機率=%.4f", P0)) print(sprintf("服務系統內平均客戶數=%.4f", ans[3])) print(sprintf("服務系統內平均處理時間=%.4f", ans[4])) print(sprintf("等候線內平均客戶數=%.4f", ans[5])) print(sprintf("等候線內平均處理時間=%.4f", ans[6])) for (i in 1:3) { Pn <- queuing(maxNumOfCustomer=3, numOfCustomer=i, rho=ans[1], P0=P0) print(sprintf("設備 %d 部維修機率=%.4f", i, Pn)) } Pn <- queuing(maxNumOfCustomer=3, numOfCustomer=1, rho=ans[1], P0=P0) print(sprintf("設備等候維修機率=%.4f", 1 - P0 - Pn))

[1] 維修員閒置機率=0.3462 [2] 服務系統內平均客戶數=1.0385 [3] 服務系統內平均處理時間=3.1765 [4] 等候線內平均客戶數=0.3846 [5] 等候線內平均處理時間=1.1765 [6] 設備 1 部維修機率=0.3462 [7] 設備 2 部維修機率=0.2308 [8] 設備 3 部維修機率=0.0769 [9] 設備等候維修機率=0.3077