Un algoritmo en línea es aquel que puede procesar su entrada pieza por pieza en forma serial, es decir, en el orden en que la entrada se alimenta al algoritmo, sin tener toda la entrada disponible desde el principio.
Por el contrario, un algoritmo fuera de línea recibe todos los datos del problema desde el principio y debe generar una respuesta que resuelva el problema en cuestión.
Como ejemplo, considere los algoritmos de ordenación ordenación por selección y ordenación por inserción :
El algoritmo de ordenación por selección ordena una array encontrando repetidamente el elemento mínimo (considerando el orden ascendente) de la parte no ordenada y colocándolo al principio. que requiere acceso a toda la entrada; por lo tanto, es un algoritmo fuera de línea. Por otro lado, la ordenación por inserción considera un elemento de entrada por iteración y produce una solución parcial sin considerar elementos futuros. Por lo tanto, la ordenación por inserción es un algoritmo en línea.
EJEMPLO DE ALGORITMO EN LÍNEA (CLASIFICACIÓN POR INSERCIÓN):
Debido a que un algoritmo en línea no conoce toda la entrada, puede tomar decisiones que luego resulten no ser óptimas.
Tenga en cuenta que la ordenación por inserción produce el resultado óptimo. Por lo tanto, para muchos problemas, los algoritmos en línea no pueden igualar el rendimiento de los algoritmos fuera de línea.
Ejemplos de algoritmos en línea son:
1. Clasificación de inserción
2. Perceptrón
3. Muestreo de depósito
4. Algoritmo codicioso
5. Modelo adversario
6. Sistemas de tareas métricas
7. Algoritmo de probabilidades
Problemas en línea: hay muchos problemas que ofrecen más de un algoritmo en línea como solución:
1. Problema del viajero canadiense
2. Problema de búsqueda lineal
3. Problema del servidor K
4. Problema de programación de la tienda de trabajo
5. Problema de actualización de lista
6. Problema de bandido
7. problema de secretaria
Referencia:
https://en.wikipedia.org/wiki/Online_algorithm
Este artículo es una contribución de Shubham Rana . Si le gusta GeeksforGeeks y le gustaría contribuir, también puede escribir un artículo usando contribuya.geeksforgeeks.org o envíe su artículo por correo a contribuya@geeksforgeeks.org. Vea su artículo que aparece en la página principal de GeeksforGeeks y ayude a otros Geeks.
Escriba comentarios si encuentra algo incorrecto o si desea compartir más información sobre el tema tratado anteriormente.
Publicación traducida automáticamente
Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA