Você pode favorecer famílias de locais com base na distância de Hamming , devido à sua riqueza, flexibilidade e capacidade de processamento computacional.
Notação e definições
Lembre-se de que em um módulo de dimensão finita livre com base , a distância de Hamming entre dois vetores e é o número de lugares , onde .( 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 1, e2, … , EJ) δHv = v1 1e1 1+ ⋯ + vJeJw = w1 1e1 1+ ⋯ + wJeJEuvEu≠ wEu
Dada qualquer origem , a distância de Hamming particiona nas esferas , , em que . Quando o anel de aterramento possui elementos, possui elementos e possui . (Isso ocorre imediatamente após observar que os elementos de diferem de exatamente em locais - dos quais existemV S i ( v 0 )i=0,1,…,J S i ( v 0 )={ w ∈V | δ H ( w , v 0 )=i}nV n Jv0 0∈ VVSEu( v0 0)i = 0 , 1 , … , JSEu( v0 0) = { w ∈ V | δ H( w , v0 0) = i }nVnJ( JSEu( V )Si(( JEu) (n-1)Euv i ( JSEu( V )vEu n-1( JEu)possibilidades - e que existem, independentemente, opções de valores para cada local.)n−1
A tradução afim em atua naturalmente em suas distribuições para fornecer famílias de locais. Especificamente, quando é qualquer distribuição em (que significa pouco mais que , para todos e ) e é qualquer elemento de , então também é uma distribuição Ondef 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)
para todos . Uma família local de distribuições é invariante no âmbito desta acção: implica para todos .Ω f ∈ Ωv∈V Ωf∈Ωv ∈ Vf(v)∈Ωv∈V
Construção
Isso nos permite definir famílias de distribuições potencialmente interessantes e úteis, especificando suas formas em um vetor fixo , que, por conveniência, considerarei e traduzindo essas "distribuições geradoras" sob a ação de para obter a família completa . Para atingir a propriedade desejada que deve ter valores comparáveis em pontos próximos, basta exigir essa propriedade de todas as distribuições geradoras.0 = ( 0 , 0vV Ω f0 =( 0,0,…,0)VΩf
Para ver como isso funciona, vamos construir a família de locais de todas as distribuições que diminuem com o aumento da distância. Como apenas as distâncias Hamming são possíveis, considere qualquer sequência decrescente de números reais não negativos = . Conjuntoa 0J+1a0≠a0≥a1≥⋯≥aJ≥ 0
UMA=∑Eu=0J( n -1)Eu(JEu)aEu
e defina a função porfuma:V→ [ 0 , 1 ]
fuma( v ) = aδH( 0 , v )UMA.
Então, como é fácil de verificar, é uma distribuição em . Além disso, se e somente se for um múltiplo positivo de (como vetores em ). Assim, se quisermos, podemos padronizar para . V f a = f a ' a ' a R J + 1 a a 0 = 1fumaVfuma= fuma′uma′umaRJ+ 1umauma0 0= 1
Dessa forma, essa construção fornece uma parametrização explícita de todas as distribuições invariantes a localização que estão diminuindo com a distância de Hamming: qualquer distribuição está no formato para alguma sequência e algum vetor . a = 1 ≥f( V )umav ∈ Va =1≥ a1 1≥ a2≥ ⋯ ≥ aJ≥ 0v ∈V
Essa parametrização pode permitir uma especificação conveniente de prioros: fatorá-los em um prior no local e um prior no formato . (Obviamente, pode-se considerar um conjunto maior de priores onde a localização e a forma são independentes, mas isso seria uma tarefa mais complicada.)avuma
Gerando valores aleatórios
Uma maneira de amostrar a partir de é por etapas, fatorando-a em uma distribuição através dos raios esféricos e outra distribuição condicional em cada esfera:f( V )uma
Desenhe um índice da distribuição discreta em dada pelas probabilidades , onde é definido como antes .Eu( J{ 0 , 1 , … ,J}A( JEu) (n-1)EuumaEu/ AUMA
O índice corresponde ao conjunto de vetores que diferem de exatamente em lugares. Portanto, selecione aqueles que coloque fora dos subconjuntos possíveis , dando a cada probabilidade igual. (Esta é apenas uma amostra do subscritos fora do sem substituição.) Que este subconjunto de lugares ser escrito .Euvi ( JEuEu i( JEu)EuI IJ EuEu
Desenhe um elemento selecionando independentemente um valor uniformemente no conjunto de escalares diferentes de para todos os e defina . Equivalentemente, crie um vetor selecionando uniformemente aleatoriamente nos escalares diferentes de zero quando e definindo . Defina .w j v j j ∈ I w j = v j u u j j ∈ I u j = 0 w = vWWjvjj∈Iwj=vjuujj∈Iuj=0w=v+u
O passo 3 é desnecessário no caso binário.
Exemplo
Aqui está uma R
implementação para ilustrar.
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
}
Como um exemplo de seu uso:
test <- rHamming(10^4, 2^(11:1), origin=rep(1,10))
hist(apply(test, 2, function(x) sum(x != 0)))
Demorou segundos para desenhar elementos iid da distribuição que , (o caso binário), e estão diminuindo exponencialmente.10 4 f ( v ) a J = 10 n = 2 v = ( 1 , 1 , … , 1 ) a = ( 2 11 , 2 10 , … , 2 1 )0.2104f(v)aJ=10n=2v=(1,1,…,1)a=(211,210,…,21)
(Este algoritmo não exige que esteja diminuindo; assim, ele gera variáveis aleatórias a partir de qualquer família de localizações, não apenas as unimodais.)a