Greedy algorithm for Egyptian fractions

From Wikipedia, the free encyclopedia
Jump to navigation Jump to search

Template:Short description In mathematics, the greedy algorithm for Egyptian fractions is a greedy algorithm, first described by Fibonacci, for transforming rational numbers into Egyptian fractions. An Egyptian fraction is a representation of an irreducible fraction as a sum of distinct unit fractions, such as Template:Sfrac = Template:Sfrac + Template:Sfrac. As the name indicates, these representations have been used as long ago as ancient Egypt, but the first published systematic method for constructing such expansions was described in 1202 in the Liber Abaci of Leonardo of Pisa (Fibonacci).Template:Sfn It is called a greedy algorithm because at each step the algorithm chooses greedily the largest possible unit fraction that can be used in any representation of the remaining fraction.

Fibonacci actually lists several different methods for constructing Egyptian fraction representations.[1] He includes the greedy method as a last resort for situations when several simpler methods fail; see Egyptian fraction for a more detailed listing of these methods. The greedy method, and extensions of it for the approximation of irrational numbers, have been rediscovered several times by modern mathematicians,Template:Sfn earliest and most notably by J. J. Sylvester (1880)[2] A closely related expansion method that produces closer approximations at each step by allowing some unit fractions in the sum to be negative dates back to Script error: No such module "Footnotes"..

The expansion produced by this method for a number x is called the greedy Egyptian expansion, Sylvester expansion, or Fibonacci–Sylvester expansion of x. However, the term Fibonacci expansion usually refers, not to this method, but to representation of integers as sums of Fibonacci numbers.

Algorithm and examples

Fibonacci's algorithm expands the fraction x/y to be represented, by repeatedly performing the replacement xy=1yx+(y)modxyyx (simplifying the second term in this replacement as necessary). For instance: 715=13+215=13+18+1120. in this expansion, the denominator 3 of the first unit fraction is the result of rounding Template:Sfrac up to the next larger integer, and the remaining fraction Template:Sfrac is the result of simplifying Template:Sfrac = Template:Sfrac. The denominator of the second unit fraction, 8, is the result of rounding Template:Sfrac up to the next larger integer, and the remaining fraction Template:Sfrac is what is left from Template:Sfrac after subtracting both Template:Sfrac and Template:Sfrac.

As each expansion step reduces the numerator of the remaining fraction to be expanded, this method always terminates with a finite expansion; however, compared to ancient Egyptian expansions or to more modern methods, this method may produce expansions that are quite long, with large denominators. For instance, this method expands 5121=125+1757+1763309+1873960180913+11527612795642093418846225, while other methods lead to the much better expansion 5121=133+1121+1363. Script error: No such module "Footnotes". suggests an even more badly-behaved example, Template:Sfrac. The greedy method leads to an expansion with ten terms, the last of which has over 500 digits in its denominator; however, Template:Sfrac has a much shorter non-greedy representation, Template:Sfrac + Template:Sfrac + Template:Sfrac + Template:Sfrac.

Sylvester's sequence and closest approximation

Sylvester's sequence 2, 3, 7, 43, 1807, ... (OEISA000058) can be viewed as generated by an infinite greedy expansion of this type for the number 1, where at each step we choose the denominator Template:Sfrac ⌋ + 1 instead of Template:Sfrac. Truncating this sequence to k terms and forming the corresponding Egyptian fraction, e.g. (for k = 4) 12+13+17+143=18051806 results in the closest possible underestimate of 1 by any k-term Egyptian fraction.[3] That is, for example, any Egyptian fraction for a number in the open interval (Template:Sfrac, 1) requires at least five terms. Script error: No such module "Footnotes". describes an application of these closest-approximation results in lower-bounding the number of divisors of a perfect number, while Script error: No such module "Footnotes". describes applications in group theory.

Maximum-length expansions and congruence conditions

Any fraction Template:Sfrac requires at most x terms in its greedy expansion. Script error: No such module "Footnotes". and Script error: No such module "Footnotes". examine the conditions under which the greedy method produces an expansion of Template:Sfrac with exactly x terms; these can be described in terms of congruence conditions on y.

  • Every fraction Template:Sfrac requires one term in its greedy expansion; the simplest such fraction is Template:Sfrac.
  • Every fraction Template:Sfrac requires two terms in its greedy expansion if and only if y ≡ 1 (mod 2); the simplest such fraction is Template:Sfrac.
  • A fraction Template:Sfrac requires three terms in its greedy expansion if and only if y ≡ 1 (mod 6), for then y mod x = 2 and Template:Sfrac is odd, so the fraction remaining after a single step of the greedy expansion, (y)modxyyx=2y(y+2)3 is in simplest terms. The simplest fraction Template:Sfrac with a three-term expansion is Template:Sfrac.
  • A fraction Template:Sfrac requires four terms in its greedy expansion if and only if y ≡ 1 or 17 (mod 24), for then the numerator y mod x of the remaining fraction is 3 and the denominator is 1 (mod 6). The simplest fraction Template:Sfrac with a four-term expansion is Template:Sfrac. The Erdős–Straus conjecture states that all fractions Template:Sfrac have an expansion with three or fewer terms, but when y ≡ 1 or 17 (mod 24) such expansions must be found by methods other than the greedy algorithm, with the 17 (mod 24) case being covered by the congruence relationship 2 (mod 3).

More generally the sequence of fractions Template:Sfrac that have x-term greedy expansions and that have the smallest possible denominator y for each x is Template:Bi

Approximation of polynomial roots

Script error: No such module "Footnotes". and Script error: No such module "Footnotes". describe a method of finding an accurate approximation for the roots of a polynomial based on the greedy method. Their algorithm computes the greedy expansion of a root; at each step in this expansion it maintains an auxiliary polynomial that has as its root the remaining fraction to be expanded. Consider as an example applying this method to find the greedy expansion of the golden ratio, one of the two solutions of the polynomial equation P0(x) = x2x − 1 = 0. The algorithm of Stratemeyer and Salzer performs the following sequence of steps:

  1. Since P0(x) < 0 for x = 1, and P0(x) > 0 for all x ≥ 2, there must be a root of P0(x) between 1 and 2. That is, the first term of the greedy expansion of the golden ratio is Template:Sfrac. If x1 is the remaining fraction after the first step of the greedy expansion, it satisfies the equation P0(x1 + 1) = 0, which can be expanded as P1(x1) = xScript error: No such module "Su". + x1 − 1 = 0.
  2. Since P1(x) < 0 for x = Template:Sfrac, and P1(x) > 0 for all x > 1, the root of P1 lies between Template:Sfrac and 1, and the first term in its greedy expansion (the second term in the greedy expansion for the golden ratio) is Template:Sfrac. If x2 is the remaining fraction after this step of the greedy expansion, it satisfies the equation P1(x2 + Template:Sfrac) = 0, which can be expanded as P2(x2) = 4xScript error: No such module "Su". + 8x2 − 1 = 0.
  3. Since P2(x) < 0 for x = Template:Sfrac, and P2(x) > 0 for all x > Template:Sfrac, the next term in the greedy expansion is Template:Sfrac. If x3 is the remaining fraction after this step of the greedy expansion, it satisfies the equation P2(x3 + Template:Sfrac) = 0, which can again be expanded as a polynomial equation with integer coefficients, P3(x3) = 324xScript error: No such module "Su". + 720x3 − 5 = 0.

Continuing this approximation process eventually produces the greedy expansion for the golden ratio, Template:Bi

Other integer sequences

The length, minimum denominator, and maximum denominator of the greedy expansion for all fractions with small numerators and denominators can be found in the On-Line Encyclopedia of Integer Sequences as sequences OEISA050205, OEISA050206, and OEISA050210, respectively. In addition, the greedy expansion of any irrational number leads to an infinite increasing sequence of integers, and the OEIS contains expansions of several well known constants. Some additional entries in the OEIS, though not labeled as being produced by the greedy algorithm, appear to be of the same type.

Related expansions

In general, if one wants an Egyptian fraction expansion in which the denominators are constrained in some way, it is possible to define a greedy algorithm in which at each step one chooses the expansion xy=1d+xdyyd, where d is chosen, among all possible values satisfying the constraints, as small as possible such that xd>y and such that d is distinct from all previously chosen denominators. Examples of methods defined in this way include Engel expansion, in which each successive denominator must be a multiple of the previous one, and odd greedy expansion, in which all denominators are constrained to be odd numbers.

However, it may be difficult to determine whether an algorithm of this type can always succeed in finding a finite expansion. In particular, it is unknown whether the odd greedy expansion terminates with a finite expansion for all fractions x/y for which y is odd, although it is possible to find finite odd expansions for these fractions by non-greedy methods.

Notes

<templatestyles src="Reflist/styles.css" />

  1. Script error: No such module "Footnotes"., chapter II.7
  2. See for instance Script error: No such module "Footnotes". and Script error: No such module "Footnotes"..
  3. Script error: No such module "Footnotes".; Script error: No such module "Footnotes".

Script error: No such module "Check for unknown parameters".

References

<templatestyles src="Refbegin/styles.css" />

  • Script error: No such module "citation/CS1"..
  • Script error: No such module "citation/CS1"..
  • Script error: No such module "citation/CS1"..
  • Script error: No such module "citation/CS1"..
  • Script error: No such module "citation/CS1"..
  • Script error: No such module "citation/CS1"..
  • Script error: No such module "citation/CS1"..
  • Script error: No such module "citation/CS1"..
  • Script error: No such module "citation/CS1"..
  • Script error: No such module "citation/CS1"..
  • Script error: No such module "citation/CS1"..
  • Script error: No such module "citation/CS1"..
  • Script error: No such module "citation/CS1"..
  • Script error: No such module "citation/CS1"..

Template:Fibonacci