Está en la página 1de 43

INSTITUTO TECNOLÓGICO DE MÉRIDA

DEPARTAMENTO DE INGENIERÍA INDUSTRIAL


CAMPUS NORTE

INGENIERIA INDUSTRIAL
GRUPO: 4I1

ASIGNATURA:
INVESTIGACIÓN DE OPERACIONES I

Ing. Luis Eduardo Basto Aguilar

INTEGRANTES:
➢ Matos Solís Joel Antonio
➢ Trujeque Olan Alex Armando

Mérida, Yucatán, México


29 de octubre del 2020
Índice

Introducción………………………………………………………………………………. 3

2.-El método Simplex……………………………………………………………………..4

2.1.-Método Gráfico……………………………………………………………………….4

2.2.-Método Simplex…………………………………………………………………….12

2.3.-Procedimientos para resolver problemas con variables artificiales (M grande,


doble fase) ……………………………………………………………………………….24

2.4.-Casos especiales de programación Lineal………………………………………26

2.5.-Método Dual Simplex (Simplex Dual) ……………………………………………29

2.6.-Relaciones primal-dual…………………………………………………………….34

2.7.-Análisis de sensibilidad e interpretación de resultados………………………...38

2.8.-Uso del software……………………………………………………………………40

Conclusión…………………………………………………...…………………………...42

Bibliografía………………………………………………………………………………..43

2
Introducción

Cada vez es más difícil asignar los recursos o actividades de la forma más eficaz,
pues los recursos cada vez son más escasos y crecen las complejidades de los
sistemas generando problemas para decisiones óptimas.

En el siglo pasado las Organizaciones del mundo solo estaban constituidas por un
número reducido de personas y eran dirigidos por una sola persona. Todo este
panorama cambia radicalmente con la Primera Revolución Industrial. Como se
sabe, ésta trajo consigo la energía, las maquinarias y los equipos que
revolucionaron las industrias mecanizando la producción. Consecuentemente con
ello vino la división o especialización del trabajo trayendo con ello las nuevas
responsabilidades de finanzas, producción, mercado e investigación y desarrollo
por parte de especialistas y científicos.

Investigación de Operaciones se les atribuye más a los servicios militares


prestados a principios de la II Guerra Mundial. Debido a los esfuerzos bélicos,
existía una necesidad urgente de asignar recursos escasos a las distintas
operaciones militares y a las actividades dentro de cada operación, en la forma
más efectiva. Por esto, las administraciones militares americana y británicas
hicieron un llamado a un gran número de científicos para que aplicaran el método
científico a éste y a otros problemas estratégicos y tácticos. Estos equipos de
científicos fueron los primeros equipos de IO. Con el desarrollo de métodos
efectivos que contribuyeron a numerosos triunfos.

3
2.- El método Simplex
2.1.- Método Gráfico
El método gráfico se emplea para resolver problemas que presentan sólo 2
variables de decisión. El procedimiento consiste en trazar las ecuaciones de las
restricciones en un eje de coordenadas X1, X2 para tratar de identificar el área de
soluciones factibles (soluciones que cumplen con todas las restricciones).
La solución óptima del problema se encuentra en uno de los vértices de esta área
de soluciones creada, por lo que se buscará en estos datos el valor mínimo o
máximo del problema.

Cuando los ejes son relacionados con las variables del problema, el método es
llamado método gráfico en actividad. Cuando se relacionan las restricciones
tecnológicas se denomina método gráfico en recursos.
Los pasos necesarios para realizar el método son siete:
1. graficar las soluciones factibles, o el espacio de soluciones (factible), que
satisfagan todas las restricciones en forma simultánea.
2. Las restricciones de no negatividad Xi>= 0 confían todos los valores
posibles.
3. El espacio encerrado por las restricciones restantes se determina
sustituyendo en primer término <= por (=) para cada restricción, con lo cual
se produce la ecuación de una línea recta.

4
4. trazar cada línea recta en el plano y la región en cual se encuentra cada
restricción cuando se considera la desigualdad lo indica la dirección de la
flecha situada sobre la línea recta asociada.
5. Cada punto contenido o situado en la frontera del espacio de soluciones
satisfacen todas las restricciones y, por consiguiente, representa un punto
factible.
6. Aunque hay un número infinito de puntos factibles en el espacio de
soluciones, la solución óptima puede determinarse al observar la dirección
en la cual aumenta la función objetivo.
7. Las líneas paralelas que representan la función objetivo se trazan mediante
la asignación de valores arbitrarios a fin de determinar la pendiente y la
dirección en la cual crece o decrece el valor de la función objetivo.
Conjunto convexo
Un conjunto C es un conjunto convexo si el segmento rectilíneo que une cualquier
par de puntos de C se encuentra completamente en C.

Problema de única solución


Maximice Z = 2X1 + X2

Bajo las siguientes restricciones:


2X1 – X2= 8
X1 – X2= 3
X1 + 2X2 =14
X1 + 4X2= 24
Xj0 ; j = 1, 2

5
Cálculos analíticos para graficar el sistema de inecuaciones lineales, incluyendo la
condición de no negatividad (Xj>0 ; j = 1, 2), que nos indica que solamente
trabajaremos en el primer cuadrante del plano cartesiano, cuadrante en donde X1
y X2 son positivas.

Restricciones
Fíjese que para cada inecuación, primero suponemos que es una igualdad y luego
tabulamos dos puntos fáciles de calcular, como lo son las intersecciones de la
recta con los ejes cartesianos abscisa y ordenada, esto siempre que el término
independiente (Lado derecho de la inecuación) sea diferente de cero, es decir
siempre y cuando la recta no pase por el origen de coordenadas P(0,0).
A continuación con un punto de prueba cualquiera P(X1 , X2), (Asegúrese que se
encuentre al lado derecho o izquierdo de la recta, NO sobre ella, es decir, el punto
de prueba NO puede pertenecer a la recta), Aquí, como ya sabemos que la recta
no pasa por el origen de coordenadas (Término independiente diferente de cero),
usamos como punto de prueba P(0,0), es decir X1 = 0, X2 = 0 que nos facilita los
cálculos cuando lo remplacemos en la inecuación y observamos si la hace una
verdad ó una falsedad; Averiguar esto nos permite conocer si el área solución de
la inecuación está al lado derecho o izquierdo (Por supuesto, incluyendo los
puntos sobre la recta, ya que todas las inecuaciones son menor o igual ( < )); Si el
punto de prueba hace verdad la inecuación lineal, entonces, todos los puntos que
se encuentran al mismo lado del punto de prueba la harán verdad, si el punto de
prueba no hace verdad la inecuación lineal, los puntos que la harán verdad están
al lado contrario en donde se encuentra el punto de prueba. Esto es, si el punto de
prueba se encuentra al lado izquierdo de la recta y hace verdad la inecuación,
entonces el área de soluciones para esta inecuación, son todos los puntos que
pertenecen a la recta y los que se encuentran al lado izquierdo de ella. Si el punto
de prueba situado a la izquierda de la recta, no hace verdad la inecuación,
entonces el área de soluciones para esta inecuación, son todos los puntos que
pertenecen a la recta y los que se encuentran al lado derecha de ella.

6
Función objetivo
La función objetivo Z = 2X1 + X2 expresada como 2X1 + X2 = Z tiene la estructura
de una línea recta, solo que no conocemos su término independiente. Graficando
esta ecuación con diferentes valores para Z, observamos que la función objetivo,
representa una familia de rectas paralelas, que al aumentar el valor de Z la recta
se desplaza hacia el lado derecho, por lo que concluimos que Z aumenta cuando
la recta se desplaza paralelamente hacia la derecha, esto se cumple siempre que
la ecuación de la función objetiva tenga pendiente negativa, es decir inclinada al
lado izquierdo. Para funciones objetivo con pendiente positiva (Inclinadas al lado
derecho), se recomienda dar varios valores a Z y graficar para observar si al
desplazarse a la derecha Z aumenta o por el contrario disminuye.

Aquí se le ha dado a Z el valor arbitrario de 2, ya que solo necesitamos graficar


una de las rectas que pertenece a la familia de rectas paralelas, para facilitar la
tabulación de la función objetivo, se recomienda dar el valor arbitrario de Z como
un múltiplo de los coeficientes de las variables, que se consigue fácilmente,
multiplicando el coeficiente de X1 por el coeficiente de X2. Es conveniente fijarse
en los valores de las coordenadas para graficar la función objetivo observando que
sean parecidos en magnitud a los hallados para graficar las restricciones (Observe
que puede dar el valor adecuado a Z), esto hará que la gráfica quede
convenientemente presentada para el análisis.
Procedimientos para encontrar la solución factible óptima:
1. Evaluar la función objetivo Z en cada una de las esquinas del área de
soluciones factibles. La debilidad de este procedimiento se presenta cuando
se tienen muchas restricciones que, por supuesto generan un área con
muchas esquinas, volviéndose dispendiosa la consecución de sus
coordenadas, que implica la solución de muchos sistemas de ecuaciones
lineales.
2. Usando la función objetivo para determinar la esquina del área de
soluciones factible que la optimiza. La debilidad de éste procedimiento se

7
presenta cuando la función objetiva es aproximadamente paralela a uno de
los lados del área de soluciones factible, originando la duda visual sobre la
gráfica de cuál de los dos extremos (esquinas) es el que hace que la
función objetivo se optimice.
Se recomienda usar el segundo procedimiento y en caso de dudas visuales sobre
la gráfica, recurrir al primer procedimiento para dirimir la duda respecto al par de
esquinas.
Primer procedimiento: Evaluar la función objetivo Z en cada una de las esquinas
del área de soluciones factibles.
Se recomienda usar el segundo procedimiento y en caso de dudas visuales sobre
la gráfica, recurrir al primer procedimiento para dirimir la duda respecto al par de
esquinas.
Primer procedimiento: Evaluar la función objetivo Z en cada una de las esquinas
del área de soluciones factibles.

El valor de la función objetivo en cada una de las esquinas del área de soluciones
factible es:

8
Segundo procedimiento: Usando la función objetivo para determinar la esquina del
área de soluciones factible que la optimiza.

Fíjese que al desplazar la función objetivo Z hacia la derecha, el último punto a la


derecha del área de soluciones factible que toca es: X1 = 6, X2 = 4. Para
encontrar las coordenadas debemos interceptar las ecuaciones de las
restricciones X1 + 2X2 = 14 con 2X1 – X2 = 8 Una manera de hacer esto es
empleando el método de los determinantes, que para un sistema de dos
ecuaciones y dos variables es:

Ejemplos:
Problema de múltiples soluciones
Maximice Z = 5/2 X1 + X2
C. S. R. 3X1 + 5X2 =< 15
5X1 + 2X2 =< 10
Xj => 0; j = 1, 2
9
Problema de soluciones indeterminadas

Fíjese que para tabular la ecuación de la primera restricción, cuyo término


independiente es igual a cero, es una ecuación que pasa por el origen de
10
coordenadas P(0,0) y por lo tanto corta el eje de la abscisa y la ordenada en el
mismo punto P(0,0), esto hace necesario tabular un segundo punto, que para el
presente caso se usó X2 = 5 y se despejó X1 obteniendo el valor de 5, con lo que
obtenemos un segundo punto P(5,5), que delimita la línea recta.

Si se está modelando sobre un problema real y ocurre este caso, falta considerar
una restricción, que justamente cierre el área de soluciones factibles por el lado
derecho. Se ha dejado de considerar la restricción de algún recurso, ya que los
valores de las variables en la realidad no pueden crecer de manera ilimitada,
irrestrictamente.
Problema sin solución
Este caso se presenta cuando entre las restricciones existen al menos dos de
ellas que sean excluyentes, tal como: X1 2 y X14. Aquí nunca podremos encontrar
un número que al mismo tiempo sea menor o igual a 2 y mayor o igual a 4, las dos
restricciones son excluyentes y por lo tanto no existe área de soluciones factible,
gráficamente se observa de la siguiente manera:

11
2.2.- Método Simplex
El método simplex es un procedimiento iterativo para resolver problemas de
programación lineal, donde se busca obtener la solución óptima de la función
objetivo que logre cumplir el conjunto de restricciones.
Conceptos Básicos
Para comprender de mejor manera el método simplex vamos a revisar algunas
definiciones.
El método parte de dos afirmaciones importantes:
El conjunto de posibles soluciones o conjunto factible de cualquier problema de
programación lineal puede representarse mediante un poliedro convexo.
Si un problema de programación lineal tiene una solución óptima y finita, ésta
estará en un vértice del poliedro convexo que representa al problema.
El algoritmo simplex parte de uno de los vértices del poliedro, y verifica si es el
óptimo; si no lo es, busca un nuevo vértice adyacentes que va mejorando el valor
de la función objetivo. Se continúa iterando hasta llegar al vértice que representa
la solución óptima.
En la siguiente imágen vemos el poliedro que representa la solución factible y
cómo realiza el recorrido el algoritmo simplex:

12
Pasos del Método Simplex
Los pasos a seguir en el método simplex son:
• Definir el problema en la forma estándar y generar nuestra matriz.
• Determinar la solución básica inicial.
• Seleccionar la variable de entrada utilizando la condición de optimalidad. Si
no se puede seleccionar una variable de entrada, quiere decir que estamos
en la condición óptima y finalizan las iteraciones. De otro modo se continúa
con el siguiente paso.
• Seleccionar la variable de salida utilizando la condición de factibilidad.
• Actualizar nuestra matriz realizando las operaciones de Gauss-Jordan.
Volver al paso número 3.
Un problema de programación lineal tiene la siguiente forma:
1. Definir el problema en la forma estándar y generar matriz

Donde x1, x2 … xn son las variables del problema.


Antes de llevar nuestro modelo a la forma estándar debemos verificar que todas
las restricciones tienen el lado derecho no negativo. Es decir:
b1, b2 … bm ≥ 0

¿Qué hago si el lado derecho de la restricción es negativo?


Cuando el término independiente de la restricción es negativo, se debe multiplicar
por -1 a toda la restricción para convertir el valor del lado derecho en positivo. Esta
multiplicación también afectará al signo de la restricción de la siguiente forma:
Si la restricción es del tipo mayor igual (≥), se deberá cambiar a menor igual (≤).
En caso la restricción sea del tipo menor igual (≤), se deberá cambiar a mayor
igual (≥).
Si la restricción es una igualdad, el signo se mantiene.
13
Un caso especial es cuando el término independiente de la restricción es 0 y el
signo es mayor igual (≥); en dicha situación, podemos multiplicar la restricción por
(-1) para convertirla en menor igual (≤). Esto nos servirá para no utilizar variables
artificiales como veremos posteriormente.
Convertir restricciones en igualdades
Para convertir las restricciones en igualdades va a depender de su signo:
Si la restricción es menor igual (≤): Para este tipo de restricciones debemos
introducir una variable no negativa llamada de holgura y que son auxiliares para el
problema. Por ejemplo:

Cuando la restricción es mayor igual (≥): En este tipo de restricciones se debe


restar una variable de exceso y así mismo agregar una variable artificial. Por
ejemplo:

Si la restricción es igual (=): En este tipo de restricciones debemos agregar una


variable artificial de la siguiente forma:

14
El método Simplex «tradicional» o «básico» que abordaremos en esta entrada, se
utiliza para los problemas de programación lineal donde todas las restricciones
son del tipo menor e igual (≤).
1. Generar la matriz
Aplicando lo indicado en los puntos anteriores tendríamos lo siguiente:

Una vez convertidas nuestras restricciones en ecuaciones procederemos a


generar nuestra matriz:

• En nuestra matriz podemos identificar lo siguiente:


• Vector de Costes: Es el vector que contiene los coeficientes de todas las
variables de la función objetivo. En la parte inferior del vector se indican las
variables en orden.

15
• Vector Solución: En esta columna se coloca la solución básica inicial y se
va actualizando conforme se realizan las iteraciones. En la columna Cb se
indica el coeficiente que corresponde a cada variable en el vector de
costes. Así mismo siempre se iniciará con las variables de holgura en la
base cuando el problema no tenga variables artificiales.
• Coeficientes Restricciones: Se colocan los coeficientes de las restricciones
en el mismo orden en que fueron formuladas. La columna R contiene a los
términos independientes también conocido como vector de recursos.
• Vector de costes reducidos: También conocido como precios sombra. Este
vector se calcula multiplicando el vector solución por los coeficientes de las
restricciones y se resta el vector de costes. Este procedimiento lo
explicaremos al detalle en nuestra entrada del método de las dos fases y de
la M Grande, donde se presentan variables artificiales. En los ejercicios que
veremos en esta entrada, al no existir variables artificiales, el vector de
costes será igual al vector de costes multiplicado por «-1».

2. Determinar la solución básica inicial:

Como habíamos mencionado, el método simplex parte de un vértice de la región


factible, es decir, un punto extremo. Con cada iteración avanzaremos de vértice en
vértice hasta llegar a la solución óptima.

En nuestro caso, en la matriz elaborada podemos ver la solución básica inicial que
sería S1=35, S2=18 y S3=26 (cada variable del vector solución se iguala al valor
que se encuentra en la columna R. Estas variables se denominan variables
básicas. El valor de Z inicial también se muestra en la columna R que es

16
Las variables que no se encuentran en la base se denominan variables no básicas
y en este caso serían X1 y X2. Ambas tienen un valor de 0.

3. Seleccionar la variable de entrada utilizando la condición de optimalidad

Con nuestra matriz finalizada e identificada nuestra solución básica inicial


revisaremos la condición de optimalidad.

-Condición de Optimalidad:

La condición de optimalidad consiste en verificar si la solución actual que tenemos


en nuestra matriz es la óptima o si se puede mejorar. Se verifica de la siguiente
manera:

En un problema de maximización si todos los coeficientes del vector de costes


reducidos son mayores o iguales que cero, quiere decir que estamos en el punto
óptimo y finaliza el problema.

En un problema de minimización si todos los coeficientes del vector de costes


reducidos son menores o iguales que cero, quiere decir que estamos en el punto
óptimo y finaliza el problema.

Siguiendo con el ejemplo, siendo el problema de maximización, podemos ver que


en el vector de costes reducidos existen valores negativos, lo que significa que no
estamos en el óptimo. Eso quiere decir que debemos iniciar las iteraciones
seleccionando la variable de entrada.

-Variable de Entrada:

La variable de entrada hace referencia a una de las variables no básicas que


ingresará a la base y formará parte de la solución del problema.

Los criterios para seleccionar la variable de entrada depende si el problema es de


maximización o minimización:

Para problemas de maximización, la variable de entrada será la variable no básica


con el coeficiente más negativo en el vector de costes reducidos.

Para problemas de minimización, la variable de entrada será la variable no básica


con el coeficiente más positivo en el vector de costes reducidos.

17
La columna donde está ubicada la variable se denomina columna pivote.En el
ejemplo nuestra variable de entrada sería X1 dado que tiene el valor más negativo
en el vector de costes reducidos, es decir «-3»:

4. Seleccionar la Variable de Salida con la Condición de Factibilidad

A continuación explicaremos a que se refiere la condición de factibilidad:

-Condición de Factibilidad

La condición de factibilidad, para cualquier problema ya sea de maximización o


minimización, se verifica evaluando los valores de los coeficientes de la matriz de
restricciones que se encuentran en la columna que corresponde a la variable de
entrada.

Se debe verificar que al menos uno de sus valores sea mayor que 0 para obtener
nuestra variable de salida. Si no se cumple esa condición significa que el problema
tiene solución ilimitada no acotada.

-Variable de Salida

Para determinar la variable que sale de la base se debe dividir el valor


correspondiente a la columna R con su respectivo coeficiente en la columna de la
variable de entrada (siempre y cuando este coeficiente sea estrictamente positivo).

De los resultados obtenidos, el menor valor corresponde a la fila que contiene a la


variable de salida. Esta fila la llamaremos fila pivote

la variable de salida sería S2. El número que se encuentra al cruzar la fila pivote y
la columna pivote es el elemento pivote; en nuestro caso sería 3:

18
5. Actualizar la Matriz

Una vez determinado nuestro elemento pivote, realizaremos las operaciones de


Gauss-Jordan para formar nuestra matriz identidad. El nuevo valor de cada fila se
calculará de la siguiente manera:

Para la fila pivote: El nuevo valor se obtendrá dividiendo el valor actual entre el
elemento pivote.

Nuevo Valor Fila Pivote = Valor Actual Fila Pivote / Elemento Pivote

Para las otras filas: El nuevo valor se calcula restando del valor actual, la
multiplicación del elemento de la fila que se encuentra en la columna pivote por el
nuevo valor calculado en la fila pivote.

Nuevo Valor = Valor Actual – (Elemento Fila Columna Pivote*Nuevo Valor Fila
Pivote).

Para entenderlo mejor, continuaremos resolviendo el ejemplo. Iniciaremos con la


fila pivote:

19
En las otras filas realizaremos los cálculos de forma diferente. Iniciaremos con la
fila de S1:

Para la fila S3 tenemos:

20
Finalmente en la fila Z tenemos:

21
La matriz resultante sería:

Cómo puedes ver la posición donde se encontraba nuestro elemento pivote ahora

es 1 y los elementos que lo acompañan en la columna se convierten en 0. Es así


que empezamos a formar nuestra matriz identidad.

Volver al paso número 3

Con este último resultado, volveremos al paso 3 y repetiremos el proceso. Cómo


existen valores negativos en el vector de costes reducidos, podemos seguir
optimizando.

El único valor negativo es -4, por lo que la variable que ingresará es X2.

Para elegir la variable que va a salir, dividimos cada valor de la columna R por su
contraparte de la columna X2 (este último valor debe ser positivo)

23/(19/3) = 69/19 = 3.632

El valor en la columna X2 es negativo por lo que no se toma en cuenta.

14/(16/3) = 21/8 = 2.625

El menor valor se encuentra en la fila de S3, por lo que es la variable que saldrá
de la base. El elemento pivote es 16/3.

22
Realizamos nuevamente las iteraciones obteniendo el siguiente resultado:

En esta última matriz vemos que el vector de costes reducidos ya no tiene ningún
valor negativo, lo que quiere decir que nos encontramos en el valor óptimo.
Obtendremos los valores de las variables básicas y de Z de la siguiente forma:

Las variables que no se encuentran en la base tendrán valor de 0.

Solución: X1= 31/4, X2= 21/8, S1= 51/8, S2= 0, S3= 0, Z = 57/2

23
2.3.- Procedimientos para resolver problemas con variables
artificiales (M grande, doble fase)
Las PL en las que todas las restricciones son (≤) con lados derechos no negativos
ofrecen una conveniente solución factible básica inicial con todas las holguras. Los
modelos que implican restricciones (≥) o (=) no lo hacen. El procedimiento para
iniciar PLs de “mal comportamiento” con restricciones (≥) y (=) es utilizar variables
artificiales que desempeñan el papel de holguras en la primera iteración, y que
luego se desechan en una iteración posterior. Aquí se presentan dos métodos
estrechamente relacionados: el método M, y el método de dos fases
Método “M”
El método M se inicia con la PL en forma de ecuación. Si la ecuación i no tiene
una holgura (o una variable que pueda desempeñar el papel de una), se agrega
una variable artificial, Ri, para formar una solución inicial parecida a la solución
básica de total holgura. Sin embargo, las variables artificiales no forman parte del
problema original, y se requiere un “artificio” de modelado para igualarlas a cero
en el momento en que se alcance la iteración óptima (suponiendo que el problema
tenga una solución factible). La meta deseada se logra penalizando estas
variables en la función objetivo utilizando la siguiente regla:
• Regla de penalización para variables artificiales
• Dado M, un valor positivo suficientemente grande (matemáticamente (M ⟶ ∞), el
coeficiente objetivo de una variable artificial representa una penalización
apropiada si: Coeficiente objetivo de la variable artificial -M, en problemas de
maximización M, en problemas de minimización
-M, en problemas de
maximización
Coeficiente objetivo
de la variable
M, en problemas de
artificial
minimización

Método de la doble fase


En muchas ocasiones nos encontraremos con modelos donde el conjunto de
soluciones factibles no consideran al origen como una de ellas, por lo cual sera
imposible utilizar el método simplex

24
Para este tipo de casos se han creado muchas metodologías que buscan resolver
este tipo de problemáticas buscando la solución a través de diversos procesos.
Una de estas alternativas es el método de las dos fases, el cual, como su nombre
lo indica, trabaja por medio de 2 fases o procedimientos, con el objetivo de
encontrar primeramente una solución factible inicial y después pasar a resolver el
modelo a través del método simplex. Para utilizar este método se deber tener el
modelo en su forma ampliada, las variables de decisión deben de ser reales y
mayores a cero.
Las fases del método se describen a continuación:
Fase 1 (Se busca la primera Solución básica factible):
1. Consideramos un modelo de programación lineal que se encuentra en su
forma canónica, este modelo debe de ser transformado en su forma
ampliada agregando variables artificiales en las restricciones donde el
origen no es una solución.
2. Ahora se cambia la función objetivo por una función de minimización donde
las variables de decisión son las variables artificiales, pero tomamos el
conjunto de restricciones de la función original.
3. Procedemos a resolver el modelo que tenemos planteado hasta que se dé
uno de los siguientes casos: las variables artificiales salen de la base o la
función objetivo obtiene el valor de cero. Si no ocurre ninguno, entonces el
modelo no tiene solución
Fase 2 (Resolvemos el modelo con la nueva solución encontrada):
1. Eliminamos las variables artificiales de las restricciones, pero conservamos
los cambios que se dieron durante la fase 1.

25
2. Regresamos a la función objetivo original y resolvemos el modelo con los
cambios que se dieron en las restricciones durante la fase 1.

2.4.- Casos especiales de programación Lineal


En la resolución de un modelo de Programación Lineal se pueden enfrentar ciertos
casos especiales que merecen particular atención. Estos casos (infinitas
soluciones óptimas, problema no acotado sin solución óptima, problema infactible,
solución óptima degenerada) se pueden detectar a través de la aplicación del
Método Simplex. A continuación, un resumen de dichos escenarios:
Infinitas Soluciones Óptimas: Se detecta cuando luego de alcanzar una solución
básica factible óptima, al menos una variable no básica tiene costo reducido igual
a cero. La siguiente imagen representa esta situación donde la solución óptima
(infinitas) se alcanza en el tramo entre los vértices B y C. En efecto se puede
representar de forma general las soluciones óptimas como:

con .

26
Problema No Acotado: En las iteraciones del Método Simplex un problema no
acotado se detecta cuando al calcular el criterio de factibilidad o mínimo cuociente
que determina la variable que deja la base, todas las entradas en la columna de la
variable no básica entrante son negativas o cero, por tanto, no existe denominador
válido (mayor a cero) que permita determinar el pivote. En la siguiente
representación gráfica se puede apreciar que las curvas de nivel de la función
objetivo crecen en la dirección del vector gradiente, donde en particular el dominio
de soluciones factibles es no acotado para los valores que puede adoptar la
variable .

Es importante destacar que el hecho que un dominio de soluciones factibles sea


no acotado no implica necesariamente que el problema de Programación Lineal no
tiene solución.
Problema Infactible: Si al finalizar la Fase I del Método Simplex de 2 Fases el valor
de la función objetivo es distinto a cero, entonces el problema lineal es infactible,
es decir, el dominio de soluciones factibles es vacío al existir restricciones
incompatibles (por ejemplo, en el gráfico a continuación el área azul no se
intersecta con el área color rojo).

27
Solución Óptima Degenerada: Cuando se presenta un empate en el cálculo de la
condición de factibilidad del Método Simplex, al menos una variable básica será
cero en la siguiente iteración, caso en el cual se dice que la nueva solución es
degenerada. Esto implica que el modelo tiene al menos una restricción
redundante.

2.5.- Método Dual Simplex (Simplex Dual)


Este método se aplica a problemas óptimos pero infactibles. En este caso, las
restricciones se expresan en forma canónica (restricciones ).

28
La función objetivo puede estar en la forma de maximización o de minimización.
Después de agregar las variables de holgura y de poner el problema en la tabla,
si algún elemento de la parte derecha es negativo y si la condición de optimidad
está satisfecha, el problema puede resolverse por el método dual simplex. Note
que un elemento negativo en el lado derecho significa que el problema comienza
óptimo pero infactible como se requiere en el método dual simplex. En la iteración
donde la solución básica llega a ser factible esta será la solución óptima del
problema.

2.5.- Método Dual Simplex (Simplex Dual)


CONDICION DE FACTIBILIDAD

La variable que sale es la variable básica que tiene el valor más negativo (los
empates se rompen arbitrariamente si todas las variables básicas son No
negativas, el proceso termina y esta última tabla es la solución óptima factible).
CONDICION DE OPTIMIDAD
La variable que entra se elige entre las variables no básicas como sigue. Tome los
cocientes de los coeficientes de la función objetivo entre los coeficientes
correspondientes a la ecuación asociada a la variable que sale.
Ignore los cocientes asociados a denominadores positivos o cero.
La variable que entra es aquella con el cociente más pequeño si el problema es
de minimizar o el valor absoluto más pequeño si el problema es de
maximización(rompa los empates arbitrariamente). Si los denominadores son
ceros o positivos el problema no tiene ninguna solución factible.
PARA QUE SE UTILIZA:
Como sabemos, el método simplex es un algoritmo iterativo que iniciando en una
solución básica factible pero no óptima, genera soluciones básicas factibles cada
vez mejores hasta encontrar la solución óptima (sí esta existe). La base de su
lógica es mantener la factibilidad, mientras busca la optimalidad.
Pero surge la posibilidad de usar otro esquema igualmente iterativo, que como
contraparte del simplex, comienza en una solución básica óptima, pero no factible
y mantiene la inmejorabilidad mientras busca la factibilidad. Con este
procedimiento se llega igualmente a la solución óptima.

29
EN QUE CASOS SE UTILIZA:
Cada problema de programación lineal tiene un segundo problema asociado con
el. Uno se denomina primal y el otro dual. Los 2 poseen propiedades muy
relacionadas, de tal manera que la solución óptima a un problema proporciona
información completa sobre la solución óptima para el otro.
Las relaciones entre el primal y el dual se utilizan para reducir el esfuerzo de
computo en ciertos problemas y para obtener información adicional sobre las
variaciones en la solución óptima debidas a ciertos cambios en los coeficientes y
en la formulación del problema. Esto se conoce como análisis de sensibilidad o
post-optimidad
Otra de las ventajas que presenta es que dado a que el número de restricciones y
variables entre problema dual y primal es inverso, se pueden resolver
gráficamente problemas que presenten dos restricciones sin importar el número de
variables.
Es importante destacar que este proceso es muy útil ya que en muchos modelos
evita la inclusión de variables artificiales en el momento de transformar un modelo
a formato estándar.
QUE IMPLICA RESOLVERLO CON OTRO METODO:

• Una de las ventajas de la existencia del programa dual es la posibilidad de reducir


el esfuerzo computacional al resolver ciertos modelos de programación lineal.

• Permite resolver problemas de programación lineal de forma más rápida y


sencilla.
• Es otra vía para resolver un problema de programación lineal.
• Facilita profundizar en el contenido económico del problema original
(primal).
• Puede ser utilizada para resolver el caso en que se debe considerar la
introducción de una nueva variable en el primal una vez que ha de sido
obtenida la solución óptima, sin tener que resolver completamente el
problema.
30
• Otra de las ventajas que presenta es que dado a que el número de
restricciones y variables entre problema dual y primal es inverso, se pueden
resolver gráficamente problemas que presenten dos restricciones sin
importar el número de variables.
EJEMPLOS:
FUNCIÓN OPTIMA:
MIN Z=4X1 + 12X2 + 18X3
SUJETA A :
X1 + 18X3 >= 3
2X2 + 2X3 >= 5
X1, X2, X3 >= 0
Paso 1: Convertir el problema de minimización en uno de maximización . La
función objetico se multiplica por -1
F.O. MIN Z= -4X1 - 12X2 - 18X3
La restricciones se multiplican por -1
S.A. -X1 - 18X3 <= -3
-2X2 - 2X3 <= 5
X1 X2 X3 >= 0

Paso 2: Se convierten las inecuaciones en ecuaciones


F.O. Z + -4X1 - 12X2 - 18X3 = 0
S.A. -X1 - 18X3 + S1 >= -3
-2X2 - 2X3 + S2 >= 5

Paso 3: Se determinan las variables básicas y no básicas.

Básicas: S1 y S2
No Básicas: X1 X2 X3

31
Paso 4: Se elabora la tabla inicial de simplex

Paso 5: Determinar la variable que sale (fila pivote)

El número mas negativo de la solución de las restricciones = fila de S2


Paso 6: Determinar la variable que entra (columna pivoite).
Razón mayor = columna X2 (-12/2)

Paso 7: Elaborar la nueva tabla de simplex


A) Nueva fila pivote = fila pivote / elemento pivote

B) Nuevas filas Fila anterior - coeficiente de la columna pivote


nueva fila pivote

32
Se realizan nuevamente los pasos del 5 al 7 obteniendo como solución
final:

Nueva tabla simplex

Nota: No hay más iteraciones cuando no existan soluciones con


coeficientes negativos
El valor mínimo se alcanza para un X2 = 3/2 Y X3 = 1, para un Z=36

33
2.6.- Relaciones primal-dual
El modelo dual de un problema de Programación Lineal consiste en una instancia
alternativa de modelamiento matemático que nos permite rescatar la información
del problema original conocido comúnmente como modelo primal.
En consecuencia, es suficiente con resolver uno de ellos (primal o dual) para
poder obtener la solución óptima y valor óptimo del problema equivalente (primal o
dual según sea el caso). Para ello se puede utilizar, por ejemplo, las condiciones
establecidas en el Teorema de Holguras Complementarias.
Las relaciones de dualidad se pueden resumir en el siguiente cuadro:

La tabla anterior se puede interpretar tanto de izquierda a derecha como de


derecha a izquierda.
Primal Minimización – Dual Maximización
Por ejemplo, leyendo la tabla desde izquierda a derecha, es decir, pasar de un
problema primal de minimización a un problema dual de maximización, tenemos:
• Si el problema primal es de minimización, entonces su correspondiente dual
será uno de maximización.

• Si el problema primal tiene una restricción del tipo >=, la variable dual
asociada a dicha restricción debe ser >=0.
• Si el problema primal tiene una restricción del tipo <=, la variable dual
asociada a dicha restricción debe ser <=0.

• Si el problema primal tiene una restricción del tipo =, la variable dual
asociada a dicha restricción debe ser irrestricta (libre de signo).

34
• Si el problema primal tiene una variable >=0, la correspondiente restricción
asociada en el dual debe ser <=.
• Si el problema primal tiene una variable <=0, la correspondiente restricción
asociada en el dual debe ser >=.
• Si el problema primal tiene una variable irrestricta (libre de signo), la
correspondiente restricción asociada en el dual debe ser =.
Primal Maximización – Dual Minimización
De forma análoga, interpretando la tabla desde derecha a izquierda, es decir,
pasar de un problema primal de maximización a un problema dual de
minimización, tenemos:
• Si el problema primal es de maximización, entonces su correspondiente
dual será uno de minimización.
• Si el problema primal tiene una restricción del tipo <=, la variable dual
asociada a dicha restricción debe ser >=0.
• Si el problema primal tiene una restricción del tipo >=, la variable dual
asociada a dicha restricción debe ser <=0.
• Si el problema primal tiene una restricción del tipo =, la variable dual
asociada a dicha restricción debe ser irrestricta (libre de signo).
• Si el problema primal tiene una variable >=0, la correspondiente restricción
asociada en el dual debe ser >=.
• Si el problema primal tiene una variable <=0, la correspondiente restricción
asociada en el dual debe ser <=.
• Si el problema primal tiene una variable irrestricta (libre de signo), la
correspondiente restricción asociada en el dual debe ser =.
Ejemplo Relaciones de Dualidad en Programación Lineal
A continuación, presentamos un modelo de optimización que consideraremos
como el problema primal (primero fue resuelto a través del Método Simplex de 2
Fases).

Como en este caso el problema primal es de minimización, para definir su


respectivo problema dual leeremos la tabla que resume las relaciones de dualidad

35
desde izquierda a derecha. En consecuencia, el problema dual será uno de
maximización.
Adicionalmente la primera y segunda restricción del problema primal definirán las
variables de decisiones (variables duales) en el problema dual (Y1 e Y2,
respectivamente), siendo los coeficientes en la función objetivo los actuales
valores de los lados derechos de las restricciones del problema primal.
De esta forma la función objetivo del problema dual queda definida por la siguiente
expresión:

Luego por cada variable en el problema primal vamos a tener la misma cantidad
de restricciones en el problema dual. En este caso las variables X1, X2 y X3
definirán la estructura de las restricciones 1, 2 y 3 en nuestro problema dual. Por
ejemplo, la primera restricción del problema dual (asociada a la variable primal X1)
sería 2Y1+2Y2<=160.
Notar que los coeficientes que ponderan a las variables duales son los parámetros
asociados a la variable X1 en el primal en la primera y segunda restricción,
respectivamente. La restricción en el dual es del tipo “<=” debido a que la variable
X1 en el problema primal de minimización tiene la condición de no negatividad
(“>=0”). Por último, el lado derecho de la restricción es el coeficiente que tiene la
variable X1 en la función objetivo del problema primal. Siguiendo el procedimiento
las restricciones del problema dual serían:

Finalmente, como las 2 primeras restricciones del problema primal son del tipo
“>=” en el problema primal de minimización, las respectivas variables duales
asociadas en el problema de maximización serán no negativas. De esta forma el
problema dual es:

36
Ejercicio Propuesto: Utilizando las relaciones de dualidad en Programación
Lineal, dado un problema primal P, demuestre que su correspondiente dual D
queda definido de acuerdo a:

En lo que sigue, combinaremos las distintas restricciones del problema primal,


ponderando por los valores no negativos y cada una, respectivamente, de
modo de obtener la mejor cota superior del valor óptimo del problema P). Vale
decir:

De modo de garantizar que el lado derecho de esta última desigualdad sea una
cota superior de la función objetivo del problema primal se debe cumplir que:

La mejor elección de esta cota se obtendría al resolver el siguiente problema de


optimización:

37
Este problema se conoce como el problema “Dual” D) asociado al problema
“Primal” P).
También resulta que al formular el problema dual de D) se obtiene el problema
primal P) (o uno equivalente). Cualquiera de las dos entregas la misma
información y el valor óptimo alcanzado es el mismo.

2.7.- Análisis de sensibilidad e interpretación de resultados


El análisis de sensibilidad busca determinar los efectos que se producen en la
solución óptima al realizar cambios en cualquiera de los parámetros del modelo de
programación lineal planteado inicialmente. Entre los cambios que se investigan
están: los cambios en los coeficientes de las variables en la función objetivo tanto
para variables básicas como para las variables no básicas, cambios en los
recursos disponibles de las restricciones, variación de los coeficientes de
utilización en las restricciones e introducción de una nueva restricción.
El objetivo principal del análisis de sensibilidad es identificar el intervalo permisible
de variación en los cuales las variables o parámetros pueden fluctuar sin que
cambie la solución óptima. Sin embargo, así mismo se identifica aquellos
parámetros sensibles, es decir, los parámetros cuyos valores no pueden cambiar
sin que cambie la solución óptima. Los investigadores de operaciones tienden a
prestar bastante atención a aquellos parámetros con holguras reducidas en cuanto
a los cambios que pueden presentar, de forma que se vigile su comportamiento
para realizar los ajustes adecuados según corresponda y evitar que estas
fluctuaciones pueden desembocar en una solución no factible.
A modo general, cuando se realiza un análisis de sensibilidad a una solución
óptima se debe verificar cada parámetro de forma individual, dígase los
coeficientes de la función objetivo y los límites de cada una de las restricciones.
En ese sentido se plantea el siguiente procedimiento:
1. Revisión del modelo: se realizan los cambios que se desean investigar en el
modelo.
2. Revisión de la tabla final Símplex: se aplica el criterio adecuado para
determinar los cambios que resultan en la tabla final Símplex.

38
3. Conversión a la forma apropiada de eliminación Gauss: se convierta la tabla
en la forma apropiada para identificar y evaluar la solución básica actual,
para lo cual se aplica la metodología de eliminación Gauss si es necesario.
4. Prueba de factibilidad: se prueba la factibilidad de esta solución mediante la
verificación de que todas las variables básicas de la columna del lado
derecho aun tengan valores no negativos.
5. Prueba de optimalidad: se verifica si esta solución es óptima y factible,
mediante la comprobación de que todos los coeficientes de las variables no
básicas del reglón Z permanecen no negativos.
6. Reoptimización: si esta solución no pasa una de las pruebas indicadas en
los puntos 4 y 5 anteriores, se procede a buscar la nueva solución óptima a
partir de la tabla actual como tabla Símplex inicial, luego de aplicadas las
conversiones de lugar, ya sea con el método Símplex o el Símplex Dual.
Utilizando la herramienta Solver Excel se puede obtener un reporte del analisis de
sensibilidad, para los fines se selecciona el problema 4.6-4 del libro de texto. A
continuación, se presenta el modelo planteado con la solución óptima encontrada.

El primer reporte que se genera corresponde al reporte de repuesta, en el cual se


plantea la solución óptima encontrada.

El reporte de sensibilidad que se genera presenta el siguiente formato, el mismo


se puede visualizar a continuación.

39
El tercer reporte que Solver Excel permite generar es el correspondiente a los
límites, en el formato presentado.

2.8.- Uso del software


Hoy se dispone de un gran número de paquetes de software para programación
lineal y sus extensiones, que satisfacen distintas necesidades. Uno de los más
avanzados de este tipo es Express-MP, un producto de Dash Optimization (que se
unió con Fair Isaac). Otro paquete que es considerado muy poderoso para la
resolución de problemas extensos es CPLEX, un producto de ILOG, Inc., con
oficinas en Silicon Valley. Desde 1988, CPLEX ha marcado el camino de la
solución de problemas de programación lineal cada vez más grandes.
Los extensos esfuerzos de investigación y desarrollo han permitido una serie de
actualizaciones con incrementos drásticos del nivel de eficiencia. CPLEX 11, que
se liberó en 2007, brinda otra mejora con una magnitud importante. ¡Este software
ha resuelto con éxito problemas de programación lineal reales surgidos en la
industria en decenas de millones de restricciones funcionales y variables de
decisión! Con frecuencia, CPLEX utiliza el método símplex y sus variantes (como
el método símplex dual) para resolver estos problemas masivos. Además del
método símplex, CPLEX cuenta con otras herramientas poderosas para resolver

40
problemas de programación lineal. Una de ellas es un algoritmo muy rápido que
aplica el enfoque de punto interior.
Este algoritmo puede resolver algunos problemas de programación lineal enormes
que el método símplex no puede (y viceversa). Otra presentación es el método
símplex de redes que puede resolver tipos especiales de problemas de
programación lineal aún más grandes. CPLEX 11 también va más allá de la
programación lineal e incluye algoritmos modernos para programación entera y
programación cuadrática, así como programación cuadrática entera.
Los lenguajes de modelado están diseñados para formular con eficiencia modelos
de programación lineal grandes (y modelos relacionados) de manera compacta,
después de lo cual se corre un solucionador para resolver el modelo. Varios
lenguajes de modelado sobresalientes trabajan con CPLEX como solucionadores.
ILOG introdujo también su propio lenguaje de modelado, llamado Lenguaje de
Programación para Optimización (OPL) que se puede usar con CPLEX para
formar el Sistema de Desarrollo OPL-CPLEX. (Se puede encontrar una versión de
prueba de ese producto en la página de internet de ILOG, www.ilog.com.)
La versión para estudiantes de CPLEX se incluye en el OR Courseware como el
solucionador del lenguaje de modelado MPL.
La versión del estudiante de MPL que contiene el OR Courseware también incluye
dos solucionadores que representan una alternativa de CPLEX para resolver
problemas de programación lineal y problemas de programación con enteros. Uno
de ellos es CoinMP, un solucionador de software que puede resolver problemas
más complejos que la versión del estudiante de CPLEX (el cual está limitado a 300
restricciones y variables). El otro es LINDO.
LINDO (iniciales de Linear INteractive and Discrete Optimizer) tiene una historia
más antigua que CPLEX en el campo de las aplicaciones de la programación
lineal y sus extensiones. La interfaz fácil de usar de LINDO se encuentra
disponible como un subconjunto del paquete de modelado de optimización LINGO
de LINDO Systems, www.lindo.com. En parte, la duradera popularidad de LINDO
se debe a su sencillez de manejo. Para problemas relativamente pequeños
(tamaño libro de texto), el modelo se puede introducir y resolver de manera
bastante intuitiva, por lo que se trata de una herramienta útil para los estudiantes.
Aunque su uso es muy sencillo en modelos pequeños, LINDO/LINGO puede
resolver también modelos de gran tamaño.

41
Conclusión
En la actualidad, las empresas deben de enfrentar problemas de todo tipo, las
cuales en algunos casos pueden poner en riesgo, no sólo la estabilidad, sino
también su permanencia en el mercado, por lo que deben de resolverlos en forma
rápida y expedita. Estos problemas pueden ser complejos, debido al número de
variables y parámetros que se conozcan y por el nivel de certidumbre de
información que se maneja. Para resolverlos, el ser humano crea modelos y aplica
uno de los tres procesos de solución que existen: procesos algorítmicos, procesos
heurísticos o la simulación.

Estos procesos son utilizados por los ingenieros, que son reconocidos como
solucionadores de problemas, para lo cual manejan diferentes herramientas,
dentro de las cuales está la investigación de operaciones. Esta herramienta nace
en la segunda guerra mundial para analizar las operaciones militares, cuyas
técnicas se aplicaron posteriormente para solucionar problemas del sector
productivo, dando tan buenos resultados que se extendió su uso.

La investigación de operaciones se puede definir como la aplicación del método


científico en la solución de problemas en las empresas, cuyo enfoque es la
modelación, es decir, crea modelos para representar los problemas y utiliza
diferentes técnicas, como la programación lineal y el análisis de decisiones, para
establecer la solución del mismo.

Es innegable que la esta herramienta tiene gran importancia, porque se puede


obtener una solución cuantitativa a problemas de diversos tipos y nos ayuda a
tomar decisiones, basadas en un proceso analítico. Tomar decisiones es la tarea
esencial de toda persona o grupo que tiene su responsabilidad el funcionamiento
de una organización entera o parte de ellas.

La decisión final la debe tomar el ser humano, que tiene conocimiento que no se
pueden cuantificar exactamente, y que puede ajustar los resultados del análisis
para llegar a una decisión conveniente.

42
Referencias

Alfonso, F. (Marzo de 2012). Investigación de Operaciones I Volumen I. Obtenido


de https://inveoperaciones.wordpress.com/metodo-grafico/
Conrrado, A. (9 de Febrero de 2015). Casos Especiales en la Programación Lineal
detectados con el Método Simplex. Obtenido de
https://www.gestiondeoperaciones.net/programacion_lineal/casos-
especiales-en-la-programacion-lineal-detectados-con-el-metodo-simplex/
Conrrado, A. (8 de Mayo de 2015). Relaciones de Dualidad en Programación
Lineal (Pasar de Primal a Dual). Obtenido de
https://www.gestiondeoperaciones.net/programacion_lineal/relaciones-de-
dualidad-en-programacion-lineal-como-pasar-de-primal-a-dual/
Rose, A. (Agosto de 2018). Investigación de operaciones I. Obtenido de
http://investigaciondeoperacionesind331.blogspot.com/p/analisis-de-
sensibilidad.html
Sosa, L. (16 de Noviembre de 2018). Minitab. Obtenido de
https://support.minitab.com/es-mx/minitab/18/help-and-how-
to/statistics/basic-statistics/supporting-topics/basics/type-i-and-type-ii-error/

43

También podría gustarte