DES Chapter 1-6 What is Monte Carlo Simulation?

Chapter 1-Overview of Computer Simulation

Featured image

ReadMe

아래 내용은 최병규, 강동훈 저서인 Modeling and Simulation of discrete-event systems 책의 내용을 주로 다루고 있습니다.

해당 시리즈의 목차입니다. (챕터 목차는 제일 아래에 있습니다.)


  1. Overview of Computer Simulation
  2. Basics of Discrete-Event System Modeling and Simulation
  3. Input Modeling for Simulation
  4. Introduction to Event-Based Modeling and Simulation
  5. Parameterized Event Graph Modeling and Simulation
  6. Introduction to Activity-Based Modeling and Simulation
  7. Simulation of ACD Models Using Arena
  8. Output Analysis and Optimization
  9. State-Based Modeling and Simulation
  10. Advanced Topics in Activity-Based Modeling and Simulation
  11. Advanced Event Graph Modeling for Integrated Fab Simulation
  12. Concepts and Applications of Parallel Simulation (Here)

What is Monte Carlo Simulation?

몬테카를로 시뮬레이션(Monte Carlo simulation)을 기반의 방법론들은 결과를 측정하기위해 반복적인 랜덤 샘플링에 의존하는 계산 알고리즘의 분야입니다. 몬테카를로 시뮬레이션은 이공계에서 수치적인 해석에 좋은 성능을 보여 사용되고 있습니다. 또한 리스크 분석, 금융에 대한 불확실성, 프로젝트 관리, 그 외 예측에도 사용됩니다.

Numerical Integration via Monte Carlo Simulation

수치적분(Numerical Integration)은 몬테카를로 시뮬레이션의 대표적인 예시로 볼 수 있습니다. 그 중에서도 \(\pi\) 의 값을 몬테 카를로 시뮬레이션을 통해 근사치로 구할 수 있습니다.

위 그림을 보면, 반지름이 1이고 중심 좌표값은 (1, 1)입니다. 균일한 랜덤 변수를 [0, 2]의 범위에서 x, y를 쌍으로 생성 시킵니다. 이는 2x2 짜리 사각형에 들어오는 점들로서 역할을 가지게 됩니다. n은 만들어진 점들의 수이며 m은 반지름 1이 가지는 원에 해당되는 점들의 수입니다. 여기서 \(A_c\) 와 \(A_s\) 를 순서대로 원과 사각형에 대한 면적으로 정의하겠습니다. 그럼 \(\frac{m}{n}\) 으로서 전체 면적에 들어가는 점의 수를 분모로 두고 원 안에는 몇 개가 들어가 있는 지 비율로서 알 수 있습니다. n이 커진다면 점점 \(\frac{A_c}{A_s}\) 로 접근하게 되겠죠. 우리는 잘 아는 것처럼 \(A_c\) 는 원의 면적이고, 원의 면적은 \(A_c=\pi r^2\) 으로 구할 수 있습니다. 다만, r(반지름)이 1이기에 현재의 \(A_c=\pi\) 라고 볼 수 있죠. 또한, \(A_s\) 는 사각 면적이므로 4입니다. 그래서 결론적으로

\[\frac{m}{n}=\frac{A_c}{A_s}=\frac{\pi}{4}\rightarrow \pi=4\frac{m}{n}\]

입니다. 혹시나 궁금하신 분들이 있다면 아래 Java 코드를 간단하게 붙여 놨습니다.

double U = Math.random();
double m = 0, n = 0;
double max = 10000; // total number of sampling
while (n < max)
{
    double u1 = Math.random();
    double u2 = Math.random();
    double x = 2.0 * u1;
    double y = 2.0 * u2;
    if(x * x + y * y) <= 1) m++;
    n++;
}
double pi = 4.0

Risk Analysis via Monte Carlo Simulation

어떤 세가지 과제를 포함하는 프로젝트가 있다고 합시다. 각 과제마다 걸리는 기간을 아래 표에 기입했습니다.

Task 최소 평균 최대
Task1 4 months 5 months 7 months
Task2 3 months 4 months 6 months
Task3 4 months 5 months 6 months
전체 11 months 14 months 19 months

위 표가 있으면 저희는 어떤 실패에 대한 리스크나 기회에 대해서 고민을 하게 됩니다. 일정을 산출함에 있어서 몇개월이 걸린다고 말할 수 있을까요? 이를 몬테 카를로 방식으로 접근해봅시다. 각 과제에 대한 최소, 평균, 최대를 알고 있으니 최소, 평균, 최대에 대한 발생확률은 균일 분포가 아닌 베타 분포를 사용하여 500번의 몬테 카를로 시뮬레이션을 진행하겠습니다.

기간 12 13 14 15 16 17 18
기간내 완료 1 31 171 394 482 499 500
누적확률 0% 6% 34% 79% 96% 100% 100%

성향마다 다르겠지만, 15개월째에는 프로젝트가 총 394개가 완료됐습니다. 거의 20%의 리스크만 남겨둔 경운데요. 위와같이 간단하며 빠른 시뮬레이션을 통해 의사결정을 하고 싶을때 유용한 몬테 카를로 시뮬레이션은 현재도 금융계에서 쓰이는 방법 중 하나입니다.

Chapter index


1.1. Introduction

1.2. What is a System?

1.3. What is computer simulation?

1.4. What is discrete-event simulation?

1.5. What is continuous simulation?

1.6. What is Monte Carlo Simulation? (Here)

1.7. What are simulation experimentation and optimization?

1.8. Review questions