0% encontró este documento útil (0 votos)
72 vistas15 páginas

Tema 3 - Material UNIR

Este documento presenta un resumen del método simplex para la optimización de funciones lineales con múltiples variables. Explica cómo estandarizar los problemas de optimización lineal para ponerlos en una forma canónica requerida por el método simplex, que incluye minimizar una función objetivo lineal sujeto a restricciones lineales de igualdad y la condición de no negatividad de las variables. También define soluciones básicas y no básicas.

Cargado por

emdiazpu
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
72 vistas15 páginas

Tema 3 - Material UNIR

Este documento presenta un resumen del método simplex para la optimización de funciones lineales con múltiples variables. Explica cómo estandarizar los problemas de optimización lineal para ponerlos en una forma canónica requerida por el método simplex, que incluye minimizar una función objetivo lineal sujeto a restricciones lineales de igualdad y la condición de no negatividad de las variables. También define soluciones básicas y no básicas.

Cargado por

emdiazpu
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 15

Tema 3

Optimización

El método simplex
Índice
Esquema. . . . . . . . . . . . . . . . . . . . . . . 2

Ideas clave . . . . . . . . . . . . . . . . . . . . . . 3

3.1 Introducción y objetivos . . . . . . . . . . . . . 3

3.2 Estandarización de problemas . . . . . . . . . . . 4

3.3 El método Simplex . . . . . . . . . . . . . . . 10


Esquema

Optimización
2
Tema 3. Esquema
Ideas clave

3.1 Introducción y objetivos

En este capítulo nos vamos a centrar en la optimización de funciones lineales con múl-
tiples variables. El método clásico para encarar este tipo de problemas es el método
simplex. El simplex es un método iterativo que requiere una cierta forma estándar
del problema. Los problemas en forma estándar son aquellos que pueden escribirse
como:

minimizar z = ct x,

sujeto a Ax = b,

con x ≥ 0.

Aquí, x y c son vectores de dimensión n, b es un vector de coeficientes no negativos


y dimensión m y A es una matriz m × n a la que llamaremos matriz de restricciones.
Notemos que en este problema de minimización todas las variables se imponen no-
negativas. Está claro que los problemas de maximización del tipo z = ct x se pueden
solucionar minimizando z̃ = −ct x.

Por otro, en general los problemas no nos serán dados con esta forma, la idea es que,
ampliando el número de dimensiones del sistema, podemos reducir un problema que
no está en forma estándar a uno que sí lo está. Esto lo veremos en la siguiente sección
de este capítulo. Recuperemos el problema de minimización estándar. Vamos a asu-
mir que la matriz A tiene rango máximo i.e. sus filas son linealmente independientes.
Notemos que la hipótesis del rango máximo no implica una pérdida de generalidad
demasiado preocupante ya que, si A no tiene rango máximo, entonces o bien las res-
tricciones son inconsistentes o bien son redundantes (dependiendo, claro está, de la

Optimización
3
Tema 3. Ideas clave
forma del vector b). Si las restricciones son inconsistentes, entonces el problema no
tiene solución. Si las restricciones son redundantes, se pueden eliminar del problema.
En caso de que n = m, entonces Ax = b tiene una única solución y se determina x (la
región de soluciones factibles consiste en un sólo punto). Si x ≥ 0, entonces esa sería
la única solución del problema de minimización. Por otro lado, si x < 0, el problema
no tendría solución. Si m > n, el sistema de restricciones no tendría, en la mayoría de
casos, solución.

Vamos a definir ahora solución básica de un problema en forma estándar. Una solución
es básica si

I x satisface las restricciones Ax = b,

I las columnas de la matriz A que corresponden a valores no nulos de x son lineal-


mente independientes.

Como la matriz A tiene rango máximo, es posible separar las componentes del vector
x en dos subvectores. Uno con n − m variables no básicas (xN ) las cuales son cero y
otro vector con m variables básicas (xB ).

3.2 Estandarización de problemas

Existe una gran variedad de formas equivalentes de representar un problema de op-


timización lineal. La mayoría de ellas son útiles en las circunstancias adecuadas. De
forma habitual, cuando se formula un método para solucionar un problema de pro-
gramación lineal, se asume como hipótesis una cierta forma del problema. En este
tema formularemos el método simplex asumiendo que el problema lineal está formu-
lado en la llamada forma estándar. Diremos que un problema de optimización lineal

Optimización
4
Tema 3. Ideas clave
está expresado en forma estándar si se escribe de la siguiente manera:

minimizar z = ct x,

sujeto a Ax = b,

con x ≥ 0 y b ≥ 0.

Aclaramos que x y b son vectores de dimensión n, b es un vector de dimensión n y


A es una matriz de dimensiones m × n, la matriz de restricciones. Especificamos que
las condiciones que piden vector no negativo significan que cada una de sus compo-
nentes es no negativa. Notamos que la forma estándar se caracteriza por ser un pro-
blema de minimización (como todos los que tratamos en este curso) cuyas variables
son no negativas (esto se escribe como una desigualdad en el problema), el resto de
restricciones se escriben como igualdades y el término independiente b también es no
negativo.

Ejemplo 1.
El siguiente problema de optimización lineal

minimizar z = −4x1 − 5x2 + 3x3 ,

sujeto a 3x1 − 2x2 + 7x3 = 7,

8x1 + 6x2 + 6x3 = 5,

con x1 , x2 , x3 ≥ 0,

está escrito en forma estándar. Así, tenemos n = 3 variables y m = 2 restriccio-


nes. Además
   
x 4    
 1   3 −2 7 7
x = x2  , c = −5 , A =  , b =  .
   
    8 6 6 5
x3 3

Todos los problemas de optimización lineal se pueden escribir en su forma estándar.


Por escribir un problema en su forma estándar entendemos encontrar un problema en
forma estándar que tiene la misma solución que el original. Dado un problema de pro-

Optimización
5
Tema 3. Ideas clave
gramación lineal general, puede haber diversos motivos por los cuales el problema no
se puede considerar estandarizado. Esto es, puede ser un problema de maximización,
en vez de uno de minimización, puede que las variables del problema tengan permiti-
do tomar valores negativos, que algunas restricciones estén dadas por inecuaciones,
etc. Vamos a repasar, uno por uno estos problemas para ver como se solucionan.

1. Es un problema de maximización: Este problema, de hecho, ya se ha comentado


en el Tema 1. Para resolver esta cuestión simplemente hay que observar que, cam-
biamos el signo a la función objetivo, el máximo de la función original coincidirá con
el mínimo de la nueva función objetivo. Por ejemplo el problema de maximización:

maximizar z = x1 + x2 − 3x3 ,

es equivalente a
minimizar z̄ = −x1 − x2 + 3x3 .

2. Alguno (o todos) de los elementos de b son negativos: Solamente tenemos que


cambiar el signo a la restricción correspondiente. En caso de que la restricción ven-
ga dada por una desigualdad, ésta se invertirá. Por ejemplo, si tenemos un proble-
ma cualquiera sujeto a

−2x1 + x2 = −1,

x1 − 5x2 ≥ −5,

podemos escribir esas restricciones de manera equivalente como

2x1 − x2 = 1,

−x1 + 5x2 ≤ 5.

Aquí, hemos asumido que una de las restricciones venía dada por una igualdad y
otra por una desigualdad. Naturalmente cualquier combinación posible se puede
tratar de forma similar.

3. Las variables tienen cotas distintas de cero: En el problema estándar, la única des-

Optimización
6
Tema 3. Ideas clave
igualdad permitida es aquella que especifica que las variables son no negativas. Por
lo tanto, una condición del tipo
x1 ≥ 5,

no es aceptable. En este caso tenemos una cota inferior de la variable. Podemos


introducir una variable adicional x̄1 = x1 − 5. La restricción x1 ≥ 5 es equivalente
a la restricción x̄ ≥ 0. El caso en que el problema especifica una cota superior, por
ejemplo x1 ≤ 5, no puede tratarse con la misma técnica. Si intentáramos hacer
lo mismo, terminaríamos con una condición tipo x̄1 ≤ 0, lo cual tampoco está
permitido. La solución más elemental (aunque no la única) para este problema es
incluir esta cota superior de la variable como una restricción más, ampliando así la
matriz de restricciones.

4. Las variables no están acotadas: Un problema distinto al anterior es aquel en que


no se especifica ninguna cota (superior o inferior) para alguna variable. En este caso
se permite que las variables tomen cualquier valor y eso tampoco está permitido
en la formulación estándar. Este tipo de variables, se llaman variables libres. Si te-
nemos una variable libre x1 podemos introducir dos nuevas variables no negativas,
x̄1 y x̃1 , de manera que se cumpla

x1 = x̄1 − x̃1 , x̄1 , x̃1 ≥ 0.

5. Las restricciones están dadas por desigualdades: La última inconveniencia que te-
nemos que afrontar es aquella en que alguna (o todas) las restricciones vengan
dadas por desigualdades. Por ejemplo, supongamos que tenemos una restricción

2x1 + 3x2 − 5x3 ≤ 7.

Entonces podemos introducir una variable de holgura s1 (la letra ’s’ hace referencia
a la palabra inglesa slack) y la restricción equivalente expresada por una igualdad:

2x1 + 3x2 − 5x3 + s1 = 7.

La substitución de la restricción en forma de desigualdad por la restricción en forma

Optimización
7
Tema 3. Ideas clave
de igualdad, se complementa con la adición de la restricción s1 ≥ 0 que también
es aceptada en forma estándar. En caso de que la restricción venga dada por una
desigualdad de tipo
x1 + 3x2 − 2x3 ≥ 6,

se añade una variable de exceso, e2 , de la siguiente manera

x1 + 3x2 − 2x3 − e2 = 6.

Como en el caso anterior, este cambio se acompaña de la restricción e2 > 0.

Ejemplo 2.
Teniendo en cuenta las transformaciones mencionadas, vamos a reescribir el si-
guiente problema lineal en forma estándar:

maximizar z = −5x1 − 3x2 + 7x3 ,

sujeto a 2x1 + 4x2 + 6x3 = 7,

3x1 − 5x2 + 3x3 ≤ 5,

− 4x1 − 9x2 + 4x3 ≤ −4,

con x1 ≥ −2, 0 ≤ x2 ≤ 4, x3 libre.

Resolveremos las distintas cuestiones por orden.

1. En primer lugar, cambiamos de signo a la función objetivo. Esto es, en vez de


maximizar la función dada, minimizaremos

z̄ = 5x1 + 3x2 − 7x3 .

2. Observamos que la tercera restricción tiene un número negativo al lado dere-


cho. Multiplicamos, también, por −1 a ambos lados de la desigualdad. Esto es,
la tercera restricción se substituye por

4x1 + 9x3 − 4x3 ≥ 4.

Optimización
8
Tema 3. Ideas clave
3. Abordamos ahora las cotas incorrectas. x1 está acotada inferiormente por −2,
introducimos, pues, una nueva variable x̄1 ≥ 0 tal que

x̄1 = x1 + 2.

Notamos que x2 es una variable no negativa acotada superiormente por 4.


Introduciremos esta condición en la lista de restricciones.

4. x3 está definida como una variable libre. Introducimos dos variables no nega-
tivas, x̄3 y x̃3 , tales que
x3 = x̄3 − x̃3 ,

Antes de arreglar las inecuaciones, vamos a ver en qué estado se encuentra el


problema lineal

minimizar z̄ = 5x̄1 + 3x2 − 7x̄3 + 7x̃3 − 10,

sujeto a 2x̄1 + 4x2 + 6x̄3 − 6x̃3 = 11,

3x̄1 − 5x2 + 3x̄3 − 3x̃3 ≤ 11,

4x̄1 + 9x2 − 4x̄3 + 4x̃3 ≥ 12,

x2 ≤ 4,

con x̄1 , x2 , x̄3 , x̃3 ≥ 0.

Notamos que los términos independientes han sido modificados a consecuen-


cia de la translación hecha en la variable x1 . Por ejemplo, en la función obje-
tivo, al substituir x1 por x̄1 − 2, tenemos 5(x̄1 − 2) = 5x̄1 − 10. Para nuestra
comodidad, podemos eliminar este término al realizar el cambio z̃ = z̄ + 10.
El resto de términos independientes, que también quedan afectados no son
problemáticos.

5. Solo nos falta ocuparnos de las desigualdades. En la segunda restricción, intro-


duciremos una variable de holgura s2 ; en la tercera restricción, una de exceso,
e3 , y, en la nueva restricción, otra variable de holgura s4 . El problema, ya en

Optimización
9
Tema 3. Ideas clave
forma estándar, se escribe como

minimizar z̃ = 5x̄1 + 3x2 − 7x̄3 + 7x̃3 ,

sujeto a 2x̄1 + 4x2 + 6x̄3 − 6x̃3 = 11,

3x̄1 − 5x2 + 3x̄3 − 3x̃3 + s2 = 11,

4x̄1 + 9x2 − 4x̄3 + 4x̃3 − e3 = 12,

x2 + s4 = 4,

con x̄1 , x2 , x̄3 , x̃3 s2 , e3 , s4 ≥ 0.

3.3 El método Simplex

Vamos a considerar un problema en forma estándar y derivar fórmulas generales para


el método simplex. Vamos a suponer que el problema tiene n variables, de las cuales
m son linealmente independientes. Recordemos que el problema viene dado por:

minimizar z = ct x,

sujeto a Ax = b,

con x ≥ 0.

Supongamos que la solución x se ordena


 
xB
x= 
xN

donde xB es el vector de variables básicas y xN es el vector de variables no-básicas


que se inicializa en cero. La función objetivo se puede escribir como

z = ctB xB + ctN xN .

Notemos que el vector c ha sido descompuesto en cB y cN según si actúa en las varia-


bles básicas o las no-básicas. Podemos hacer lo propio con la matriz A, de manera que

Optimización
10
Tema 3. Ideas clave
escribimos las restricciones como BxB + N xN = b. Podemos, entonces, expresar las
soluciones básicas como:
xB = B −1 b − B −1 N xN .

Notemos que, variando los valores del vector xN podemos obtener todos los valores
posibles de Ax = b. Podemos, arreglar la fórmula de la función objetivo de la siguiente
manera:
z = ctB B −1 b + (ctN − cTB B −1 N )xN .

Definiendo y = (ctB B −1 )t = B −t cB , podemos escribir: z = y t b + (ctN − y t N )xN . Al


vector y lo llamaremos el vector de multiplicadores. Como la elección inicial de xN es
cero. Al inicio del programa, las soluciones básicas y el óptimo están dadas por

xB = B −1 b, z̃ = ctB B −1 b.

Ejemplo 3.
Planteamos las fórmulas generales del método simplex para el problema

minimizar x = −x1 − 2x2 ,

sujeto a − 2x1 + x2 + x3 = 2,

− x1 + 2x2 + x4 = 7,

x1 + x5 = 3,

con x1 , x2 , x3 , x4 , x5 ≥ 0.

Tenemos
 
−1
     
−2 1 1 0 0 2 −2
 
     
A = −1 2 0 1 0 , b = 7 , c =  0  .
     
     
 
1 0 0 0 1 3 0
 
0

Separamos el vector x en operaciones básicas y no básicas, x = (xB , xN )t con

Optimización
11
Tema 3. Ideas clave
xB = (x1 , x2 , x3 )t y xN = (x4 , x5 )t . Entonces
     
−2 1 1 0 0 1 0 0
     
B = −1 2 0 , B −1 = 0 1/2 1/2 , N = 1 0 .
     
     
1 0 0 1 −1/2 3/2 0 1

Por lo tanto, ctB = (−1, −2, 0) y ctN = (0, 0). El programa se inicia con vector de
soluciones básicas  
3
 
xB = B −1 b = 5 .
 
 
3

El valor de la función objetivo es

ctB B −1 b = −13.

En caso que xN 6= 0, tenemos una fórmula general para evaluar las variables
básicas:
   
3 0 1  
    x
4
xB = B −1 b − B −1 N xN = 5 −  1/2 1/2   .
   
    x5
3 −1/2 3/2

Finalmente, la fórmula general para la función objetivo es


 
x4 
y t b + (ctN − y t N )xN = −13 + 1 2   ,
x5

donde y t := ctB B −1 = (0, −1, −2).

Vamos a denotar por c̃j la entrada j del vector c̃tN = (ctN −ctB B −1 N ) que corresponde
a xj . El coeficiente c̃j se llama costo reducido de xj . Tenemos

z = z̃ + c̃tN xN ,

Si a la variable no básica xj se le asigna el valor no nulo , entonces la función objetivo

Optimización
12
Tema 3. Ideas clave
cambiará en c̃j .

Para chequear la optimalidad, examinamos qué pasaría a la función objetivo si cada


una de las variables no básicas se incrementara desde cero a una pequeña cantidad.
Si c̃j > 0, la función objetivo incrementará, si c̃j = 0, la función objetivo no cambiará
y, por último, si c̃j < 0 la función objetivo decrecerá. Esto es, si existe j para la cual,
c̃j < 0, entonces función objetivo se puede mejorar incrementando xj . En ese caso,
las variables xr con c̃r < 0 pueden entrar a formar parte de la base. Para hacer eso,
uno tiene que comprobar que la condición de no-negatividad de la base no es violada.
Recordemos que las variables básicas están dadas por:

xB = B −1 b − B −1 N xN ,

Con excepción de xr , todas las variabes de xN son nulas. Luego,

xB = b̃ − Ãr xr ,

donde Ãr es el vector B −1 Ar y Ar es la columna r de la matriz A. La última ecuación,


se puede escribir, componente a componente como:

(xB )i = b̃i − ãi,r xr .

Si ãi,r > 0, entonces (xB )i decrecerá cuando xr decrece. La componente (xB )i se


anulará cuando xr = b̃i /ãi,r . Si ãi,r < 0, entonces (xB )i incrementará. En caso de que
ãi,r = 0, entonces (xB )i no cambiará.

Como hemos dicho antes, se permite a la variable xr crecer desde cero, siempre que
las demás variables sigan siendo no-negativas, luego la cantidad límite por la que po-
demos incrementar xr viene dada por
 
b̃i
x̄r = min1≤i≤m | ãi,r > 0 .
ãi,r

Este ratio mínimo identifica una nueva variable no básica y, por ende, crea una nueva

Optimización
13
Tema 3. Ideas clave
solución básica factible (con xr como nueva variable básica). Las formulas

xB ← xB − Ãr x̄r , z̃ ← z̃ + c̃r x̄r ,

se pueden utilizar para actualizar las variables básicas y los valores de la función ob-
jetivo. A la variable xr se le asigna el valor límite x̄r y el resto de variables no básicas
seguirán siendo cero.

Si ãi,r ≤ 0 para todos los valores de i, entonces ninguna de las variables básicas decre-
cerá si el valor xr crece a un valor distinto de cero, luego xr puede ser incrementado
arbitrariamente. En este caso, la función objetivo decrecerá indefinidamente mientras
xr → ∞. Eso indica que el problema no tiene un mínimo (el problema es no acotado).

Podemos ahora escribir el algoritmo del método del simplex. Recordemos que el mé-
todo se inicializa con una matriz B correspondiente a una solución básica xB = b̃ =
B −1 b ≥ 0. Los pasos del algoritmo son los siguientes:

1. Calculamos el vector y t = ctB B −1 . Calculamos los coeficientes, c̃tN = ctN − y t N .


Si c̃tN ≥ 0, entonces la actual base es óptima. En otro caso, seleccionamos una
variable xr tal que c̃r < 0 para entrar en la base.

2. Calculamos Ãr = B −1 Ar . Encontramos un índice s que satisface


 
b̃s b̃i
= min1≤i≤m | ãi,r > 0 .
ãs,r ãi,r

Si ãi,r ≤ 0 para todo i, entonces el problema es no acotado.

3. Actualizamos la matriz B y el vector de variables básicas xB .

Optimización
14
Tema 3. Ideas clave

También podría gustarte