Академический Документы
Профессиональный Документы
Культура Документы
ecnicas Cl
asicas de Optimizaci
on.
Parte I: Programacion Lineal y No Lineal
Mara Merino Maestre
Indice general
Pr
ologo
Programaci
on Lineal y No Lineal
1 Programaci
on Lineal
1.1 Introduccion a la Investigacion Operativa . .
1.1.1 Definiciones . . . . . . . . . . . . . .
1.1.2 Clasificacion . . . . . . . . . . . . . .
1.1.3 Metodologa . . . . . . . . . . . . . .
1.2 Introduccion a la Programacion Lineal . . .
1.2.1 Formulacion matematica . . . . . . .
1.2.2 Transformaciones . . . . . . . . . . .
1.2.3 Clasificacion . . . . . . . . . . . . . .
1.2.4 Resolucion grafica . . . . . . . . . . .
1.3 El metodo Smplex . . . . . . . . . . . . . .
1.3.1 Resolucion algebraica . . . . . . . . .
1.3.2 Resolucion tabular . . . . . . . . . .
1.3.3 Casos especiales . . . . . . . . . . . .
1.3.4 Identificacion de SBF iniciales . . . .
1.3.5 Teora del Metodo Smplex . . . . . .
1.4 Teora de dualidad y analisis de sensibilidad
1.4.1 Propiedades de la Teora de Dualidad
1.4.2 Interpretacion economica . . . . . . .
1.4.3 Analisis de sensibilidad . . . . . . . .
7
7
7
8
10
11
12
13
16
16
20
21
27
30
34
36
48
49
51
53
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
2 Programaci
on No Lineal
57
2.1 Introduccion a la Programacion No Lineal . . . . . . . . . . . . 57
2.2 Tipos de problemas de PNL . . . . . . . . . . . . . . . . . . . . 62
i
INDICE GENERAL
2.3 Optimizacion no restringida . . . . . . . . .
2.4 Optimizacion restringida: condiciones KKT
2.5 Programacion cuadratica . . . . . . . . . . .
2.5.1 Formulacion cuadratica . . . . . . . .
2.5.2 Condiciones KKT para programacion
2.5.3 Metodo Smplex Modificado . . . . .
1
. . . . . .
. . . . . .
. . . . . .
. . . . . .
cuadratica
. . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
67
72
73
73
75
77
INDICE GENERAL
Pr
ologo
La asignatura T
ecnicas Cl
asicas de Optimizaci
on forma parte del Master
en Modelizacion e Investigacion Matematica, Estadstica y Computacion, vease
http://riemann.unizar.es/matg5/.
Esta asignatura pretende introducir al alumnado en metodologas modernas
que contribuyen a resolver problemas de decision donde hay que optimizar el
uso de recursos limitados en contextos aplicados (industriales, economicos, ...).
La asignatura esta dividida en tres partes:
Parte I: Programacion Continua (Lineal y No Lineal).
Parte II: Programacion Entera.
Parte III: Programacion Estocastica.
Se recomienda consultar la siguiente bibliografa y enlaces: para Optimizacion los libros [1, 2, 3, 4, 5], para Optimizacion No Lineal [6, 7], para
Optimizacion Estocastica [8, 9, 10].
Sobre software de Optimizacion pueden consultarse las siguientes referencias:
COIN-OR: el codigo abierto de la Comunidad de Investigacion Operativa
COmputational INfrastructure for Operations Research se puede consultar en [11] y una gua en [12].
CPLEX: el optimizador de IBM ILOG CPLEX se puede consultar en [13],
as como una gua en [14].
XPRESS: la edicion de estudiante del sofware FICO Xpress Optimization
suite esta disponible en la web [15].
GUSEK: el GLPK Under Scite Extended Kit esta disponible en la pagina
[16].
INDICE GENERAL
Parte I
Programaci
on Lineal y No
Lineal
Captulo 1
Programaci
on Lineal
1.1
1.1.1
Introducci
on a la Investigaci
on Operativa
Definiciones
LINEAL
CAPITULO 1. PROGRAMACION
Rama interdisciplinaria de la Matematica Aplicada que emplea la modelizacion matematica, estadstica y algoritmos de optimizacion para alcanzar soluciones optimas (o cuasi-optimas) a complejos sistemas reales,
con la finalidad de mejorar su funcionamiento. Ayuda en el proceso de
toma de decisiones utilizando metodos cientficos (Wikipedia [17], 2013).
Esta disciplina, tambien conocida como Ciencia de la Gestion, Teora de la
Toma de Decisiones, Programacion Matematica, Optimizacion, Ciencia para
la Mejora, cuenta con aplicaciones en m
ultiples campos tan amplios como el
industrial, economico y cientfico (vease [18]). En cuanto a las aplicaciones en
beneficio de la Humanidad y de la Sociedad, pueden consultarse libros como
por ejemplo, [19] y [20] de Russell Lincoln Ackoff (1919-2009), de la Universidad
de Penssylvania y Charles West Churchman (1913-2004), de la Universidad de
California, Berkeley.
Las Sociedades de Investigacion Operativa estan organizadas bajo la federacion mundial fundada en 1959 IFORS (International Federation of Operational Research Societies, [21]) a la que pertenecen unas 30000 personas y
cuya mision es la promocion de la Investigacion Operativa como disciplina
academica y como profesion. La Federacion agrupa unos 45 pases en cuatro regiones geograficas: Asia Pacfico, Europa, America del Norte y America
Latina. Cada region a su vez cuenta con su propia asociacion que agrupa
las sociedades creadas en su entorno, las primeras constitudas a mediados del
siglo XX: en Europa se encuentra EURO (Association of European Operational
Research Societies, 1976) a la que pertenece la espa
nola SEIO (Sociedad de
Estadstica e Investigacion Operativa, 1962); America del Norte cuenta con
la Asociacion NORAM (Association of North American Operations Research
Societies, 1987) y el Instituto INFORMS (Institute for Operations Research
and Management Sciencies, 1995); a Asia Pacfico pertenece APORS (Association of Asian-Pacific Operational Research Societies, 1985); y por u
ltimo en
Latinoamerica se establece ALIO (Asociacion Latino-Iberoamericana de Investigacion Operativa, 1982).
1.1.2
Clasificaci
on
A LA INVESTIGACION
OPERATIVA
1.1. INTRODUCCION
LINEAL
CAPITULO 1. PROGRAMACION
10
1.1.3
Metodologa
A LA PROGRAMACION
LINEAL
1.2. INTRODUCCION
11
1.2
Introducci
on a la Programaci
on Lineal
12
LINEAL
CAPITULO 1. PROGRAMACION
amente u
nica) y las elecciones se comparan de acuerdo a una cierta funcion,
llamada funci
on objetivo.
Entre los objetivos de esta ciencia interdisciplinaria, estan los clasicos de
maximizacion de beneficios o rendimiento y minimizacion de perdida, costes o
riesgo, a los que se suman -entre otros- los objetivos de eficiencia (asignacion de
recursos a actividades), la optimizacion espacio-temporal (por ejemplo, mnima
espera en una cola o mnima distancia a recorrer en un viaje) y la mejora en
terminos de equidad (como la minimizacion de diferencias entre individuos en
cuanto al reparto de trabajo o la distribucion de vacaciones).
El reconocimiento de la importancia de este tipo de problemas coincidio
con el desarrollo en 1947 de un metodo eficiente, el metodo smplex por George
Bernard Dantzig (1914-2005) y un medio, el ordenador, para aplicarlo. Una
gran parte de los fundamentos de la Programacion Lineal se descubrio entre
1947 y 1949, un periodo sorprendentemente corto de tiempo de intensa labor de investigacion y desarrollo. En la actualidad, el algoritmo smplex es
una herramienta estandar que ha ahorrado enormes cantidades de dinero a la
mayora de las empresas en los pases industrializados y su extension a otros
sectores de la sociedad avanza rapidamente. A comienzos del milenio, este algoritmo aparece en la revista Computing in Science & Engineering [22] elegido
por John F. Nash como uno de los diez algoritmos de mayor influencia en el
desarrollo y la practica de la ciencia y la ingeniera en el siglo XX.
1.2.1
Formulaci
on matem
atica
Una de las areas mas importantes y activas de la Optimizacion es la Programacion Lineal. Los problemas que trata se basan en la optimizacion (minimizacion o maximizacion) de una funcion lineal conocida como funcion objetivo, sujeta a una serie de restricciones lineales de igualdad o desigualdad.
Matricialmente, un problema de PL en notacion estandar (con igualdades)
se puede expresar como:
max
z = cx
s.a
Ax = b
(1.1)
x0
donde cx es la funcion objetivo a maximizar (o minimizar), x IR+n representa
el vector de variables a determinar, c IRn es el vector de costos asociado a
las variables, A Mmn es la matriz de coeficientes y b IR+m el vector
de terminos independientes (o rhs) relativos a las restricciones. Es decir, el
problema (1.1) es equivalente al problema (1.2) en notacion extendida:
A LA PROGRAMACION
LINEAL
1.2. INTRODUCCION
13
maximizar z = c1 x1 + c2 x2 + . . . + cn xn
sujeto a
(1.2)
x1 , x2 , . . . , xn 0
Definici
on 1.1. Se llama regi
on factible del problema al conjunto de posibles
valores que satisfacen todas las restricciones, R = {x IRn : Ax = b, x 0}.
Una soluci
on del problema (1.1) se dice soluci
on factible si satisface todas
las restricciones del mismo, es decir, x R. Una solucion factible se dice
soluci
on
optima si proporciona el valor mas favorable a la funcion objetivo,
es decir, x R es optima si x R, cx cx.
La funcion objetivo puede representar un problema de maximizacion o
minimizacion. En un problema concreto, las restricciones pueden venir dadas
en terminos de igualdad o desigualdad ( o ) y las variables pueden ser no
negativas (x 0), no restringidas (x IR) o acotadas (l x u). Sin
embargo, dichas variantes pueden transformarse en el problema dado en forma
estandar en (1.1) a
nadiendo variables adicionales. A lo largo de este curso,
consideraremos problema en notacion estandar (con desigualdades) a:
max
s.a
z = cx
Ax b
x0
y su version equivalente en notacion extendida:
(1.3)
maximizar z = c1 x1 + c2 x2 + . . . + cn xn
sujeto a
1.2.2
Transformaciones
(1.4)
14
LINEAL
CAPITULO 1. PROGRAMACION
1. Transformaciones sobre la funcion objetivo:
Transformar un problema de mnimo en un problema de maximo:
max(z) = min z
2. Transformaciones sobre las restricciones:
Transformar una restriccion con rhs negativo:
si existe i tal que bi < 0, entonces basta multiplicar por (1) la
restriccion.
Transformar desigualdades en igualdades:
si aparece una restriccion del tipo ai1 x1 + ai2 x2 + . . . + ain xn bi ,
entonces definimos una nueva variable de holgura xn+1 0 con costo
nulo, cn+1 = 0, de manera que reemplazamos la desigualdad por la
siguiente igualdad de forma equivalente:
ai1 x1 + ai2 x2 + . . . + ain xn + xn+1 = bi .
Transformar desigualdades en igualdades:
si aparece una restriccion del tipo ai1 x1 + ai2 x2 + . . . + ain xn bi ,
entonces definimos una nueva variable de superavit xn+1 0 con
costo nulo, cn+1 = 0, de manera que reemplazamos la desigualdad
por la siguiente igualdad de forma equivalente:
ai1 x1 + ai2 x2 + . . . + ain xn xn+1 = bi .
3. Transformaciones sobre las variables:
Transformar una variable no positiva en una variable no negativa:
si existe j tal que xj 0, entonces la reemplazamos por una nueva
variable no negativa
xj = xj ,
xj 0.
xj = x+
j xj , xj 0, xj 0.
A LA PROGRAMACION
LINEAL
1.2. INTRODUCCION
15
xj 0.
xj 0.
Ejemplo 1.1. Transformar a notacion estandar (con desigualdades) el siguiente problema de PL:
min
s.a. :
x1
4x1
z = 3x1 + 5x2
+x2 4
+8x2 = 10
x1 IR, x2 0
(1.5)
x+
1
4x+
1
4x+
1
z = 3x+
1 + 3x1 5x2
x1
x2 4
4x
+8x
10
2
1
+4x1 8x2 10
x+
1 , x1 , x2 0
(1.6)
(1.7)
LINEAL
CAPITULO 1. PROGRAMACION
16
max
s.a. :
1.2.3
z = z1 z2
+u1 y1
+2u1
y2
4x1 4x2
+z1
= 15
4x1 +8x2
+z2 = 30
x1 +2x2
+v1
= 30
x1 , x2 , u1 , y1 , y2, v1 z1 , z2 0
(1.8)
Clasificaci
on
1.2.4
Resoluci
on gr
afica
A LA PROGRAMACION
LINEAL
1.2. INTRODUCCION
17
18
LINEAL
CAPITULO 1. PROGRAMACION
Planta
1
2
3
Ganancia
Consideraremos x1 y x2 el n
umero de lotes del producto 1 y 2, respectivamente, producidas por semana y z la ganancia semanal total (en miles de
euros) generada por estos dos productos. Por tanto, x1 y x2 son las variables
de decision del modelo y el objetivo es elegir los valores que maximicen
z = 3x1 + 5x2
sujeto a las restricciones impuestas sobre dichos valores limitadas por la disponibilidad de capacidad de las plantas. Seg
un la Tabla 1.1 cada lote de producto 1
producida por semana emplea 1 hora de produccion en la Planta 1, donde solo
se dispone de 4 horas semanales. Esta restriccion se expresa matematicamente
por la desigualdad x1 4. Analogamente la Planta 2 impone la restriccion
2x2 12. El n
umero de horas de produccion usadas a la semana en la Planta 3
consumido por elegir x1 y x2 como las nuevas tasas de produccion de los productos sera 3x1 + 2x2 . Por tanto, la restriccion para la Planta 3 es 3x1 + 2x2 18.
Finalmente, como las tasas de produccion no pueden ser negativas, es necesario
a
nadir: x1 0 y x2 0. En resumen, en el lenguaje matematico de la PL, el
problema consiste en elegir los valores x1 y x2 solucion de:
A LA PROGRAMACION
LINEAL
1.2. INTRODUCCION
19
3x1 + 2x2 = 18
x1 = 4
z = 36 = 3x1 + 5x2
2x2 = 12
z = 20 = 3x1 + 5x2
z = 10 = 3x1 + 5x2
0
0
LINEAL
CAPITULO 1. PROGRAMACION
20
1.3
El m
etodo Smplex
2. Hay un n
umero finito de soluciones factibles de punto-extremo.
1.3. EL METODO
SIMPLEX
21
Paso inicial
B
usqueda de solucion SFPE inicial
Paso iterativo
Mover a solucion SFPE adyacente mejor
Test de optimalidad
Ninguna SFPE adyacente
es mejor?
no
Parar
1.3.1
Resoluci
on algebraica
Vamos a resolver el Ejercicio 1.3 utilizando el metodo smplex, para ello necesitamos transformar el modelo a forma estandar con igualdades, por lo que
convertimos las restricciones de desigualdad en igualdad a
nadiendo 3 variables
de holgura. As, el problema 1.9 en forma estandar con igualdades es:
sujeto a
(1.10)
Esta formulacion es mucho mas conveniente para la manipulacion algebraica y la identificacion de soluciones factibles punto extremo.
Definici
on 1.2. Una soluci
on aumentada es una solucion de un problema originariamente con restricciones de desigualdad transformado en prob-
22
LINEAL
CAPITULO 1. PROGRAMACION
lema de igualdades mediante la incorporacion de las variables de holgura necesarias. Una soluci
on b
asica es una solucion punto extremo aumentada. Una
soluci
on b
asica factible es una solucion factible punto extremo aumentada.
En el ejemplo, la solucion (3, 2) tiene su correspondiente solucion aumentada (3, 2, 1, 8, 5). La solucion (4, 6) es solucion infactible punto extremo y
(4, 6, 0, 0, 6) es solucion basica mientras que (0, 6) es solucion factible puntoextremo y por tanto, (0, 6, 4, 0, 6) es solucion basica factible.
Estas definiciones son esenciales en el vocabulario de la PL, por lo que
aclararemos sus propiedades algebraicas. Observese que en la forma estandar
(1.10) del ejemplo, el sistema tiene 5 variables y 3 restricciones, se dice entonces
que tiene 2 grados de libertad, ya que dos variables pueden fijarse a un valor
arbitrario, y resolver las 3 ecuaciones en funcion de las 3 variables restantes. El
smplex utiliza el 0 para este valor arbitrario. Las variables que se fijan a 0 se
llaman variable no basicas y el resto variables basicas. En terminos generales, el
n
umero de variables no basicas corresponde al n
umero de grados de libertad del
sistema y el n
umero de variables basicas al de ecuaciones. La solucion completa
se llama solucion basica y si todas las variables basicas son no negativas, la
solucion se llama solucion basica factible. Para cualquier solucion basica, la
correspondiente solucion punto extremo se obtiene eliminando las variables de
holgura. Dos soluciones factibles basicas son adyacentes si todas menos una de
las variables no basicas son las mismas y lo mismo para las variables basicas.
Por lo que moverse de una solucion basica factible a otra adyacente, supone
cambiar una variable basica por una no basica y viceversa.
El algoritmo necesita manipular la funcion objetivo por lo que conviene
reescribir de nuevo el problema (1.10) como:
=0
=4
= 12
= 18
(1.11)
As, la funcion objetivo sera tratada como la ecuacion (0) y z como una
variable basica adicional permanente. Denotaremos por E(i) la ecuacion iesima del problema. Hay varias cuestiones a las que ir respondiendo:
1.3. EL METODO
SIMPLEX
23
LINEAL
CAPITULO 1. PROGRAMACION
24
Tabla 1.2. Como x4 impone la menor cota superior para x2 , la variable que
abandona la base es x4 , que se fija a 0 y as x2 = 6 entra en la nueva base.
Tabla 1.2: Determinacion de la variable a abandonar la base en la iteracion 1
xB
x3
x4
x5
Ecuacion
(1) x3 = 4 x1
(2) x4 = 12 2x2
(3) x5 = 18 3x1 2x2
(0) z 3x1
(1)
x1
(2)
(3)
+x3
x2
3x1
= 30
=4
+ 21 x4
=6
x4 +x5 = 6
(1.12)
1.3. EL METODO
SIMPLEX
25
x1
+x3
1
x
2 4
(2)
(3)
= 30
3x1
x4
=4
+x2
=6
(1.13)
+x5 = 6
As, la nueva SBF es (x1 , x2 , x3 , x4 , x5 ) = (0, 6, 4, 0, 6) que obtiene un beneficio de z = 30. Este metodo algebraico es similar al Metodo de eliminacion
Gauss Jordan.
Test de optimalidad
Para determinar si la solucion es optima, reconvertimos la ecuacion (0),
en funci
on objetivo: z = 30 + 3x1 25 x4 . Como el coeficiente de x1 es positivo,
podriamos movernos a una SBF adyacente mejor que la actual, por lo que la
soluci
on obtenida no es optima. En general, las SBF es optima si y solo si
todas las variables no basicas tienen coeficientes no positivos ( 0) en la forma
actual de la funci
on objetivo. Es por ello que se utiliza la funcion objetivo en
la forma de la ecuacion (0) ya que contiene todas las variables no basicas y
ninguna basica.
Paso iterativo 2: qu
e variable entra en y cu
al abandona la base?
Mirando a los coeficientes de la funcion objetivo, el mayor (y u
nico) coeficiente positivo implica que x1 es la variable a entrar en la nueva base.
Analizando la menor cota superior para x1 , ver Tabla 1.3, la variable a
entrar en la base es x5 .
Tabla 1.3: Determinacion de la variable a abandonar la base en la iteracion 2
xB
x3
x2
x5
Ecuacion
(1) x3 = 4 x1
(2) x2 = 6 12 x4
(3) x5 = 6 3x1 + x4
LINEAL
CAPITULO 1. PROGRAMACION
26
(3)
E(2) := E(2) + (0) E
(0) z
(1)
x3
(2)
(3)
x2
x1
3
x
2 4
+ 31 x4
13 x5 = 2
+ 21 x4
=6
+x5 = 36
(1.14)
13 x4 + 13 x5 = 2
As, la soluci
on factibe basica es (x1 , x2 , x3 , x4 , x5 ) = (2, 6, 2, 0, 0), con un
beneficio de z = 36.
Test de optimalidad
Como la funci
on objetivo z = 36 23 x4 x5 tiene todos los coeficientes de
las variables no basica negativos, la solucion es optima.
1.3. EL METODO
SIMPLEX
27
1.3.2
Resoluci
on tabular
LINEAL
CAPITULO 1. PROGRAMACION
28
z x1 x2 x3 x4 x5 rhs
1 3 5 0 0 0
0
0
1
0 1 0 0
4
0
0
2 0 1 0 12
0
3
2 0 0 1 18
z x1 x2 x3 x4 x5 rhs
1 3 5 0 0 0
0
0
1
0 1 0 0
4
0
0
2 0 1 0 12
0
3
2 0 0 1 18
1.3. EL METODO
SIMPLEX
29
Para el resto de las filas, la nueva fila se calcula como la antigua menos el
coeficiente de la columna pivote por la nueva fila pivote:
(2)
E(0) := E(0) (5) E
z x1 x2 x3 x4 x5 rhs
1 3 0 0 5/2 0 30
0
1 0 1
0 0
4
0
0 1 0 1/2 0
6
0
3 0 0 1 1
6
Test de optimalidad:
Como hay un coeficiente negativo, la solucion actual no es optima.
Paso iterativo 2:
max{| 3|} = 3, entonces la variable x1 entra en la base (columna pivote).
Y por el test de mnimo cociente: min{ 41 , 36 } = 2, entonces la variable x5 sale
de la base (fila pivote). As, el elemento pivote es 3, ver Tabla 1.7.
Tabla 1.7: Tabla smplex iteracion 1 con columna, fila y elemento pivote
xB Ec. num.
z
(0)
x3
(1)
x2
(2)
x5
(3)
z x1 x2 x3 x4 x5 rhs
1 3 0 0 5/2 0 30
0
1 0 1
0 0
4
0
0 1 0 1/2 0
6
0
3 0 0 1 1
6
E(3) := 3(3)
E(0) := E(0) (3) E(3)
E := E (0) E
(3)
(3)
(3)
LINEAL
CAPITULO 1. PROGRAMACION
30
z x1 x2 x3
x4
x5 rhs
1 0 0 0
3/2
1 36
0 0 0 1
1/3 1/3
2
0 0 1 0
1/2
0
6
0 1 0 0 1/3
1/3
2
Test de optimalidad
Como ning
un coeficiente de la ecuacion (0) es negativo, el algoritmo termina, la soluci
on actual es optima, x1 = 2 y x2 = 6.
Observese que los valores 0, 32 y 1 son los precios sombra de los tres
recursos, es decir, el valor marginal o tasa a la que z podra aumentar si se
aumenta la capacidad disponible b1 , b2 y b3 , respectivamente. Por ejemplo, si
la capacidad disponible para la Planta 2 aumentara una unidad, de b2 = 12
a b2 = 13, entonces la solucion pasara de ser (2, 6) con valor z = 36 a ser
( 35 , 13
) con valor z = 37 21 . Efectivamente, z aumentara ligeramente en 23 .
2
1.3.3
Casos especiales
Veamos algunos casos ambiguos, que no han sido abordados hasta el momento.
(a) Empates para la variable b
asica a entrar
En la primera fase del paso iterativo, se elige variable candidata a entrar en
la base entre las variables no basicas con coeficiente negativo en la ecuacion (0)
cuyo valor absoluto sea mayor. Por ejemplo, si la funcion objetivo del ejemplo
fuera z = 3x1 + 3x2 . Como resolver el empate? La respuesta es: arbitrariamente. La solucion optima se alcanzara independientemente de dicha eleccion.
En este caso, se encontrara el optimo (2, 6) en tres iteraciones si elegimos
en primer lugar x1 como variable a entrar en la base, y en dos iteraciones si
eligieramos a x2 en primer lugar.
(b) Empates para la variable b
asica a abandonar: degeneraci
on
Cuando se elige la variable basica a abandonar la base, tambien podra
haber empates. Supongamos que el empate ocurre entre dos o mas variables
basicas cuando se elige la variable que sale en la segunda fase del paso iterativo Importa cual se escoge? En teora, s, pero de forma crtica debido a lo
1.3. EL METODO
SIMPLEX
31
que podra ocurrir. Primero, todas las variables empatadas se hacen cero al
mismo tiempo cuando aumenta el valor de la variable entrante. Por lo tanto,
aquellas que no se eligieron como variable basica saliente tambien tendran un
valor de cero en la nueva SBF. Las variables basicas con valor 0 se llaman
degeneradas,y la correspondiente SBF se llama soluci
on factible b
asica
degenerada. Segundo, si una de estas variables basicas degeneradas sigue
con valor de cero hasta que se selecciona como variable basica que sale en una
iteracion posterior, la variable basica entrante debera tambien quedar con valor
de cero (ya que no puede crecer sin que la variable basica que sale se vuelva
negativa), por lo que el valor de z no cambiara. Tercero, si z permanece igual
en lugar de mejorar en cada iteracion, el metodo smplex puede caer en un
bucle que repite la misma secuencia de soluciones de forma periodica, en lugar
de aumentar en alg
un momento para llegar a la solucion optima. En realidad,
se han construido ejemplos artificiales que se quedan atrapados en un bucle
infinito de este tipo. Afortunadamente, aunque el buble es teoricamente posible, muy raramente ocurre en problemas en la practica. Si ocurriera un bucle
siempre se puede salir de el al cambiar la eleccion de la variable basica que sale.
En ejercicios practicos se recomienda romper los empates de modo arbitrario
y seguir el proceso sin preocuparse de las variables degeneradas que puedan
resultar. Ademas se han construido reglas especiales para deshacer empates
de manera que se eviten bucles infinitos, por lo que no debemos preocuparnos
por las variables basicas degeneradas.
(c) Inexistencia de variable b
asica a abandonar: soluci
on inacotada
En la segunda fase del paso iterativo podria ocurrir otra posibilidad que no
hemos comentado a
un: que no haya variables candidatas a abandonar la base.
(Observese que esto no sera un problema en la primera fase, como sabemos,
por el test de optimalidad). Esto puede ocurrir si la variable basica candidata
a entrar podra aumentar indefinidamente sin que ninguna de las variables
basicas llegue a dar valores negativos. En la forma tabular observaramos que
en la columna pivote todos los coeficientes son nulos o negativos.
LINEAL
CAPITULO 1. PROGRAMACION
32
=4
(1.15)
10
0
0
1.3. EL METODO
SIMPLEX
33
Cuando un problema tiene mas de una SBF optima, al menos una de las
variables no basicas tiene coeficiente 0 en la ecuacion (0), as que aumentar
dicha variable no vara el valor de z. As, que se pueden encontrar otras soluciones, realizando iteraciones adicionales del algoritmo, eligiendo una variable
no basica con coeficiente cero como candidata a entrar en la base.
ultiples
Ejemplo 1.7. Resolucion de un problema de soluciones m
Si en el Ejemplo 1.3 modificamos levemente la funcion objetivo, z = 3x1 +
2x2 , nos encontraramos con esta situacion. Cada problema tiene al menos
dos soluciones factibles de punto extremo optimas (SBF), en el ejemplo (2, 6)
y (4, 3), por lo que todas las soluciones en el segmento son optimas.
10
0
0
LINEAL
CAPITULO 1. PROGRAMACION
34
z x1 x2
x3
x4
x5 rhs Optima?
1 3 2
0
0
0
0
No
0
1
0
1
0
0
4
0
0
2
0
1
0 12
0
3
2
0
0
1 18
1
0 2
3
0
0 12
No
0
1
0
1
0
0
4
0
0
2
0
1
0 12
0
0
2
3
0
1
6
1
0
0
0
0
1 18
S
0
1
0
1
0
0
4
0
0
0
3
1
1
6
0
0
1 3/2
0
1/2
3
1
0
0
0
0
1 18
S
0
1
0
0 1/3
1/3
2
0
0
0
1
1/3 1/3
2
0
0
1
0
1/2
0
6
Por lo que las dos SBF optimas encontradas son (4, 3, 0, 6, 0) y (2, 6, 2, 0, 0),
cada una alcanza un beneficio de z = 18. Observese que la variable x4 tambien
presenta coeficiente 0 en la ecuacion (0), pero entrar en la base supondra volver
a la iteracion 2. El resto de soluciones optimas son promedio ponderado de
ambas, es decir, todas las que se encuentran en el segmento entre (2, 6) y (4, 3),
es decir,
{(2, 6) + [(4, 3) (2, 6)] : [0, 1]} = {(2 + 2, 6 3) : [0, 1]}
1.3.4
Identificaci
on de SBF iniciales
El u
nico problema real que pueden acarrear las diferentes formulaciones de
las restricciones es el calculo de la SBF inicial. La tecnica que se emplea
en estos casos es la tecnica de variables artificiales. Este procedimiento consiste en introducir variables artificiales (dummy) con el fin de convertirse en
variables basicas iniciales. Se les asigna un peso M en la funcion objetivo
exorbitante (penalizacion), con el fin de que el metodo las vaya expulsando
1.3. EL METODO
SIMPLEX
35
=4
= 12
= 18
(1.16)
(1.17)
LINEAL
CAPITULO 1. PROGRAMACION
36
As,
z
x1
x2
x3
x4
xM
rhs
1 3 3M 5 2M
0
0
0
18M
0
1
0
1
0
0
4
0
0
2
0
1
0
12
0
3
2
0
0
1
18
1
0 5 2M 3 + 3M
0
0 12 6M
0
1
0
1
0
0
4
0
0
2
0
1
0
12
0
0
2
3
0
1
6
1
0
0
9/2
0 5/2 + M
27
0
1
0
1
0
0
4
0
0
0
3
1
1
6
0
0
1
3/2
0
1/2
3
1
0
0
0
3/2
1+M
36
0
1
0
0 1/3
1/3
2
0
0
0
1
1/3
1/3
2
0
0
1
0
1/2
0
6
La soluci
on que se obtiene es (x1 , x2 , x3 , x4 , xM ) = (2, 6, 2, 0, 0).
1.3.5
Teora del M
etodo Smplex
En esta seccion vamos a revisar los fundamentos teoricos del algoritmo smplex
y presentar el metodo smplex revisado. Este metodo fue dise
nado a partir del
metodo anterior y fue desarrollado para que la ejecucion computacional sea
eficiente.
Recordemos la formulacion matricial del modelo general de PL (1.3):
1.3. EL METODO
SIMPLEX
37
max
s.a
z = cx
Ax b
x0
a11
a21
A = ..
.
a12
a22
..
.
0
0
0 = .. ,
.
0
. . . a1n
. . . a2n
..
.
xn+1
xn+2
xh = ..
.
xn+m
as que las restricciones del modelo en forma estandar son:
AI
x
xh
=by
x
xh
x
xh
=b
LINEAL
CAPITULO 1. PROGRAMACION
38
x
que seran
xh
igualadas a 0. Al eliminar esas n variables, se obtiene un conjunto de m
ecuaciones y m incognitas (las variables basicas xB ). Denotemos este conjunto
de ecuaciones como
BxB = b
B11
B21
B = ..
.
Bm1
B12 . . . B1m
xB1
xB2
B22 . . . B2m
,
x
..
..
B ..
.
.
.
Bm2 . . . Bmm
xBm
1 0 1 0 0
4
x3
x1
c = (3 5), (A I) = 0 2 0 1 0 , b = 12 , x =
, xh = x4 .
x2
3 2 0 0 1
18
x5
x3
1 0 0
xB = x4 , B = 0 1 0 , B 1 = I,
x5
0 0 1
4
1
xB = B b = b = 12 , cB = (0 0 0) z = cB xB = 0.
18
1.3. EL METODO
SIMPLEX
39
Iteracion 1
x3
xB = x2 ,
x5
1 0 0
B = 0 2 0 ,
0 2 1
4
xB = B 1 b = 6 ,
6
B 1
1 0 0
= 0 21 0 ,
0 1 1
cB = (0 5 0) z = cB xB = 30.
Iteracion 2
x3
xB = x2 ,
x1
1 0 1
B = 0 2 0 ,
0 2 3
2
xB = B 1 b = 6 ,
2
B 1
1 13 31
0 ,
= 0 12
1
0 3 31
cB = (0 5 3) z = cB xB = 36.
z
1 c 0
x =
0 A I
xh
0
.
b
(1.18)
1 cB B 1
0 B 1
0
b
cB B 1 b
.
B 1 b
1 cB B A c cB B
0
B 1 A
B 1
z
x=
xh
cB B 1 b
.
B 1 b
40
LINEAL
CAPITULO 1. PROGRAMACION
Tabla 1.12: Tabla smplex en forma matricial
Iteracion xB Ec. num.
0
z
(0)
xB (1) (m)
i
z
(0)
xB (1) (m)
z
x
xh
rhs
1
c
0
0
0
A
I
b
1
1
1
1 cB B A c cB B
cB B b
1
0
B A
B 1
B 1 b
Definici
on 1.3. Dados dos puntos x , x IRn , se denomina segmento lineal de x a x al conjunto de puntos {x + (1 )x : (0, 1)}. Los
puntos del segmento se dice que son combinacion lineal convexa de x y x .
Definici
on 1.4. Un conjunto S IRn se dice conjunto convexo si para todo
par de puntos del conjunto, el segmento que los une esta totalmente contenido
en el conjunto; es decir,
x , x S, x + (1 )x S, (0, 1).
Es decir, si para todo par de puntos, el segmento rectilneo que une dichos
puntos esta dentro de la region.
1.3. EL METODO
SIMPLEX
41
regi
on convexa
regi
on convexa
regi
on no convexa
regi
on no convexa
(a)
(b)
(c)
(d)
LINEAL
CAPITULO 1. PROGRAMACION
42
Demonstraci
on.
Supongamos que A puede descomponerse, tras reordenar sus columxB
B 1 b
nas, en la forma A = BN cumpliendo que x =
=
, donde
xN
0
B Mmm es una matriz inversible tal que B 1 b 0. Obviamente, x S.
Supongamos que existen x , x S, (0, 1) tales que x = x + (1 )x , si
expresamos los puntos x , x en funcion de la factorizacion anterior, tenemos
B 1 b
0
=x=
xB
xN
xB
xN
+ (1 )
xB
xN
xB + (1 )xB
xN + (1 )xN
Ax =
(xj + j )Aj =
j=1
xj Aj +
j=1
j Aj = b
j=1
y
k
Ax =
(xj j )Aj =
j=1
xj Aj
j=1
j Aj = b
j=1
1.3. EL METODO
SIMPLEX
43
x=
k
j=1
j dj
j x +
j=1
donde
l
j
k=1
j = 1, j 0, j = 1, . . . , k y j 0, j = 1, . . . , l.
LINEAL
CAPITULO 1. PROGRAMACION
44
Demonstraci
on. Por el Teorema de representacion, Teorema 1.4, Ax = b y
x 0 es equivalente a que x se puede escribir como
k
l
j
x=
j dj
j x +
j=1
k=1
z = c( kj=1 j xj +
k
j=1 j = 1
j , j 0
l
j
k=1 j d )
Si existe alg
un j tal que cdj > 0, entonces j puede elegirse arbitrariamente grande, proporcionando una solucion no acotada. Esto demuestra que
una condicion necesaria y suficiente para que haya solucion optima finita es
cdj 0, j = 1, . . . , l.
Supongamos que cdj 0, k = 1, . . . , l, como queremos maximizar la
funci
on objetivo, elegimos j = 0, j, con lo que el problema se reduce a
max
s.a
z = c( kj=1 j xj )
k
j=1 j = 1
j 0
xB
xN
B 1 b
0
1.3. EL METODO
SIMPLEX
45
cx = cx + (cN cB B 1 N)xN = cx +
(cj cB B 1 Aj )xj
j=m+1
cx = cx + (cN cB B 1 N)xN = cx +
cx = cx + (cN cB B
N)xN = cx +
(cj cB B 1 Aj )xj
j=m+1
Como vamos a pasar una SBF adyacente, consideraremos todas las variables basicas de x excepto una. Como ya hemos comentado, entrara en la
nueva base aquella variable que mejore en mayor cantidad el valor de la funcion
objetivo, es decir,
LINEAL
CAPITULO 1. PROGRAMACION
46
B 1 Ae
ee
xB
0
B 1 Ae
ee
0.
(B b)1 (B 1 A)1e
..
.
1
(B b)m (B 1 A)me
0
B 1 b + (B 1 Ae )
0.
x=
=
.
..
ee
..
.
0
Por hipotesis, existe al menos un i tal que (B 1 A)ie > 0. Para satisfacer
x 0 bastara con que (B 1 b)i (B 1 A)ie 0 para aquellos i en los que
1.3. EL METODO
SIMPLEX
47
1
(B b)i
Observese
(B 1 A)ie > 0, es decir, que para estos i se cumpla (B
1 A)
ie
1
1
1
que si (B A)ie 0, siempre se tiene (B b)1 (B A)1e 0. Por lo
que se debe cumplir,
(B 1 b)i
, i : (B 1 A)ie > 0
1
(B A)ie
48
LINEAL
CAPITULO 1. PROGRAMACION
Paso inicial
b
usqueda de SBF inicial
Test de optimalidad
j, cj cB B 1 Aj 0?
Parar
optimo
no
Paso iterativo: fase 1
xe xN :
max
{cj cB B 1 Aj }
1
cj cB B
Aj >0
(B 1 A)e < 0?
Parar
inacotado
no
Paso iterativo: fase 2
(B 1 b)i
xs xB :
min
{
}
(B 1 A)ie >0 (B 1 A)ie
1.4
Teora de dualidad y an
alisis de sensibilidad
1.4. TEORIA DE DUALIDAD Y ANALISIS
DE SENSIBILIDAD
49
z = cx
min
w = yb
Ax b
s.a
yA c
(1.19)
(1.20)
x0
y0
En general, la correspondencia entre ambos modelos viene dada en la Tabla
1.13.
Tabla 1.13: Correspondencia primal-dual
Funcion objetivo
Restricciones
Variables
1.4.1
max z
aij xj bi
aij xj = bi
aij xj bi
xj 0
xj IR
xj 0
min w
yi 0
yi IR
yi 0
aij yi cj
aij yi = cj
aij yi cj
50
LINEAL
CAPITULO 1. PROGRAMACION
lema primal y y es una solucion factible para el problema dual, entonces
cx yb.
2. Propiedad de dualidad fuerte: Si x es una solucion optima para el problema primal y y es una solucion optima para el problema dual, entonces
cx = y b.
3. Propiedad de soluciones complementarias: En cada iteracion, el metodo
smplex identifica de manera simultanea una solucion FEV, x, para el
problema primal y una solucion complementaria, y, para el problema
dual (que se encuentra en la fila (0), como los coeficientes de las variables
de holgura), donde
cx = yb.
Si x no es optima para el problema primal, entonces y no es factible para
el problema dual.
4. Propiedad de soluciones complementarias optimas: Al final de cada iteracion, el metodo smplex identifica de manera simultanea una solucion
optima x para el problema primal y una solucion optima complementaria y para el problema dual (que se encuentra en la fila (0) como los
coeficientes de las variables de holgura), donde
cx = y b.
Los valores de yi son los precios sombra para el problema primal.
5. Propiedad de simetra: En el caso de cualquier problema primal y su
problema dual, las relaciones entre ellos deben ser simetricas debido a
que el dual de este problema dual es este problema primal.
En consecuencia, todas las propiedades anteriores se cumplen sin que importe a cual de los dos problemas se le llame problema primal. (La direccion
de la desigualdad de la propiedad de dualidad debil requiere que el problema
primal se exprese o reexprese en la forma de maximizacion y el problema dual
en la forma de minimizacion.) Por tanto, el metodo smplex se puede aplicar a
cualquiera de los dos problemas e identificara al mismo tiempo las soluciones
complementarias (y en u
ltima instancia una solucion complementaria optima)
para el otro problema.
1.4. TEORIA DE DUALIDAD Y ANALISIS
DE SENSIBILIDAD
51
Hasta este punto se han estudiado las relaciones entre las soluciones factibles
u optimas para el problema primal y las soluciones correspondientes para el
problema dual. Sin embargo, es posible que el problema primal (o el dual)
no tenga soluciones factibles o bien tenga soluciones factibles pero no una
solucion optima (debido a que la funcion objetivo no este acotada). La u
ltima
propiedad resume las relaciones primal-dual de todas estas posibilidades.
Teorema 1.6. Teorema de la dualidad
Las siguientes son las u
nicas relaciones posibles entre los problemas primal
y dual.
1. Si un problema tiene soluciones factibles y una funcion objetivo acotada
(y, por ende, una solucion optima), entonces ocurre lo mismo con el otro
problema, de manera que se aplican tanto la propiedad de dualidad debil
como la fuerte.
2. Si uno de los problemas tiene soluciones factibles y una funcion objetivo
no acotada (es decir, no tiene solucion optima), entonces el otro problema
no tiene soluciones factibles.
3. Si un problema no tiene soluciones factibles, entonces el otro problema
no tiene soluciones factibles o bien la funcion objetivo es no acotada.
1.4.2
Interpretaci
on econ
omica
n
j=1 cj xj
n
j=1 aij xj
bi , i = 1, 2, . . . , m
xj 0,
(1.21)
j = 1, 2, . . . , n
LINEAL
CAPITULO 1. PROGRAMACION
52
minimizar w =
sujeto a
m
i=1
aij yi cj , j = 1, 2, . . . , n
yi 0,
(1.22)
i = 1, 2, . . . , m
1.4. TEORIA DE DUALIDAD Y ANALISIS
DE SENSIBILIDAD
1.4.3
53
An
alisis de sensibilidad
54
LINEAL
CAPITULO 1. PROGRAMACION
vez que se aplica con exito el metodo smplex para identificar una solucion
optima para el modelo. Un supuesto de programacion lineal es que todos
los parametros del modelo son constantes conocidas. En realidad, los valores
de los parametros que se usan en el modelo casi siempre son solo estimaciones
basadas en una prediccion de las condiciones futuras. Con frecuencia, los datos
que se obtienen para desarrollar estas estimaciones son bastante burdos o no
existen, as que los parametros de la formulacion original pueden representar
tan solo la opinion proporcionada por el personal correspondiente. Los datos
pueden incluso representar estimaciones optimistas o pesimistas que protegen
los intereses de los estimadores.
En consecuencia, un administrador razonable y el personal de investigacion
de operaciones deben mantener cierto escepticismo saludable respecto de los
n
umeros originales que les proporciona el ordenador y, en muchos casos, los
tomaran nada mas como un punto de partida para el analisis posterior del
problema. Una solucion optima lo es solo en lo que se refiere al modelo especfico que se usa para representar el problema real, y esa solucion no se
convierte en una gua confiable para la accion hasta verificar que su comportamiento es bueno tambien para otras representaciones razonables del problema. A
un mas, algunas veces los parametros del modelo (en particular las bi )
se establecen como resultado de decisiones basadas en polticas administrativas (por ejemplo, la cantidad de ciertos recursos que se ponen a disposicion
de las actividades), y estas decisiones deben revisarse despues de detectar sus
consecuencias potenciales.
Por estas razones es importante llevar a cabo un analisis de sensibilidad,
para investigar el efecto que tendra sobre la solucion optima que proporciona
el metodo smplex el hecho de que los parametros tomen otros valores posibles. En general, habra algunos parametros a los que se les pueda asignar
cualquier valor razonable sin que afecten la optimalidad de esta solucion. Sin
embargo, tambien habra parametros con valores probables que lleven a una
nueva solucion optima. Esta situacion es seria, en particular si la solucion
original adquiere valores muy inferiores en la funcion objetivo, o tal vez no
factibles.
Por tanto, un objetivo fundamental del analisis de sensibilidad es identificar
los par
ametros sensibles (es decir, los parametros cuyos valores no pueden
cambiar sin que cambie la solucion optima). Para coeficientes de la funcion
objetivo que no estan clasificados como sensibles, tambien puede resultar de
gran utilidad determinar el intervalo de valores del parametro para el que la
solucion optima no cambia. (Este intervalo de valores se conoce como intervalo permisible para ese coeficiente.) En algunos casos, el cambio del valor
1.4. TEORIA DE DUALIDAD Y ANALISIS
DE SENSIBILIDAD
55
LINEAL
CAPITULO 1. PROGRAMACION
56
Captulo 2
Programaci
on No Lineal
2.1
Introducci
on a la Programaci
on No Lineal
Como respuesta a dos de las crticas mas frecuentes de la PL, a saber, la restrictividad de la hipotesis de linealidad y la dificultad de definir una u
nica
funcion objetivo, surge la Programacion no lineal (PNL) y la Teora de la
Decision Multicriterio (que no abordaremos en este captulo). Efectivamente,
un supuesto importante en PL es que todas sus funciones (objetivo y restricciones) son lineales. Aunque, en esencia, este supuesto se cumple en el caso de
muchos problemas practicos, con frecuencia no es as. Por lo que es necesario
abordarlo desde la Programacion No Lineal (PNL).
De manera general, un problema de PNL consiste en encontrar x = (x1 , x2 , . . . , xn )
tal que
max
s.a
f (x)
gi (x) bi , i = 1, 2, . . . , m
x0
f (x)
gi (x) bi , i = 1, 2, . . . , m
x0
57
NO LINEAL
CAPITULO 2. PROGRAMACION
58
En notacion extendida:
max
s.a
f (x1 , x2 , . . . , xn )
g1 (x1 , x2 , . . . , xn ) b1
g2 (x1 , x2 , . . . , xn ) b2
..
.
gm (x1 , x2 , . . . , xn ) bm
xj 0, j = 1, 2, . . . , n
d2 f
0,
dx2
A LA PROGRAMACION
NO LINEAL
2.1. INTRODUCCION
59
(2.1)
z = 198
(3, 3)
2
0
0
NO LINEAL
CAPITULO 2. PROGRAMACION
60
convexa
concava y convexa
concava
(a)
ni concava ni convexa
(b)
(c)
(d)
A LA PROGRAMACION
NO LINEAL
2.1. INTRODUCCION
61
d2 f
dx2
Definici
on 2.2. Sea una funcion de varias variables f (x) = f (x1 , x2 , . . . , xn ) y
consideremos cada par de puntos de x, x = (x1 , x2 , . . . , xn ) y x = (x1 , x2 , . . . , xn ),
dado que los puntos sobre el segmento que une x y x vienen dados por
x + (1 )x = (x1 + (1 )x1 , x2 + (1 )x2 , . . . , xn + (1 )xn )
las definiciones dadas en la Definicion 2.1 siguen siendo validas donde x, x , x
son vectores de n elementos.
Observese que en una funcion concava hacia arriba (convexa) el segmento
queda por encima de la grafica de la funcion, mientras que en una funcion
concava hacia abajo (concava) el segmento queda por debajo. Si f (x) tiene
derivadas parciales de segundo orden para todas sus variables xj , necesitamos
definir la matriz hessiana para expresar la caracterizacion de convexidad para
funciones de dos variables dada en la Tabla 2.2 y la generica para n variables
en la Tabla 2.3.
Definici
on 2.3. Sea la funcion f : D IRn IR con derivadas parciales de
segundo orden en el punto x D, entonces definimos
el gradiente como el vector de derivadas parciales de primer orden
f f
f
,
,...,
x1 x2
xn
f (x ) =
la matriz hessiana como
f (x ) =
2f
x21
2f
x1 x2
2f
x2 x1
2f
x22
2f
x1 xn
2f
x2 xn
..
.
..
.
...
...
..
.
...
|x
2f
xn x1
2f
xn x2
..
.
2f
x2n
|x
NO LINEAL
CAPITULO 2. PROGRAMACION
62
Dk = det
2f
x21
2f
x1 x2
2f
x2 x1
2f
x22
2f
x1 xk
2f
x2 xk
..
.
..
.
...
...
..
.
...
2f
xk x1
2f
xk x2
..
.
2f
x2k
|x
D1 =
D2 =
2f
x21
2f 2f
x21 x22
( x 1fx2 )2
>0
>0
2.2
63
f (x)
xj 0
0, xj > 0
0, xj = 0
Programaci
on cuadr
atica: problema restringido linealmente con funcion
objetivo cuadratica (contiene cuadrados de variables o/y productos de
variables, como la del Ejemplo 2.1)
f (x1 , x2 ) = a1 x21 + a2 x22 + a3 x1 x2 + a4 x1 + a5 x2 .
Se han desarrollado muchos algoritmos para f (x) concava, esta formulacion surge de manera natural en muchas aplicaciones.
Programaci
on convexa: abarca una amplia clase de problemas, entre
los cuales, como casos especiales, se puede mencionar todos los tipos
anteriores cuando f (x) es una funcion concava que debe maximizarse.
Los supuestos son: (i) f (x) es concava y (ii) cada gi (x) es convexa.
Estos supuestos aseguran que un maximo local es global3 .
2
3
Si el problema es de minimizaci
on la confici
on suficiente es que f (x) sea convexa.
Si el problema es de minimizaci
on
min
s.a
f (x)
gi (x) bi
f (x) convexa y g1 (x), g2 (x), . . . , gm (x) convexas aseguran que un mnimo local es global.
NO LINEAL
CAPITULO 2. PROGRAMACION
64
Programaci
on separable: es un caso especial de programacion convexa, en donde el supuesto adicional es: todas las funciones f (x) y gi (x)
son separables. Una funci
on separable es una funcion en la que cada
termino incluye una sola variable, por lo que la funcion se puede separar
en una suma de funciones de variables individuales. Por ejemplo, si f (x)
es una funcion separable, se puede expresar como
n
f (x) =
fj (xj )
j=1
donde cada fj (xj ) incluye solo los terminos con xj . Como en el Ejemplo 2.1, f (x1 , x2 ) = 54x1 9x21 + 78x2 13x22 es una funcion separable
porque puede ser expresada como f (x1 , x2 ) = f1 (x1 ) + f2 (x2 ) donde
f1 (x1 ) = 54x1 9x21 y f2 (x2 ) = 78x2 13x22 son cada una funciones de
una sola variable. Es importante distinguir estos problemas de otros de
programacion convexa, pues cualquier problema de programacion separable se puede aproximar muy de cerca mediante uno de programacion
lineal y, entonces, se puede aplicar el eficiente metodo smplex.
Programaci
on no convexa: incluye todos los problemas de PNL que
no satisfacen los supuestos de programacion convexa. En este caso, aun
cuando se tenga exito en encontrar un maximo local, no hay garanta
de que sea tambien un maximo global. Por lo tanto, no se cuenta con
un algoritmo que garantice encontrar una solucion optima para todos
estos problemas; sin embargo, existen algunos algoritmos bastante adecuados para encontrar maximos locales, en especial cuando las formas
de las funciones no lineales no se desvan demasiado de aquellas que se
supuso para programacion convexa. Ciertos tipos especficos de problemas de programacion no convexa se pueden resolver sin mucha dificultad
mediante metodos especiales.
Programaci
on geom
etrica: cuando se aplica PNL a problemas de
dise
no de ingeniera, muchas veces la funcion objetivo y las funciones de
restriccion toman la forma
N
ck Pk (x)
g(x) =
k=1
donde
Pk (x) = xa1k1 xa2k2 xankn , k = 1, 2, . . . , N
65
f (x) =
f1 (x)
f2 (x)
cx + x0
dx + d0
66
NO LINEAL
CAPITULO 2. PROGRAMACION
lineales, es decir, las restricciones en forma matricial son Ax b y x
0. Bajo algunos supuestos debiles adicionales, el problema se puede
transformar en un problema equivalente de programacion lineal si se
establece
1
x
y t=
y=
dx + d0
dx + d0
y
de manera que x = . Este resultado conduce a
t
max
s.a
z = cy + c0 t
Ay bt 0
dy + d0 t = 1
y 0, t 0,
w 0,
z0
zi = 0 i = 1, 2, . . . , p.
NO RESTRINGIDA
2.3. OPTIMIZACION
67
2.3
Optimizaci
on no restringida
68
NO LINEAL
CAPITULO 2. PROGRAMACION
Metodo de Biseccion
Paso inicial: Seleccionar una toleracia 0 Encontrar x y x por
inspeccion, ubicar un valor con derivada positiva y otro con
derivada negativa. Seleccionar una solucion de prueba inicial
intermedia x(0) := x+x
, i := 0.
2
(i)
)
. Si es positivo,
Paso iterativo: Avanzar i := i + 1. Evaluar df (x
dx
(i)
redefinir x := x . Si es negativo, redefinir x := x(i) . Seleccionar
una nueva solucion intermedia: x(i) := x+x
.
2
en el ejemplo
x(i)
f (x(i) )
1
7
0.5
5.7812
0.75
7.6948
0.875
7.8439
0.8125
7.8672
0.84375
7.8829
0.828125 7.8815
0.8359375 7.8839
NO RESTRINGIDA
2.3. OPTIMIZACION
69
Newton en el ejemplo
f (x(i) ) f (x(i) ) x(i+1)
12
96
0.875
2.1940 62.733 0.84003
0.1325 55.279 0.83763
0.0006 54.790 0.83762
resultado de x 0.83762.
En solo cuatro iteraciones, este metodo ha convergido con un grado muy
alto de precision. Una comparacion de esta tabla con la Tabla 2.2 ilustra cuanto
mas rapido converge el metodo de Newton que el metodo de biseccion. Si se
aplica este u
ltimo, se requeriran cerca de 20 iteraciones para converger con el
mismo grado de precision. Aunque esta convergencia rapida es muy usual en
el metodo de Newton, su desempe
no vara de problema a problema.
70
NO LINEAL
CAPITULO 2. PROGRAMACION
f (x )
, j = 1, 2, . . . , n
xj
NO RESTRINGIDA
2.3. OPTIMIZACION
71
Gradiente en el ejemplo
f (x + tf (x )) t
x + t f (x )
4t 8t2
1/4 (0, 1/2)
2
t t + 1/2
1/2 (1/2, 1/2)
NO LINEAL
CAPITULO 2. PROGRAMACION
72
2.4
Optimizaci
on restringida: condiciones KKT
Restricciones
No
xj 0
General
Teorema 2.1.
(Condiciones nesarias)
Sean f (x), g1 (x), g2 (x), . . . , gm (x) funciones diferenciables que satisfacen
ciertas condiciones de regularidad. Entonces, x = (x1 , x2 , . . . , xn ) puede
ser una solucion optima para el problema de PNL (2.1), solo si existen m
n
umeros u1 , u2 , . . . , um que satisfagan las siguientes condiciones KKT:
1.
f (x )
xj
2. xj
f (x )
xj
m
i=1
i (x
ui gx
j
m
i=1
0, j = 1, 2, . . . , n
i (x
ui gx
j
= 0, j = 1, 2, . . . , n
3. gi (x ) bi 0, i = 1, 2, . . . , m
4. ui (gi (x ) bi ) = 0, i = 1, 2, . . . , m
5. xj 0, j = 1, 2, . . . , n
6. ui 0, i = 1, 2, . . . , m
(Condiciones suficientes)
Sea f (x) concava y g1 (x), g2 (x), . . . , gm (x) convexas (es decir, se trata
de un problema de programacion convexa), donde todas estas funciones
satisfacen las condiciones de regularidad y x satisface las condiciones
KKT. Entonces, x es una solucion optima.
Veremos una aplicacion de las condiciones KKT en la Seccion 2.5.
CUADRATICA
2.5. PROGRAMACION
2.5
73
Programaci
on cuadr
atica
2.5.1
Formulaci
on cuadr
atica
Definici
on 2.4. Sea f : IRn IR, f es una funci
on cuadr
atica si
f (x1 , x2 , . . . , xn ) =
qij xi xj = (x1 x2 . . . xn )
i,j=1
q11 q12
q21 q22
..
..
.
.
qn1 qn2
. . . q1n
. . . q2n
.
..
. ..
. . . qnn
x1
x2
..
.
xn
NO LINEAL
CAPITULO 2. PROGRAMACION
74
f (x) = cx + 12 xt Qx
Ax b
x0
1
cj xj +
2
j=1
qij xi xj
i=1 j=1
q11 q12
q12 q22
x1
x2
CUADRATICA
2.5. PROGRAMACION
75
Q=
4 4
,
4 8
A= 1 2 ,
b = 30
2.5.2
76
NO LINEAL
CAPITULO 2. PROGRAMACION
+y2
+v1
= 15
= 30
= 30
(2.2)
CUADRATICA
2.5. PROGRAMACION
77
2.5.3
M
etodo Smplex Modificado
El M
etodo Smplex Modificado explota el importante hecho de que, con
excepcion de la restriccion de complementariedad, las condiciones KKT expresadas en la forma conveniente que se acaba de obtener, no son otra cosa
que restricciones de programacion lineal. A
un mas, la restriccion de complementariedad simplemente implica que no es permisible que las dos variables
complementarias de un par dado sean basicas (no nulas) al considerar SBF (no
degeneradas). Por tanto, el problema se reduce a encontrar una SBF inicial
para cualquier problema de programacion lineal con estas restricciones, sujeta a la restriccion adicional sobre la identidad de las variables basicas. (Esta
solucion inicial basica factible puede ser la u
nica solucion factible en este caso.)
Como se analizo en la Subseccion 1.3.4, tal SBF inicial se encuentra casi
de modo directo. En el sencillo caso de que ct 0 (poco probable) y b 0, las
variables basicas iniciales son los elementos de y y v (se multiplica por 1 todo
el primer conjunto de ecuaciones), de manera que la solucion deseada es x = 0,
u = 0, y = ct , v = b. De otra manera, es necesario revisar el problema e
introducir una variable artificial en cada una de las ecuaciones donde cj > 0 (se
78
NO LINEAL
CAPITULO 2. PROGRAMACION
agrega la variable una variable artificial por la izquierda) o bi < 0 (se resta una
variable artificial por la izquierda y despues se multiplican los dos lados por
1), con el fin de usar estas variables artificiales (que se denotan por zj ) como
variables basicas iniciales del problema revisado. (Observe que esta seleccion de
variables basicas iniciales satisface la restriccion de complementariedad, puesto
que como variables no basicas x = 0 y u = 0, de manera automatica.) Despues
se utiliza la fase 1 del metodo de dos fases para encontrar una SBF para el
problema real; es decir, se aplica el metodo smplex (con una modificacion) al
siguiente problema de programacion lineal
min z =
zj
j
sujeta a las restricciones anteriores de programacion lineal que se obtuvieron de las condiciones KKT, pero con estas variables artificiales incluidas.
La modificacion del metodo smplex es el siguiente cambio en el procedimiento para elegir una variable basica entrante.
Regla de entrada restringida: cuando se elige la variable basica entrante, se excluye de las posibilidades cualquier variable no basica cuya variable
complementaria sea basica; la eleccion debe hacerse entre las otras variables
no basicas, seg
un el criterio normal del metodo smplex.
Esta regla asegura que la restriccion de complementariedad se satisface en
todo el curso del algoritmo.
Cuando se obtiene una solucion optima x , u , y , v y z = 0 para la fase 1
de este problema, x es la solucion optima deseada para el problema original
de programacion cuadratica. La fase 2 del metodo de dos fases no se necesita.
CUADRATICA
2.5. PROGRAMACION
min
z = z1 + z2
+u1 y1
+2u1
y2
4x1 4x2
+z1
= 15
4x1 +8x2
+z2 = 30
x1 +2x2
+v1
= 30
x1 , x2 , u1, y1 , y2 , v1 z1 , z2 0
79
(2.3)
80
NO LINEAL
CAPITULO 2. PROGRAMACION
z
x1 x2
u1
y1
y2
v1
z1
z2
rhs
1
0 4
3
1
1
0
0
0
45
0
4 4
1
1
0
0
1
0
15
0
4
8
2
0
1
0
0
1
30
0
1
2
0
0
0
1
0
0
30
1
2
0
2
1
1/2
0
0
1/2
30
0
2
0
2
1 1/2
0
1
1/2
30
0 1/2
1
1/4
0 1/8
0
0
1/8
15/4
0
2
0 1/2
0
1/4
1
0 1/4
45/2
1
0
0 5/2
1
3/4
1
0
1/4 15/2
0
0
0
5/2
1 3/4
1
1
3/4
15/2
0
0
1
1/8
0 1/16
1/4
0
1/16
75/8
0
1
0 1/4
0
1/8
1/2
0 1/8
45/4
1
0
0
0
0
0
0
1
1
0
0
0
0
1 2/5 3/10 2/5
2/5
3/10
3
0
0
1
0
1/20 1/40 3/10 1/20
1/40
9
0
1
0
0 1/10
1/20
2/5
1/10 1/20
12
Referencias
[1] H. Calvete and P. Mateo, Programacion lineal, entera y meta. Coleccion
Textos Docentes. Prensa Universitaria de Zaragoza, 1994.
[2] F. Hillier and G. Lieberman, Introduccion a la investigacion de operaciones. Editorial McGraw-Hill, 2001.
[3] J. J. Salazar, Programacion Matematica. Ed. Diaz de Santos, 2011.
[4] C. Maroto, J. Alcaraz, and R. Ruiz, Investigacion Operativa. Modelos y
Tecnicas de optimizacion. Editorial Universidad Politecnica de Valencia,
2002.
[5] W. L. Winston, Operations Research: Applications and Algorithms. International Thomson Publishing, 1994.
[6] J. Dennis and R. Schnable, Numerical methods for unconstrained optimization and nonlinear equations. Prentice-Hall, Inc., New Jersey, 1983.
[7] J. Nocedal and S. Wright, Numerical optimization. Springer, USA, 1999.
[8] J. Birge and F. Louveaux, Introduction to Stochastic Programming.
Springer, 1997.
[9] L. Escudero, A. Garin, M. Merino, and G. Perez, A general algorithm for
solving two-stage stochastic mixed 0-1 first-stage problems., Computers
and Operations Research, vol. 36, pp. 25902600, 2009.
[10] A. Ramos, A. Alonso-Ayuso, and G. P. (eds.), Optimizacion bajo incertidumbre. Publicaciones de la Universidad Pontificia Comillas, 2009.
[11] COIN-OR, COmputational INfrastructure for Operations Research.
Website. http://www.coin-or.org/.
81
82
REFERENCIAS
[12] G. Perez and M. Garn, On downloading and using COIN-OR for solving
linear/integer optimization problems, tech. rep., Working paper series
Biltoki, UPV/EHU. DT.2010.05, Basque Country University, Spain, 2010.
[13] IBM, ILOG CPLEX optimizer. Website
. http://www-01.ibm.com/software/integration/optimization/cplex-optimizer/.
[14] G. Perez and M. Garn, On Downloading and Using CPLEX within
COIN-OR for Solving Linear/Integer Optimization Problems, tech. rep.,
Working paper series Biltoki, UPV/EHU. DT.2011.08, Basque Country
University, Spain, 2011.
[15] FICO, XPRESS optimization suite - student edition. Website
. http://optimization.fico.com/student-version-of-fico-xpress.html.
[16] GUSEK (GLPK under scite extended kit). Website
. http://gusek.sourceforge.net/gusek.html.
[17] Wikipedia, OR. http://en.wikipedia.org/wiki/Operations_research/.
[18] INFORMS, Science of better. http://www.scienceofbetter.org/.
[19] R. L. Ackoff, El arte de resolver problemas: las fabulas de Ackoff. Noriega,
Limusa Wiley, 2007.
[20] C. Churchman, R. Ackoff, and E. Arnoff, Introduction to Operations Research. Wiley, New York, 1957.
[21] IFORS. http://www.ifors.org/.
[22] J. Nash, The (dantzig) simplex method for linear programming, Computing in Science & Engineering, pp. 2931.