핼턴 수열
Halton sequence통계에서, Halton 시퀀스는 몬테카를로 시뮬레이션과 같은 수치적 방법에 대해 우주에서 점을 생성하기 위해 사용되는 시퀀스다.이러한 시퀀스는 결정론적이긴 하지만 불일치가 낮다는 것, 즉 여러 가지 목적을 위해 무작위로 나타난다.그것들은 1960년에 처음 도입되었으며 준랜덤 수열의 한 예다.그들은 1차원 반데르 코퍼트 시퀀스를 일반화한다.
(0, 1) × (0, 1) × (0, 1) in R에 있는2 점을 생성하는 데 사용되는 Halton 시퀀스의 예
Halton 시퀀스는 coprime 숫자를 기초로 사용하는 결정론적 방법에 따라 구성된다.간단한 예로, 할튼 수열의 한 차원은 2를 기준으로 하고 다른 차원은 3을 기준으로 삼도록 하자.2에 대한 시퀀스를 생성하기 위해서는 먼저 간격(0,1)을 반으로 나눈 다음, 4초, 8초 등으로 나누어 생성한다.
- 1⁄2,
- 1⁄4, 3⁄4,
- 1⁄8, 5⁄8, 3⁄8, 7⁄8,
- 1⁄16, 9⁄16,...
동등하게, 이 시퀀스의 n번째 숫자는 이진법으로 쓰여지고, 반전되어 소수점 뒤에 쓰여진 n번째 숫자다.이것은 어떤 근거에도 해당된다.예를 들어, 위의 순서의 여섯 번째 요소를 찾기 위해 6 = 1*22 + 1*21 + 0*20 = 110을2 쓰는데, 이 값은 반전되어 소수점 뒤에 배치되어 0.0112 = 0*2-1 + 1*2-2 + 1*2 + 1*2-3 = 3/8을 줄 수 있다.따라서 위의 순서는 다음과 같다.
- 0.12, 0.012, 0.112, 0.0012, 0.1012, 0.0112, 0.1112, 0.00012, 0.10012,...
3에 대한 시퀀스를 생성하기 위해 간격(0,1)을 3으로 나눈 다음 9, 27을 생성한다.
- 1⁄3, 2⁄3, 1⁄9, 4⁄9, 7⁄9, 2⁄9, 5⁄9, 8⁄9, 1⁄27,...
페어링하면 단위 사각형에서 일련의 포인트가 나온다.
- (1⁄2, 1⁄3), (1⁄4, 2⁄3), (3⁄4, 1⁄9), (1⁄8, 4⁄9), (5⁄8, 7⁄9), (3⁄8, 2⁄9), (7⁄8, 5⁄9), (1⁄16, 8⁄9), (9⁄16, 1⁄27).
표준 Halton 시퀀스는 저차원에서 매우 잘 수행되지만, 높은 프리타임에서 생성된 시퀀스 사이에 상관관계 문제가 지적되어 왔다.예를 들어, 소수점 17과 19로 시작한다면, 처음 16쌍의 점: (½17, ½19), (3/17, 3/19), ... (16/17, 16/19)는 완벽한 선형 상관관계를 가질 것이다.이를 피하기 위해 처음 20개 항목, 즉 선택한 소수점에 따라 미리 정해진 수량을 삭제하는 것이 일반적이다.몇 가지 다른 방법들도 제안되었다.가장 두드러진 해결책 중 하나는 스크램블 할튼 수열로, 표준 수열 구성에 사용되는 계수의 순열을 사용한다.또 다른 해결책은 표준 순서에서 포인트를 건너뛰는 도약대 할튼이다.예를 들어, 각 409번째 지점(Halton 코어 시퀀스에서 사용되지 않는 다른 소수도 가능)만 사용하면 상당한 개선을 달성할 수 있다.[1]
실행
유사 코드:
알고리즘 Halton-Sequence은 입력:나는 기지 b{\displaystyle b}출력{\displaystyle 나는}지수:결과 r{r\displaystyle}f← 1{\displaystyle f\leftarrow 1}r← 0{\displaystyle r\leftarrow 0}는 동안 나는입니다.;f/b{\displaystyle f\leftarrow f/b}0{\displaystyle i>0}니 f←. r←+ b) )}i / {\ i/반환 r} 베이스 b에 대한 Halton 시퀀스의 후속 숫자를 생성하는 대체 구현은 다음 제너레이터 함수(Python)[2]에 제공된다.이 알고리즘은 내부적으로 정수만 사용하므로 반올림 오류에 대해 강력하다.
반항하다 하프톤(b): """"Halton 시퀀스에 대한 생성기 함수.""" n, d = 0, 1 하는 동안에 진실의: x = d - n 만일 x == 1: n = 1 d *= b 다른: y = d // b 하는 동안에 x <= y: y //= b n = (b + 1) * y - x 양보하다 n / d 참고 항목
참조
- Kuipers, L.; Niederreiter, H. (2005), Uniform distribution of sequences, Dover Publications, p. 129, ISBN 0-486-45019-8
- Niederreiter, Harald (1992), Random number generation and quasi-Monte Carlo methods, SIAM, p. 29, ISBN 0-89871-295-5.
- Halton, J. (1964), "Algorithm 247: Radical-inverse quasi-random point sequence", Communications of the ACM, 7: 701-701, doi:10.1145/355588.365104.
- Kocis, Ladislav; Whiten, William (1997), "Computational Investigations of Low-Discrepancy Sequences", ACM Transactions on Mathematical Software, 23: 266–296, doi:10.1145/264029.264064.
