Szukam algorytmu jednoprzebiegowego, który oblicza parzystość permutacji. Zakładam, że permutacja wejściowa jest podawana przez strumień . Wyjście powinno być parzystością permutacji. Pytanie mnie interesuje, ile pamięci powinien użyć algorytm deterministyczny. Czy istnieje jakiś losowy algorytm dotyczący problemu?
Wiem, że obliczanie liczby inwersji w jednym przebiegu wykorzystuje pamięć . Górną granicę można łatwo uzyskać za pomocą dowolnego BST. Dolna granica jest przedstawiona tutaj: http://citeseerx.ist.psu.edu/viewdoc/versions?doi=10.1.1.112.5622
Niestety dowodu dolnej granicy w dokumencie nie można rozszerzyć na przypadek parzystości (lub nie jest to dla mnie tak oczywiste).
Wiem również, że obliczanie parzystości w niewielkiej przestrzeni z losowym dostępem do permutacji można wykonać w czasie i pamięci O ( log 2 n ) za pomocą algorytmu deterministycznego lub w czasie O ( n log n ) i O ( log n ) pamięć losowa. Zobacz http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.29.2256
Główną ideą jest to, że parzystość permutacji można obliczyć za pomocą wzoru , gdzie c jest liczbą cykli, a n jest rozmiarem. Autorzy dokonują rozkładu cyklu permutacji. Można więc łatwo obliczyć liczbę cykli.
Czy ktoś zna skuteczny algorytm lub dolną granicę pamięci do obliczania parzystości w modelu przesyłania strumieniowego? Interesujące są również algorytmy randomizowane lepiej niż losowe monety.
źródło
Odpowiedzi:
Chciałbym prosić wszystkich, aby nie głosowali za tym, ponieważ nie jest to odpowiedź, ale obszerny komentarz, w którym chciałbym spierać się, dlaczego na to pytanie nie otrzymano żadnych odpowiedzi. Chodzi mi przede wszystkim o to, że dolna granica złożoności komunikacji nie będzie działać. Rozumiem przez to, że bez względu na to, jak podzielimy dane wejściowe na dwie części i przekażemy je dwóm graczom, A i B, A może przenieść pojedynczy bit do B, z którego może obliczyć parzystość permutacji. (Wynika to po prostu z rozważenia inwersji).
Dowody, które używają innej granicy są trudne. Zobacz ten komentarz Noama Nisana (dla wersji niedeterministycznej): Ogranicza wielkość najmniejszego NFA dla L_k-odrębnego ,
na to pokrewne pytanie, na które odpowiedziałem Hermann Gruber, który pokazuje, że dolna granica złożoności komunikacji może być bardzo daleka od prawdy (ponownie w wersji niedeterministycznej) Dolna granica dla NFA akceptującego język 3-literowy .
Również związane z tym, aby zdecydować, czy permutacja jest pojedynczym cyklem, wydaje się trudne, patrz ten artykuł FOCS autorstwa Ran Raz i Borisa Spiekera: http://www.computer.org/csdl/proceedings/focs/1993/4370/00 /0366870-abs.html .
Dlatego też jestem bardzo zainteresowany uzyskaniem odpowiedzi na to pytanie.
źródło