Sei sulla pagina 1di 26

UNIVERSIDAD NACIONAL

JORGE BASADRE GROHMANN


FACULTAD DE INGENIERA
E.A.P. DE INGENIERA EN INFORMTICA Y SISTEMAS
INVESTIGACIN OPERATIVA II
PROGRAMACIN NO LINEAL

DOCENTE:

Ing. Carlos Acero Charaa

INTEGRANTES:
-

Kevin Mike Herrera Vega

2012-36144

Angel Rodriguez Romero

2012-36165

Alfredo Juanillo Mamani

2011-119049

Jose Luis Layme Alvarez

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.

Programacin no lineal ................................................................................................................... 3


1.1.

Aplicaciones de muestra ......................................................................................................... 3

2.

Tipos de problemas de programacin no lineal.............................................................................. 4

3.

Optimizacin no restringida de una variable .................................................................................. 8

4.

3.1.

Mtodo de la biseccin ........................................................................................................... 8

3.2.

Mtodo de Newton:.............................................................................................................. 10

Programacin separable ............................................................................................................... 11


4.1.

Aplicacin practica ................................................................................................................ 13

5.

Programacin cuadrtica .............................................................................................................. 14

6.

Programacin convexa .................................................................................................................. 20

7.

6.1.

Algoritmo de aproximacin lineal secuencial (Frank-Wolfe) ................................................ 20

6.2.

Tcnica secuencial de minimizacin no restringida (SUMT) ................................................. 20

Programacin no convexa............................................................................................................. 22
7.1.

Uso de Excel Solver para encontrar ptimos locales ............................................................ 23

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, , ,

1.1. Aplicaciones de muestra


Los siguientes ejemplos ilustran unos cuantos de los muchos tipos importantes de problemas a los
que se aplica la programacin no lineal.
Problema de mezcla de productos con elasticidad de precios

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:

Todas las funciones f(x) y g(x) son funciones separables

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

La programacin no convexa incluye todos los problemas de programacin no lineal que no


satisfacen las suposiciones de programacin convexa. En este caso, aun cuando se tenga
xito en encontrar un mximo local, no hay garanta de que sea tambin un mximo
global. Por lo tanto, no se tiene un algoritmo que garantice encontrar una solucin ptima
para todos estos problemas; pero s existen algunos algoritmos bastante adecuados para
encontrar mximos locales, en especial cuando las formas de las funciones no lineales no se
desvan demasiado de aquellas que se supusieron para programacin convexa.
g) Programacin geomtrica
Cuando se aplica programacin no lineal a problemas de diseo de ingeniera, muchas veces
la funcin objetivo y las funciones de restriccin toman la forma:

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:

En todo el modelo original. Ahora se puede aplicar un algoritmo de programacin convexa.


h) Programacin fraccional
Suponga que la funcin objetivo se encuentra en la forma de una fraccin, esto es, la razn
o cociente de dos funciones:

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

estndar de alguna medida de desempeo para una cartera de inversiones


(rendimiento/riesgo).

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

(c = 1.114157141 es el cero de f(x) = xsenx - 1)


Para detener el mtodo de biseccin y dar una aproximacin del cero de una funcin se
pueden usar varios criterios (llamados criterios de parada). Uno de los criterios de parada
consiste en examinar si |f(cn)| < , donde es una tolerancia previamente establecida (por
ejemplo = 10-3). Otro criterio que puede utilizarse es examinar s

Tambin se puede usar como criterio de parada el error relativo entre dos aproximaciones del
cero de f ,

En el ejemplo anterior si =0.005, el procedimiento se parara en la octava iteracin con el


criterio |f(cn)|< , ya que: |f(c8)| = |f(1.1171875)| = 0.004208 < = 0.005, pero si se usa el
criterio

El procedimiento se detendra en la novena iteracin porque:

3.2. Mtodo de Newton:


El mtodo de Newton o tambin llamado mtodo de Newton-Raphson es uno de los mtodos ms
tiles
y
mejor
conocido
para
aproximar
el
cero
de
una
funcin.
Suponga que c es un cero de f, es decir, f(c)=0 y que x0 es una aproximacin dec. El polinomio de Taylor
de grado uno para f alrededor de x0 y su correspondiente residuo es:

(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

f(x0) + f'(x0)(c - x0)

Despejando c en la ecuacin anterior, resulta:

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:

Los criterios de parada mencionados en el mtodo de biseccin tambin se pueden usar en el


mtodo de Newton.
A continuacin se escribe un algoritmo para el mtodo de Newton (N = Nmero mximo de
iteraciones, E = Tolerancia o margen de error).

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

Con formato: Sangra: Izquierda: 0 cm

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

Para j = 1,2, . n, a lo sumo dos pueden ser positivas.

Si para una j particular, dos son positivas, entonces deben ser adyacentes.

4.1. Aplicacin practica


Oilco debe determinar cuntos barriles de petrleo extraer durante cada uno de los dos aos
siguientes. Si Oilco extrae 1 millones de barriles durante el ao 2, cada barril se puede vender en $35
2 . El costo de extraer 2 millones de barriles durante el ao 1 en 12 millones de dlares y el costo
de extraer 2 millones de barriles durante el ao 2 es 22 2 millones de dlares. Estn disponibles un
total de 20 millones de barriles, y a lo sumo $250 millones se pueden gastar en extraccin. Formula
un PNL para ayudar a Oilco a maximizar las ganancias (ingresos menos costos) para los siguientes dos
aos.
Solucin:
Defina
1 = millones de barriles de petrleo extrados durante el ao 1
2 = millones de barriles de petrleo extrados durante el ao 2
Entonces el PNL apropiado es:
max = 1 (30 1 ) + 2 (35 2 ) 12 222
= 301 + 352 212 322
. . 12 + 222 250
1 + 2 250
1 + 2 20
1 , 2 0
Este es un problema de programacin separable con 1 (1 ) = 301 212 , 2 (2 ) = 352
322 , 11 (1 ) = 12 , 12 (2 ) = 222 , 21 (1 ) = 1 22 (2 ) = 2
Estableciendo intervalos:

1 = 2 = 0

1 = 2 = 20

11 = 21 = 0, 12 =22 = 5, 13 =23 = 10, 14 =24 =15, 15 =25 =20


1 + 2 + + = 1

( = 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

12 (15) = 450 12 (20) = 800


21 (15) = 15

21 (20) = 20

22 (15) = 15

22 (20) = 20

Se establece la funcin objetivo aproximado:


max = 10012 + 10013 20015 + 10022 + 5023 15024 50025
Sujeto a:
11 + 12 + 13 + 14 + 15 = 1
21 + 22 + 23 + 24 + 25 = 1
2512 + 10013 + 22514 + 40015 + 5022 + 20023 + 45024 + 80025 250
512 + 1013 + 1514 + 2015 + 522 + 1023 + 1524 + 2025 20
0 ( = 1,2; = 1,2,3,4,5)

1 = 512 + 1013 + 1514 + 2015


2 = 522 + 1023 + 1524 + 2025

La solucin ptima del problema de aproximacin es 12 = 22 = 1.


Aplicando = 1 1 + 2 2 + +
Esto da 1 = 1(5) = 5, 2 = 1(5) = 5, = 200.
Y la solucin real es 1 = 7.5 , 2 = 5.83, = 214.58

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

Para cada trmino donde = , = 2 , 2 es el coeficiente de 2


cuando i es diferente de j, entonces

1
2 (

+ ) = , de manera que es el

coeficiente total del producto de .


Para ilustrar esta notacin, considere el siguiente ejemplo de un problema de programacin
cuadrtica.
Una compaa planea gastar $ 10.000 dlares en publicidad, el costo de anunciarse en televisin es
de $3000 dlares por minuto y en radio $1000 dlares por minuto, si la empresa compra X minutos
de publicidad en televisin y Y minutos en radio, entonces su ingreso en miles de dlares est dado
por:
(, ) = 2 2 2 + + 8 + 3
Cmo la empresa puede maximizar su ingreso?
Solucin del problema utilizando el mtodo de KARUSH-KUHN- TUCKER
Las variables de decisin
=
=
Funcin objetivo: max = 2 2 2 + + 8 + 3
Sujeto a 3 + = 10
, 0
Analizando la restriccin
3 + 10

1 Los restricciones deben estar en (<=)


3 10

Primera condicin:

15

() () = 0
=1

Cuando es menos (-) minimizando (+) max


4 + + 8 [1(3) + 2(3)] = 0
2 + + 3 [1(1) + 2(1)] = 0

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

Figura 1: El rbol de las posibles combinaciones

Para poder encontrar ms rpido la mejor combinacin de primero deben elegir


aquellas combinaciones que solo poseen una sola inecuacin o que no poseen una inecuacin
alguna.
Cuando se encuentra alguna combinacin del cual no sea factible (ya sea por contradiccin o
infinitas soluciones) deben buscar la mejor opcin posible ya que pide que una consignacin
sea factible, pero no ptima.
Primera combinacin:
1 = 0, 2 = 0, 1 = 0, 2 = 0
4 + + 8 [31 32] = 0

(1)

2 + + 3 [1 2] = 0
1[10 [3 + ]] = 0

1[0 ] = 0

(2)
(3)

1 = 0 < 0

2[0 ()] = 0

1 = 0 [10 [3 ]] 0 Condiciones que debe tener


2[10 [3 ]] = 0

(4)

Remplazando los valores de (1) (2)


17

2 = 0 0

4 + + 8 [30 30] = 0

2 + + 3 [0 0] = 0

4 + + 8 = 0 (5)

2 + + 3 = 0 (6)

Sustituir de ecuaciones entre (5) (6)


4 + = 8
= 3 2
2 = 3
4 + = 8
4(3 2) + = 8
12 + 8 + = 8
9 = 8 12
=
=
=

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)

Remplazando los valores de (1) (2)


4 + + 8 [30 30] = 0
4 + + 8 = 0 (5)

2 + + 3 [0 0] = 0
2 + + 3 = 0 (6)

Sustituir de ecuaciones entre (5) (6)


4 + = 8
= 3 2
2 = 3
4 + = 8
18

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

Se encontr tambin 2 = no cumplen con la condicin

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,

Donde estas derivadas parciales se evalan en = . Como () y () tienen valores


fijos, se pueden eliminar para obtener una funcin objetivo lineal equivalente,

Despus se aplica el mtodo SIMPLEX (o el procedimiento grfico, si = 2) al problema de


programacin lineal (LP) que resulta [maximizar () sujeta a las restricciones originales
< y > 0 a fin de obtener su solucin ptima . Se observa que la funcin objetivo
lineal necesariamente se incrementa cuando se hace un recorrido sobre el segmento de recta
desde hasta (que se encuentra en la frontera de la regin factible); sin embargo, la
aproximacin lineal puede no ser buena para una x lejana a x9, por lo que quiz la funcin
objetivo no lineal puede no continuar creciendo durante toda la trayectoria desde hasta
. As, en lugar de aceptar como la siguiente solucin de prueba, se elige el punto sobre
este segmento de recta que maximiza la funcin objetivo no lineal.
6.2. Tcnica secuencial de minimizacin no restringida (SUMT)
El algoritmo SUMT (de sequential unconstrained maximization technique, tcnica de
maximizacin secuencial no restringida) se basa en transformar el problema con restricciones
en uno equivalente sin restricciones (o no restringido). El procedimiento se parece al uso del
mtodo de los multiplicadores de Lagrange. Despus, el problema transformado se puede
resolver con el mtodo de la pendiente ms pronunciada.
20

Para aclarar el concepto, considrese la nueva funcin

donde es un parmetro no negativo. El signo de suma tiene en cuenta las restricciones de


no negatividad, que se deben poner en la forma para ser consistentes con las
restricciones originales. Como ( ) es convexa,

1
()

es cncava. Eso quiere decir que

(, ) es cncava en . En consecuencia, (, ) posee un mximo nico. La optimizacin


del problema original restringido equivale a la optimizacin de (, ).
El algoritmo se inicia seleccionando en forma arbitraria un valor inicial no negativo para . Se
selecciona un punto inicial 0 como la primera solucin de prueba. Debe ser un punto interior,
esto es, no debe estar en las fronteras del espacio de solucin. Dado el valor de , se aplica el
mtodo de la pendiente ms pronunciada para determinar la solucin ptima (el mximo) de
(, ).
El nuevo punto de solucin siempre ser un punto interior, porque si ese punto est cerca de
las fronteras, al menos una de las funciones

1
()

adquirir un valor negativo muy

grande. Como la funcin objetivo es maximizar (, ), esos puntos de solucin se excluyen


en forma automtica. El resultado principal es que los puntos de solucin sucesivos siempre
sern puntos interiores. En consecuencia, el problema siempre se puede manejar como un
caso sin restricciones.
Una vez obtenida la solucin ptima correspondiente a determinado valor de , se genera un
nuevo valor de y se repite el proceso de optimizacin (con el mtodo de la pendiente ms
pronunciada). Si es el valor actual de , se debe seleccionar el siguiente valor " de modo
que 0 < " < .
El algoritmo SUMT termina cuando, para dos valores sucesivos de , los valores ptimos
correspondientes de , obtenidos maximizando (, ), sean aproximadamente iguales. En
este punto los intentos posteriores producirn poca mejora.

EJEMPLO 1. Algoritmo de Frank Wolf

() = 41 + 6x2 212 21 x2 22

Maximizar
Sujeta a

1 + 22 2
Sea 0 =

1 1
( , ),
2 2

que es factible, el punto inicial, Entonces

Primera iteracin:
() = (4 4x1 2x2 , 4 2x1 )
(0 ) = (1, 3)

21

El programa lineal asociado maximiza a 1 = 1 + 32 , sujeta a las restricciones del


problema original. Esto da la solucin ptima (0, 1). Los valores de 1 en 0 y son
iguales a 2 y 3, respectivamente. En consecuencia, se determina el siguiente punto de
prueba:
1 1
1 1
1 1+
1 = ( , ) + [(0, 1) ( , )] = (
,
)
2 2
2 2
2
2
La maximizacin de
() = (

1 1+
,
)
2
2

da como resultado 1 = 1. Entonces 1 = (0, 1) con (1 ) = 4.


Segunda iteracin:
(1 ) = (2, 2)
La funcin objetivo del nuevo problema de programacin lineal es 2 = 21 + 22 . La
solucin ptima de este problema es (2, 0). Como los valores de 2 en y son 2 y 4,
se debe determinar un nuevo punto tentativo. As,
2 = (0, 1) + [(2, 0) (0, 1)] = (2, 1 )
La maximizacin de
() = (2, 1 )
1

1 5

como resultado 2 = 6. Entonces 2 = (3 , 6) con ( 2 ) 4.16


Tercera iteracin:
(2 ) = (1, 2)
La funcin objetivo correspondiente es 3 = 1 + 22 . La solucin ptima de este
problema da como resultado las soluciones alternativas = (0, 1) y = (2, 0). El valor
de 3 para ambos puntos es igual a su valor en . En consecuencia no es posible mayor
1 5

mejora. La solucin ptima aproximada es = ( , ) con ( 2 ) 4.16


3 6

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

La programacin no lineal es el proceso de resolucin de un sistema de igualdades y


desigualdades sujetas a un conjunto de restricciones sobre un conjunto de variables reales
desconocidas, con una funcin objetivo a maximizar, cuando alguna de las restricciones o la
funcin objetivo no son lineales.
No existe un algoritmo estndar nico que se pueda usar siempre para resolver problemas de
programacin convexa por lo que cada problema debe analizarse por completo antes de ser
realizado
La meta de una gran parte de la investigacin que se realiza en la actualidad es desarrollar
procedimientos efi clientes de optimizacin global para encontrar una solucin ptima global
para diferentes tipos de problemas de programacin no convexa
La programacin cuadrtica El mtodo propuesto en este trabajo es un paso hacia una
propuesta algortmica para el caso de programacin no lineal y sera interesante estudiar, en
un trabajo futuro, u factibilidad.

24

9. Bibliografa

Cataln, J. R. (2010). Compiladores : teora e implementacin. RC Libros, 2010.


Lieberman, F. S. (s.f.). Introduccin a la investigacin de operaciones, 9na edicin. Mc Graw Hill.
Louden, K. C. (2004). Construccin de compiladores: principios y prctica. Thomson, 2004.
Osvaldo Cair, O. C. (1993). Estructura de datos. Madrid: McGraw-Hill.

25

Potrebbero piacerti anche