Non-Linnar Optimizer Aplicación on Line

Conceptos y Principios Básicos

Presentamos a continuación la aplicación on-line Non-Linnar Optimizer, Que está pensada para ayudar a resolver problemas de programación no lineal.
Non-Linnar Optimizer Funciona calculando iterando a partir de un punto, calcula numéricamente el gradiente de la función y avanza en la dirección creciente o decreciente, dependiendo si el problema es de maximización o minimización.
La condición de parada es:
    1) Se llega a un punto donde graf f(x) = 0. En este caso se llega a un extremo local.
    2) En la iteraciones no se puede avanzar porque se ha llegado a un punto frontera de la región factible.

Con este método se alcanza al punto óptimo más cercano (máximo o mínimo dependiendo si el problema es de maximización o minimización) a un cierto punto inicial dado.
Sin embargo esto no quiere decir que el punto hayado sea el óptimo global y el resultado final puede depender del punto incial donde comienzan la iteraciones.
Un estudio a priori del problema nos puede ayudar a encontrar el punto en el cual comenzar las iteraciones.

Acceda aquí a Non-Linnar Optimizer

Teoría en extensión

Para usarla correctamente, tiene que introducir los datos de su problema, esto es:
Función Objetivo: Puede ser una función de varias variables, escríbalas del siguiente modo:
         1) Si son dos variables: utilize x e y como nombre para estas variables. Ejemplo sin(x+y)
         2) Si son 3 variables: utilize t, x e y como nombres. Ejemplo exp(t(x+2y))
         3) Si son 4 variables: utilize t, x, y, z como nombres. Ejemplo sqrt(x^2+2y+z)
         4) Si son 5 variables: utilize t, x, y, z, w como nombres. Ejemplo cos(x + y*z + t*w)

Tabla de restricciones: Introduzca las funciones de restricciones, estas funciones tendrán lo máximo tantas variables como la función objetivo y pueden ser lineales o no.

Punto inicial: Punto que satisface las restricciones del problema, es el punto a partir del cual el algoritmo comienza a realizar las iteraciones, dicho punto tendrá tantas dimensiones como número de variables tenga la función objetivo. Observe que puede añadir dimentiones (o borrarlas) con los links "Añadir" y "Borrar" respectivamente.

La ventana del programa se abre con un problema por defecto cuya solución inmediata es el punto (0, 0): Se trata de minimizar la función f(x, y)= x^2 +y^2 dentro del círculo x^2 +y^2 ≤ 1.
La aplicación consta del siguiente menú:

        1) Manual Muestra un pequeño manual de la aplicación.
        2) Reiniciar Se vuelve a mostrar el problema inicial por defecto ya mencionado.
        3) Añadir Restricción Añade una función de restricción al problema.
        4) Borrar Restricción Borra una función de restricción.
        5) Ejecutar Se realizan las iteraciones buscando una solución óptima.

Como funciona el algoritmo?
El algoritmo parte del punto inicial, en dicho punto calcula el gradiente de la función y avanza en el sentido de mayor crecimiento o decrecimiento (dependiendo si el problema es de maximización o minimización) de la función. Dicho sentido es el sentido que apunta el vector gradiente o su sentido contrario (si el problema es de minimización).
El algoritmo se para en uno de estos casos:
1) Se ha llegado a un punto de inflexión (o punto de silla). En este punto el gradiente es cero: indica un máximo un mínimo o un punto de silla (ni máximo ni mínimo).
2) Salimos de la región factible. En este caso el punto óptimo más cercano al punto de inicio está en la frontera de la región factible.
3) Solución infinita. En este caso se ha llegado al mayor valor para la aritmética del ordenador.

Tenga en cuenta que tanto el valor óptimo como el punto donde se alcanza pueden contener errores de truncación debido a
         1) la limitación de la aritmética del ordenador (el cual se propaga entre las iteraciones del algoritmo).
         2) Error de truncación del algoritmo que en el caso de la derivación numérica es en cada iteración una O(1e-14)

Nótese que debido a la naturaleza de los problemas de programación no lineal, hallar un punto no significa que sea el valor óptimo, dicho valor final puede variar dependiendo del punto de inicio. Sobre todo en los casos de funciones objetivo o restricciones no convexas.
Podemos definir la solución aportada por Non-Linnear Optimizar como aquel valor óptimo "más cercano" al punto inicial dado. Donde el sentido de "más cercano" hay que entenderlo como el sentido de mayor crecimiento o decrecimiento de la función objetivo.





Ha sido util? Alguna idea para complementar el texto?



Deja tu post

Comentarios de otros usuarios





Deja tu post