El algoritmo voraz para fracciones egipcias es un algoritmo voraz que convierte números racionales en fracciones egipcias , eligiendo en cada paso la alícuota más grande posible que se puede usar en la fracción residual.
La descomposición obtenida por un algoritmo codicioso para el número se denomina descomposición egipcia codiciosa, descomposición de Sylvester o descomposición del número de Fibonacci-Sylvester .
Entre varios métodos diferentes para construir fracciones egipcias dados por Fibonacci en el Libro del ábaco , se encontraba un algoritmo codicioso, que se sugirió que se usara solo si fallaban otros métodos [1] . Posteriormente, el algoritmo codicioso y sus extensiones para aproximar números irracionales fueron redescubiertos varias veces, siendo el caso más antiguo y famoso el algoritmo de Sylvester [2] [3] . Un método que da la aproximación más cercana en cada paso, para el cual se permiten fracciones negativas, pertenece a Lambert [4] .
El algoritmo de Fibonacci realiza la descomposición por reemplazo secuencial:
(simplificando el segundo término si es necesario). Por ejemplo:
.En esta expansión, el denominador de la primera alícuota es el resultado de redondear al siguiente número entero (mayor), y el resto es el resultado de la reducción . El divisor de la segunda fracción - , - es el resultado de redondear al siguiente número entero (mayor), y el resto es lo que queda después de restar y .
Debido a que cada paso de expansión disminuye el numerador del resto, este método se completará en un número finito de pasos. Sin embargo, en comparación con los métodos de descomposición del antiguo Egipto o con métodos más modernos, este método puede generar una descomposición con denominadores bastante grandes. Por ejemplo, la expansión codiciosa de un número :
,mientras que otros métodos dan una expansión mucho más simple:
,y para el algoritmo voraz, da una expansión en diez fracciones, la última de las cuales tiene 500 dígitos en el denominador, mientras que hay una representación [5] :
.La secuencia de Sylvester se puede representar como formada por la expansión infinita de la unidad por medio de un algoritmo codicioso, donde en cada paso se elige un denominador en lugar de . Si cortamos esta secuencia por términos y formamos la fracción egipcia correspondiente, por ejemplo, para :
,entonces obtenemos la aproximación más cercana a desde abajo entre las fracciones egipcias con miembros [6] [7] . Por ejemplo, cualquier fracción egipcia requiere al menos cinco términos para un número en un rango abierto . Se describe la aplicación de dichas expansiones más cercanas para una estimación más baja del número de divisores de un número perfecto [6] , así como en la teoría de grupos [8] .
Cualquier fracción da los términos máximos en el algoritmo codicioso. Se investigan las condiciones bajo las cuales la expansión requiere exactamente fracciones [9] [10] , estas condiciones se pueden describir en términos de comparaciones de módulos:
En el caso general, la secuencia de fracciones con el mínimo denominador , que tiene expansión por un algoritmo voraz con miembros [11] :
.Existe un método para el cálculo aproximado de las raíces de un polinomio basado en el algoritmo voraz [12] [13] que determina la descomposición voraz de la raíz. En cada paso, se forma un polinomio adicional, que tiene el resto de la expansión como raíz. Por ejemplo, para calcular la expansión codiciosa de la sección áurea como una de las dos soluciones de la ecuación , el algoritmo realiza los siguientes pasos.
Continuando este proceso de aproximación, se obtiene la expansión de la sección áurea en una fracción egipcia [14] :
.La longitud, el denominador mínimo y el denominador máximo de la expansión codiciosa para fracciones con numeradores y denominadores pequeños se incluyen en la Encyclopedia of Integer Sequences [15] . Además, la expansión codiciosa de cualquier número irracional conduce a una secuencia infinitamente creciente de enteros, y OEIS contiene expansiones de algunas constantes bien conocidas.
Es posible definir un algoritmo voraz con algunas restricciones en el denominador:
,donde se elige entre todos los valores que satisfacen las restricciones impuestas y tienen el menor valor posible, en cuál y tal que difiere de todos los denominadores anteriores. Por ejemplo, la descomposición de Engel puede pensarse como un algoritmo de este tipo, en el que cada denominador admisible debe obtenerse multiplicando el anterior por algún número entero. Sin embargo, a menudo no es trivial establecer si dicho algoritmo siempre conduce a una descomposición finita. En particular , la expansión codiciosa impar de una fracción está formada por un algoritmo codicioso con una restricción en los denominadores impares. Se sabe que para impar hay una expansión en una fracción egipcia en la que todos los denominadores son impares, pero se desconoce si un algoritmo codicioso impar siempre conducirá a una expansión finita.