시뮬레이션검증및타당성확인 (Simulation Verification and Validation)

산업공학
한 줄 정의: 시뮬레이션 모델이 설계한 대로 정확히 구현되었는지(검증)와 실제 시스템을 충분히 정확하게 대표하는지(타당성확인)를 각각 확인하는 절차를 말합니다.

쉽게 풀면

검증(verification)은 "설계도대로 제대로 지었는가"를 확인하는 것이고, 타당성확인(validation)은 "이 건물이 애초에 우리가 원하던 목적에 맞는가"를 확인하는 것에 비유할 수 있습니다. 시뮬레이션에서 검증은 컴퓨터 프로그램이 모델 설계와 논리적으로 일치하게 만들어졌는지, 즉 코드에 버그가 없는지를 확인하는 과정입니다. 타당성확인은 그렇게 만들어진 모델이 실제 시스템의 행동을 충분히 정확하게 재현하는지를 실제 데이터와 비교하며 확인하는 과정입니다. 두 단계 모두 통과해야 시뮬레이션 결과를 믿고 의사결정에 사용할 수 있습니다.

왜 중요한가

시뮬레이션은 실제 시스템을 대신하는 모형이기 때문에, 그 결과를 근거로 한 정책 결정이나 설계 변경은 모델의 신뢰성에 전적으로 의존합니다. 검증과 타당성확인 절차 없이 얻은 결과는 겉보기엔 그럴듯해도 실제와 괴리가 있을 수 있어, 학술 논문과 산업 현장 모두에서 필수적인 절차로 요구됩니다.

논문에서는 이렇게 쓰입니다

"모델의 검증을 위해 극단적 조건 테스트와 추적 기능을 활용하였으며, 타당성확인을 위해 실제 운영 데이터와 시뮬레이션 출력 간의 통계적 비교를 수행하였다."

검증과 타당성확인을 각각 별도의 절차로 수행한 예입니다.

"전문가 검토를 통한 대면 타당성(face validity)을 확보하고, 실제 처리시간 분포와의 카이제곱 검정을 통해 모델의 타당성을 추가로 확인하였다."

정성적 방법과 정량적 통계 검정을 함께 사용해 타당성을 확인한 예입니다.

조금 더 깊게 보면

검증 기법으로는 코드 디버깅, 추적(trace) 분석, 극단적 조건 검사 등이 있으며, 타당성확인 기법으로는 전문가에 의한 대면 타당성 평가, 실제 데이터와의 통계적 비교, 민감도 분석 등이 흔히 사용됩니다. 두 절차는 모델 개발의 특정 시점에 한 번만 수행하는 것이 아니라 개발 과정 전반에 걸쳐 반복적으로 이루어지는 것이 바람직합니다.

주의할 점

검증되었다고 해서 반드시 타당한 것은 아니며, 두 개념은 서로 다른 질문에 답하는 별개의 절차이므로 혼동해서는 안 됩니다.

관련 용어