Tester la positivité au lieu de l'égalité

14

Alice et Bob ont des chaînes de n bits et veulent savoir s'ils sont égaux tout en faisant peu de communication. La solution randomisée standard consiste à traiter les chaînes de n bits comme des polynômes de degré , puis à évaluer les polynômes sur quelques éléments choisis au hasard dans un champ de taille supérieure à . Cela nécessite une communication .nnO(log|F|)

Supposons plutôt que nous fixions un ordre lexicographique sur les chaînes et voulons plutôt déterminer quelle chaîne est "plus grande", ce qui équivaut à trouver le bit le plus à gauche où les chaînes diffèrent.

Existe-t-il un protocole aléatoire similaire pour ce faire, ou une borne inférieure connue? Cela semble lié au test de positivité des polynômes.

ps Alors que l'ordre lexicographique semble être le plus évident, je suis d'accord avec d'autres ordonnances: pour le but qui m'intéresse, tout ce dont nous avons besoin est d'un certain ordre.

Suresh Venkat
la source
1
Je pensais que la solution randomisée standard était de choisir une combinaison linéaire aléatoire des bits, et d'envoyer simplement la parité résultante, qui ne prend que la communication ? O(1)
Joshua Grochow
@JoshuaGrochow Je pense que cela dépend de la nature de l'aléatoire - public ou privé. Le protocole que vous mentionnez utilise l'aléatoire public.
Sasho Nikolov
1
À titre de comparaison, il convient peut-être de mentionner que la complexité déterministe est , donc le protocole trivial est optimal. Cela donne un bel écart exponentiel entre les solutions déterministes / exactes et randomisées, montrant que (au moins dans la complexité de la communication), le caractère aléatoire peut vraiment aider. n+1
András Salamon
1
euh ... ouais. Combien de communication est nécessaire pour un algorithme qui ne donne jamais la mauvaise réponse et, pour toutes les paires d'entrée, donne MAYBE à cette paire d'entrée avec une probabilité d'au plus 1/2?
1
Il convient peut-être de mentionner que la complexité de communication -round supérieure à Ω ( n 1 / k k - 2 ) en particulier, c'est-à-dire qu'elle est linéaire pour k = 1 , voir arxiv.org/abs/cs/0309033 . C'est un beau papier :)kΩ(n1/kk-2)k=1
Marc Bury

Réponses:

11

Ceci est connu comme un problème supérieur à la complexité de la communication. Il existe un algorithme avec une complexité de communication (Exercice 3.18 dans le livre de Nisan-Kushilevitz).O(Journaln)

Edit: l'algorithme est dû à Nisan (page 10): http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.57.6891&rep=rep1&type=pdf

Il utilise l'approche suggérée par @Sasho Nikolov ci-dessous --- exécuter une recherche binaire en utilisant des tests d'égalité avec une erreur constante pour faire les comparaisons. Cela peut être fait avec des requêtes utilisant «l'algorithme de recherche binaire bruyant» de Feige, Peleg, Raghavan et Upfal: http://cs.brown.edu/~eli/papers/SICOMP23FRPU.pdfO(Journaln)

Pour obtenir un protocole d'aléatoire privé (non explicite), on peut appliquer le résultat de Newman: http://pdf.aminer.org/000/933/113/private_vs_common_random_bits_in_communication_complexity.pdf

Grigory Yaroslavtsev
la source
5
Une solution simple avec la communication polylog consiste à utiliser l'égalité pour effectuer une recherche binaire du premier bit où les chaînes diffèrent. La solution est avec un caractère aléatoire public: utilisez à nouveau l'égalité comme un oracle, mais effectuez chaque test d'égalité avec une probabilité d'erreur constante afin que chaque appel d'égalité utilise O ( 1 ) bits; maintenant une simple recherche binaire ne suffit plus, vous avez besoin d'une "recherche binaire bruyante", mais il existe des moyens de le faire avec la complexité du journalJournalnO(1)
Sasho Nikolov
2
Je ne sais pas ce qu'est la «recherche binaire bruyante», mais vous pouvez faire dans le modèle de randomisation publique en effectuant une recherche binaire en utilisant des tests d'égalité avec une probabilité d'erreur O ( 1 / log n ) , ce qui nécessite O ( log log n ) communication par test, et vous obtenez une probabilité d'erreur constante globale par une limite d'union. O(JournalnJournalJournaln)O(1/Journaln)O(JournalJournaln)
Grigory Yaroslavtsev
2
@SashoNikolov Ok, je suppose que quelque chose comme ça peut être utilisé comme une "recherche binaire bruyante", qui tolère une fraction constante d'erreurs afin que nous puissions utiliser une probabilité d'erreur constante dans les tests d'égalité: dl.acm.org/citation.cfm? id = 167129
Grigory Yaroslavtsev
1
vrai. Je voulais dire une recherche binaire où chaque comparaison peut donner le mauvais résultat avec une faible probabilité constante. Je pense que cet article donne le résultat nécessaire, par exemple: dl.acm.org/citation.cfm?id=100230
Sasho Nikolov
Déplacé la discussion dans la réponse.
Grigory Yaroslavtsev