Aqui está um amostrador recursivo bastante óbvio que é no melhor caso (em termos de pesos ω i ), mas exponencial no pior caso.O ( d)ωEu
Suponha que já selecionamos e desejamos escolher x i . Precisamos calcular
w ( x 1 , ... , x i - 1 , x i ) = Σ x i + 1 ∈ { - 1 , 1 } ⋯ Σ x d ∈ { - 1 , 1 } ( d Σx1 1, … , Xi - 1xEu
e escolhaxi=1com probabilidadew(x1,…,x i - 1 ,1)
w ( x1 1, … , Xi - 1, xEu) = ∑xi + 1∈ { - 1 , 1 }⋯ ∑xd∈ { - 1 , 1 }( ∑j = 1dωjxj)+
xEu= 1
O denominador será diferente de zero para qualquer escolha válida de amostras
x1,…,xi-1.
w ( x1 1, … , Xi - 1, 1 )w ( x1 1, … , Xi - 1, 1 ) + w ( x1 1, … , Xi - 1, - 1 ).
x1 1, … , Xi - 1
Agora, é claro, a questão é como calcular .w ( x1 1, … , XEu)
Se temos que , Em seguida, co ⋅ x ≥ 0 para qualquer x com os principais entradas x 1 : i , e assim por w torna-se:
Σ x i + 1 ⋯ Σ x d co ⋅ xC: = ∑Euj = 1ωjxj≥ ∑dj = i + 1| ωj|ω ⋅ x ≥ 0xx1 : iW
∑xi + 1⋯ ∑xdω ⋅ x= ω ⋅ ( ∑xi + 1⋯ ∑xdx )= ∑j = 1Euωj(∑xi + 1⋯ ∑xdxj)2d-euxj+ ∑j = i + 1dωj( ∑xi + 1⋯ ∑xdxj)0 0= 2d- euC.
C≤ - ∑dj = i + 1|ωj|ω ⋅ x ≤ 0w ( x1 1, … , XEu) = 0
w ( x1 1, … , XEu) = w ( x1 1, … , XEu, 1 ) + w ( x1 1, … , XEu, - 1 )
w ( 1 )w ( - 1 )x1 1WO ( d)
ωEuω1 1≥ ω2≥ ⋯ ≥ ωd
| ω1 1| > ∑dj = 2| ωj|w(1)w(−1)wO(d)
ω1=ω2=⋯=ωd
(1,1,…,1)(−1,−1,…,−1)⌈d/2⌉O(2d/2)2d/2
ωiωid