その豊富さ、柔軟性、および計算の扱いやすさのため、ハミング距離に基づいてロケーションファミリーを優先する場合があります。
表記と定義
基底がを持つ自由有限次元モジュールでは、2つのベクトル間のハミング距離およびは、である場所の数。(E 1、E 2、... 、E J ) δ H V = V 1 、E 1 + ⋯ + V J E J W = W 1 E 1 + ⋯ + W J E J iは、V のI ≠ W IV(e1,e2,…,eJ) δHv=v1e1+⋯+vJeJw=w1e1+⋯+wJeJivi≠wi
任意の原点与えられると、ハミング距離はを球、に。ここで、。グラウンドリングに要素がある、は要素があり、は要素があります。(これは、要素がと正確に場所で異なることを観察した直後です-その中にV S iは( V 0)iは=0、1、...、J S I( V 0)={ W ∈V | δ H( W、 V 0)=I}NV N J S I( V)( Jv0∈VVS私(v0)私は= 0 、1 、... 、JS私(v0)= { W ∈ V | δ H(w、v0)= i }んVんJS私(v)Si(v)vi( J( J私)(n−1)私S私(v)v私 n−1( J私)可能性-そして、それぞれの場所に独立しての値の選択肢があることをます。)n − 1
アフィン変換は、分布に自然に作用してロケーションファミリーを提供します。具体的には、が上の任意の分布である場合(つまり、少し上回っている場合、はすべての、および)であり、は任意の要素で、も分布ですどこF V F :V → [ 0 、1 ] F (V)≥ 0 V ∈ V ΣのV ∈ Vの F (V)= 1 W V F (W)VfVf:V→ [ 0 、1 ]f(V)≥ 0V ∈ VΣV ∈ Vf(v)=1wVf(w)
f(w)(v)= f(v − w)
すべてのための。ロケーションファミリー分布のこの作用の下で不変である:意味のためのすべての。V ∈ V F ∈ Ω F (V) ∈ ΩのV ∈ VΩf∈ Ωf(v)∈ Ωv∈V
建設
これにより、1つの固定ベクトルで形状を指定することにより、潜在的に興味深く有用な分布のファミリーを定義できます。便宜上、、そしての作用の下でこれらの「生成分布」を変換して、完全なファミリーを取得します。が近くの点で同等の値を持つべき望ましい特性を達成するには、単にすべての生成分布のその特性を要求します。0 = (0 、0 、... 、0 )V Ω Fv0=(0,0,…,0)VΩf
これがどのように機能するかを確認するために、距離が増加するにつれて減少するすべての分布のロケーションファミリーを構築しましょう。ハミング距離のみが可能であるため、負でない実数の減少するシーケンスを考える =。セットするA 0 ≠ A 0 ≥ A 1 ≥ ⋯ ≥ J ≥ 0J+1a0≠a0≥a1≥⋯≥aJ≥0
A=∑i=0J(n−1)i(Ji)ai
機能を定義によってfa:V→[0,1]
fa(v)=aδH(0,v)A.
次に、簡単に確認できるように、は上の分布です。また、場合にのみの正の倍数であるにおけるベクターとして()。したがって、必要に応じて、を標準化することができます。 V f a = f a ′ a ′ a R J + 1 a a 0 = 1faVfa=fa′a′aRJ+1aa0=1
したがって、この構造は、ハミング距離とともに減少するそのようなすべての位置不変分布の明示的なパラメーター化を提供します。そのような分布は、いくつかのシーケンスの形式はです。と一部ベクトル。、A = 1 ≥ A 1 ≥ A 2 ≥ ⋯ ≥ J ≥ 0 V ∈ Vf(v)aa=1≥a1≥a2≥⋯≥aJ≥0v∈V
このパラメーター化により、事前分布の便利な指定が可能になる場合があります。それらを位置の事前形状事前分布に分解します。(もちろん、場所と形状が独立していない、より大きな事前分布のセットを検討することもできますが、これはより複雑な作業になります。)ava
ランダムな値を生成する
からサンプリングする1つの方法 は、球形の放射上の分布と各球を条件とする別の分布にそれを因数分解することによる段階です。f(v)a
確率によって与えられるの離散分布からインデックスを描画します。ここで、は以前のように定義されています。{ 0 、1 、... 、J } ( Ji{0,1,…,J}A(Ji)(n−1)iai/AA
インデックスは、と正確に桁異なるベクトルのセットに対応します。したがって、可能なサブセットから配置するものを選択し、各等しい確率を与えます。(これはのほんの一例であるのうち添え字ずに交換。)のこのサブセットしてみましょう書くことが置か。v i i ( Jivii iJiI(Ji)iJ iI
すべてのに対してと等しくないスカラーのセットから値個別に選択して要素をし、それ以外の場合は設定します。同様に、ときはゼロ以外のスカラーからをランダムに均一に選択し、それ以外の場合は設定して、ベクトル作成します。セット。ワットjはV J J ∈ I ワットJ = V J U U J J ∈ I 、U 、J = 0 、W = V + Uwwjvjj∈Iwj=vjuujj∈Iuj=0w=v+u
バイナリの場合、ステップ3は不要です。
例
ここR
に説明する実装があります。
rHamming <- function(N=1, a=c(1,1,1), n=2, origin) {
# Draw N random values from the distribution f_a^v where the ground ring
# is {0,1,...,n-1} mod n and the vector space has dimension j = length(a)-1.
j <- length(a) - 1
if(missing(origin)) origin <- rep(0, j)
# Draw radii `i` from the marginal distribution of the spherical radii.
f <- sapply(0:j, function(i) (n-1)^i * choose(j,i) * a[i+1])
i <- sample(0:j, N, replace=TRUE, prob=f)
# Helper function: select nonzero elements of 1:(n-1) in exactly i places.
h <- function(i) {
x <- c(sample(1:(n-1), i, replace=TRUE), rep(0, j-i))
sample(x, j, replace=FALSE)
}
# Draw elements from the conditional distribution over the spheres
# and translate them by the origin.
(sapply(i, h) + origin) %% n
}
その使用例として:
test <- rHamming(10^4, 2^(11:1), origin=rep(1,10))
hist(apply(test, 2, function(x) sum(x != 0)))
これは、分布から iid要素を描画するのに秒かかりましたここで、、(バイナリの場合)、、およびは指数関数的に減少しています。10 4 F (V) J = 10 、N = 2 、V = (1 、1 、... 、1 )= (2 11、2 10、... 、2 1)0.2104f(v)aJ=10n=2v=(1,1,…,1)a=(211,210,…,21)
(このアルゴリズムはが減少していることを必要としないので、単峰性のものだけでなく、任意の位置ファミリからランダム変量を生成します。)a