低差异序列:范德科皮特序列(Van der Corput sequence)
一、低差異序列
????????在數學中,低差異序列是具有以下性質的序列:對小于?N?的所有值排成序列,其子序列 ?這些值,具有低差異(就是均勻分割【0,N】集合區域)。或者說,?其子序列 ?幾乎均勻分布,與有序剛好相反。那與隨機有啥區別?答:比均勻分布的隨機還要均勻分攤,而不受N規模大小的影響。
? ? ? ? 對于隨機抽樣來說,均勻分布的抽樣其實不夠“均勻”;更好的抽樣(或更均勻的抽樣)是低差異序列(Low Discrepancy Sequence),下圖給出圖像中均勻抽樣和低差異序列的效果:
圖中左側是隨機抽樣的結果,圖中右邊是低差別序列的效果,是不是用低差別序列比均勻分布的抽樣還要均勻?
二、低差異定義
? 我們將序列 (s1, s2, s3, ...) 相對于區間 [a, b] 的差異 DN 定義為:
? ? ? ???
? ? ? ? 因此,如果差異 DN 趨于零,而 N 趨于無窮大,則序列是等分布的。等分布是一個相當弱的標準來表達一個序列填充片段不留空隙的事實。
?
三、什么是范德科皮特序列?
????????范德科皮特(van der Corput) 序列是單位區間上最簡單的一維低差異序列的示例;它于 1935 年由荷蘭數學家 J. G. van der Corput 首次描述。它是通過反轉自然數序列 (1, 2, 3, ...) 的 base-n 表示來構造的。
正整數 n (≥ 1) 的b進制表示是:
其中 b 是表示數字 n 的基數,并且,即 n 的 b 進制展開中的第 k 位。
此處不難理解:比如10進制數5067
van der Corput 序列中的第m 個數是
舉個例子:van der Corput序列的第213項是
四、實例說明范德科皮特序列
????????以上的公式可能抽象,現在用實際范例說明:
????????要獲得十進制范德科普特序列,我們首先將數字 1 到 9 除以十分之一 (x/10),然后將分母更改為 100 以開始除以百分之一 (x/100)。
????????就分子而言,我們從 10 到 99 的所有兩位數開始,但按數字倒序排列(個位數優先)。因此,我們將得到按末尾數字分組的分子。首先是所有以 1 結尾的兩位數分子,所以接下來的分子是 01、11、21、31、41、51、61、71、81、91。然后是以 2 結尾的分子,所以它們是 02、12 , 22, 32, 42, 52, 62, 72, 82, 92. 以 3 結尾的分子之后的一個:03, 13, 23 等等...
總之,是按照個位優先的順序將分數排列起來:
對應的小數表示為:
0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 0.01, 0.11, 0.21, 0.31, 0.41, 0.51, 0.61, 0.71, 0.81, 0.91, 0.02, 0.12, 0.22, 0.32, …,
- 對于二進制數字系統也可以這樣做,二進制范德科普特序列是:
,
對應的小數表示為:
五、實際應用
5.1 用范德科皮特序列構建halton序列
? ? ? ? halton序列是高維度的的德科皮特(van der Corput)的序列。
???????? ? 對于高維度(d=N)的德科皮特(van der Corput)的序列,需要用N個不同質數為基底,都成在超立方體內的采樣。
? ? ? ? 對于二維序列(d=2),將范兩個不同基底(2和3)的德科皮特(van der Corput) 序列共同組成二維的序列。在文低差別序列:高維序列(Halton sequence)中已經詳細介紹。
5.2 用halton采樣與randon函數隨機采樣的比較
????????下圖表示用halton序列和計算機內randon函數生成的10、100、1000、10000個點的隨機序列。從中可見,halton序列在二維空間的采樣,對二維空間集合的覆蓋更勻稱高效。
總結
以上是生活随笔為你收集整理的低差异序列:范德科皮特序列(Van der Corput sequence)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 编辑距离:最长公共子序列-LCS问题
- 下一篇: 时间序列:五种编辑距离和Python实现