Monte Carlo가 아닌 시뮬레이션 방법이 있습니까? 모든 시뮬레이션 방법에는 함수에 임의의 숫자를 대입하여 함수의 값 범위를 찾습니다. 모든 시뮬레이션 방법은 본질적으로 Monte Carlo 방법입니까?
Monte Carlo가 아닌 시뮬레이션 방법이 있습니까? 모든 시뮬레이션 방법에는 함수에 임의의 숫자를 대입하여 함수의 값 범위를 찾습니다. 모든 시뮬레이션 방법은 본질적으로 Monte Carlo 방법입니까?
답변:
Monte Carlo가 아닌 시뮬레이션이 있습니다. 기본적으로 모든 Monte Carlo 방법은 많은 수의 (약한) 법칙을 사용합니다. 평균은 기대치에 수렴합니다.
그런 다음 Quasi Monte Carlo 방법이 있습니다. 이들은보다 빠른 수렴을 위해 임의의 숫자와 간격이 동일한 그리드의 절충으로 시뮬레이션됩니다.
Monte Carlo가 아닌 시뮬레이션은 예를 들어 계산 유체 역학에 사용됩니다. 유체의 단일 부분의 "마이크로 스케일"에서 유체 역학을 쉽게 모델링 할 수 있습니다. 이들 부분은 초기 속도, 압력 및 크기를 가지며 이웃 한 부분으로부터의 힘 또는 고체에 의해 영향을 받는다. 시뮬레이션은 모든 부분과 상호 작용을 계산하여 유체의 전체 동작을 계산합니다. 이를 효율적으로 수행하면 과학이됩니다. 거기에는 임의의 숫자가 필요하지 않습니다.
기상학이나 기후 연구에서도 비슷한 일이 일어납니다. 그러나 이제는 초기 값을 정확히 알 수 없습니다. 측정 된 특정 지점의 기상 데이터 만 있습니다. 많은 데이터가 추측되어야합니다.
이러한 복잡한 문제는 입력 데이터에서 연속적이지 않기 때문에 다른 추측으로 시뮬레이션을 실행합니다. 최종 결과는 가장 빈번한 결과 중에서 선택됩니다. 이것은 실제로 일부 일기 예보가 원칙적으로 시뮬레이션되는 방법입니다.
Monte Carlo 방법은 통계 문제에 컴퓨터 시뮬레이션을 사용하는 첫 번째 방법이었습니다. 이 프로젝트는 2 차 세계 대전 동안 맨해튼 프로젝트를 진행하고있는 로스 알 라모스 연구소의 John von Neumann, Stanisław Ulam 및 Nicholas Metropolis 팀에 의해 개발되었습니다. 그것은 1949 년 Metropolis & Ulam에 의해 처음 설명되었으며 , 그 이름이 인쇄본에 나타난 것은 처음이었습니다. 그것을 발견 한 과학자들은 또한 그들이 작업했던 최초의 컴퓨터 중 하나 를 사용할 수 있었기 때문에 가능 했습니다. 그들의 연구에서 그들은 물리적 문제를 시뮬레이션하기 위해 Monte Carlo 방법을 사용했으며,이 과정의 몇 가지 예를 샘플링하여 복잡한 문제를 시뮬레이션 할 수 있다는 아이디어가있었습니다. Monte Carlo의 역사에 관한 여러 흥미로운 기사가 있습니다.예를 들어 Robert & Casella 와 같은 대도시 자체 또는 일부 최신 정보 .
따라서 "Monte Carlo"는 통계 문제를 해결하기 위해 컴퓨터 시뮬레이션을 목적으로 설명한 첫 번째 방법의 이름입니다. 그런 다음 이름은 전체 시뮬레이션 방법의 일반적인 이름이되었으며 이러한 방식으로 일반적으로 사용됩니다.
몬테 카를로가 아닌 것으로 간주 되는 시뮬레이션 방법이 있지만, 몬테 카를로는 컴퓨터 시뮬레이션을 처음으로 사용했지만 "컴퓨터 시뮬레이션"과 "몬테 카를로"를 서로 바꾸어 사용하는 것이 일반적입니다.
"시뮬레이션"이 무엇인지에 대한 다른 정의가 있습니다.
메리 암-웹스터 사전 :
3 a : 다른 시스템의 기능에 의한 한 시스템 또는 프로세스의 기능에 대한 모방 표현
케임브리지 사전 :
행동하거나 실제처럼 보이지만 실제가 아닌 것을 만들기 위해
위키 백과 :
시간이 지남에 따라 실제 프로세스 또는 시스템 운영의 모방
시뮬레이션이 작동해야하는 것은 일부 시스템이나 프로세스를 모방하는 능력입니다. 여기에는 임의의 가능성이 필요하지 않지만 (Monte Carlo와 마찬가지로) 모든 가능성이 시도되면 절차는 철저한 검색 또는 일반적으로 최적화 문제 입니다. 임의의 요소가 관련되고 컴퓨터를 사용하여 일부 모델의 시뮬레이션을 실행하는 경우이 시뮬레이션은 초기 Monte Carlo 방법의 정신과 유사합니다 (예 : Metropolis & Ulam, 1949). 시뮬레이션의 중요한 부분 인 랜덤 요소는 Ross (2006, Simulation)에 의해 언급됩니다.. 엘스 비어). 그러나 질문에 대한 답은 가정 한 시뮬레이션의 정의에 따라 크게 다릅니다. 예를 들어, 최적화 또는 철저한 검색을 사용하는 결정 론적 알고리즘이 실제로 시뮬레이션이라고 가정 할 경우, 다양한 알고리즘을 시뮬레이션으로 고려해야하며 이는 시뮬레이션 자체 의 정의를 매우 흐리게 만듭니다.
말 그대로 모든 통계적 절차는 "시도"되고 평가되는 현실의 일부 모델 또는 근사치를 사용합니다. 이것은 시뮬레이션의 사전 정의와 일치합니다. 그러나 모든 통계를 시뮬레이션 기반으로 간주하지는 않습니다. 질문과 토론은 "시뮬레이션"에 대한 정확한 정의가 부족한 것으로 보인다. 몬테 카를로 (Monte Carlo)는 전형적인 시뮬레이션의 예인 것처럼 보이지만, 시뮬레이션의 일반적인 정의를 고려한다면 많은 비-몬테 카를로 방법이 그 정의에 속합니다. 몬테 카를로가 아닌 시뮬레이션이 있지만, 명확하게 시뮬레이션 기반의 모든 방법은 몬테 카를로의 정신과 비슷하거나 어떤 식 으로든 관련되거나 영감을 받았습니다. 그것이 "몬테 카를로"가 종종 "시뮬레이션"의 동의어로 사용되는 이유입니다.
모든 시뮬레이션 방법에는 함수에 임의의 숫자를 대입하여 함수의 값 범위를 찾습니다.
나는 그 시뮬레이션의 정의에 대해 들어 본 적이 없다. 예를 들어, Wikipedia의 시뮬레이션 및 컴퓨터 시뮬레이션 기사 에서는 무작위 및 확률론 과 같은 용어를 간단히 언급합니다.
임의성을 포함하지 않으므로 Monte Carlo 시뮬레이션이 아닌 시뮬레이션의 간단한 예는 다음과 같습니다.
간단한 진자의 동작을 시뮬레이션하고 간단한 가정 (질량없는 코드, 지키는 질량, 마찰 없음, Coriolis 힘과 같은 외부 힘 없음)을 만들고 싶습니다. 그런 다음 수학적 진자를 얻었고 그 운동을 설명하는 미분 방정식을 쓸 수 있습니다. 그런 다음 Runge–Kutta 방법 과 같은 미분 방정식에 솔버를 사용 하여 주어진 초기 조건에 대한 궤적을 시뮬레이션 할 수 있습니다. 또한 이론적으로는 초기 조건을 더 고려할 필요가 없다고 주장 할 수 있습니다.
이 방법으로 난수를 사용하지 않고 실제 진자에 대한 훌륭한 시뮬레이션을 얻을 수 있습니다. 따라서 이것은 Monte–Carlo 시뮬레이션이 아닙니다.
다른 예에서, 임의의 무작위성이없는 단순한 모집단 모델 인 로지스틱 맵을 고려하십시오 .
힘 아래 파티클의 시뮬레이션은 Runge-Kutta 또는 Monte Carlo가 아닌 다른 결정 론적 알고리즘을 사용하여 수행 할 수 있습니다.
Monte Carlo는 적분을 계산하는 데 사용됩니다 (시뮬레이션이라고 할 수 있지만 결국 추정기의 수치 근사값 만 계산합니다). 다시 결정 론적 방법으로 사다리꼴 규칙을 사용할 수 있습니다.
대체로 알고리즘을 분리하여 결정 론적 및 비결정론 적 적분을 계산할 수 있습니다. Monte Carlo는 비 결정적 방법입니다. Quasi-Monte Carlo도 있습니다. 사다리꼴 규칙은 결정 론적 알고리즘입니다.
간단한 설명으로 찌르겠습니다. "가정"모델은 (결정 론적) 시뮬레이션입니다. 위젯 처리 플랜트와 같은 복잡한 시스템이 있다고 가정하십시오. 비용과 같은 일부 성능 매개 변수를 추정 할 수 있기를 원합니다. 플랜트의 수학적 모델을 작성한 다음, 위젯이 다른 조작을 통해 빠르게 이동하는 속도, 다양한 방향으로 흐르는 백분율 또는 처리 할 위젯 수와 같은 모델의 특정 요인에 대한 다양한 가정을 선택합니다. 모델은 플랜트의 시뮬레이션이며 각 가정 세트는 해당 성능 매개 변수의 추정치를 제공합니다.
이제 불확실성을 소개하십시오. 다음 달에 위젯 수요가 무엇인지 모르지만 비용을 추정해야합니다. 따라서 수요가 1,000 위젯이라고 말하는 대신 수요에 대한 확률 분포를 추정합니다. 그런 다음 해당 분포에서 수요 값을 임의로 샘플링하여 가정 한 값으로 사용합니다. 그 동안 다른 가정에도 확률 분포를 사용할 수 있습니다. 다양한 확률 분포에서 추출한 가정을 연결하여 반복해서 모형을 사용합니다. 결과는 비용 추정치의 분포입니다. 이것이 몬테카를로 측면입니다.
몬테 카를로는 시뮬레이션 모델 위에 계층화 된 "기능"또는 "엔진"입니다. 단일 추정에 대한 단일 가정 세트로 시뮬레이션하는 대신 무작위로 선택된 가정을 사용하여 시뮬레이션 콜렉션을 수행합니다.
게임 이론에서, 특히 시뮬레이션에서 무작위성을 사용하는 접근법을 몬테 카를로 기법이라고합니다. 일반적으로 현대 프로그램에서 MCTS (Monte Carlo Tree Search)의 일부로 사용됩니다 .
(원래의 질문은 " 몬테 카를로 알고리즘 "과 " 몬테 카를로 방법 "을 구분하지 않았는데 , 여기에서 일부 답변에 대한 의견 불일치가 설명 될 수 있습니다.)
예를 들어 이동 게임 (및 MCTS를 사용하는 것으로 알고있는 다른 모든 게임)에서 시뮬레이션을 플레이 아웃이라고합니다. 랜덤 플레이 아웃은 가장 규칙적인 규칙을 사용합니다. 라이트 플레이 아웃은 랜덤 플레이 아웃의 동의어이거나 쉽게 감지되는 몇 가지 나쁜 움직임을 걸러냅니다. 무거운 플레이 아웃은 더 많은 휴리스틱을 사용하여 더 많은 움직임을 걸러냅니다. (플레이 아웃은 항상 게임이 끝날 때까지 걸리므로 각 플레이 아웃은 거의 같은 시간이 걸립니다.) 그러나 모두 "몬테카를로"시뮬레이션이라고합니다.