Ecuaciones de opinión

Publicado el Ignacio Mantilla Prada

El poder de los algoritmos

Los algoritmos se han convertido en una herramientas de uso frecuente para una buena cantidad de tareas de diferente índole. Hay quienes consideran que los algoritmos son procedimientos matemáticos complicados, pero en realidad un algoritmo no es otra cosa que un conjunto de instrucciones con una secuencia lógica, usado como procedimiento para resolver un problema. Los algoritmos indican una serie de pasos que hay que dar para llegar a la solución deseada, en una forma similar a como seguimos las instrucciones de una receta para preparar una torta.

Y es la claridad de la secuencia y la monotonía de su ejecución, lo que hoy facilita la implementación de un algoritmo, con la ayuda de un lenguaje de programación, en un computador. Un algoritmo también nos libera frecuentemente de la ejecución de operaciones y cálculos en forma repetida, dejando que las realicen las máquinas para que sean ellas las que arrojen las respuestas cuya búsqueda puede convertirse en una tarea tediosa, aburrida, larga y susceptible de errores, si las personas tuvieran que ejecutarlas manualmente.

Un bonito y sencillo ejemplo de un algoritmo es el siguiente. Si deseamos calcular la raíz cuadrada de un número positivo a, es decir √a, el problema a resolver consiste en encontrar el valor del número positivo x tal que x² = a. Como claramente también debe cumplirse que x = a/x, entonces podemos dar un valor inicial aproximado x(0) y observar que el punto medio entre éste y  a/x(0)  será una mejor aproximación de la raíz cuadrada de a. Si llamamos x(1) ese punto medio, entonces

x(1) = (1/2)[x(0)+a/x(0)]

está más cerca de √a que el valor x(0).

Este proceso se puede repetir indefinidamente e ir formando así una sucesión x(n) donde cada nuevo término x(n+1) se consigue calculando el punto medio entre el anterior x(n) y la fracción a/x(n); es decir:

x(n+1) = (1/2)[x(n)+a/x(n)], n=0(1)…

Para aproximar la raíz cuadrada de a, basta ahora calcular los primeros términos de esa sucesión

x(0), x(1), x(2), …x(M),

hasta que la aproximación x(M) sea satisfactoria de acuerdo con la precisión que deseamos; naturalmente a mayor precisión buscada, mayor deberá ser M. 

Este es un algoritmo común, que puede implementarse en un computador fácilmente y así tener una respuesta aproximada a un problema concreto.

Más recientemente se ha venido investigando sobre el uso de otro tipo de algoritmos, llamados algoritmos genéticos. Un algoritmo genético es el que simula los pasos de los mecanismos que sigue la evolución de las especies en la biología; se trata de una técnica inspirada en la idea de que el que sobrevive es el que está mejor adaptado al medio, de acuerdo con la teoría de la evolución que formuló Charles Darwin en su obra fundamental El Origen de las Especies por medio de la selección natural, publicada en 1859, y que combina esa idea de la evolución con la genética.

La pregunta es cómo implementar esto con fórmulas matemáticas. La técnica consiste en considerar ahora, no una, sino muchas soluciones del problema, agrupadas en un conjunto en el que cada elemento, o sea cada solución, es tratada como si fuese un individuo que forma parte de una población de soluciones.

Uno de los problemas en los que se aplica este tipo de algoritmos es el de la optimización de rutas. Como ejemplo ilustrativo imaginemos que se busca la mejor ruta para ir al trabajo en una ciudad como Bogotá. Supongamos que se quiere encontrar la mejor opción para llegar al centro de la ciudad todos los días a las 9 de la mañana, desplazándose desde Chía. Podemos considerar muchas opciones: ir por la autopista norte y luego considerar 20 posibilidades de calles y avenidas, o ir por la carrera 7 para tener luego 15 caminos más a disposición. También hay que contemplar opciones como las vías que pasan por La Calera o por Cota. Al final tenemos miles de rutas factibles y el camino más corto puede no ser el más rápido.

En la búsqueda de la ruta óptima hay que considerar: distancia, tiempo, costo (peaje, combustible, medidas de pico y placa), medio de transporte (bicicleta, moto, automóvil, bus, taxi, uber, restricción pico y placa) y por supuesto niveles de tráfico de acuerdo con el horario. Cada una de las posibles rutas es considerada como un individuo de la población y se transforma en un vector matemático.

Los algoritmos genéticos para este problema funcionan de la siguiente forma: se selecciona aleatoriamente cualquier camino y se compara su eficiencia con otros, de tal manera que se descartan las rutas menos eficientes y se va haciendo una clasificación de las mejores soluciones para luego reproducirlas, mutarlas o cruzarlas, como ocurre en la población de una especie. Cuando se aplica el mecanismo de la reproducción, aparecerán las soluciones que ofrecen las rutas que tardan menos tiempo y se eliminan las que definitivamente tardan mucho. Ahora puede aplicarse un cruzamiento entre las mejores rutas para combinar unas con otras y luego llevar a cabo unas mutaciones entre las resultantes. Si se vuelve a aplicar el mecanismo, se va depurando esa población para que sobrevivan los mejores.

Aplicaciones como Waze o Google Maps consideran el tráfico en tiempo real y poseen la capacidad de recalcular la ruta. La información para conductores y peatones es captada con aportes que hacen los usuarios sobre el datos del camino, tales como el estado de la vía, los controles policiales, accidentes y niveles de tráfico. También usan promedios estadísticos que se almacenan para programar y recomendar las rutas, pero la elección de las mejores opciones puede inducir a errores ocasionados por información incorrecta en los datos suministrados o en los mapas disponibles. Se basan en algoritmos genéticos, pero en los programas comerciales como los mencionados, la utilidad de su respuesta está limitada a un intervalo de tiempo pequeño, pues la ruta elegida puede haber empeorado.

Soluciones óptimas en poco tiempo de computación es el resultado de aplicar algoritmos genéticos y resulta fascinante resolver problemas complejos actuales aplicando las ideas de la evolución de Darwin.

Como se observa, las matemáticas están en todas partes y cuando se hace uso de alguna aplicación, como aquellas con las que ya estamos familiarizados, los algoritmos pueden transformarse en métodos que, como las especies, evolucionan también logrando dar respuestas cada vez mejor adaptadas para este entorno en el que vivimos hoy. Los algoritmos también se han propagado y su poder es tal, que la vida moderna no sería llevadera sin ellos. 

 

@MantillaIgnacio

Comentarios