몬테 카를로 (몽떼 까를로, Monte Carlo) 테크닉

글쓴이
소요유
등록일
2002-04-30 15:37
조회
9,265회
추천
1건
댓글
15건
*** 이왕 버린 몸, 자연과학에서 많아 사용하는 기법 중에서 한가지 더 소개할려고 합니다.  몽떼 까를로 테크닉 입니다. ***


개인적으로는 많이 써본 기법은 아닌데 통계 분석, 혹은 데이타의 질 점검에 자주  등장하는 것이 바로 몽테 까를로 (몬테 카를로) 테크닉 입니다.  책을 보니까 카진노가 많이 있는지중해 도시 이름에서 왔다네요.  이름에서 시사하듯이 수학적으로 카지노 도박이 랜덤넘버를 생성해서 확률을 계산하는 그런 것이니 아무래도 통계 쪽에서 많이 쓰이겠죠 ?

이 기법이 과학에서는 좀 복잡한 통계 문제인 경우 편리하고 쉽게 문제를 풀게해 주는 것 같습니다.
제 분야에서는 대개 통계적으로 데이타의 컴플리트니스 (completeness)를 알아본다든가  랜덤 넘버를 생성하여 통계적인 모델을 만들어 더이타와 비교한다든가 하는 경우에 많이 쓰입니다.

간단한 몽테 까를로 시뮬레이션의 예를 들면 CCD 카메라와 같은 고체 딕텍터 (solid detector, 감지기)에 찍한 천체의 영상에서 별의 영상의 모델을 만들고, 이를 모델을 이용하여 그 영상에 있는 별을 소프트웨어를 이용하여 골라낼때  이 프로세스가 갖는 완성도, 즉 컴플리트네스를 몽테 까를로 방식을 이용하여 시뮬레이션해 볼 수 있습니다.

즉 같은 방법으로 별의 모델을 만들고, 이를  같은 크기의 영상에 밝기가 다른 별을 랜덤하게 뿌려서  시뮬레이션 영상을 만든 다음 이를 위의 과정으로 처리해 보면 뿌린 수와 거두어 들이 수를 밝기 별로 구할 수 있으므로 각 밝기에서의 컴플리트네스를 알아 볼 수 있습니다.

마찬가지로 랜덤함이  보장되는 자연에서 이와 같은 방식으로 시뮬레이션 (우리동네에서는 시뮬레이션을 '시늉'으로 번역한 분이 있는데 이 번역이 괜찮은 것 같습니다)  해 볼 수 있습니다.  즉 랜덤 넘버를 그 계에 적용되는 통계적인 모형에 맞추어 생성하는 시늉을 해보는 것입니다.

이때 랜덤 넘버를 우리가 가정하는 확률함수 (가우스함수, 포그손 함수,  지수함수 등등)로 주고, 대상에 따라 적당한 속아내기 (rejection) 함수를 주면  우리가 원하는 계를 시뮬레이션 할 수 있고, 실험값과 비교할 수 있습니다.

전 개인적으로 프로그램에 둔재라 아주 간단한 경우에 패키지에서 제공되는 경우만 써 봤습니다. 그런데  논문이나 워크샵 혹은 컨퍼런스에 가면  이런 방법으로 분석한 논문을 많이 봅니다.  아마도 몽테까를로 방법은 자연과학이나 공학 여러분야에서 아주 다양하게 쓸 수 있는 기법이 아닌가 생각합니다.     
     

  • 송세령 ()

      필요하시면 제가 웬만한 것은 기본 프로그램 아키텍쳐를 만들어 드릴수 있습니다. 코딩은 제가 하는 일때문에 힘들겠지만요. ^_^ 특히 요즘은...

  • 소요유 ()

      송세령님 감사합니다. 저도 송세령님이 관심있으실 것 같았고 잘하실 줄로 생각했습니다.  당장은 쓰지는 않는데 혹 필요해지면 한수 부탁드리겠습니다. 아마 다른 분들도 관심 있으실 것 같습니다. 랜덤넘버를 이용할 수 있는 계는 모두 이 방법으로 분석할 수 있을 것 같습니다.

  • 일렉 ()

      Monte Carlo Simulation 혹은 Monte Carlo Sampling(MCS)은 주어진 문제의 해에 대한 테스트함수를 구성할 수 있으면 아무리 복잡한 문제라도 쉽게 해를 구할 수 있는 방법입니다. Analytical하게 해를 구하기 어려운 문제의 해를 구하는데 주로 사용되죠. 예를 들어 매우 복잡한 함수를 적분하는 문제, 즉 어떤 함수 아래의 면적을 구하는 문제의 경우나 열교환기의 누수문제, 기계나 시스템의 failure 문제(확률적인 신뢰도)에 적용하기 용이합니다.

  • 일렉 ()

      Monte Carlo Simulation은 확률변수의 난수 발생(주로 congruential method가 많이 쓰임), 시행결과의 통계적 분석(이 부분에 테스트함수가 쓰입니다.), 편차(분산) 감소기법(시뮬레이션의 수렴특성 이용)의 세 부분으로 구성됩니다.

  • 일렉 ()

      물론 정확한 해로 수렴하는데 계산부담이 있지만, 요새 컴퓨터 속도가 장난이 아니라.. 웬만한건 할 수 있을검다... 해석적 방법이 어렵다면 Monte Carlo를 이용하는 것도 바람직하죠....(사실 Monte Carlo법은 똑같은 시도를 수만, 수십만 번 반복하는 멍청한(?) 방법이죠^^)

  • 일렉 ()

      저는 개인적으로 해석적으로 거의 불가능한 문제에 MCS를 적용하여 문제를 푸는 것으로 Ph.D thesis를 썼네요...물론 MCS가 차지하는 비중은 매우 작지만요....

  • 일렉 ()

      아! 참고로 제가 푸는 문제를 MCS로 풀 때, 한 달이 걸렸다는 얘기를 들은 적이 있네여..ㅡ.ㅡ;;;

  • 소요유 ()

      역시 고수가 한분 계시네요. 저도 대체로 그런 방법으로 씁니다. 요즈음 많이 쓰이는 것 같습니다.

  • 포닥 ()

      저도 전자와 고체의 충돌과 산란을 계산할때, 쿨롱 작용만 고려해서 MC 를 코딩해 본적이 있습니다. 코딩자체는 기초적인 수준의 기술만 있으면 됩니다. 계산하려는 계의 특성을 어떻게 모델링하는가가 훨씬 중요하지요.

  • 포닥 ()

      MC 는 파이(원의 면적 구할때 쓰는것)을 컴퓨터로 계산할때 사용하지 않나요 ? 2 x 2 의 사각형에서 (반지름 1) 랜덤한 좌표를 발생시키고, 그것이 원 안에 있는지 밖에 있는지를 검사해서, 안에 있는 넘의 수를 세어 전체 시도한 횟수로 나누면 원의 면적이 됩니다. 시도한 횟수를 늘일 수록 정확도가 점점 높아져서, 파이를 뽑아낼 수가 있죠. 코딩은 무지 쉽겠죠 ?

  • 포닥 ()

      참, 위의 값에다 사각형의 면적을 곱해야 원의 면적이 나오는데, 반지름이 1 이기 때문에 그 값이 파이 입니다. 원안에 있나 없나 검사하는 방법은 좌표의 엑스와 와이 값을 제곱해서 더한 값이 1 보다 작으면 원 안에, 같으면 원주 상에 있는 것이죠.

  • 일렉 ()

      포닥님 말씀이 맞습니다^^...Sampling 자체는 사실 문제가 아닙니다. 각각의 샘플들이 확률적으로 독립적인 사건이라는 것이 보장되면 비교적 정확한 해를 얻을 수 있습니다. 문제는 MCS를 적용하고자 하는 문제가 무엇이냐는 거죠.. 제 경우에는 각각의 샘플에 대한 테스트 함수값(함수값이 0 또는 1인 경우가 많겠죠? 면적을 구하는 문제처럼...)을 얻는 것 자체가 훨씬 중요하니까여...

  • 과학도 ()

      맨하탄 계획때 로스 알라모스에서.. 원자폭탄을 시뮬레이션 하는데 개발한 방법 아니었나요? 기본적으로 자연은 난수생성(아직 완전한 난수생성을 컴퓨터로 하지 못하고 있죠)이 따르는 랜덤워크법칙과 최소에너지지향법칙이라는 두가지에 의해 여기까지 왔습니다. 다른 얘기지만 자연선택설도 그 두가지에 따라 일관성이 있는건데 창조론자들의 입김이 커지고 있군요. 반지성화를 막기 위해 일찍 경계하고 막아야 합니다. 그리고 우리 역시 과학이 그러한 혼돈적 무질서 속에서 연역적 관점을 찾으려는 제한된 행위임을 인식해야 하겠지만요.

  • 소요유 ()

      저도 포닥님이나 일렉님의 말씀과 같은 '모델링'이 중요함을 깨달았습니다.  제 경우는 제가 갖고 있는 툴의 안정성, 즉 샘플링 에러가 얼마나 되는냐가 중요한 경우가 많아 그런 경우에 썼습니다. 한편으로 자연을 설명할때  관측될 분포를 MC 모델을 통하여 계산할 수 있어서 이런 경우에 실제 관측 (실험치)과 비교하는 경우에 썼습니다.  아참 그리고 파이게산은 제가 처음 MC를 배울때 예제 프로그램으로 썼었습니다.  아 그랬나요 ?  MC가 맨하튼 계획과 관계있나요 ?  그럴 것 같기도 하고....

  • 이공계2 ()

      공과대학에서 MC와 MD(Molecular Dynamics)는 꽤 되었지만, 유행처럼 번지는 시뮬레이션 방법입니다. Statistical mechanics라는 과목에서 두 가지를 다루지요.. 화학분자를 single sphere로 가정하고, 분자사이의 거리에 관한 에너지는 lennard-jones potential 에 따른다고 보고 코딩해서 이것저것 구하고 실험치와 비교하고.. term project 로 하곤 하지여..

목록


과학기술Q&A

게시판 리스트
번호 제목 글쓴이 등록일 조회 추천
184 답변글 [re] 흠... 맞나 모르겠네요. 댓글 10 사색자 08-12 6729 1
183 [정보] 일본 가전업계 부문별 순위 댓글 2 로켓연구가 08-07 7074 1
182 [정보] 일본 철강업계 지도 댓글 3 로켓연구가 08-07 5613 2
181 synchro..triggering이 정확히 뭘 의미하는지..? 댓글 2 궁금이 08-07 6717 1
180 확률에 관해…… 댓글 15 보통상식 08-06 5789 3
179 답변글 [re] 주사위의 확률, 기압계와 건물높이 측정 보통상식 08-08 6267 1
178 한국정보통신대학원대학교에 대해... 댓글 5 남정네 08-06 6449 1
177 [정보] 일본 디스크, DVD 업계 지도 댓글 1 로켓연구가 08-05 4367 1
176 역공학이 뭔가여? 댓글 13 오승처리 08-01 4589 1
175 답변글 리버스 엔지니어링 - 박정희 전기에서 발췌. muroi 08-10 5002 1
174 이런 질문 댓글 3 이지매 08-01 4848 1
173 제발좀도와주세여 댓글 3 강현우 07-31 4336 1
172 동적 표면장력 측정에 대해서... 신동윤 07-31 6564 1
171 ansys에서 cad파일 불러오기. 로켓연구가 07-30 7670 2
170 답변글 [re] ansys에서 cad파일 불러오기. 댓글 1 이성철 08-01 16568 2
169 답변글 [re] ansys에서 cad파일 불러오기. 박정렬 07-31 8371 1
168 부끄러운 질문이지만, 댓글 3 허접 공대생 07-29 6412 2
167 답변글 [re] 부끄러운 질문이지만, CoolME 07-30 5676 3
166 답변글 [re] 부끄러운 질문이지만, 박병훈 07-30 4875 1
165 대우전자의 디스플레이 개발 팀은? 댓글 4 daewoo 07-29 7463 2


랜덤글로 점프
과학기술인이 한국의 미래를 만듭니다.
© 2002 - 2015 scieng.net
모바일 버전으로 보기