Notação L

Fonte: testwiki
Saltar para a navegação Saltar para a pesquisa

​A notação L é uma notação assintótica análoga à notação O grande, denotada como Ln[α,c] para uma variável limitada n tendendo ao infinito. Como a notação O grande, geralmente é usada para transmitir aproximadamente a complexidade computacional de um algoritmo específico.

Definição

Ela está definida como

Ln[α,c]=e(c+o(1))(lnn)α(lnlnn)1α onde c é uma constante positiva e α é uma constante 0α1.

A notação L é usada principalmente na teoria computacional dos números, para expressar a complexidade de algoritmos para problemas difíceis da teoria dos números, por ex. peneiras para fatoração de inteiros e métodos para resolver logaritmos discretos. O benefício dessa notação é que ela simplifica a análise desses algoritmos.

ec(lnn)α(lnlnn)1α expressa o termo dominante, e eo(1)(lnn)α(lnlnn)1α cuida de tudo menor.

Quando α ​0, então

Ln[α,c]=Ln[0,c]=e(c+o(1))lnlnn=(lnn)c+o(1)

é uma função polinomial de ln n;

Quando α é 1, então

Ln[α,c]=Ln[1,c]=e(c+o(1))lnn=nc+o(1)

é uma função totalmente exponencial de ln n (e, portanto, polinomial em n).

Se α estiver entre 0 e 1, a função é subexponencial de ln n (e superpolinomial).

Exemplos

Muitos algoritmos de fatoração de inteiros de propósito geral têm complexidades temporais subexponenciais. O melhor é a peneira de campo de número geral, que tem um tempo de execução esperado de

Ln[1/3,c]=e(c+o(1))(lnn)1/3(lnlnn)2/3

para c=(64/9)1/31,923. O melhor algoritmo antes da peneira de campo numérico era a peneira quadrática que tem tempo de execução

Ln[1/2,1]=e(1+o(1))(lnn)1/2(lnlnn)1/2.

Para o problema de logaritmo discreto de curva elíptica, o algoritmo de propósito geral mais rápido é o algoritmo passo de bebê passo gigante, que tem um tempo de execução na ordem da raiz quadrada da ordem n. Em notação L, isso seria

Ln[1,1/2]=n1/2+o(1).

A existência do teste de primalidade AKS, que é executado em tempo polinomial, significa que a complexidade de tempo para o teste de primalidade é conhecida como sendo no máximo

Ln[0,c]=(lnn)c+o(1)

onde c foi provado ser no máximo 6.[1]

História

A notação L foi definida de várias formas na literatura. O primeiro uso dela veio de Carl Pomerance em seu artigo "Análise e comparação de alguns algoritmos de fatoração de inteiros".[2] Esta forma tinha apenas o parâmetro c: o α na fórmula era 1/2 para os algoritmos que ele estava analisando. Pomerance estava usando a letra L (ou minúscula l) neste trabalho e em trabalhos anteriores para fórmulas que envolviam muitos logaritmos.

A fórmula acima envolvendo dois parâmetros foi introduzida por Arjen Lenstra e Hendrik Lenstra em seu artigo sobre "algoritmos na teoria dos números".[3] Foi introduzido na análise de um algoritmo de logaritmo discreto de Coppersmith. Esta é a forma mais comumente usada na literatura hoje.

O manual de criptografia aplicada define a notação L com um O grande em torno da fórmula apresentada neste artigo.[4] Esta não é a definição padrão. O O grande sugere que o tempo de execução é um limite superior. No entanto, para os algoritmos de fatoração de inteiros e logaritmos discretos para os quais a notação L é comumente usada, o tempo de execução não é um limite superior, portanto, essa definição não é preferida.

Referências

Predefinição:Reflist

  1. Hendrik W. Lenstra Jr. e Carl Pomerance, "Teste de primalidade com períodos gaussianoss", preprint, 2011, http://www.math.dartmouth.edu/~carlp/aks041411.pdf.
  2. Carl Pomerance, "Análise e comparação de alguns algoritmos de fatoração inteira", em métodos computacionais na teoria dos números mathematisch centrum, parte 1, páginas 89 à 139, 1982, http://www.math.dartmouth.edu/~carlp/PDF/analysiscomparison.pdf (em inglês).
  3. Arjen K. Lenstra e Hendrik W. Lenstra, Jr, "Algoritmos na teoria dos números", no manual de ciência da computação teórica (volume A): Algoritmos e complexidade, 1991 (em inglês).
  4. Alfred J. Menezes, Paul C. van Oorschot e Scott A. Vanstone. Manual de criptografia aplicada. CRC Press, 1996. Predefinição:ISBN. http://www.cacr.math.uwaterloo.ca/hac/ (em inglês).