Quelle est la meilleure façon d'obtenir un tirage au sort proche de l'équité à partir de pièces biaisées identiques?


21

(Von Neumann a donné un algorithme qui simule une pièce équitable donnant accès à des pièces biaisées identiques. L'algorithme nécessite potentiellement un nombre infini de pièces (bien qu'en attente, un nombre fini suffira). Cette question concerne le cas où le nombre de lancers autorisés est délimité.)

Supposons que nous ayons pièces identiques avec un biais . L'objectif est de simuler un lancer de pièce unique tout en minimisant le biais.nδ=P[Head]P[Tail]

La simulation doit être efficace dans le sens suivant: Un algorithme fonctionnant en temps polynomial regarde bits aléatoires et sort un seul bit. Le biais de l'algorithme est défini comme leoù l'espérance est reprise par la distribution définie par bits iid tels que .nBias(A)=|E[A=0]E[A=1]|nx1,,xnProb[xi=1]Prob[xi=0]=δ

Quel algorithme fonctionnant en temps polynomial a le biais le moins biaisé ?ABias(A)

Cette question me semble très naturelle et il est très probable qu'elle ait été envisagée auparavant.

Que sait-on de ce problème? -on quelque chose quand une classe d'algorithmes plus faible (dans , etc.) est considérée?AC0

Réponses:


15

Lancer n pièces biaisées et prendre la parité des têtes se rapproche exponentiellement de .12

[Pour une preuve, considérons une variable aléatoire qui est -1 quand les têtes et 1 quand les queues, alors la probabilité qu'il y ait un nombre impair de têtes est juste le ]E[12+12iXi]=12+12δn

C'est peut-être aussi optimal pour la raison suivante. Soit toute fonction de composition de ces bits. Ensuite, le et le meilleur semble être la fonction de parité (n'est-ce pas?).Bias ( f ) = Σ S f ( S ) ô | S | FfBias(f)=Sf^(S)δ|S|f

Si vous êtes intéressé par les fonctions de composition de moindre complexité, alors peut-être un article de Ryan O'Donnell sur «L'amplification de la dureté dans NP» serait très pertinent. Là, il utilise des fonctions de composition monotone pour les amplifications de dureté et les fonctions qui fonctionnent sont caractérisées par leur sensibilité au bruit.


Pourriez-vous expliquer pourquoi la parité devrait être la meilleure fonction? (De plus, cela n'a pas beaucoup d'importance asymptotiquement, mais cela ne devrait pas être dans l'expansion de Fourier puisque ?). Merci pour le pointeur sur le papier! E [ x i ] = δdelta|S|E[xi]=δ
Hrushikesh

Oh je suis désolé, tu as raison. L'expression était incorrecte et l'a maintenant corrigée. Je n'ai pas de preuve de l'optimalité (peut-être que ce n'est pas optimal) mais la raison pour laquelle j'ai deviné était que ce serait vrai si l'expression était plutôt car il s'agit alors d'une combinaison convexe. Sf^(S)2δ|S|
Ramprasad

Cela pourrait peut-être faire la lumière. Par Cauchy-Schwarz, nous savons que . Une façon d'optimiser serait de minimiser autant que possible la limite supérieure et cela se produit lorsque la fonction est la fonction de parité et dans ce cas, la quantité qui nous intéresse correspond également à la limite supérieure. Cependant, il se peut que le vecteur des coefficients de Fourier soit complètement orthogonal au vecteur auquel cas le LHS est juste nul! Existe-t-il des valeurs spéciales de pour lesquelles nous connaissons de tels exemples? FSf^(S)S:f^(S)0δ2|S|fδδδ
Ramprasad

En fait, si l'on devait prendre une fonction monotone non triviale , alors à l'attente la probabilité de est 0 et à c'est . Par conséquent, pour certains intermédiaires , il doit prendre la valeur . Par conséquent, il n'est pas juste de s'attendre à ce que pour chaque , la fonction de parité soit optimale. δ = - 1 f ( x 1 , , x n ) = 1 δ = 1 1 δ 1fδ=1f(x1,,xn)=1δ=11δ δ12δ
Ramprasad du

Pouvez-vous expliquer le dernier commentaire plus en détail? Ne tenant pas compte des problèmes de complexité de f, votre conclusion n'est-elle vraie que si pour un puisque la parité prend le biais de vers ? ô 1E[f]=1/2 δδnδ121/nδδn
Hrushikesh du

12

Vous ne dites pas si le biais est connu ou inconnu. La magie de l'algorithme de von Neumann est qu'il fonctionne dans les deux cas.

Supposons qu'il soit connu. La meilleure réponse dépend alors de façon critique des caractéristiques théoriques des nombres du biais. Prenons p = 2/3. Lancez la pièce deux fois et mappez HH à 0 et TH et HT à 1, en répétant l'expérience si le résultat est TT. Ensuite, 0 et 1 sont également probables et la probabilité de répétition n'est que de 1/9 au lieu de 5/9 avec l'algorithme de von Neumann. Ou pour le dire selon vos termes, vous ne biaisez l'un des résultats que par 1/9 si votre limite d'itération est de 2.

Tout cela est étroitement lié à la théorie de l'information et à la théorie du codage. Lorsque p est une fraction avec un numérateur et un dénominateur plus compliqués, le meilleur algorithme nécessitera une longueur de bloc plus longue que 2. Vous pouvez utiliser un argument d'existence de style Shannon pour montrer que pour un biais donné, il existe une procédure aussi optimale que vous voulez, mais la longueur du bloc peut devenir très grande.

Peres dans son article Iterating Von Neumann's Procedure for Extracting Random Bits prouve qu'une version de l'algorithme de von Neumann peut approcher arbitrairement la limite de Shannon. Une grande partie du travail dans ce domaine semble avoir été effectuée par des théoriciens de l'information et des statisticiens, donc je ne peux penser à aucun article avec une pente théoriquement complexe qui pourrait vous donner une réponse directe à votre question.

Il y a un problème amusant qui demande le contraire: si vous avez une source de bits équitables, comment générez-vous efficacement une distribution uniforme sur un ensemble sans puissance de deux? La version à itération limitée du problème qui s'apparente à votre question demande de maximiser l'entropie (c'est-à-dire de rendre la distribution aussi uniforme que possible) avec n lancers d'une pièce équitable.


1
Il m'est venu à l'esprit que l'optimisation du temps de fonctionnement soumis à aucun biais (ce que fait le document) est Lagrange double à l'optimisation du biais soumis au temps de fonctionnement. Donc, je pense que ce papier répond à votre question!
Per Vognsen

5

Je préfère penser à la question sous la forme généralisée suivante: nous avons un arbre binaire complet de hauteur n, où chaque nœud est attribué un nombre st somme des nombres est 1. Pouvons-nous partitionner les feuilles en deux ensembles st les sommes de les nombres sont proches?

Si nous avons une pièce biaisée avec le paramètre et , les nœuds auront des valeurs .q = 1 - p p i q n - ipq=1ppiqni

Comme indiqué dans d'autres réponses, pour la plupart des fins piratées, la prise de la parité des bits est bonne. Le biais sera .i(ni)parity(x)piqni=i(ni)(p)iqni=(qp)n

En général, si nous avons suffisamment de ressources informatiques (disons en nombre de bits aléatoires), nous pouvons partitionner les nœuds de la meilleure façon possible.PSpace

EDIT "C'est essentiellement le problème de codage de Shannon." (Merci à Per Vognsen.) FIN DE LA MODIFICATION

D'un autre côté, si nous ne sommes autorisés qu'à utiliser , il n'est pas difficile de montrer que nous ne pouvons pas faire grand-chose à cause du changement de lemme. Le circuit sera bien approché exponentiellement par un CNF et il n'est pas difficile de montrer qu'un CNF ne peut pas calculer une réponse avec un bon biais.AC0

(Cette réponse peut contenir des erreurs, je n'ai pas vérifié les détails.)


2
"Pouvons-nous diviser les feuilles en deux ensembles si les sommes sont rapprochées?" Il s'agit essentiellement du problème de codage de Shannon. L'algorithme de Shannon-Fano est de haut en bas et commence avec un ensemble d'éléments pondérés par les probabilités et demande une bipartition toujours aussi possible. L'application récursive donne un code intégral sans préfixe. L'algorithme de Huffman est ascendant: il commence avec des arbres singleton et fusionne à plusieurs reprises les paires avec la probabilité la plus proche. Si vous connaissez le codage arithmétique, cela suggère également à juste titre qu'il est préférable de générer plusieurs bits équitables à la fois plutôt qu'un à la fois.
Per Vognsen

4

Vous pouvez également obtenir de nombreux bits aléatoires avec des pièces biaisées, voir les algorithmes de dérandomisation de Gabizon sous Distributions de produits (http://sites.google.com/site/arielgabizon1/)



1

Si vous voulez qu'un nombre pair de lancers de pièces soit impartial avec une pièce biaisée, le moyen facile de supprimer le biais est d'inverser le résultat de chaque autre lancer.


1
Cela n'entraînera bien sûr pas une séquence uniformément aléatoire. Imaginez le cas limite lorsque le biais de la pièce passe à 1 - vous obtenez simplement une séquence de bits alternée déterministe.
Aaron Roth

Toute stratégie qui remappe bijectivement les résultats préservera l'entropie, de sorte qu'elle ne peut pas changer la distribution de l'entropie non maximale (biaisée) à l'entropie maximale (non biaisée).
Per Vognsen
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.