Zenginlikleri, esneklikleri ve hesaplanabilir izlenebilirlikleri nedeniyle Hamming mesafesine göre konum ailelerini tercih edebilirsiniz .
Gösterim ve tanımlar
Hatırlayın bir serbest sonlu boyutlu modülü esasına , Hamming uzaklığı iki vektör arasındaki ve olduğu basamak sayısı .V(e1,e2,…,eJ) δHv=v1e1+⋯+vJeJw=w1e1+⋯+wJeJivi≠wi
Herhangi bir kaynaktan verilen , Hamming uzaklığı bölümleri küreler halinde , , burada . Zemin halka olduğunda elemanları, sahiptir elemanları ve vardır elemanları. (Bu, hemen öğelerinin tam olarak yerlerde den farklı olduğunu gözlemlemenin ardından gelir - bunlardanv0∈VVSi(v0)i=0,1,…,JSi(v0)={w∈V | δH(w,v0)=i}nVnJSi(v)(Ji)(n−1)iSi(v)vi(Ji)olasılıklar - ve bağımsız olarak, her yer için seçenekleri olduğu.)n−1
afin tercümesi doğal olarak yer ailelerine vermek için dağılımlarına etki eder. Özel olarak belirtilirse, herhangi bir dağılımı (ki araçlar biraz daha fazla , tüm ve ) ve herhangi bir öğesidir , o zaman da bir dağıtımdır neredeVfVf:V→[0,1]f(v)≥0v∈V∑v∈Vf(v)=1wVf(w)
f(w)(v)=f(v−w)
tüm . Bir konum ailesi dağıtım değişmez bu eylem altında: , için tüm .v∈V Ωf∈Ωf(v)∈Ωv∈V
İnşaat
Bu, şekillerini tek bir sabit vektörde de belirterek potansiyel olarak ilginç ve yararlı dağıtım ailelerini tanımlamamıza olanak tanır ; bu kolaylık olması için ve bu "üretici dağılımları" eylemi altında tam bir aile elde etmek için çevirmek . İstenen özelliği elde etmek yakındaki noktalarda karşılaştırılabilir değerlere sahip olmalıdır, sadece tüm üretim dağıtımlarının bu özelliğini gerektirir.v0=(0,0,…,0)VΩf
Bunun nasıl çalıştığını görmek için, artan mesafe ile azalan tüm dağıtımların konum ailesini inşa edelim. Yalnızca Hamming mesafeleri mümkün olduğundan, negatif olmayan gerçek sayıların azalan bir sırasını düşünün = . AyarlamakJ+1a0≠a0≥a1≥⋯≥aJ≥0
A=∑i=0J(n−1)i(Ji)ai
ve işlev tanımlamak ilefa:V→[0,1]
fa(v)=aδH(0,v)A.
Ardından, kontrol edilmesi kolay olduğu gibi, üzerinde bir dağılımdır . Bundan başka, ancak ve ancak olumlu bir katı olan (olarak vektörler ). Böylece, eğer istersek, ı standardize edebiliriz .faVfa=fa′a′aRJ+1aa0=1
Buna uygun olarak, bu yapı Hamming mesafe azalmaktadır bu gibi tüm yer değişmeyen dağılımlar açık bir parametrelendirmesini verir: bu tür bir dağıtım formundadır bir sekans için ve bazı vektörler .f(v)aa=1≥a1≥a2≥⋯≥aJ≥0v∈V
Bu parametreleştirme, önceliklerin uygun şekilde belirtilmesine izin verebilir: bunları bir ve şeklinde bir önceliğe çarpanlarına ayırın . (Tabii ki, konumun ve şeklin bağımsız olmadığı ve daha büyük olduğu bir dizi öncelik düşünülebilir, ancak bu daha karmaşık bir girişim olacaktır.)va
Rastgele değerler üretme
dan örneklemenin bir yolu, onu küresel radyasyon üzerinde bir dağılıma ve her kürede koşullu başka bir dağılıma çarpanlara ayırmak suretiyle aşamalı olarak yapılmasıdır:f(v)a
Binom olasılıkları tarafından verilen kesikli dağıtımından bir dizin çizin , burada daha önce tanımlandığı gibidir .i{0,1,…,J}(Ji)(n−1)iai/AA
dizini , tam olarak yerlerinde den farklı vektörler kümesine karşılık gelir . Bu nedenle, bu seçmek üzerinden yerleştirir her biri eşit olasılık veren muhtemel alt-grupları. (Bu sadece bir örnektir dışarı alt simgelerinin olmadan değiştirilmesi.) Bu alt kümesi olsun yerlere yazılacaktır .ivii(Ji)iJ iI
Bir eleman çizin bağımsız bir değer belirleyerek değil eşit skalerler kümesinden eşit tüm ve aksi takdirde set . şekilde, olduğunda sıfır olmayan rastgele seçerek ve aksi halde ayarlayarak bir vektörü oluşturun . Takım .wwjvjj∈Iwj=vjuujj∈Iuj=0w=v+u
Adım 3 ikili durumda gerekli değildir.
Misal
İşte açıklamak için bir R
uygulama.
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
}
Kullanımının bir örneği olarak:
test <- rHamming(10^4, 2^(11:1), origin=rep(1,10))
hist(apply(test, 2, function(x) sum(x != 0)))
Bu, dağılımından iid öğesi çizmek için saniye sürdü ; burada , (ikili durum), ve katlanarak azalıyor.0.2104f(v)aJ=10n=2v=(1,1,…,1)a=(211,210,…,21)
(Bu algoritma azalmasını gerektirmez; bu nedenle, yalnızca tekil olanlardan değil , herhangi bir konum ailesinden rastgele farklılıklar üretecektir .)a