












Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity
Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium
Prepara tus exámenes
Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity
Prepara tus exámenes con los documentos que comparten otros estudiantes como tú en Docsity
Encuentra los documentos específicos para los exámenes de tu universidad
Estudia con lecciones y exámenes resueltos basados en los programas académicos de las mejores universidades
Responde a preguntas de exámenes reales y pon a prueba tu preparación
Consigue puntos base para descargar
Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium
Comunidad
Pide ayuda a la comunidad y resuelve tus dudas de estudio
Ebooks gratuitos
Descarga nuestras guías gratuitas sobre técnicas de estudio, métodos para controlar la ansiedad y consejos para la tesis preparadas por los tutores de Docsity
Asignatura: MATEMATICAS, Profesor: , Carrera: Ingeniero Técnico Agrícola, especialidad en Explotaciones Agropecuarias, Universidad: UniZar
Tipo: Apuntes
1 / 20
Esta página no es visible en la vista previa
¡No te pierdas las partes importantes!













La utilización del ordenador como instrumento auxiliar en la fase operacional de la resolución de un problema real de optimización y, concretamente, en nuestro caso de Programación Lineal, se ha hecho indispensable debido no tanto a la complejidad teórica de los cálculos como al gran volumen de operaciones que se realizan en cada iteración del Método del Simplex.
Para propósitos computacionales no se utiliza el algoritmo del Simplex con la estructura de tablas que hemos descrito, puesto que no todos los cálculos son realmente necesarios. Es mucho más fácil y rápido utilizar el que se conoce como Método del Simplex Revisado, que es en realidad el método del Simplex pero mejorado.
Cuando trabajamos con problemas de gran magnitud, quizá deban efectuarse cálculos innecesarios sobre cientos de columnas hasta que las variables correspondientes se incorporan a la base. Efectuar completamente la eliminación gaussiana aclara la teoría, y por ello hemos presentado así el método anteriormente, pero no se puede justificar, en la práctica, la complejidad computacional que ello entraña.
La diferencia esencial entre el método del Simplex y el Revisado es que éste lleva también como información la matriz inversa de la matriz de coeficientes de las variables básicas en cada etapa.
El problema de Programación Lineal en forma matricial es:
max Z = CX s.a.: AX = b X ≥ 0
Denotaremos las columnas correspondientes de la matriz A como:
1
11 1 a m
a a M , ...,
mn
n n a
a a M
1
Supongamos que tenemos una solución factible básica del problema lineal, siendo x (^) 1 , K , x m las variables básicas. La matriz básica estará dada por:
= = m mm
m m a a
a a B a a K
M M M
K K 1
11 1 1 , ,
y la correspondiente solución factible básica actual estará dada por:
X (^) B = B −^1 b
El Algoritmo del Simplex Revisado constará de:
Paso 1: Calcular los costes marginales (^) c (^) j = cj −λ aj , (^) j = m + 1 , K , n , donde
λ = ( λ 1 , K ,λ m ) = C (^) BB −^1 ,con CB el vector fila de costes de las variables básicas. A λ (^) i se les llama multiplicadores del Simplex.
Si (^) c j ≤ 0 , (^) ∀ j (problemas de máximo), estamos en el óptimo. PARAR.
En otro caso, ir al paso 2.
Paso 2: Determinar la variable básica que entra en la base, seleccionando aquella cuyo (^) c (^) j es el más positivo; sea este (^) c (^) k.
Transformar la columna a (^) k , correspondient e a la variable que entra, en términos de la base actual:
a (^) k = B −^1 a k
Paso 3: Determinar la variable que sale de la base con el criterio:
⇒ = = 0 0 1
x 4 H , x 6 A , x 7 A B a 4 , a 6 , a 7
En este caso B −^1 = I , y, por tanto, una primera solución factible básica será:
= − = 1
3
11
1
3
11
0 0 1
0 1 0
1 0 0 X B^1 b B
En forma de tabla:
Base X^ B B −^1 x^ H 4 11 1 0 0 x 6^ A 3 0 1 0 x 7^ A 1 0 0 1
Calculamos, siguiendo el paso 1, los costes marginales y, para ello, los correspondientes multiplicadores del Simplex:
λ = λ λ = −^ = − − 0 , , 0 0 1
A continuación encontramos c (^) j = cj −λ aj para las variables no básicas:
T T T
M
M
M
M
M M
c
c
c
c
−
−
−
−
− −
− − − −
−
= −
3 1
1
3 6
2 0 1 0
4 1 2 1
1 2 1 0 0 , ,
0
1
1
3
5
3
2
1
Según el paso 2, elegimos el c (^) j más positivo, en este caso c 3 (^) = 3 M − 1. Luego entra x 3 en la base y la correspondiente columna pivote a (^) 3 se transforma como:
= − = 1
a 3 B^1 a 3
Completando la tabla anterior:
Base X^ B B −^1
Columna pivote x^ H 4 11 1 0 0 1 x 6^ A 3 0 1 0 2 x 7^ A 1 0 0 1 1
Determinamos la variable que sale de la base según el paso 3:
Pivotamos, en el paso 4, sobre B −^1 de forma que en la columna pivote en lugar del pivote haya un 1 y el resto ceros:
Base X^ B B −^1 x^ H 4 10 1 0 - x 6^ A 1 0 1 - x 3 (^) 1 0 0 1
una nueva iteración, con la matriz B −^1 en la tabla anterior, calculando los multiplicadores del Simplex y, con ellos, los costes marginales no básicos:
−
− λ = C^ BB −^ = − M − M M
T T T
M
M M M c
c
c
−
= −
−
− −
− − − −
= −
1
1
2 0 0
4 1 1
1 2 0 0 , , 2 1 0
1
3
5
2
1
No calculamos (^) c (^) 6 por ser xA 6 artificial y haber salido de la base.
El único (^) c j positivo corresponde a c 1 (^) = 1 , por lo tanto (^) x 1 es la variable que entra.
Así, la nueva tabla quedará como:
Base X (^) B B −^1
Columna pivote x^ H 4 12 1 2 -5 3 x 2 (^) 1 0 1 -2 0 x (^) 3 1 0 0 1 -
puesto que
−
=
−
−
−
− = − = 2
a 1 B^1 a 1
La única posibilidad es que salga (^) x 4 H. Pivotando sobre el primer elemento de la
columna pivote:
Base X^ B B −^1 x 1 (^) 4 1/3 2/3 -5/ x 2 (^) 1 0 1 - x 3 (^) 9 2/3 4/3 -7/
Calculamos nuevamente, en la siguiente iteración, los multiplicadores del Simplex:
=^ − −
−
−
− λ = − = − − 3
,^2 3
,^1 3
1 23 43 73
0 1 2
13 23 53 C (^) B B^13 , 1 , 1
T T T c
c
−
= −
−
−^ − −
=
13
5
4
Como todos los c (^) j ≤ 0 para las variables no básicas, estamos en el óptimo:
3 *
2 *
1 * ⇒ = − − =
Z x x x x
x
x
Ejemplo:
max Z = 3 x 1 + x 2 + 3 x 3 max Z = 3 x 1 + x 2 + 3 x 3 s.a.: 2 x 1 (^) + x 2 + x 3 ≤ 2 s.a.: 2 x 1 + x 2 + x 3 + x 4 H = 2 x 1 (^) + 2 x 2 + 3 x 3 ≤ 5 x 1 + 2 x 2 + 3 x 3 + x 5 H = 5 2 x 1 (^) + 2 x 2 + x 3 ≤ 6 2 x 1 + 2 x 2 + x 3 + x 6 H = 6 x 1 (^) , x 2 , x 3 ≥ 0 x 1 , x 2 , x 3 , x 4 H^ , x 5 H , x 6^ H ≥ 0
Los datos en este problema son:
2 2 1 0 0 1
Ahora, B = I ⇒ B −^1 = I , y la tabla inicial queda:
Base X (^) B B −^1 x^ H 4 2 1 0 0 x^ H 5 5 0 1 0 x^ H 6 6 0 0 1
Calculamos los multiplicadores del Simplex:
λ = C (^) B B − =
T T T
c
c
c
−
3
2
1
Así, la tabla completa quedará como:
Base X (^) B B −^1
Columna pivote x 1 1 1/2 0 0 1/ x 5^ H 4 -1/2 1 0 5/ x 6^ H 4 -1 0 1 0
Calculamos = ⇒
5
min^1 sale xH 5 , y pivotando tenemos que:
Base X^ B B −^1 x 1 (^) 1/5 3/5 -1/5 0 x 3 (^) 8/5 -1/5 2/5 0 x^ H 6 4 -1 0 1
En una siguiente iteración:
=
−
−
− λ = −^ = , 0 5
,^3 5
6 1 0 1
15 25 0
35 15 0 C (^) B B^13 , 3 , 0
T T T
c
c
c
−
−
−
35
65
75
2 0 0
2 0 1
1 1 0 , 0 5
,^3 5
6 0
0
1
5
4
2
Como todos los c (^) j < 0 para las variables no básicas actuales, se concluye que
estamos en el óptimo:
6 *
3 *
1 ⇒ = + + =
Z x x x x
x
x
El ordenador no es capaz de “ pensar ” por sí mismo, de ahí la necesidad de que el usuario conozca y sea capaz de plantear e interpretar perfectamente el problema a resolver.
La elaboración a la que se someten los datos en el proceso de obtención de unos resultados, desde un punto de vista metodológico, requiere del usuario una perfecta comprensión tanto del planteamiento como de los objetivos que se persiguen en ese tratamiento.
El proceso informático se hace imprescindible cuando el elevado número de los datos o la complejidad que involucran supera las posibilidades humanas.
Distinguiremos una serie de subprocesos comunes en el tratamiento de cualquier tipo de información, necesarios en una fase previa a la que incluye puramente el proceso, para una correcta obtención del objetivo deseado:
Salvadas estas consideraciones de tipo general, en particular, en el desarrollo de un proyecto de aplicación informático para la resolución de un problema de
Así, podemos aplicarle el Simplex, pero pagando un alto coste computacional, puesto que la cantidad de memoria de ordenador que debemos utilizar se incrementa considerablemente (si A es de orden m x n , la matriz asociada al nuevo problema será de orden ( m + n )x2 n ).
Por esto, se han desarrollado técnicas alternativas específicas para el tratamiento de este tipo de problemas con variables acotadas, pero su desarrollo excede nuestro objetivo.
Un problema lineal será infactible cuando no existe ninguna solución factible. Esta situación se da cuando dos o más restricciones son incompatibles.
Aparece en la práctica debido a incorrecciones en la preparación de los datos. En la mayoría de los casos en que el problema tiene grandes dimensiones, es fácil no contemplar todas las relaciones lógicas entre las variables.
Se da este caso si existe una solución factible que da un valor infinito para la función objetivo, la cual se dice que es no acotada. Usualmente es consecuencia de errores en la preparación de los datos.
Veamos en un ejemplo como detectar este tipo de dificultad computacional en el desarrollo del algoritmo del Simplex:
max (^3) x 1 (^) + 2 x 2 max (^3) x 1 (^) + 2 x 2 s.a.: (^) x 1 (^) − x 2 ≤ 1 s.a.: x 1 − x 2 + x 3 H = 1 3 x 1 (^) − 2 x 2 ≤ 6 3 x 1 − 2 x 2 + x 4 H = 6 x 1 (^) , x 2 ≥ 0 x 1 ,^ x 2 , x 3 H^ , x 4 H ≥^0
Las tablas que corresponden a las iteraciones del Simplex quedan como:
x 1 x 2 x 3 H x 4^ H x 3^ H 1 1 -1 1 0 x 4^ H 6 3 -2 0 1 3 2 0 0
x 1 x 2 xH 3 x^ H 4 x 1 (^) 1 1 -1 1 0 x 4^ H 3 0 1 -3 1 0 5 -3 0
x 1 x 2 x 3 H x 4^ H x 1 4 1 0 -2 1 x 2 (^) 3 0 1 -3 1 0 0 12 -
Debería entrar x 3 H , pero todos los elementos de su columna son negativos. En esta
situación la función objetivo puede crecer indefinidamente. Gráficamente:
Los vértices son: A(0,0), B(2,0), C(4,3). Miramos cuánto vale la función objetivo en ellos, además de en puntos que se alejen por las rectas que dejan abiertas a la región de factibilidad, esto es:
x 1 − x 2 = 1
3 x 1 − 2 x 2 = 6
x 1 x 2 xH 3 x^ H 4^ x 5^ H x^ H 3 1500 8 0 1 -1/2^0 x 2 (^) 200 2/5 1 0 1/10 0 x^ H 5 300 4/5 0 0 -3/10 1 0 0 0 -10 0
Óptimo: (^) x 1 * = 0 , (^) x * 2 = 200 , Z *^ = 20000
Observemos que, siendo x 1 no básica, su coste marginal es cero, por lo que si la introducimos en la base, sacando de la misma x 3 H que corresponde por el Simplex,
el valor óptimo de la función objetivo no variará:
x 1 x 2 xH 3 x^ H 4^ x 5^ H x 1 (^) 375/2 1 0 1/8 -1/16 0 x 2 (^) 125 0 1 -1/20 1/8 0 x^ H 5 150 0 0 -1/10 -1/4 1 0 0 0 -10 0
Óptimo: 2
*^375 x 1 (^) = ,^ x * 2 = 125 ,^ Z *^ =^20000
Existe solución múltiple formada por todas las soluciones combinación lineal convexa de las anteriores. Por ejemplo:
λ + −λ , 125 2
0 , 200 1 375
=
λ = ⇒ X = + Z
λ = ⇒ X = + Z
Y así, infinidad de ellas variando λ en el intervalo (0,1).
Gráficamente, se puede observar mejor:
max (^) Z = x 1 + x 2 s.a.: (^) x 1 + x 2 ≤ 2 3 x 1 + x 2 ≤ 3 x 1 , x 2 ≥ 0
Z = k es paralela a (^) x 1 (^) + x 2 ≤ 2 , por tanto, cualquier combinación lineal convexa de
D(0,2) y C(1/2, 3/2) es solución óptima, es decir, todos los puntos del segmento delimitado por esos puntos.
=
λ = ⇒ X = + Z
=
λ = ⇒ X = + Z
El Simplex es un método iterativo en el que se eligen diferentes bases (vértices) para mejorar paso a paso el valor de la función objetivo hasta alcanzar la base óptima. Si ninguna base se elige dos veces, es claro que el algoritmo es finito.
x 1 + x 2 = 2
3 x 1 + x 2 = 3 D (^) C
Introducimos las correspondientes variables de holgura:
max (^1 ) 2 20 1 4 Z =^3 x − x + x − x
s.a.: 8 9 0 4
1 x 1 − x 2 − x 3 + x 4 + x 5 H =
3 0 2
12 1 2
1 x 1 − x 2 − x 3 + x 4 + x 6 H = x 3 + x 7 H = 1 x 1 , x 2 , x 3 , x 4 , x 5 H^ , x 6 H , x 7 H ≥ 0
x 1 x 2 x 3^ x 4 x 5 H x 6^ H x^ H 7 x 5^ H 0 1/4 -8 -1 9 1 0 0 x 6^ H 0 1/2 -12 -1/2 3 0 1 0 x 7^ H 1 0 0 1 0 0 0 1 3/4 -20 1/2 -6 0 0 0
x 1 x 2 x 3^ x 4 x 5 H^ x 6^ H^ x^ H 7 x 1 0 1 -32 -4 36 4 0 0 x 6^ H 0 0 4 3/2 -15 -2 1 0 x 7^ H 1 0 0 1 0 0 0 1 0 4 7/2 -33 -3 0 0
x 1 x 2 x 3 x 4 x 5 H x 6^ H x^ H 7 x 1 (^) 0 1 0 8 -84 -12 8 0 x 2 (^) 0 0 1 3/8 -15/4 -1/2 1/4 0 x 7^ H 1 0 0 1 0 0 0 1 0 0 2 -18 -1 -1 0