低差異序列是否適用於離散空間?
真實空間中的低差異序列() 似乎是對樣本空間進行均勻採樣的非常出色的工具。據我所知,如果您使用適當的地圖(例如。線性地圖)。
這樣的序列可以推廣到離散空間嗎?例如。如果我的空間在每個維度中只有兩個元素(例如布爾開關),我可以映射嗎? 對於具有更多元素的維度(例如 4 狀態開關?),該怎麼辦?對於每個維度中具有不同狀態數的空間?
我的直覺說這可能行得通,特別是如果子序列很長,但它可能對某些序列比其他序列更好,這取決於狀態的數量(例如,Halton 序列可能與一個維度有奇怪的交互質數狀態或Sobol 序列可能僅適用於具有元素)。但是我沒有做任何測試。
如果這不起作用,為什麼不呢?
簡短的回答是:是的!它可以工作,並且就像乘以向量一樣簡單由一個整數,並取其每個分量的整數部分。
更長的答案是您的直覺是正確的,實際上它會根據以下選擇產生不同的結果:
- 您選擇哪個序列(Halton、Sobol 等)
- 基礎參數(例如,2,3,5,…)
- 在較小程度上,價值.
但是,我最近寫了一篇詳細的博客文章“擬隨機序列的不合理有效性,關於如何輕鬆創建任意維度的開放式低差異序列,這比現有的現有低差異序列更適合離散化,例如Halton 和 Kronecker 序列。
帖子中名為“覆蓋”的部分專門處理您離散低差異序列的問題。
在下圖中,紅色較少的正方形(表示唯一整數格點)意味著分佈更均勻,因為每個紅色正方形表示單元格不包含藍色點。可以清楚地看到即使與其他當代方法相比,-sequence 分配點。
該解決方案是一種加法遞歸方法(模 1),它概括了其解決方案取決於黃金比例的一維問題。解決方案維問題,取決於一個特殊的常數, 在哪裡是最小的正實值的值這樣
為了, ,這是典型的黃金比例。
為了,,通常稱為塑性常數,具有一些優美的特性。該值被推測為最有可能是相關二維問題的最佳值 [Hensley, 2002]。
Jacob Rus 發布了這個二維低差異序列的漂亮可視化,可以在這裡找到。
有了這個特殊的常數,計算-th 項現在計算起來非常簡單和快速:
當然,之所以稱之為遞歸序列,是因為上面的定義等價於
在幾乎所有情況下,選擇不改變關鍵特徵,因此出於明顯簡單的原因,是通常的選擇。然而,有一些關於對稱性的論點表明, 是更好的選擇。
Python代碼是
# Use Newton-Rhapson-Method def gamma(d): x=1.0000 for i in range(20): x = x-(pow(x,d+1)-x-1)/((d+1)*pow(x,d)-1) return x d=5 n=1000 # m can be any number. # In the diagram above it is chosen to be exactly sqrt of n, # simply to to make the visualization more intuitive # so that ideally each cell should have exactly one dot. m=10 g = gamma(d) alpha = np.zeros(d) for j in range(d): alpha[j] = pow(1/g,j+1) %1 z = np.zeros((n, d)) c = (np.zeros((n,d)).astype(int) for i in range(n): z = (0.5 + alpha*(i+1)) %1 c = (np.floor(m *z)).astype(int) print(c)
希望有幫助!