Greedy algorithm for Egyptian fractions

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, as e.g. 5/6 = 1/2 + 1/3. 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 is described in the Liber Abaci (1202) of Leonardo of Pisa (Fibonacci). 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 (Sigler 2002, chapter II.7). 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. As Salzer (1948) details, the greedy method, and extensions of it for the approximation of irrational numbers, have been rediscovered several times by modern mathematicians, earliest and most notably by J. J. Sylvester (1880); see for instance Cahen (1891) and Spiess (1907). 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 Lambert (1770).

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

(simplifying the second term in this replacement as necessary). For instance:

in this expansion, the denominator 3 of the first unit fraction is the result of rounding 15/7 up to the next larger integer, and the remaining fraction 2/15 is the result of simplifying (-15 mod 7)/(15×3) = 6/45. The denominator of the second unit fraction, 8, is the result of rounding 15/2 up to the next larger integer, and the remaining fraction 1/120 is what is left from 7/15 after subtracting both 1/3 and 1/8.

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

while other methods lead to the much better expansion

Wagon (1991) suggests an even more badly-behaved example, 31/311. The greedy method leads to an expansion with ten terms, the last of which has over 500 digits in its denominator; however, 31/311 has a much shorter non-greedy representation, 1/12 + 1/63 + 1/2799 + 1/8708.

Sylvester's sequence and closest approximation

Sylvester's sequence 2, 3, 7, 43, 1807, ... can be viewed as generated by an infinite greedy expansion of this type for the number one, where at each step we choose the denominator instead of . Truncating this sequence to k terms and forming the corresponding Egyptian fraction, e.g. (for k = 4)

results in the closest possible underestimate of 1 by any k-term Egyptian fraction (Curtiss 1922; Soundararajan 2005). That is, for example, any Egyptian fraction for a number in the open interval (1805/1806,1) requires at least five terms. Curtiss (1922) describes an application of these closest-approximation results in lower-bounding the number of divisors of a perfect number, while Stong (1983) describes applications in group theory.

Maximum-length expansions and congruence conditions

Any fraction x/y requires at most x terms in its greedy expansion. Mays (1987) and Freitag & Phillips (1999) examine the conditions under which the greedy method produces an expansion of x/y with exactly x terms; these can be described in terms of congruence conditions on y.

  • Every fraction 1/y requires one term in its greedy expansion; the simplest such fraction is 1/1.
  • Every fraction 2/y requires two terms in its greedy expansion if and only if y ≡ 1 (mod 2); the simplest such fraction is 2/3.
  • A fraction 3/y requires three terms in its greedy expansion if and only if y ≡ 1 (mod 6), for then -y mod x = 2 and y(y+2)/3 is odd, so the fraction remaining after a single step of the greedy expansion,
is in simplest terms. The simplest fraction 3/y with a three-term expansion is 3/7.
  • A fraction 4/y 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 4/y with a four-term expansion is 4/17. The Erdős–Straus conjecture states that all fractions 4/y 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 x/y that have x-term greedy expansions and that have the smallest possible denominator y for each x is

(sequence A048860 in the OEIS).

Approximation of polynomial roots

Stratemeyer (1930) and Salzer (1947) 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) = x2 - x - 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 1/1. 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) = x12 + x1 - 1 = 0.
  2. Since P1(x) < 0 for x = 1/2, and P1(x) > 0 for all x > 1, the root of P1 lies between 1/2 and 1, and the first term in its greedy expansion (the second term in the greedy expansion for the golden ratio) is 1/2. If x2 is the remaining fraction after this step of the greedy expansion, it satisfies the equation P1(x2 + 1/2) = 0, which can be expanded as P2(x2) = 4x22 + 8x2 - 1 = 0.
  3. Since P2(x) < 0 for x = 1/9, and P2(x) > 0 for all x > 1/8, the next term in the greedy expansion is 1/9. If x3 is the remaining fraction after this step of the greedy expansion, it satisfies the equation P2(x3 + 1/9) = 0, which can again be expanded as a polynomial equation with integer coefficients, P3(x3) = 324x32 + 720x3 - 5 = 0.

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

(sequence A117116 in the OEIS).

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 OEIS: A050205, OEIS: A050206, and OEIS: A050210, 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.

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

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. For instance, the Engel expansion can be viewed as an algorithm of this type in which each successive denominator must be a multiple of the previous one. However, it may be difficult to determine whether an algorithm of this type can always succeed in finding a finite expansion. In particular, the odd greedy expansion of a fraction x/y is formed by a greedy algorithm of this type in which all denominators are constrained to be odd numbers; it is known that, whenever y is odd, there is a finite Egyptian fraction expansion in which all denominators are odd, but it is not known whether the odd greedy expansion is always finite.

gollark: My tape shuffler thing from a while ago got changed round a bit. Apparently there's some demand for it, so I've improved the metadata format and written some documentation for it, and made the encoder work better by using file metadata instead of filenames and running tasks in parallel so it's much faster. The slightly updated code and docs are here: https://pastebin.com/SPyr8jrh. There are also people working on alternative playback/encoding software for the format for some reason.
gollark: Are you less utilitarian with your names than <@125217743170568192> but don't really want to name your cool shiny robot with the sort of names used by *foolish organic lifeforms*? Care somewhat about storage space and have HTTP enabled to download name lists? Try OC Robot Name Thing! It uses the OpenComputers robot name list for your... CC computer? https://pastebin.com/PgqwZkn5
gollark: I wanted something to play varying music in my base, so I made this.https://pastebin.com/SPyr8jrh is the CC bit, which automatically loads random tapes from a connected chest into the connected tape drive and plays a random track. The "random track" bit works by using an 8KiB block of metadata at the start of the tape.Because I did not want to muck around with handling files bigger than CC could handle within CC, "tape images" are generated with this: https://pastebin.com/kX8k7xYZ. It requires `ffmpeg` to be available and `LionRay.jar` in the working directory, and takes one command line argument, the directory to load to tape. It expects a directory of tracks in any ffmpeg-compatible audio format with the filename `[artist] - [track].[filetype extension]` (this is editable if you particularly care), and outputs one file in the working directory, `tape.bin`. Please make sure this actually fits on your tape.I also wrote this really simple program to write a file from the internet™️ to tape: https://pastebin.com/LW9RFpmY. You can use this to write a tape image to tape.EDIT with today's updates: the internet→tape writer now actually checks if the tape is big enough, and the shuffling algorithm now actually takes into account tapes with different numbers of tracks properly, as well as reducing the frequency of a track after it's already been played recently.
gollark: https://pastebin.com/pDNfjk30Tired of communicating fast? Want to talk over a pair of redstone lines at 10 baud? Then this is definitely not perfect, but does work for that!Use `set rx_side [whatever]` and `set tx_side [whatever]` on each computer to set which side of the computer they should receive/transmit on.
gollark: https://pastebin.com/Gu2rVXL9PotatoPass, the simple, somewhat secure password system which will *definitely not* install potatOS on your computer.Usage instructions:1. save to startup or somewhere else it will be run on boot2. reboot3. run `setpassword` (if your shell does not support aliases, run it directly)4. set your password5. reboot and enjoy your useless password screen

References

  • Cahen, E. (1891), "Note sur un développement des quantités numériques, qui presente quelque analogie avec celui en fractions continues", Nouvelles Annales des Mathématiques, Ser. 3, 10: 508–514.
  • Curtiss, D. R. (1922), "On Kellogg's diophantine problem", American Mathematical Monthly, 29 (10): 380–387, doi:10.2307/2299023, JSTOR 2299023.
  • Freitag, H. T.; Phillips, G. M. (1999), "Sylvester's algorithm and Fibonacci numbers", Applications of Fibonacci numbers, Vol. 8 (Rochester, NY, 1998), Dordrecht: Kluwer Acad. Publ., pp. 155–163, MR 1737669.
  • Lambert, J. H. (1770), Beyträge zum Gebrauche der Mathematik und deren Anwendung, Berlin: Zweyter Theil, pp. 99–104.
  • Mays, Michael (1987), "A worst case of the Fibonacci–Sylvester expansion", Journal of Combinatorial Mathematics and Combinatorial Computing, 1: 141–148, MR 0888838.
  • Salzer, H. E. (1947), "The approximation of numbers as sums of reciprocals", American Mathematical Monthly, 54 (3): 135–142, doi:10.2307/2305906, JSTOR 2305906, MR 0020339.
  • Salzer, H. E. (1948), "Further remarks on the approximation of numbers as sums of reciprocals", American Mathematical Monthly, 55 (6): 350–356, doi:10.2307/2304960, JSTOR 2304960, MR 0025512.
  • Sigler, Laurence E. (trans.) (2002), Fibonacci's Liber Abaci, Springer-Verlag, ISBN 0-387-95419-8.
  • Soundararajan, K. (2005), Approximating 1 from below using n Egyptian fractions, arXiv:math.CA/0502247.
  • Spiess, O. (1907), "Über eine Klasse unendlicher Reihen", Archiv der Mathematik und Physik, Third Series, 12: 124–134.
  • Stong, R. E. (1983), "Pseudofree actions and the greedy algorithm", Mathematische Annalen, 265 (4): 501–512, doi:10.1007/BF01455950, MR 0721884.
  • Stratemeyer, G. (1930), "Stammbruchentwickelungen für die Quadratwurzel aus einer rationalen Zahl", Mathematische Zeitschrift, 31: 767–768, doi:10.1007/BF01246446.
  • Sylvester, J. J. (1880), "On a point in the theory of vulgar fractions", American Journal of Mathematics, 3 (4): 332–335, doi:10.2307/2369261, JSTOR 2369261.
  • Wagon, S. (1991), Mathematica in Action, W. H. Freeman, pp. 271–277.
This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.