Pytanie, które mnie interesuje, dotyczy generowania przypadkowych permutacji. Biorąc pod uwagę probabilistyczną bramę wymiany par jako podstawowy element konstrukcyjny, jaki jest najbardziej skuteczny sposób na uzyskanie jednolicie losowej permutacji elementów? Tu stosować „probabilistyczny bramy parami wymiany” się operacja, która realizuje brama Przełączanie do wybranych elementów i z pewnym prawdopodobieństwem , które mogą być dowolnie wybranej dla każdej bramki i tożsamości w inny sposób.i j p
Zdaję sobie sprawę, że zwykle nie jest to sposób generowania losowych permutacji, w którym zwykle można użyć czegoś takiego jak tasowanie Fishera-Yatesa, jednak nie będzie to działać w przypadku aplikacji, o której myślę, ponieważ dozwolone operacje są różne.
Oczywiście można to zrobić, pytanie brzmi, jak skutecznie. Jaka jest najmniej probabilistycznych zamian niezbędnych do osiągnięcia tego celu?
AKTUALIZACJA:
Anthony Leverrier zapewnia metodę poniżej, która rzeczywiście daje prawidłowy rozkład przy użyciu bramek , przy czym Tsuyoshi Ito zapewnia inne podejście z takim samym skalowaniem w komentarzach. Jednak najlepszą dolną granicą, jaką do tej pory widziałem, jest , która skaluje się jako O (n \ log n) . Tak więc pytanie pozostaje otwarte: czy O (n ^ 2) jest najlepszym, co można zrobić (tj. Czy jest lepsza dolna granica)? Lub alternatywnie, czy istnieje bardziej wydajna rodzina obwodów?⌈ log 2 ( n ! ) ⌉O ( n 2 )
AKTUALIZACJA:
W kilku odpowiedziach i komentarzach zaproponowano obwody składające się całkowicie z zamian probabilistycznych, w których prawdopodobieństwo jest ustalone na . Taki obwód nie może rozwiązać tego problemu z następującego powodu (usunięty z komentarzy):
Wyobraź sobie obwód, który wykorzystuje takich bram. Następnie istnieją obliczenia ścieżki obliczeniowe, więc każda permutacja musi wystąpić z prawdopodobieństwem dla pewnej liczby całkowitej k. Jednak dla równomiernego rozkładu wymagamy , Który można przepisać jako . Oczywiście nie można tego spełnić dla liczby całkowitej dla , ponieważ (dla , ale .
AKTUALIZACJA (od mjqxxxx, który oferuje nagrodę):
Oferowana nagroda za (1) dowód, że wymagane są bramki , lub (2) działający obwód dla dowolnego , który wykorzystuje mniej niż bramek.n n ( n - 1 ) / 2