Étant donné un dé biaisé de côté , comment générer uniformément un nombre aléatoire dans la plage ? La distribution de probabilité des faces du dé n'est pas connue, tout ce que l'on sait, c'est que chaque face a une probabilité non nulle et que la distribution de probabilité est la même sur tous les lancers (en particulier, les lancers sont indépendants). Il s'agit de la généralisation évidente de résultats équitables avec une matrice injuste .
En termes informatiques, nous avons un oracle représentant les jets de dés: telle sorte que est non nul et indépendant de . Nous recherchons un algorithme déterministe A qui est paramétré par D (ie A peut faire des appels à D ) telle que P (A () = i) = 1 / N . L'algorithme doit se terminer par la probabilité 1, c'est-à-dire que la probabilité que A passe plus de n appels à D doit converger vers 0 comme n \ vers \ infty .
Pour (simuler une pièce équitable à partir de tours de pièces avec une pièce biaisée), il existe un algorithme bien connu:
- Répétez "flip deux fois" jusqu'à ce que les deux lancers donnent des résultats distincts ((têtes, queues) ou (queues, têtes)). En d'autres termes, boucle pour jusqu'à
- Retourne 0 si la dernière paire de flips était (têtes, queues) et 1 si c'était (queues, têtes). En d'autres termes, retournez où est l'indice auquel la boucle s'est terminée.
Une façon simpliste de fabriquer un dé sans biais à partir d'un dé biaisé consiste à utiliser la méthode de détournement de pièces pour créer une pièce juste, et construire un dé équitable avec un échantillonnage de rejet, comme dans Unbiasing des séquences . Mais est-ce optimal (pour les valeurs génériques de la distribution de probabilité)?
Plus précisément, ma question est: qu'est-ce qu'un algorithme qui nécessite le plus petit nombre attendu d'appels vers l'oracle ? Si l'ensemble des valeurs attendues accessibles est ouvert, quelle est la limite inférieure et quelle est une classe d'algorithmes qui converge vers cette limite inférieure?
Dans le cas où différentes familles d'algorithmes sont optimales pour différentes distributions de probabilités, concentrons-nous sur des dés presque équitables: je recherche un algorithme ou une famille d'algorithmes optimale pour des distributions telles que pour certains .
la source
Réponses:
L'article suivant répond à une variante proche de cette question: La construction efficace d'une séquence aléatoire non biaisée, Elias 1972 .
La question semble être la suivante: étant donné l'accès à cette source indépendante biaisée, émettez une séquence de nombres aléatoires en (notez la différence par rapport à votre question dans laquelle un seul symbole de sortie est demandé). Comme la longueur de la sortie souhaitée va à l'infini, l '"efficacité" du schéma dans le document (qui semble être une généralisation naturelle de von Neumann) passe à , ce qui signifie, je crois, qu'une entrée avec entropie est convertie en une sortie d'entropie approchant .1 h h[1,N] 1 h h
La question semble beaucoup mieux se comporter lorsqu'elle est formulée de cette façon, plutôt que de demander un seul chiffre de sortie, parce que, par exemple, si nous tirons échantillons et obtenons une sortie avec beaucoup d'informations (par exemple, tous les symboles d'entrée sont distincts) , alors nous pouvons utiliser toutes ces informations pour produire de nombreux symboles de sortie, alors qu'avec la question telle que formulée ici, toute information au-delà de celle utilisée pour produire un symbole de sortie est perdue.NN N
Je crois que le schéma prend à plusieurs reprises tirages, examine la séquence et lui mappe certaines sorties ou la chaîne vide. Peut-être existe-t-il un moyen d'améliorer le schéma de votre question en examinant les préfixes et en vous arrêtant si nous avons "suffisamment" d'informations pour afficher un symbole? Je ne sais pas.N
la source
La méthode que vous décrivez pour généralise. Nous utilisons que toutes les permutations de sont également probables même avec une matrice biaisée (puisque les rouleaux sont indépendants). Par conséquent, nous pouvons continuer à rouler jusqu'à ce que nous voyions une telle permutation comme les derniers rouleaux et sortir le dernier rouleau.[ 1 .. N ] NN=2 [1..N] N
Une analyse générale est délicate; il est clair, cependant, que le nombre attendu de rouleaux croît rapidement en car la probabilité de voir une permutation à une étape donnée est faible (et non indépendante des étapes avant et après, donc délicate). Il est toutefois supérieur à pour fixe , de sorte que la procédure se termine presque sûrement (c'est-à-dire avec probabilité ).0 N 1N 0 N 1
Pour fixe, nous pouvons construire une chaîne de Markov sur l'ensemble des vecteurs Parikh qui se résument à , résumant les résultats des derniers rouleaux, et déterminer le nombre attendu d'étapes jusqu'à ce que nous atteignions pour la première fois . C'est suffisant car toutes les permutations qui partagent un vecteur Parikh sont également probables; les chaînes et les calculs sont plus simples de cette façon.≤ N N ( 1 , … , 1 )N ≤N N (1,…,1)
Supposons que nous sommes en état avec . Ensuite, la probabilité de gagner un élément (ie le prochain lancer est ) est toujours donnée par∑ n i = 1 v i ≤ N i iv=(v1,…,vN) ∑ni=1vi≤N i i
D'un autre côté, la possibilité de supprimer un élément de l'histoire est donnée pari
chaque fois que (et sinon) précisément parce que toutes les permutations avec le vecteur de Parikh sont également probables. Ces probabilités sont indépendantes (puisque les rôles sont indépendants), nous pouvons donc calculer les probabilités de transition comme suit:0 v∑ni=1vi=N 0 v
toutes les autres probabilités de transition sont nulles. Le seul état absorbant est , le vecteur Parikh de toutes les permutations de .[ 1 .. N ](1,…,1) [1..N]
Pour la chaîne de Markov résultante¹ estN=2
[ source ]
avec nombre prévu d'étapes jusqu'à absorption
en utilisant pour simplification que . Si maintenant, comme suggéré, pour certains , alorsp 0 = 1p1=1−p0 ϵ∈[0,1p0=12±ϵ ϵ∈[0,12)
Pour et les distributions uniformes (le meilleur des cas), j'ai effectué les calculs avec l'algèbre informatique²; comme l'espace d'état explose rapidement, des valeurs plus grandes sont difficiles à évaluer. Les résultats (arrondis vers le haut) sontN≤6
Les graphiques montrent en fonction de ; à gauche un tracé régulier et à droite un tracé logarithmique.N
La croissance semble être exponentielle mais les valeurs sont trop faibles pour donner de bonnes estimations.
Quant à la stabilité face aux perturbations du on peut regarder la situation pour : N = 3pi N=3
Le graphique montre en fonction de et ; naturellement, .p 0 p 1 p 2 = 1 - p 0 - p 1
En supposant des images similaires pour un plus grand (le noyau se bloque en calculant les résultats symboliques même pour ), le nombre prévu d'étapes semble être assez stable pour tous, sauf les choix les plus extrêmes (presque tout ou aucune masse à certains ).N = 4 p iN N=4 pi
A titre de comparaison, simuler une pièce de monnaie (par exemple en attribuant les résultats de la matrice à et aussi uniformément que possible), l'utiliser pour simuler une pièce de monnaie équitable et enfin effectuer un échantillonnage par rejet au niveau du bit nécessite au plus0 1ϵ 0 1
vous attendez - vous devriez probablement vous en tenir à cela.
la source
Juste un petit commentaire concernant le cas . Prenez un grand nombre et échantillonnez lancers du dé. Si vous avez têtes, vous pouvez extraire bits. En supposant que le dé est biaisé , la quantité moyenne d'informations est Pour obtenir cette estimation, utilisez le fait que la variable binomiale est concentrée autour de avec l'estimation . Lorsque devient plus grand, nous obtenons le taux optimal deN=2 m m k log(mk) p
Vous pouvez utiliser la même méthode pour le général et vous obtiendrez probablement le même . Ces algorithmes ne sont optimaux que dans la limite, et il peut y avoir des algorithmes atteignant la limite plus rapidement que ceux-ci. En fait, j'ai négligé de calculer la vitesse de convergence - cela pourrait être un exercice intéressant.H ( → p )N H(p⃗ )
la source
Je risquerais la réponse suivante.
Le cas spécifique de 2 que vous avez mentionné ci-dessus est le cas spécifique de l'expansion (où est prob de tête et prob de queue) qui vous donne un terme Cela signifie que vous pouvez obtenir pour un cas et pour l'autre cas. Vous devrez répéter l'échantillonnage jusqu'à ce que vous voyiez ou (tête-queue ou queue-tête) En les utilisant comme simulation, vous donnerez une probabilité égale. p q 2 p q p q q p p q q p(p+q)2 p q 2pq pq qp pq qp
Lorsque vous avez l'expansion qui vous donne le terme . Dans ce cas, vous faites la même chose, en échantillonnant jusqu'à ce que vous voyiez les 3 résultats , , dans un certain ordre dans 3 essais consécutifs.( p + q + r ) 3 p q r q p rN=3 (p+q+r)3 pqr q p r
La même chose s'applique au cas général. En réfléchissant bien, je dois dire que le cas de 2 est le meilleur cas où l'on peut régler les choses dans l'extension. Lorsque il existe 6 séquences différentes pour et il existe de nombreux autres termes dans l'expansion. Je me sentirais assez mal à l'aise avec d'autres termes où il y a beaucoup plus de résultats.p q rN=3 pqr
.
Supplémentaire:
Cela me fait penser à l'idée de simplement échantillonner beaucoup pour estimer la probabilité de chaque résultat des dés. Dans ce cas le plus simple d'un modèle à une couche sans couche cachée (un modèle connu), nous pouvons établir une limite pour conclure que l'estimation converge rapidement. En fait, la limite de Chernoff nous montre que l'erreur diminue de façon exponentielle à mesure que l'échantillonnage augmente (linéairement).
Maintenant qu'une bonne estimation des probabilités pour chaque côté des dés est connue, il existe de nombreuses options. Une option est que nous pouvons refaire l'expansion ci-dessus, mais cette fois, nous pouvons potentiellement utiliser de nombreux autres termes dans l'expansion qui ont la même valeur que (ou tout terme qui vous utilisez comme séquence basée). Ce sera un peu plus efficace car plus de termes dans l'expansion seront utilisés. Mais j'avoue que je ne sais pas si cela se traduira par le plus petit nombre d'appels à l'oracle pour avoir une garantie sur les conditions préalables (telles que le paramètre de confiance), si elles sont données.∏i=ni=1pi
Néanmoins, cette approche est une réponse à différentes saveurs de la question. La question demande une parfaite impartialité garantie au prix d'un échantillonnage potentiellement important (quoique de faible probabilité). Cette approche utilise uniquement un échantillonnage fini avec un paramètre lié à la confiance. Je ne pense donc pas que cette approche soit appropriée à cette question même si elle est très intéressante.
la source