La optimización en matemática, estadísticas, ciencias empíricas, ciencia de la computación o economía, optimización matemática (o bien, optimización o programación matemática) es la selección del mejor elemento (con respecto a algún criterio) de un conjunto de elementos disponibles.
un problema de optimización consiste en maximizar o minimizar una función real eligiendo sistemáticamente valores de entrada y computando el valor de la función
La función objetivo es la ecuación que será optimizada dadas las limitaciones o restricciones determinadas y con variables que necesitan ser minimizadas o maximizadas usando técnicas de programación lineal o no lineal. f(x,y) = ax + by.
Restricciones La función objetivo está sujeta a una serie de restricciones, expresadas por inecuaciones lineales:
a1x + b1y ≤ c1 a2x + b2y ≤c2 anx + bny ≤cn Pasos a seguir para la resolución de problemas de optimización de programación lineal
1. Elegir las incógnitas. 2. Escribir la función objetivo en función de los datos del problema. 3. Escribir las restricciones en forma de sistema de inecuaciones. 4. Averiguar el conjunto de soluciones factibles representando gráficamente las restricciones. 5. Calcular las coordenadas de los vértices del recinto de soluciones factibles (si son pocos). 6. Calcular el valor de la función objetivo en cada uno de los vértices para ver en cuál de ellos presenta el valor máximo o mínimo según nos pida el problema (hay que tener en cuenta aquí la posible no existencia de solución si el recinto no está acotado).
Ejemplo Unos grandes almacenes encargan a un fabricante pantalones y chaquetas deportivas. El fabricante dispone para la confección de 750 m de tejido de algodón y 1000 m de tejido de poliéster. Cada pantalón precisa 1 m de algodón y 2 m de poliéster. Para cada chaqueta se necesitan 1.5 m de algodón y 1 m de poliéster. El precio del pantalón se fija en 50 € y el de la chaqueta en 40 €. ¿Qué número de pantalones y chaquetas debe suministrar el fabricante a los almacenes para que éstos consigan una venta máxima?
2- Función Objetivo.
f(x,y)= 50x + 40y 3-Restricciones.
pantalones
chaquetas
disponibl e
algodón
1
1,5
750
poliéster
2
1
1000
x + 1.5y ≤ 750
2x+3y≤1500
2x + y ≤ 1000 Es muy importante recordar los pasos a seguir para la resolución de problemas de optimización de programación lineal
1- Elección de las incógnitas
.
x = número de pantalones y = número de chaquetas
Como el número de pantalones y chaquetas son números naturales, tendremos dos restricciones más: x ≥ 0 y ≥ 0 4-Hallar soluciones factibles
Tenemos que representar gráficamente las restricciones. Al ser x ≥ 0 e y ≥ 0, trabajaremos en el primer cuadrante. Representamos las rectas, a partir de sus puntos de corte con los ejes.
Continuamos Resolviendo el ejemplo
Resolvemos gráficamente la inecuación: 2x +3y ≤ 1500, para ello tomamos un punto del plano, por ejemplo el (0,0). 2·0 + 3·0 ≤ 1 500 Como 0 ≤ 1 500 entonces el punto (0,0) se encuentra en el semiplano donde se cumple la desigualdad.
2x + 3y = 1500; x = 0 (0, 500) 2x + y = 1000; y = 0 (500, 0) 2x + 3y =1500; 2x + y = 1000 (375, 250)
De modo análogo resolvemos 2x + y ≤ 1000. 2·0 + 0 ≤ 1 00 La zona de intersección de las soluciones de las inecuaciones sería la solución al sistema de inecuaciones, que constituye el conjunto de las soluciones factibles.
6- Calcular el valor de la función objetivo.
.
5- Calcular las coordenadas de los vértices del recinto de las soluciones factibles.
.
La solución óptima, si es única, se encuentra en un vértice del recinto. éstos son las soluciones a los sistemas:
En la función objetivo sustituimos cada uno de los vértices. f(x, y) = 50x + 40y f(0, 500) = 50·0 + 40·500 = 20000 € f(500, 0) = 50·500 + 40·0 = 25000 € f(375, 250) = 50·375 + 40·250 = 28750 € Máximo La solución óptima es fabricar 375 pantalones y 250 chaquetas para obtener un beneficio de 28750 €.
Optimización de funciones de varias variables
Igualamos a cero ambas derivadas Entonces Entoncesdecimos decimosque quecces esun un máximo máximoglobal globalde def fen enSSyyf(c) f(c) es eselelvalor valormáximo máximo
Resolvemos el sistema
De la misma forma definimos mínimo global: Por lo tanto en los valores anterior hay un punto critico curo valor es: ejemplo Una empresa produce dos tipos distintos A y B de un bien. El coste diario de producir x unidades de A e y unidades de B es
Supongamos que el producto A lo vende a 15€ y el B 9€. Hallar que numero de unidades hay que vender de A y B para maximizar el beneficio.
El problema es determinar si es un máximo o mínimo. Una forma fácil de verlo es hacer una representación grafica. Se ve que es una curva que tiene forma de montaña por lo tanto el único punto critico será un máximo
Optimización Sin restricciones
En optimización sin restricciones se minimiza una función objetivo que depende de variables reales sin restricciones sobre los valores de esas variables. La formulación matemática es:
Los números reales xi, i = 1,..., 6 son los parámetros del modelo. Se desea seleccionarlos de manera que los valores del modelo Φ(tj , x) ajusten los datos observados yj tanto como sea posible. Para establecer el objetivo como un problema de optimización, se agrupan los parámetros xi en un vector de incógnitas (x1,...,x6
donde f es una función suficientemente regular. En muchos problemas las restricciones se pueden incluir dentro de la función objetivo, por lo que la dimensionalidad del problema se reduce a una variable. Algunos problemas sin restricciones, . inherentemente incluyen una única variable. Las técnicas de optimización con y sin restricciones, generalmente incluyen pasos de búsqueda unidireccional en sus algoritmos
Ejemplo Se intenta encontrar una curva que ajuste algunos datos experimentales, por ejemplo medidas y1,...,ym de una señal tomadas en los tiempos t1,...,tm. Desde los datos y el conocimiento de la aplicación, se deduce que la señal tiene un comportamiento exponencial y oscilatorio, y se elige modelarlo por la función:
que miden la discrepancia entre el modelo y los datos observados. La estimación de x se obtendrá resolviendo el problema:
Este es un problema de mínimos cuadrados no lineales, que es un caso especial de optimización sin restricciones. Si el número de medidas es grande (por ejemplo 105), la evaluación de f o sus derivadas para un valor concreto del vector de parámetros x es bastante caro desde el punto de vista computacional.
Figura 1: Ejemplos de mínimos: x1 mínimo global,
x2 mínimo local estricto, x3 mínimo local no estricto
Métodos matemáticos de optimización no restringida Búsqueda multivariable
La optimización de funciones objetivo multivariables no lineales necesita el empleo de técnicas robustas y eficientes. La eficiencia es importante debido a que estos problemas requieren procedimientos de solución iterativos, la robustez es una propiedad deseable debido a que predecir el comportamiento de funciones no lineales y de varias variables es imposible. Estos métodos tienen como objetivo determinar puntos x*= [X1, X2, X3…Xn] que minimicen a f(x1, x2, x3…) ≡ f(x) Prácticame nte para todos los métodos existe una estructura fundamenta
El algoritmo comienza desde un punto inicial (x0 ), a continuación se determina, mediante una regla, una dirección de movimiento (sk ), y se sigue en esa dirección hasta llegar a un mínimo (relativo) de la función objetivo sobre esa recta. En ese nuevo punto se determina una nueva dirección utilizando la misma regla anterior y se repite el proceso, la búsqueda finaliza cuando se cumple con un criterio de convergencia. Como se puede suponer la diferencia entre los métodos radica en la regla mediante la cual se selecciona la dirección de movimiento en cada paso del algoritmo. Métodos Directos
los cuales utilizan solo valores de la función objetivo. Métodos de búsqueda directa
Para la aplicación de estos métodos solamente es necesario conocer el valor de la función objetivo en cualquier punto del espacio y no necesitamos ninguna hipótesis adicional acerca de la diferenciabilidad de la función. Podemos emplear estos métodos, bien cuando el gradiente de la función, ∇f (x), no exista, no sea conocido o simplemente porque su expresión es demasiado compleja para poder manejarlo con eficacia.
Para el desarrollo de estos métodos supondremos que f(x) es continua y además unimodal.
Búsqueda random Tal como el nombre lo indica, este método evalúa la función repetidamente en los valores de las variables independientes seleccionados al azar. Si se realizan un número suficiente de evaluaciones de la función objetivo, eventualmente, se localizará el óptimo. Éste método selecciona un vector inicial, se evalúa luego la función en dicho punto, y se determina aleatoriamente un nuevo punto. En efecto en este método se eligen simultáneamente una dirección de búsqueda y un tamaño de paso. Después de una o más etapas el valor de f(xk ) se compara con el mejor valor de f(x) y se decide continuar o finalizar la búsqueda. Es un método ineficiente, pero puede ser útil para proveer un punto de partida para otros métodos.
Métodos De búsqueda Directa
Búsqueda en una grilla En éste método se evalúan una serie de puntos alrededor de un punto de referencia, según un diseño determinado. El punto de referencia para la segunda iteración de este método será aquel que da el mejor valor de función objetivo, repitiendo de esta manera el procedimiento de búsqueda.
Búsqueda Búsquedaunivariable univariable
En n dimensiones, un simplex regular es un Este método consiste en elegir n poliedro compuesto por (n + direcciones fijas de búsqueda, 1) puntos equidistantes, usualmente los ejes estos puntos son los vértices coordenados, para una función del simplex. Por ejemplo, un objetivo de n variables. Luego f(x) triángulo equilátero es un es minimizada en cada dirección simplex en dimensión 2, secuencialmente, utilizando una mientras que un tetraedro es búsqueda usando un simplex para n = 3. La unidimensional. Este método principal propiedad del funciona bien cuando las curvas simplex empleada por este de nivel son circulares, siempre algoritmo es que se puede llega al óptimo en dos etapas; generar un nuevo simplex pero fracasa cuando se proyectando uno cualquiera encuentra con curvas de nivel de sus vértices a una elípticas que originan aristas determinada distancia a través del centroide de los demás vértices. El nuevo simplex se construye reemplazando el vértice reflejado por el generado mediante este procedimiento de reflexión. De esta forma construimos un nuevo simplex utilizando solamente una nueva evaluación de la función objetivo. En la figura se puede observar el Método MétodoSimplex Simplex proceso para 2 dimensiones. Es un método de búsqueda heurística desarrollado por Spendley, Hext y Himsworth. Está basado en la evaluación de la función en los vértices de un simplex regular.
Direcciones de búsqueda conjugadas
La experiencia ha demostrado que la exploración a través de direcciones conjugadas es mucho más efectiva que la búsqueda con direcciones que se determinan arbitrariamente. Dos direcciones si y sj se dice que son conjugadas si:
Despejando se obtiene:
Cálculo de la dirección conjugada sin usar derivadas En optimización la matriz Q es el Hessiano de la función objetivo. Para una función cuadrática de n variables, para la cual H es una matriz constante, el método garantiza que se puede alcanzar el óptimo en n etapas, si en cada etapa se optimiza en la correspondiente dirección conjugada. Las direcciones conjugadas no son únicas, se debe especificar una dirección inicial para que el resto queden determinadas. Si la función fuese cuadrática, el desarrollo de taylor sería:
Partiendo del punto x0 , se localiza el punto xa que minimiza la función en la dirección s. Luego, a partir de otro punto x1 distinto del primero se localiza el punto xb que minimiza la función en la misma dirección s. La dirección (xb - xa ) es conjugada a s. La figura siguiente muestra esta situación.
Método de gradiente
Este método utiliza en sus cálculos únicamente la derivada primera de la función. Para maximización la dirección de búsqueda es simplemente el gradiente, para minimización la dirección de búsqueda es el negativo del gradiente
Entonces para minimización, en una etapa k la transición desde el punto a otro punto puede verse por la siguiente expresión
Existen dos métodos para seleccionar el valor de λ. Un método emplea una búsqueda unidimensional a lo largo del gradiente negativo, el segundo especifica el tamaño del paso a un valor constante y utiliza este valor en cada iteración.
El algoritmo del gradiente puede ser resumido como sigue: Donde: 2.Calcular (analítica o numéricamente) las derivadas parciales j=1,...,n 3.Calcular la dirección de búsqueda
Método de Fletcher y Reeves
El método combina información actual del vector gradiente con los vectores gradientes de iteraciones previas para obtener una nueva dirección de búsqueda. Los pasos son los siguientes:
Para la iteración k, la relación es:
4.El procedimiento finaliza cuando “S” sea menor a la tolerancia
El método de FletcherReeves debiera converger en N iteraciones o menos para el caso de una función cuadrática. Sin embargo, para cuadráticas mal condicionadas (aquellas cuyos contornos son altamente excéntricos y distorsionados), el método puede requerir mucho más de N iteraciones para converger.
Método Davidon-Fletcher-Powell
Davidon–Fletcher–Powell (William C. Davidon, Roger Fletcher, y Michael J. D. Powel ) encuentran la solución a la ecuación de la secante que es más cercana a la estimación actual y satisface la condición de curvatura. Fue el primer método cuasi -Newton de generalizar el método de la secante a un problema multidimensional. Esta actualización mantiene la simetría y de finitud positivo de la matriz de Hesse
y Bk es una matriz definida positiva y simétrica . La actualización correspondiente a la aproximación de Hesse inversa Hk = Bk ^ { - 1 } viene dada por:
B se supone que es definida positiva , y los vectores e Y debe satisfacer la condición de curvatura :
Dada una función f ( x ), su pendiente ( ) , y definida positiva matriz hessiana B, la serie de Taylor es:
y la serie de Taylor de la pendiente en sí (ecuación secante) :
se utiliza para actualizar la fórmula B. El DFP encuentra una solución que es simétrica , definida positiva y más cercano al valor actual aproximada de Bk :
Donde:
La fórmula DFP es muy eficaz , pero pronto fue sustituido por la fórmula BFGS(Broyden-Fletcher-GoldfarbShanno) , que es su doble ( intercambiando los papeles de Y y S ).
Método de Ascenso y Descenso Acelerado
En la iteración k+1, el calculo del punto realiza mediante la siguiente expresión
Por lo tanto, en el método de descenso acelerado, la transición de a se calcula mediante la expresión
El gradiente negativo nos dará la dirección para optimizar, pero no la magnitud del paso a tomar; por ello, son posibles varios procedimientos de descenso acelerado, dependiendo de la elección de ,
La dirección del descenso acelerado (vector normalizado) se calcula mediante la expresión:
Como el método de descenso acelerado puede finalizar en cualquier tipo de punto estacionario (donde los elementos del gradiente de f(x) son cero), es necesario determinar si el punto es un mínimo local ( es decir, una solución) o un punto de silla. Si es un punto de silla, es preciso emplear un método que no utilice gradientes para alejarse del punto, después de lo cual la minimización puede seguir con el método de descenso acelerado, Se pueden emplear varias reglas para finalizar la serie de iteraciones del método de descenso acelerado basadas, ya sea en el valor de f(x), de x, de , del gradiente de f(x) o de alguna combinación de estos, además de los valores correspondiente a los pasos previos.
Dos métodos generales de selección de tamaño
En el primer caso, se debe emplear la siguiente ecuación:
La función f(x) se debe minimizar por algún método vistos para funciones de una sola variable,
En el primer caso, la función objetivo se minimiza con respecto a mientras que en el segundo, se selecciona un valor fijo o variable de
Si la función objetivo no lineal es demasiado compleja como para diferenciarla analíticamente, las derivadas parciales necesarias para obtener el vector gradiente se puede calcular de forma aproximada; así por ejemplo, en el caso de 2 variables, se pueden utilizar las siguientes expresiones
En Eneste estemétodo método encontrara encontraraun unmínimo mínimo oomáximo loca, máximo loca, generalmente generalmenteelelque que esta estamas mascercano cercanoalal punto puntode deiniciación. iniciación. Para encontrar Para encontrartodos todos los losmínimos mínimosoo máximos máximoslocales localeshay hay que repetir el método que repetir el método con condiferentes diferentespuntos puntos de deiniciación. iniciación.AlAligual igual que se usa el método que se usa el método de dedescenso descenso acelerado aceleradopara paraelel calculo calculode demínimos mínimos locales, locales,en enelelcaso casode de máximos, máximos,elelmétodo método empleado empleadose se denomina de ascenso denomina de ascenso acelerado acelerado
•
Se desea minimizar la función:
f ( x , y ) = −20 + 3 x 2 + y 2 Esta función es unimodal El mínimo está ubicado en el punto (0,0) Supongamos que se asume como punto inicial, el punto (-1.7, 1.7) El gradiente en un punto cualquiera es, ∇f = {6x, 2y}
Las curvas de nivel de esta función son de forma elíptica, y el cambio de la dirección de búsqueda de una iteración a otra, se observa en la trayectoria en forma de zigzag
2 1.5 1 0.5 0 -0.5 -1 -1.5 -2 -2
-1.5
-1
-0.5
0
0.5
1
1.5
2
Ejercicios Resueltos
Ejercicios Resueltos 2- Calcula dos numero que cumplan que al sumarlos resulte 10 y resta de uno de ellos menos el inverso de l otro sea mínima.
Ejercicios Resueltos Una empresa ha decidido mejorar su seguridad instalando 9 alarmas. Un especialista en el tema señala que dada la estructura de la empresa solo puede optar por dos tipos de alarmas, de tipo A o de tipo B; además, afirma que la seguridad de la empresa se puede expresar como la decima parte del producto entre el numero de alarmas de tipo A instaladas y el cuadrado del numero de alarmas instaladas de tipo B. ¿Cuantas alarmas de cada tipo se deben instalar en la empresa para maximizar su seguridad?