Jak zmierzyć złożoność problemu dyskretnego logarytmu?

9

Odpowiedzi na to pytanie na Crypto Stack Exchange mówią w zasadzie, że aby zmierzyć złożoność problemu z logarytmem, musimy wziąć pod uwagę długość liczby reprezentującej wielkość grupy. Wydaje się to arbitralne, dlaczego nie wybraliśmy wielkości grupy jako argumentu? Czy istnieje kryterium pozwalające ustalić, który argument wybrać? W rzeczywistości wiem, że przeoczyłem coś ważnego, ponieważ złożoność zmienia się ogromnie, jeśli robimy to ze względu na wielkość grupy.

Nassim HADDAM
źródło
2
Interesujące pytanie! Zredagowałem to, by powiedzieć „zmierzyć złożoność”, a nie „obliczyć”, ponieważ odpowiedzią na to, jak ją obliczamy, jest ¯ \ _ (ツ) _ / ¯. :-)
David Richerby
Myślę, że tak jest lepiej. :)
Nassim HADDAM

Odpowiedzi:

5

Nie ma znaczenia, czy wybierzesz rozmiar grupylub wielkość liczby całkowitej reprezentującej go jako parametr, ponieważ. Są dwa powody, dla których złożoność jest zwykle opisywana w kategoriach zamiast:|G|nnlog|G|n|G|

  1. n to długość danych wejściowych (dokładniej dane wejściowe mają długość Θ(n)) i zwykle mierzymy złożoność algorytmów jako funkcję długości wejściowej.

  2. Zazwyczaj n jest małą liczbą, taką jak 1024, natomiast |G| to ogromna liczba, taka jak (z grubsza) 21024.

Yuval Filmus
źródło
Rozumiem twój punkt widzenia, ale czy nie stanowi problemu w P, jeśli wybraliśmy wielkość grupy jako parametr?
Nassim HADDAM
1
W takim przypadku nie można wybrać parametru - parametrem jest zawsze długość wejściowa.
Yuval Filmus
Dziękuję za odpowiedzi. Miałem problem z tym, co może się zdarzyć, jeśli weźmiemy pod uwagę inny przypadek (problemy z przejściem P w NP i odwrotnie). Widzę teraz wyraźnie :) .
Nassim HADDAM
1
Nie wykonujemy obliczeń pojedynczo, ponieważ naszym celem jest uwzględnienie pewnej liczby lub obliczenie logarytmu dyskretnego i nie obchodzi nas, w jaki sposób liczba jest reprezentowana. Podanie go jako danych wejściowych w formacie binarnym lub jednostkowym nie wpływa na „czas ściany” potrzebny do rozwiązania problemu, a jedynie jego złożoność pod względem wielkości wejściowej (ponieważ zmieniamy wielkość wejściową!).
Yuval Filmus
1
Poza tym tak naprawdę nie możemy mieć 128-bitowej liczby całkowitej jako jednoznacznego wejścia do algorytmu w świecie rzeczywistym. We wszechświecie atomów jest za mało.
Yuval Filmus