Primero que todo hay que entender el significado de un algoritmo que
es una serie de operaciones detalladas y no ambiguas. En otras
palabras un algoritmo es un conjunto de reglas para resolver una
cierta clase de problemas paso por paso.
Una computadora es una máquina que necesita un programador, ya que por
sí sola no se puede programar, la función de ésta máquina es
solucionar problemas usando los ALGORITMOS. Dado un determinado
problema el programador debe idear una solución y expresarla usando un
algoritmo; luego de esto, debe codificarlo en un determinado lenguaje
de programación y por último ejecutar el programa en el computador el
cual refleja una solución al problema inicial.
La base de la programación de computadoras esta en el manejo de los
algoritmos; por lo tanto los niveles básicos de enseñanza de estos
últimos exigen al instructor buenos métodos, y al estudiante aptitud y
mucho interés, por lo cual es muy importante el vínculo de la
informática para hacer más fácil y productiva la adquisición de estos
nuevos conocimientos.
NUEVAS TÉCNICAS DE ELABORACIÓN DE ALGORITMOS
Una forma de facilitar esta labor consiste en recurrir a técnicas
conocidas de diseño de algoritmos, es decir, a esquemas muy generales
que pueden adaptarse a un problema particular al detallar las partes
generales del esquema.
---Algoritmos dividir para vencer: MÉTODO DEDUCTIVO
Consiste en la descomposición de un problema de tamaño n en
problemas más pequeños, de modo que a partir de la
solución de dichos problemas sea posible construir con facilidad una
solución al problema completo. Ya se han visto varias aplicaciones de
esta técnica, como la clasificación por intercalación o los árboles
binarios de búsqueda.
---Programación dinámica:
A menudo sucede que no hay manera de dividir un problema en un
pequeño numero n de sub-problemas cuya solución pueda combinarse
para resolver el problema original. En tales casos, se puede intentar
dividir el problema en tantos sub-problemas como sea necesario,
dividir cada subproblema en sub-problemas mas pequeños, y así
sucesivamente. Si eso es todo lo que se hace, quizá se produzca un
algoritmo de tiempo exponencial.
No obstante, con frecuencia, solo hay un número polinomial de sub-
problemas, de aqui que se deba resolver algún subproblema muchas
veces. Si, en cambio, se conserva la solución a cada subproblema
resuelto, y tan sólo se toma la respuesta cuando se requiere, se
obtiene un algoritmo de tiempo polinomial.
Desde el punto de vista de la realización, algunas veces es más fácil
crear una tabla de las soluciones de todos los subproblemas que se
tengan que resolver. Se rellena la tabla sin tener en cuenta si se
necesita realmente un sub-problema particular en la solución total. La
formación de la tabla de subproblemas para alcanzar una solución a un
problema dado se denomina progrnrnacidn dindmica, nombre procedente
de la teoría de control.
---Algoritmos Ávidos
Considérese el problema es dar un cambio. Supónganse monedas de $25
(un cuarto) $10 (un décimo), $5 (un vigésimo) y $1 (un centavo), y
que se desea dar un cambio de $63 . Sin pensar, se convierte esta
cantidad a dos cuartos, un décimo y tres centavos. No sólo se
determinó rapidamente una lista de monedas con el valor
correcto, sino que se produjo la lista más corta de monedas con ese
valor. El algoritmo empleado probablemente fue seleccionar la moneda
mayor cuyo valor no excedia de $63 (un cuarto), agregarla a la lista
y sustraer su valor de 63, que-
dando $38 . De nuevo, se seleccionó la moneda más grande cuyo valor no
fuera mayor de $38 (otro cuarto) y se añadió a la lista, y así
sucesivamente. Este método de dar cambio es un algoritmo
ávido.
---Método de retroceso
Algunas veces surge el problema de encontrar una solución optima a un
sub-problema, pero sucede que no existe una teoría que pueda aplicarse
para ayudar a encontrar lo óptimo, si no es recurriendo a una búsqueda
exhaustiva.
--- Algoritmos de búsqueda local
Algunas veces, la siguiente estrategia producirá una solución
optima para un problema.
l . Empezar con una solución aleatoria.
2. Aplicar a la solución actual una transformación de un conjunto
dado de transformaciones para mejorar la solución; la mejora es la
nueva solución actual.
3. Repetir hasta que ninguna transformación del conjunto pueda
mejorar la solución actual.
La solución resultante puede ser optima o no. En principio, si «el
conjunto de transformaciones dado» incluye todas las que toman una
solución y la reemplazan por otra, entonces no se parará hasta
alcanzar la solución optima. Pero, en ese caso, el tiempo para aplicar
(2) es el mismo que el necesario para examinar todas las soluciones, y
todo el enfoque no tiene mucho sentido.
OPINIÓN ACERCA DE ALGORITMOS GENÉTICOS
Los algoritmos genéticos son métodos que están basados en el proceso
genético de los seres vivos. Por imitación a la teoria de Darwin
(selección natural) los AG son son capaces de dar soluciones a
problemas de la vida real en donde la solución son diversos caminos en
el que sobrevive el individuo mejor adaptado al problema.
HERNÁN DARIO SANTIAGO ALVAREZ
INGENIERIA DE MINAS
1180532