x - Universidad Nacional del Callao.

Anuncio
I. RESUMEN
Existen muchos problemas tanto en la ciencia, la tecnología así como la
economía, donde se usa la programación matemática u optimización la
cual busca hallar una solución que permita formular y resolver diversos
problemas orientados a la toma de decisiones.
En problemas de optimización es indispensable el conocimiento de
determinados métodos que permitan la solución de dichos problemas.
El “Método Simplex” es un método algebraico sistemático que examina
las esquinas, llamadas vértices o puntos extremos de un conjunto
restringido de programación lineal en busca de una solución óptima.
El “Método Simplex” muestra la eficacia de este método en la
formulación y solución de diversos problemas de optimización y demás.
Este método permite ver las aplicaciones a las ramas de las ciencias é
ingeniería.
3
II. INTRODUCCCIÓN
El método simplex fue creado por George B. Dantzig en los últimos años
de la década de los cuarenta (1947), fue hecho fundamentalmente en la
recién desarrollada área investigación de operaciones, desde entonces
Dantzig y otros han continuado su desarrollo.
El desarrollo de la programación lineal se sitúa entre los avances
científicos más importantes de la mitad del siglo XX, y debemos estar de
acuerdo con esta afirmación si tenemos en cuenta que su impacto desde
1950 ha sido extraordinario.
La resolución de problemas de
programación lineal de grandes dimensiones lo permite muy eficazmente
“El Método Simplex”, siendo este un algoritmo el cual sirve para
determinar con eficiencia cuando una solución existe.
El método simplex es un procedimiento operativo, el cual a medida que
se avanza va mejorando, hasta cuando ya no sea posible mejorar más
dicha solución.
2.1. PLANTEAMIENTO DEL PROBLEMA DE INVESTIGACIÓN
Existen muchos problemas tanto de la ciencia, la tecnología así
como la economía donde se trata de asignar o compartir
determinados recursos sólo disponibles en cantidades limitadas,
donde usamos la programación matemática u optimización la cual
busca hallar una solución que permita formular y resolver diversos
problemas orientados a la toma de decisiones.
4
En problemas de optimización es indispensable el conocimiento de
determinados
métodos
que
permitan
la solución de dichos
problemas; esto nos lleva, en forma natural al planteamiento del
siguiente problema:
¿Es posible hallar un método que permita la resolución de
problemas de optimización de manera eficaz?
2.2. OBJETIVOS Y ALCANCES DE LA INVESTIGACIÓN
A. Objetivo general:
Desarrollar el Método Simplex y algunas de sus aplicaciones.
B. Objetivos específicos:

Mostrar los conceptos básicos de Programación lineal.

Desarrollar la Programación Lineal que es la técnica de
programación matemática que busca encontrar aquella
solución o alternativa de entre las muchas posibles de un
problema que mejor identifica u en determinado criterio
lineal atendiendo a diversas condiciones también lineales.

Elaborar un marco teórico del Método Simplex.

Mostrar algunas aplicaciones del Método Simplex.
2.3. IMPORTANCIA Y JUSTIFICACIÓN DE LA INVESTIGACIÓN
El avance de la ciencia y la tecnología hacen indispensable el
conocimiento de herramientas que permitan dar solución a
problemas presentados, para lo cual la optimización sea un camino
de solución.
5
El conocimiento del Método Simplex es importante porque nos
permite dar solución a problemas de programación lineal que es
una de las metodologías más importantes para formular y resolver
diversos problemas orientados a la toma de decisiones en las
diferentes áreas de la Ingeniería, la Economía además j uega un
papel fundamental no solo en optimización y economía, sino también
en planificación estratégica, análisis de algoritmos, problemas
combinatorios, criptografía, y en muchos otros campos y en
particular, en la Investigación Operativa y que surge como la forma
más natural de abordar dichos problemas.
La investigación queda justificada por la importancia y el numero de
sus aplicaciones de este método y que nosotros desarrollaremos con
la idea de ser utilizada con facilidad.
6
III. MARCO TEORICO
3.1. NOCIONES PRELIMINARES
En este trabajo de investigación incluye la presentación de modelos y
algoritmos usados para resolver estos modelos, siendo uno de objetivos
resolver los problemas planteados (modelos) del mundo real, buscando
optimizar los resultados, que no es otra cosa que la respuesta óptima de
un problema matemático propuesto por el modelo.
Un modelo es una representación abstracta, un sustituto de la realidad,
siendo estos importantes porque captan la esencia de muchos
problemas importantes, pueden manejar un gran número de variables e
interacciones, además nos permiten usar el poder de las matemáticas
mano a mano con la capacidad y velocidad de las computadoras.
Cuando un modelo tiene limitantes, se conoce como modelo de
optimización restringida, que significa alcanzar los mejores resultados
(matemáticos) posibles considerando las restricciones.
La forma simbólica general de un modelo de optimización restringida, es:
Maximizar (o minimizar): f ( x 1 , x 2 , ..., x n )
Sujeta a las restricciones:
7

g 1 ( x 1 , x 2 , ..., x n )  b1


g 2 ( x 1 , x 2 , ..., x n )  b 2




g m ( x 1 , x 2 , ..., x n )  b m

Siendo:
-) La función f, la función objetivo,
-) La funciones g1, g2,…, gm las funciones restricción,
-) Las variables x1 , x2 , x3 ,..., xn se llaman variables de
decisión, los cuales deben tener solo valores no negativos (positivos o
nulos), llamadas condiciones de no negatividad.
-) A las constantes b1 , b2 , b3 ,..., bn se denominan parámetros (valor
numérico determinado), y

-) El conjunto de las relaciones g i ( x 1 , x 2 , ..., x n )  b i , son todas las

m restricciones, que limitan indirectamente los valores que pueden ser
asignados a las variables de decisión.
El modelo reconocerá
solamente las decisiones que satisfagan todas las restricciones,
incluyendo las condiciones de no negatividad, tales decisiones se
llaman decisiones factibles (permisible).
8
Cuando las restricciones de este modelo son lineales, se tiene el
importante caso del “modelo de programación lineal”.
Todos los modelos de programación lineal tienen en común dos
importantes rasgos: uno es la existencia de las restricciones
segundo una función objetivo que se va a maximizar o minimizar.
9
y el
3.2. PROGRAMACION LINEAL
La Programación Lineal es la técnica de programación matemática, u
optimización que busca encontrar aquella solución o alternativa de entre
las muchas posibles de un problema que mejor identifica un determinado
criterio lineal atendiendo a diversas condiciones también lineales.
La Programación Lineal surge como la forma más natural de abordar
muchos problemas de la ciencia, la tecnología o la economía donde se
trata de asignar o compartir determinados recursos sólo disponibles en
cantidades limitadas.
La formidable extensión de la programación lineal y el papel tan
importante que juega hoy en todos aquellos entornos donde se utiliza
para
la
asignación
de
recursos
de
cualquier
tipo
se
debe
fundamentalmente a dos hechos: La aparición en 1947 del denominado
método
simplex,
que
permite
la
resolución
de
problemas
de
programación lineal de grandes dimensiones muy eficazmente, y al
enorme desarrollo de los ordenadores.
La programación lineal juega un papel fundamental no solo en
optimización y economía, sino también en planificación estratégica,
análisis de algoritmos, problemas combinatorios, criptografía, y en
muchos otros campos.
10
La programación lineal se usa extensamente en problemas de
asignación de recursos. A fin de ilustrar esto, a continuación daremos el
ejemplo de un problema simple de una ocupación cotidiana y
mostraremos como formular el modelo matemático para ello.
Un fabricante de cierto producto químico tiene dos plantas en las que
elabora. La planta X puede entregar a lo más 30 toneladas por semana
y la planta Y rinde a lo más 40 toneladas en el mismo lapso. El
fabricante quiere producir un total de
al menos 50
toneladas por
semana. Se mide la cantidad de partículas suspendidas determinadas
semanalmente en la atmósfera de una población cercana y se determina
que es de 20 libras por cada tonelada del producto fabricado por la
planta X y 30 libras por cada tonelada elaborada en la planta Y.
¿Cuántas toneladas deben fabricarse semanalmente en cada planta
para minimizar la cantidad total de partículas suspendidas en la
atmósfera?
Solución
Sean x y y las cantidades de toneladas del producto fabricado en las
plantas X y Y respectivamente, cada semana. Luego la cantidad total
producida por semana es: x  y .
Como se quiere producir al menos 50 toneladas por semana, se debe
tener: x  y  50 .
Como la planta X puede producir a lo más 30 toneladas, se tiene: x  30
De manera similar la planta Y, puede fabricar a lo más 40 toneladas por
semana, se debe tener: y  40
Y como x é y no pueden ser negativos, entonces: x  0
11

y0
La cantidad total de partículas suspendidas (en libras) en la atmósfera,
es:
z  20 x  30 y , lo cual se quiere minimizar.
Así, la formulación matemática del problema es:
Determinar los valores de x y y que minimicen:
z  20 x  30 y
Sujeto a las siguientes restricciones sobre x y y :
x  y  50
x  30
y  40
x0
y0
12
3.2.1. CONCEPTOS Y DEFINICIONES
La programación lineal trata de la búsqueda de la solución del
siguiente problema de criterio lineal:
Maximizar: b1 x1  b2 x2  b3 x3  ...  bn xn
Sujeto a
a11 x1  a12 x2  ...  a1n xn  c1
a 21 x1  a 2 2 x2  ...  a 2 n x n  c2


am1 x1  am 2 x2  ...  amn xn  cm
x1 , x2 , x3 ,..., xn  0
Donde:
-) A la función b1 x1  b2 x2  b3 x3  ...  bn xn se la denomina función
objetivo
(la cual busca usualmente maximizar o minimizar de
manera óptima un determinado producto);
-) A las funciones:
a i 1 x1  a i 2 x 2  ...  a i n x n  c i ;
i  1, 2, ....., n ,
se les llama restricciones o condiciones.
-) Las variables del problema x1 , x2 , x3 ,..., xn se denominan
variables de decisión y
13
-) A las constantes b1 , b2 , b3 ,..., bn se denominan coeficientes de
coste.
-) La matriz de coeficientes de las condiciones del problema A, es:
 a11 ... a1n 
A    


 am1 ... amn 
-) AC   c1 , c2 , c3 ,..., cn  se le denomina vector término de la
t
derecha.
-) Un vector x   x1 , x2 , x3 ,..., xn  que satisface todas las
t
condiciones se denomina factible.
Y el conjunto F de todos los vectores factibles constituye la región
factible.
Con notación vectorial, el problema de programación lineal se
plantea de la siguiente manera:
Minimice:
 bt , x 
Sujeto a:
Ax  c,
x0
La región factible es
F  x  R n : Ax  c, x  0 .
14
3.2.2. MODELO STANDARD DE PROGRAMACIÓN LINEAL
Optimizar Z  C 1 . X 1  C 1 . X 2  ...  C n X n .
Función objetivo.
Sujeta a a11 X 1  a11 X 2  ...  a1 n X n )  b1
a21 X 1  a21 X 2  ...  a2 n X n )  b1
Restricciones:
am 1 X 1  am 1 X 2  ...  amn X n )  bm
Debiendo ser:
X 1  0, X 2  0,..., X n  0
Donde:
X j : variables de decisión, j = 1,2.., n.
n : número de variables.
m : número de restricciones.
aij , bi , c j constantes, i  1,2.., m
Pasos para la construcción del modelo:
1) Definir las variables de decisión.
2) Definir el objetivo o meta en términos de las variables de decisión.
3) Definir las restricciones.
4) Restringir todas las variables para que sean no negativas.
15
3.2.3. FORMA ESTÁNDAR DE PROBLEMAS DE PROGRAMACIÓN
LINEAL (SLP).- Esta forma está dado como:
Minimice
 b ,x 
Sujeto a:
Ax  c,
x  0
Donde x es un vector de Rn, A es una matiz de orden nxn,
b  0 es un vector en Rn, y c en un vector en Rm.
3.2.4. FORMA INCORPORADA DE PROBLEMAS DE
PROGRAMACIÓN LINEAL (ILP). - Los problemas de
programación Lineal (SLP) pueden ser escritos de la siguiente
forma:
Minimice   b , x 
Sujeto a:
 A 
c
I  x  0


 
,
Donde:
-) I es la matriz identidad de orden nxn,
-) 0 es el vector cero en Rn.
Si nosotros denotamos la matriz del lado izquierdo por A y el
vector del lado derecho por c , eliminando las tildes, podemos
establecer el Problema de Programación Lineal (ILP) como:
16
Minimice   b , x 
Sujeto a:
Ax  c,
Donde:
-) A es una matriz de orden nxn,
-)
b  Rn y c  Rm ,
aquí hemos incorporado la condición x  0 en la matriz A y el
vector c.
TEOREMA .- Sea
ˆ
una solución de la forma incorporada de
problemas de programación lineal (ILP). Entonces existe un   0 en
Rm tal que ( ˆ ,  ) satisface lo siguiente:
(i)
Aˆ  c,
t
(ii) A   b ,
(iii)   0
(iv)  Aˆ  c,    0
(v)  b, ˆ    c,  
n
Si existe un ˆ  R y un  en Rm tal que satisface las condiciones de
la (i) al (iv), entonces ˆ
es una solución del ILP.
Demostración
(i) Es obvia por la definición de conjunto factible y de que ˆ es solución
del ILP.
17
(ii) y (iii) se prueba que ˆ no es un punto interior del conjunto factible X.
Sea ai que denota la i-ésima fila de la matriz A. Luego la matriz A se
subdivide en dos sub matrices AE, AI donde,
E  i : ai , ˆ   ci  ,
I  i : ai , ˆ   ci  ,
Como ˆ no es un punto interior de X el conjunto E   . AE denota la
submatriz de A de las filas ai con i  E , y AI la submatriz de A
consistiendo de las filas ai con i  I .
Afirmamos que el sistema
AE x  0,  b , x   0 …………….  * 
No tiene solución en x  R .
n
Intuitivamente, esto es claro, si xo fuera solución también  x 0 es
solución con   0 , luego tendríamos AE ( ˆ   x0 )  cE para   0
suficientemente pequeño.
Por continuidad deberíamos tener que AI ( ˆ   x0 )  cI luego, si el
sistema tiene solución deberíamos ser capaces de mover el conjunto
factible y al mismo tiempo incrementar  b, ˆ  o disminuir  b, ˆ  .
Esto contradice que ˆ es el óptimo.
18
Como el sistema  *  no tiene solución se sigue (Lema de Farkas) que
y  R mE donde mE es la dimensión del subespacio
existe un vector
generado por las filas de AE, tal que
AEt y  b,
y0
Por lo tanto, si mI es la dimensión del espacio generado por las filas de
AI entonces:
AEt y  AIt O  b,
Donde O es el vector cero en RmI.
Si tomamos  
 y,0
entonces   R
 y
At   ( AEt , AIt )    b,
0
n
y satisface
  0 ………..  * 1 
Así tenemos probado (ii) y (iii).
(iv) De  * 1  se observa que las componentes de  correspondientes a
los índices en I son cero.
Por la definición de E, A E ˆ  c E  0 , entonces:
 Aˆ  c,     ( AE ˆ  cE , AI ˆ  cI ),  y , 0    0
Esto demuestra (iv).
(vi) Usando (iv) y (ii) se tiene (v), esto es:
 c,     Aˆ ,     ˆ , At     ˆ , b 
19
Observaciones:
1) Una prueba alternativa de (iv) y (v) es establecer (v) primero y luego
usarlo para establecer (iv). Así.
 b, ˆ    At  , ˆ     , Aˆ 
A 
   y , 0  ,  E  ˆ 
 AI 
  y , AE ˆ    y , cE 
  ( y , 0), ( cE , cI )     , c 
Esto es (v).
Para establecer (iv), hacemos:
0   b, ˆ     , c 
  At  , ˆ    c,  
   , Aˆ    c,  
  Aˆ  c,  
2) Se sigue de (i) y (iii) que (iv) se cumple si y solo si para cada
i = 1,..,m
( ai , ˆ   ci )i  0 …………………..(iv)’
Es decir, (iv)’ es equivalente a (iv).
La condición (iv)’ es algunas veces llamado condición de holgura
complementaria. Esto establece que si existe holgura en la en la
i-ésima restricción en ˆ , es decir, si  ai , ˆ   ci entonces
i  0 .
20
3) Sea el problema de Programación lineal reformulado con X0 un
conjunto arbitrario de Rn. Es claro de la prueba que si ˆ
es una
solución de este problema, entonces las condiciones necesarias se
cumplen.
Recíprocamente, si existe un punto ˆ en X0 tal que las condiciones
necesarias se cumplen, entonces ˆ
es factible y el mínimo es
alcanzado en ˆ .
Nota:
La restricción dada por la inecuación
Ax  c, puede ser convertida
en una ecuación introduciendo un vector no negativo cuyas
componentes son llamadas variables de holgura y escribimos.
Ax    c,
 0
Así, el problema de Programación lineal formulado en puede ser
escrito como:
Minimice:
 (  b , 0), ( x,  ) 
Sujeto a
 x
( A, I )    c,
 
 0
x  0,
Es decir, el problema ILP puede ser escrito como un problema de
programación lineal canónico (CLP).
Minimice   b , x 
Sujeto a
21
Ax  c,
x0
El método Simplex es aplicado a problemas en forma canónica.
Recíprocamente, el problema CLP puede ser escrito como un
problema ILP escribiendo la restricción Ax = c como dos
desigualdades
restricción,
incorporando la restricción
Ax  c, y  Ax   c,
luego,
x  0 en la matriz se tiene:
Minimice   b , x 
Sujeto a:
 A
 c 
  A  x   c 
 
 
 I 
 0
 
 
COROLARIO 1.- Sea ˆ una solución del problema de programación
lineal estándar (SLP). Entonces existe un vector   0 en Rm tal que
( ˆ ,  ) satisface lo siguiente:
(i)
Aˆ  c, ˆ  0;
m
(ii)
 a
i 1
i
i
 bj ,
j  1,..., n ; cumpliéndose la igualdad si ˆ j  0
(iii)   0
(iv)
 Aˆ  c,    0
(v)
 b, ˆ    c,  
22
Si existe un ˆ  R y un  en Rm tal que satisface (i) al (v), entonces
n
ˆ es una solución del SLP.
COROLARIO 2.- Sea ˆ una solución del problema de programación
lineal canónico (CLP). Entonces existe un vector   0 en Rm tal que
( ˆ ,  ) satisface lo siguiente:
(i)
Aˆ  c, ˆ  0;
m
(ii)
 a
i 1
i
i
 bj ,
j  1,..., n cumpliéndose la igualdad si ˆ j  0
(iii) 
Aˆ  c,    0
(iv) 
b, ˆ    c,  
m
Si existe un ˆ  R y un   R tal que satisface (i) al (iv), entonces
n
ˆ es una solución del CLP.
23
3.3. EL METODO SIMPLEX Y ALGUNAS APLICACIONES
El método simplex es un algoritmo para resolver problemas de
Programación Lineal. Es un procedimiento iterativo que permite ir
mejorando la solución a cada paso. Esto concluye cuando no es posible
seguir mejorando dicha solución.
Este método fue desarrollado por George Bernard Dantzig (8 de
noviembre de 1914 – 13 de mayo de 2005) fue un matemático
reconocido y es considerado como el "padre de la programación lineal".
Recibió muchos honores, tales como la Medalla Nacional a la Ciencia en
1975 y el premio de Teoría John von Neumann en1974. Fue miembro de
la Academia Nacional de Ciencias, la Academia Nacional de Ingeniería y
la Academia Americana de Artes y Ciencias.
Obtuvo su grado de
bachiller en matemáticas y físicas en la Universidad de Maryland en
1936, su grado de magister en matemáticas en la Universidad de
Míchigan, y su doctorado en Berkeley en 1946. Recibió además un
doctorado honorario de la universidad de Maryland en 1976.
El Método Simplex,
permite la resolución de problemas de
programación lineal de grandes dimensiones muy eficazmente, y al
enorme desarrollo de los ordenadores.
El método simplex consiste en buscar sucesivamente otro vértice que
mejore el anterior, partiendo del valor de la función objetivo en un vértice
cualquiera. Como el número de vértices y de aristas es finito, siempre
se podrá encontrar la solución.
24
El método simplex se basa en la propiedad que dice si la función objetivo
f, toma su valor máximo en el vértice A, entonces hay una arista que
parte de A, a lo largo de la cual f aumenta.
Este método solo trabaja para restricciones que tengan un tipo de
desigualdad “  ” y coeficientes independientes mayores o iguales a 0,
(se estandariza para el algoritmo).
Si después de este proceso, aparezcan (o no varíen) restricciones del
tipo “  ” o “=” habrá que emplear otros métodos, siendo el método de
más común el método de Dos Fases.
Mostramos a continuación algunos ejemplos en R2.
Ejemplo1:
Minimice f ( x )  x 1  2 x 2
con las restricciones
 x1  x 2   1
x1  x 2  0
x1  2 x 2  4
x1  0 ,
x2  0
El conjunto factible está indicado en la siguiente figura, las curvas de
nivel f(x) = 0, f(x) = -1, están indicadas por las líneas punteadas.
Las flechas indican las direcciones de los vectores gradientes de f.
Desde que el vector gradiente indica la dirección de máximo crecimiento
de f. vemos de la figura que f alcanza su mínimo en el punto extremo
(
4 4
, ) del conjunto factible.
3 3
25
2
f ( x)
1
g( x)
h ( x)
0
1
2
3
4
5
v ( x)
u ( x)
1
2
x
Figura
Ejemplo 2:
Este ejemplo difiere del ejemplo anterior en que consideramos la
función f ( x )  x 1  x 2 , las curvas de nivel son paralelas a la recta
x 1  x 2  1 un segmento que es parte de la frontera del conjunto
factible. Como el gradiente de f es (1,1) y en este es la dirección de
máximo crecimiento de f, se sigue que f alcanza su mínimo en todos los
puntos frontera del conjunto factible que están en la recta x 1  x 2  1 .
En particular el mínimo se alcanza en los puntos extremos ( ½ , ½) y
(1,0).
26
Ejemplo 3:
Minimice f ( x )   x 1  x 2
Sujeto a
 x1  x 2  0
x1  2 x 2   2
x1  0 ,
x2  0
En este caso el conjunto factible no es acotado.
La curva de nivel f ( x )   6 es x1  x2  6 , como el gradiente de f es
(-1,-1). Se sigue del gráfico que este problema no tiene solución.
Un conjunto factible no acotado no implica que el problema de
programación lineal no tenga solución. Si modificamos este ejemplo
tomando f ( x )  x 1  x 2 el problema tiene una solución en (2,2).
Según los ejemplos considerados un problema de programación lineal
tiene o no solución y están en un punto extremo del conjunto factible.
Hay de hecho una tercera posibilidad, que el conjunto factible sea vacio.
Se demuestra que en un problema de programación lineal estas son
solamente las posibilidades.
27
3.3.1. EL MÉTODO SIMPLEX ES APLICADO A PROBLEMAS EN
FORMA CANÓNICA
Para colocar el problema del ejemplo 1 del método simplex en forma
canónica introducimos variables de holgura x 3 , x 4 , x 5 y escribimos el
problema como:
Minimice f ( x )  x 1  2 x 2
Sujeto a:
 x1  x2  x3  1
x1  x2  x4  0
x1  2 x2  x5  4
Desde que las variables
x3 , x4 , x5
no aparecen en la fórmula para f,
el problema con conjunto factible definido tiene su mínimo en
x1 
4
4
5
, x 2  , x 3  , x 4  0, x 5  0
3
3
3
28
3.3.2. PUNTOS EXTREMOS DE CONJUNTOS FACTIBLES
Lo que veremos a continuación es que si un problema de programación
lineal tiene solución, entonces existe un punto extremo en que este se
alcanza. Se puede demostrar esto para problemas en forma canónica
sin asumir que el conjunto factible es compacto, lo cual también se
cumple para problemas en forma estándar. También se puede dar una
caracterización analítica de los puntos extremos del conjunto factible
para problemas CLP.
El significado de estos resultados es que para una solución de un
problema de programación lineal podemos confinar nuestros resultados
a los puntos extremos del conjunto factible, puntos para los que tenemos
una caracterización analítica. El método Simplex es un algoritmo para
determinar eficientemente cuando una solución existe, y si es así, para
hallar un punto extremo que resuelve el problema.
Consideremos el problema de programación lineal en forma canónica
Maximice:  b , x 
Sujeto a
Ax  c,
x0
Como es usual en programación lineal se remplaza el objetivo de
minimizar
 b , x 
por el objetivo equivalente de maximizar
b ,x  .
Asumiremos que x, b están en Rn,
i)
mn
ii)
Ran(A) = m
c  Rm ,
29
A es de orden mxn y que
Teorema -
Un punto factible x0
es un punto extremo del conjunto
factible si y solo si las columnas Aj de la matriz A que corresponden a
componentes positivas de xo son linealmente independientes.
Corolario 1.- Un punto extremo del conjunto factible tiene a lo más m
componentes positivas.
Corolario 2.- El número de puntos del conjunto factible es menor o igual
que
m
n!
 
 n  m !(n  m)!
Teorema.- Sea el problema de programación lineal en forma canónica
con una solución x0, entonces existe un punto extremo z del conjunto
factible que es también una solución.
Ejemplo:
Si aplicamos para un sistema moderado de 6 restricciones y 30
variables, hay como
 30 
30!

 6  6!24!  593, 775
 
puntos extremos. Así el simple plan de evaluar la función objetivo en
todos los posibles puntos extremos y luego seleccionar el punto en el
que el valor máximo es alcanzado no es práctico.
30
El método Simplex es un algoritmo para hallar una solución partiendo de
un punto extremo del conjunto factible a otro en tal forma que la función
objetivo sea no decreciente.
Definiciones
Consideremos el sistema
Ax  c, …………………….. (1)
Que define el conjunto factible para el CLP. A es una matriz de orden
mxn y de rango m. B de orden mxm denota la submatriz obtenida por
tomar m columnas linealmente independientes de A y sea N la submatriz
de A consistiendo de las n -m columnas restantes. Podemos escribir un
vector x en Rn como
x  ( x B , x N ),
Donde
xB
consiste de esas componentes de x correspondiendo a las
columnas en B y
xN
consiste de aquellas componentes de x
correspondiendo a las columnas en N.
Definición.- Las columnas de B se llaman una base, las componentes de
xB
son llamadas variables básicas. Las componentes de
llamadas variables no básicas o variables libres.
Podemos escribir el sistema (1) como
 xB 
  c . ………………………… (2)
x
 N
 B, N  
31
xN
son
Cualquier vector de la forma
( B , x N ), donde x N es arbitrario y
 B  B 1c  B 1 Nx N
Será una solución de (2).
Existe una única solución de (2) con
xN  0 N
  ( B , 0 N ),  B  B 1c
……………….. (3)
Definición .a) Una solución de (1) de la forma (3) es llamada una solución básica.
b) Si
 B  0B ,
entonces

es factible y es llamada una solución
factible básica.
c) Si algunas de las componentes de
B
son cero, entonces

es
llamada una solución básica degenerada.
Al aplicar el método Simplex, reformulamos el problema establecido en
(1) introduciendo una variable escalar z y escribiendo el problema como
Maximice z
Sujeto a
Ax  c,
 b , x   z  0 …………(4)
x0
32
3.3.3. FASES DEL MÉTODO SIMPLEX
El método Simplex consiste de dos fases. En la fase I el método
determina una solución básica o determina que el conjunto factible es
vacío
En la fase II el método comienza con una solución factible básica y
determina que la solución óptima no existe o determina una solución
óptima.
A continuación veremos las fases el Método Simplex:
3.3.3.1. Fase I del método Simplex.- Sea el programa en forma SLP
Maximice  b , x 
Sujeto a:
Ax  c ,
x0
Supongamos que el vector c es no negativo.
Colocamos el problema en su forma canónica CLP añadiendo
variables de holgura
x S  ( x n  1 , ..., x n  m ),
xni  0,
Escribimos el problema como:
Maximice  b , x 
33
i  1, ..., m
Sujeto a:
 x
  c,
x
 S
 A, I  
x  0,
xS  0
Como c  0 , el vector ( x , xS )  (0n , c ) , donde 0n es el vector
n
cero en R , es una solución factible básica para el problema
CLP.
Pasamos a la fase II con solución factible básica inicial
( ,  S )  (0n , c) .
Si algunas de las componentes de c son negativas, el
vector (0 n , c ) es una solución básica del sistema CLP, pero no es
factible.
Introducimos un problema auxiliar (PA)
Minimice x0 ;
sujeto a
 x
( A, I ,  e)  xS   c, x  0, xs  0, x0  0 ………………… (3)
x 
 0
Donde e  (1,1,...,1) , I es la matriz identidad de orden mxm.
En términos de componentes el sistema PA es:
34
n
a
ij
j 1
x j  xn i  x0  ci , i  1,..., m. x j  0,
j  0,1,..., n  m
Un vector
 ,  s 
es factible para el problema CLP si y solo si
 ,  s , 0  es factible para el problema PA. Por lo tanto,  ,  s 
es factible para el problema CLP si y solo si
 ,  s , 0  es óptimo
para el problema auxiliar (PA).
Si escribimos la función objetivo del problema auxiliar como:
“maximice
w   x0 ” entonces el problema auxiliar viene a ser
un problema CLP al que podemos aplicar la fase II del método
simplex.
Ejemplo &:
El problema auxiliar es de la forma:
Maximice
w   x0
sujeto a:
 x1  x2  x3
 x0   1
 x1  x2
 x 4  x0  0
x1  2 x2
 x5  x0  4
xi  0,
i  0,1,..., 5
35
El vector
 , , , ,   (0,0,0,1,0,4) es una solución
0
1
2
3
4, 5
básica pero no es factible.
La única entrada negativa en el lado derecho es -1 y ocurre en la
primera ecuación, por lo tanto, en la matriz aumentada de los
coeficientes pivoteamos sobre x0 en la fila 1, resultando:
 x1
1

0

2
x2
x3
x4
x5
x0
1
2
1
1
0
1
0
0
1
0
3
1
0
1
0
c
1 
............(i )
1

5
Así,  0 , 1 ,  2 ,  3 ,  4 ,  5   (1, 0, 0, 0,1,5) es una solución factible
básica.
De (i) tenemos:
x1  x2  x3  x0  1
 w   x0  1  x1  x2  x3 ......(ii )
Podemos comenzar la fase II del problema de minimizar (ii)
sujeto a las restricciones dados por (i)
Minimizar
w  1  x1  x2  x3
Sujeto a:
2 x2  x3  x4  1
2 x1  3 x2  x3  x5  5
36
Retornemos a la situación general.
Obtenemos un sistema equivalente a (3) y teniendo una solución
factible básica.
Sea
cp
la componente más negativa de c. Así.
C p  min ci : i  1,..., m .
Si existe más que una de tales componentes, escogemos uno
con el índice más pequeño. Seguidamente, pivoteamos sobre x0
en la fila p del sistema (3) el resultado será un sistema
equivalente
x
 A ', e1 ,..., e p1 , e, e p1 ,..., em , e p   xs   c '. ……….. (7)
x 
 0
Donde
e  (1,...,1)
y
c ' p  cp  0, c 'i  ci  cp  0,
i  1,..., p  1, p  1,..., m
El sistema (7) en componentes es de la forma
n
a '
j 1
ij
x j  xn  p  xn  i  c ' i ,
n
 a x
j 1
pj
j
 xn  p  x0  c p
37
.
i p
Así una solución factible básica de (7) es
 0  c p ,
 n i  ci, i  1,..., p  1, p  1,..., m ,
i  0 ,
i = 1,…,n, n + p. ……………………………….. (8)
Y
n
w   x0   c p  xn  p   a pj x j ..................(9)
j 1
Las variables básicas son:
xn 1 ,..., xn  p 1 , x0 , xn  p 1 ,..., xn  m ..................(10)
Hemos transformado el problema auxiliar (3) al siguiente
problema.
Maximice
w
como
en
(9)
sujeto
a
(8)
y xi  0, i  0,1,..., n  m .
Para este problema tenemos determinada una solución factible
básica dada por (8) con variables básicas dadas por (10).
Podemos ahora aplicar la fase II al problema en esta forma. Si
incorporamos una rutina anti cíclica en nuestra implementación
de la fase II, en un número finito de pasos determinaremos que
el problema auxiliar no tiene solución o determina una solución
óptima al problema auxiliar.
38
Si el problema no tiene solución, entonces el problema de
programación lineal original no tiene solución factible.
Si el problema auxiliar tiene una solución. La variable
es
inicialmente básica. Aplicando la fase II al problema auxiliar, note
que nuestra regla para escoger la variable saliente es tal que si
en alguna iteración x0
es el candidato para salir de la base,
entonces x0 es la variable saliente.
Si en alguna iteración I k la variable x0 sale de la base,
entonces en la iteración I k 1 la variable x0 tendrá el valor cero.
La solución
( ,  s ,  0 )
de la ecuación restricción en
también una solución de (3). Luego, si
( ,  s )
0  0
es óptimo para la relación (1). Así, si
en la iteración
Ik ,
I k 1
será
entonces w = 0 y
0
deja la base
a la siguiente iteración tendremos una
solución del problema auxiliar y entonces una solución básica
factible par al relación (2).
Podemos entonces empezar la fase II con esta solución factible
básica.
Lema .- Si una rutina anti cíclica es incluida, entonces la fase I
del método simplex determina que no existe solución factible o
determina una solución factible básica.
39
Teorema. El método simplex incorporando una rutina anti cíclica
aplicado a un problema de programación lineal determina una de
las siguientes afirmaciones en un número finito de iteraciones:
(i)
No existe soluciones factibles
(ii)
El problema no tiene solución óptima.
(iii)
Una solución óptima.
A continuación veremos la fase II del Método Simplex:
3.3.3.2. Fase II del método Simplex.- Nuestro propósito es explicar lo
esencial del método simplex.
Supongamos que el problema está formulado del siguiente modo
Maximice z
Sujeto a
Ax  c
 b, x   z  0
x0
Comenzamos nuestra discusión de la fase II asumiendo que por
medio de la fase I, o de otro modo, nosotros hemos obtenido una
solución básica factible
cero en
R nm .
  ( B , 0 N )
, donde
0N
es el vector
Denotamos el valor de la función objetivo en
 p o r  . Así    bB ,  B  . Llamamos a   ( B , 0 N ) la
solución factible básica actual, la matriz B asociada con  B
40
la
base actual y

el valor actual de la función objetivo por abuso
de notación también llamamos a las componentes de

B
la
base actual.
El método simplex consiste de una sucesión de iteraciones. En
una iteración dada determinamos que la solución factible básica
actual es óptima o
que
no
existe
solución
óptima o
determinamos una nueva solución factible básica que hace que
no disminuya el valor de la función objetivo.
Cada iteración consiste de cuatro pasos. Ilustraremos el proceso
usando el ejemplo &.
Paso 1. Expresar z y las variables básicas
xB en términos de
las variables no básicas xN .
El problema formulado puede escribirse como
B
 t
 bB
N
bNt
x
0m   B
 x
 1   N
Z

 c
   0  ...............(1)
  

m
Donde 0m es el vector cero en R . Si multiplicamos la matriz
aumentada correspondiente a las primeras m ecuaciones por
B 1 por la izquierda tenemos
41
 Im
 t
 bB
Donde
B 1 N
bNt
Im
xB   B y
 xB 
0 m     B 1 c 
 xN  

1     0  …………….. (2)
Z 
es la matriz identidad de orden mxm, Haciendo
x N  0 N se tiene
 B  B 1c........................(3)
De (2) y (3) se tiene:
xB   B  B 1 Nx N ........................(4)
De (2) y (4) vemos que
z   b ,  B    b N  b Bt B  1 N , x N 
Haciendo
xN  0 N
se tiene
   bB ,  B  ....................(5)
Y así:
z     bN  bBt B 1 N , x N  .................(6)
Ecuaciones (4) y (6) expresan x B y z en términos de xN
42
Sea
d N  bN  bBt B 1 N  ( d jm 1 ,..., d jn )................(7)
Donde jm+1,…,jn son los índices de las componentes de x que
constituyen xN .
Entonces podemos escribir (6) como
z     d N , xN    
n

p  m 1
d ip xip ................(8)
Observación:
En virtud de (3) el lado derecho de (2) puede ser escrito como
( , 0)t .
1
La dificultad en ecuación (4) y (6) es el cálculo de B .
Presentamos ahora un segundo, aparentemente diferente,
método de obtener
xB
y z en términos de
xN .
El método del Tableau: es un método que sistemáticamente
registra la secuencia de pasos y cálculos que se describen.
Comenzamos con la matriz aumentada de (1), por una
secuencia de operaciones elementales aplicados a las primeras
m filas de (1), podemos transformar esta matriz a una matriz
equivalente:
43
 Im
 t
 bB
c '
 ....................(9)
1 0 
D
0m
bNt
Cada una de esas operaciones pueden ser efectuadas por una
premultiplicación por una matriz elemental Ei . Desde que la
secuencia de operaciones transforman B a I. El producto de
matrices elementales asociadas con esa transformación es igual
1
a B ,
Entonces:
 1
D  B
N
c '  B
y
 1
c
y tenemos como antes que (1) es equivalente a:
 Im
 t
 bB
Donde
B 1 N
bNt
0m c ' 
 ........................(10)
1 0 
c '  B  1 c . De (10) se obtiene (3) y (4).
Ahora supongamos que las columnas de B son las columnas
j1 ,..., jm
de A. si sucesivamente multiplicamos la fila 1 de (10)
b j1
y sumamos el resultado a la fila anterior, multiplicar la
por
fila 2 de (10) por
b j 2
y añadimos el resultado a la fila anterior,
así, entonces transformamos (10) en
44
 Im

 0B
B 1 N
bNt  bNt B 1 N

0m
c'
 .....................(11)
1   bB , c '  
De esta matriz se tiene:
z   bB , B 1c    bNt  bBt B 1 N , x N 
Observación:
1
De (11) y c '  B c
de nuevo obtenemos (3)
y (5).
Consecuentemente, el lado derecho de (11) puede ser escrito
 ,   .
t
como
De esta relación y de (3) y (5) de nuevo
tenemos (6).
Ilustramos la descripción precedente del paso 1 usando el
segundo método.
Ejemplo
Primeramente introducimos variables de holgura
x3 , x4 , x5
y
escribimos el problema como en (2) de la sección 1.
Podemos entonces escribir el problema como un problema de
maximización en el formato de (4) de la sección (2.4).
Maximice z
sujeto a:
45
 x1  x 2
 x4
 0,
x1  2 x 2 
 x5  4 ,
 x1  2 x 2
 z  0
Se puede verificar que
s   1, 0 , 0 , 1, 3  que
corresponde al
punto (1,0) en la figura1.es una solución factible básica. El valor
de z en este punto es -1. Así, x 1 , x 4 , x 5 son las variables
básicas y x 2 , x 3 son las variables no básicas. La matriz de
coeficientes aumentada es

x1 

x4 

x5 


x1
x2
x3
x4
x5
z
1
1
1
0
0
0
1
1
0
1
0
0
1
2
0
0
1
0
1
2
0
0
0
1
c 
 1 
0 
 ……….. (13)
4 
0 
Arriba de cada columna de la matriz tenemos indicada la
variable correspondiente a la columna. A la izquierda de la
matriz tenemos listadas las variables básicas actuales.
En la descripción tableau del método simplex la matriz (13) es el
tableau inicial. La matriz B en (13) es la submatriz formada por
las primeras tres filas y las columnas 1, 4, y 5. Así
 1
B    1
 1

0
1
0
0
0
1





46
Para obtener la matriz correspondiente a (11), debemos
transformar B en la matriz identidad por una sucesión de
operaciones elementales fila sobre (13).
Así obtenemos

x1 

x4 

x5 


x1
1
x2
1
x3
1
x4
0
x5
0
z
0
0
0
2
1
1
1
1
0
0
1
0
0
0
3
1
0
0
1
c
1 
1

3
1 
………….. (14)
De esto tenemos que
x1  1  x 2  x 3
x 4  1  2 x 2  x 3 ......................(15)
x5  3  x2  x3
Y
z   1  3 x 2  x 3 ………………. (16)
Que son (4) y (6) para este ejemplo. Note que la última columna
de (14) da el valor actual de
1 ,  4 , 5 , 
en concordancia con
(4) y (6).
Paso 2. Chequear la solución factible básica para optimalidad.
Si cada componente del vector d N definida en (7) es no positivo
(es decir,  0 ) entonces la solución factible básica es optima y
el proceso termina.
47
Para ver que esto es así, recalcamos
que necesitamos
solamente considerar soluciones factibles básicas en nuestra
búsqueda para la solución óptima. La solución factible básica
actual es la única solución factible básica con
xN  0N
.
Así, cualquier otra solución factible básica tendrá al menos una
xN
de las componentes de
dN  0
positiva. Pero desde que
, tenemos de (8) que el valor de la función objetivo
decrece o no cambia. Así la solución factible básica actual es
óptima. En nuestro ejemplo, vemos de (16) que la solución
actual no es óptima.
Paso 3. Si la solución factible básica no es óptima, determine
una nueva base y la correspondiente solución factible básica tal
que no decrece el valor actual de z o determine que z es no
acotada y por lo tanto el problema no tiene solución.
Primeramente motivamos el paso 3 usando el ejemplo &
De (16) vemos que si hacemos tender el valor de
incrementamos el valor de
valor de z. Las variables
(15) y la condición
Haciendo
x3  0
requerimiento que
x2 ,
x3
a cero e
entonces incrementaríamos el
x 1 , x 2 , x 3 , x 4 , x 5 deben satisfacer
xi  0,
i  1, ..., 5
en
y
(15)
tomando
para factibilidad.
en
cuenta
x 1 , x 4 , x 5 deben ser no negativos se tiene:
48
el
1  x2  0,
1  2 x2  0,
3  x2  0,
Para que estas tres desigualdades se cumplan debemos
incrementar el valor de x 2 a 1/2 . Si x 2 
entonces de (15) tenemos que
x1 
1
y x3  0
2
1
5
, x4  0, x5  .
2
2
5 
 1 1
Tenemos ahora otra solución factible  , , 0 , 0 , 
2 
 2 2
que
 1 1 
corresponde al punto  ,  , el valor de z se incrementa de -1
 2 2 
a 1/2.
Demostremos enseguida que esta solución es básica. La matriz
correspondiente al sistema (15) es la submatriz de (14)
consistiendo de las tres primeras filas de (14). La matriz B
correspondiente a
5 
 1 1
,
,
0
,
0
,

 es la matriz formada por
2 
 2 2
las columnas 1,2 y 5 de esta submatriz. Así
1
B   0
0

1
2
1
49
0
0 
1 
Como las columnas de B son linealmente independientes el
5 
 1 1
, , 0 , 0 ,  es una solución factible básica.
2 
 2 2
punto 
En resumen: la variable básica original
x4
cuyo valor fue 1 es
ahora una variable no básica y la variable no básica
x2
es
ahora una variable básica con valor 1/2.
La variable
variable
x4
x2
se dice que es la variable saliente de la base y la
se dice que es la variable entrante. Antes de
presentar el paso 3 en general, llamamos la atención a otra
posible situación. Supongamos que tenemos un ejemplo tal que
en vez de (15) arribamos al sistema
x1  1   x 2  x 3
x4  1   x2  x3
x5  3   x2  x3
Con z como en (16) y donde
Si hacemos
 ,  ,
son todos no negativos.
x 3  0 y x 2  t entonces obtenemos soluciones
factibles  t  0 . Si hacemos que t   , tenemos que
z   , así la función objetivo es no acotada y el problema no
tiene solución.
Ahora describimos el paso 3 dividiéndolo en dos subpasos:
50
Paso 3ª)
Escoger la variable no básica que entrará en la nueva base.
Sea d N como en (7), desde que la solución actual es no óptima,
al menos una de las componentes de
dN
es positiva.
Escogemos la componente de d N que es de mayor valor, si
existe más de una de tales componentes, escogemos la de
índice menor. Supongamos que la componente de d N escogida
es la q-ésima componente de
( x 1 , ...., x n ) , la variable x q
será la base de entrada. La columna de A correspondiente a
xq
es
Aq
.
Paso 3b)
Determine que el problema no tiene solución o escoja la variable
básica que sale de la base.
Sea
vq
Entonces
la columna de
B  1 N correspondiendo a
xq
.
v q  B 1 Aq .
Sea
x B   x i 1 , ..., x im
Y sea
 , B  (i1 ,..., im ) ……..…….. (17)
v q   v 1 q , ..., v m q  . Sea x q  t , t  0 y sean las
otras componentes de
cero.
51
IV. MATERIALES Y MÉTODOS
4.1. MATERIALES
 Materiales de Oficina
 Materiales de Consulta
 Materiales de Cómputo e Impresora
4.2. MÉTODOS
En el presente trabajo de Investigación, que tiene como propósito
mostrar la eficacia de este método en la formulación y solución de
diversos problemas de optimización orientados a la toma de
decisiones, ha
demandado la construcción .de una manera
secuencial y lógica del contenido,
ordenándolo por capítulos para
facilitar no solo la lectura sino también el aprendizaje de los
diferentes conceptos importantes que permitan su comprensión y
aplicación.
Con la información obtenida durante la etapa profesional de los
profesores investigadores, permitió desarrollar cada uno de estos
capítulos de este trabajo de investigación, con las características
didácticas presentadas, para lo cual fue necesario usar el método
analítico y deductivo.
52
V. RESULTADOS
En el desarrollo de este proyecto de investigación,
titulado
“EL
MÉTODO SIMPLEX Y ALGUNAS APLICACIONES”, se presenta en tres
capítulos, haciendo mención en cada uno de estos capítulos de la parte
teórica con el planteamiento de ejercicios para su mejor comprensión,
dando las nociones preliminares importantes relativas al tema en
mención.
En este trabajo de investigación se ajusta a una filosofía de enseñanzaaprendizaje
teniendo como base el Algebra
Lineal,
trabajando
particularmente con matrices y sistemas de ecuaciones lineales que
contrasta conocimientos específicos, para más adelante tratar con la
programación lineal y el tema central el método simplex, que nos permite
ver las ventajas al dar solución a problemas importantes de
programación lineal , pudiendo manejar un gran número de variables e
interacciones,
mediante el uso de modelos y algoritmos que nos
permiten resolver los problemas cotidianos, optimizando los resultados.
53
VI. DISCUSIÓN
El presente
trabajo titulado
“EL MÉTODO SIMPLEX Y ALGUNAS
APLICACIONES”, que es el resultado presente
investigación, se
caracteriza por presentar en una forma ordenada, sencilla y de fácil
comprensión las definiciones, teorías y ejercicios resueltos, aplicados de
manera que el alumno logre entenderlos y manejarlos en forma
adecuada.
En el desarrollo del presente trabajo de investigación podemos afirmar
que se han dado diversas alternativas con la tendencia
de dar
soluciones a diversos problemas presentados muchas veces sin los
resultados esperados.
El presente trabajo de investigación del “Método Simplex” muestra la
eficacia de este método en la formulación y resolución de problemas de
optimización orientados a la toma de decisiones en las diferentes áreas
de la Ingeniería, la Economía, etc.,siendo de gran utilidad.
permite ver el uso las matemáticas en un
capacidad y velocidad de las computadoras.
54
Además
mano a mano con la
VII. REFERENCIALES
1. BERNARD KOLMAN.
Algebra Lineal con Aplicaciones y Matlab,
Prentice-Hall, México. 1999.
2. HARTLEY, R.,
Linear and Nonlinear Programming: An
Introduction to Linear, 1985
3. SEDGEWICH R.
Algorithms in C Part 5: Graph Algorithms.
Addison-Wesley Pub Co, 2001
4. SCHELD FRANCIS,
DI COSTANZO ROSA E,
Métodos Numéricos, Mc Graw Hill,
Segunda Edición, 1991
5. MATHEISS TH, RUBIN DS. A survey and comparison of methods for
finding all vertices of convex
polyhedral sets. Mathematics of
Operations Research, 1980
6. KNUT SYDSAETER
HAMMOND Peter J
Matemáticas para el Análisis
Económico, Pearson
Prentice Hall, Madrid 1996.
7. DE LA FUENTE O’CONNOR,Técnicas de Cálculo para Sistemas
José Luis,
de Ecuaciones, Programación Lineal y
Programación Entera, Editorial
Reverte S.A., 1998.
8. J.B.HIRIART URRUTY Y C.
LEMARECHAL,
Convex Analysis and minimization
algorithms, Fundamental Principles of
Mathematical Sciences,
Springler-Verlag Berlin 1993
55
Descargar