El objetivo del programa es encontrar el máximo global de una función. Se lleva a cabo mediante el algoritmo voraz (Hill Climbing) junto con Montecarlo.
Hill Climbing evalúa a partir de un punto, sus puntos vecinos, elige el punto vecino mayor, y vuelve a evaluar. Continua así hasta no encontrar ningún vecino mayor. Este algoritmo, por si solo, puede no dar lugar al máximo global, sino a máximos locales.
Por tanto, lo juntamos con el método Montecarlo, que consiste en realizar varios lanzamientos de este tipo desde distintos puntos, de tal manera que la probabilidad de que alguno encuentre el máximo global es mayor.
Además, este programa está optimizado para que, si la ruta a partir de un punto, se solapa con otra, se corte esta búsqueda (evitando así repeticiones de rutas y exceso de evaluación de puntos).
Para evitar divisiones entre cero, la función se calcula con un límite.