Vous êtes sur la page 1sur 3

Algoritmia/Introduccin

Algoritmia/Introduccin
Introduccin
Este libro versa sobre el anlisis y el diseo de algoritmos. Los mtodos algortmicos incluidos son, entre otros, divide y vencers, vuelta a atrs, programacin dinmica, algoritmos voraces y algoritmos probabilsticos. Cualquier problema soluble puede por lo general resolverse a travs de las siguientes formas: El camino obvio El camino metdico El camino inteligente El camino milagroso

En el primer nivel, la solucin obvia puede consistir en una bsqueda exhaustiva de la respuesta al problema. De forma intuitiva, la solucin obvia es aquella que aparece fcilmente con unos conocimientos bsicos de programacin. El camino metdico es el que trata de ilustrar este libro. Tras comprender el material presentado aqu, deberan poderse resolver, siguiendo la metodologa enseada, los problemas de una forma ms efectiva y eficiente. El tercer nivel, el camino inteligente, requiere una mayor comprensin de los elementos implicados en el problema y sus propiedades (por ejemplo, ciertos algoritmos numricos pueden basarse en propiedades matemticas poco obvias). Un algoritmo de este tipo puede ser complicado de entender por no resultar obvio que es correcto, o puede resultar difcil comprender que realmente es ms eficiente de lo que parece. Finalmente, el cuarto nivel, el camino milagroso, est reservado para casos verdaderamente extraos en los que la solucin es realmente poco intuitiva. Obviamente, la diferenciacin entre estos niveles es relativa, y puede ser que algn algoritmo algo ms complejo de lo habitual se presente en el actual libro adems de las metodologas bsicas.

Prerrequisitos
Para comprender el material expuesto en este libro se necesitan firmes conocimientos de programacin para poder entender el pseudocdigo y traducirlo en soluciones funcionales. Asimismo son necesarios conocimientos de estructuras de datos, incluyendo arrays, pilas, colas, listas enlazadas, rboles, montculos y colas de prioridad, conjuntos y grafos. De forma adicional, son recomendables otros conocimientos como algoritmos de bsqueda binaria, de ordenacin, de bsqueda primero en profundidad y primero en anchura. En el caso de no estar familiarizado con estos prerrequisitos, es aconsejable revisar previamente las secciones dedicadas a los mismos en el libro Fundamentos de programacin.

Introduccin a los mtodos algortmicos


Una muestra de las tcnicas algortmicas vistas en este libro es la siguiente: Divide y vencers: muchos problemas, particularmente aquellos cuya entrada consiste en un array, pueden solucionarse a travs de sucesivas reducciones del problema en subproblemas menores y la posterior combinacin de dichas soluciones en un nico resultados. Los algoritmos de ordenacin quicksort y mergesort son algunos ejemplos en los cuales esta tcnica se aplica de forma sencilla. Vuelta atrs: casi cualquier problema puede representarse a travs de un algoritmo de vuelta atrs. En esta tcnica, se consideran todas las posibles elecciones para solucionar un problema y, recursivamente, se resuelven los subproblemas suponiendo una determinada eleccin. El conjunto de sucesivas llamadas genera un rbol donde

Algoritmia/Introduccin cada rama representa una determinada secuencia de elecciones. As, si existe solucin al problema, esta se encontrar finalmente. En general, la vuelta atrs es un mtodo de fuerza bruta muy ineficiente, pero es posible aplicar optimizaciones que reduzcan el tamao del rbol y, consecuentemente, mejoren la eficiencia del algoritmo. Programacin dinmica: se trata de una optimizacin para algoritmos de vuelta atrs. Cuando un determinado subproblema necesita tratarse varias veces (por ejemplo, ramas repetidas en el rbol generado), es posible ahorrar tiempo solucionando una sola vez el subproblema y almacenando la solucin en una tabla. Algoritmos voraces: este tipo de algoritmos resultan de utilidad cuando se conoce suficiente informacin acerca de las posibles elecciones, de tal forma que "el caso mejor" pueda determinarse sin necesidad de considerar todas las opciones. Tpicamente, los algoritmos voraces no son difciles de escribir, pero s de demostrar su correccin. Algoritmos de escalada: la idea bsica consiste en comenzar con una mala solucin a un determinado problema y, repetidamente, aplicar optimizaciones a la misma hasta que esta sea ptima o satisfaga algn otro requisito. Algoritmos probabilsticos: hacen uso del azar para alcanzar una solucin, basndose en un anlisis estadstico que indique que, en un nmero lo suficientemente alto de ocasiones, se alcanzar una solucin ptima al problema.

Fuentes y contribuyentes del artculo

Fuentes y contribuyentes del artculo


Algoritmia/Introduccin Fuente: http://es.wikibooks.org/w/index.php?oldid=157510 Contribuyentes: Gothmog, Swazmo, 4 ediciones annimas

Licencia
Creative Commons Attribution-Share Alike 3.0 Unported //creativecommons.org/licenses/by-sa/3.0/

Vous aimerez peut-être aussi