Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

Unidad VI. Optimizacion

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 24

Métodos Numéricos

Introducción a Optimización
Introducción a la Optimización
› Optimización unidimensional no restringida. Método búsqueda de la
sección dorada

› Optimización unidimensional no restringida. Método de Newton.

› Optimización multidimensional no restringida. Método de Powell

› Optimización restringida. Método simplex


Introducción a la Optimización
Optimización: Técnicas para encontrar el mínimo o el máximo de una función de una sola
variable, f(x). Los valores óptimos tanto locales como globales pueden presentarse en
problemas de optimización.

La optimización de una sola variable tiene como objetivo encontrar el valor de x que da un
extremo, ya sea un máximo o un mínimo de f(x).
Optimización unidimensional no restringida. Método búsqueda de la
sección dorada

Es igual en esencia al método de la bisección para localizar raíces. El método depende de la


definición de un intervalo, especificado por los valores iniciales inferior (xl) y superior (xu), que
encierra una sola raíz.
 Es posible desarrollar un procedimiento similar para localizar el valor óptimo de una
función unidimensional. Por eso se llama unimodal
 En vez de usar dos valores de la función, se necesitaran adicional dos valores dentro del
intervalo superior e inferior para detectar si hay un máximo.
 La clave para hacer mas eficiente este procedimiento
es la adecuada selección de los puntos intermedios.
Optimización unidimensional no restringida. Método búsqueda de la
sección dorada

El método comienza con dos valores iniciales xl y xu, que contiene un extremo local de f(x).
Después se eligen dos puntos interiores x1 y x2 de acuerdo con la razón dorada:

5−1
𝑑= 𝑥𝑢 − 𝑥𝑙
2

𝑥1 = 𝑥𝑙 + 𝑑 , 𝑥2 = 𝑥𝑢 − 𝑑

La función se evalúa en estos dos puntos interiores. Dos casos pueden presentarse:
1. Si f(x1) > f(x2), entonces el dominio de x a la izquierda de x2, de xl a x2, se puede eliminar. En
este caso, x2 será el nuevo xl en la siguiente iteración.
2. Si f(x2) > f(x1), entonces el dominio de x a la derecha de x1, de x1 a xu, se puede eliminar. En
este caso, x será el nuevo x en la siguiente iteración
Optimización unidimensional no restringida. Método búsqueda de la
sección dorada

Para completar el algoritmo, ahora solo se necesita determinar el nuevo x1. Esto se realiza
usando la misma proporcionalidad que antes,

5−1
𝑥1 = 𝑥𝑙 + 𝑥𝑢 − 𝑥𝑙
2

Un procedimiento similar podría usarse en el caso en que el optimo caiga del lado izquierdo del
subintervalo. Cada iteración el intervalo se reduce en un factor de la razón dorada
(aproximadamente 61.8%).
Optimización unidimensional no restringida. Método búsqueda de la
sección dorada
Ejemplo. Use la búsqueda de la sección dorada para encontrar el máximo de la función, en el
intervalo xl = 0 y xu = 4.
𝑥2
𝑓 𝑥 = 2𝑠𝑒𝑛 𝑥 −
10
Ejemplo. Use la búsqueda de la sección dorada para encontrar el máximo de la función, en el
intervalo xl = 0 y xu = 4.
Se cumple f(x2) > f(x1), entonces el dominio de x a la
5−1
𝑑= 4 − 0 = 2.472 derecha de x1, de x1 a xu, se puede eliminar. En este
2
caso, x1 será el nuevo xu en la siguiente iteración
𝑥1 = 𝑥𝑙 + 𝑑 = 0 + 2.472 = 2.472
𝑥2 = 𝑥𝑢 − 𝑑 = 4 − 2.472 = 1.528
5−1
2.42722 𝑑= 2.472 − 0 = 1.528
𝑓 𝑥1 = 2𝑠𝑒𝑛 2.4272 − = 0.63 2
10 𝑥2 = 𝑥𝑢 − 𝑑 = 2.472 − 1.528 = 0.944
1.5282
𝑓 𝑥2 = 2𝑠𝑒𝑛 1.528 − = 1.765
10
Optimización unidimensional no restringida. Método búsqueda de la
sección dorada
Ejemplo. Use la búsqueda de la sección dorada para encontrar el máximo de la función, en el
intervalo xl = 0 y xu = 4.
𝑥2
𝑓 𝑥 = 2𝑠𝑒𝑛 𝑥 −
10
i xl F(xl) xu f(xu) d x2 f(x2) x1 f(x1)
1 0,00000 0,00000 4,00000 -3,11360 2,47214 1,52786 1,76472 2,47214 0,62997
2 0,00000 0,00000 2,47214 0,62997 1,52786 0,94427 1,53098 1,52786 1,76472
3 0,94427 1,53098 2,47214 0,62997 0,94427 1,52786 1,76472 1,88854 1,54322
4 0,94427 1,53098 1,88854 1,54322 0,58359 1,30495 1,75945 1,52786 1,76472
5 1,30495 1,75945 1,88854 1,54322 0,36068 1,52786 1,76472 1,66563 1,71358

El error máximo, se obtiene identificando si x2 o x1 es el valor optimo de la ultima iteración.

𝑥𝑢 − 𝑥𝑙 1.88854 − 1.30495
𝐸𝑎 = 1 − 𝑅 100% 𝐸𝑎 = 1 − 0.61803 100% = 14.58%
𝑥𝑜𝑝𝑡 1.52786

Valor real x = 1.4276 , f(x) = 1.7757.


Optimización unidimensional no restringida. Método de
Newton
Se utiliza un método abierto similar para encontrar un valor optimo de f(x) al definir una nueva
función, g(x)=f’(x). Así, como el mismo valor optimo x* satisface ambas funciones; f’(x*) = g(x*) = 0

Asegurándonos que en la etapa k, f(x0+1) < f(x0), para minimización. Realmente lo que hace el
método de Newton es aproximar la función por una función cuadrática en x0.

𝑓 𝑥 = 𝑓 𝑥0 + 𝑓 ′ 𝑥0 𝑥 − 𝑥0 + 1 2 𝑓 ′′ 𝑥 𝑥 − 𝑥0 ²

Y Dado que f’(x)=0, diferenciando la ecuación anterior:

1
𝑓′ 𝑥0 + 2𝑓′′ 𝑥0 𝑥 − 𝑥0 = 0
2

El método de newton es equivalente a usar el método cuadrático y aplicar las condiciones necesarias
de optimalidad
Optimización unidimensional no restringida. Método de
Newton

Las ventajas del método de Newton son:

1.- El procedimiento es cuadráticamente convergente (p=2), siempre que f’’(x) ≠ 0


2.- Para una función cuadrática el mínimo se obtiene en una única iteración.

Las desventajas son:

1.- Se debe calcular tanto f’(x) como f’’(x).


2.- Si f’’(x)→0 el método converge muy lentamente.
3.- Si existe más de un extremo, el método podría no converger al extremo deseado. Además el
método podría oscilar.
Optimización unidimensional no restringida. Método de
Newton
Ejemplo. Use el método de newton para encontrar el máximo de la función, condición inicial
x0=2,5
ECUACIONES DERIVACION HACIA DELANTE
2
𝑥
𝑓 𝑥 = 2𝑠𝑒𝑛 𝑥 − f ( xi 1 )  f ( xi )
10 f ' ( x) 
2𝑥 𝑥 h
𝑓′ 𝑥 = 2𝑐𝑜𝑠 𝑥 − = 2 cos 𝑥 −  f ( xi  2 )  4 f ( xi 1 )  3 f ( xi )
10 5 f ' ( x) 
2h
1
𝑓 ′′ (𝑥) = −2𝑠𝑒𝑛 𝑥 −
5

𝑓 ′ 𝑥𝑖 2.5
𝑥𝑖+1 = 𝑥𝑖 − ′′ 2 cos 2.5 −
𝑓 𝑥𝑖 𝑥𝑖+1 = 2.5 − 5 = 0.99508
1
−2𝑠𝑒𝑛 2.5 −
5
Optimización unidimensional no restringida. Método de
Newton
Ejemplo. Use el método de newton para encontrar el máximo de la función, condición inicial
x0=2,5
𝑥2 2𝑥 𝑥
𝑓 𝑥 = 2𝑠𝑒𝑛 𝑥 − 𝑓′ 𝑥 = 2𝑐𝑜𝑠 𝑥 − = 2 cos 𝑥 −
10 10 5

′′
1 𝑓 ′ 𝑥𝑖
𝑓 (𝑥) = −2𝑠𝑒𝑛 𝑥 − 𝑥𝑖+1 = 𝑥𝑖 − ′′
5 𝑓 𝑥𝑖

Iter xi f(xi) f'(xi) f''(xi) xi+1 Error


1 2,50000 0,57194 -2,10229 -1,39694 0,99508 (-----)
2 0,99508 1,57859 0,88985 -1,87761 1,46901 0,47393
3 1,46901 1,77385 -0,09058 -2,18965 1,42764 0,04137
4 1,42764 1,77573 -0,00020 -2,17954 1,42755 0,00009
5 1,42755 1,77573 0,00000 -2,17952 1,42755 0,00000
Optimización multidimensional no restringida. Método de Powell
(Davidon Fletcher and Powell)
Gradiente
Análogo al método de bisección pero con diferentes direcciones en las cuales moverse.
Si f(x) es diferenciable entonces se puede formar el vector gradiente: ∇f(x’)

𝜕𝑓 𝜕𝑓
𝛻𝑓 = 𝑖+ j
𝜕𝑥 𝜕𝑦
La notación vectorial ofrece un medio conciso para generalizar el gradiente a n
dimensiones:

Objetivo: ∇f(x*)=0 (al estar en el máximo, ya no tiene que apuntar a otro sitio)

Entonces nuevo valor de x es, x’= x’+t* ∇f(x’)

Así, t*: f(x’+t*∇f(x’)) = maxt≥0 f(x’+t*∇f(x’))

En el caso de minimizar el valor x’= x’- t* ∇f(x’)

Detenerse cuando: |𝜕f/ 𝜕xj| ≤ error


Optimización multidimensional no restringida. Método de Powell
(Davidon Fletcher and Powell)
Ejemplo. F(x1,x2) = 2x1x2 + 2x2 - x12 - 2x22, Se elige vector inicial (x1 , x2) = (0,1)

∇f(x1 , x2)= (2x2 – 2x1; 2x1 + 2 – 4x2), se deriva con respecto a x1 y luego con respecto a x2

∇f(0 ,1)= (2 ; -2), se sustituye y se evalúa

Se forma el nuevo vector

𝑥𝑛𝑢𝑒𝑣𝑜 = 𝑥𝑣𝑖𝑒𝑗𝑜 + 𝑡𝛻𝑓 𝑥𝑣𝑖𝑒𝑗𝑜

𝑥1, , 𝑥2, = 0,1 + 2𝑡, −2𝑡 = 2𝑡, 1 − 2𝑡

Se reemplaza en la función original, F(2t, 1-2t) = 2(2t)(1-2t) + 2(1-2t) – (2t)2 – 2(1-2t)2

F(2t, 1-2t) = 8t – 20t2 , se deriva la función ⇒ F(2t, 1-2t) = 8 – 40t

T = 0.2 𝑥𝑛𝑢𝑒𝑣𝑜 = 2𝑡, 1 − 2𝑡 = 0.4; 0.6

Con las nuevas condiciones evaluamos ∇f(x1 , x2)= (2x2 – 2x1; 2x1 + 2 – 4x2) ⇒ (0.4 ; 0.4)
Optimización multidimensional no restringida. Método de Powell
(Davidon Fletcher and Powell)
Optimización restringida. Método simplex

El método simplex se basa en la suposición de que la solución optima estará en un punto extremo.
Así, el procedimiento debe ser capaz de discriminar si durante la solución del problema se
presentara un punto extremo.
Variables de holgura (s). Como lo indica su nombre, una variable de holgura mide cuanto de un
recurso restringido esta disponible; es decir, cuanta “holgura” esta disponible

Criterio de Optimalidad: Si en una iteración del Método Simplex se dispone de una solución básica
factible y adicionalmente todos los costos reducidos son mayores o iguales que cero, parar ya que la
actual solución básica factible es óptima.
Optimización restringida. Método simplex

Implementación del método simplex. El método simplex evita las ineficiencias, al utilizar una solución
factible básica. Luego se mueve a través de una secuencia de otras soluciones factibles básicas que
mejoran sucesivamente el valor de una función objetivo. En forma eventual, se alcanza el valor
optimo y se termina el método.

Ejemplo. Se desarrolla el siguiente problema del área de la ingeniería química o petrolera. Suponga
que una planta procesadora de gas recibe cada semana una cantidad fija de materia prima. Esta
ultima se procesa para dar dos tipos de gas: calidad regular y Premium. Sin embargo su producción
involucra restricciones de tiempo y de almacenamiento. Por ejemplo no se pueden producir las dos
clases de gas a la vez, y las instalaciones están disponibles solamente 80 horas por semana.
Ademas existe un limite de almacenamiento para cada uno de los productos. Todos estos factores se
enlistan en la tabla. (una tonelada métrica es igual a 1000 kg)
Optimización restringida. Método simplex
Ejemplo. Continuación

Una variable de holgura diferente se desarrolla para cada ecuación restringida, lo cual resulta en lo
que se conoce como la versión aumentada completamente,
Maximizar Z = 150x1 + 175x2

Sujeta a
7X1 + 11X2 + S1 = 77
10X1 + 8X2 + S2 = 80
X1 + + S3 = 9
X2 + S4 = 6
X1, X2, S1, S2, S3, S4 ≥ 0
Optimización restringida. Método simplex
Ejemplo. Continuación

Se requiere seleccionar las variables de entrada y salida.


Columna pivote. Dentro de la tabla simplex es aquella columna con el valor mas negativo en
la fila de la función. En este caso X2 será la variable de entrada puesto que su coeficiente -175,
es mas negativo que el coeficiente de X1 -150
Fila pivote: Es la fila que tenga el menor valor de dividir la constante de restricción (solución)
entre la variable de la columna pivote. Ejemplo 77 / 7 = 11 ; 80 / 8 = 10 ; 6 / 1 = 6 por lo tanto la
fila pivote es S4
Optimización restringida. Método simplex
El elemento pivote es la intersección de la fila con el elemento pivote mas bajo.

Básica X1 X2 S1 S2 S3 S4 CR
S1 7 11 1 0 0 0 77
S2 10 8 0 1 0 0 80
S3 1 0 0 0 1 0 9
X2 0 1 0 0 0 1 6
Z -150 -175 0 0 0 0 0

Fila entrante (X2): Los valores serán los mismos de la fila saliente, pero divididos entre el
elemento pivote, ejemplo 0 / 1 , 0 / 1, 1 / 1 ,…,6 / 1
Optimización restringida. Método simplex
Básica X1 X2 S1 S2 S3 S4 CR
S1 7 11 1 0 0 0 77
S2 10 8 0 1 0 0 80
S3 1 0 0 0 1 0 9
X2 0 1 0 0 0 1 6
Z -150 -175 0 0 0 0 0

Fila nueva = fila vieja – (coeficiente pivote * fila entrante)

Para S1 Para S2

Fila vieja (S1) = 7 11 1 0 0 0 77 Fila vieja (S2) = 10 8 0 1 0 0 80


C. Pivote = 11 11 11 11 11 11 11 C. Pivote = 8 8 8 8 8 8 8
Fila entrante = 0 1 0 0 0 1 6 Fila entrante = 0 1 0 0 0 1 6

Fila nueva = 7 0 1 0 0 -11 11 Fila nueva = 10 0 0 1 0 -8 32


Optimización restringida. Método simplex
Para S2 Para S3

Fila vieja (S2) = 10 0 0 1 0 -8 32 Fila vieja (S3) = 1 0 0 0 1 0 9


C. Pivote = 10 10 10 10 10 10 10 C. Pivote = 1 1 1 1 1 1 1
Fila entrante = 0 1 1/7 0 0 -11/7 11/7 Fila entrante = 0 1 1/7 0 0 -11/7 11/7

Fila nueva = 0 0 -10/7 1 0 47/7 334/7 Fila nueva = 0 0 -1/7 0 1 11/7 52/7

Básica X1 X2 S1 S2 S3 S4 CR
S1 7 0 1 0 0 -11 11
S2 10 0 0 1 0 -8 32
S3 1 0 0 0 1 0 9
X2 0 1 0 0 0 1 6
Z -150 0 0 0 0 175 1050
Columna pivote. X1 -150
Fila pivote: 11/7 = 1.57 , 32/10 = 3.2, 9/1 = 9, Se determina que es S1
Optimización restringida. Método simplex
Básica X1 X2 S1 S2 S3 S4 CR
X1 1 0 1/7 0 0 -11/7 11/7
S2 10 0 0 1 0 -8 32
S3 1 0 0 0 1 0 9
X2 0 1 0 0 0 1 6
Z -150 0 0 0 0 175 1050

Para S2 Para S3

Fila vieja (S2) = 10 0 0 1 0 -8 32 Fila vieja (S3) = 1 0 0 0 1 0 9


C. Pivote = 10 10 10 10 10 10 10 C. Pivote = 1 1 1 1 1 1 1
Fila entrante = 0 1 1/7 0 0 -11/7 11/7 Fila entrante = 0 1 1/7 0 0 -11/7 11/7

Fila nueva = 0 0 -10/7 1 0 47/7 334/7 Fila nueva = 0 0 -1/7 0 1 11/7 52/7
Optimización restringida. Método simplex
Para X2 Para Z

Fila vieja (X2) = 0 1 0 0 0 1 6 Fila vieja (Z) = -150 0 0 0 0 175 1050


C. Pivote = 0 0 0 0 0 0 0 C. Pivote =( -150 )
Fila entrante = 1 0 1/7 0 0 -11/7 11/7 Fila entrante = 1 0 1/7 0 0 -11/7 11/7

Fila nueva = 0 1 0 0 0 1 6 Fila nueva = 0 0 150/7 0 0 -425/7 9000/7

Básica X1 X2 S1 S2 S3 S4 CR
X1 1 0 1/7 0 0 -11/7 11/7
S2 0 0 -10/7 1 0 47/7 334/7
S3 0 0 -1/7 0 1 11/7 52/7
X2 0 1 0 0 0 1 6
Z 0 0 150/7 0 0 -425/7 9000/7

Comprobación ⇒ 1285.7142 = 150(1.5714) + 175(6)


1285.7142 = 1285.71

También podría gustarte