Desde la aparición de las computadoras digitales, en 1946, hasta fines de los 80, las aplicaciones de procesamiento de información han utilizado el mismo estilo: computación programada. Esto implica el desarrollo de un algoritmo o un conjunto de reglas que permitan arribar a la solución del problema, para luego codificarlo adecuadamente.
Sin embargo, existen situaciones en que dicho algoritmo es desconocido, y por lo tanto su desarrollo como su implementación, insumen mucho tiempo y dinero.