본문 바로가기
방송통신대학교 수업

3.4. 대기시간

by 컴터몰라요 2023. 10. 8.

대기행렬 시뮬레이션에서 관심의 대상이 되는 것은 평균 대기행렬 외에도 다른 많은 사항이 있음.

- 고객의 평균 대기시간
-  창구의 평균 휴지시간(고객을 기다리는 창구의 대기시간)
- 평균 대기행렬의 크기(고객 수나 물건 수)
- 고객이 도착하여 서비스를 받고 돌아갈 때까지의 소요시간(체재시간)
- 시뮬레이션 도중 창구가 붐비는 비율(봉사창구의 가동률)
- 시뮬레이션 도중 창구가 한가한 비율(휴지시간 비율)

> 고객들의 평균 대기시간만을 생각.
차가 도착하여 봉사를 받기 위해 평균 얼마나 기다리는가 하는 문제. 기다리는 시간이 오래되면 고객은 짜증이 나게 되고 주유소에 안 옴.

<조건>
• 봉사창구(주유대) : 1대
• 도착형태 : 시간당 평균 15명의 일양분포(분당 1/4명)
• 봉사형태 : 평균 4분의 포아송분포
→ 평균 대기행렬의 길이와 평균 대기시간을 구하라.

ㅇ 풀이
기본문제와 대기시간을 구하는 점만 다름.
먼저 대기시간과 queue의 개념을 예를 들어 설명해 보자.

> 다음과 같이 고객의 도착과 봉사시간이 주어졌다고 가정.
고객  / 도착시간  /  봉사시간
1/0/5
2/1/5
3/3/6
4/5/3

1 도착 후 봉사 > 2 도착 후 대기 > 3 도착 후 대기 > 4 도착 후 대기

고객2=4분
고객3=7분
고객4=11분

이를 더하면 총 대기 시간. 고객들이 전부 총 22분을 기다려야 함.

총 대기 시간을 고객수로 나누면 평균 대기 시간.
22/고객수=22/4=5.5
평균 5.5분을 기다려야 봉사를 받음.

이 문제는 기본문제와 같고
avgwt = totque / totarr
만 추가되므로 알고리즘은 다음과 같음.

알고리즘
// 단일창구 대기행렬 시스템 시뮬레이션, 평균 대기시간 추가
{
queue = 0 // 현재 대기행렬에서 기다리고 있는 사람(차량) 수
totque = 0
// queue의 누적, 전체 고객의 총대기시간
totarr = 0
// 지금까지 도착한 총고객 수
tpump = 0 time = 0 tstep = 1 prarr = 1/4
seed = 35213
mean = 4
tlimit = 100 // 홍시뮬레이션 수행시간
while time <tlimit do
{
// 고객의 남은 봉사시간(단위:분)
// 시뮬레이션의 현재시간 (단위 : 분)
// 시뮬레이션 진행 단위시간(분)
// 고객이 1분 이내에 도착할 확률
// 난수의 초기값
// 평균이 4분인 포아송 확률변수를 구하려 한다.
time = time + tstep
arrive = 0
call random(seed, U)
if Uprarr* tstep then
// 고객의 도착 여부 검사
{ arrive = 1 // 고객이 도착한 경우 1, 고객이 도착하지 않은 경우 0
queue queue + arrive
totarr = totarr + 1 }
// 봉사시간 > 0, 고객의 봉사가 끝나지 않은 경우
if tpump > 0 then
{ tpump = tpump - tstep
if tpump <0 then
tpump = 0
// 고객이 봉사를 마치고 떠났으며
// 현재 대기행렬에 기다리고 있는 고객이 있는 경우
if tpump = 0 and queue #0 then
{ queue = queue - 1
call poissn(seed, mean, p) // 고객의 봉사시간 P를 구한다. tpump = p }
totque = totque + queue // 전체 고객의 총대기시간
} // end of while
aveque = totque/(tlimit/tstep) // 평균 대기행렬 (queue)길이 avgut = totque/totarr // 평균 대기시간 print aveque, totarr

> 결과 살펴보기
평균 대기행렬의 길이는 MEAN QUEUE LENGTH=1.59로 비교적 짧은데, 평균 대기시간인 MEAN WAITING TIME=7.2272727을 보니 약 7분 정도가 나왔기 때문에 상황에 따라 고객에게 지루한 시간이 될 수도 있음.


'방송통신대학교 수업' 카테고리의 다른 글

1.2. 클라우드의 등장 배경  (0) 2023.10.29
1. 클라우드 컴퓨팅의 이해  (1) 2023.10.15
1.4. 확률변수의 발생  (0) 2023.10.01
1.2. 결정적 시뮬레이션  (0) 2023.09.24
1.1. 시뮬레이션의 개요  (0) 2023.09.03