Come misurare la complessità del problema del logaritmo discreto?


9

Le risposte a questa domanda su Crypto Stack Exchange dicono sostanzialmente che, per misurare la complessità del problema del logaritmo, dobbiamo prendere in considerazione la lunghezza del numero che rappresenta la dimensione del gruppo. Sembra arbitrario, perché non abbiamo scelto la dimensione del gruppo come argomento? Esiste un criterio per sapere quale argomento scegliere? In effetti, so di aver trascurato qualcosa di importante poiché la complessità cambia enormemente se lo facciamo in base alle dimensioni del gruppo.


2
Domanda interessante! L'ho modificato per dire "misura la complessità", piuttosto che "calcola", poiché la risposta a come la calcoliamo è ¯ \ _ (ツ) _ / ¯. :-)
David Richerby,

Penso che sia meglio così. :)
Nassim HADDAM,

Risposte:


5

Non importa se scegli la dimensione del gruppo o la dimensione dell'intero che lo rappresenta n come parametro, poiché n log | G | . Ci sono due ragioni per cui di solito la complessità è descritta in termini di n anziché | G | :|sol|nnlog|sol|n|sol|

  1. è la lunghezza dell'input (più precisamente, l'input ha lunghezza Θ ( n ) ) e di solito misuriamo la complessità degli algoritmi in funzione della lunghezza dell'input.nΘ(n)

  2. Di solito è un numero piccolo come 1024 , mentre | G | è un numero enorme come (approssimativamente) 2 1024 .n1024|sol|21024


Vedo il tuo punto, ma non lo rende un problema in P se abbiamo scelto la dimensione del gruppo come parametro?
Nassim HADDAM,

1
In questo caso non è possibile scegliere il parametro: il parametro è sempre la lunghezza di input.
Yuval Filmus,

Grazie per le risposte Ho avuto un problema con ciò che potrebbe accadere se considerassimo l'altro caso (problemi nel diventare P in NP e viceversa). Posso vedere chiaramente ora :) .
Nassim HADDAM,

1
Non eseguiamo il calcolo in modo unario poiché il nostro obiettivo è calcolare un numero o calcolare un logaritmo discreto e non ci interessa come viene rappresentato il numero. Darlo come input in binario o unario non influisce sul "tempo di wall" necessario per risolvere il problema, solo la sua complessità in termini di dimensioni dell'input (poiché stiamo modificando le dimensioni dell'input!).
Yuval Filmus,

1
Inoltre, non possiamo davvero avere un intero lungo a 128 bit come input unario per un algoritmo del mondo reale. Non ci sono abbastanza atomi nell'universo.
Yuval Filmus,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.