1. 서론
최근 지구 온난화가 심각해짐에 따라서 산불, 화산폭발, 지진 등 다양한 자연재해로 인한 피해가 증가하고 있다. 이 중에서 해저의 지진으로 인해 발생하는 지진해일은 그 거대한 규모로 인하여 광범위한 지역에 심각한 피해를 초래하였다. 2004년 남아시아에서 발생한 지진해일로 인해 동남아시아 해안 전역에 35만 명 이상의 사망자가 발생하였으며, 2011년 동일본에서 발생한 지진해일은 일본 동쪽 해안 전역의 광범위한 침수 피해와 함께 심각한 원자력 발전소 사고를 초래하였다. 지진해일은 해저에의 급격한 지각변동으로 인해 이동한 수십억에서 수조 톤에 달하는 거대한 물의 위치 에너지가 동심원의 형태로 전달되기 때문에, 넓은 전달 범위와 함께 단 1 m의 파도라도 큰 파괴력을 가지고 광범위한 피해를 초래한다[1].
한편 한국의 경우 삼면이 바다로 둘러싸인 해안 국가임에도 불구하고 지진해일로 인한 피해로부터 한 발짝 떨어져 있다. 이는 해저에서 지진해일을 유발할 정도의 급격한 지각 변동이 발생할 가능성이 낮으며 또한 일본이 방파제 역할을 하여 태평양으로부터 전달되는 지진해일을 일정 부분 막아주기 때문이다. 따라서 타 재해보다 지진해일에 대한 인식과 대피가 상대적으로 미진한 실정이다. 하지만 1960년 칠레에서 발생한 지진해일이 약 17,000 km 떨어진 일본에 큰 피해를 초래하였듯이 먼 바다에서 발생한 지진해일이 부산 등 남쪽 해안에 피해를 입힐 가능성을 무시할 수 없다. 또한 일본에서 자주 발생하는 지진도 지진해일 피해 가능성을 높인다. 실례로 1983년과 1993년에 일본에서 발생한 지진으로 인해 각각 강원도 동해안과 울릉도에 침수 피해와 인명 피해를 초래하였다. 특히 최근 2016년 경주에서 5.0 이상의 강한 지진이 발생한 것을 기점으로 한국의 동해안에도 지진해일을 유발할 강한 지진이 발생할 가능성이 점점 급격히 높아지고 있다. 한국의 동해안에는 부산과 울산 등의 대도시가 위치하여 인구와 산업이 밀집되어 있으며 원자력 발전소들이 집중되어 있어서 지진해일에 대한 효과적인 대비가 필요하다.
한국의 경우 지진해일에 대비하여서 대피 장소가 지정되어 있으며, 기상청 주도하에 경보시스템이 작동 중이다. 실제 지진해일이 빈번하게 발생하는 지역의 경우, 실제 경험과 데이터를 바탕으로 대비책을 개선하고 최적화시킬 수 있지만, 한국의 경우 이러한 경험과 데이터가 전무하다. 또한 다른 지역의 대비책을 적용하는 것도 그 지역의 특성을 고려해야하기 때문에 한계가 있다. 이러한 경우 재난 대피 시뮬레이터가 효과적으로 활용될 수 있다. 기존의 재난 대피 시뮬레이터의 경우 주로 화재 대피를 시뮬레이션하는데 집중되어 있다. 김경식[2]은 영화관에서 발생하는 화재에 대한 대피를 시뮬레이션 하였으며, Ruppel and Schat[3]은 BIM(Building information modeling)을 활용하여 화재 발생 시 건물 내의 효과적인 구조와 대피를 시뮬레이션 하였다. Zhao[4]는 유니티(Unity) 게임엔진을 기반으로 하는 화재 대피 시뮬레이터를 개발하였다.
한편 지진해일 대피의 경우 상대적으로 재해의 빈도수가 적기 때문에 연구가 많이 이루어지지 않았다. Affan et al.[5]은 사람과 오토바이 등의 다양한 에이전트를 묘사하고 이를 바탕으로 지진해일 대피 시뮬레이션을 수행하였으며, Minamoto et al.[6]은 에이전트 모델의 행동을 개선하기 위해 Petri-Net이라는 이산사건 시뮬레이션 도구를 활용하였다. 하지만 기존 연구들은 지진해일 자체에 대해 상세하게 모의하지 않았으며, 사용자가 입력한 침수범위 값 또는 단순한 모델을 사용하고 있다. 이는 시뮬레이터의 효과를 감소시키며 이를 바탕으로 검증한 재난 대비책에 대한 신뢰도를 감소시킨다.
본 논문에서는 이를 개선하고자 기 개발된 셀 오토마타(Cellular automata) 기반의 지진해일 시뮬레이션 모델을 적용한 시뮬레이터를 개발한다. 사람의 상황 인식, 판단, 그리고 행동을 효과적으로 묘사할 수 있는 수학적 형식론인 DEVS(Discrete-event system specification) 기반의 에이전트 모델을 설계하고, 이를 높은 확장성을 가진 Unity 게임엔진을 바탕으로 셀 오토마타 시뮬레이션 모델과 결합하므로 지진해일 대피를 시뮬레이션 한다. 본 논문에서는 개발된 시뮬레이터를 부산의 광안리 해안에 적용하여 기존의 대피 장소를 검증하였다. 그리고 이를 바탕으로 피해를 최소화 할 수 있는 최적의 대피 장소를 제안한다.
본 논문의 구성은 다음과 같다. 제2장에서는 셀 오토마타 기반의 지진해일 시뮬레이션 모델과 DEVS모델링을 간략히 설명한다. 제3장에서는 DEVS 에이전트 모델을 제시하고, Unity 게임엔진을 기반으로 이를 해일 모델과 결합한 지진해일 대피 시뮬레이터를 제안한다. 제4장에서는 제안된 시뮬레이터를 활용한 사례를 제시하며, 제5장에서는 결론 및 향후 활용 방안을 제시한다.
2. 관련 연구 및 기술
2.1 셀 오토마타 기반의 해일 시뮬레이션 모델[7]
셀 오토마타는 잘게 쪼개진 각 셀이 사전 정의된 규칙을 토대로 이웃 셀과의 상호작용을 통해 셀의상태를 변경하며 전체적인 확산을 모의하는 이산 모형으로, 적은 계산과 모델을 간략화 할 수 있다는 장점으로 인해 수학, 물리학, 수리 생물학, 복잡계, 미세구조 모델링 등에 활용된다[8]. 본 논문에서 활용하는 해일 시뮬레이션 모델(TsunamiSim)은 셀 오토마타를 활용하여서 해일 에너지의 전파를 통하여 연안지역의 침수를 모의한 모델이다. 본 모델은 2차원 셀오토마타에서 자주 활용되는 상, 하, 좌, 우 4방향의 이웃 셀을 고려하는 폰 노이만 모델을 바탕으로 이웃셀과의 상호작용을 통한 에너지 전파를 모의한다. 각셀은 진행 방향과 에너지를 가지며, 진행 방향에 따라 에너지를 이웃 셀에게 전달하고, 또 이웃 셀들로부터 에너지를 전달받는다. 전달받은 에너지를 바탕으로 다음 진행 방향과 에너지가 결정된다. 또한, 건물 등의 장애물로 인하여 에너지 교환이 불가능한 경우, 이 장애물의 위치에 따라 각기 다른 알고리즘을 통해 에너지 전파를 결정한다.
Fig. 1은 TsunamiSim에서 셀 오토마타를 통하여 해일의 에너지가 전파되는 모습을 나타낸다. 정확한 시뮬레이션을 위해 TsunamiSim은 실제 발생한 지진해일의 데이터를 바탕으로 모델의 파라미터를 검증하였으며, 효율적인 시뮬레이션을 위하여 Fig. 2와같이 지도 이미지를 바탕으로 셀 데이터를 자동 생성하도록 하는 변환기 또한 제공한다.
Fig. 1. Energy flows based on cell automata [7].
Fig. 2. Whole process of the TsunamiSim [7].
본 논문에서는 임의의 데이터와 단순한 모델을 사용하였던 이전 연구와는 달리, 이 셀 오토마타 기반의 TsunamiSim을 통하여 시뮬레이터의 해일을 보다 상세하고 실제적으로 묘사하여 이를 활용한 검증의 효과를 높이고자 한다.
2.2 DEVS 모델링
수학적 집합론에 기반한 DEVS는 이산 사건 시스템 모델링을 위한 언어로써 사건에 따른 시스템의 동적인 상태 변화를 효과적으로 표현할 수 있으며[9], 도시 건설, 재난 대피, 항해, 국방 등의 다양한 분야에서 복잡한 시스템을 모델링하기 위해 활용되고 있다[10-13]. DEVS는 3개의 집합과 4개의 함수를 통하여 시스템의 동적 변화를 기술하며 이는 아래와 같다.
\(M=<X, Y, S, t a, \delta_{\text {ext }}, \delta_{\text {int }}, \lambda>\) (1) [9]
여기서,
X : 입력 사건 집합
Y : 출력 사건 집합
S : 상태 집합
\(\text { ta }\) : 시간 진행 함수 (\(S \rightarrow R_{[0, \infty]}\)), \(R_{[0, \infty]}\)은 음수를 제외한 실수 집합
\(\delta_{e x t}\): 외부 상태 천이 함수 (\(Q \times X \rightarrow S\)),
\(Q=\left(s, t_{e}\right) \mid s \in S\) , \(t_{e} \in([0, \infty] \cap[0, t a(s)])\) , , \(Q\)는 총 상태집합, \(t_{e}\)는 최근 사건 발생 이후부터의 소요시간
\(\delta_{i n t}\) : 내부 상태 천이 함수 (\(S \rightarrow S\))
\(\lambda\) : 출력 함수 (\(S \rightarrow Y\))
DEVS 모델은 식 (1)과 같이 입력 사건들의 집합을 나타내는 X, 출력 사건들의 집합을 나타내는 Y, 상태 변수들의 집합을 나타내는 S의 3개의 집합과 4개의 함수로 표현된다. 외부 상태 천이 함수인 \(\delta_{e x t}\) 는 시스템이 외부에서 X를 입력받았을 때 시스템의 상태가 변화되는 것을 정의한다. 반면에 내부 상태천이 함수인 \(\delta_{i n t}\)는 시스템의 현재 상태에서 머물 수 있는 시간이 지나면 시스템의 상태를 천이시킨다. 시간 진행 함수 ta는 시스템의 각 상태에 대해서 머물 수 있는 시간을 정의하며, 출력 함수는 내부 상태 천이에 의해 시스템의 상태가 변경될 때 상태에 따라서 발생하는 출력을 명시한다.
예를 들어서 간단한 자판기 시스템에 대한 DEVS모델의 기술은 아래와 같으며, Fig. 3은 이 기술을 다이어그램 형식으로 나타낸다. 타원은 각 상태와 각 상태에 대한 ta 함수의 값을 나타내며, 실선은 입력에 따른 외부 상태 천이, 점선은 내부 상태 천이와 그때의 출력을 나타낸다.
Fig. 3. An example of DEVS modeling: vending machine.
\(\begin{array}{l} X=\{\text { Coin, Order }\} \\ Y=\{\text { Returns, Beverage }\} \\ S=\{\text { Idle, Wait, Busy }\} \\ t_{a}: \text { Idle } \rightarrow \infty, \text { Wait } \rightarrow 10 s, \text { Busy } \rightarrow 1 s \\ \delta_{\text {ext }}:(\text { Idle }, \text { Coin }) \rightarrow \text { Wait }, \text { (Wait, } \text { Coin }) \\ \quad \rightarrow \text { Wait },(\text { Wait }, \text { Order }) \rightarrow \text { Busy } \\ \delta_{\text {int }}: \text { Wait } \rightarrow \text { Idle }, \text { Bus } y \rightarrow \text { Idle } \end{array}\)
\(\lambda: \text { Wait } \rightarrow \text { Returns, Busy } \rightarrow \text { Beverage }\)
자판기 시스템은 Idle, Wait, Busy의 3가지 상태를 가지고 있다. Idle 상태에서 외부로부터 Coin을 입력받으면 Wait 상태로 천이하며, 이 상태에서 10초간 Coin 또는 Order가 입력되지 않는 경우 들어온 금액을 Returns로 반환하고 다시 Idle 상태로 천이한다.반면에 Coin을 입력받으면 Wait 상태로 천이하고 Order를 입력받는 경우 Busy 상태로 천이한다. Busy 상태에서는 1초 후 주문한 Beverage를 출력하고 Idle 상태로 천이한다.
에이전트 모델은 외부에서 발생한 사건에 따라 판단하고 행동하며, 또한 사건이 없을 경우에 내부적인 상태 변화에 따라서 행동하게 된다[9]. 이러한 특성은 각각 DEVS의 외부 천이 함수와 내부 천이 함수에 해당하므로, DEVS를 바탕으로 에이전트 모델을 효과적으로 표현할 수 있다. 본 연구에서는 기존의 연구와 달리 DEVS라는 표준화된 형식론을 통하여 모델링하기 때문에 개발된 모델의 검증이 용이하며 향후 모델의 개선이 효율적으로 이루어질 수 있다. 또한 모델의 재사용성을 높일 수 있다.
3. 지진해일 대피 시뮬레이터 개발
3.1 에이전트 모델 개발
지진해일 대피를 시뮬레이션하기 위해서는 지진해일, 대피하는 사람, 그리고 사람과 지진해일을 연결하면서 시뮬레이션을 관리하고 진행시키는 관리자 세 종류의 객체가 필요하다. 본 시뮬레이터에서는 각 객체를 DEVS를 통하여 에이전트 모델로 개발한다. 이는 앞서 언급한 대로 개발된 모델의 검증과 향후 개선을 용이하게 한다.
대피하는 시민의 경우 Human Agent로 모델링되며, Human Agent는 대피하는 사람들의 행동을 모의하여 대피경로를 스스로 판단하고 지진해일로부터 대피한다. Fig. 4는 Human Agent의 DEVS 다이어그램을 나타낸다. Human Agent는 Walk, Path Navigation, Run, Die, Rescue의 5가지 상태를 가지고 있다. Walk 상태에서 외부로부터 Tsunami Alert를 입력받으면 Path Navigation 상태로 천이하며, 1단위시간 동안 Tsunami Alert가 입력되지 않으면 현재 위치인 Current Position을 반환하고 Walk 상태로 천이한다. . Path Navigation 상태에서는 0 단위시간 동안 경로를 탐색한 뒤 대피 경로인 Path를 반환하고 Run 상태로 천이한다. 여기서 경로 탐색에는 A* 알고리즘 기반의 대피 경로 탐색 알고리즘을 이용하며, 이 알고리즘에 대해서는 다음 장에서 좀 더 자세히 다루도록 한다. Run 상태에서는 1 단위시간 후 대피자의 현재 위치와 해일과의 거리를 비교하는 bDie 함수와 대피자의 현재 위치와 대피 장소와의 거리를 비교하는 bArrival 함수의 논리 값에 따라 상태 3가지 상태로 천이한다. 먼저 bDie 함수가 참이면 Death를 반환하고 Die 상태로 천이하는 반면 bArrival 함수가 참이면 Survive가 참이면 Survive를 반환하고 Rescue 상태로 천이한다. 만약 두 함수 모두 다 거짓이면 Current Position을 반환하고 다시 Path Navigation 상태로 천이한다. 마지막으로 Human Agent에 대한 DEVS 모델의 기술은 아래와 같다.
Fig. 4. DEVS diagram of Human Agent.
\(X=\{\text { TsunamiAlert }\}\)
\(Y=\{\text { Current Position, Survive, Death }\}\)
\(S=\{\text { Walk, Path Navigation, Run, Rescue, Die }\}\)
\(\text { ta: \{ Rescue, Die }\} \rightarrow \infty,\{\text { Wait, Run }\} \rightarrow 1, \text { Path } \rightarrow 0\)
\(\begin{aligned} \delta_{i n t} &: \text { Path Navigation } \rightarrow \text { Run, Walk } \rightarrow \text { Walk, } \\ & \text { if }(\text { bDie }(\text { Current Position })==\text { false && bArrival }(\text { Current Position })==\text { false }) \\ &Run \rightarrow Path Navigation, \\&\text else if ( bDie ( Current Position )== true ) Run \rightarrow Die,\\ &\text else if ( bArrival ( Current Position )== true ) Run \rightarrow Rescue \end{aligned} \)
\(\begin{aligned} \delta_{i n t} &: \text { Walk } \rightarrow \text { Path Navigation } \\ & \text { if }(\text { bDie }(\text { Current Position })==\text { false && bArrival }(\text { Current Position })==\text { false }) \\ &Run \rightarrow Current Position, \\&\text else if ( bDie ( Current Position )== true ) Run \rightarrow Death,\\ &\text else if ( bArrival ( Current Position )== true ) Run \rightarrow Survive \end{aligned} \)
다음으로 Game Manager Agent는 앞서 언급했듯이 Human Agent와 Tsunami Agent를 연결하면서 시뮬레이션을 관리하고 진행시킨다. 구체적으로는 Human Agent에게 해일 경보 정보를 전달하고, 생존과 사망 정보를 받는다. 그리고 Tsunami Agent로부터는 해일 정보를 받는다. Fig. 5는 Game Manager Agent의 DEVS 다이어그램을 나타낸다. Game Manager Agent는 Wait, Update, Tsunami Alert 3가지 상태로 이루어져 있다. Wait 상태에서 외부로부터 Tsunami Data를 입력받으면 Update 상태로 천이하며, 이 상태에서 시간 변수 t와 해일 경보 발생 시간이 같으면 해일의 위치인 Tsunami Position을 반환하고 Tsunami Alert 상태로 천이한다. 반면 t가 해일 경보 발생 시간과 다를 경우 역시 Tsunami Position을 반환하지만 Update 상태로 천이한다. Tsunami Alert 상태에서는 0 단위시간 후 Tsunami Alert를 반환하고 Update 상태로 천이한다. 그리고 Survive와 Death는 ta를 초기화 시키지 않는 이벤트로 생존자와 사상자를 기록하는데 사용한다. Game Manager Agent에 대한 DEVS 모델의 기술은 다음과 같다.
Fig. 5. DEVS diagram of Game Manager Agent.
\(X=\{\text { Survive, Death, TsunamiData }\}\)
\(Y=\{\text { TsunamiAlert, TsunamiPosition }\}\)
\(S=\{\text { Wait, Update, Tsunami Alert }\}\)
\(\text { ta: Wait } \rightarrow \infty, \text { Update } \rightarrow 1, \text { Tsunami Alert } \rightarrow 0\)
\(\delta_{e x t}:(\text { Wait, TsunamiData }) \rightarrow \text { Update }\)
\(\begin{aligned} {delta_{i n t}}: &\text { if }(t==\text { Tsunami Alerttime ) Update } \rightarrow \text { Update }\\ &\text { else if }(t != \text { TsunamiAlerttime) Update } \\ & \rightarrow \text { Tsunami Alert, }\\&\text { Tsunami Alert } \rightarrow \text { Update } \end{aligned}\)
\(\begin{aligned} \lambda: \text { Updule } \rightarrow & \text { Tsunumi Posilion, Tsunumi Alerl } \\ & \rightarrow \text { Tsunami Alert } \end{aligned}\)
지진해일을 나타내는 Tsunami Agent는 Fig. 2의 과정을 거쳐 생성된 TsunamiSim의 결과를 Game Manager Agent에 전달한다. 다시 말해서 TsunamiSim을 제안하는 지진해일 대피 시뮬레이터에 결합하기 위한 일종의 어댑터로 활용된다. Fig. 6은 Tsunami Agent의 DEVS 다이어그램을 나타내며, 데이터를 전달하므로 단순하게 Start, Wait 2가지 상태를 가지고 있다. Start 상태는 0 단위시간 후 (즉 시뮬레이터가 시작하자마자) Tsunami Data를 반환하고 Wait 상태로 천이한다. 다음은 Tsunami Agent에 대한 DEVS 모델의 기술이다.
Fig. 6. DEVS diagram of Tsunami Agent.
\(X=\varnothing\)
\(Y=\{\text { TsunamiData }\}\)
\(S=\{\text { Start, Wait }\}\)
\(\text { ta: Wait } \rightarrow \infty, \text { Start } \rightarrow 0\)
\(\delta_{\text {ext }}: \text { Null }\)
\(\delta_{\text {int }}: \text { Start } \rightarrow \text { Wait }\)
\(\lambda: \text { Start } \rightarrow \text { Tsunami Data }\)
3.2 대피 경로 탐색 알고리즘
본 장에서는 앞서 설명한 Human Agent의 Path Navigation 상태에서 대피 경로를 탐색하기 위해 활용되는 알고리즘에 대해서 설명한다. 본 연구에서는 다양한 길 찾기 알고리즘 중 게임 인공지능에 많이 이용되는 A* 알고리즘을 이용한다. A* 알고리즘은 출발 노드로부터 목표 노드까지 가는 최단 경로를 찾아내는 그래프/트리 탐색 알고리즘 중 하나이다[14]. 이 알고리즘은 각 노드 x에 대해 그 노드 통과하는 최상의 경로를 추정하는 휴리스틱(heuristic)추정 값 \(h(x)\)을 이용하여 순위를 매긴다. 각각의 노드에 대한 평가 함수는 식(2)와 같다.
\(f(x)=g(x) \mid h(x)\) (2) [14]
여기서,
\(g(x)\) : 출발 노드로부터 노드 \(x\)까지의 경로 가중치
\(h(x)\) : 노드 \(x\)으로부터 목표 노드까지의 추정 경로 가중치(장애물 무시)
A* 알고리즘은 열린 목록(Open list)과 닫힌 목록(Closed list)을 통해 노드를 관리한다. A* 알고리즘의 과정을 살펴보면, 시작 노드를 닫힌 목록에 저장한 뒤 시작 노드의 이웃 노드를 탐색하고 탐색된 이웃 노드의 \(f(x)\), \(g(x)\), \(h(x)\)값과 부모 노드를 구하여열린 목록에 추가한다. 그 후 열린 목록 중 가장 작은 가중치 값을 가진 노드를 찾는다. 이때 가중치의 최솟값을 찾기 위해 우선순위 큐를 이용하며, 같은 가중치 값을 가진 노드가 있을 경우에는 우선순위 큐의 순서에 따른다. 우선순위 큐로 찾은 노드를 현재 노드로 지정 후 열린 목록에서 닫힌 목록으로 이동시킨다. 그리고 다시 현재 노드의 이웃 노드를 탐색하는데, 이웃 노드가 장애물이거나 닫힌 목록에 있다면 무시한다. 목표 노드가 닫힌 목록에 저장될 때 까지 위 과정을 반복한다. 위 과정이 끝나면 닫힌 목록에서 목표 노드의 부모 노드를 역 추적하여 경로를 구한다.
2차원 배열의 정사각형 셀의 한 변의 길이를 10, 대각선 길이를 14라 가정하면. 상, 하, 좌, 우 방향의 가중치는 10, 대각방향의 가중치는 14가된다. 시작점 오른쪽의 셀은 시작점으로부터 1칸 떨어져 있어 \(g(x)\)의 값이 10, 해당 셀은 목적지 까지 2칸 떨어져 있어 \(h(x)\)값이 20이므로 \(f(x)\)값은 두 값을 더한 30임을 알 수 있다. 이와 같은 방식으로 시작점 이웃 셀의 가중치를 계산한 결과는 Fig. 7과 같다. 시작점의 이웃 셀 중 가장 작은 \(f(x)\)값이 30이므로 오른쪽으로 이동하게 된다.
Fig. 7. The result of path calculation from start point to destination point using A* algorithm [15]
3.3 에이전트 모델과 해일 시뮬레이션 모델을 결합한 Unity 게임엔진 기반의 시뮬레이터 개발
본 장에서는 앞서 제안한 3개의 에이전트 모델과 해일 시뮬레이션 모델을 Unity 게임엔진을 기반으로 결합하고 가시화한 시뮬레이터를 제안한다. Fig. 8은 이 시뮬레이터의 전체적인 구조를 나타낸다. Fig. 2의 과정을 통해 얻어진 해일 모델의 시뮬레이션 결과가 Tsunami Agent에게 전달되며, 지도 이미지가 셀데이터로 변환된 Map data는 Unity 게임엔진 기반지도 제작에 이용된다. Tsunami Agent는 해일 모델의 시뮬레이션 결과, 즉 연안 침수 범위인 Tsunami Data를 Game Manager Agent에게 전달한다. Game Manager Agent는 Human Agent에게 해일 경보 정보 Tsunami Alert를 전달하며, 생/사 정보 Survive/Death를 수집한다. 그리고 Human Agent와 Game Manager Agent는 각각 현재 위치 정보 Current Position과 해일의 위치 정보 Tsunami Position을 지도에 전달한다. 이러한 정보 전달을 통해서 Unity 게임엔진을 기반으로 에이전트 모델과 해일 시뮬레이션 모델 간의 결합이 이루어진다.
Fig. 8. Overall structure of the proposed simulator for tsunami simulation.
제안하는 시뮬레이터는 Unity 게임엔진을 통해 다음과 같은 과정으로 가시화를 진행한다. 1)건물통합정보 마스터의 데이터 셋[16]에서 3D 건물 정보 다운로드한다. 2)3D 건물 정보를 QGIS(Quantum geographic information system)에서 Fig. 2에서 사용한 Map Image에 맞추어 3D 객체로 저장한 뒤 .obj파일로 변환한다. 3)이전 단계의 .obj파일을 Unity에서 불러와 도로 및 건물을 구현한다. 4)그 외에 바다, 모래 등은 Map data를 이용하여 셀 단위로 Unity객체를 생성한다. 그리고 해일의 경우 생성 된 바다셀은 Game Manager Agent가 단위 시간마다 출력하는 Tsunami Position을 사용하여 해일 시뮬레이션 결과로 얻은 침수 범위까지 진행하는 방식으로 구현된다. Fig. 9는 지도 이미지로부터 언급한 4단계를 통하여 구축된 3D 지도 및 에이전트들을 나타내며, Fig. 10은 가시화된 시뮬레이터의 동작 예시를 나타낸다.
Fig. 9. Visualization of map and agents based on Unity game engine [17].
Fig. 10. Screenshots of simulator: (a) Inundation by tsunami, (b) Evacuees from tsunami, and (c) Death of evacuees by tsunami.
4. 시뮬레이터의 활용 사례: 광안리 지역의 기존 대피 장소 검증 및 최적의 대피 장소 제안
4.1 광안리 지역에 대한 이해
광안리 해수욕장은 해운대 해수욕장과 함께 부산을 대표하는 해수욕장이며, 그 주변에는 상가와 거주지가 밀집해 있다. 또한, 여러 축제도 많이 개최되기 때문에 부산에서도 유동인구가 많은 곳이다. 특히 피서 철인 7-8월에는 하루 평균 약 20만 명이 광안리 해수욕장을 방문한다. 아직까지 광안리에 지진해일 발생 사례는 없지만, 최근 한반도에서 지진 발생 횟수가 증가하였고, 일본에서 발생하는 잦은 지진으로 인하여 완전히 안전하다고는 할 수 없다. 광안리에는 Fig. 11과 같이 해안선으로부터 445m 떨어진 한바다 중학교가 지진해일 대피 장소로 지정되어 있지만[18], 많은 사람들이 이에 대해서 인식하지 못하고 있으며 이 대피 장소가 지진해일로부터 사상자를 감소시키기에 적절한지에 대한 검증 또한 이루어지지 않았다. 따라서 본 사례 연구에는 개발한 시뮬레이터를 바탕으로 광안리 지역의 지진 해일 대피를 시뮬레이션 하고 기존의 지정된 대피 장소에 대한 검증 및 최적의 대피 장소를 선정하고자 한다.
Fig. 11. Predefined existing evacuation site in Gwangalli beach: Han Bada middle school, located in position C of the map.
4.2 실험 설계
2017년 부산시의 통계에 따라 광안리 해수욕장이 개장하는 7-8월 일 평균 방문객이 약 200,000명으로 파악이 되어[19], 실험에서의 총인원을 200,000명으로 설정하였다. 실험의 편의와 컴퓨터 환경을 고려하여 한 개의 에이전트 모델이 약 400명을 대표하도록 하였으며, 노약자와 일반인 두 분류로 구분하였다. 두 분류의 비율은 1:3이며, 각각의 특성에 적합하도록 에이전트 모델의 파라미터를 조정하였다. 에이전트는 주로 해안가 쪽으로 무작위로 배치가 되었으며, 사방이 건물로 둘러싸여 움직일 수 없는 곳은 배제되었다. 셀 오토마타 해일 모델과 시뮬레이터가 포함하고 있는 랜덤 요소로 인하여 독립적 반복 실험을 통한 평균값을 산출하였다.
4.3 기존 대피 장소에 대한 검증
일반적으로 먼 바다에서부터 발생된 해일의 경우 대피 경보가 1시간에서 1시간 30분 사이에 발생될 수 있으나, 예측 불가능한 지진으로 인해 해일이 발생될 경우 최소 2분 내로 빠르게 대피하여야 한다[20]. 본 실험에서는 기존 대피 장소를 검증하고자 위의 지침을 바탕으로 해일 경보 시간에 따른 사상자 수를 분석하였으며, Fig. 12는 이 결과를 나타낸다. 기존의 대피 장소의 경우 8분 정도 전에 지진 해일경보가 발생하는 경우, 즉 먼 바다로부터 발생한 해일로 부터는 충분히 효과적인 것을 확인할 수 있다. 하지만 광안리의 경우 먼 바다에서 발생하는 해일이 도달하기 보다는 일본 또는 동해안의 예측 불가능한 지진으로 인해 해일이 발생될 가능성이 더 높다. 이러한 경우 2분 이전에 경보를 발생하여도 약 11만 명의 사상자가 발생하며, 이는 앞서 설정한 20만 명의 약 55%에 해당하는 인원이다. 즉 기존의 대피 장소는 이러한 지진해일로부터 적절하지 않다는 것을 확인할 수 있다.
Fig 12. Number of casualties by time of alert.
4.4 최적의 대피 장소 제안
보다 적절한 대피장소를 설정하고자, 기존의 대피 장소 외에 두 지역을 추가적으로 대피 장소 후보로 선정하였으며 이는 Fig. 13에 표시되어 있다. 이 대피장소 후보들은(A, B 지역) 해안선과 떨어져있는 거리 및 해발 고도, 그리고 인원수용 정도를 고려하여 선정되었다.
Fig. 13. Alternative evacuation site positions A and B.
최적의 대피 장소를 선정하기 위해서 기존 대피 장소인 C 지역을 포함하여 A와 B 지역에 대해서 대피 경보가 2분 전에 발생할 때 사상자 수를 측정하였으며, Fig. 14는 그 결과를 나타낸다. A와 C 대피 장소의 사상자 수는 비슷한 결과를 보이는 반면에, B대피 장소는 사상자 수를 절반에 가깝게 줄일 수 있었다. 이러한 결과가 나타난 것은 대피 장소의 지리적 위치에서 확인할 수 있는데, A와 C 대피 장소는 지도상에 보이듯 해수욕장의 양 끝에 위치하여 접근성이 떨어지기 때문이다. 또한 C의 경우 A 대피 장소보다 경로가 좁고 복잡한 도로가 많아서 사상자 수가 더 높게 측정되었다. 반면에 B의 경우 A와 C 대피 장소에 비해서 접근성이 뛰어나고 또한 큰 도로에 인접하여 도달하기가 수월하다. 본 실험 결과를 바탕으로 사상자 수를 최소화하는 최적의 대피 장소는B로 선정할 수 있다.
Fig. 14. Number of casualties by evacuation site.
5. 결론
본 논문에서는 지진해일 대피 시뮬레이션을 위한 Unity 게임엔진 기반의 시뮬레이터를 개발하였다. 임의의 데이터 또는 단순한 모델로 지진해일을 묘사하였던 기존 연구와 달리 본 연구에서는 시뮬레이션 결과의 신뢰도를 높이고 사실성을 더하고자 셀 오토마타 기반의 지진해일 시뮬레이션을 적용하였다. 또한 해일로부터 대피하는 시민과 게임 관리자, 그리고 지진해일 관리자를 에이전트로 설계하고 표준화한 도구인 DEVS를 통해서 명세하여 모델 동작에 대한 검증과 향후 확장성을 가지도록 하였다. 그리고 Unity 게임엔진을 바탕으로 생성된 지도에 해일 모델과 에이전트 모델들을 결합하여 시뮬레이터를 개발하였다. 개발된 시뮬레이터의 활용을 보여주기 위하여 광안리 지역에 대한 지진해일 대피 시뮬레이션을 수행하였으며, 기존의 대피 장소에 대한 검증과 이를 바탕으로 사상자를 절반으로 줄일 수 있는 최적의 대피 장소를 도출하였다.
향후 연구 계획으로는 Human Agent에 딥러닝 기반의 AI 기술을 접목하여 에이전트 간의 상호작용을 고려하며 이를 바탕으로 판단과 행동을 고도화 하여 시뮬레이션 결과의 신뢰도를 높이는 것이다. 특히 표준화한 도구인 DEVS로 설계되었기 때문에, 고도화된 에이전트는 다른 대피 시뮬레이터에도 접목될 수 있을 것이라 기대한다. 또한 사용자가 관찰하는 현재의 시뮬레이터를 확장하여 사용자가 한 에이전트로 참여하여 직접 대피를 경험할 수 있도록 하는 기능성 게임(Serious game)을 개발하며, VR 장비와의 연동을 통하여 가상훈련의 효과를 높이도록 하는 것이다.
참고문헌
- E. Bryant, Tsunami: The Underrated Hazard, Cambridge University Press, Cambridge, 2001.
- K.S. Kim, "A Study on the Development of VR Games to Experience the Escape from the Fire Emergency of the Movie Theater," Journal of the Research Institute of Industrial Technology, Vol. 37, No. 1, pp. 52-56, 2018.
- U. Ruppel and K. Schatz, "Designing a BIM-Based Serious Game for Fire Safety Evacuation Simulations," Advanced Engineering Informatics, Vol. 25, No. 4, pp. 600-611, 2011. https://doi.org/10.1016/j.aei.2011.08.001
- H. Zhao, A Study on Serious Game Based Fire Escape Simulation, Master's Thesis of Soongsil University, 2014.
- M. Affan, Y. Goto, and A. Sabti, "Tsunami Evacuation Simulation for Disaster Awareness Education and Mitigation Planning of Banda Aceh," Proceeding of the 15th World Conference on Earthquake Engineering, 2012.
- T. Minamoto, Y. Nariyuki, Y. Fujiwara, and A. Mikami, "Development of Tsunami Refuge Petri-Net Simulation System Utilizable in Independence Disaster Prevention Organization," Proceeding of the 14th World Conference on Earthquake Engineering, 2008.
- J.W. Joo, J.M. Joo, D.M. Kim, D.H. Lee, and S.H. Choi, "A Tsunami Simulation Model Based on Cellular Automata for Analyzing Coastal Inundation: Case Study of Gwangalli Beach," Journal of Korea Multimedia Society, Vol. 23, No. 5, pp. 710-720, 2020. https://doi.org/10.9717/KMMS.2020.23.5.710
- E.S. Mohamed and S. Rajasekaran, “Tsunami Wave Simulation Models Based on Hexagonal Cellular Automata,” World Scientific and Engineering Academy and Society Transactions on Fluid Mechanics, Vol. 8, No. 3, pp. 91-101, 2013.
- B.P. Zeigler, H. Praehofer, and T.G. Kim, Theory of Modeling and Simulation, Academic Press, Cambridge, 2000.
- S.H. Choi, K.M. Seo, and T.G. Kim, "Accelerated Simulation of Discrete Event Dynamic Systems Via a Multi-fidelity Modeling Framework," Applied Sciences, Vol. 7, No. 10, pp. 1056:1-13, 2017.
- B.G. Kang, S.H. Choi, S.J. Kwon, J.H. Lee, and T.G. Kim, "Simulation-Based Optimization on the System-of-Systems Model via Model Transformation and Genetic Algorithm: A Case Study of Network-Centric Warfare," Complexity, Vol. 2018, pp. 4521672:1-15, 2018.
- J.W. Bae, S.H. Lee, J.H. Hong, and I.C. Moon, “Simulation-Based Analyses of an Evacuation from a Metropolis during a Bombardment,” Simulation, Vol. 90, No. 11, pp. 1244-1267, 2014. https://doi.org/10.1177/0037549714551291
- I.C. Moon, J.W. Bae, J.S. Lee, D.Y. Kim, H.R. Lee, and T.S. Lee, "EMSSIM: Emergency Medical Service Simulator with Geographic and Medical Details," Proceeding of Winter Simulation Conference, pp. 1272-1284, 2016.
- J. Yao, C. Lin, X. Xie, A.J. Wang, and C.C. Hung, "Path Planning for Virtual Human Motion Using Improved A* Star Algorithm," Proceeding of International Conference on Information Technology: New Generations, pp. 1154-1158, 2010.
- Z. He, M. Shi, and C. Li, "Research and Application of Path-Finding Algorithm Based on Unity," Proceeding of 2016 IEEE/ACIS 15th International Conference on Computer and Information Science, 2016.
- National Spatial Data Infrastructure Portal, http://data.nsdi.go.kr/dataset/12623 (accessed January 20, 2020).
- Naver Map, https://map.naver.com/v5/?c=14373381.2274296,4184589.3036289,15,0,0,0,dh (accessed December 12, 2019).
- Public Data Portal, https://www.data.go.kr/dataset/15026701/fileData.do (accessed February 5, 2020).
- KOSIS, http://stat.kosis.kr/statHtml_host/statHtml.do?orgId=202&tblId=DT_1019&dbUser=NSI_IN_202 (accessed January 30, 2020).
- Goverment 24, http://www.gov.kr/portal/service/serviceInfo/PTR000052007 (accessed January 30, 2020).
피인용 문헌
- Method for Detecting Modification of Transmitted Message in C/C++ Based Discrete Event System Specification Simulation vol.26, pp.1, 2021, https://doi.org/10.9708/jksci.2021.26.01.171