Iteración

Iteración significa el acto de repetir un proceso con el objetivo de alcanzar una meta deseada, objetivo o resultado. Cada repetición del proceso también se le denomina una "iteración", y los resultados de una iteración se utilizan como punto de partida para la siguiente iteración.


Matemática

La Iteración, en matemática, se refiere al proceso de iteración de una función, es decir, aplicando la función repetidamente, usando la salida de una iteración como la entrada a la siguiente. La iteración de funciones aparentemente simples pueden producir comportamientos complejos y problemas difíciles - por ejemplo, ver la conjetura de Collatz y las secuencias del malabarista.

Otro uso de la iteración en matemáticas es en métodos iterativos que se usan para producir soluciones numéricas aproximadas a ciertos problemas matemáticos. El método de Newton es un ejemplo de un método iterativo.


Programación

Cuando se usa en el primer sentido, la recursividad es un ejemplo de iteración, pero que usa su propia notación (notación recursiva), que no es el caso de iteración.

Sin embargo, cuando se usa en el segundo sentido (caso más restringido), la iteración describe el estilo de programación usado en lenguajes de programación imperativa. Esto está en contraposición de la recursividad, la cual tiene un enfoque más declarativo.

He aquí un ejemplo de iteración basándose en asignación destructiva, en pseudocódigo imperativo:

 var i=0, a := 0        // inicializo a antes de comenzar la iteración
 for i from 1 to 3 {  // ciclo 3 veces
     a = a + i       // incremento a con el valor actual de i
     print a              // se imprime el número 6
     }

En este fragmento de programa, el valor de la variable i cambia a medida que la ejecución del programa progresa, tomando los valores 1, 2 y 3. Este cambio de valor —o estado mutable— es característico de una iteración.

La iteración puede aproximarse por medio de técnicas recursivas en lenguages de programación funcional. El ejemplo que sigue está escrito en Scheme. Nótese que es un código recursivo (un caso especial de iteración), pues la definición de "cómo iterar", la función iter, se llama a sí misma de manera de solucionar la instancia del problema. Específicamente, usa recursión al final de la cola, la cual está presente en lenguajes como Scheme para que no se requiera usar grandes cantidades de espacio del stack.

;; sum : number -> number
;; to sum the first n natural numbers
define sum n
    integer? n  n 
       iter n n i 
          n 
            i
            iter  n   n i
      assertionviolation 
       'sum "invalid argument" n

Un iterador es un objeto que engloba la iteración.

También, la iteración se realiza usando una hoja de cálculo, o mediante el uso de solucionadores o funciones predefinidas disponibles en Excel. Muchas ecuaciones implícitas, como por ejemplo la ecuación Colebrook, se pueden resolver en la comodidad de una hoja de cálculo, mediante el diseño de algoritmos adecuados de cálculo.1

Muchos de los problemas de ingeniería como la resolución de ecuaciones de Colebrook llegan a 8 dígitos de precisión con tan solo 12 repeticiones y es suficiente un máximo de 100 iteraciones para alcanzar un resultado preciso de 15 dígitos.2


Gestión de proyectos
Iteraciones en gestión de proyectos ágiles
Iteraciones en el contexto de un proyecto se refieren a la técnica de desarrollar y entregar componentes incrementales de funcionalidades de un negocio. Esto está comúnmente asociado al desarrollo ágil de software, pero podría referirse a cualquier material. Una iteración resulta en uno o más paquetes atómicos y completos del trabajo del proyecto que pueda realizar alguna función tangible del negocio. Múltiples iteraciones contribuyen a crear un producto completamente integrado. A esto se lo compara comúnmente con el enfoque de desarrollo en cascada.