Simule un dado justo con un dado sesgado

18

Dado un dado sesgado del lado , ¿cómo puede generarse un número aleatorio en el rango manera uniforme? La distribución de probabilidad de las caras del dado no se conoce, todo lo que se sabe es que cada cara tiene una probabilidad distinta de cero y que la distribución de probabilidad es la misma en todos los lanzamientos (en particular, los lanzamientos son independientes). Esta es la generalización obvia de los resultados justos con un dado injusto .N[1,N]

Poniendo esto en términos informáticos, tenemos un oráculo que representa las tiradas del dado: modo que es distinto de cero e independiente de . Estamos en busca de un algoritmo determinista que está parametrizada por (es decir, pueden hacer llamadas a ) de tal manera que . El algoritmo debe terminar con la probabilidad 1, es decir, la probabilidad de que haga más de llamadas a debe converger a como .D:N[1,N]pi=P(D(k)=i)kADADP(A()=i)=1/NAnD0n

Para (simule una moneda justa de monedas con una moneda sesgada), hay un algoritmo bien conocido:N=2

  • Repita "voltear dos veces" hasta que los dos lanzamientos arrojen resultados distintos ((cara, cruz) o (cola, cara)). En otras palabras, bucle para hastak=0..D(2k+1)D(2k)
  • Devuelve 0 si el último par de vueltas fue (caras, colas) y 1 si fue (colas, caras). En otras palabras, devuelva donde es el índice en el que se terminó el ciclo.D(2k)k

Una forma simplista de hacer un dado imparcial a partir de uno sesgado es usar el método de deshacer el cambio de moneda para construir una moneda justa, y construir un dado justo con muestreo de rechazo, como en Unbiasing de secuencias . Pero, ¿es esto óptimo (para valores genéricos de la distribución de probabilidad)?

Específicamente, mi pregunta es: ¿qué es un algoritmo que requiere el menor número esperado de llamadas al oráculo ? Si el conjunto de valores esperados alcanzables está abierto, ¿cuál es el límite inferior y cuál es una clase de algoritmos que converge hacia este límite inferior?

En caso de que diferentes familias de algoritmos sean óptimas para diferentes distribuciones de probabilidad, centrémonos en dados casi justos: estoy buscando un algoritmo o una familia de algoritmos que sea óptimo para distribuciones tales que para algunos .ϵ > 0i,|pi1/N|<ϵϵ>0

Gilles 'SO- deja de ser malvado'
fuente
Tenga en cuenta que es importante definir cuidadosamente el óptimo, ya que, por ejemplo, se le puede dar un dado completamente justo, o un dado que tenga p1=1ϵ , pi=ϵ/(N1) para ϵ por ejemplo. , o cualquier otro tipo de morir Un esquema óptimo para el dado justo solo requiere una tirada, mientras que para el ejemplo injusto, un esquema óptimo requiere muchos. Además, el supremum de los troqueles sesgados óptimos sobre todos los posibles es probablemente ilimitado. Por lo tanto, es posible que desee introducir un parámetro, y suponga que max i p i1 -i>1maxipi1ϵ
usul
@usul No entiendo tu comentario. Hay algoritmos más eficientes para algunos valores de (por ejemplo, si i , p i = 1 / N ), pero solo pido algoritmos que no dependan de ( p i ) . ¿Cuál es el punto de ϵ ? pii,pi=1/N(pi)ϵ
Gilles 'SO- deja de ser malvado'
¿Cómo se mide la eficiencia de un algoritmo que no depende de ? Probablemente para cualquier algoritmo de este tipo, no existe un límite superior en el número esperado de llamadas necesarias, tomando mi ejemplo sesgado con ϵ 0 . Esto es lo que quiero decir con "el supremum de lo óptimo ... probablemente no tiene límites". Entonces, si todos los algoritmos pueden requerir arbitrariamente muchas tiradas de dados en expectativa, ¿cómo decidimos cuál es el mejor? (pi)ϵ0
usul
@usul No hay límite superior en el número de lanzamientos, por supuesto, pero estoy preguntando sobre el valor esperado (es decir, el número promedio de lanzamientos). Para una distribución dada , el valor esperado para el algoritmo que crea una moneda justa y lo usa para el muestreo de rechazo es finito, ¿no? Es cierto que la expectativa depende de la distribución, por lo que diferentes algoritmos (familias de) podrían ser óptimos para diferentes distribuciones. Si ese es el caso, digamos que estoy interesado en dados casi justos. (pi)
Gilles 'SO- deja de ser malvado'
No es exactamente la pregunta, pero ¿estaría dispuesto a buscar solo un resultado que sea cercano al uniforme (en / distancia de variación total)? Si es así, dependiendo de la garantía que solicite de la distribución original, esto se estudia en un artículo reciente (en presentación), bajo el nombre de "mejorador de muestreo para uniformidad", que muestra en particular que puede obtener números de sorteos independientes de N para mejorar de 1 distancia ε a distancia ε . 1N1εε
Clemente C.

Respuestas:

3

El siguiente artículo responde a una variante cercana de esta pregunta: La construcción eficiente de una secuencia aleatoria imparcial, Elias 1972 .

La pregunta parece ser esta: dado el acceso a esta fuente independiente sesgada, genera una secuencia de números aleatorios en (observe la diferencia de su pregunta en la que solo se solicita un símbolo de salida). A medida que la longitud del resultado deseado llega al infinito, la "eficiencia" del esquema en el documento (que parece una generalización natural de von Neumann) va a[1,N] , lo que significa, creo, que una entrada con entropía h se convierte en Una salida de entropía que se aproxima a h .1hh

La pregunta parece comportarse mucho mejor cuando se formula de esta manera, en lugar de solicitar un solo dígito de salida, porque, por ejemplo, si dibujamos muestras y terminamos con una salida con mucha información (por ejemplo, todos los N símbolos de entrada son distintos) , entonces podemos usartodaesa información para producir muchos símbolos de salida, mientras que con la pregunta como está formulada aquí, cualquier información más allá de la utilizada para producir un símbolo de salida se desperdicia.NN

Creo que el esquema toma sorteos repetidamente , mira la secuencia y le asigna algunas salidas o la cadena vacía. ¿Quizás haya una manera de mejorar el esquema de su pregunta mirando prefijos y deteniéndose si tenemos información "suficiente" para generar un símbolo? No lo sé.N

usul
fuente
No he buscado trabajo posterior o trabajo citando el documento, así que no sé, pero tal vez alguien mejoró el esquema, ofreció otro, respondió a su pregunta, etc.
usul
2

El método que describe para generaliza. Usamos que todas las permutaciones de [ 1 .. N ] son igualmente probables incluso con un dado sesgado (ya que las tiradas son independientes). Por lo tanto, podemos seguir rodando hasta que veamos una permutación como las últimas N tiradas y la salida de la última tira.N=2[1..N]N

Un análisis general es complicado; Sin embargo, está claro que el número esperado de lanzamientos crece rápidamente en ya que la probabilidad de ver una permutación en cualquier paso dado es pequeña (y no independiente de los pasos anteriores y posteriores, por lo tanto, difícil). Sin embargo, es mayor que 0 para N fijo , por lo que el procedimiento termina casi con seguridad (es decir, con probabilidad 1 ).N0N1

Para fijo podemos construir una cadena de Markov sobre el conjunto de vectores Parikh que suman N , resumiendo los resultados de los últimos N rollos, y determinar el número esperado de pasos hasta llegar a ( 1 , ... , 1NNN para el primera vez(1,,1). Esto es suficiente ya que todas las permutaciones que comparten un vector Parikh son igualmente probables; Las cadenas y los cálculos son más simples de esta manera.

Supongamos que estamos en el estado de con Σ n i = 1 v iN . Entonces, la probabilidad de obtener un elemento i (es decir, el próximo lanzamiento es iv=(v1,,vN)i=1nviNii ) siempre viene dada por

Pr[gain i]=pi .

Por otro lado, la posibilidad de soltar un elemento i de la historia está dada por

Prv[drop i]=viN

siempre que (y 0 de otro modo), precisamente porque todas las permutaciones con Parikh-vector v son igualmente probables. Estas probabilidades son independientes (ya que los rollos son independientes), por lo que podemos calcular las probabilidades de transición de la siguiente manera:i=1nvi=N0v

Pr[v(v1,,vj+1,,vN)]={Pr[gain j],v<N0, else,Pr[v(v1,,vi1,vj+1,,vN)]={0,v<Nvi=0vj=NPrv[drop i]Pr[gain j], else andPr[vv]={0,v<Nvi0Prv[drop i]Pr[gain i], else;

todas las demás probabilidades de transición son cero. El único estado de absorción es , el vector Parikh de todas las permutaciones de [ 1 .. N ] .(1,,1)[1..N]

Para la cadena de Markov resultante esN=2

Cadena de Markov para N = 2
[ fuente ]

con el número esperado de pasos hasta la absorción

Esteps=2p0p12+i3(p0i1p1+p1i1p0)i=1p0+p02p0p02,

utilizando para simplificar que . Si ahora, como se sugiere, p 0 = 1p1=1p0para algunosϵ[0,1p0=12±ϵ, entoncesϵ[0,12)

Esteps=3+4ϵ214ϵ2 .

Para y distribuciones uniformes (el mejor de los casos) he realizado los cálculos con álgebra de computadora²; Como el espacio de estado explota rápidamente, los valores más grandes son difíciles de evaluar. Los resultados (redondeados hacia arriba) sonN6

Parcela Normal LogPlot
Mostrar parcelas en función de NEstepsN ; a la izquierda una trama logarítmica regular y a la derecha.

El crecimiento parece ser exponencial, pero los valores son demasiado pequeños para dar buenas estimaciones.

En cuanto a la estabilidad frente a las perturbaciones de la , podemos observar la situación para N = 3 :piN=3

Número esperado de pasos para N = 3 y diferentes opciones
La trama muestra en función de p 0 y p 1 ; naturalmente, p 2 = 1 - p 0 - p 1 .Estepsp0p1p2=1p0p1

Suponiendo imágenes similares para más grande (el núcleo se bloquea al calcular resultados simbólicos incluso para N = 4 ), el número esperado de pasos parece ser bastante estable para todas las opciones excepto las más extremas (casi todas o ninguna masa en algún p i ).NN=4pi

Para comparar, simular una moneda imparcial (por ejemplo, asignando los resultados del dado a 0 y 1 de la manera más uniforme posible), usar esto para simular una moneda justa y, finalmente, realizar un muestreo de rechazo en bits.ϵ01

2logN3+4ϵ214ϵ2

los dados mueren en expectativa, probablemente deberías quedarte con eso.


  1. Como la cadena absorbe los bordes insinuados en gris nunca se atraviesan y no influyen en los cálculos. Los incluyo simplemente para completar y para fines ilustrativos.(11)
  2. Implementación en Mathematica 10 ( Notebook , Bare Source ); lo siento, es lo que sé para este tipo de problemas.
Rafael
fuente
1

Solo un comentario rápido sobre el caso . Tome un número grande de m , y muestree m tiros del dado. Si tienes k cabezas, entonces puedes extraer log ( mN=2mmk bits. Suponiendo que el dado estásesgadop, la cantidad promedio de información es m k=0pk(1-p)m-k ( mlog(mk)p Para obtener esta estimación, utilice el hecho de que la variable binomial se concentra alrededor dek=pmjunto con elregistro deestimación ( m

k=0mpk(1p)mk(mk)log(mk)mh(p).
k=pm. A medida quemaumenta, obtenemos la tasa óptima deh(p)log(mk)mh(k/m)mh(p) por lanzamiento de moneda (esto es óptimo por razones teóricas de información, por ejemplo, la propiedad de equipartición asintótica).

Puede usar el mismo método para general , y probablemente obtendrá el mismo H ( p ) . Estos algoritmos solo son óptimos en el límite, y puede haber algoritmos que lleguen al límite más rápido que estos. De hecho, olvidé calcular la velocidad de convergencia; podría ser un ejercicio interesante.NH(p)

Yuval Filmus
fuente
1

Me arriesgaría a la siguiente respuesta.

(p+q)2pq2pqpqqppqqp

N=3(p+q+r)3pqrqpr

N=3pqr

.

Extra:

Esto me hace pensar en la idea de simplemente muestrear mucho para estimar la probabilidad de cada resultado del dado. En este caso más simple de modelo de una capa sin capa oculta (un modelo conocido), podemos calcular un límite para concluir que la estimación converge rápidamente. De hecho, el límite de Chernoff nos muestra que el error disminuye exponencialmente a medida que aumenta el muestreo (linealmente).

i=1i=npi (o cualquier término que use como secuencia basada ) Esto será un poco más eficiente porque se usarán más términos en la expansión. Pero admito que no sé si esto dará como resultado el menor número de llamadas al oráculo para tener una garantía sobre las condiciones previas (como el parámetro de confianza), si se dan.

Sin embargo, este enfoque es una respuesta a un sabor diferente de la pregunta. La pregunta pide una imparcialidad perfecta garantizada a costa de un muestreo potencialmente grande (aunque de baja probabilidad). Este enfoque solo utiliza muestreo finito con límite en el parámetro de confianza. Por lo tanto, no creo que este enfoque sea apropiado para esta pregunta aunque sea muy interesante.

InformadoA
fuente