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