Académique Documents
Professionnel Documents
Culture Documents
Prólogo 3
2 Programación No Lineal 57
2.1 Introducción a la Programación No Lineal . . . . . . . . . . . . 57
2.2 Tipos de problemas de PNL . . . . . . . . . . . . . . . . . . . . 62
i
ÍNDICE GENERAL 1
3
4 ÍNDICE GENERAL
Parte I
Programación Lineal y No
Lineal
5
Capı́tulo 1
Programación Lineal
7
8 CAPÍTULO 1. PROGRAMACIÓN LINEAL
1.1.2 Clasificación
Los problemas que aborda la Investigación Operativa se pueden clasificar de
diferentes formas.
Atendiendo a la certidumbre de los datos, se dividen en:
(a) modelos determinı́sticos, en los cuales todos los datos se suponen cono-
cidos;
1.1. INTRODUCCIÓN A LA INVESTIGACIÓN OPERATIVA 9
1.1.3 Metodologı́a
En cuanto a la metodologı́a que emplea la Investigación Operativa, puede
reducirse a los siguientes pasos:
maximizar z = c1 x1 + c2 x2 + . . . + cn xn
sujeto a a11 x1 + a12 x2 + . . . + a1n xn = b1
a21 x1 + a22 x2 + . . . + a2n xn = b2 (1.2)
···
am1 x1 + am2 x2 + . . . + amn xn = bm
x1 , x2 , . . . , xn ≥ 0
Definición 1.1. Se llama región factible del problema al conjunto de posibles
valores que satisfacen todas las restricciones, R = {x ∈ IRn : Ax = b, x ≥ 0}.
Una solución del problema (1.1) se dice solución factible si satisface todas
las restricciones del mismo, es decir, x ∈ R. Una solución factible se dice
solución óptima si proporciona el valor más favorable a la función objetivo,
es decir, x∗ ∈ R es óptima si ∀x ∈ R, cx∗ ≥ cx.
La función objetivo puede representar un problema de maximización o
minimización. En un problema concreto, las restricciones pueden venir dadas
en términos 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
estándar en (1.1) añadiendo variables adicionales. A lo largo de este curso,
consideraremos problema en notación estándar (con desigualdades) a:
max z = cx
s.a Ax ≤ b (1.3)
x≥0
y su versión equivalente en notación extendida:
maximizar z = c1 x1 + c2 x2 + . . . + cn xn
sujeto a a11 x1 + a12 x2 + . . . + a1n xn ≤ b1
a21 x1 + a22 x2 + . . . + a2n xn ≤ b2 (1.4)
···
am1 x1 + am2 x2 + . . . + amn xn ≤ bm
x1 , x2 , . . . , xn ≥ 0
1.2.2 Transformaciones
Transformar un problema a notación estándar:
14 CAPÍTULO 1. PROGRAMACIÓN LINEAL
max(−z) = min z
xj = x+ − + −
j − xj , xj ≥ 0, xj ≥ 0.
1.2. INTRODUCCIÓN A LA PROGRAMACIÓN LINEAL 15
x̃j = xj − lj , x̃j ≥ 0.
x̃j = uj − xj , x̃j ≥ 0.
max −z = −3x+ −
1 + 3x1 − 5x2
s.a. : −x+
1
−
−x1 −x2 ≤ −4
4x+
1 −4x−
1 +8x 2 ≤ 10 (1.6)
−4x+
1
−
+4x1 −8x2 ≤ −10
x+ −
1 , x1 , x2 ≥ 0
min z = z1 + z2
s.a. : 15 −4x1 +4x2 −u1 −z1 ≤0
30 +4x1 −8x2 −2u1 −z2 ≤ 0 (1.7)
x1 +2x2 −30 ≤0
x1 , x2 , u1 , z1 , z2 ≥ 0
max −z = −z1 − z2
s.a. : 4x1 −4x2 +u1 −y1 +z1 = 15
−4x1 +8x2 +2u1 −y2 +z2 = 30 (1.8)
x1 +2x2 +v1 = 30
x1 , x2 , u1 , y1 , y2, v1 z1 , z2 ≥ 0
1.2.3 Clasificación
Los problemas de optimización pueden clasificarse, según el carácter de las
variables, en:
Problemas lineales generales, si todas sus variables de decisión son con-
tinuas, es decir, toman valores en el espacio de números reales IR. Se
denominarán simplemente problemas lineales y se denotarán por P L.
Problemas enteros, si todas sus variables de decisión son enteras, es decir,
toman valores en el espacio de números enteros Z. También se conocen
como problemas enteros puros lineales, y se denotan por P E. En par-
ticular, se tiene un problema entero 0–1, si todas sus variables son
binarias, es decir, toman valores en el conjunto {0, 1}.
Problemas mixtos, si tienen variables de decisión tanto continuas como en-
teras. También se conocen como problemas enteros mixtos lineales, y se
denotarán por P M. En particular, un problema mixto 0–1 es aquel
que contiene tanto variables continuas como variables binarias.
3. La ganancia por lote de cada producto nuevo. (Se escogió la ganancia por
lote producido como una medida adecuada una vez que el equipo llegó a
la conclusión de que la ganancia incremental de cada lote adicional pro-
ducido serı́a, en esencia, constante, sin que importase el número total de
lotes producidos. Debido a que no se incurre en costos sustanciales para
iniciar la producción y la comercialización de estos nuevos productos, la
ganancia total de cada uno es aproximadamente la ganancia por lote que
se produce multiplicada por el número de lotes.)
18 CAPÍTULO 1. PROGRAMACIÓN LINEAL
9
3x1 + 2x2 = 18
8
x1 = 4
z = 36 = 3x1 + 5x2 7
2x2 = 12
6b b
4
z = 20 = 3x1 + 5x2
3 b
2
z = 10 = 3x1 + 5x2
1
0b b
0 1 2 3 4 5 6 7 8
1. Si hay exactamente una única solución óptima, debe ser una solución
factible de punto-extremo. Si hay soluciones óptimas múltiples, entonces
al menos dos deben ser soluciones de punto extremo adyacentes.
Paso inicial
Búsqueda de solución SFPE inicial
Paso iterativo
Mover a solución SFPE adyacente mejor
Test de optimalidad
¿Ninguna SFPE adyacente
no
es mejor?
sı́
Parar
Ası́, la función objetivo será tratada como la ecuación (0) y z como una
variable básica adicional permanente. Denotaremos por E(i) la ecuación i-
ésima del problema. Hay varias cuestiones a las que ir respondiendo:
1.3. EL MÉTODO SÍMPLEX 23
⋄
Vamos a explicar el procedimiento algebraico resolviendo el ejemplo.
Ejemplo 1.4. Resolución algebraica del algoritmo Sı́mplex
Paso inicial
Cuando el problema original está en forma de desigualdades, se comienza
en el origen, solución xN ≡ (x1 , x2 ) = (0, 0). Ası́, tras introducir variables
de holgura, las variables originales se consideran no básicas y las variables de
holgura variables básicas, xB ≡ (x3 , x4 , x5 ). Como las no básicas se fijan a
cero, la solución básica factible inicial es (0, 0, 4, 12, 18). Observar que esta
solución es inmediata porque cada restricción tiene una única variable básica
con coeficiente +1 y no aparece en ninguna otra restricción.
Paso iterativo 1: ¿qué variable entra en y cuál abandona la base?
Para movernos de la actual SBF a otra adyacente mejor, debemos reem-
plazar una variable no básica (entrante) por una nueva variable (saliente).
Las candidatas a entrar en la base son las variables no básicas, como al
entrar su valor pasará de nulo a positivo (excepto en casos degenerados), la
candidata es la que en mayor medida pueda mejorar la función objetivo z, es
decir, la que tenga el coeficiente positivo mayor en la función objetivo. En el
ejemplo, como c1 = 3 < c2 = 5, la candidata a entrar en la base es la variable
x2 .
Como x1 permanece a 0, geométricamente nos movemos a lo largo del
semieje positivo x2 . La SFPE adyacente es (0, 6) Las posibles variables a
abandonar la base son x3 , x4 y x5 . Necesitamos analizar en qué situación
x2 aumentarı́a lo más posible antes de que ninguna variable sea negativa, ver
24 CAPÍTULO 1. PROGRAMACIÓN LINEAL
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.
(0) z −3x1 + 52 x4 = 30
(1) x1 +x3 =4
(1.12)
(2) x2 + 21 x4 =6
(3) 3x1 −x4 +x5 = 6
1.3. EL MÉTODO SÍMPLEX 25
(0) z −3x1 + 25 x4 = 30
(1) x1 +x3 =4
1 (1.13)
(2) x
2 4
+x2 =6
(3) 3x1 −x4 +x5 = 6
3
(0) z 2 4
x +x5 = 36
(1) x3 + 31 x4 − 13 x5 = 2
(1.14)
(2) x2 + 21 x4 =6
(3) x1 − 13 x4 + 13 x5 = 2
Test de optimalidad
Tabla 1.5: Tabla sı́mplex inicial con columna, fila y elemento pivote
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:
Ẽ(0) := E(0) − (−5) · Ẽ(2)
∀i 6= p, Ẽ(i) := E(i) − (aip ) · Ẽ(p) ⇒ Ẽ := E(1) − (0) · Ẽ(2)
(1)
Ẽ(3) := E(3) − (2) · Ẽ(2)
De esta forma se obtiene la Tabla 1.6, completándose asi la primera it-
eración. Como cada variable no básica es nula, cada básica toma el valor rhs
y ası́ (x1 , x2 , x3 , x4 , x5 ) = (0, 6, 4, 0, 6) con beneficio z = 30.
Test de optimalidad:
Como hay un coeficiente negativo, la solución actual no es óptima.
Paso iterativo 2:
max{| − 3|} = 3, entonces la variable x1 entra en la base (columna pivote).
Y por el test de mı́nimo 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 sı́mplex iteración 1 con columna, fila y elemento pivote
Test de optimalidad
Como ningún coeficiente de la ecuación (0) es negativo, el algoritmo ter-
mina, la solución actual es óptima, x1 = 2 y x2 = 6.
Obsérvese 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 podrı́a 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 solución pasarı́a de ser (2, 6) con valor z = 36 a ser
( 35 , 13
2
) con valor z = 37 21 . Efectivamente, z aumentarı́a ligeramente en 23 .
que podrı́a 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 básica saliente también tendrán un
valor de cero en la nueva SBF. Las variables básicas con valor 0 se llaman
degeneradas,y la correspondiente SBF se llama solución factible básica
degenerada. Segundo, si una de estas variables básicas degeneradas sigue
con valor de cero hasta que se selecciona como variable básica que sale en una
iteración posterior, la variable básica entrante deberá también quedar con valor
de cero (ya que no puede crecer sin que la variable básica que sale se vuelva
negativa), por lo que el valor de z no cambiará. Tercero, si z permanece igual
en lugar de mejorar en cada iteración, el método sı́mplex puede caer en un
bucle que repite la misma secuencia de soluciones de forma periódica, en lugar
de aumentar en algún momento para llegar a la solución óptima. En realidad,
se han construido ejemplos artificiales que se quedan atrapados en un bucle
infinito de este tipo. Afortunadamente, aunque el buble es teóricamente posi-
ble, muy raramente ocurre en problemas en la práctica. Si ocurriera un bucle
siempre se puede salir de él al cambiar la elección de la variable básica que sale.
En ejercicios prácticos se recomienda romper los empates de modo arbitrario
y seguir el proceso sin preocuparse de las variables degeneradas que puedan
resultar. Además se han construido reglas especiales para deshacer empates
de manera que se eviten bucles infinitos, por lo que no debemos preocuparnos
por las variables básicas degeneradas.
(c) Inexistencia de variable básica a abandonar: solución inaco-
tada
En la segunda fase del paso iterativo podria ocurrir otra posibilidad que no
hemos comentado aún: que no haya variables candidatas a abandonar la base.
(Obsérvese que esto no serı́a un problema en la primera fase, como sabemos,
por el test de optimalidad). Esto puede ocurrir si la variable básica candidata
a entrar podrı́a aumentar indefinidamente sin que ninguna de las variables
básicas llegue a dar valores negativos. En la fórma tabular observarı́amos que
en la columna pivote todos los coeficientes son nulos o negativos.
10 b b
0b b
0 1 2 3 4 5 6 7 8
Cuando un problema tiene más de una SBF óptima, al menos una de las
variables no básicas tiene coeficiente 0 en la ecuación (0), ası́ que aumentar
dicha variable no varı́a el valor de z. Ası́, que se pueden encontrar otras solu-
ciones, realizando iteraciones adicionales del algoritmo, eligiendo una variable
no básica con coeficiente cero como candidata a entrar en la base.
10
6b b
3 b
0b b
0 1 2 3 4 5 6 7 8
Por lo que las dos SBF óptimas encontradas son (4, 3, 0, 6, 0) y (2, 6, 2, 0, 0),
cada una alcanza un beneficio de z = 18. Obsérvese que la variable x4 también
presenta coeficiente 0 en la ecuación (0), pero entrar en la base supondrı́a volver
a la iteración 2. El resto de soluciones óptimas 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]}
Sin embargo, el algoritmo no puede aplicarse aún, recordemos que para el test
de optimalidad y para la fase 1 del paso iterativo cada variable básica debe tener
un coeficiente 0 en la función objetivo y no lo satisface la variable ficticia xM .
Como en la fase 3 del paso iterativo, vamos a reemplazar la fila 0 por
Ası́,
Ẽ(0) : z + (−3 − 3M)x1 + (−5 − 2M)x2 = −18M
De esta forma se completa el trabajo adicional que requiere el paso inicial
del algoritmo para problemas de este tipo. A partir de aquı́, el algoritmo se
resuelve como hemos visto. Las cantidades relativas a M solo aparecerán en
la ecuación (0), por lo que solo afectarán al test de optimalidad y a la fase 1
del paso iterativo. La resolución tabular viene expresada en la Tabla 1.11.
max z = cx
s.a Ax ≤ b
x≥0
donde c es el vector fila
c = (c1 c2 . . . cn ),
y A es la matriz
a11 a12 . . . a1n
a21 a22 . . . a2n
A = .. .. ..
. . .
am1 am2 . . . amn
Para convertirlo en un problema de igualdades introducimos las m variables
de holgura en cada restricción:
xn+1
xn+2
xh = ..
.
xn+m
ası́ que las restricciones del modelo en forma estandar son:
x x
AI =by ≥0
xh xh
Iteración 1
x3 1 0 0 1 0 0
xB = x2 , B = 0 2 0 , B −1 = 0 21 0 ,
x5 0 2 1 0 −1 1
4
⇒ xB = B −1 b = 6 , cB = (0 5 0) ⇒ z = cB xB = 30.
6
Iteración 2
1 13 − 31
x3 1 0 1
xB = x2 , B = 0 2 0 , B −1 = 0 12 0 ,
x1 0 2 3 1
0 − 3 31
2
⇒ xB = B −1 b = 6 , cB = (0 5 3) ⇒ z = cB xB = 36.
2
1 cB B −1 cB B −1 b
z 0
= = .
xB 0 B −1 b B −1 b
Por tanto,
si premultiplicamos el conjunto de ecuaciones (1.18) por la misma
−1
1 cB B
matriz , obtenemos para cada iteración
0 B −1
−1 −1
z −1
1 cB B A − c cB B x= c B B b
.
0 B −1 A B −1 B −1 b
xh
40 CAPÍTULO 1. PROGRAMACIÓN LINEAL
Definición 1.3. Dados dos puntos x′ , x′′ ∈ IRn , se denomina segmento lin-
eal de x′ a x′′ al conjunto de puntos {λx′ + (1 − λ)x′′ : λ ∈ (0, 1)}. Los
puntos del segmento se dice que son combinación lineal convexa de x′ y x′′ .
Es decir, si para todo par de puntos, el segmento rectilı́neo que une dichos
puntos está dentro de la región.
1.3. EL MÉTODO SÍMPLEX 41
b b b b
b b
b b b b b b
b b b b b b b b
Demonstración.
⇐ Supongamos que A puede descomponerse, tras reordenar
−1sus colum-
xB B b
nas, en la forma A = BN cumpliendo que x = = , donde
xN 0
B ∈ Mm×m 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 función de la factorización anterior, tenemos
−1 ′ ′′ ′
λxB + (1 − λ)x′′B
B b xB xB xB
=x= = λ ′ + (1 − λ) ′′ = .
0 xN xN xN λx′N + (1 − λ)x′′N
Como x′N , x′′N ≥ 0 y λ, (1 − λ) > 0, entonces x′N = x′′N = 0 y esto implica que
x′B = x′′B = B −1 b ya que b = Ax′ = A(x′B , x′N )t = Bx′B + Nx′N = Bx′B + 0 =
Bx′B y análogamente para x′′ . Ası́, x = x′ = x′′ , por lo que x es un punto
extremo de S.
⇒ Supongamos que x es un punto extremo de S. Sin pérdida de gener-
alidad, supongamos que x = (x1 , x2 , . . . , xk , 0, . . . , 0) con x1 , . . . , xk > 0. De-
mostraremos que las columnas correspondientes A1 , . . . Ak de A son linealmente
independientes. Por reducción al absurdo, supongamos que Pno es ası́, entonces
k
existirı́an λ1 , . . . , λk escalares no todos nulos tales que j=1 λj Aj = 0, sea
∆ = (λ1 , . . . , λk , 0, . . . , 0). Construimos los siguientes dos vectores x′ = x+α∆
y x′′ = x − α∆, donde α > 0 se elige de manera que x′ , x′′ ≥ 0. Entonces,
k
X k
X k
X
Ax′ = (xj + αλj )Aj = xj Aj + α λj Aj = b
j=1 j=1 j=1
y
k
X k
X k
X
Ax′′ = (xj − αλj )Aj = xj Aj − α λj Aj = b
j=1 j=1 j=1
z = c( kj=1 λj xj + lk=1 µj dj )
P P
max
Pk
s.a j=1 λj = 1
λj , µ j ≥ 0
⇐ Si existe algún j tal que cdj > 0, entonces µj puede elegirse arbitraria-
mente grande, proporcionando una solución no acotada. Esto demuestra que
una condición necesaria y suficiente para que haya solución óptima finita es
cdj ≤ 0, ∀j = 1, . . . , l.
⇒ Supongamos que cdj ≤ 0, ∀k = 1, . . . , l, como queremos maximizar la
función objetivo, elegimos µj = 0, ∀j, con lo que el problema se reduce a
z = c( kj=1 λj xj )
P
max
Pk
s.a j=1 λj = 1
λj ≥ 0
Está claro que la solución óptima de este problema es finita y se encuentra
haciendo λi = 1, λj = 0, ∀j 6= i, donde el ı́ndice i viene dado por cxi =
max1≤j≤k cxj . Obsérvese que la solución del problema se alcanza en el punto
extremo i-ésimo, con lo que queda demostrado el teorema.
m+n
X
cx = cx∗ + (cN − cB B −1 N)xN = cx∗ + (cj − cB B −1 Aj )xj
j=m+1
Como vamos a pasar una SBF adyacente, consideraremos todas las vari-
ables básicas de x∗ excepto una. Como ya hemos comentado, entrará en la
nueva base aquella variable que mejore en mayor cantidad el valor de la función
objetivo, es decir,
46 CAPÍTULO 1. PROGRAMACIÓN LINEAL
Por hipótesis, existe al menos un i tal que (B −1 A)ie > 0. Para satisfacer
x ≥ 0 bastará con que (B −1 b)i −λ(B −1 A)ie ≥ 0 para aquellos i en los que
1.3. EL MÉTODO SÍMPLEX 47
−1
(B b)i
(B −1 A)ie > 0, es decir, que para estos i se cumpla λ ≤ (B −1 A)
ie
Obsérvese
−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
λ≤ −1
, ∀i : (B −1 A)ie > 0
(B A)ie
Ası́, (B −1 b)s − λ(B −1 A)se = 0 y x tiene las variables que tenı́a x∗ menos
xs que pasa a tomar valor 0 y en su lugar aparece la variable xe que toma
(B −1 b)s
valor λ, el resto de variables toma valor (B −1 b)i − (B −1 A) (B
se
−1
A)ie . Y
hemos construido una SBF adyacente a la anterior en la que xe toma
valor como deséabamos.
Paso inicial
búsqueda de SBF inicial
no
sı́ Parar
(B −1 A)e < 0?
inacotado
no
primal) son muy útiles. Por ejemplo, se verá que, en realidad, la solución
óptima del problema dual es la que proporciona los precios sombra que se
describieron en la Sección 1.3.2. Una de las aplicaciones más importantes de
esta teorı́a es la interpretación y realización del análisis de sensibilidad. Es
una parte esencial de casi todos los estudios de programación lineal, debido a
que la mayorı́a de los valores de los parámetros que se emplean en el modelo
original son sólo estimaciones de las condiciones futuras, es necesario investigar
el efecto que tendrı́an sobre la solución óptima en caso de que prevalecieran
otras condiciones. Aún más, ciertos valores de estos parámetros (como la can-
tidad de recursos) pueden representar decisiones administrativas, en cuyo caso
su elección debe ser el aspecto principal de la investigación, el cual se puede
estudiar a través del análisis de sensibilidad.
Dada nuestra forma estándar para el problema primal, que se presenta a
la izquierda (quizá después de hacer conversiones cuando provienen de otras
formas), su problema dual tiene la forma que se muestra a la derecha.
max z = cx min w = yb
s.a Ax ≤ b (1.19) s.a yA ≥ c (1.20)
x≥0 y≥0
En general, la correspondencia entre ambos modelos viene dada en la Tabla
1.13.
cx ≤ yb.
cx∗ = y ∗ b.
cx∗ = y ∗ b.
Los valores de yi∗ son los precios sombra para el problema primal.
Hasta este punto se han estudiado las relaciones entre las soluciones factibles
u óptimas 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
solución óptima (debido a que la función objetivo no esté acotada). La última
propiedad resume las relaciones primal-dual de todas estas posibilidades.
maximizar z = nj=1 cj xj
P
Pn
sujeto a j=1 aij xj ≤ bi , i = 1, 2, . . . , m
(1.21)
xj ≥ 0, j = 1, 2, . . . , n
La interpretación económica de los coeficientes, es como en el Ejemplo 1.3:
xj : Nivel de la actividad j
minimizar w = m
P
i=1 bi yi
Pm
sujeto a i=1 aij yi ≥ cj , j = 1, 2, . . . , n
(1.22)
yi ≥ 0, i = 1, 2, . . . , m
min w: minimización del valor total implı́cito de los recursos consumidos por
las actividades.
La asociación entre las variables de los problemas primal y dual viene dada
en la Tabla 1.14:
vez que se aplica con éxito el método sı́mplex para identificar una solución
óptima para el modelo. Un supuesto de programación lineal es que todos
los parámetros del modelo son constantes conocidas. En realidad, los valores
de los parámetros que se usan en el modelo casi siempre son sólo estimaciones
basadas en una predicción de las condiciones futuras. Con frecuencia, los datos
que se obtienen para desarrollar estas estimaciones son bastante burdos o no
existen, ası́ que los parámetros de la formulación original pueden representar
tan sólo la opinión 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 investigación
de operaciones deben mantener cierto escepticismo saludable respecto de los
números originales que les proporciona el ordenador y, en muchos casos, los
tomarán nada más como un punto de partida para el análisis posterior del
problema. Una solución óptima lo es sólo en lo que se refiere al modelo es-
pecı́fico que se usa para representar el problema real, y esa solución no se
convierte en una guı́a confiable para la acción hasta verificar que su compor-
tamiento es bueno también para otras representaciones razonables del prob-
lema. Aún más, algunas veces los parámetros del modelo (en particular las bi )
se establecen como resultado de decisiones basadas en polı́ticas administrati-
vas (por ejemplo, la cantidad de ciertos recursos que se ponen a disposición
de las actividades), y estas decisiones deben revisarse después de detectar sus
consecuencias potenciales.
Por estas razones es importante llevar a cabo un análisis de sensibilidad,
para investigar el efecto que tendrı́a sobre la solución óptima que proporciona
el método sı́mplex el hecho de que los parámetros tomen otros valores posi-
bles. En general, habrá algunos parámetros a los que se les pueda asignar
cualquier valor razonable sin que afecten la optimalidad de esta solución. Sin
embargo, también habrá parámetros con valores probables que lleven a una
nueva solución óptima. Esta situación es seria, en particular si la solución
original adquiere valores muy inferiores en la función objetivo, o tal vez no
factibles.
Por tanto, un objetivo fundamental del análisis de sensibilidad es identificar
los parámetros sensibles (es decir, los parámetros cuyos valores no pueden
cambiar sin que cambie la solución óptima). Para coeficientes de la función
objetivo que no están clasificados como sensibles, también puede resultar de
gran utilidad determinar el intervalo de valores del parámetro para el que la
solución óptima no cambia. (Este intervalo de valores se conoce como inter-
valo permisible para ese coeficiente.) En algunos casos, el cambio del valor
1.4. TEORÍA DE DUALIDAD Y ANÁLISIS DE SENSIBILIDAD 55
• Cambios en las bi
Programación No Lineal
max f (x)
s.a gi (x) ≤ bi , ∀i = 1, 2, . . . , m
x≥0
1
Análogamente, puede tratarse de un problema de minimización
min f (x)
s.a gi (x) ≥ bi , ∀i = 1, 2, . . . , m
x≥0
57
58 CAPÍTULO 2. PROGRAMACIÓN NO LINEAL
En notación extendida:
max f (x1 , x2 , . . . , xn )
s.a g1 (x1 , x2 , . . . , xn ) ≤ b1
g2 (x1 , x2 , . . . , xn ) ≤ b2
..
.
gm (x1 , x2 , . . . , xn ) ≤ bm
xj ≥ 0, ∀j = 1, 2, . . . , n
d2 f
∀x, ≤ 0,
dx2
es decir, cuando la función es cóncava hacia abajo, o simplemente cóncava.
6b b
z = 198
3 b b
(3, 3)
2
0b b
0 1 2 3 4 5 6 7
Obsérvese que λx′′ + (1 − λ)x′ es el segmento que une los dos puntos x′
y x′′ , por lo que en una función cóncava hacia arriba (convexa) el segmento
queda por encima de la función, mientras que en una función cóncava hacia
abajo (cóncava) el segmento queda por debajo. Por ejemplo, f (x) = x2 es
convexa, f (x) = −x2 es cóncava, f (x) = x es simultáneamente cóncava y
convexa, f (x) = x3 no es ni cóncava ni convexa. En la Figura 2.2 observamos
gráficamente los diferentes casos de funciones según su concavidad.
max f (x)
s.a xj ≥ 0
min f (x)
s.a gi (x) ≤ bi
f (x) convexa y g1 (x), g2 (x), . . . , gm (x) convexas aseguran que un mı́nimo local es global.
64 CAPÍTULO 2. PROGRAMACIÓN NO LINEAL
donde cada fj (xj ) incluye sólo los términos con xj . Como en el Ejem-
plo 2.1, f (x1 , x2 ) = 54x1 − 9x21 + 78x2 − 13x22 es una función 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
programación convexa, pues cualquier problema de programación sepa-
rable se puede aproximar muy de cerca mediante uno de programación
lineal y, entonces, se puede aplicar el eficiente método sı́mplex.
donde
Pk (x) = xa1k1 xa2k2 · · · xankn , k = 1, 2, . . . , N
2.2. TIPOS DE PROBLEMAS DE PNL 65
w = F (z), w ≥ 0, z≥0
w t z = 0.
wi = 0 ó zi = 0 i = 1, 2, . . . , p.
df (x∗ )
= 0.
dx
f ′ (x) = 0,
Método de Bisección
12 − 12x3 − 12x5 = 0.
Método de Newton
⋄
Ejemplo 2.3. Aplicación del Método de Newton
Utiliza el Método de Newton con tolerancia ǫ = 0.00001 para resolver el
problema del Ejercicio 2.2 anterior:
∂f (x∗ )
xj = x∗j + t , ∀j = 1, 2, . . . , n
∂xj
⋄
2.3. OPTIMIZACIÓN NO RESTRINGIDA 71
La versión general del método de Newton está diseñada para resolver prob-
lemas de optimización restringida con variables múltiples. La idea básica es la
misma, es decir, se trabaja con una aproximación cuadrática de la función ob-
jetivo f (x), donde, en este caso, x = (x1 , x2 , . . . , xn ). Esta función cuadrática
de aproximación se obtiene al truncar la serie de Taylor alrededor de la solución
de prueba actual después del término de la segunda derivada. Después, esta
función aproximada se maximiza (o minimiza) exactamente para obtener la
nueva solución de prueba para iniciar la siguiente iteración. Cuando la función
objetivo es cóncava y tanto la solución de prueba actual x como su gradiente
∇f (x) se escriben como vectores columna, la solución x∗ que maximiza la
función cuadrática de aproximación tiene la forma
3. gi (x∗ ) − bi ≤ 0, i = 1, 2, . . . , m
4. ui (gi (x∗ ) − bi ) = 0, i = 1, 2, . . . , m
5. x∗j ≥ 0, j = 1, 2, . . . , n
6. ui ≥ 0, i = 1, 2, . . . , m
• (Condiciones suficientes)
Sea f (x) cóncava y g1 (x), g2 (x), . . . , gm (x) convexas (es decir, se trata
de un problema de programación convexa), donde todas estas funciones
satisfacen las condiciones de regularidad y x∗ satisface las condiciones
KKT. Entonces, x∗ es una solución óptima.
max f (x) = cx + 12 xt Qx
s.a Ax ≤ b
x≥0
donde c ∈ IRn es un vector fila y x ∈ IRn y b ∈ IRn son vectores columna.
Q = (qij ) ∈ Mn×n y A = (aij ) ∈ Mm×n son matrices y el superı́ndice t denota
la transpuesta. Los elementos qij de Q son constantes dadas tales que qij = qji
(es decir, Q es una matriz simétrica, Qt = Q). Ası́, la función objetivo se
expresa en términos de estas qij , los elementos cj de c y las variables xj , de la
siguiente manera:
n n n
1 X 1 XX
f (x) = cx + xt Qx = cj xj + qij xi xj
2 j=1
2 i=1 j=1
∇2 f (x) = Q.
3. x1 + 2x2 − 30 ≤ 0
5. x1 ≥ 0, x2 ≥ 0
6. u1 ≥ 0
76 CAPÍTULO 2. PROGRAMACIÓN NO LINEAL
−Qx + At u − y = ct ,
Ax + v = b
x, u, y, v ≥ 0
xt y + ut v = 0
donde los elementos del vector columna u ∈ IRm son las ui de las condiciones
KKT y los elementos de los vectores columna y ∈ IRn y v ∈ IRm son variables
de holgura.
Como se supone que la función objetivo del problema original es cóncava y
como las funciones de restricción son lineales y, por tanto, convexas, se puede
aplicar el Teorema 2.1. Ası́, x es óptima si y sólo si existen valores de y,
u y v tales que los cuatro vectores juntos satisfacen todas estas condiciones.
Ası́ pues, el problema original se reduce al problema equivalente de encon-
trar una solución factible para estas restricciones. Es interesante observar que
este problema equivalente es un ejemplo del problema de complementariedad
lineal que se introdujo en la Sección 2.2, y que una restricción clave de este
problema de complementariedad lineal es precisamente su restricción de com-
plementariedad.
agrega la variable una variable artificial por la izquierda) o bi < 0 (se resta una
variable artificial por la izquierda y después se multiplican los dos lados por
−1), con el fin de usar estas variables artificiales (que se denotan por zj ) como
variables básicas iniciales del problema revisado. (Observe que esta selección de
variables básicas iniciales satisface la restricción de complementariedad, puesto
que como variables no básicas x = 0 y u = 0, de manera automática.) Después
se utiliza la fase 1 del método de dos fases para encontrar una SBF para el
problema real; es decir, se aplica el método sı́mplex (con una modificación) al
siguiente problema de programación lineal
X
min z = zj
j
min z = z1 + z2
4x1 −4x2 +u1 −y1 +z1 = 15
−4x1 +8x2 +2u1 −y2 +z2 = 30 (2.3)
x1 +2x2 +v1 = 30
x1 , x2 , u1, y1 , y2 , v1 z1 , z2 ≥ 0
La restricción de complementariedad adicional
x1 y1 + x2 y2 + u1 v1 = 0
no se incluye de manera explı́cita, porque el algoritmo garantiza que se satisfaga
esta restricción de manera automática con la regla de entrada restringida.
En particular, en cada uno de los tres pares de variables complementarias
siempre que una de las dos variables sea ya una variable básica, la otra se
excluye de las candidatas como variable básica entrante. Recuerde que sólo
las variables diferentes de cero son variables básicas. Dado que el conjunto
inicial de variables básicas del problema de programación lineal (z1 , z2 y v1 )
proporciona una SBF inicial que satisface la restricción de complementariedad,
no hay manera de violar esta restricción con ninguna de las SBF subsiguientes.
En la Tabla 2.9 se muestran los resultados de la aplicación del método
sı́mplex modificado a este problema.
En la iteración inicial se presenta el sistema de ecuaciones inicial después
de convertir de minimización de z a maximización de −z y de eliminar alge-
braicamente las variables básicas iniciales de la ecuación (0). Las tres itera-
ciones proceden igual que en el método sı́mplex normal, excepto por la elimi-
nación de ciertos candidatos para la variable básica entrante, según la regla
de entrada restringida. En la iteración 1 se elimina u1 como candidato
porque su variable complementaria v1 es ya una variable básica (de todas man-
eras, habrı́a entrado x2 puesto que | − 4| > | − 3|). En la iteración 2 se
elimina tanto u1 como y2 (puesto que sus complementarias v1 y x2 son vari-
ables básicas) y de manera automática se elige x1 como único candidato con
coeficientes negativos en la fila (0), mientras que el método sı́mplex normal
habrı́a permitido la entrada de x1 o bien de u1 , porque están empatadas con el
coeficiente más negativo. En la iteración 3 se eliminan y1 y y2 (porque x1 y x2
son variables básicas). Esta vez u1 no se elimina, puesto que v1 ya no es una
variable básica, ası́ que se elige u1 como variable entrante. La solución óptima
que resulta para esta fase del problema es x1 = 12, x2 = 9, u1 = 3, mien-
tras el resto de las variables son nulas. Además, se satisfacen las condiciones
KKT del problema original, por lo que la solución óptima para el problema de
programación cuadrática es (x1 , x2 ) = (12, 9) con z = 270.
80 CAPÍTULO 2. PROGRAMACIÓN NO LINEAL
81
82 REFERENCIAS
[12] G. Pérez and M. Garı́n, “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.
[14] G. Pérez and M. Garı́n, “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.
[22] J. Nash, “The (dantzig) simplex method for linear programming,” Com-
puting in Science & Engineering, pp. 29–31.