주 메뉴 열기

몬테카를로 방법(Monte Carlo method)은 난수를 이용하여 함수의 값을 확률적으로 계산하는 알고리즘을 부르는 용어이다. 수학이나 물리학 등에 자주 사용되며, 계산하려는 값이 닫힌 형식으로 표현되지 않거나 복잡한 경우에 근사적으로 계산할 때 사용된다. 스타니스와프 울람모나코의 유명한 도박의 도시 몬테카를로의 이름을 본따 명명하였다.

1930년 엔리코 페르미중성자의 특성을 연구하기 위해 이 방법을 사용한 것으로 유명하다. 맨해튼 계획의 시뮬레이션이나 수소폭탄의 개발에서도 핵심적인 역할을 담당하였다.

알고리즘의 반복과 큰 수의 계산이 관련되기 때문에 몬테카를로는 다양한 컴퓨터 모의 실험 기술을 사용하여 컴퓨터로 계산하는 것이 적합하다.

Monte Carlo 방법(또는 Monte Carlo 실험)은 수학적인 결과를 얻기 위해 반복적으로 무작위 샘플링의 방법을 이용하는 넓은 범위의 컴퓨터 알고리즘이다. 이 알고리즘의 본질적인 생각은 결정론적일 수도 있는 문제를 해결하기 위해 무작위성을 이용하는 것이다. 이 방법은 보통 물리나 수학 문제를 해결하는 데 쓰이며, 다른 방향으로의 접근이 불가능할 때 가장 유용하다. Monte Carlo 방법은 주로 최적화, 수치적 통합, 확률 분포로부터의 도출 등에서 주로 사용된다.

물리 문제에서 Monte Carlo 방법은 유체, 무질서한 물질, 강하게 결합한 고체 및 세포 구조와 같은 많은 결합 자유도를 가진 시스템을 시뮬레이션 하는 데 유용하다. 그 밖의 예로는 사업의 위험성 계산과 같은 입력 값에 상당한 불확실성이 있는 모델링 현상과, 수학에서는 복잡한 경계 조건을 가진 다차원적의 정적분이 있다. 시스템 엔지니어링 문제(우주, 석유 탐사, 항공기 설계 등)에 적용함에 있어 Monte Carlo 방법 기반의 실패 예측, 비용 초과 및 스케줄 초과는 일상적으로 인간의 직관 또는 대안적인 방법보다 낫다.

대체적으로, Monte Carlo 방법은 확률론적 해석을 가진 문제를 해결하기 위해 사용될 수 있다. 대수의 법칙에 의해, 일부 무작위 변수의 예상 값으로 설명되는 전체는 변수의 독립 표본의 평균(샘플 평균)을 취함으로써 근사치를 구할 수 있다. 변수의 확률 분포가 매개변수로 표시될 때 수학자들은 종종 MCMC(Markov chain Monte Carlo) 샘플러를 사용한다 중심 아이디어는 어느 규정된 고정 확률 분포를 가진 현명한 Markov 체인 모델을 설계하는 것이다. 즉, 한계에서 MCMC 방법에 의해 생성되는 샘플은 원하는 (목표) 분포의 샘플이 될 것이다. ergodic 정리에 의해, 고정된 분포는 MCMC 샘플러의 무작위 상태의 측정에 의해 근사된다.

다른 문제에서의 목표는 비선형 진화 방정식을 만족시키는 일련의 확률 분포에서 도출하는 것이다. 이러한 확률 분포의 흐름은 항상 변환 확률이 현재 무작위 상태의 분포에 따라 달라지는 Markov 프로세스의 무작위 상태의 분포로 해석할 수 있다. (McKean – Vlasov 프로세스, 비선형 필터링 방정식 참조). 다른 경우에는 표본 복잡도가 증가하는 확률 분포의 흐름을 받는다(시간 지평선이 증가하는 경로 공간 모델, 온도 매개변수 감소와 관련된 Boltzmann – Gibbs 측정 등). 이 모델들은 또한 비선형 Markov 사슬의 무작위 상태의 법칙의 진화로 볼 수도 있다. 이러한 정교한 비선형 Markov 프로세스를 시뮬레이션 하는 대표적인 방법은 프로세스의 많은 사본을 샘플링하는 것으로, 진화 방정식에서 무작위 상태의 알 수 없는 분포를 샘플링된 경험적 척도로 대체한다. 전통적인 Monte Carlo 및 MCMC 방법론과는 대조적으로, 이러한 평균 전계 입자 기법은 순차적 상호작용 샘플에 의존한다. 용어 평균 필드는 각 표본(예: 입자, 개인, 보행자, 대리인, 생물 또는 표현형)이 프로세스의 경험적 측정과 상호작용한다는 사실을 반영한다. 시스템의 크기가 무한대인 경향이 있을 때, 이러한 무작위적 측정은 비선형 Markov 사슬의 무작위 상태의 결정론적 분포로 수렴되어 입자 사이의 통계적 상호작용이 사라진다.

예제편집

 
몬테카를로 방법으로 원주율을 계산하는 과정

Monte Carlo 방법은 다양하지만, 특정한 패턴을 따르는 경향이 있다.          

1.    가능한 입력의 도메인을 정의한다.

2.    도메인에 대한 확률 분포에서 임의로 입력을 생성한다.

3.    입력에 대한 결정론적인 계산을 수행한다.

4.    결과를 집계한다.

예를 들어 단위 정사각형에 새겨진 사분면(원형 부분)을 생각해 보자. Monte Carlo 방법을 사용해서 의 값을 근사치로 추정할 수 있다.

1.    정사각형을 그린 다음, 그 안에 사분면을 삽입한다.

2.    정사각형 위에 일정한 개수의 점을 균일하게 분포한다.

3.    사분면 내부의 점(즉, 원점으로부터 1 미만)의 개수를 센다.

4.    내부의 개수와 전체 개수의 비율은 두 영역의 비율을 나타낸다. 그 값인 에 4를 곱하여  를 만든다.

여기서 두 가지의 중요한 점이 있다.

1.    점이 균일하게 분포되지 않으면 근사치가 떨어진다.

2.    평균적으로 더 많은 점을 배치할수록 근사치가 개선된다.

다음은 원주율을 계산하는 몬테카를로 알고리즘의 한 예시이다.

  •  에서 점  표집한다.
  • 표집한 점이 중심이  에 있고 반지름이 1인 원에 속하는지 계산한다. 이는 원의 정의에 따라  와 1을 비교함으로써 계산할 수 있다.
  • 위의 두 과정을 충분히 반복하여, 원에 속한 점들의 개수를 계산한다.

표집 영역과 원의 공통 영역은  의 넓이를 가지며, 원에 속한 점 개수를 전체 점 개수로 나눈 비율은 이 값을 근사화한다.