Vous pouvez privilégier les familles d'emplacement basées sur la distance de Hamming , en raison de leur richesse, de leur flexibilité et de leur facilité de calcul.
Notation et définitions
Rappelons que dans un module libre de dimension finie à base ( e 1 , e 2 , … , e J ) , la distance de Hamming δ H entre deux vecteurs v = v 1 e 1 + ⋯ + v J e J et w = w 1 e 1 + ⋯ + w J e J est le nombre de places i où v iV(e1,e2,…,eJ) δHv=v1e1+⋯+vJeJw=w1e1+⋯+wJeJi .vi≠wi
Étant donné n'importe quelle origine , la distance de Hamming partitionne V en sphères S i ( v 0 ) , i = 0 , 1 , … , J , où S i ( v 0 ) = { w ∈ V | δ H ( w , v 0 ) = i } . Lorsque l'anneau de masse a n éléments, V av0∈VVSi(v0)i=0,1,…,JSi(v0)={w∈V | δH(w,v0)=i}nV éléments et S i ( v ) ontelements. (Cela découle immédiatement de l'observation que les éléments dediffèrent deà exactementendroits - dont il existe despossibilités- et qu'il y a, indépendamment,choix de valeurs pour chaque lieu.)nJSi(v)Si(v)vi ( J(Ji)(n−1)iSi(v)vi n-1(Ji)n−1
La traduction affine en agit naturellement sur ses distributions pour donner des familles de localisations. Plus précisément, lorsque est une distribution sur (ce qui signifie un peu plus que , pour tous , et ) et est n'importe quel élément de , alors est également une distribution oùf V f : V → [ 0 , 1 ] f (VfVf:V→[0,1]v ∈ V ∑ v ∈ V f ( v ) = 1 w V f ( w )f(v)≥0v∈V∑v∈Vf(v)=1wVf(w)
f(w)(v)=f(v−w)
pour tous . Une situation familiale des distributions est invariante par cette action: implique pour tous .Ω f ∈ Ω f ( v ) ∈ Ω v ∈ Vv∈V Ωf∈Ωf(v)∈Ωv∈V
Construction
Cela nous permet de définir des familles de distributions potentiellement intéressantes et utiles en spécifiant leurs formes dans un vecteur fixe , que pour plus de commodité je considérerai comme , et traduire ces "distributions génératrices" sous l'action de pour obtenir la famille complète . Pour obtenir la propriété souhaitée que devrait avoir des valeurs comparables aux points voisins, il suffit d'exiger cette propriété de toutes les distributions génératrices.0 = ( 0 , 0 , … , 0 ) V Ω fv0=(0,0,…,0)VΩf
Pour voir comment cela fonctionne, construisons la famille d'emplacement de toutes les distributions qui diminuent avec l'augmentation de la distance. Étant donné que seules les distances de Hamming sont possibles, considérez toute séquence décroissante de nombres réels non négatifs = . Ensemblea 0 ≠ a 0 ≥ a 1 ≥ ⋯ ≥ a J ≥ 0J+1a0≠a0≥a1≥⋯≥aJ≥0
A=∑i=0J(n−1)i(Ji)ai
et définir la fonction parfa:V→[0,1]
fa(v)=aδH(0,v)A.
Puis, comme il est facile de vérifier, est une distribution sur . De plus, si et seulement si est un multiple positif de (comme vecteurs dans ). Ainsi, si nous le souhaitons, nous pouvons standardiser à . V f a = ffaV a′aRJ+1aa0=1fa=fa′a′aRJ+1aa0=1
En conséquence, cette construction donne un paramétrage explicite de toutes ces distributions invariantes de localisation qui diminuent avec la distance de Hamming: toute distribution de ce type est sous la forme pour une séquence et un vecteur . a=1≥a1≥a2≥⋯≥aJ≥0v∈Vf(v)aa=1≥a1≥a2≥⋯≥aJ≥0v∈V
Ce paramétrage peut permettre une spécification pratique des a priori: factorisez-les en un a priori sur l'emplacement et un a priori sur la forme . (Bien sûr, on pourrait envisager un ensemble plus important de prieurs où l'emplacement et la forme ne sont pas indépendants, mais ce serait une entreprise plus compliquée.)ava
Génération de valeurs aléatoires
Une façon d'échantillonner à partir de est par étapes en le factorisant dans une distribution sur le rayon sphérique et une autre distribution conditionnelle à chaque sphère:f(v)a
Dessinez un indice partir de la distribution discrète sur donné par les probabilités , où est défini comme précédemment .{ 0 , 1 , … , J } ( Ji{0,1,…,J}A(Ji)(n−1)iai/AA
L'index correspond à l'ensemble des vecteurs différents de à exactement endroits. Par conséquent, sélectionnez ceux que place parmi les sous-ensembles possibles, en donnant à chaque probabilité égale. (Ceci est juste un échantillon de Subscripts sur sans remplacement.) Que ce sous - ensemble de lieux écrire .v i i ( Jivii iJiI(Ji)iJ iI
Dessinez un élément en sélectionnant indépendamment une valeur uniformément dans l'ensemble de scalaires non égal à pour tout et sinon définissez . De manière équivalente, créez un vecteur en sélectionnant uniformément au hasard parmi les scalaires non nuls lorsque et en définissant autrement . Définissez .w j v j j ∈ I w j = v j u u j j ∈wwjvjj∈Iwj=vjuuju j = 0 w = v + uj∈Iuj=0w=v+u
L'étape 3 n'est pas nécessaire dans le cas binaire.
Exemple
Voici une R
implémentation à illustrer.
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
}
À titre d'exemple de son utilisation:
test <- rHamming(10^4, 2^(11:1), origin=rep(1,10))
hist(apply(test, 2, function(x) sum(x != 0)))
Cela a pris seconde pour dessiner éléments iid de la distribution où , (le cas binaire), et diminue de façon exponentielle.10 4 f ( v ) a J = 10 n = 2 v = (0.2104f(v)aJ=10n=2a = ( 2 11 , 2 10 , … , 2 1 )v=(1,1,…,1)a=(211,210,…,21)
(Cet algorithme ne nécessite pas que diminue; ainsi, il générera des variations aléatoires à partir de n'importe quelle famille d'emplacement, pas seulement celles unimodales.)a