|
|
Line 1: |
Line 1: |
| '''''L'''''-'''notation''' is an [[asymptotic analysis|asymptotic]] notation analogous to [[big-O notation]], denoted as <math>L_n[\alpha,c]</math> for a [[bound variable]] <math>n</math> [[limit (mathematics)|tending to infinity]]. Like big-O notation, it is usually used to roughly convey the [[computational complexity]] of a particular [[algorithm]].
| | Hi there, I am Sophia. My wife and I live in Kentucky. Invoicing is my profession. One of the very very best issues in the world for him is doing ballet and he'll be beginning something else alongside with it.<br><br>My web-site :: love psychics ([http://www.onbizin.co.kr/xe/?document_srl=320614 click this]) |
| | |
| It is defined as
| |
| | |
| :<math>L_n[\alpha,c]=e^{(c+o(1))(\ln n)^\alpha(\ln\ln n)^{1-\alpha}},</math>
| |
| | |
| where ''c'' is a positive constant, and <math>\alpha</math> is a constant <math>0 \leq \alpha \leq 1</math>.
| |
| | |
| L-notation is used mostly in [[computational number theory]], to express the complexity of algorithms for difficult [[number theory]] problems, e.g. sieves for [[integer factorization]] and methods for solving [[discrete logarithm]]s. The benefit of this notation is that it simplifies the analysis of these algorithms. The <math>e^{c(\ln n)^\alpha(\ln\ln n)^{1-\alpha}}</math> expresses the dominant term, and the <math>e^{o(1)(\ln n)^\alpha(\ln\ln n)^{1-\alpha}}</math> takes care of everything smaller.
| |
| <!-- Expand this, add some math and cites, and it may be a useful addition
| |
| Many advanced number theory algorithms have not been fully studied and not much is definitely known about their complexity and behaviour. The breadth of L-notation, allowing one to span polynomial to exponential growth rates, and its looseness, allowing theorems and heuristic analyses to be made more easily, have made its use popular in this relatively niche field.
| |
| -->
| |
| | |
| When <math>\alpha</math> is 0, then
| |
| | |
| :<math>L_n[\alpha,c] = L_n[0, c] = e^{(c + o(1)) \ln\ln n} = (\ln n)^{c + o(1)}\,</math>
| |
| | |
| is a [[polynomial function]] of ln ''n''; when <math>\alpha</math> is 1 then
| |
| | |
| :<math>L_n[\alpha,c] = L_n[1, c] = e^{(c + o(1)) \ln n} = n^{c + o(1)}\,</math>
| |
| | |
| is a fully [[exponential function]] of ln ''n'' (and thereby polynomial in ''n'').
| |
| | |
| If <math>\alpha</math> is between 0 and 1, the function is [[Sub-exponential time|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
| |
| | |
| :<math>L_n[1/3, c] = e^{(c+o(1))(\ln n)^{1/3}(\ln \ln n)^{2/3}}</math>
| |
| | |
| for <math> c = (64/9)^{1/3}</math>. The best such algorithm prior to the number field sieve was the [[quadratic sieve]] which has running time
| |
| | |
| :<math>L_n[1/2, 1] = e^{(1+o(1))(\ln n)^{1/2}(\ln \ln n)^{1/2}}.\,</math>
| |
| | |
| 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
| |
| | |
| :<math>L_n[1, 1/2] = n^{1/2+o(1)}.\,</math>
| |
| | |
| The existence of the [[AKS primality test]], which runs in [[polynomial time]], means that the time complexity for [[primality testing]] is known to be at most
| |
| | |
| :<math>L_n[0, c] = (\ln n)^{c+o(1)}\,</math>
| |
| | |
| where ''c'' has been proven to be at most 6.<ref>Hendirk W. Lenstra Jr. and Carl Pomerance, "Primality testing with Gaussian periods", preprint, 2011, http://www.math.dartmouth.edu/~carlp/aks041411.pdf.</ref>
| |
| | |
| ==History==
| |
| | |
| L-notation has been defined in various forms throughout the literature. The first use of it came from [[Carl Pomerance]] in his paper "Analysis and comparison of some integer factoring algorithms".<ref>Carl Pomerance, "Analysis and comparison of some integer factoring algorithms", In Mathematisch Centrum Computational Methods in Number Theory, Part 1, pp. 89-139, 1982, http://www.math.dartmouth.edu/~carlp/PDF/analysiscomparison.pdf</ref> This form had only the <math>c</math> parameter: the <math>\alpha</math> in the formula was <math>1/2</math> for the algorithms he was analyzing. Pomerance had been using the letter <math>L</math> (or lower case <math>l</math>) in this and previous papers for formulae that involved many logarithms.
| |
| | |
| The formula above involving two parameters was introduced by [[Arjen Lenstra]] and [[Hendrik Lenstra]] in their article on "Algorithms in Number Theory".<ref>Arjen K. Lenstra and Hendrik W. Lenstra, Jr, "Algorithms in Number Theory", in Handbook of Theoretical Computer Science (vol. A): Algorithms and Complexity, 1991.</ref> It was introduced in their analysis of a [[discrete logarithm]] algorithm of [[Don Coppersmith|Coppersmith]]. This is the most commonly used form in the literature today.
| |
| | |
| The Handbook of Applied Cryptography defines the L-notation with a big <math>O</math> around the formula presented in this article.<ref>Alfred J. Menezes, Paul C. van Oorschot and Scott A. Vanstone. Handbook of Applied Cryptography. CRC Press, 1996. ISBN 0-8493-8523-7. http://www.cacr.math.uwaterloo.ca/hac/.</ref> This is not the standard definition. The big <math>O</math> would suggest that the running time is an upper bound. However, for the integer factoring and discrete logarithm algorithms that L-notation is commonly used for, the running time is not an upper bound, so this definition is not preferred.
| |
| | |
| ==References==
| |
| {{Reflist}}
| |
| | |
| [[Category:Asymptotic analysis]]
| |
| [[Category:Computational complexity theory]]
| |
Hi there, I am Sophia. My wife and I live in Kentucky. Invoicing is my profession. One of the very very best issues in the world for him is doing ballet and he'll be beginning something else alongside with it.
My web-site :: love psychics (click this)