큐 시뮬레이션 모델 정리
시뮬레이션 설명
이 시뮬레이션은 태피 상점에서 고객의 도착과 서비스 제공 과정을 큐 자료구조를 사용해 모델링합니다. 고객은 도착 시간이 랜덤하게 결정되고, 서비스 시간이 또한 랜덤하게 발생합니다. 시뮬레이션은 최대 40분 동안 진행됩니다.
프로그램 구성 요소
- 고객 도착: 매 분마다 1에서 4 사이의 난수를 발생시켜, 4가 나오면 새로운 고객이 도착한다고 가정합니다.
- 서비스 시간: 각 고객이 도착하면 1에서 10 사이의 난수로 서비스 시간이 결정됩니다.
- 큐: 고객이 도착했을 때 서비스가 진행 중이면, 고객은 큐에 대기합니다. 서비스가 끝나면 큐에 있는 고객이 차례로 서비스받습니다.
- 시간 흐름: 시뮬레이션은 1분 단위로 진행되며, 총 40분 동안 각 고객의 도착, 대기, 서비스가 이루어집니다.
출력 통계
- 전체 통계:
- 평균 큐 대기 시간: 고객들이 대기한 시간의 평균.
- 평균 서비스 시간: 고객들의 서비스 시간이 얼마나 걸렸는지 평균.
- 전체 서비스 시간: 모든 고객에 대한 서비스 시간을 합한 값.
- 전체 고객 수: 시뮬레이션 동안 발생한 고객의 총 수.
- 개별 고객 통계:
- 도착 시간: 고객이 큐에 도착한 시간.
- 시작 시간: 고객의 서비스가 시작된 시간.
- 대기 시간: 고객이 도착한 시간과 서비스가 시작된 시간 사이의 대기 시간.
- 서비스 시간: 고객의 서비스에 소요된 시간.
알고리즘 흐름
current_time
변수를 사용해 시뮬레이션 시간을 1분 단위로 증가시킵니다.
- 매 분마다 난수를 발생시켜 고객 도착 여부를 결정하고, 도착 시 고객을 큐에 추가합니다.
- 서비스 중인 고객이 있는지 확인하고, 없으면 큐에서 고객을 꺼내 서비스를 시작합니다.
- 고객이 서비스가 끝나면 통계 데이터를 기록하고, 다음 고객을 서비스합니다.
- 시뮬레이션이 끝난 후 각 고객의 대기 시간, 서비스 시간 등을 바탕으로 통계를 계산하고 출력합니다.
시간 복잡도
- 시간 복잡도: O(n), 여기서 n은 고객 수입니다. 시뮬레이션은 매 분마다 한 번씩 고객을 처리하며, 각 고객에 대해 도착 여부와 서비스 시간을 확인하므로 시뮬레이션 시간 동안 선형적으로 작동합니다.
- 공간 복잡도: O(n), 큐에 저장되는 고객 수에 비례합니다. 큐에는 동시에 대기하는 고객들이 저장되므로 고객 수에 비례한 메모리를 사용합니다.