Dado um dado tendencioso do lado , como um número aleatório no intervalo ser gerado uniformemente? A distribuição de probabilidade das faces do dado não é conhecida, tudo o que se sabe é que cada face tem uma probabilidade diferente de zero e que a distribuição de probabilidade é a mesma em todos os arremessos (em particular, os arremessos são independentes). Esta é a generalização óbvia dos resultados justos com dados injustos .
Colocando isso em termos de ciência da computação, temos um oráculo representando os dados do dado: modo que seja diferente de zero e independente de . Nós estamos em busca de um algoritmo determinista que é parametrizada por (ou seja, pode fazer chamadas para ) de modo a que . O algoritmo deve terminar com a probabilidade 1, ou seja, a probabilidade de que faça mais de chamadas para deve convergir para como .
Para (simule uma moeda justa a partir de lançamentos de moedas com uma moeda tendenciosa), existe um algoritmo bem conhecido:
- Repita “virar duas vezes” até que os dois lançamentos tenham resultados distintos ((cara, coroa) ou (coroa, cara)). Em outras palavras, faça um loop para até
- Retorne 0 se o último par de flips foi (cara, coroa) e 1 se foi (coroa, cara). Em outras palavras, retorne que é o índice no qual o loop foi finalizado.
Uma maneira simplista de fazer um dado imparcial a partir de um dado tendencioso é usar o método de não-oscilação da moeda para construir uma moeda justa e construir um dado justo com amostragem por rejeição, como em Desencadeamento de sequências . Mas isso é ideal (para valores genéricos da distribuição de probabilidade)?
Especificamente, minha pergunta é: o que é um algoritmo que requer o menor número esperado de chamadas para o oráculo ? Se o conjunto de valores esperados alcançáveis estiver aberto, qual é o limite inferior e qual é a classe de algoritmos que converge para esse limite inferior?
Caso diferentes famílias de algoritmos sejam ótimas para diferentes distribuições de probabilidade, vamos nos concentrar em dados quase justos: estou procurando um algoritmo ou uma família de algoritmos ideal para distribuições como para alguns .
fonte
Respostas:
O artigo a seguir responde a uma variante próxima dessa questão: A construção eficiente de uma sequência aleatória imparcial, Elias 1972 .
A pergunta parece ser a seguinte: Dado acesso a essa fonte independente enviesada, imprima uma sequência de números aleatórios em (observe a diferença da sua pergunta na qual apenas um símbolo de saída é solicitado). À medida que o comprimento da saída desejada chega ao infinito, a "eficiência" do esquema no artigo (que parece uma generalização natural de von Neumann) passa para , significando, acredito, que uma entrada com entropia é convertida em uma saída de entropia se aproximando .1 h h[1,N] 1 h h
A pergunta parece muito melhor comportada quando formulada dessa maneira, em vez de solicitar um único dígito de saída, porque, por exemplo, se extrairmos amostras e acabarmos com uma saída com muita informação (por exemplo, todos os símbolos de entrada são distintos) , podemos usar todas essas informações para produzir muitos símbolos de saída, enquanto que com a pergunta aqui formulada, qualquer informação além daquela usada para produzir um símbolo de saída é desperdiçada.NN N
Eu acredito que o esquema pega repetidamente draws, olha a sequência e mapeia algumas saídas ou a string vazia. Talvez exista uma maneira de melhorar o esquema da sua pergunta observando prefixos e parando se tivermos informações "suficientes" para gerar um símbolo? Eu não sei.N
fonte
O método que você descreve para generaliza. Usamos que todas as permutações de são igualmente prováveis, mesmo com um dado inclinado (uma vez que os rolos são independentes). Portanto, podemos continuar rolando até vermos uma permutação como os últimos rolos e produzir o último rolo.[ 1 .. N ] NN=2 [1..N] N
Uma análise geral é complicada; é claro, no entanto, que o número esperado de rolagens cresce rapidamente em uma vez que a probabilidade de ver uma permutação em uma determinada etapa é pequena (e não é independente das etapas anteriores e posteriores, portanto complicadas). Ele é maior que para fixo , no entanto, portanto, o procedimento termina quase com certeza (ou seja, com probabilidade ).0 N 1N 0 N 1
Para fixo , podemos construir uma cadeia de Markov sobre o conjunto de vetores Parikh que somam , resumindo os resultados dos últimos rolos e determinar o número esperado de etapas até alcançarmos pela primeira vez . Isso é suficiente, pois todas as permutações que compartilham um vetor Parikh são igualmente prováveis; as cadeias e cálculos são mais simples dessa maneira.≤ N N ( 1 , … , 1 )N ≤N N (1,…,1)
Assuma que estão em estado com . Então, a probabilidade de obter um elemento (ou seja, o próximo lançamento é ) é sempre dada por∑ n i = 1 v i ≤ Nv=(v1,…,vN) ∑ni=1vi≤N ii i
Por outro lado, a propabilidade de retirar um elemento da história é dada pori
sempre que (e caso contrário) precisamente porque todas as permutações com o vetor Parikh são igualmente prováveis. Essas probabilidades são independentes (já que os rolos são independentes), para que possamos calcular as probabilidades de transição da seguinte maneira:0 v∑ni=1vi=N 0 v
todas as outras probabilidades de transição são zero. O único estado absorvente é , o vetor Parikh de todas as permutações de .[ 1 .. N ](1,…,1) [1..N]
Para a cadeia de Markov resultante¹ éN=2
[ fonte ]
com o número esperado de etapas até a absorção
usando para simplificação que . Se agora, como sugerido, por alguns , entãop1=1−p0 p0=12±ϵ ϵ∈[0,12)
Para e distribuições uniformes (o melhor caso), realizei os cálculos com álgebra computacional²; como o espaço de estados explode rapidamente, é difícil avaliar valores maiores. Os resultados (arredondados para cima) sãoN≤6
Os gráficos mostram como uma função de ; à esquerda um gráfico regular e à direita um gráfico logarítmico.
O crescimento parece ser exponencial, mas os valores são muito pequenos para fornecer boas estimativas.
Quanto à estabilidade contra perturbações do , podemos observar a situação para :pi N=3
O gráfico mostra como uma função de e ; naturalmente, .
Supondo imagens semelhantes para maior (o kernel trava computando resultados simbólicos mesmo para ), o número esperado de etapas parece ser bastante estável para todas as escolhas, exceto as mais extremas (quase todas ou nenhuma massa em algum ).N N=4 pi
Para comparação, a simulação de uma moeda com polarização (por exemplo, atribuindo os resultados do dado a e mais uniforme possível), usando-a para simular uma moeda justa e, finalmente, realizando amostragem por rejeição bit a bit, requer no máximoϵ 0 1
rolos de morrer na expectativa - você provavelmente deve ficar com isso.
fonte
Apenas um comentário rápido sobre o caso . Pegue um número grande e experimente jogadas do dado. Se você tiver cabeças, poderá extrair bits. Supondo que o dado é inclinado, a quantidade média de informação é Para obter essa estimativa, use o fato de que a variável binomial está concentrada em torno de juntamente com a estimativa . À medida que aumenta, obtemos a taxa ideal deN=2 m m k pm ∑log(mk) p
Você pode usar o mesmo método para geral e provavelmente obterá o mesmo . Esses algoritmos são ótimos apenas no limite e pode haver algoritmos que atingem o limite mais rapidamente que estes. Na verdade, eu esqueci de calcular a velocidade da convergência - pode ser um exercício interessante.H ( → p )N H(p⃗ )
fonte
Eu arriscaria a seguinte resposta.
O caso específico de 2 que você mencionou acima é o caso específico de expansão (onde é prob de cabeça e prob de cauda), que fornece um termo Isso significa que você pode obter para um caso e para o outro caso. Você precisará repetir a amostragem até ver ou (cabeça-cauda ou cauda-cabeça). Usando-as como simulação, você dará a mesma probabilidade. p q(p+q)2 p q 2pq pq qp pq qp
Quando você tem a expansão que fornece o termo . Nesse caso, você faz a mesma coisa, amostrando até ver todos os três resultados , , em alguma ordem em três tentativas consecutivas.( pN=3 (p+q+r)3 pqr q p r
O mesmo se aplica ao caso geral. Pensando com cuidado, devo dizer que o caso 2 é o melhor caso em que se pode resolver as coisas na expansão. Quando existem 6 sequências diferentes para e existem muitos outros termos na expansão. Eu me sentiria bastante desconfortável com outros termos em que existem muitos outros resultados.N=3 pqr
.
Extra:
Isso me faz pensar na idéia de simplesmente amostrar muito para estimar a probabilidade de cada resultado dos dados. Neste caso mais simples de um modelo de camada sem camada oculta (um modelo conhecido), podemos elaborar um limite para concluir que a estimativa converge rapidamente. De fato, o limite de Chernoff nos mostra que o erro diminui exponencialmente à medida que a amostragem aumenta (linearmente).
Agora que uma boa estimativa das probabilidades para cada lado dos dados é conhecida, há muitas opções. Uma opção é que podemos fazer a expansão acima novamente, mas desta vez podemos usar muitos outros termos na expansão que tenham o mesmo valor que (ou qualquer termo que você usa como sequência baseada). Isso será um pouco mais eficiente, porque mais termos na expansão serão usados. Mas admito que não sei se isso resultará no menor número de chamadas ao oráculo para garantir quaisquer condições prévias (como o parâmetro de confiança), se forem fornecidas.∏i=ni=1pi
No entanto, essa abordagem é uma resposta para diferentes sabores da pergunta. A questão pede garantia de imparcialidade perfeita e garantida, ao custo de amostragens potencialmente grandes (embora com baixa probabilidade). Essa abordagem usa apenas amostragem finita com parâmetro ligado à confiança. Portanto, não acho que essa abordagem seja apropriada para essa pergunta, embora seja muito interessante.
fonte