풍부함, 유연성 및 계산 적 다루기 때문에 해밍 거리를 기반으로 위치 패밀리를 선호 할 수 있습니다 .
표기법 및 정의
기준이 인 자유 유한 차원 모듈 에서 두 벡터 사이 의 해밍 거리 및 는 장소 수 여기서 .V(e1,e2,…,eJ) δHv=v1e1+⋯+vJeJw=w1e1+⋯+wJeJivi≠wi
원점이 이면 해밍 거리는 를 구 , 로 분할합니다 . 여기서 입니다. 접지 링에 요소가있는 경우 에는 요소가 있으며 에는 요소가 있습니다. (이것은 요소가 정확히 자리 에서 와 다르다는 것을 관찰 한 직후 입니다.이 중v0∈VVSi(v0)i=0,1,…,JSi(v0)={w∈V | δH(w,v0)=i}nVnJSi(v)(Ji)(n−1)iSi(v)vi(Ji)가능성-독립적 으로 각 장소마다 개의 값을 선택할 수 있습니다.)n−1
번역 을 정의하면 분포에 자연스럽게 작용하여 위치 패밀리를 제공합니다. 구체적으로, 가 대한 분포 인 경우 (즉, 보다 약간 적은 의미 , 모든 대해 및 )와 임의의 원소 이어서, 도 분포 어디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
구성
이를 통해 하나의 고정 벡터 모양을 지정하여 흥미롭고 유용한 분포 군을 정의 할 수 있습니다. 편의상 , 그리고 전체 제품군 를 얻기 위해 의 동작 하에서 이러한 "생성 분포"를 번역합니다 . 가 가까운 지점에서 비슷한 값을 가져야 하는 원하는 특성을 달성하려면 모든 생성 분포의 해당 특성이 필요합니다.v0=(0,0,…,0)VΩf
이것이 어떻게 작동하는지 알아보기 위해 거리가 증가함에 따라 감소하는 모든 분포의 위치 패밀리를 구성 해 봅시다. 때문 해밍 거리가 가능하며, 음이 아닌 실수의 어떤 감소 시퀀스 고려 = . 세트J+1a0≠a0≥a1≥⋯≥aJ≥0
A=∑i=0J(n−1)i(Ji)ai
함수 를fa:V→[0,1]
fa(v)=aδH(0,v)A.
그런 다음 확인하기 쉬운 것처럼 는 의 분포입니다 . 또한, 가 의 양의 배수 인 경우에만 ( 벡터로) ). 따라서 원하는 경우 를 표준화 할 수 있습니다 .faVfa=fa′a′aRJ+1aa0=1
따라서이 구조는 해밍 거리에 따라 감소하는 모든 위치 불변 분포의 명시 적 매개 변수화를 제공합니다. 이러한 분포는 일부 시퀀스 대해 입니다. 및 일부 벡터 입니다.f(v)aa=1≥a1≥a2≥⋯≥aJ≥0v∈V
이 매개 변수화는 편리한 사전 지정을 허용 할 수 있습니다. 위치 및 사전 에 대한 사전을 고려하십시오 . (물론 위치와 모양이 독립적이지 않은 더 큰 일련의 사전을 고려할 수 있지만, 이는 더 복잡한 사업 일 것입니다.)va
임의의 값 생성
에서 샘플링하는 한 가지 방법 은 단계적으로 구형 방사에 대한 분포와 각 구체에 대한 조건부 분포를 고려하여 단계적으로 추출하는 것입니다.f(v)a
확률 에서 주어진 의 이산 분포에서 지수 를 그 . 여기서 는 이전과 같이 정의됩니다 .i{0,1,…,J}(Ji)(n−1)iai/AA
인덱스 는 정확히 자리 에서 와 다른 벡터 집합에 해당 합니다. 따라서, 그 선택을 의 밖으로 배치 각각 동일한 확률을 부여 가능한 서브 세트. (이것은 단지 샘플입니다 밖으로 첨자 없이 교체.)의 부분 집합하자 장소가 기록 될 .ivii(Ji)iJ iI
모든 대해 와 같지 않은 스칼라 세트에서 값 를 독립적으로 선택하여 요소 를 그 . 그렇지 않으면 설정 . 마찬가지로, 때 0이 아닌 스칼라 에서 무작위로 를 임의로 선택 하고 그렇지 않으면 설정 하여 벡터를 만듭니다 . 집합 .wwjvjj∈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 요소를 가져 오는 데 초가 걸렸습니다. 여기서 , ( 진 경우), 및 이 기하 급수적으로 감소하고 있습니다.0.2104f(v)aJ=10n=2v=(1,1,…,1)a=(211,210,…,21)
(이 알고리즘은 감소를 요구하지 않으므로 단봉 형이 아닌 모든 위치 군 에서 임의의 변이를 생성 합니다.)a