# 1. Introduction

## 1.1 What is Good Mobility Systems? 

우리가 살아가는 도시는 끊임없이 변화하고, 발전하며, 때로는 쇠퇴한다. "무엇이 좋은 도시인가?", "도시는 어떤 방향으로 변화해야 하는가?" 이러한 질문들은 깊이 고민해볼 가치가 있다. 이 책에서는 도시를 구성하는 다양한 요소들 중 **'모빌리티'**, 즉 **'이동'**에 초점을 맞춘다. 특히 우리의 '이동'을 돕는 시스템에 대해 심도 있게 다룬다.

**모빌리티 시스템**은 우리 일상 곳곳에 존재한다. 출퇴근과 등하교 시 이용하는 자동차, 버스, 지하철부터 자전거, 전동킥보드, 그리고 우리의 두 발까지 모두가 이동수단이자 **모빌리티 시스템**의 일부다. 더 나아가, 음식 배달 서비스나 택배 시스템을 통해 우리 집 문 앞까지 도착하는 물품의 이동 또한 **모빌리티 시스템**에 포함된다.

<u>과연 '좋은 모빌리티 시스템'이란 무엇일까?</u> 이는 단순히 빠르고 편리한 이동만을 의미하는 것일까, 아니면 그 이상의 가치를 내포하고 있을까? 

이 책의 시작은 이러한 근본적인 질문이다.  

## 1.2 The Necessity of Simulation

<u>좋은 모빌리티 시스템이 무엇인지 고민하고 평가하는 데 **시뮬레이션**은 필수적인 도구이다.</u> 실제 도시 환경에서 새로운 모빌리티 시스템을 테스트하는 것은 **비용, 시간, 안전 등의 문제로 매우 제한적**이다. **시뮬레이션을 통해 우리는 이러한 한계를 극복하고 다양한 시나리오를 안전하게 테스트**할 수 있다. 또한, 도시 모빌리티 시스템의 복잡성과 수많은 변수들의 상호작용을 **컴퓨터 모델**을 통해 효과적으로 관리하고 분석할 수 있다.

**현재 존재하는 여러 가상 환경은 모빌리티 시스템 운영에 완전히 적합하지 않다.**

예를 들어, **테슬라의 자율주행 시뮬레이션**은 자율주행 차량 훈련을 위한 **디지털 트윈**에 중점을 둔다. 테슬라의 **autopilot**은 영상 기반으로 알고리즘을 학습하기 때문에 시뮬레이션의 렌더링 퀄러티가 매우 중요하지만, 이는 전체 모빌리티 시스템의 운영 측면에서는 **과도한 자원 소모**일 수 있다.

**VISSIM, SUMO, AIMSUN**과 같은 기존의 교통 시뮬레이션 툴도 활용 가능하지만, 이들은 주로 **소규모 영역에 최적화**되어 있다. 몇 개의 교차로나 작은 도시 단위로는 구현이 가능하지만, <u>서울이나 뉴욕과 같은 대규모 도시 수준에서 다양한 모빌리티 서비스를 구현하기에는 한계가 있다.</u>

이러한 배경에서 **오픈소스 기반의 대규모 모빌리티 시뮬레이션 툴의 필요성**이 대두된다. **오픈소스의 힘**은 이미 여러 분야에서 입증되었다. 구글의 **Transformer**, 우리가 일상적으로 사용하는 **Python**, 그리고 Python 생태계의 핵심인 **Pandas, Numpy**와 같은 패키지들 모두 오픈소스의 성공 사례이다.

모빌리티 분야에서도 <u>누구나 사용 가능한 시뮬레이션 플랫폼을 만들고, 그 안에서 활발한 논의와 협업이 이루어질 수 있는 환경이 필요하다.</u> **알고리즘과 데이터를 공유**하며, **집단 지성**을 활용해 더 나은 모빌리티 시스템을 설계하고 평가할 수 있는 기반을 마련해야 한다.

이러한 시뮬레이션 툴은 단순히 현재의 모빌리티 시스템을 모방하는 데 그치지 않고, 미래의 혁신적인 모빌리티 솔루션을 실험하고 검증할 수 있는 플랫폼이 되어야 한다. 자율주행 차량, 드론 택시, 하이퍼루프 등 미래의 교통수단과 기존 시스템의 통합, 그리고 이에 따른 도시 구조의 변화까지 시뮬레이션할 수 있는 유연성과 확장성이 요구된다. 이를 통해 우리는 **더 효율적이고, 지속 가능하며, 모든 이용자에게 공평한 모빌리티 시스템**을 설계하고 구현하는 데 한 걸음 더 다가갈 수 있을 것이다.

```{important}
**핵심 메시지**: 시뮬레이션은 단순한 분석 도구가 아닌, <u>미래의 혁신적인 모빌리티 솔루션을 실험하고 검증할 수 있는 플랫폼</u>이다.
```

### 1.2.1 기존 시뮬레이션 도구들의 한계와 사례 분석

**학습 목표**: <u>현재 시장에서 활용되고 있는 주요 모빌리티 시뮬레이션 도구들의 특징과 한계를 구체적으로 살펴보자.</u>

**상용 교통 시뮬레이션 소프트웨어의 현황**

**VISSIM**은 독일 PTV Group에서 개발한 **미시적 교통 시뮬레이션 도구**로, 전 세계적으로 가장 널리 사용되는 교통 시뮬레이션 소프트웨어 중 하나이다. 

- **장점**: 개별 차량의 움직임을 세밀하게 모델링, 교차로 신호 최적화
- **단점**: 라이선스 비용 매우 높음, 대규모 도시에서 컴퓨팅 자원 한계

**SUMO(Simulation of Urban Mobility)**는 독일 DLR(German Aerospace Center)에서 개발한 **오픈소스 교통 시뮬레이션 플랫폼**이다. 

- **장점**: 무료 사용 가능
- **단점**: 복잡한 설정, 제한적 UI, 동적 서비스 구현에 프로그래밍 지식 필요

**AIMSUN**은 스페인 TSS사에서 개발한 **종합적인 교통 시뮬레이션 플랫폼**으로, **거시적, 중시적, 미시적 모델링을 모두 지원**한다. 

하지만 **높은 라이선스 비용과 복잡한 학습 곡선**이 단점으로 지적된다. 특히 <u>한국의 교통 환경에 특화된 기능이 부족하여 현지화 작업이 필요</u>한 경우가 많다.

```{figure} #vissim-aimsun-comparison
:name: vissim-aimsun-comparison

<div style="display: flex; justify-content: space-around; align-items: center;">
  <div style="text-align: center; flex: 1;">
    <img src="../figures/vissim.png" alt="VISSIM 시뮬레이션" style="width: 90%; max-width: 400px;">
    <p><strong>VISSIM 시뮬레이션 화면</strong></p>
  </div>
  <div style="text-align: center; flex: 1;">
    <img src="../figures/aimsun.jpg" alt="AIMSUN 시뮬레이션" style="width: 90%; max-width: 400px;">
    <p><strong>AIMSUN 시뮬레이션 화면</strong></p>
  </div>
</div>
```

<p style="text-align: center;"><strong>[상용 교통 시뮬레이션 소프트웨어 비교: VISSIM vs AIMSUN]</strong></p>

**자율주행 시뮬레이션 플랫폼의 한계**

테슬라의 autopilot 시뮬레이션 환경은 실제 주행 영상과 유사한 고품질 렌더링에 중점을 둔다. 이는 컴퓨터 비전 기반의 자율주행 알고리즘 훈련에는 적합하지만, 도시 전체의 모빌리티 시스템 운영 관점에서는 과도한 자원 소모를 야기한다. 예를 들어, 서울시 전체의 택시 서비스를 시뮬레이션하는 데 굳이 실사와 같은 그래픽 품질이 필요하지 않다.

**참고**: 테슬라 자율주행 시뮬레이션에 대한 더 자세한 내용은 다음 영상을 참고하세요: [Tesla Autopilot Simulation](https://youtu.be/YRznFJWbW08?si=u80z2wVk0nuNxOsb) 

Waymo의 시뮬레이션 환경 역시 자율주행 차량의 안전성 검증에 특화되어 있어, 다양한 모빌리티 서비스의 통합 운영을 시뮬레이션하기에는 유연성이 부족하다. 또한 이러한 상용 플랫폼들은 대부분 폐쇄적인 구조로 되어 있어 연구자나 정책 입안자들이 자유롭게 활용하기 어렵다.

**오픈소스 시뮬레이션 도구의 가능성과 한계**

오픈소스 생태계는 혁신적인 도구들을 배출해왔다. OpenAI Gym은 강화학습 연구의 표준 플랫폼이 되었고, MuJoCo는 로보틱스 시뮬레이션의 핵심 도구로 자리잡았다. 이들의 성공 요인은 명확한 API 설계, 활발한 커뮤니티 참여, 그리고 지속적인 업데이트에 있다.

하지만 모빌리티 분야에서는 아직 이와 같은 성공적인 오픈소스 플랫폼이 등장하지 못했다. 기존의 오픈소스 교통 시뮬레이션 도구들은 대부분 특정 연구 목적을 위해 개발되어 범용성이 떨어지거나, 문서화가 부족하여 일반 사용자들이 접근하기 어려운 상황이다. 

이러한 현실은 모빌리티 시뮬레이션 분야에서 새로운 패러다임의 필요성을 더욱 부각시킨다. 연구자, 정책 입안자, 그리고 모빌리티 서비스 운영자 모두가 쉽게 접근하고 활용할 수 있는 통합된 플랫폼의 등장이 시급한 상황이다.

## 1.3 What is Urban Mobility Simulation?

```{note}
**Urban Mobility Simulation** 정의

<u>**Urban Mobility Simulation**은 도시의 교통 및 이동 시스템을 가상으로 모델링하고 시뮬레이션하는 기술이다.</u> 이는 실제 도시 환경에서 다양한 교통 수단과 사람들의 이동 패턴을 컴퓨터상에서 재현하는 것을 목표로 한다.
``` 

현실 세계에서 다양한 모빌리티 서비스를 테스트하는 것은 비용, 이해관계 충돌, 안전 문제 등으로 인해 불가능하다. 따라서 로보틱스 분야에서 사용되는 OpenAI gym, Mujoco와 같은 가상 환경처럼 모빌리티 시스템 운영에 특화된 가상 환경을 만들 필요가 있다.

### 1.3.1 전통적 교통 분석 방법론과의 비교

도시 교통 계획과 분석에는 오랫동안 전통적인 방법론들이 사용되어 왔다. <u>이러한 기존 접근법과 현대적인 Urban Mobility Simulation의 차이점을 이해하는 것은 시뮬레이션의 가치와 필요성을 명확히 하는 데 중요하다.</u>

**전통적 4단계 교통수요 예측 모델 (Four-Step Model)**

기존의 교통 계획에서는 주로 4단계 모델이 활용되어 왔다. 이 모델은 1) 통행 발생 (Trip Generation), 2) 통행 분포 (Trip Distribution), 3) 수단 선택 (Mode Choice), 4) 통행 배정 (Trip Assignment)의 순차적 단계로 구성된다. 각 단계는 독립적으로 처리되며, 주로 통계적 회귀 모델이나 중력 모델 등을 활용한다.

하지만 이러한 접근법은 몇 가지 근본적인 한계를 가진다. 첫째, 각 단계가 순차적으로 처리되어 단계 간 피드백이 제한적이다. 예를 들어, 교통 혼잡으로 인한 통행시간 증가가 수단 선택에 미치는 영향을 실시간으로 반영하기 어렵다. 둘째, 집계된 데이터(aggregate data)를 기반으로 하기 때문에 개별 이용자의 행동 변화나 새로운 모빌리티 서비스의 영향을 세밀하게 분석하기 어렵다.

**정적 분석과 동적 시뮬레이션의 차이**

전통적인 교통 분석은 주로 정적(static) 관점에서 이루어진다. 즉, 특정 시점의 교통량이나 수요를 분석하고, 이를 바탕으로 장기적인 계획을 수립한다. 반면 Urban Mobility Simulation은 동적(dynamic) 관점에서 시간의 흐름에 따른 변화를 연속적으로 추적한다.

예를 들어, 전통적인 방법으로는 "출근 시간대 강남역 주변의 교통량이 평소보다 20% 증가한다"는 정적인 분석이 가능하다. 하지만 시뮬레이션을 통해서는 "지하철 2호선 지연으로 인해 오전 8시 30분부터 택시 수요가 급증하고, 이로 인해 9시경 주변 도로의 교통 체증이 15분간 지속된다"와 같은 동적인 상황을 분석할 수 있다.

**개별 기반 모델링 (Agent-Based Modeling)의 장점**

Urban Mobility Simulation에서는 개별 기반 모델링(Agent-Based Modeling, ABM) 접근법이 핵심적인 역할을 한다. 이는 각 이용자, 차량, 운전자를 독립적인 에이전트(agent)로 모델링하여 그들의 개별적인 의사결정과 상호작용을 시뮬레이션한다.

이러한 접근법의 가장 큰 장점은 창발적 현상(emergent behavior)을 관찰할 수 있다는 점이다. 예를 들어, 개별 택시 기사들이 각자의 경험과 판단에 따라 이동하더라도, 전체적으로는 수요가 높은 지역에 택시가 자연스럽게 집중되는 현상을 관찰할 수 있다. 또한 새로운 모빌리티 서비스(예: 전동킥보드, 카풀 서비스)의 도입이 기존 교통 패턴에 미치는 복합적인 영향을 분석할 수 있다.

**실시간 적응성과 정책 실험의 가능성**

전통적인 교통 계획은 수년 단위의 장기 계획에 중점을 둔다. 하지만 현대의 도시 환경은 매우 빠르게 변화한다. 코로나19 팬데믹, 새로운 기술의 도입, 사회적 행동 변화 등이 교통 패턴에 즉각적인 영향을 미친다.

Urban Mobility Simulation은 이러한 변화에 대한 실시간 적응성을 제공한다. 새로운 정책이나 서비스를 실제로 도입하기 전에 가상 환경에서 다양한 시나리오를 테스트할 수 있다. 예를 들어, "특정 지역에 공유 자전거 스테이션을 설치하면 지하철 이용률은 어떻게 변할까?", "심야 버스 노선을 신설하면 택시 수요에 어떤 영향을 미칠까?"와 같은 질문에 대한 답을 사전에 얻을 수 있다.

이러한 장점들은 Urban Mobility Simulation이 단순히 기존 방법론의 개선이 아닌, 패러다임의 전환을 의미한다는 것을 보여준다. 정적이고 집계적인 분석에서 동적이고 개별 기반의 분석으로, 그리고 사후 평가에서 사전 실험으로의 변화가 바로 그것이다.

```{image} ../figures/ch01_DTUMOS.jpg
:alt: Urban Mobility Simulation
:width: 100%
:align: center
```

<p style="text-align: center;"><strong>[Urban Mobility Simulation Example (Taxi services in Seoul)]</strong></p>

## 1.4 Mobility Simulation Framework

이러한 문제를 해결하기 위해 **DTUMOS(Digital Twin for Urban Mobility Operating System)**라는 프레임워크를 제시하였다. **DTUMOS**는 <u>도시 모빌리티 운영 시스템을 위한 디지털 트윈</u>으로, **경량화**되고 **오픈소스 기반**의 프레임워크이다.

아래 그림에서 확인할 수 있듯이 **모든 기능을 개별 모듈로 분리**하여 **높은 확장성과 유연성**을 제공한다. 

```{image} ../figures/ch01_framework.png
:alt: Framework of Mobility Simulation
:width: 70%
:align: center
```

<p style="text-align: center;"><strong>[Framework of Mobility Simulation]</strong></p>

### [1] Data 
먼저 가장 첫번째에 위치한 **Data**에서는 <u>시뮬레이션을 구동하기 위한 필수적인 입력데이터</u>를 나타낸다. 

**`Historical Trip Record`**는 **승객 혹은 물품배송에 대한 요청 데이터**를 의미한다. 택시를 예로 들자면, 승객들이 **언제, 어디에서 택시를 호출해서 어디로 가고자 하는지**를 담고 있는 정보일 것이며, 물품 배송 문제라면 물건을 싣는 곳과 배송하는 곳의 위치 정보를 포함할 것이다. 

모빌리티 시스템 역시 **수요와 공급의 원칙**에 의하여 작동되며, 따라서 이 데이터는 모빌리티 서비스를 이용하고자 하는 '**수요**'를 나타낸다.

**`Work Schedule Table`**은 반면 **공급**을 의미한다. 서비스를 구성하는 전체 차량의 대수는 몇대인지, 그리고 해당 차량 운전사들의 근무 테이블에 대한 정보를 담고 있다. 이 데이터를 통해 전체적인 **Fleet size**가 결정이 될 것이고, 또 시간대별 서비스 중인 차량의 대수가 결정될 것이다. 

마지막으로 **`Road Network`**는 <u>차량이 움직이는 도로의 네트워크</u>를 나타낸다. 

네트워크 종류별 예시: **택시/버스**는 일반 도로 네트워크, **지하철/UAM**은 특정 노선/항로 네트워크를 사용한다.

여기서의 네트워크는 **점과 선으로 이루어진**, 즉 **Node와 Edge로 이루어진 Graph**를 의미한다:
- **일반 도로망**: Node = 교차로, Edge = 도로망
- **지하철**: Node = 역사, Edge = 철로

<u>`Road Network` 데이터는 모빌리티 시뮬레이션이 현실과 유사하게 작동되는데 매우 핵심적</u>이며, 향후 다루게 될 **`Vehicle Router` 알고리즘**에 중요한 입력자료로 활용된다. 

### [2] Calibration
두번째 레이어인 **Calibration**에서는 <u>모빌리티 시뮬레이션이 현실과 유사하게 작동하기 위한 보정작업</u>에 필요한 모듈을 담고 있다. 

여기서는 **`Estimated Time of Arrival (ETA) model`**이 핵심적인 역할을 한다.

이 모델은 **Historical Trip Record**와 **Road Network** 데이터를 입력으로 받아, **특정 경로의 예상 도착 시간을 계산**한다. 이를 통해 시뮬레이션의 **시간 추정 정확도**를 높이고, 현실적인 이동 시간을 반영할 수 있다.

### [3] Operate Mobility Service in Digital Twin
세번째 레이어인 **Operate Mobility service in Digital Twin**은 <u>모빌리티 서비스를 운영하고 시뮬레이션을 구동할 때 필요한 핵심적인 알고리즘들</u>을 포함한다. 

**`Demand & Supply Generator`**는 앞서 입력으로 사용한 **Trip Record 데이터**와 **Work Schedule 데이터**를 사용해 공간상에 **수요(e.g., 승객)와 공급(e.g., 차량)을 생성**하는 과정이다. 

이 과정이 왜 필요한지 의문이 들 수 있으나, **시뮬레이션에 랜덤성을 줄 필요가 있다.** 매번 같은 결과가 나온다면 시뮬레이션이 아닐것이다.

따라서 이 모듈에서는 우리가 가지고 있는 데이터를 사용해 **랜덤한 수요와 공급을 생성**하는 다양한 통계적 기법이 활용된다. 예를 들어, **포아송 프로세스**나 **몬테카를로 시뮬레이션** 등이 사용될 수 있다.

```{note}
몬테카를로 시뮬레이션이란 확률적 알고리즘을 사용하여 복잡한 시스템의 행동을 시뮬레이션하는 기법이다. 이 방법은 랜덤 샘플링을 반복적으로 수행하여 결과의 분포를 추정하며, 불확실성이 높은 상황에서 유용하게 사용된다. 

예를 들어, 서울의 강남역 부근에서 평일 저녁 6시부터 7시 사이의 택시 수요를 시뮬레이션한다고 가정해보자. 과거 데이터를 분석해 이 시간대에 평균적으로 시간당 30명의 승객이 택시를 잡는다고 가정하자. 택시수요가 포아송 분포를 따르고 평균(λ)을 30으로 설정하면 아래와 같은 결과가 나올 수 있다. 

18:00-18:01: 0명  
18:01-18:02: 1명  
18:02-18:03: 0명  
18:03-18:04: 2명  
...  
18:59-19:00: 1명  

이렇게 생성된 숫자의 총합은 대략 30명 근처가 되지만, 매번 시뮬레이션할 때마다 다른 결과가 나오게 되며, 따라서 우리는 시뮬레이션을 여러번 돌려 더 안정적이고 신뢰할 수 있는 결과를 얻을 수 있다. 
```

**`Vehicle Router Algorithm`**은 **Road Network 데이터**를 기반으로 <u>최적 경로를 계산</u>한다. 이 알고리즘은 **그래프 이론**을 바탕으로 한 다양한 최단 경로 알고리즘을 활용한다. 

대표적인 알고리즘 비교:
- **다익스트라(Dijkstra)**: 모든 노드에 대한 최단 경로, 대규모에서 **계산 시간 길어짐**
- **A알고리즘**: 휴리스틱 함수 사용, **더 빠르게 최적 경로 찾기**

우리가 일상적으로 사용하는 **Naver, Kakao, Google 지도의 길찾기 서비스**나 네비게이션 시스템도 이와 유사한 알고리즘을 기반으로 작동한다.

이들 서비스는 **실시간 교통 정보**와 결합하여 **더욱 정확하고 효율적인 경로**를 제시한다. 본 강의에서는 이러한 **상용 API**를 활용하여 경로를 추출하는 방법을 학습할 예정이다. 또한, 앞서 구축한 **`Road Network`**에서 직접 그래프를 추출하여 경로를 산출하는 알고리즘을 실습함으로써, <u>알고리즘의 작동 원리를 깊이 이해하고 실제 적용 능력을 기를 것</u>이다.

`Dispatch Algorithm`은 수요와 공급을 효율적으로 매칭하는 핵심 알고리즘이다. 택시 서비스를 예로 들면, 승객의 호출이 들어왔을 때 어떤 택시를 배정할지 결정하는 역할을 한다. 현재 한국의 택시 시스템에서는 주로 택시 기사들에게 호출 정보(콜)를 제공하고, 기사가 수락 여부를 결정하는 방식을 채택하고 있다. 그러나 이는 효율성 측면에서 한계가 있을 수 있다.

최근 학계와 업계에서는 다양한 최적화(Optimization) 알고리즘을 적용하여 승객과 차량을 더욱 효율적으로 매칭하는 방법을 연구하고 있다. 이러한 알고리즘의 목표는 상황에 따라 다르지만, 일반적으로 승객의 대기 시간 최소화, 차량의 공차 시간 감소, 전체 시스템의 운영 효율성 증대 등을 포함한다. 예를 들어, 헝가리안 알고리즘(Hungarian Algorithm)이나 유전 알고리즘(Genetic Algorithm) 등이 이러한 최적화 문제에 적용될 수 있다.

`Vehicle Relocation Algorithm`은 ETA 모델의 결과를 바탕으로 차량의 재배치 전략을 수립하는 중요한 알고리즘이다. 이는 특히 수요와 공급의 불균형이 발생하는 도시 환경에서 중요한 역할을 한다. 전통적으로 버스는 정해진 노선과 배차 간격에 따라 운행되었고, 택시의 경우 기사의 경험에 의존하여 이동했다. 그러나 빅데이터와 인공지능 기술의 발전으로, 보다 과학적이고 효율적인 차량 재배치가 가능해졌다.

데이터 기반의 차량 재배치는 여러 가지 이점을 제공한다. 첫째, 수요 예측을 통해 특정 지역과 시간대의 수요 패턴을 파악하고, 이에 맞춰 사전에 차량을 배치할 수 있다. 둘째, 실시간 교통 상황과 이벤트 정보를 고려하여 동적으로 차량을 재배치함으로써 긴급 상황에 더 빠르게 대응할 수 있다. 셋째, 차량의 공차 시간을 줄이고 운행 효율성을 높여 전체 시스템의 경제성을 개선할 수 있다.

더욱이, 자율주행 차량과 배달 로봇 등 새로운 모빌리티 수단의 등장은 Vehicle Relocation Algorithm의 중요성을 더욱 부각시킨다. 이러한 무인 시스템은 인간 운전자의 직관이나 경험에 의존할 수 없기 때문에, 데이터 기반의 과학적인 재배치 전략이 필수적이다. 따라서 앞으로 Vehicle Relocation Algorithm은 스마트 시티와 미래 모빌리티 시스템의 핵심 요소로 자리잡을 것으로 예상된다.

### 1.4.1 구현 시 주요 도전과제와 해결방안

DTUMOS와 같은 대규모 모빌리티 시뮬레이션 플랫폼을 구현하는 과정에서는 여러 기술적, 방법론적 도전과제들이 존재한다. 이러한 문제들을 사전에 이해하고 대응 방안을 마련하는 것은 성공적인 시뮬레이션 구축의 핵심이다.

**확장성과 성능 최적화**

도시 규모의 모빌리티 시뮬레이션에서 가장 큰 도전은 확장성(scalability) 문제이다. 서울시와 같은 대도시에는 수백만 명의 시민과 수만 대의 차량이 동시에 움직인다. 이를 실시간으로 시뮬레이션하려면 막대한 컴퓨팅 자원이 필요하다.

이 문제를 해결하기 위해서는 여러 접근법이 활용될 수 있다. 첫째, 병렬 처리(parallel processing)를 통해 시뮬레이션 작업을 여러 프로세서에 분산시킬 수 있다. 예를 들어, 서울시를 여러 구역으로 나누어 각 구역의 시뮬레이션을 독립적으로 처리하되, 구역 간 경계에서의 상호작용만 동기화하는 방식이다. 둘째, 적응적 세부도(adaptive level of detail) 기법을 사용하여 중요도가 높은 지역은 상세하게, 낮은 지역은 단순화하여 모델링할 수 있다.

**실시간 데이터 통합의 복잡성**

현실적인 시뮬레이션을 위해서는 교통 상황, 날씨, 특별 이벤트 등의 실시간 데이터를 지속적으로 통합해야 한다. 하지만 이러한 데이터들은 서로 다른 형식, 업데이트 주기, 품질을 가지고 있어 통합이 복잡하다.

예를 들어, 서울시 공공데이터포털에서 제공하는 버스 위치 정보는 약 1분 간격으로 업데이트되지만, 택시 호출 데이터는 실시간으로 발생한다. 또한 기상청의 날씨 데이터는 시간당 업데이트되며, 교통사고나 도로 공사 정보는 불규칙하게 발생한다. 이러한 이질적인 데이터를 일관된 형태로 통합하고 시뮬레이션에 반영하는 것은 상당한 기술적 도전이다.

**모델 검증과 보정의 어려움**

시뮬레이션 모델이 현실을 얼마나 정확하게 반영하는지 검증하는 것은 매우 중요하지만 동시에 어려운 과제이다. 특히 새로운 모빌리티 서비스나 정책의 효과를 예측하는 경우, 비교할 수 있는 실제 데이터가 존재하지 않기 때문에 검증이 더욱 복잡해진다.

모델 검증을 위해서는 다층적 접근법이 필요하다. 첫째, 개별 구성요소(예: ETA 모델, 수요 예측 모델)의 정확도를 독립적으로 평가한다. 둘째, 과거 데이터를 사용한 백테스팅(backtesting)을 통해 시뮬레이션의 전체적인 성능을 검증한다. 셋째, 실제 환경에서의 제한적인 파일럿 테스트를 통해 모델의 예측력을 확인한다.

또한 모델의 불확실성을 명시적으로 다루는 것이 중요하다. 몬테카를로 시뮬레이션을 통해 여러 시나리오를 생성하고, 결과의 신뢰구간을 제시함으로써 의사결정자들이 불확실성을 고려한 판단을 할 수 있도록 지원해야 한다.

**사용자 인터페이스와 접근성**

아무리 뛰어난 시뮬레이션 엔진이라도 사용자가 쉽게 활용할 수 없다면 의미가 없다. 특히 DTUMOS와 같은 플랫폼은 교통 전문가, 정책 입안자, 연구자 등 다양한 배경을 가진 사용자들을 대상으로 한다. 이들 각각의 요구사항과 기술 수준이 다르기 때문에 사용자 인터페이스 설계가 매우 중요하다.

이를 해결하기 위해서는 사용자 수준에 따른 단계별 인터페이스 설계가 필요하다. 일반 사용자를 위해서는 복잡한 기술 지식 없이도 쉽게 사용할 수 있는 웹 기반 화면을 제공하고, 전문가를 위해서는 고급 기능에 접근할 수 있는 프로그래밍 인터페이스(API)와 개발 도구(SDK)까지 다양한 접근 방법을 제공해야 한다. 또한 시뮬레이션 결과를 차트, 그래프, 지도 등으로 쉽게 볼 수 있는 시각화 도구와 실시간으로 상호작용할 수 있는 대시보드의 개발이 필수적이다.

**데이터 프라이버시와 보안**

모빌리티 시뮬레이션에서 사용되는 데이터는 종종 개인의 이동 패턴과 행동 정보를 포함한다. 이러한 민감한 정보의 처리와 보호는 법적, 윤리적 측면에서 중요한 도전과제이다.

이를 해결하기 위해서는 차등 프라이버시(differential privacy), 데이터 익명화, 연합 학습(federated learning) 등의 기법을 활용할 수 있다. 특히 개인정보를 직접 수집하지 않고도 집계된 패턴을 학습할 수 있는 방법론의 개발이 중요하다. 또한 데이터의 수집, 저장, 처리, 공유의 모든 단계에서 보안 정책을 수립하고 이를 엄격히 준수해야 한다.

이러한 도전과제들은 단순히 기술적인 문제를 넘어 학제간 협력과 지속적인 연구개발을 필요로 한다. 하지만 이러한 어려움을 극복했을 때 얻을 수 있는 사회적 가치와 혁신의 잠재력은 충분히 도전할 만한 가치가 있다.

### [4] Outputs

마지막으로 **Outputs** 레이어에서는 `Performance Report`와 `Simulation Visualization`을 통해 시뮬레이션 결과를 종합적으로 분석하고 시각화한다.

`Performance Report`는 시뮬레이션 완료 후 모빌리티 시스템의 성능을 정량적으로 평가할 수 있는 다양한 지표를 제공한다. 주요 지표에는 다음과 같은 항목들이 포함될 수 있다.

- 사용자 측면: 평균 대기시간, 최대 대기시간, 탑승 실패율
- 운영 측면: 차량 이동거리, 공차율, 차량 회전율
- 경제적 측면: 총 수익, 운영 비용, 수익성 지표
- 지역 분석: 주요 탑승 및 하차 위치, 핫스팟 분석

`Simulation Visualization`은 시뮬레이션의 동적인 측면을 시각적으로 표현한다. 이를 통해 사용자는 시공간상에서 수요와 공급의 분포, 차량의 이동 패턴, 혼잡 지역 등을 직관적으로 파악할 수 있다. 주요 기능은 다음과 같다.

- 실시간 차량 위치 및 상태 표시
- 수요-공급 불균형 지역 하이라이팅
- 시간대별 수요 변화 애니메이션
- 주요 성능 지표의 실시간 업데이트

이러한 Output 툴을 통해 사용자는 모빌리티 시스템의 전반적인 성능을 평가하고, 잠재적인 문제점을 식별하며, 시스템 개선을 위한 인사이트를 얻을 수 있다. 또한, 다양한 시나리오를 비교 분석함으로써 최적의 운영 전략을 수립하는 데 활용할 수 있다.

## 1.5 Discussion and Practical Exercises

### 1.5.1 팀별 토의 주제 

아래 주제에 대해 **팀별로 토의하고 발표**해봅시다. 20분 논의. 각 팀당 5분 발표 (슬라이드 10장 미만)  
[토론 발표자료](https://docs.google.com/presentation/d/1TP50cVnT6QeBN2-beNAMJKgvthp8Ia12srzNsX4Q9eg/edit?usp=sharing)

**토의 주제 1: 모빌리티 시스템 문제점 분석**
- <u>현재 우리가 이용하는 모빌리티 시스템에서 가장 개선이 필요한 부분은 무엇인가?</u>
- 해당 문제점을 해결하기 위한 **구체적인 방안**을 제시해보자.
- 문제를 진단하는 것이 모든 공학의 첫 단계이다. 

**토의 주제 2: 혁신적 모빌리티 서비스 기획**
- 시뮬레이션을 통해 검증하고 싶은 혁신적인 모빌리티 서비스 아이디어가 있다면?
- 해당 서비스의 target 사용자, 예상 비즈니스 모델, 기술적 요구사항을 정의해보자.
- 기존 모빌리티 시스템에 미칠 수 있는 영향을 예측해보자.

**토의 주제 3: AI 기술 활용 방안**
- 점차 다분화 되고 발전하는 A.I. 기술에 대해 논의해보자
- A.I. 기술을 도시/교통 시뮬레이션에 어떻게 활용할 수 있을까?
- Agentic AI란 무엇인가?


### 1.5.2 실습 과제 (Homework)

**과제 1: 간단한 모빌리티 시뮬레이션 시나리오 설계**

다음 단계에 따라 간단한 시뮬레이션 시나리오를 설계하세요. Notion으로 정리하여 링크를 송부할 것

*단계 1: 문제 정의*
- 해결하고자 하는 구체적인 모빌리티 문제 선정

*단계 2: 시뮬레이션 요구사항 분석*
- 필요한 입력 데이터 목록 작성
- 시뮬레이션해야 할 에이전트(승객, 차량 등) 정의
- 고려해야 할 제약조건 나열

*단계 3: 성과 지표 설정*
- 시뮬레이션 결과를 평가할 구체적인 지표 설정
- 예: 평균 대기시간, 차량 가동률, 승객 만족도 등

*단계 4: 시나리오 설계*
- 현재 상황(baseline) 시나리오
- 개선 방안을 적용한 대안 시나리오 2-3개

