Una forma de clasificar los algoritmos consiste en diferenciarlos por su metodología de diseño. A continuación se presenta una síntesis de las metodologías más comunes, aplicables cada una a diferentes clases de problemas:

Fuerza bruta: los algoritmos de fuerza bruta resuelven el problema con la estrategia más obvia de solución, que no siempre es la mejor según el número de operaciones que se requiere.

Divide and conquer (divide y reinarás): esta metodología divide las instancias del problema a resolver en instancias cada vez más pequeñas, usualmente en forma recursiva, hasta llegar a una instancia en que el problema es resoluble en forma trivial o con unas pocas instrucciones. Los algoritmos de búsqueda binaria son un ejemplo de la metodología divide and conquer.

Programación dinámica: cuando un problema presenta una subestructura óptima –o sea, cuando la solución óptima de un problema se obtiene a partir de las soluciones óptimas de sus subproblemas–, se encuentra la solución resolviendo primero los subproblemas más sencillos y luego utilizando esas subsoluciones para resolver problemas incrementalmente difíciles. Por ejemplo, si se tiene una serie de puntos (definidos por coordenadas x, y) que delimitan una región, y se necesita saber si otro punto se encuentra dentro o fuera de esa región, una forma de resolver el problema consiste en comenzar formando cuadrados con puntos contiguos, para luego formar figuras cada vez más grandes y, por cada figura, determinar si el punto está dentro o fuera de ella. En cada paso se aprovecha la información de los pasos anteriores, hasta que, al completar todos los puntos, se obtiene el resultado del problema.

Programación lineal: para resolver un problema utilizando programación lineal, se plantea una serie de inecuaciones y luego se busca maximizar (o minimizar) las variables, respetando las inecuaciones. Muchos problemas pueden plantearse en la forma de un conjunto de inecuaciones, para luego resolverlos utilizando un algoritmo genérico, como por ejemplo, el denominado método Simplex (en la sección de Servicios al lector se detallan sitios donde obtener más información sobre este método).

Búsqueda y enumeración: muchos problemas (como por ejemplo, un juego de ajedrez) pueden modelarse con grafos y resolverse a partir de un algoritmo de exploración del grafo. Tal algoritmo especificará las reglas para moverse en el grafo en busca de la solución al problema. Esta categoría incluye también algoritmos de backtracking (vuelta atrás), los cuales van ensayando distintos caminos con posibles soluciones
y vuelven atrás cuando no las encuentran. Por ejemplo, para encontrar la salida en un laberinto, cada vez que se llega al final de un camino se vuelve atrás hasta la última bifurcación, para probar con las distintas alternativas de esa bifurcación.

Algoritmos heurísticos: el propósito de estos algoritmos no es necesariamente encontrar una solución final al problema, sino encontrar una solución aproximada cuando el tiempo o los recursos necesarios para encontrar la solución perfecta son excesivos. Muchos sistemas antivirus utilizan métodos heurísticos para detectar conductas de programas que podrían estar actuando en forma maliciosa.

Algoritmos voraces: seleccionan la opción de solución (solución local) que tenga un costo menor en la etapa de solución en la que se encuentran, sin considerar si esa opción es parte de una solución óptima para el problema completo (solución global).

Opencart Module for Advanced Product Custom Display Advanced administrator interface complete with a built-in help section Give the module a description for future reference. This will only be disp...
Google completa la compra de Motorola, googletorola apuesta por los moviles Fueron necesarios ocho meses desde que Google anunció que había llegado a un acuerdo de compra con Motorola Mobility para que la adquisición pudiese c...
iPhone 4s Hablemos de iPhone (Let´s Talk iPhone) apuntaba el eslogan de la conferencia donde el nuevo CEO de Apple y sustituto de Steve Jobs (Tim Cook) presentó...
Diferencias entre Windows 7 y Windows 8 El próximo 26 de octubre saldrá a la venta el Windows 8, el que viene con una enorme y relevante cantidad de cambios en comparación al 7, Vista, XP, e...
WikiCode: la Wikipedia de la programación en español WikiCode es una wiki donde se comparte de forma completamente gratuíta recursos de desarrollo, snippets, técnicas, etc... con la intención de crear ...
Facebook lanza Graph API Explorer En un intento de hacer su API Gráfica más accesible Facebook ha lanzado recientemente Graph API Explorer. Este nuevo servicio permite a cualquier d...
Whatsapp ahora supera a Twitter y a Facebook en mensajes Whatsapp casi no merece explicación, es la aplicación de mensajería móvil más popular del mundo, con una alta presencia en el segmento en Argentina y ...
Montar un negocio en Internet En este artículo vamos a exponer aquellas cuestiones legales que, necesariamente, habrá de considerar todo aquel que pretenda montar un negocio en Int...
Atención, no instales la actualización KB3194496 de Windows 10, provoca reinicios aleatorios Lo mejor es desmarcar las actualizaciones automáticas y decidir que instalar, si bien el código KB3194496 es bastante criptico para muchos, es bueno t...
Windows 10 para móviles registrará la actividad física de los usuarios Si sueles estar atento a todas las novedades que giran alrededor del mundo de la telefonía móvil inteligente, sabrás que la mayoría de smartphones y s...
CLASES DE ALGORITMOS
Tagged on: