costo de muestreo de versus

9

Me encontré con el siguiente problema de simulación: dado un conjunto de números reales conocidos, una distribución en está definida por donde denota la parte positiva de . Si bien puedo pensar en una muestra de Metropolis-Hastings dirigida a esta distribución, me pregunto si existe una muestra directa eficiente, aprovechando la gran cantidad de probabilidades cero para disminuir el orden del algoritmo de a .{ω1,,ωd}{1,1}d

P(X=(x1,,xd))(x1ω1++xdωd)+
(z)+zO(2d)O(d)
Xi'an
fuente

Respuestas:

4

Aquí hay una muestra recursiva bastante obvia que es en el mejor de los casos (en términos de pesos ), pero exponencial en el peor de los casos.O(d)ωi

Supongamos que ya hemos seleccionado y deseamos elegir . Necesitamos calcular y elige con probabilidad El denominador será distinto de cero para cualquier elección válida de muestras .x1,,xi1xi

w(x1,,xi1,xi)=xi+1{1,1}xd{1,1}(j=1dωjxj)+
xi=1
w(x1,,xi1,1)w(x1,,xi1,1)+w(x1,,xi1,1).
x1,,xi1

Ahora, por supuesto, la pregunta es cómo calcular .w(x1,,xi)

Si tenemos que , entonces para cualquier con entradas , y entonces convierte en: C:=j=1iωjxjj=i+1d|ωj|ωx0xx1:iw

xi+1xdωx=ω(xi+1xdx)=j=1iωj(xi+1xdxj)2dixj+j=i+1dωj(xi+1xdxj)0=2diC.

En el caso opuesto, , tenemos que y entonces .Cj=i+1d|ωj|ωx0w(x1,,xi)=0

De lo contrario, debemos recurrir, usando .w(x1,,xi)=w(x1,,xi,1)+w(x1,,xi,1)

Suponga que la memoria no es un problema y que podemos almacenar en caché todos los sub-cálculos en , en un árbol, hasta el punto en que llegamos a uno de los casos "agradables", después de lo cual cualquier Las llamadas toman tiempo constante. (Tendremos que calcular todo este árbol de todos modos para seleccionar .) Luego, una vez que se construya este árbol de cálculos , la muestra tomará solo tiempo. La pregunta es cuánto tiempo se tarda en construir el árbol, o de manera equivalente qué tan grande es.w(1)w(1)x1wO(d)


Por supuesto, veremos los casos "agradables" más rápido si los están ordenados, .ωiω1ω2ωd

En el mejor de los casos, . Entonces llegamos a un caso "agradable" inmediatamente, ya sea para o , por lo que construcción del árbol toma constante de tiempo, y todo el muestreador toma tiempo.|ω1|>j=2d|ωj|w(1)w(1)wO(d)

En el peor de los casos (ordenados), . Entonces la pregunta es: ¿qué tan grande es el árbol total?ω1=ω2==ωd

Bueno, los primeros caminos para terminar son, por supuesto y de longitud . Por lo tanto, el árbol está completo hasta esa profundidad, y por lo tanto contiene al menos nodos. (Tiene más; probablemente puedas encontrarlo con un argumento como los que se usan en los problemas de ruina del jugador, pero no pude encontrarlo en dos minutos de Google y no me importa particularmente:  es malo suficiente....)(1,1,,1)(1,1,,1)d/2O(2d/2)2d/2

Si su configuración tiene solo unos pocos muy grandes , este es probablemente un enfoque razonablemente práctico. Si los son todos de magnitud similar, probablemente todavía sea exponencial y demasiado caro para grande .ωiωid

Dougal
fuente
Gracias por este tipo de eliminación de Viterbi. Cuando escribe "En el caso opuesto", Supongo que no se al complemento del primer caso
Cij=i+1d|ωj|
Cij=i+1d|ωj|
Xi'an
1
No, no es el complemento: cuando es muy grande, sabes que el truncamiento no se aplica, cuando es muy pequeño siempre se aplica, y en el medio debes recurrir para descubrir cuándo se aplica o no.
Dougal