[테마특강] 이산사건 시뮬레이션
김 탁 곤 <>1953년 경북 청도 출생 <>부산대학교 전자공학과 졸업 <>미 애리조나대 졸업(컴퓨터공학박사) <>부산수산대 전자공학과 전임강사 <>미 애리조나 환경연구소 연구 엔지니어 <>미 캔자스대 전기/컴퓨터공학과 조교수 <>한국과학기술원 전기/전자과 부교수 <>한국시뮬레이션학회 운영이사, 편집위원장 <>”시뮬레이션” 및 “인터내셔널 저널 인 컴퓨터 시뮬레이션” 편집부위원장 컴퓨터 시뮬레이션에 대한 일반적인 문제를 서술하고 특히 이산사건 시뮬레이션 discrete event simulation)에 필요한 기술들을 소개한다.
모의실험 등으로 불리고 있는 시뮬레이션은 실존하는 시스템을 직접 사용하는 대신 수학적 모형을 사용하여 여러가지 가상실험을 수행하는 것을 의미한다. 시뮬레이션의 정확한 정의는 “모델링+모델을 이용한 가상실험”이다. 시뮬레이션은 단지 개인용 컴퓨터를 이용하여 소프트웨어적으로 모델을 계산하는 것으로부터 고성능 컴퓨터 및 특수 하드웨어를 사용하여 가상현실감(virt ual reality)까지 느끼게 하는 것 등 실로 다양하다. 최근에는 멀리 떨어진장소에 있는 사람들이 자신의 전략적인 시나리오를 대화식으로 입력하면서 시뮬레이션을 진행하는 분산형 대화식 시뮬레이션(Distributed InteractiveS imulation:DIS)이 군사용 등으로 많이 사용되고 있으며 이들 분산시스템의통 신을 지원하는 표준화된 프로토콜이 발표되었다.
시뮬레이션은 실제 시스템을 사용하는 대신 컴퓨터 모델을 사용함으로써 시간 인력 및 경비를 대폭 절약함과 동시에 신체적 위험부담 없이 시스템에 대한 각종 실험을 할 수 있는 이점이 있다. 이러한 점 때문에 컴퓨터 시뮬레이션은 공학 과학 군사학 등 여러가지 분야에서 널리 사용되고 있다. 가상공장 virtual factory) 시뮬레이션에서는 여러 장소에 흩어져 있는 공장을 실제로 건설하는 대신 컴퓨터 모델을 이용하여 주어진 인적 및 물적자원하에서 예상되는 생산량 등을 예측하고 이들 자원을 최적으로 활용하여 생산량을 극 대화할 수 있는 방법을 고안할 수 있다. 경영혁신(business reengineering) 분야에서는 회사의 조직을 실제로 개편하는 대신 조직과 내부 인력이 협동적 으로 움직이는 프로세스를 컴퓨터로 모델링한 후 시뮬레이션을 통해 그 결과를 평가함으로써 재정적 위험부담 없이 경영혁신에 대한 신뢰성 있는 결론을 낼 수 있다.
컴퓨터를 이용한 시뮬레이션에 소요되는 계산시간은 실제 시스템에서 대응되는 상황이 진행되는 데 걸리는 실시간과는 큰 차이를 보인다. 시뮬레이션에 소요되는 시간이 실제 시스템에서 걸리는 시간과 다르면서 시뮬레이션 소요시간에 아무런 제약조건이 없는 경우를 가상시간 시뮬레이션(virtual time simulation 이라고 부른다. 그러나 실시간 제어시스템의 시뮬레이션이나 훈련 용 시뮬레이터와 같이 모델의 계산이 제한된 시간내에 끝나야 하는 경우의시뮬레이션을 실시간시뮬레이션(real time smiulation)이라고 한다.
시뮬레이션을 이용한 문제 해결에서 가장 중요한 것은 문제의 목적에 맞는적절한 모델이 무엇인지를 먼저 파악해야 한다. 왜냐하면 시뮬레이션의 목적 에 따라 한 시스템이 여러 다른 레벨에서 추상화되어 다른 종류의 모델로 표현되며 이들을 시뮬레이션하는 방법도 각기 다르기 때문이다.
미분방정식 모델을 수치해석하는 연속시간(continuoust time) 시뮬레이션과 유한상태 기계모델을 해석하는 이산시간(discrete time) 시뮬레이션에서는 모델을 일정한 시간 간격(time driven)으로 실행시킨다. 그러나 이산사건(di screte event)시스템 모델의 시뮬레이션은 시간이 경과함에 따라 시뮬레이션 이 진행되는 것이 아니라 시스템 외부 혹은 내부에서 사건이 발생했을 때만 event driven) 모델을 실행시킨다. 이산사건 시뮬레이션에서 사건이란 시스템의 외부 혹은 내부에서 발생하는 추상적인 신호를 말하며, 이산사건이란임 의의 시각에 불규칙으로 일어나는 사건을 의미한다. 이산사건 시뮬레이션은 사건이 일어나지 않은 시각에는 모델에 어떤 계산도 수행하지 않으므로 연속시간 혹은 이산시간 시뮬레이션에 비하여 효율적이며 병렬/분산 컴퓨터시스템 통신시스템, 생산시스템, 교통시스템 등을 설계하고 해석하는 데 사용되며 모의 전자전 및 전자오락게임 등에도 사용된다. 이산사건 시스템 모델은 해석적 모델과 시뮬레이션 모델이 있으며 여기에서의 모델은 시뮬레이션 모델을 의미한다.
이산사건 시스템을 모델링 시뮬레이션하는 방법에는 크게 2가지가 있다. 첫번째 방법은 이산사건 시뮬레이션을 위해 특수하게 개발된 시뮬레이션 언어/ 환경인 GPSS, SIMSCRIPT, SLAM, SIMAN 등을 사용하는 것이고 두번째는 수학 적 형식론을 범용컴퓨터 언어로 구현한 시뮬레이션 환경을 사용하는 것이다.
이들두 방법에는 각각 장단점이 있다.
우선 시뮬레이션 언어의 장점은 어려운 수학적 형식론에 의존하지 않고 언어 가 제공하는 문법과 의미를 사용하여 시스템을 비교적 쉽게 모델링할 수 있다는 것이다.
그러나 이들 언어를 새로 배워야 하며 더욱이 이들 언어의 의미론상 애매모호성 ambiguity 때문에 모델링 과정에서 혼돈이 생긴다는 단점이 있다.
수학적 형식론을 범용컴퓨터언어를 사용하여 구현한 시뮬레이션 환경을 이용할 경우는 시뮬레이션 언어를 사용한 경우의 단점을 극복할 수 있을 뿐 아니라 여러가지 장점이 있다. 모델링에서 수학적 형식론(mathematical formalis m)의 역할은 시스템의 동작을 정형적(formal)으로 기술하는 틀(framework)혹 은 의미론(semantics)을 제공하는 데 있다.
수학적 형식론은 시스템의 동작을 파라미터들의 집합과 이들 집합사이의 제약조건으로 표현된다.
예를 들어 이산사건 시스템의 대표적인 수학적 형식론인 DEVS(Discrete EVen t System Specification) 형식론에서는 이산사건 시스템을 여러개의 부모델 로 계층적으로 분해를 계속한 후 이들 모델을 쉽게, 정확하게 기술할 수 있을 때 더 이상 분해하지 않는다. 이때 더 이상 분해가 불가능한 최소단위 모델을 원자모델(atomic model)이라고 부르며 원자모델이외의 모델을 결합모델 (coupled model)이라 부른다. 원자모델은 3개의 파라미터집합, 즉 입력사건 집합, 출력사건 집합, 상태집합과 이들 사이의 제약조건을 4개의 특성함수인 외부상태 변이함수, 내부상태 변이함수, 출력함수 및 시간전진함수로 표현되며 결합모델은 여러개의 원자(결합)모델 사이의 연결관계를 명세한다.
이처럼 시스템 모델을 실존하는 시스템에 대응되는 구성요소별로 명세한 후 이들의 결합관계로 전체 시스템을 명세하는 것을 객체지향형 모델링이라 한다. 실제로 객체지향형 모델링 및 언어는 이산사건 모델링/시뮬레이션이 그 효시를 이루며 최초의 객체지향형 언어는 지난 67년에 발표된 이산사건 시뮬레이션 언어인 시뮬러이다. 현재 범용으로 사용되고 있는 객체지향언어인 C 도 AT&T연구소에서 이산사건 시뮬레이션 목적으로 개발된 후 여러가지 응용시스템 개발에 사용되고 있다.
좋은 시뮬레이션 환경은 시뮬레이션의 단계별로 사용자에게 편리하면서도 시뮬레이션 전체과정에서 효율적이어야 한다. 이러한 시뮬레이션 환경개발에 필요한 핵심기술은 모델링, 시뮬레이션 엔진, 입출력 분석, 실시간 처리, 사용자 인터페이스로 나누어 생각해야 할 것이다.
모델링 도구는 사용자가 시뮬레이션하고자 하는 시스템을 충분히 이해했을경우 어려운 수학방정식이나 컴퓨터 알고리듬 등의 사용은 되도록 피하면서 쉽고 빠르게 모델을 개발할 수 있어야 한다. 실제 많은 상용 시뮬레이션 환경에서는 시스템의 실제 모양과 유사한 그림 모양을 사용하여 모델을 개발하는 사용자 인터페이스를 지원한다. 그러나 시뮬레이션 전체주기를 단축하기 위해서 시뮬레이션 모델의 재사용 및 효과적인 유지보수가 필수적이다. 이를위해서는 모델을 모듈화된 계층적 구조로 표현하여 객체지향형으로 명세하는 계층적 객체지향 모델링(hierarchical object oriented modeling)기법이 바람직하다. 현재까지 계층적 객체지향 모델링 기법을 지원하는 이산사건 시뮬레이션 환경이 상용으로 발표된 것은 없지만 대학과 연구기관에서는 그러한 환경이 개발된 바 있으며 한국과학기술원, 전기.전자공학과, 컴퓨터공학연구 실에서 개발한 DEVSim 가 대표적인 예이다. DEVSim 는 앞서 소개한 DEVS 형식론을 사용하여 이산사건 시스템을 계층구조를 갖는 모듈별로 나눈 후 객체지향 언어인 C 를 사용하여 모델링할 수 있는 환경이다. 범용 시뮬레이션 환경인 DEVSim 는 인터넷상에 공개 소프트웨어(ftp address:sim. kaist. ac. kr(143.248.141.5))로 소개되어 전세계적으로 사용자 그룹이형성되 어 있으며 이를 이용하여 컴퓨터시스템 통신시스템 교통시스템 환경시스템 생산시스템 등 각종 이산사건 시스템 시뮬레이터를 구현할 수 있다.
시뮬레이션 엔진은 이산사건 시뮬레이션의 속도와 관계되는 핵심 부품으로 사용자가 명세한 모델을 해석하여 계산을 수행하는 실행기이며 사용자의 제어범위 밖에 있지만 실제로 사용자 입장에서 시뮬레이션 속도가 가장 중요하다. 시뮬레이션의 속도 향상을 위해서는 기본적으로 2가지 방향, 즉 소프트 웨어적인 방법과 하드웨어적인 방법이 있다.
시뮬레이션을 통한 시스템 분석의 최종 결론은 시뮬레이션시 의미있는 입력 시나리오를 사용하고 그 결과를 신뢰성 있게 통계적으로 분석한 경우만이 의미가 있다. 입출력의 통계적 분석기법은 이러한 의미에서 매우 중요하다. 사용자들은 대부분의 경우 독립적인 통계분석용 패키지를 사용하고 있으며 테 이터 분석을 효과적으로 하기 위하여 자료의 시각화(visualization)를 필요 로 한다. 또한 대상 시스템이 전문지식이 부족한 사용자를 위하여 출력 분석 용 전문가 시스템(e.pert system)이 필요한 경우도 있다.
실시간 시뮬레이터는 전자오락게임, 교육훈련 및 실시간 시스템의 설계검증 용으로 사용되며 실시간 계산과 사용자에게 현실감 있는 인터페이스를 제공 하는 것이 필수적이다. 실시간 시뮬레이터를 이용한 교육훈련의 가장 큰 장점은 비용을 절감하면서 안전하게 훈련을 수행할 수 있는 것이다. 실제로 항공요원의 교육에서 시물레이터의 이용은 총교육시간 대비 평균 55%를 차지한다. 이러한 실시간 시뮬레이터의 핵심인 실시간 계산을 위해서는 병렬처리형 으로 설계된 고성능 컴퓨터가 필요하며 사용자와의 인터페이스를 위하여 가상현실감을 얻을 수 있는 각종 특수장치가 필수적이다.
이산사건 시뮬레이션 수치(numeric)계산이기보다는 기호적(sy-mbolic)계산이 다. 대부분의 기존 시뮬레이션 언어들은 60년대 중반에서 70년대 중반사이에 개발되어 그 당시의 대표적인 언어인 포트란 등을 기반으로 하기 때문에 현재 사용되고 있는 프로그래밍 언어에 비해 프로그램 생산성이 낮다. 이런 상황에서도 사용자들이 생산성이 높은 새로운 시뮬레이션 언어.환경으로 전환 할 수 없는 현실적인 문제는 한 시뮬레이션 언어.환경에서 개발된 모델들을 다른 시뮬레이션 언어.환경에서 사용할 수 없다는 점이다. 따라서 이상적인 시뮬레이션 환경은 전체 시스템 모델을 SLAM 모델, SIMAN 모델, GPSS 모델, 그리고 DEVSim 등으로 개발된 다수의 부모델(sub model)들을 이용하여 합성할 수 있어야 한다. 이러한 시도는 현재의 운용체계 및 소프트웨어 기술 로 미루어 볼 때 가까운 미래에 실현 가능하다고 생각한다.
이산사건 시스템의 모델링은 미분(차분)방정식 등으로 정형화될 수 없는 특성과 고도의 복잡도를 가지며 대학(원) 정규교과목 수준의 전문지식이 요구 된다. 미국 등 선진국에서는 대학(원)의 여러 학과에서 시뮬레이션 과목이 정규 교과목으로 개설되어 있고 시뮬레이션 연구소가 설치되어 있는 대학이 있는가 하면 유럽에서는 대학에 시뮬레이션 학과가 설치되어 있는 경우도 있다. 시뮬레이션 관련 국제적 학술단체는 미국에 본부를 둔 국제시뮬레이션학회(S ociety for Computer Simulation International:SCSI)가 대표적이며 이를 중심으로 유럽 및 아시아 지역에 지역 학회가 SCSI와 협력체제를 구축하고 있다. 유럽 시뮬레이션학회는 유럽 여러나라가 공동으로 운영하는 학회이며아 시아 지역은 국가별로 학회가 구성되어 있다. 한국은 지난 91년 10월에 한국 시뮬레이션학회가 발족되어 현재 산업계 학계 연구소 등에서 3백여명의 회원 을 확보하고 있다. 시뮬레이션 관련 대표적인 국제학술대회는 SCSI에서 매년1월 4월 7월 12월 등 4회에 걸쳐 열리고 있다.
현재 세계적으로 40여종의 이산사건 시뮬레이션 언어.환경이 상용화되어 있지만 국내에서 이들이 개발된 적은 없으며 국내 대기업과 중소기업이 이들 패키지를 국내에 도입하여 경쟁적으로 판매하고 있다. 다만 앞서 소개한 바와 같이 한국과학기술원에서 개발하여 인터넷에 공개한 시뮬레이션 환경인 DEVSim 는 객체지향 모델링을 위한 그래픽 사용자 인터페이스, 고속 시뮬레이션 엔진, 그래픽환경에 기반한 통계분석기 등 완전한 형태를 갖춘 시뮬레이션 환경이다. 다행히 G7과제와 STEP2000 등 국책과제에서 시뮬레이션 엔진 및 환경개발에 관한 연구가 진행중이며 한전을 중심으로 발전소 시뮬레이터 국산화가 진행중이다. 국내 기업체와 군 등의 수요조사에서는 향후 10여 년동안 시뮬레이션 산업의 국내 시장규모를 발전소 항공훈련 군용 종합화학 분야 등의 시뮬레이터에 약 4조원, 시뮬레이션 패키지 및 서비스에 약 2조원 등 총 6조원으로 추정하고 있다. 현재 국내에서는 이들 시뮬레이터 및 패키지를 전량 수입에 의존하고 있다.