poder crear un modelo matemtico ajustado a un problema especfico para resolverlo. El diseo de algoritmos es una teora de la Investigacin de operaciones Tcnicas de un diseo algortmico Existen varias tcnicas de diseo de algoritmos que permiten desarrollar la solucin al problema planteado, algunas de ellas son: Algoritmos voraces (greedy): seleccionan los elementos ms prometedores del conjunto de candidatos hasta encontrar una solucin. En la mayora de los casos la solucin no es ptima. Algoritmos paralelos: permiten la divisin de un problema en subproblemas de forma que se puedan ejecutar de forma simultnea en varios procesadores. Algoritmos probabilsticos: algunos de los pasos de este tipo de algoritmos estn en funcin de valores pseudoaleatorios Algoritmos determinsticos: El comportamiento del algoritmo es lineal: cada paso del algoritmo tiene nicamente un paso sucesor y otro ancesor. Algoritmos no determinsticos: El comportamiento del algoritmo tiene forma de rbol y a cada paso del algoritmo puede bifurcarse a cualquier nmero de pasos inmediatamente posteriores, adems todas las ramas se ejecutan simultneamente. Divide y vencers divide y vencers hace referencia a un refrn que implica resolver un problema difcil, dividindolo en partes ms simples tantas veces como sea necesario, hasta que la resolucin de las partes se torna obvia En la ciencias de la computacin: el trmino divide y vencers (DYV) hace referencia a uno de los ms importantes paradigmas de diseo algortmico. El mtodo est basado en la resolucin recursivade un problema dividindolo en dos o ms subproblemas de igual tipo o similar Diseo En primer lugar ha de plantearse el problema de forma que pueda ser descompuesto en k subproblemas del mismo tipo, pero de menor tamao. Es decir, si el tamao de la entrada es n, hemos de conseguir dividir el problema en k subproblemas (donde 1 k n), cada uno con una entrada de tamao n/k y donde 0 n/k < n. A esta tarea se le conoce como divisin. En segundo lugar han de resolverse independientemente todos los subproblemas, bien directamente si son elementales o bien de forma recursiva. El hecho de que el tamao de los subproblemas sea estrictamente menor que el tamao original del problema nos garantiza la convergencia hacia los casos elementales, tambin denominados casos base. Por ltimo, combinar las soluciones obtenidas en el paso anterior para construir la solucin del problema original. Diseo Resea Historica Que es programacin La programacin es el proceso de disear, codificar, depurar y mantener el cdigo fuente de programas computacionales El proceso de creacin de programa, desde el punto de vista de la ingeniera, incluye mnimamente los siguientes pasos: 1.Reconocer la necesidad de un programa para solucionar un problema o identificar la posibilidad de automatizacin de una tarea. 2.Recoger los requisitos del programa. Debe quedar claro qu es lo que debe hacer el programa y para qu se necesita. 3.Realizar el anlisis de los requisitos del programa. Debe quedar claro qu tareas debe realizar el programa. Las pruebas que comprueben la validez del programa se pueden especificar en esta fase. 4.Disear la arquitectura del programa. Se debe descomponer el programa en partes de complejidad abordable. 5.Implementar el programa. Consiste en realizar un diseo detallado, especificando completamente todo el funcionamiento del programa, tras lo cual la codificacin (programacin propiamente dicha) debera resultar inmediata. 6.Implantar (instalar) el programa. Consiste en poner el programa en funcionamiento junto con los componentes que pueda necesitar (bases de datos, redes de comunicaciones, etc.). La ingeniera del software se centra en los pasos de planificacin y diseo del programa, mientras que antiguamente (programacin artesanal) la realizacin de un programa consista casi nicamente en escribir el cdigo, bajo slo el conocimiento de los requisitos y con una modesta fase de anlisis y diseo. Resea Historica ALGORITMOS DE BSQUEDA Y ORDENACIN En computacin y matemticas un algoritmo de ordenamiento es un algoritmo que pone elementos de una lista o un vector en una secuencia dada por una relacin de orden, es decir, el resultado de salida ha de ser una permutacin o reordenamiento de la entrada que satisfaga la relacin de orden dada . Las relaciones de orden ms usadas son el orden numrico y el orden lexicogrfico.