Iteración - Iteration

La iteración es la repetición de un proceso para generar una secuencia de resultados (posiblemente ilimitada). Cada repetición del proceso es una única iteración, y el resultado de cada iteración es el punto de partida de la siguiente.

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

En matemáticas

En matemáticas, la iteración puede referirse al proceso de iterar una función , es decir, aplicar una función repetidamente, utilizando la salida de una iteración como entrada a 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 es en 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 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.

En informática

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

El pseudocódigo siguiente es un ejemplo de iteración; la línea de código entre los corchetes del bucle for "iterará" tres veces:

a = 0
for i from 1 to 3        // loop three times
{
    a = a + i            // add the current value of i to a
}
print a                  // the number 6 is printed (0 + 1; 1 + 2; 3 + 3)

Es permisible, y a menudo necesario, usar valores de otras partes del programa fuera del bloque de declaraciones entre corchetes, para realizar la función deseada. En el ejemplo anterior, la línea de código usa el valor de i a medida que aumenta.

Relación con la recursividad

En situaciones algorítmicas, la recursividad y la iteración se pueden emplear con el mismo efecto. La principal diferencia es que la recursividad se puede emplear como solución sin conocimiento previo de cuántas veces la acción tendrá que repetirse, 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 un bloque de instrucciones para la repetición explícita como ocurre con el bucle for . En cambio, esos lenguajes de programación utilizan exclusivamente la recursividad . En lugar de llamar a un bloque de código para que se repita un número predefinido de veces, el bloque de código en 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 sea lo más pequeña 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 consecutivo de pares, 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.

(let iterate ((i 1) (a 0))
  (if (<= i 3)
    (iterate (+ i 1) (+ a i))
    (display a)))

Otra terminología

En la programación orientada a objetos , un iterador es un objeto que asegura que la iteración se ejecute de la misma manera para una variedad de estructuras de datos diferentes, ahorrando tiempo y esfuerzo en intentos posteriores de codificación. En particular, un iterador permite repetir el mismo tipo de operación en cada nodo de dicha estructura de datos, a menudo en algún orden predefinido.

Un iteratee es una abstracción que acepta o rechaza datos durante una iteración.

Educación

En algunas escuelas de pedagogía , las iteraciones se utilizan 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 el estudiante haya dominado 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 indagación cíclica, que permite múltiples oportunidades para que las personas revisen las ideas y reflexionen críticamente sobre sus implicaciones".

A diferencia de la informática y las matemáticas, las iteraciones educativas no están predeterminadas; en cambio, la tarea se repite hasta que se logre el éxito de acuerdo con algunos criterios externos (a menudo una prueba).

Ver también

Referencias