Al construir un programa con un lenguaje de alto nivel, el control de su ejecución debe utilizar únicamente las tres estructuras de control básicas: secuencia, selección e iteración, a estos programas se les llama “estructurados”. Teorema de la estructura A finales de los años sesenta surgió un nuevo teorema que …

Programación estructurada Leer más »

La técnica genera un árbol de expansión de nodos con soluciones siguiendo distintas estrategias: recorrido de anchura (estrategia LIFO Last Input First Output Ultima Entrada Primera Salida) o en profundidad (estrategia FIFO First Input First Output Primera Entrada Primera Salida) o utilizando el cálculo de funciones de costo para seleccionar …

Ramificación y poda Leer más »

Vuelta atrás (Backtracking) es una estrategia para encontrar soluciones a problemas que satisfacen restricciones. El término «backtrack» fue acuñado por primera vez por el matemático estadounidense D. H. Lehmer en la década de los 50. Los problemas que deben satisfacer un determinado tipo de restricciones son problemas completos, donde el …

Vuelta atrás Leer más »

La programación dinámica es un método para reducir el tiempo de ejecución de un algoritmo mediante la utilización de subproblemas superpuestos y subestructuras óptimas. El matemático Richard Bellman inventó la programación dinámica en 1953. Una subestructura óptima significa que soluciones óptimas de subproblemas pueden ser usadas para encontrar las soluciones …

Programación dinámica Leer más »