Jump to content

L-notation

From Wikipedia, the free encyclopedia
This is an old revision of this page, as edited by Scott contini (talk | contribs) at 11:24, 12 August 2010 (Removed big O notation as discussed in the talk page, also did some other small cleaning up.). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

L-notation is an asymptotic notation analogous to big-O notation, denoted as for a bound variable tending to infinity. Like big-O notation, it is usually used to roughly convey the computational complexity of a particular algorithm.

L-notation is used mostly in computational number theory, to express the complexity of algorithms for difficult number theory problems, eg. sieves for integer factorization and methods for solving discrete logarithms.


It is defined[1] as

,

where c is a positive constant, and is a constant .

When is 0, then

is a polynomial function of ln n; when is 1 then

is a fully exponential function of ln n (and thereby polynomial in n).

If is between 0 and 1, the function is subexponential (and superpolynomial).

Examples

Many general-purpose integer factorization algorithms have subexponential time complexities. The best is the general number field sieve, which has an expected running time of

for . The best such algorithm prior to the number field sieve was the quadratic sieve which has running time

.

For the elliptic curve discrete logarithm problem, the fastest general purpose algorithm is the baby-step giant-step algorithm, which has a running time on the order of the square-root of the group order n. In L-notation this would be

.

The existence of the AKS primality test which runs in polynomial time means that the time complexity for primality testing is known to be

where c has been proven to be at most 6.

References

  1. ^ Arjen K. Lenstra and Hendrik W. Lenstra, Jr, "Algorithms in Number Theory", in Handbook of Theoretical Computer Science (vol. A): Algorithms and Complexity, 1991.