Вы находитесь на странице: 1из 75

 Una importante compañía petrolera desea

construir una refinería que recibirá suministros


desde tres ciudades portuarias. El puerto B esta
300 Km. al este y 400 Km. al norte del puerto A,
mientras que el puerto C esta 400 al este y 100
Km. al sur del puerto B. Determínese la
localización de la refinería, de tal manera que la
cantidad total de tubería necesaria para
conectar la Refinería con los puertos se
minimice.
B(300 , 400)

C(700,300)

R( x , y)
A(0,0)

Mín x2  y2  x  300 2   y  400 2  x  700 2   y  300 2


 La Optimización puede definirse como el
proceso de seleccionar dentro de un conjunto
de alternativas posibles, aquella que mejor
satisfaga el o los objetivos propuestos.
 Para la resolución de un problema de
optimización se requieren 2 etapas principales:
 La Optimización multivariable implica un
estudio de datos de 2 dimensiones o más.
 El caso particular que se estudiará es la
optimización en 2 dimensiones, ya que las
características esenciales de búsqueda
bidimensionales se aprecian mejor
gráficamente.
Repaso del gradiente ():
Para una función “f ”, de variables x1, x2, …, xn:

 f f f 
f    
 x1 x2 xn 

f  15 x1  2( x2 )  3x1 ( x3 )
3 2

Ejemplo:

f  15  3( x3 ) 2 6( x2 ) 2  6 x1 x3 
 El Hessiano (2) de f(x1, x2, …, xn) es:

 f 2 f 2
f 
2

  
 x12
2
x1x2 x1xn 
 f f 2
f 2

Hf=  2 f   x x x2
2
x2 xn 
 2 1 
 2    
 f f f 
2 2

 x x  2 
 n 1 xn x2 xn 
 Ejemplo (de antes):

f  15 x1  2( x2 )3  3x1 ( x3 ) 2


f  15  3( x3 ) 2 6( x2 ) 2  6 x1 x3 
 0 0  6 x3 
Hf=  2 f   0 12 x2 0 
 6 x3 0  6 x1 
 Un punto extremo de una función f(X) define
un máximo o un mínimo de ella
 Teorema 1:Una condición necesaria , para
que Xo sea un punto extremo de f(X) es que
𝛻𝑓 𝑋𝑜 = 0
 Como la condición necesaria también queda
satisfecha con los puntos de inflexión y de
silla los puntos obtenidos con la solución
𝛻𝑓 𝑋𝑜 = 0 se llaman puntos estacionarios.

 Definición: Un punto X*cuya 𝛻𝑓 𝑋 = 0 se
llama punto estacionario de f.
 Teorema 2: (Condición necesaria de segundo
orden)
 Si x* es un mínimo local de f y f tiene
segundas derivadas parciales continuas en
una vecindad de x*, entonces y la
Hessiana es positiva definida
 Teorema 3: (Condición necesaria de segundo
orden)
 Si x* es un máximo local de f y f tiene
segundas derivadas parciales continuas en

una vecindad de x , entonces 𝜵𝒇 𝑿 = 𝟎 y la
*

Hessiana es negativa definida


 Teorema 4(Condición suficiente de segundo orden)
 Suponer que f tiene segundas derivadas parciales
continuas en una vecindad de x* y que la
y la Hessiana es positiva definida, entonces x* es un
mínimo local estricto de f.
 Teorema 5(Condición suficiente de segundo orden)
 Suponer que f tiene segundas derivadas parciales

continuas en una vecindad de x y que la 𝛻𝑓 𝑋 = 0
*

y la Hessiana es negativa definida, entonces x* es un


máximo local estricto de f.
 Teorema 6:
 Cuando f es convexa, cualquier mínimo
local x* es un mínimo global de f. Si además
f es diferenciable, cualquier punto
estacionario x* es un mínimo global de f.
 Teorema 7:
 Cuando f es cóncava, cualquier máximo
local x* es un máximo global de f. Si
además f es diferenciable, cualquier punto
estacionario x* es un máximo global de f
• De acuerdo a la forma de f(x) y las
restricciones:
– Programación Lineal: f(x) y las restricciones son
lineales
– Programación No-lineal: f(x) es no-lineal y las
restricciones pueden ser no-lineales
• De acuerdo a la presencia o no de
restricciones:
– Optimización no restringida: El problema de
optimización no tiene restricciones
– Optimización restringida: El problema de
optimización tiene restricciones
• Según su dimensionalidad:
– Optimización unidimensional: función
objetivo de una variable
– Optimización multidimensional: función
objetivo de varias variables
• Según el número de funciones
objetivo:
– Optimización con un objetivo: Una sola
función objetivo
– Optimización con múltiples objetivos:
varias funciones objetivo
 En este estudio, se tomará como criterio de
clasificación la evaluación de la derivada.
Según ello, se clasifica así:
 Métodos no gradientes (Directos):
1. Búsqueda aleatoria
2. Univariabilidad y búsquedas patrón
 Métodos Gradiente (Indirectos):
1. Gradientes y Matriz de Hessiana
2. Método de pasos ascendentes
3. Método Newton
 Estos métodos varían de procedimientos de
fuerza bruta simple a técnicas elegantes que
intentan explorar a la función.
 Se caracterizan esencialmente por no ser
necesario derivar funciones.
 El método de búsqueda aleatoria evalúa en
forma repetida la función mediante la
selección aleatoria de valores de la variable
independiente.
 Enunciado:
 Utilizar un generador de números aleatorios
para localizar el máximo de:
f ( x, y)  y  x  2 x 2  2 xy  y 2
 En el dominio acotado por x=-2 a 2; y=1 a 3.
 Solución:
x
y
F(x,y)
 Para x:
 El generador de números aleatorios está dado
por: x  xa  ( xb  xa )  r
 Los valores de x estarán determinados por


“r”:
Para y:
 
x  2  4  r ; r  0;1
 El generador de números aleatorios está dado
por: y  ya  ( yb  ya )  r
 Los valores de y estarán determinados por “r”:
y  1  2  r ; r 0;1
 Código en MatLab
 clc,clear
 % gráfica de funciones
 x=-2:0.1:2;
 y=1:0.1:3;
 [x,y]=meshgrid(x,y);
 z=y-x-2*x.^2-2*x.*y-y.^2;
 mesh (x,y,z) %3D
 grid on
 Código para generar la superficie en el plano
xy
 clc,clear
 % gráfica de funciones
 x=-5:0.1:5;
 y=-5:0.1:5;
 [x,y]=meshgrid(x,y);
 z=y-x-2*x.^2-2*x.*y-y.^2;
 contour (x,y,z,50) % 50 líneas de contorno
 grid on
Aquí se
encuentra el
máximo
 Luego de darse el cálculo aleatorio de
valores, se puede verificar, que el máximo
valor para la función es f(x, y)=1.25
i x Y F(x, y)

30 -0.9886 1.4282 1.2462


60 -1.0040 1.4724 1.2490
90 -1.0040 1.4724 1.2490
120 -0.9837 1.4936 1.2496
MÁXIMO
150 -0.9960 1.5079 1.2498
180 -0.9960 1.5079 1.2498
200 -0.9978 1.5039 1.2500
 Ventajas:
 1) Es aplicable en discontinuidades y
funciones no diferenciables.
 2) Siempre encuentra al óptimo global, más
que el local.
 Desventajas:
 1) A medida que crece el número de variables
independientes, aumenta considerablemente
el esfuerzo de implementación.
 2) No se toma en consideración el
comportamiento de la función para reducir la
velocidad en la optimización.
 Características esenciales del Método:
 No necesita el cálculo de derivadas
 Método eficiente que aprovecha la naturaleza
de la función para optimizar con mayor
rapidez.
 Consiste en trabajar con sólo una variable a la
vez, para mejorar la aproximación, mientras
que las otras permanecen constantes.
 Puesto que únicamente cambia una variable,
el problema se reduce a una secuencia de
búsqueda en una dimensión, que se pueden
resolver con una diversidad de métodos de
optimización univariable.
 1) Se comienza en el punto 1 y se mueve a lo
largo del eje x con y constante hacia el
máximo en el punto 2.
 2) Luego se mueve a lo largo del eje y con x,
constante hacia el punto 3.
 3) El proceso se repite generando los puntos
4,5,6.
 Se fundamenta en el concepto de
direcciones-patrón: trayectorias que permiten
llegar directamente al máximo.
 Se basa en búsquedas en una dimensión en la
misma dirección, pero con diferentes puntos
de partida (direcciones conjugadas).
 Se inicia la búsqueda en el punto cero, con las
direcciones iniciales h1 y h2, no necesariamente
direcciones conjugadas.
 Desde cero se mueve a lo largo de la dirección h1
hasta un máximo que se localiza en el punto 1.
 Después se busca el punto 1 a lo largo de la
dirección h2 para encontrar el punto 2
 Luego se forma una nueva dirección de búsqueda
h3 a través de los puntos 0 y 2. Se busca a lo
largo de esa dirección hasta que se localice el
máximo en el punto 3
 Se puede demostrar que si F(x,y) es una
función cuadrática, las búsquedas
secuenciales convergerán en un numero finito
de pasos, sin importar el punto de partida.
 Puesto que una función no lineal a menudo
se aproxima a una función cuadrática, los
métodos basados en direcciones conjugadas
son bastante eficientes y son convergentes en
forma cuadrática a medida que se aproxima
al máximo.
 Los métodos gradiente usan de forma
explícita información de la derivada para
generar algoritmos eficientes que localicen al
óptimo.
 Antes de la descripción de los procedimientos
de manera específica, recurriremos al estudio
de algunos conceptos y operaciones
matemáticas clave.
 Recordando:
El procedimiento de optimización para
funciones multivariables es:
1. Resolver el gradiente de la función igual a
cero para obtener puntos candidatos.
2. Obtener el Hessiano de la función y
evalúalo en cada uno de los puntos
candidatos
• Si el resultado es "positivo definido" entonces
el punto es un mínimo local.
• Si el resultado es un “negativo definido”
entonces el punto es un máximo local.
 La matriz Hessiana está definida como una
matriz de orden “”n” de la siguiente manera:
 Para el caso particular de 2 variables se tiene
como matriz Hessiana y a su determinante:

 2 f 2 f  2
 2
x

xy   f  f  f 
2 2 2

H 2 H  2  
 f 2 f  x y  xy 
2

 2 
 yx y 
DERIVADAS
CRUZADAS O
MIXTAS
 Se obtienen los siguientes casos:
 1) Mínimo Local
 2 f ( a, b)
 Si H  0 y además x 2  0
 2) Máximo Local
 2 f ( a, b)
 Si H  0 y además x 2  0
 3) Punto de Silla  2 f 2 f 
 Si H  0  2 
 x xy 
 4) No se tiene información H 2
 f  f 
2
 Si H  0  2 
 yx y 
Considera el problema:
Minimizar f(x1, x2, x3) = (x1)2 + x1(1 – x2) + (x2)2
– x2x3 + (x3)2 + x3

Primero, encontramos el gradiente con respecto


a xi:
 2x1  1  x2 
 
f    x1  2x2  x3 
  x2  2x3  1 
A continuación, igualamos el gradiente a cero:

 2 x1  1  x2  0
 x  2  x   0
f  0   1 2 3  
 x2  2 x3  1 0

Entonces, tenemos un sistema de 3 ecuaciones y


3 incógnitas. Cuando resolvemos, obtenemos:
 x1   1
x   x2    1
 x3   1
Así tenemos solo un punto candidato para
verificar.

Encuentra el Hessiano:

 2 1 0 

 f   1 2  1
2 
 0  1 2 
Los eigenvalores de esta matriz son:

1  3.414 2  0.586 3  2

Todos los eigenvalores son > 0, entonces el


Hessiano es un positivo definitivo.
 x1   1
Entonces, el punto x   x2    1 es un mínimo
 x3   1
A diferencia de la Programación Lineal, a menos
que conozcamos la forma de la función a ser
minimizada o podamos determinar si es
convexa, no podemos decir si este punto es el
mínimo global o si hay valores de función más
pequeños.
 En el ejemplo previo, cuando igualamos el
gradiente a cero, tuvimos un sistema de 3
ecuaciones lineales y 3 incógnitas.
 Para otros problemas, estas ecuaciones pueden
ser no lineales.
 Entonces, el problema se puede convertir en un
sistema de ecuaciones no lineales, que puede
ser muy difícil de resolver.
 Para evitar esta dificultad, los problemas de
NLP son usualmente resueltos numéricamente.
 Este método está caracterizado por 2 pasos
fundamentales:
 1) determinar la “mejor” dirección para la
búsqueda
 2) establecer el “mejor valor” a lo largo de esa
dirección de búsqueda.
 Casi todos los métodos de optimización
multivariable hacen lo siguiente:
1. Eligen una dirección de búsqueda dk
2. Minimizan a lo largo de esa dirección para
encontrar un nuevo punto:

x k 1
 x a d
k k k

donde k es el número de iteración actual y ak


es un escalar positivo llamado tamaño de
paso.
 El tamaño de paso, ak, es calculado de la
siguiente manera:
 Queremos minimizar la función f(xk+1) = f(xk
+akdk) donde la única variable es ak porque
xk y dk son conocidas.
df x k  a k d k 
 Establecemos 0 y
da k

resolvemos para ak usando un método de


solución de una sola variable como los
mostrados previamente.
 Este método es muy simple – usa el gradiente
(para maximización) o el gradiente negativo
(para minimización) como la dirección de
búsqueda:

  max 
d   f (x ) for 
k k

   min 

  k
Entonces, x
k 1
 x  a f (x k )
k

 
 Puesto que el gradiente es la velocidad de
cambio de la función en ese punto, usar el
gradiente (o gradiente negativo) como la
dirección de búsqueda ayuda a reducir el
número de iteraciones requeridas

x2 f(x) = 5
-f(xk)
f(x) = 20
f(xk)

xk
f(x) = 25
x1
Pasos del Método de Descenso
Más Inclinado
Los pasos del Método de Descenso más
Inclinado son:
1. Elige un punto inicial x0
2. Calcula el gradiente f(xk) donde k es el
número de iteración
Calcula el vector de búsqueda: d  f (x )
k k
3.

4. Calcula la siguiente x: x  x  a d
k 1 k k k

Usa un método de optimización de una


variable para determinar ak.
Pasos del Método de Descenso
Más Inclinado
5. Para determinar la convergencia, usa alguna
tolerancia dada e1 y evalúa:
f (x k 1 )  f (x k )  e 1
para convergencia
O, usa otra tolerancia e2 y evalúa:
f ( x )  e 2
k

para convergencia
 Estos dos criterios pueden ser usados para
cualquiera de los métodos de optimización
multivariable discutidos aquí

Recordatorio: La normal de un vector, ||x|| está


dada por:

x  xT  x  ( x1 ) 2  ( x2 ) 2    ( xn ) 2
 Enunciado:
 Maximizar la siguiente función:
f ( x, y)  2 xy  2 x  x 2  2 y 2
 Usar como valores iniciales, x=-1,y=1.

 Solución:
 A) Resolver de forma analítica
 B) Resolver usando el Método de pasos
ascendentes
 *Aplicamos las derivadas parciales:
f 
 2 y  2  2 x  0
x 
  x  2  y 1
f
 2x  4 y  0 
y 

 *Aplicamos 2das derivadas parciales para
determinar y evaluar el óptimo:
2 f
 2
x 2

2 f  2 2 
 4
y 2 H ( x, y )    H 4
 2 4 
2 f 2 f
 2
xy yx
Punto P(2,1) es Máximo Local
 b) Método de pasos ascendentes: Max f(x)
 1RA iteración: Xo=[-1;1]
 Las derivadas parciales se evalúan en P(-1,1):
𝜕𝑓 f 
 2 y  2  2 x  6
𝜕𝑥 x 2𝑥
2𝑦 + 2 − 6 
 𝛻𝑓 = = =   f  6i  6 j
𝜕𝑓 f
2𝑥 − 4𝑦  2 x  4 y−6
 6 
𝜕𝑦 y f 
(
 x, y )  2 xy  2 x  x 2
 2 y 2

 La función se expresa a lo largo del eje como:


 f f 
f  x0   h, y0   h   f  1  6h,1  6h   180h 2  72h  7
 x y 
 Ubicamos el máximo (h=h*):
g (h*)  0  360h * 72  0  h*  0.2
 Encontramos los puntos P(x, y):
x  1  6  (0.2)  0.2
y  1  6  (0.2)  0.2
 Error1= 𝑓 𝑋1 − 𝑓 𝑋0 = 0.2 − −7 = 7.2
f (x k 1 )  f (x k )  e 1
 Siendo : G=[2y+2-2x ; 2x-4y]’
 con x=-0.2 y=0.2

 G=[2(0.2)+2-2(-0.2) f ( x )  e 2
k

 2(-0.2)-4(0.2)]

2.8
 Error2= = 3.0436
−1.2
Minimizar f(x1, x2, x3) = (x1)2 + x1(1 – x2) + (x2)2
– x2x3 + (x3)2 + x3

Seleccionemos
0

x  0
0 
0
 Serie de Taylor:
1
 𝑓 𝑥 ≈𝑓 𝑥𝑘 + 𝛻𝑇𝑓 𝑥𝑘 ∆𝑥 𝑘 + ∆𝑥 𝑘 𝐻(𝑥 𝐾 )∆𝑥 𝑘 +…
2
 El mínimo de f(x) es obtenido diferenciando la
aproximación cuadrática de f(x) con respecto a cada
uno de los componentes de x e igualando a cero.
 𝛻𝑓 𝑥 ≈ 𝛻𝑓 𝑥 𝑘 + 𝐻 𝑥 𝑘 ∆𝑥 𝑘 = 0
 −𝐻 𝑥 𝑘 ∆𝑥 𝑘 = 𝛻𝑓 𝑥 𝑘
 ∆𝑥 𝑘 = −𝐻 −1 𝑥 𝑘 . 𝛻𝑓 𝑥 𝑘

𝑥 𝑘+1 − 𝑥 𝑘 = −𝐻 −1 𝑥 𝑘 . 𝛻𝑓 𝑥 𝑘
𝑥 𝑘+1 = 𝑥 𝑘 − 𝐻 −1 𝑥 𝑘 . 𝛻𝑓 𝑥 𝑘
Podemos generalizar esta ecuación para dar
una expresión iterativa del Método de
Newton:

x k 1 k

 x   f (x )
2 k

1
 f (x )
k

donde k es el número de iteración


 Paso1: Ingresar Vector Inicial X0 y tolerancia
 Paso2: Hallar vector 𝑋1 = 𝑋0 − 𝐻 𝑋0 −1 . 𝛻𝐹(𝑋0 )
 Paso3: error = 𝐹(𝑋1 ) − 𝐹(𝑋𝑜) ,error= 𝛻𝐹(𝑋1 )
 Paso4: Si error < tolerancia entonces termina el
proceso y se reporta resultados: X1, error
 Caso contrario X0=X1 y regresar al Paso 2
 Recordar que el método de Newton
convergerá a un mínimo local si la Hf es
positiva definida sobre alguna vecindad
alrededor del mínimo y si X1 queda dentro de
esa vecindad.
 Recordar que el método de Newton
convergerá a un máximo local si la Hf es
negativa definida sobre alguna vecindad
alrededor del máximo y si X1 queda dentro
de esa vecindad.
 Si no se selecciona correctamente Xo, el
método puede converger a un mínimo local
en lugar de a un máximo o viceversa o puede
no converger en absoluto.
 En ambos casos el proceso iterativo se da por
terminado y se inicia nuevamente con una
mejor aproximación inicial.
 Enunciado:
 Maximizar la siguiente función:
f ( x, y)  2 xy  2 x  x 2  2 y 2
 Usar como valores iniciales, x=-1,y=1.

 Solución:
𝜕𝑓
𝜕𝑥 2𝑦 + 2 − 2𝑥 6
 𝛻f = 𝜕𝑓 = ⇒ 𝛻𝑓(−1,1) =
2𝑥 − 4𝑦 −6
𝜕𝑦
 2 f 2 f 
 2 
 x xy 
H 2
 f 2 f 
 2 
 yx y 

−1 −1 −0.5 6 2
𝑋1 = − =
1 −0.5 −0.5 −6 1
−1 −1 −0.5 6 2
 𝑋1 = − =
1 −0.5 −0.5 −6 1
−1 −3 2
 𝑋1 = − =
1 0 1
 Error= 𝑋1 − 𝑋0
3
 𝑋1 − 𝑋0 =
0
 Error= 32 + 02 = 3
 Si Error>tolerancia se debe seguir iterando, y
X1 se convierte en el Xo
1. Elige un punto inicial, x0
2. Calcula f(xk) y 2f(xk)
3. Calcula la siguiente x usando la ecuación
x k 1 k

 x   f (x )
2 k

1
 f (x )
k

4. Usa cualquiera de los criterios de


convergencia discutidos anteriormente para
determinar la convergencia. Si no ha
convergido, regresa al paso 2.
 Podemos ver que a diferencia de los dos
métodos previos, el Método de Newton usa
ambos, el gradiente y el Hessiano
 Esto usualmente reduce el número de
iteraciones requerido, pero aumenta el
cálculo necesitado para cada iteración
 De esta manera, para funciones muy
complejas, un método más simple es por lo
general más rápido
Como ejemplo, usaremos el mismo problema
que antes:

Minimizar f(x1, x2, x3) = (x1)2 + x1(1 – x2) + (x2)2


– x2x3 + (x3)2 + x3

f (x)  2 x1  x2  1  x1  2 x2  x3  x2  2 x3  1
El Hessiano es:
 2 1 0 

 f (x)   1 2  1
2 
 0  1 2 

Y necesitaremos el inverso del Hessiano:

 2 1 0 
1 3 1 1 
 4 2 4
2

1 
 f (x)   1 2  1  1
2
1 1 
2
 0  1 2  1 1 3
 4 2 4 
0
Entonces, elige 
x  0
0 
0

Calcula el gradiente para la 1a iteración:


f (x0 )  0  0  1  0  0  0  0  0  1

 f (x0 )  1 0 1
Así, la nueva x es:
1
x  x   f ( x )  f ( x 0 )
1 0 2 0

3 1 1 
0   4 2 4   1
 0    1 1 1   0 
 2 2
0   1 1 3   1
 4 2 4 

 1
 x1   1
 1
Ahora calcula el nuevo gradiente:

f (x )   2  1  1 1  2  1 1  2  1  0 0 0
1

Puesto que el gradiente es cero, el método


ha convergido
 Puesto que usa la 2a derivada, el Método de
Newton modela funciones cuadráticas
exactamente y puede encontrar el punto
óptimo en una iteración.
 Si la función hubiera sido de mayor orden, el
Hessiano no hubiera sido constante y se
hubiera requerido mucho más trabajo para
calcular el Hessiano y tomar el inverso para
cada iteración.

Вам также может понравиться