Iteración

Compartir Imprimir Citar
Repetición de un proceso

Iteración es la repetición de un proceso para generar una secuencia (posiblemente ilimitada) de resultados. Cada repetición del proceso es una sola iteración, y el resultado de cada iteración es el punto de partida de la próxima iteración.

En matemáticas e informática, la iteración (junto con la técnica relacionada de recursividad) es un elemento estándar de los algoritmos.

Matemáticas

En matemáticas, iteración puede referirse al proceso de iterar una función, es decir, aplicar una función repetidamente, usando el resultado de una iteración como entrada para la siguiente. La iteración de funciones aparentemente simples puede producir comportamientos complejos y problemas difíciles; por ejemplo, consulte la conjetura de Collatz y las secuencias de malabaristas.

Otro uso de la iteración en matemáticas son los métodos iterativos que se utilizan para producir soluciones numéricas aproximadas a ciertos problemas matemáticos. El método de Newton es un ejemplo de un método iterativo. El cálculo manual de la raíz cuadrada de un número es un uso común y un ejemplo bien conocido.

Informática

En informática, la iteración es la técnica de marcado de un bloque de declaraciones dentro de un programa de computadora para un número definido de repeticiones. Se dice que ese bloque de sentencias está iterado; un científico informático también podría referirse a ese bloque de declaraciones como una "iteración".

Implementaciones

Los bucles constituyen las construcciones de lenguaje más comunes para realizar iteraciones. El siguiente pseudocódigo "itera" tres veces la línea de código entre llaves a través de un bucle for, y usa los valores de i como incrementos.

a = 0
para i desde 1 a 3 // bucle tres veces
{}
 a = a + i // añadir el valor actual de i a
}
impresión a // el número 6 está impreso (0 + 1; 1 + 2; 3 + 3)

Está permitido, ya menudo es necesario, usar valores de otras partes del programa fuera del bloque de instrucciones entre paréntesis para realizar la función deseada.

Los iteradores constituyen construcciones de lenguaje alternativo a los bucles, que aseguran iteraciones consistentes sobre estructuras de datos específicas. Eventualmente pueden ahorrar tiempo y esfuerzo en intentos de codificación posteriores. En particular, un iterador permite repetir el mismo tipo de operación en cada nodo de dicha estructura de datos, a menudo en un orden predefinido.

Los iterados son construcciones de lenguaje puramente funcionales, que aceptan o rechazan datos durante las iteraciones.

Relación con recursividad

Las recurrencias y las iteraciones tienen diferentes definiciones algorítmicas, aunque pueden generar efectos/resultados idénticos. La principal diferencia es que la recursividad se puede emplear como una solución sin un conocimiento previo de cuántas veces se tendrá que repetir la acción, mientras que una iteración exitosa requiere ese conocimiento previo.

Algunos tipos de lenguajes de programación, conocidos como lenguajes de programación funcional, están diseñados de tal manera que no configuran bloques de declaraciones para repetición explícita como con el bucle for. En cambio, esos lenguajes de programación usan exclusivamente la recursividad. En lugar de llamar a un bloque de código para que se repita una cantidad predefinida de veces, el bloque de código de ejecución "divide" el trabajo a realizar en un número de piezas separadas, después de lo cual el bloque de código se ejecuta en cada pieza individual. Cada pieza de trabajo se dividirá repetidamente hasta que la "cantidad" de trabajo es lo más pequeño posible, momento en el que el algoritmo hará ese trabajo muy rápidamente. Luego, el algoritmo "invierte" y vuelve a ensamblar las piezas en un todo completo.

El ejemplo clásico de recursividad se encuentra en los algoritmos de ordenación de listas, como la ordenación por fusión. El algoritmo recursivo de clasificación por fusión primero dividirá repetidamente la lista en pares consecutivos; luego se ordena cada par, luego cada par de pares consecutivos, y así sucesivamente hasta que los elementos de la lista estén en el orden deseado.

El siguiente código es un ejemplo de un algoritmo recursivo en el lenguaje de programación Scheme que generará el mismo resultado que el pseudocódigo del encabezado anterior.

()Deja iterate ()i 1) ()a 0) ()si (). i 3) ()iterate ()+ i 1) ()+ a i) ()pantalla a))

Educación

En algunas escuelas de pedagogía, las iteraciones se usan para describir el proceso de enseñar o guiar a los estudiantes para que repitan experimentos, evaluaciones o proyectos, hasta que se encuentren resultados más precisos o hasta que el estudiante domine la habilidad técnica. Esta idea se encuentra en el viejo adagio, "La práctica hace al maestro". En particular, "iterativo" se define como el "proceso de aprendizaje y desarrollo que implica una investigación cíclica, que permite múltiples oportunidades para que las personas revisen ideas y reflexionen críticamente sobre su implicación".

A diferencia de la computación y las matemáticas, las iteraciones educativas no están predeterminadas; en cambio, la tarea se repite hasta que se logra el éxito de acuerdo con algún criterio externo (a menudo una prueba).