Algoritmo en cualquier momento


En informática , un algoritmo en cualquier momento es un algoritmo que puede devolver una solución válida a un problema incluso si se interrumpe antes de que finalice. Se espera que el algoritmo encuentre soluciones cada vez mejores cuanto más tiempo siga funcionando.

La mayoría de los algoritmos se ejecutan hasta el final: proporcionan una respuesta única después de realizar una cantidad fija de cálculo. En algunos casos, sin embargo, el usuario puede desear terminar el algoritmo antes de que finalice. La cantidad de computación requerida puede ser sustancial, por ejemplo, y es posible que sea necesario reasignar los recursos computacionales. La mayoría de los algoritmos se ejecutan hasta el final o no proporcionan información útil sobre la solución. Sin embargo, en cualquier momento, los algoritmos pueden devolver una respuesta parcial, cuya calidad depende de la cantidad de cómputo que pudieron realizar. La respuesta generada por los algoritmos anytime es una aproximación de la respuesta correcta.

Un algoritmo en cualquier momento también puede denominarse "algoritmo interrumpible". Son diferentes de los algoritmos de contrato, que deben declarar un tiempo por adelantado; en un algoritmo en cualquier momento, un proceso puede simplemente anunciar que está terminando. [1]

El objetivo de los algoritmos en cualquier momento es brindar a los sistemas inteligentes la capacidad de generar resultados de mejor calidad a cambio del tiempo de respuesta. [2] También se supone que deben ser flexibles en tiempo y recursos. [3] Son importantes porque la inteligencia artificial o los algoritmos de IA pueden tardar mucho tiempo en completar los resultados. Este algoritmo está diseñado para completarse en un período de tiempo más corto. [3] Además, estos tienen como objetivo tener una mejor comprensión de que el sistema es dependiente y está restringido a sus agentes y cómo funcionan de manera cooperativa. [3] Un ejemplo es la iteración de Newton-Raphson aplicada para encontrar la raíz cuadrada de un número. [4]Otro ejemplo que utiliza algoritmos en cualquier momento son los problemas de trayectoria cuando apunta a un objetivo; el objeto se mueve a través del espacio mientras espera que el algoritmo termine e incluso una respuesta aproximada puede mejorar significativamente su precisión si se da temprano. [3]


Lo que hace que los algoritmos en cualquier momento sean únicos es su capacidad para devolver muchos resultados posibles para cualquier entrada dada. [2] Un algoritmo en cualquier momento utiliza muchas medidas de calidad bien definidas para monitorear el progreso en la resolución de problemas y los recursos informáticos distribuidos . [2] Sigue buscando la mejor respuesta posible con la cantidad de tiempo que se le da. [5] Es posible que no se ejecute hasta que se complete y puede mejorar la respuesta si se permite que se ejecute por más tiempo. [6]Esto se usa a menudo para problemas de conjuntos de decisiones grandes. [7] Por lo general, esto no proporcionaría información útil a menos que se le permita terminar. [8] Si bien esto puede sonar similar aprogramación dinámica , la diferencia es que se ajusta a través de ajustes aleatorios, en lugar de secuenciales.

Los algoritmos en cualquier momento están diseñados para que se le pueda indicar que se detenga en cualquier momento y devolvería el mejor resultado que ha encontrado hasta ahora. [3] Por eso se le llama algoritmo interrumpible. Ciertos algoritmos en cualquier momento también mantienen el último resultado, de modo que si se les da más tiempo, pueden continuar desde donde lo dejaron para obtener un resultado aún mejor. [3]