Tema 3 - Programación no lineal: Sin restricciones
Introducción y repaso
Estos problemas son problemas clásicos de optimización de funciones de grado 2 o superior.
Cuando la función de optimización tiene una sola variable, se dice que es unidimensional
Si el problema tiene dos variables, intentaremos poner una en función de la otra
Podemos convertir un problema de máximización a minimización y viceversa aplicando la siguiente expresión
Notación y expresiones
- Punto estacionario → Punto de pendiente (el valor de la primero derivada en ese punto es cero)
- → Vector de los puntos estacionarios de la función
- Maximizador/minimizador → Valor de para el cual la primera derivada es cero
- Min / Max local o global → Valor de para el cual la primera derivada es cero
- Local → Es un punto de pendiente cero, pero no es el más alto/bajo de los puntos estacionarios de la función
- Global → Es un punto de pendiente cero, y es el más alto/bajo de los puntos estacionarios de la función
Conceptos de matemáticas
- → Valor de la pendiente de la función en el punto
- → Valor de la curvatura de la función en el punto , se usa también para saber si un punto estacionario es un máximo o mínimo
Métodos de optimización no lineal
Ejemplos de simplificación a una variableEjemplo 12 - Cercado de un recinto
Método analítico
Este método es el método básico que consiste en analizar la pendiente de la función con la derivada
Hacer la derivada de la función
Igualar la derivada a para hallar los puntos candidatos a máximos o mínimos
Analizar si el punto candidato es un máximo o un mínimo
- Opción 1: Observar la pendiente de los puntos a la izq y dch del punto candidato para determinar si el un máximo o mínimo. Si la pendiente del punto a la izq y el de a la dch es
+
y-
respectivamente, es un maximo, si es al reves, es un mínimo. Si la pendiente es del mismo signo, no es ni un máximo ni un mínimo
Hacer lo mismo para los puntos y
Si el resto de puntos candidatos están separados, podemos cojer un número próximo al candidato sin necesidad de ser tan preciso
- Opción 2: Calcular la 2º derivada y sustituir el punto candidato en esta. Si el resultado es
+
será un mínimo, si el resultado es-
será un máximo
Hacer lo mismo para los puntos y
De los puntos candidatos, que sean máximo o mínimos, dependiendo de lo que estemos buscando, los sustituiremos en la función original para hallar el que maxímiza o minimiza el resultado de esta
Suponiendo que como será un mínimo no hace falta cancularlo
Si esta derivada da , repetir con la
Método de Newton
El método de Newton es útil para cuando el método analítico es imposible o muy dificil
El método de Newton es un método iterativo que intenta dibujar una parábola que se aproxima mucha a la función para un púnto concreto.
El método de newton se hace para una función la cual es posible calcular su segunda derivada
Pasos para resolver un ONL por el método de Newton
Datos
- → Margen de error
- → Valor de inicial
Seleccionamos un punto inicial y una tolerancia
Iteramos mientras que
Columnas de tabla de iteraciones
- → Número de Iteración
- → Valor de resultante de la operación de la siguiente función, siendo el valor de la fila de arriba para esa columna. Siendo el valor de la fila actual
- → Valor de en la primera derivada
- → Valor de en la segunda derivada
0 | Dato de valor inicial | Sustituimos de esta fila en la primera derivada | Sustituimos de esta fila en la segunda derivada |
1 | Aplicamos la fórmula de con el valor de arriba | Sustituimos de esta fila en la primera derivada | Sustituimos de esta fila en la segunda derivada |
2 | Aplicamos la fórmula de con el valor de arriba | Sustituimos de esta fila en la primera derivada. Comprobamos si debemos seguir iterando | Sustituimos de esta fila en la segunda derivada |
… | … | … | … |
Conclusiones
Cuando paremos de iterar, tendremos que hayar los maximizadores o minimizadores, y los máximos y mínimos.
Realmente solo hace falta calculas los mínimos en los problemas de minimización, e igual para los máximos
Para saber si es maximizador o minimizador y si será máximo o mínimo
- Si entonces es un maximizador
- Si entonces es un minimizador
Hallar el min/maximizadorEl último valor de la tabla de la columna
Hallar el mínimo/máximoSustituimos en la función original
Este método nos sirve también para problemas de maximización
Vector gradiente y Matriz hessiana
Los conceptos de esta sección sirven para analizar la funciones multidimensionales, osea que tienen varias variables:
Conceptos
- Gradiente → El equivalente a la pendiente para las funciones de más de una variable
- → Vector de valores para sustituir en la función multidimensional
- Punto de silla → Punto en el cual una variable es un máximizador y la otra es minimizador
Para calcular el gradiente de un punto, podemos aplicar la siguiente fórmula
Explicación del vector
- El primer elemento es la derivada de respecto de
- El segundo elemento es la derivada de respecto de
El valor del gradiente se halla sustituyendo los valores de en la función :
Matriz hessianaEjemplo 16 - Matriz Hessiana
La matriz hessiana es el siguiente paso después de calcular . Es el equivalente a calcular la segunda derivada.
Explicación de la matriz
Derivada, de respecto de la variable Derivada, de respecto de la variable Derivada, de respecto de la variable Derivada, de respecto de la variable
La matriz hessiana es una matriz simétrica
El valor de la matriz hessiana se halla sustituyendo los valores de en la función :
Definitud de la matriz hessiana
Cuando decimos todos los determinantes de , nos referimos a los determinantes de de las submatrices de hasta en orden creciente desde siendo este el primer determinante
Ejemplo
Dada una matriz de orden siendo en este ejemplo , tendremos que calcular determinantes
- =
Para cuando la matriz es diagonal (analizamos la diagonal principal)
Para que sea definida positivaTodos los elementos de la diagonal principal son mayores que cero
Para que sea semidefinida positivaTodos los elementos de la diagonal principal son mayores o iguales que cero
Para que sea definida negativaTodos los elementos de la diagonal principal son menores que cero
Para que sea semidefinida negativaTodos los elementos de la diagonal principal son menores o iguales que cero
Para que sea indefinidaResto de casos:
- El signo empieza en positivo y hay algún elemento negativo
Para cuando la matriz es simétrica y no diagonal (analizamos los determinantes)
Para que sea definida positivaTodos los determinantes son mayores que cero
Para que sea semidefinida positivaEl signo de todos los determinantes de es positivo, pero al menos uno es cero (que no sea el primero)
Para que sea definida negativaEl signo del primer determinante es negativo y el resto alternados en signo
Para que sea semidefinida negativaEl signo del primer determinante es negativo y el resto alternados en signo o cero
Para que sea indefinidaSi el primer determinante es cero
Hallar los puntos óptimos (minimizadores y máximizadores)
Condiciones de optimalidad de primer orden
🔚
Hallar los puntos estacionarios:
Dado un vector gradiente entonces para hallar los puntos estacionarios resolveremos el sistema:
Los puntos estacionarios serán la combinación de soluciones para con
Ejemplo
Dado un gradiente cuyos elementos son
- Las soluciones de son: y
- Las soluciones de son:
Por lo que los puntos estacionarios son
Condiciones de optimalidad de segundo orden
🔚
Verificar si los puntos hallados anteriormente son estacionarios
Sustituiremos en los puntos estacionarios hallados
- → Es un mínimo local
- → Es un máximo local
- indefinida → Es un punto de silla
Se dice que si el punto pertenenciente a una matriz hessiana…
- Si dicha matriz es semidefinida, entonces se entiende que cumple la Condición Necesaria de Optimalidad de segundo Orden (CNO2)
- Si dicha matriz es definida, entonces se entiende que cumple la Condición Suficiente de Optimalidad de segundo Orden (CSO2)
- Si dicha matriz es infefinida, entonces la función representa un Punto de silla
Métodos de optimización multidimensional
Método del gradiente
Método del gradiente
Mejoraremos el punto siendo que
- La dirección de máximo descenso (problemas de minimización)
- La dirección de mínimo descenso (problemas de maximización)
Pasos del método del gradiente
Seleccionamos los valores iniciales
Seleccionamos la solución inicial, osea el valor de . Observamos que se utiliza el exponenete para denotar la solución inicial, este exponente se corresponde con el valor inicial de el índice de solución , y siendo dicho valor inicial.
Seleccionamos el índice de solución , osea el valor que iremos incrementando en cada iteración
Seleccionamos la toreancia, osea el valor umbral , siendo dicho umbal
Calculamos el gradiente
Calculamos el vector gradiente de la función , para la solución actual. La solución actual es siendo el valor del índice de solución de la iteración actual
Comprobamos proximidad a un punto estacionario
Si el valor absoluto de es menor que el umbral deninfido para la tolerancia, entonces el punto está suficientemente cerca de un punto estacionario. Esto se calcula con el producto escalar (raiz de la suma de cuadrados, osea, como hacer pitágoras)
Elegimos la dirección del gradiente (valor de para el siguiente índice de solución)
Si la función objetivos es de maximización
Si la función objetivos es de minimización
Expresión para calcular el siguiente punto
El siguiente punto se debe calcular con respecto al punto actual más el valor de la dirección multiplicado por una incognita
Calcular el nuevo punto
Ahora sustituiremos el nuevo punto en la función inicial el punto . Esta operación no dará como resultado una función unidimensional la cual ahora podremos calcular
Despejaremos de la expresión anterior y nos dará su valor. Ahora, calcularemos el nuevo punto sustituyendo el valor de lamda en la expresión hallada en el paso anterior(paso 4️⃣) →
El resultado será el nuevo punto
Incrementar el índice de solución
Ahora, incrementaremos el valor del índice de solución, , ahora
Volvemos al paso uno tras incrementar
Método de Newton (multidimensional)
Sin hacer