소볼 수열

Sobol sequence
2,3 Sobol 시퀀스(상단)의 처음 256점에서 256점(아래쪽)을 유사 숫자 소스(아래쪽)와 비교했다.소볼 수열은 공간을 보다 고르게 커버한다. (빨간색=1,..,10,파랑=11,..100,녹색=101,256)

소볼 시퀀스(베이스 2에서 LPτ 시퀀스 또는 (t, s) 시퀀스라고도 함)는 준랜덤 저점 시퀀스의 예다.그것들은 러시아의 수학자 일리아 M에 의해 처음 소개되었다. Sobol (Илья Меерович Соболь) in 1967.[1]

이러한 시퀀스는 2의 베이스를 사용하여 장치 간격의 균일한 파티션을 연속적으로 미세하게 구성한 다음 각 차원의 좌표를 다시 정렬한다.

s차원 단위 하이퍼큐브에서의 양호한 분포

Let Is = [0,1]s s차원 단위 하이퍼큐브로서, Is 대한 실제 통합 가능한 함수 f.소볼의 원래 동기는 Is sequencen x를 구성해서 그렇게 하도록 하는 것이었다.

가능한 한 빨리 수렴할 수 있을 거야

합이 적분 쪽으로 수렴되기 위해서는 x n 홀을 최소화해야s 한다는 것은 다소 분명하다.s 다른 좋은 특성은 내 저차원 얼굴에 xn 투영도 매우 적은 구멍을 남긴다는 것이다.따라서 낮은 차원에서는 많은 점들이 같은 위치에 있기 때문에 적분 추정에 사용할 수 없기 때문에 Is 균일한 충전은 적합하지 않다.

이러한 좋은 분포는 base에서 (t,m,s)-nets와 (t,s)-sequence라고 불린다.이들을 소개하려면 먼저 기초 s-간격(s-interval)을 base b에서 폼의 Is 하위 집합으로 정의하십시오.

여기서 aj dj 음이 아닌 정수이며, {1, ...,s}의 모든 j <

Given 2 integers , a (t,m,s)-net in base b is a sequence xn of bm points of Is such that for all elementary interval P in base b of hypervolume λ(P) = bt−m.

Given a non-negative integer t, a (t,s)-sequence in base b is an infinite sequence of points xn such that for all integers , the sequence is a (t,m,s)-net in base b.

소볼은 기사에서 π-mesesτ LPτ 시퀀스를 각각 베이스 2에서 그물(t,m,s) 순서와 (t,s) 순서에 대해 설명했다.베이스 b(Nederreiter sequence라고도 함)에서 (t,m,s)-네트와 (t,s)시퀀스라는 용어는 1988년 하랄드 니더레이터에 의해 만들어졌다.[2]소볼 시퀀스라는 용어는 영어권 후기 신문에 할튼, 파우어, 그리고 다른 낮은 점수의 시퀀스와 비교해서 소개되었다.

빠른 알고리즘

보다 효율적인 그레이 코드 구현은 안토노프와 살레프가 제안했다.[3]

소볼 숫자의 생성에 대해서는, 점 추첨을 위해 n이 아닌 그레이 코드G()= n n/ {\\oplus 을(으)의 사용으로 분명히 도움을 받는다.

이미 모든 Sobol 시퀀스를 n - 1까지 끌어오고 필요한 모든 치수에 대한n−1,j 값 x를 메모리에 저장했다고 가정합시다.회색 코드 G(n)는 앞의 G(n - 1)의 그것과 단 하나의 차이로 다르므로, k-th, 비트(n - 1의 가장 오른쪽 0비트)라고 말하면, 모든 xn−1 x에서 xn 전파하기 위해 각 차원에 대한 단일 XOR 연산만 하면 된다.

추가 균일성 속성

소볼은 재산 A와 A'로 알려진 추가적인 균일성 조건을 도입했다.[4]

정의
길이 2의d d-차원 시퀀스 중 (임의적인 부분집합이 아닌) 이진 세그먼트에 대해 각각의 길이 확장을 따라 단위 하이퍼큐브를 반으로 세분화하여 발생하는 2개의d 하이퍼큐브 각각에 정확히 1개의 추첨이 있는 경우 낮은 점수의 시퀀스는 속성 A를 만족시킨다고 한다.
정의
길이 4의d d-차원 시퀀스 중 (임의의 부분집합이 아닌) 이진 세그먼트에 대해 각각의 길이 확장을 따라 단위 하이퍼큐브를 4개의 동일한 부분으로 세분화함으로써 발생하는 4개의d 하이퍼큐브 각각에 정확히 1개의 추첨이 있는 경우 낮은 점수의 순서는 속성 A'를 만족한다고 한다.

특성 A와 A'를 보증하는 수학적 조건이 있다.

정리.
d차원 Sobol 시퀀스는 속성 A ifff를 소유한다.
여기서 Vd d × d 이진 행렬로 정의된다.
v-방향k,j,mk,j 번호 v = (0k,j,1k,j,2.2vv...)의 이진 지점 뒤의 m-th 자리 표시
정리.
d차원 Sobol 시퀀스는 속성 A' ifff를 소유하고 있다.
여기서 Ud 다음에 의해 정의된 2d × 2d 이진 행렬이다.
v-방향k,j,mk,j 번호 v = (0k,j,1k,j,2.2vv...)의 이진 지점 뒤의 m-th 자리 표시

속성 A와 A'에 대한 테스트는 독립적이다.따라서 속성 A와 A' 또는 그 중 하나만 만족하는 소볼 시퀀스를 구성할 수 있다.

Sobol 번호 초기화

Sobol 시퀀스를 구성하려면 일련의 방향 번호i,j v를 선택해야 한다.초기 방향 번호의 선택에는 약간의 자유가 있다.[note 1]따라서 선택된 치수에 대해 소볼 시퀀스의 다른 실현을 받을 수 있다.초기 숫자를 잘못 선택하면 연산에 사용될 때 Sobol 시퀀스의 효율성이 상당히 감소할 수 있다.

거의 틀림없이 초기화 숫자에 대한 가장 쉬운 선택은 l-th 좌측 비트를 설정하고 다른 모든 비트를 0으로 설정하는 것이다. 즉, 모든 kk,j j에 대해 m = 1이다.이러한 초기화를 보통 단위 초기화라고 한다.그러나 그러한 순서는 저차원에 대해서도 속성 A와 A'에 대한 시험을 통과하지 못하므로 이 초기화는 좋지 않다.

구현 및 가용성

여러 명의 저자가 서로 다른 차원의 양호한 초기화 번호를 제공한다.예를 들어, 소볼은 51까지 치수에 대한 초기화 번호를 제공한다.[5]브래틀리와 폭스가 동일한 초기화 번호 집합을 사용한다.[6]

높은 차원에 대한 초기화 번호는 Joe와 Kuo에서 사용할 수 있다.[7]피터 야켈은 그의 저서 "금융의 몬테 카를로 방법"에서 32까지 초기화 숫자를 제시한다.[8]

다른 구현은 소프트웨어의 수치적 레시피 컬렉션에서 C, Fortran 77 또는 Fortran 90 루틴으로 이용할 수 있다.[9]Joe와 Kuo 초기화 번호에 근거한 최대 1111차원의 무료/오픈 소스 구현은 C로,[10] Python과[11][12] Julia에서는 최대 21201차원의 구현을 이용할 수 있다.[13]C++, Fortran 90, MatlabPython에 대해 최대 1111차원의 다른 자유/오픈 소스 구현이 가능하다.[14]

마지막으로 상용 소볼 시퀀스 생성기는 예를 들어 NAG 라이브러리 내에서 사용할 수 있다.[15]영국-러시아 해양개발청(BRODA)에서 버전을 구할 수 있다.[16][17] MATLAB는 또한 통계 도구 상자의 일부로 구현을[18] 포함하고 있다.

참고 항목

메모들

  1. ^ 이 숫자들을 보통 초기화 번호라고 부른다.

참조

  1. ^ Sobol, I.M. (1967) "입방체 내 점 분포 및 근사적 통합 평가"존. 비치 Mat. Fiz. 7: 784–802 (러시아어); US.S.R Compute. 수학. 수학. 체육 7: 86–112 (영어).
  2. ^ 니더레이터, H. (1988)Journal of Number 이론 30: 51–70 "Low-Disclosure and Low-Disposition Sequence.
  3. ^ 안토노프, 아이에이와 살레브, 브이엠(1979) "LP시퀀스를τ 계산하는 경제적인 방법"존. 비치 Mat. Mat. Fiz. 19: 243–245 (러시아어); US.S.R. Compute. 수학. 수학. 체육 19: 252–256 (영어).
  4. ^ Sobol, I. M. (1976) "추가적인 균일 속성으로 균일하게 분포된 시퀀스"존. 비치 Mat. Fiz. 16: 1332–1337 (러시아어); US.S.R. Compute. 수학. 수학. 체육 16: 236–242 (영어).
  5. ^ 소볼, 아이엠, 레비탄, Y.L. (1976년)"다차원 입방체에서 균일하게 분포된 점의 생산" Tech. USSR 과학아카데미 응용수학연구소(러시아어).
  6. ^ 브래틀리, P.와 폭스, B. L. (1988) "알고리즘 659: 소볼의 퀘이란돔 시퀀스 생성기 구현"ACM Trans. 수학. 소프트웨어 14: 88–100.
  7. ^ "Sobol sequence generator". University of New South Wales. 2010-09-16. Retrieved 2013-12-20.
  8. ^ 예켈, P. (2002) "금융의 몬테 카를로 방법"뉴욕: 존 와일리선즈 (ISBN 0-471-49741-X.)
  9. ^ 프레스, W.H.Teukolsky, S.A., 베터링, W.T., Flannery, B.P.(1992) "포트란 77의 수학적 레시피: 과학 컴퓨팅의 기술, 제2편" 영국 케임브리지 대학 프레스.
  10. ^ C NLopt 라이브러리(2007)에서 Sobol 시퀀스의 구현.
  11. ^ "SciPy API Reference: scipy.stats.qmc.Sobol".
  12. ^ Imperiale, G. "pyscenarios: Python Scenario Generator".
  13. ^ Sobol.jl 패키지:Julia는 Sobol 시퀀스의 이행.
  14. ^ Sobol Quasirandom 시퀀스, C++/Fortran 90/Matlab/Python by J. Burkardt의 코드
  15. ^ "Numerical Algorithms Group". Nag.co.uk. 2013-11-28. Retrieved 2013-12-20.
  16. ^ I. Sobol’, D. Asotsky, A. Kreinin, S. Kucherenko (2011). "Construction and Comparison of High-Dimensional Sobol' Generators" (PDF). Wilmott Journal. Nov: 64–79.{{cite journal}}: CS1 maint : 복수이름 : 작성자 목록(링크)
  17. ^ "Broda". Broda. 2004-04-16. Retrieved 2013-12-20.
  18. ^ sobolset 참조 페이지.2017-07-24를 회수했다.

외부 링크