난수생성 (Random Number Generation)
쉽게 풀면
주사위를 던지면 매번 다른 숫자가 나오듯이, 실제 세상에는 손님이 언제 도착할지, 작업이 얼마나 걸릴지처럼 미리 정확히 알 수 없는 일들이 많습니다. 시뮬레이션에서는 이런 불확실함을 표현하기 위해 컴퓨터로 마치 주사위를 굴리듯 무작위 숫자를 만들어냅니다. 다만 진짜 주사위와 달리 컴퓨터는 정해진 계산 규칙에 따라 숫자를 만들기 때문에, 겉보기에는 무작위처럼 보이지만 사실은 규칙적으로 계산된 값입니다. 난수생성은 시뮬레이션에서 고객 도착 시간이나 서비스 시간처럼 불확실한 값을 표현하기 위해, 특정 확률분포를 따르는 표본을 컴퓨터로 만들어내는 절차입니다.
왜 중요한가
난수생성의 품질은 시뮬레이션 결과의 신뢰성에 직접적인 영향을 미칩니다. 산업공학에서는 도착시간, 서비스시간, 고장시간 등 여러 확률적 요소를 모델링할 때 난수생성이 필수적으로 사용되며, 좋은 난수를 만들어야 시뮬레이션이 실제 시스템의 무작위성을 제대로 반영할 수 있습니다. 시뮬레이션 결과의 신뢰성은 결국 입력값으로 쓰이는 난수의 통계적 품질에 좌우되므로, 난수생성기의 주기와 균등성, 독립성 검증은 시뮬레이션 방법론에서 핵심적으로 다뤄지는 문제입니다.
논문에서는 이렇게 쓰입니다
고객이 도착하는 시간 간격을 실제와 비슷하게 무작위로 만들어냈다는 뜻입니다.
같은 모델이라도 시작점을 바꿔가며 여러 번 실험해 결과가 우연에 좌우되지 않는지 확인했다는 의미입니다.
조금 더 깊게 보면
컴퓨터가 만드는 난수는 사실 정해진 알고리즘에 의해 계산되는 값이므로 엄밀히는 의사난수(pseudo-random number)라고 부릅니다. 흔히 0과 1 사이의 균등분포 난수를 먼저 생성한 뒤, 이를 역함수법 등의 방법으로 변환하여 지수분포, 정규분포 등 원하는 확률분포를 따르는 난수로 만들어 사용합니다. 컴퓨터가 만들어내는 난수는 사실 정해진 수식에 따라 계산되는 의사난수로, 완전히 무작위는 아니지만 충분히 긴 주기와 통계적 성질을 갖추도록 설계되어 실무적으로 무작위처럼 취급됩니다.
주의할 점
난수생성기의 주기가 짧거나 통계적 성질이 나쁘면 시뮬레이션 결과가 편향될 수 있으므로, 검증된 생성기를 사용하는 것이 중요합니다.