Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
DOCENTE:
INTEGRANTES:
-
2012-36144
2012-36165
2011-119049
2008 - 32466
Tacna - 2014
Introduccin
La programacin no lineal forma parte de la investigacin de operaciones y tambin, como la
programacin lineal, tiene como finalidad proporcionar los elementos para encontrar los puntos
ptimos para una funcin objetivo. En este planteamiento, tanto la funcin objetivo como las
restricciones son no lineales.
Se presenta un problema de programacin no lineal cuando tanto la funcin objetivo que debe
optimizarse, como las restricciones del problema, o ambas, tienen forma de ecuaciones diferenciales
no lineales, es decir, corresponden a ecuaciones cuyas variables tienen un exponente mayor que 1.
El campo de aplicacin de la programacin no lineal es muy amplio, sin embargo, hasta la fecha los
investigadores de esta rama del conocimiento no han desarrollado un mtodo sistemtico que sea
prctico para su estudio. La programacin no lineal tambin es conocida con el nombre de
programacin cuadrtica, en virtud de que la mayor parte de los problemas que resultan contienen
ecuaciones cuadrticas o de segundo grado.
Muchas veces se presentan casos en que se deben maximizar funciones no lineales que presentan
restricciones lineales; esto es posible resolverlo, siempre y cuando se admita la hiptesis de que la
utilidad marginal no es constante, en este caso, la funcin objetivo deja de ser lineal.
Contenido
Introduccin ............................................................................................................................................ 1
1.
2.
3.
4.
3.1.
3.2.
Mtodo de Newton:.............................................................................................................. 10
5.
6.
7.
6.1.
6.2.
Programacin no convexa............................................................................................................. 22
7.1.
8.
Conclusiones ................................................................................................................................. 24
9.
Bibliografa .................................................................................................................................... 25
1. Programacin no lineal
El papel fundamental de la programacin lineal en IO se refleja con exactitud en el hecho de que es el
tema central de un tercio de este libro. Un supuesto importante de programacin lineal es que todas
sus funciones (objetivo y de restriccin) son lineales. Aunque, en esencia, este supuesto se cumple en
el caso de muchos problemas prcticos, con frecuencia no es as. Por lo tanto, muchas veces es
necesario manejar problemas de programacin no lineal, que es el rea importante en la que se
enfocar la atencin en este captulo.
= (1 , 2 , , ) Para maximizar ()
Sujeto a:
() , = 1,2, , ,
En problemas de mezcla de productos, como el de la Wyndor Glass Co., de la seccin 3.1, la meta es
determinar la mezcla ptima de los niveles de elaboracin de los productos de una empresa, dadas
las limitaciones sobre los recursos que se necesitan para manufacturarlos, con el objeto de maximizar
la ganancia total de la empresa. En algunos casos existe una ganancia unitaria fi ja asociada a cada
producto, con lo cual la funcin objetivo que se obtiene es lineal. Sin embargo, en muchos problemas
de mezcla de productos, ciertos factores introducen no linealidades en la funcin objetivo.
Por ejemplo, un gran fabricante puede encontrar elasticidad de precios, es decir, que la cantidad de
un producto que se puede vender tiene relacin inversa con el precio que se cobra por l.
As, la curva precio-demanda de un producto puede parecerse a la que se muestra en la fi gura 12.1,
donde p(x) es el precio que se necesita para poder vender x unidades. Como sabemos, la ganancia de
la empresa por producir y vender x unidades es el ingreso que generan las ventas xp(x) menos los
costos de elaboracin y distribucin. Por lo tanto, si el costo unitario de producir y distribuir el artculo
est fijo en c (vea la lnea punteada de la fi gura 12.1), la ganancia de la empresa por producir y vender
x unidades est dada por la funcin no lineal
() = ()
como se puede observar en la fi gura 12.2. Si cada uno de los n productos de la empresa tiene una
funcin de ganancia parecida, por ejemplo Pj(xj) por producir y vender xj unidades del producto j
( j 5 1, 2, . . ., n), entonces la funcin objetivo global es
() = = ( ),
2. Tipos de problemas de
programacin no lineal
Los problemas de programacin no lineal se presentan de muchas formas distintas, no se dispone de
un algoritmo que resuelva todos estos tipos especiales de problemas. En su lugar, se han desarrollado
algoritmos para algunas clases (tipos especiales) de problemas de programacin no lineal.
4
a) Optimizacin no restringida
Los problemas de optimizacin no restringida no tienen restricciones, la funcin objetivo tiene
esta forma:
= ()
Para todos los valores que x pueda tomar, ser necesario que para que una solucin especfica
sea ptima cuando () sea una funcin diferenciable.
b) Optimizacin linealmente restringida
Los problemas de optimizacin linealmente restringida se caracterizan por restricciones que
se ajustan por completo a la programacin lineal, de manera que todas las funciones de
restriccin () son lineales, pero la funcin objetivo es no lineal. El problema se simplifica
mucho si slo se tiene que tomar en cuenta una funcin no lineal junto con una regin factible
de programacin lineal. Se han desarrollado varios algoritmos especiales basados en
una extensin del mtodo simplex para analizar la funcin objetivo no lineal. Un caso especial
importante descrito a continuacin es la programacin cuadrtica.
c) Programacin cuadrtica
De nuevo los problemas de programacin cuadrtica tienen restricciones lineales, pero ahora
la funcin objetivo f(x) debe ser cuadrtica. Entonces, la nica diferencia entre stos y un
problema de programacin lineal es que algunos trminos de la funcin objetivo incluyen
el cuadrado de una variable o el producto de dos variables.
d) Programacin convexa
La programacin convexa abarca una amplia clase de problemas, entre ellos como casos especiales, estn todos los tipos anteriores cuando /(x) es cncava. Las suposiciones son:
f(x) es cncava.
Cada una de las g(x) es convexa.
e) Programacin separable
La programacin separable es un caso especial de programacin convexa, en donde la
suposicin adicional es:
Una funcin separable es una funcin en la que cada trmino incluye una sola variable, por lo
que la funcin se puede separar en una suma de funciones de variables individuales. Por ejemplo, si f(x) es una funcin separable, se puede expresar como:
f)
Programacin no convexa
6
En tales casos, las ci y a ty representan las constantes fsicas y las x} son las variables de
diseo. Estas funciones por lo general no son ni cncavas ni convexas, por lo que las tcnicas
de programacin convexa no se pueden aplicar directamente a estos problemas de
programacin geomtrica. Sin embargo, existe un caso importante en el que el problema se
puede transformar en un problema de programacin convexa equivalente. Este caso es
aquel en el que todos los coeficientes ci en cada funcin son estrictamente positivos, es
decir, las funciones son polinomios positivos generalizados (ahora llamados posinomiales),
y la funcin objetivo se tiene que minimizar. El problema equivalente de programacin
convexa con variables de decisin yx, y2,, yn se obtiene entonces al establecer:
Estos problemas de programacin fraccional surgen, por ejemplo, cuando se maximiza la razn de la produccin entre las horas-hombre empleadas (productividad), o la ganancia entre
el capital invertido (tasa de rendimiento), o el valor esperado dividido entre la desviacin
3. Optimizacin no
restringida de una
variable
3.1. Mtodo de la biseccin
El mtodo de la biseccin o corte binario es un mtodo de bsqueda incremental que divide el
intervalo siempre en 2. Si la funcin cambia de signo sobre un intervalo, se evala el valor de la funcin
en el punto medio. La posicin de la raz se determina situndola en el punto medio del sub intervalo
donde exista cambio de signo. El proceso se repite hasta mejorar la aproximacin.
Paso 1
Elegir los valores iniciales Xa y Xb, de tal forma de que la funcin cambie de signo:
f(Xa)f(Xb) < 0
Paso 2
La primera aproximacin a la raz se determina con la frmula del punto medio de esta forma:
Paso 3
Realizar las siguientes evaluaciones para determinar el intervalo de la raz:
a. Si f(Xa)f(Xb) < 0, entonces la solucin o raz est entre Xa y Xpm, y Xb pasa a ser el punto
medio (Xpm).
b. Si f(Xa)f(Xb) > 0, entonces la solucin o raz est fuera del intervalo entre Xa y el punto
medio, y Xa pasa a ser el punto medio (Xpm).
Paso 4
Si f(Xa)f(Xb) = 0 Error = | Xpm Xpm 1 | < Tolerancia
Donde Xpm es el punto medio de la iteracin actual y Xpm 1 es el punto medio de la iteracin
anterior. Al cumplirse la condicin del Paso 4, la raz o solucin es el ltimo punto medio que
se obtuvo. Para el error relativo porcentual se tiene la siguiente frmula:
Ejemplo
La funcin f(x) = xsenx 1 tiene un cero en el intervalo [0,2], porque f(0) = -1 yf(2)=0.818595.
Si se denota con
Entonces c1 = 1. Ahora f(c1) = f(1) = -0.158529, luego la funcin tiene un cero en el intervalo
[c1, b1] = [1,2] se renombra a2=c1 y b2=b1 . El nuevo punto medio es
Y f(c2) = f(1.5) = 0.496242, el cero est en el intervalo [a2, c2] y se renombra como [a3,b3]. En la
tabla de abajo se muestran las primeras nueve iteraciones del mtodo de biseccin
para f(x)= xsenx 1 con a=0 b=2.
Error
n
Extremo
izquierdo an
Extremo
derecho bn
Punto
medio cn
Valor
de
funcin f(cn)
la
-0.158529
1.5
0.496242
0.333333
1.5
1.25
0.186231
0.2
1.25
1.125
0.015051
0.111111
1.125
1.0625
-0.071827
0.0588235
1.0625
1.125
1.09375
-0.028362
0.0285714
1.09375
1.125
1.109375
-0.006643
0.0140845
1.1093750
1.125
1.1171875 0.004208
0.0069930
1.1093750
1.1171875
1.11328125 -0.001216
0.0035087
Relativo
Tambin se puede usar como criterio de parada el error relativo entre dos aproximaciones del
cero de f ,
(1)
Z esta entre x0 y x. Si en la ecuacin (1) se reemplaza x por c y usando el hecho que f(c) = 0, se obtiene:
(2)
Si x0 est suficientemente cerca de c, entonces en el ltimo sumando de la ecuacin (2) el trmino
(c - x0)2ser pequeo, comparado con la suma de los dos primeros trminos. Si se desprecia este
trmino se puede usar la expresin (2) para encontrar una aproximacin al cero de f.
0
El mtodo de Newton comienza con una aproximacin inicial x0 del cero de la funcin a partir de la
cual se define una sucesin {xn} de aproximaciones definida por
, n 0 (3)
Desde un punto de vista geomtrico, lo que hace el mtodo de Newton es construir la recta tangente
a la grfica de f en un punto cercano x0 a c y encontrar el cero de la recta tangente, x1. La
aproximacin x2 es el cero de la recta tangente a la grfica de f en el punto x1 y as sucesivamente.
10
Ejemplo
Para aproximar una solucin de la ecuacin 3x + senx - ex, se puede tomar f(x)=3x+senx-ex.
Observe que f(0) = -1 y f(1) = 1.123189, segn el teorema del valor intermedio existe un cero
de f en el intervalo [0,1].
Si se aplica el mtodo de Newton comenzando con x0 = 0 se tiene:
4. Programacin separable
=
( ) = ( )
=1
=
. . ( )
( = 1,2, , )
=1
Debido a que las variables de decisin aparecen en trminos separados de la funcin objetivo y las
restricciones, los PNL de esta forma se llaman problemas de programacin separables. Es comn
resolver estos problemas aproximando cada ( ) y ( ) mediante una funcin lineal por partes.
La esencia del mtodo de programacin separable es aproximar cada funcin y como si fuera
una funcin lineal en cada intervalo [,1 , , ].
11
Antes de aproximar las funciones fj y gij mediante funciones lineales por partes, se deben determinar
(para j=1,2,, n) nmeros aj y bj tales que se tenga la seguridad de que el valor de xj en la solucin
ptima satisfaga aj <= xj <=bj.
De manera formal, suponga que pjr<= xj <=pj,r+1. Entonces para alguna (0 1), xj =
+ (1 ),+1 . Se aproximan fj(xj) y gij(xj) mediante
() = 1 (1 ) + 2 (2 ) + + ( )
() = 1 (1 ) + 2 (2 ) + + ( )
Se agregan constantes de la forma:
1 + 2 + + = 1
( = 1,2, . . , )
= 1 1 + 2 2 + +
0
Mediante lo anterior se estable que la solucin a un problema no lnea mediante el mtodo de
programacin separable
=
max ( ) = [1 (1 ) + 2 ( (2 ) + + ( )}
=1
=
. .
[1 (1 ) + 2 (2 ) + + ( )] ( = 1,2, . . , )
=1
1 + 2 + + = 1
( = 1,2, . . , )
0 ( = 1,2, . , ; = 1,2, . , )
Suposicin de adyacencia
12
Para un j dado, supngase que los son positivas. Si , es positiva, entonces la otra
positiva debe ser 1 o +1
Si para una j particular, dos son positivas, entonces deben ser adyacentes.
1 = 2 = 0
1 = 2 = 20
( = 1,2, . . , )
Reemplazamos los pij en las funciones obtenidas f1, f2, g11, g12, g21 y g22
Entonces se tiene:
13
1 (0) = 0
2 (0) = 0
1 (5) = 100
2 (5) = 100
1 (10) = 100
2 (10) = 50
11 (0) = 0
11 (5) = 25
11 (10) = 100
12 (0) = 0
12 (5) = 50
12 (10) = 200
21 (0) = 0
21 (5) = 5
22 (0) = 0
22 (5) = 55
1 (15) = 0
1 (20) = 200
1 (15) = 150
21 (10) = 10
22 (10) = 10
11 (15) = 225
2 (20) = 500
11 (20) = 400
21 (20) = 20
22 (15) = 15
22 (20) = 20
5. Programacin
cuadrtica
Como se indic en la seccin 12.3, el problema de programacin cuadrtica difi ere del problema de
programacin lineal nada ms en que la funcin objetivo incluye tambin trminos xj 2 y xixj (i j).
En consecuencia, si se usa la notacin matricial como la que se introdujo al inicio de la seccin 5.2, el
problema es encontrar x para
14
() = 2 ,
Sujeto a: 0, donde un vector y x y b son vectores columna. Q y A son matrices y el
superficie T denota la transpuesta. Las son constantes dadas teles que = (que es la razn
que aparezca el factor de en la funcin objetivo). Al realizar las multiplicaciones entre vectores y
matrices indicadas, la funcin objetivos se expresa en trminos de estas (elementos de c)
y las variables, de la siguiente manera:
1
1
() = = .
2
2
=1
=1 =1
1
2 (
+ ) = , de manera que es el
Primera condicin:
15
() () = 0
=1
Segunda condicin:
1[ ()] = 0
1[ ()] = 0
1[10 (3 + )] = 0
1[0 ()] = 0
2[10 (3 )] = 0
1[0 ()] = 0
Tercera condicin:
0
{1.2}
0
Como nos estregan valores de los , debemos asignarles valores, los cuales deben ser
0 0 entonces para analizar de mejor manera se realizara un diagrama de rbol con
todos las condiciones posibles.
16
(1)
2 + + 3 [1 2] = 0
1[10 [3 + ]] = 0
1[0 ] = 0
(2)
(3)
1 = 0 < 0
2[0 ()] = 0
(4)
2 = 0 0
4 + + 8 [30 30] = 0
2 + + 3 [0 0] = 0
4 + + 8 = 0 (5)
2 + + 3 = 0 (6)
20
9
13
9
602
81
Segunda combinacin
= , = , = , >
4 + + 8 [31 32] = 0
(1)
2 + + 3 [1 2] = 0
(2)
1[0()] = 0
1[10 [3 + ]] = 0
(3)
2[0 ()] = 0
2[10 [3 ]] = 0
(4)
2 + + 3 [0 0] = 0
2 + + 3 = 0 (6)
4(3 2) + = 8
12 + 8 + = 8
9 = 8 12
=
20
9
=
=
13
9
602
81
Tercera combinacin
= , = , > , =
Resultado: =
20
9
, =
13
,
9
602
81
Cuarta combinacin
= , = , > , >
Resultado:
Quinta combinacin
= , > , = , =
Resultado: =
67
14
, =
69
,
14
441
4
pero 2=
107
14
Secta combinacin:
= , > , = , >
Resultado:
73
= 28 , =
69
,
28
841
56
= 15,01
1
4
Cuando estamos maximizando se elige el mayor Z sin embargo como hay dos
combinaciones que nos entregan un Z maximizo, debemos elegir cual es factible en
la combinacin = , > , = , > se observa que 2 no cumple la
condicin.
> , = , = , = Esta combinacin es factible por que cumple
las condiciones z=15,01
19
6. Programacin convexa
Se han desarrollado muchos algoritmos diferentes, cada uno con ventajas y desventajas, y la
investigacin contina activa en esta rea. En trminos generales, la mayor parte de estos algoritmos
cae dentro de alguna de las tres categoras siguientes.
Una categora la constituyen los algoritmos de gradiente, en los que se modifica de alguna manera el
procedimiento de bsqueda del gradiente para evitar que la trayectoria de bsqueda penetre la
frontera de restriccin.
La segunda categora, los algoritmos secuenciales no restringidos, incluye los mtodos de funcin de
finalizacin y de funcin barrera. Estos algoritmos convierten el problema de optimizacin restringida
original en una sucesin de problemas de optimizacin no restringida cuyas soluciones ptimas
convergen a la solucin ptima del problema original.
La tercera categora, los algoritmos de aproximacin secuencial, incluye mtodos de aproximacin
lineal y aproximacin cuadrtica. Estos algoritmos sustituyen la funcin objetivo no lineal por una
sucesin de aproximaciones lineales o cuadrticas. Para problemas de optimizacin linealmente
restringidos, estas aproximaciones permiten la aplicacin repetida de los algoritmos de programacin
lineal o cuadrtica.
6.1. Algoritmo de aproximacin lineal secuencial (Frank-Wolfe)
Dada una solucin de prueba factible , la aproximacin lineal que se usa para la funcin
objetivo () es la expansin de primer orden por series de Taylor, de () alrededor de =
, es decir,
1
()
1
()
() = 41 + 6x2 212 21 x2 22
Maximizar
Sujeta a
1 + 22 2
Sea 0 =
1 1
( , ),
2 2
Primera iteracin:
() = (4 4x1 2x2 , 4 2x1 )
(0 ) = (1, 3)
21
1 1+
,
)
2
2
1 5
7. Programacin no
convexa
Como en el caso de programacin convexa (la funcin () que debe maximizarse es cncava y todas
las restricciones () son convexas) son muy convenientes puesto que aseguran que cualquier
mximo local es tambin un mximo global. (Si, por el contrario, el objetivo es minimizar (),
entonces la programacin convexa supone que () es convexa, lo que asegura que un mnimo local
tambin es un mnimo global.) Desafortunadamente, los problemas de programacin no lineal que
surgen en la prctica muchas veces no cumplen estos supuestos.
22
Existen muchos tipos diferentes de problemas de programacin no convexa. Algunos son mucho ms
difciles de resolver que otros. Por ejemplo, un problema de maximizacin donde la funcin objetivo
est cerca de ser convexa por lo general es mucho ms difcil de resolver que uno donde la funcin
objetivo es casi cncava. De manera similar, al tener una regin factible que no es un conjunto convexo
(porque algunas de las funciones () no son convexas) por lo general representa una complicacin
importante. Al tratar con funciones que no son diferenciables, o quiz ni siquiera continuas, tambin
se presenta una complicacin relevante.
La meta de una gran parte de la investigacin que se realiza en la actualidad es desarrollar
procedimientos eficientes de optimizacin global para encontrar una solucin ptima global para
diferentes tipos de problemas de programacin no convexa, y se han hecho algunos progresos. Como
ejemplo, LINDO Systems (cuyos procedimientos son LINDO, LINGO y Whats Best!) ha incorporado un
optimizador global en el solucionador avanzado que comparten algunos de sus productos de software.
7.1. Uso de Excel Solver para encontrar ptimos locales
En particular se considerarn problemas (de maximizacin) donde la funcin objetivo es casi
cncava ya sea sobre toda la regin factible o dentro de porciones significativas de ella.
Tambin se ignorar la complejidad adicional que implica tener funciones de restriccin ()
no convexas al usar nicamente restricciones lineales. Se comenzar por ilustrar lo que se
puede lograr slo con aplicar algn algoritmo para programacin no convexa a dichos
problemas. Aunque se podra seleccionar alguno de esos algoritmos, se usar el algoritmo de
programacin convexa que emplea el Solver de Excel para problemas de programacin no
lineal.
23
8. Conclusiones
24
9. Bibliografa
25