INVESTIGACION DE OPERACIONES. Investigación de Operaciones o Investigación Operacional. Se puede definir de la siguiente manera: La Investigación de Operaciones es la aplicación por grupos interdisciplinarios del método científico a problemas relacionados con el control de las organizaciones o sistemas a fin de que se produzcan soluciones que mejor sirvan a los objetivos de toda la organización. El proceso de la Investigación de Operaciones comprende las siguientes fases:
1. Planteamiento del problema. 2. Construcción Construcció n del modelo. 3. Solución del modelo. 4. Validación del modelo. 5. Implementación de resultados.
1.1 Planteamiento del problema. En esta fase del proceso se necesita: una descripción de los objetivos del sistema, es decir, qué se desea
optimizar; identificar las variables implicadas, ya sean controlables o no; determinar las restricciones del sistema. También hay que tener en cuenta las alternativas posibles de decisión y las restricciones para producir una solución adecuada. Un modelo matemático comprende principalmente tres conjuntos básicos de elementos. Estos son: parámetros de decisión. Las variables de decisión son las incógnitas (o decisiones) que 1. Variables y parámetros
deben determinarse resolviendo el modelo. Los parámetros son los valores conocidos que relacionan las variables de decisión con las restricciones y función objetivo. Los parámetros del modelo pueden ser determinísticos o probabilísticos. 2. Restricciones. Para tener en cuenta las limitaciones tecnológicas, económicas y otras del sistema, el
modelo debe incluir restricciones (implícitas o explícitas) que restrinjan las variables de decisión a un rango de valores factibles. En síntesis, en esta parte debemos escribir matemáticamente las limitaciones que nos impone la naturaleza del problema.
3. Función objetivo. La función objetivo define la medida de efectividad del sistema como una función matemática de las variables de decisión. En general podemos decir que en un problema de optimización se intenta encontrar el mejor valor2 de algo. Es por esto que necesitamos especificar qué criterio usaremos para decir que una solución es mejor que otra La solución óptima será aquella que produzca el mejor valor de la función objetivo, sujeta a las restricciones.
Ejemplo
La oficina técnica coordinadora de cultivos (OTCC), tiene a su cargo la administración de 3 parcelas. El rendimiento agrícola de cada parcela está limitado tanto por la cantidad de tierra cultivable como por la cantidad de agua asignada para regadío de la parcela por la comisión de aguas. Los datos proporcionados por este organismo son los siguientes:
Parcela Tierra cultivable (ha) Asignación de aguas (m3) 1 2
400 600
600 800
3
300
375
Las especies disponibles para el cultivo son la remolacha, trigo y maíz, pero el ministerio de agricultura ha establecido un número máximo de hectáreas que pueden dedicarse a cada uno de estos cultivos en las 3 parcelas en conjunto, como lo muestra la siguiente tabla:
Especie
Consumo de agua (m3/ha) Cuota máxima (ha) Ganancia Neta ($/ha)
Remolacha Trigo
3 2
600 500
400 300
Maíz
1
325
100
Los dueños de las parcelas, en un acto de solidaridad social, han convenido que en cada parcela se sembrara la misma fracción de su tierra cultivable. Sin embargo, puede cultivarse cualquier combinación combinación en cualquiera de las parcelas. La tarea que encara la OTCC es plantear cuantas hectáreas se deben dedicar al cultivo de las distintas especies en cada parcela, de modo de maximizar la ganancia neta total para todas las parcelas a cargo de la OTCC. Solución:
Seguimos los pasos típicos:
1. Variables de Decisión xi = Cantidad [ha] de remolacha a cultivar en la parcela i (i=1, 2, 3) yi = Cantidad [ha] de trigo a cultivar en la parcela i (i=1, 2, 3) zi = Cantidad [ha] de maíz a cultivar en la parcela i (i=1, 2, 3)
2. Planteamiento de Restricciones
a) Restricción de Tierra disponible por Parcela Parcela 1: x1 + y1 + z1 400 Parcela 2: x2 + y2 + z2 600 Parcela 3: x3 + y3 + z3 300 b) Restricción Disponibilidad de agua por parcela Parcela 1: 3x1 + 2y1 + 1z1 600 Parcela 2: 3x2 + 2y2 + 1z2 800 Parcela 3: 3x3 + 2y3 + 1z3 375 c) Restricción de Cuota Máxima de cultivo por e specie Remolacha: x1 + x2 + x3 600 Trigo: y1 + y2 + y3 500 Maíz 3: z1 + z2 + z3 325 d) Restricción de misma proporción de tierra cultivable Parcela 1= Parcela 2: (x1 + y1 + z1)/400 = (x2 + y2 + z2)/600 Parcela 2= Parcela 3: (x2 + y2 + z2)/600 = (x3 + y3 + z3)/300 Parcela 3= Parcela 1: (x3 + y3 + z3)/300 = (x1 + y1 + z1)/400 e) La restricción de no negatividad xi, yi, zi 0 i=1, 2, 3. 3. Planteamiento de la Función Objetivo Max F = 400(x1 + x2 + x3) + 300(y1 + y2 + y3) + 100(z1 + z2 + z3)
1.2 El modelo matemático primal de optimización. Método Grafico 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 Los problemas de programación lineal en dos variables tienen interpretaciones geométricas relativamente sencillas; por ejemplo, el sistema de restricciones lineales asociado con un problema de programación lineal
bidimensional- si no es inconsistente- define una región plana cuya frontera e stá formada por segmentos de recta o semirrectas, por lo tanto es posible analizar tales problemas en forma gráfica. Tomemos como ejemplo el sig. Planteamiento. Maximizar Z = 40x+ 30y sujeta a 2x+y < 800 x+y < 480 x>0, y>0 El sistema de desigualdades define la región plana S que aparece en la figura 5. Cada punto de S es un candidato para resolver este problema y se conoce como solución factible. El conjunto S se conoce como conjunto factible. El objetivo es encontrar entre todos los puntos del conjunto S- el punto o los puntos que
optimicen la función objetivo P. Tal solución factible es una solución óptima y constituyen la solución del problema de programación lineal en cuestión.
Como ya se ha observado, cada punto P(x,y) en S es un candidato para la solución óptima del problema en cuestión, por ejemplo, es fácil ver que el punto (200, 150) está en S y, por lo tanto, entra en la competencia. El valor de la función objetivo P en el punto (200,150) está dado por P=40(200)+30(150)=12.500 . Ahora si se pudiera calcular el valor de P correspondiente a cada punto de S, entonces el punto (o los puntos) en S que proporcione el valor máximo de P formará el conjunto solución buscado. Por desgracia, en la mayoría de los problemas, la cantidad de candidatos es demasiado grande o, como en este problema, es infinita. Así este método no es adecuado.
Si en problema de programación lineal tiene una solución, entonces ésta debe aparecer en un vértice, o esquina, del conjunto factible S asociado con el problema. Además, si la función objetivo P se optimiza en dos vértices adyacente de S, entonces se optimiza en todos los puntos del segmento de recta que une estos vértices, en cuyo caso existe una infinidad de soluciones al problema
Método de las esquinas.
1.
Se grafica el conjunto factible.
2.
Se encuentran las coordenadas de todas las esquinas (vértices) del conjunto factible.
3. Se evalúa la función objetivo en cada esquina. 4. Se halla el vértice que proporcione el máximo (mínimo) de la función objetivo. Si sólo existe un vértice con esta propiedad, entonces constituye una solución única del problema. Si la función objetivo se maximiza (minimiza) en dos esquinas adyacentes de S, entonces existe una infinidad de soluciones óptimas dadas por los puntos del segmento de recta determinado por estos dos vértices.
Método Simplex Es un procedimiento iterativo que permite ir mejorando la solución a cada paso. El proceso concluye cuando
no es posible seguir mejorando más dicha solución. Partiendo del valor de la función objetivo en un vértice cualquiera, el método consiste en buscar sucesivamente otro vértice que mejore al anterior. La búsqueda se hace siempre a través de los lados del polígono (o de las aristas del poliedro, si el número de variables es mayor). Cómo el número de vértices (y de aristas) es finito, siempre se podrá encontrar la solución. El método del simplex se basa en la siguiente propiedad: si la función objetivo, f, no 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.
1.3 El modelo matemático dual de optimización. El problema dual es una definición matemática estrechamente relacionada, que se deriva directamente del
problema primal. En la mayor parte de los casos de los modelos de PL, el dual se define para varias formas del primal, dependiendo del sentido de optimización (maximización o minimización), de los tipos de restricciones (> , < , =) y del signo de las variables (no negativas y no restringidas). La solución óptima del problema dual proporciona los precios o los beneficios de los recursos asignados en el problema primal original. La forma estándar del modelo primal, incluye variables de holgura y superávit o de exceso; tiene tres propiedades: · Todas las restricciones son ecuaciones (con lado derecho no negativo) · Todas las variables son no negativas · El sentido de optimización puede ser maximización o minimización. Relaciones del modelo Primal - Dual
La forma estándar del primal se utiliza para confeccionar el tablero simplex inicial; y l a solución del problema dual se obtiene directamente de la tabla simplex primal óptima y viceversa. a)
Cuando el modelo primal es de un problema de maximización, el modelo dual es un problema de minimización y viceversa.
b)
El número de variables del modelo primal será igual al número de restricciones del modelo dual; y
el número de restricciones del modelo primal será igual al número de variables del modelo dual y viceversa. c)
Las constantes del lado derecho en las restricciones del modelo primal, son los coeficientes de la función objetivo del modelo dual.
d)
Las constantes del lado derecho en las restricciones del modelo dual, son los coeficientes de la función objetivo del modelo primal.
e)
Cada columna de los coeficientes de las restricciones en el modelo primal, se convierte en los coeficientes de la fila de las restricciones del modelo dual.
f)
En el modelo primal las variables se representan con Xi; y las variables en el modelo primal se
representan con Yi.
Aplicamos las relaciones con un ejemplo, Construir el modelo dual a partir del siguiente modelo primal
Maximizar: Z = 2 x1 + 3 x2 + 2 x3 Sujeto a: x1 + 2 x2 + 2 x3 4 2 x1 + x2 + x3 6 x1, x2, x3 0
Modelo primal
Modelo dual
Nº de variables = 3 Nº de restricciones = 2 F. O. = Maximizar Restricciones:
Nº de restricciones = 3 Nº de variables = 2 F. O. Minimizar restricciones:
Modelo dual:
Minimizar: C = 4 y1 + 6 y2 Sujeto a:
y1 + 2 y2 2 2 y1 + y2 3 3 y1 + y2 2 y1, y2 0
Coeficiente variables primal
Restricciones 1a 2a Max Z
X1 1 2
X2 2 1
X3 3 1
2
3
2
Y1 1 2 3
Y2 2 1 1
LD
4
6
1a.
2a.
LD
4 6
Coeficientes variables dual
Restricciones 1a 2a 3a Min C
2
3 2
1.2 Resolución del problema de programación lineal En un problema de Programación Lineal, según sean las restricciones, se obtendrán poliedros diferentes,
acotados o no, y según sea la posición de la función objetivo respecto de dicho poliedro se pueden originar diferentes situaciones. Según el tipo de soluciones que presenten un problema de Programación Lineal puede ser: Factible: si existe la región factible. En este caso nos podemos encontrar: a)
Óptimo finito y único. La solución óptima está formada por un único punto con coordenadas reales.
b)
Múltiples óptimos. Un problema de Programación Lineal puede tener más de un óptimo. Además,
c)
o bien el problema tiene un único óptimo, o bien, tiene infinitos óptimos. Óptimo infinito. Un problema de Programación Lineal puede tener un óptimo no finito, es decir, la función objetivo puede tomar, un valor tan grande o tan pequeño como se quiera sin abandonar la región factible.
d)
Región factible no acotada, óptimo finito. La no acotación de la región factible no implica
necesariamente óptimo infinito. Puede ocurrir que la función objetivo alcance el óptimo en la zona acotada de la región factible. e)
Región factible no acotada, óptimo finito e infinito. Puede darse el caso que todos los puntos de
una de las semirrectas que determinan la región factible no acotada sean solución del problema. No factible. Región factible vacía. El conjunto de restricciones de un problema de Programación Lineal
puede ser incompatible, conduciendo a una región factible vacía.
1.2.1
Interpretación Geométrica.
Una compañía de auditores se especializa en preparar liquidaciones y auditorías de empresas pequeñas. Tienen interés en saber cuántas auditorías y liquidaciones pueden realizar mensualmente para maximizar sus ingresos. Se dispone de 800 horas de trabajo directo y 320 horas para revisión. Una auditoría en promedio requiere de 40 horas de trabajo directo y 10 horas de revisión, además aporta un ingreso de 300 dls. Una liquidación de impuesto requiere de 8 horas de trabajo directo y de 5 horas de revisión, produce un ingreso de 100 dls. El máximo de liquidaciones mensuales disponibles es de 60. OBJETIVO: Maximizar el ingreso total. VARIABLE DE DECISION: Cantidad de auditorías (X1). Cantidad de liquidaciones (X2). RESTRICCION ES: Tiempo disponible de trabajo directo Tiempo disponible de revisión Número máximo de liquidaciones. Maximizar
Sujeto a:
Z: 300 X1
+100 X2
1.2.2
Método Simplex
Tienen interés en saber cuántas auditorías y liquidaciones pueden realizar mensualmente para maximizar sus ingresos El método simplex es un procedimiento interactivo que permite tender progresivamente hacia la solución
optima. Es un procedimiento sistemático y eficiente para encontrar y probar soluciones situadas en los vértices de optimalidad. El método requiere que las restricciones sean ecuaciones en lugar de inecuaciones, lo cual se logra
añadiendo variables de holgura a cada inecuación del modelo, variables que nunca pueden ser negativas y tienen coeficiente 0 en la función objetivo. CRITERIOS PARA EL ALGORITMO Criterio de optimalidad. Se aplica en el simplex para determinar entre las variables no básicas , una que entre (VE) a la base, eligiendo en la columna que tenga el coeficiente más negativo en el renglón Z de l a tabla, si el problema es maximizar. Por lo contrario, si el problema e s minimizar se elige para variable entrante (VE) a la base la que cumpla con el coeficiente más positivo en dicho renglón Z. Criterio de factibilidad.- Se aplica en el simplex para determinar entre las variables básicas , una que salga de la base (VS) , eligiéndola que cumpla . FASES DE DESARROLLO
1. Convertir las desigualdades en igualdades 2. Igualar la función objetivo a cero
3. Escribir la tabla inicial simplex 4. Encontrar la variable de decisión que entra en la base y la variable de holgura que sale de la base 5. Encontrar los coeficientes de la nueva tabla.
Maximizar Z=
sujeto
a:
f(x,y)= 3x + 2y 2x + y 18 2x + 3y 42 3x + y 24 x 0,y 0
4. Encontrar la variable de decisión que entra en la base y la variable de holgura que sale de la base §
¨
Para escoger la variable de decisión que entra en la base, nos fijamos en la última fila, la de los coeficientes de la función objetivo y escogemos la variable con el coeficiente negativo mayor (en valor absoluto). En nuestro caso, la variable
de coeficiente - 3.
x
Si en la última fila no existiese ningún coeficiente negativo, significa que se ha alcanzado la solución óptima B . Para encontrar la variable de holgura que tiene que salir de la base, se divide cada término de la última columna (valores solución) por el término correspondiente de la columna pivote, siempre que estos últimos sean mayores que cero. En nuestro caso: 18/2 [=9] , 42/2 [=21] y 24/3 [=8] C . En la intersección de la fila pivote y columna pivot e tenemos el elemento pivote operacional, 3.
5. Encontrar los coeficientes de la nueva tabla. obtienen dividiendo todos los coeficientes de la fila d por el pivote operacional, 3, que es el que hay que convertir en 1.
©
Nueva
x se
fila del pivote= (Vieja fila del pivote) : (Pivote) Resto de las filas:
Nueva
fila= (Vieja fila) - (Coeficiente de la vieja fila en la columna de la variable entrante) X (Nueva fila del pivote)
Veámoslo con un ejemplo una vez calculada la fila del pivote (fila de x en la Tabla II): Vieja fila de s
Coeficiente
2 3
0 1 0
42
-
-
-
-
-
-
2 2
2 2 2
2
x x
x x x
x
Nueva fila pivote 1 1/3 0 0 1/3 = = Nueva fila de s
= = =
8 =
0 7/3 0 1 -2/3 26
Tabla III . Iteración nº 3 Base Variable de decisión Variable de holgura Valores solución
x
y
h
s
d
y
0
1
3
0
-2
6
s
0
0
-7
0
4
12
x
1
0
-1
0
1
6
Z
0
0
3
0
-1
30
Como en los elementos de la última fila hay uno negativo, -1, significa que no hemos llegado todavía a la solución óptima. Hay que repetir el proceso: A.
B.
C.
La variable que entra en la base es d , por ser la variable que corresponde al coeficiente -1 Para calcular la variable que sale, dividimos los términos de la última columna entre los términos correspondientes de la nueva columna pivote: 6/(-2) [=-3] , 12/4 [=3], y 6:1 [=6] y como el menor cociente positivo es 3, tenemos que la variable de holgura que sale es s. El elemento pivote, que ahora hay que hacer 1, es 4.
Tabla IV . Final del proceso Base Variable de decisión Variable de holgura Valores solución
Como
x
y
h
s
d
y
0
1
-1/2
0
0
12
d
0
0
-7/4
0
1
3
x
1
0
-3/4
0
0
3
Z
0
0
5/4
0
0
33
todos los coeficientes de la fila de la función objetivo son positivos,
hemos llegado a la solución óptima. Los solución óptima viene dada por el valor de Z en la columna de los valores solución, en nuestro caso: 33. En la misma columna se puede observar el vértice donde se alcanza, observando las filas correspondientes a las variables de decisión que han entrado en la base: D(3,12)
y
Si en el problema de maximizar apareciesen como inecuaciones de la forma: ax + by
restricciones
c; multiplicándolas por - 1 se
transforman en inecuaciones de la forma - ax - by
- c y estamos en el
caso anterior
y
Si en lugar de maximizar se trata de un problema de minimizar se sigue el mismo proceso, pero cambiando el sentido del criterio, es decir, para entrar en la base se elige la variable cuyo valor, en la fila de la función objetivo, sea el mayor de los positivos y se finali zan las iteraciones cuando todos los coeficientes de la fila de la función objetivo son negativos
Interpretación geométrica del método del simplex
Las sucesivas tablas que hemos construido van proporcionando el valor de la función objetivo en los distintos vértices, ajustándose, a la vez, los coeficientes de las variables iniciales y de holgura. En la primera iteración (Tabla I) han permanecido todos los coeficientes iguales, se ha calculado el valor de la función objetivo en el vértice A(0,0), siendo este 0. A continuación se desplaza por la arista AB, calculando el valor de f , hasta llegar a B. Este paso aporta la Tabla II. En esta segunda iteración se ha calculado el valor que corresponde al vértice B(8,0): Z=f(8,0) = 24 Sigue por la arista BC, hasta llegar a C, donde se para y despliega los datos de la Tabla III. En esta tercera iteración se ha calculado el valor que corresponde al vértice C(6,6) : Z=f(6,6)=30. Continua haciendo cálculos a través de la arista CD, hasta llegar al vértice D. Los datos que se reflejan son los de la Tabla IV. Concluye con esta tabla, advirtiendo que ha terminado (antes ha comprobado que la solución no mejora al desplazarse por la arista DE) El valor máximo de la función objetivo es 33, y corresponde a x = 3 e y = 12 (vértice D).
1.2.3
Análisis de sensibilidad.
El análisis de sensibilidad o postoptimal para los modelos de Programación Lineal, tiene por objetivo
identificar el impacto que resulta en los resultados del problema original luego de determinadas variaciones en los parámetros, variables o restricciones del modelo, sin que esto pase por resolver el problema nuevamente. Es decir, ya sea si resolvemos nuestro modelo gráficamente o utilizando el Método Simplex, lo que se busca
es que estas variaciones o sensibilidad hagan uso de la solución y valor óptimo actual, sin tener la necesidad de resolver para cada variación un nuevo problema. En especial nos concentraremos en el análisis de sensibilidad o postoptimal que hace uso de la tabla final del Método Simplex.
TEORÍA Siguiendo la notación utilizada en la sección dedicada al Método Simplex en nuestro sitio, éste opera para modelos de Programación Lineal en un formato estándar.
Min
cTx
s.a
Ax = b x >= 0
Donde la tabla final del Método mantiene la siguiente estructura:
y
Donde:
y
I: Matriz Identidad
y
0: Costos reducidos asociados a las variables básicas
y
B:
y
D: Matriz de variables no básicas
y
b: Lado derecho
y
Cb: Coeficientes en la función objetivo asociados a l as variables básicas
y
Cd: Coeficientes en la función objetivo asociados a l as variables no básicas
Matriz de variables básicas
1. Cambio en el "lado derecho" de las restricciones: Lo que se busca identificar si las actuales variables básicas se mantienen luego de la modificación de uno o más parámetros asociados al "lado derecho" del modelo. Si calculamos:
Cambio en el "lado derecho" de las restricciones: Lo que se busca identificar si las actuales variables básicas
se mantienen luego de la modificación de uno o más parámetros asociados al "lado derecho" del modelo. Si calculamos:
y se cumple
, Las mismas variables básicas lo son también de la nueva solución
óptima, calculada con el nuevo
. Si lo anterior no se cumple, se puede aplicar el Método Simplex Dual.
EJEMPLO: Sin resolver nuevamente el problema, se desea saber si las actuales variables básicas óptimas del
problema también lo son del mismo problema, donde los lados derechos corresponde al vector b=(20,30). (Observación: X4 y X5 son variables de holgura de la restricción 1 y 2 respectivamente)
Max sa:
2x1 + 7x2 - 3x3 x1 + 3x2 + 4x3 <= 30 x1 + 4x2 - x3 <= 10 x1,x2,x3 >= 0
X1
X2
X3
X4
X5
0
-1
5
1
-1
20
1
4
-1
0
1
10
0
1
1
0
2
20
Para analizar este escenario debemos calcular el vector de variables básicas y verificar si todos sus componentes son positivos definidos. Nótese que para esto necesitamos la matriz B inversa, la cual fácilmente podemos rescatar identificando los parámetros asociados a X4 y X5 (variables de holgura de la restricción 1 y 2 respectivamente) en la tabla final del Método Simplex:
Luego, dado que al menos uno de los coeficientes del nuevo lado derecho tiene un valor negativo, cambia la actual base óptima. Cabe destacar que ante esta situación no es necesario resolver el nuevo escenario partiendo de cero, sino lo que se debe hacer es utilizar la tabla final del simplex del escenario base, actualizando el lado derecho y valor de l a función objetivo.
X1
X2
X3
X4
X5
0
-1
5
1
-1
-10
1
4
-1
0
1
30
0
1
1
0
2
60
Posteriormente, se continua iterando haciendo uso del Método Simplex Dual.
2. Inclusión de una nueva variable: Debemos evaluar si la nueva variable es un aporte significativo a los
resultados del modelo original. Luego, para decir si la actual solución básica es óptima para el nuevo problema, calculamos el costo reducido de la nueva variable como:
donde k es el índice de la nueva variable y Ak su respectiva columna en la matriz de coeficientes. Si se cumple que rk>=0 se conserva la actual solución óptima. En caso contrario, se puede seguir con el Simplex agregando a la tabla una nueva columna con entradas B-1Ak y rk y tomando como variable entrante a la nueva base la que acabamos de introducir al problema. EJEMPLO: Se desea estudiar la posibilidad de elaborar un nuevo producto con beneficio neto igual a 8 y que
requiere 4, 2 y 5 unidades de los recursos asociados a cada restricción. Sin resolver nuevamente el problema, ¿Conviene elaborar el producto?
Max
9x1 + 12x2
sa:
4x1 + 3x2 <= 180 2x1 + 3x2 <= 150
4x1 + 2x2 <= 160 x1,x2 >= 0
X1
X2
X3
X4
X5
1
0
1/2
-1/2
0
15
0
1
-1/3
2/3
0
40
0
0
-4/3
2/3
1
20
0
0
1/2
7/2
0
615
Se debe evaluar rk y determinar si este es >=0.
En este ejemplo rk=1>=0, por lo cual no conviene la incorporación de esta nueva variable al modelo, es
decir, aun cuándo sea incorporada no obtendremos un valor óptimo que supere el actual V(P)=615. De todas formas mostraremos como se incluye en la tabla final del Simplex esta modificación de modo que el lector pueda entender su incorporación cuando es necesario:
X1
X2
X3
X4
X5
XNew
1
0
1/2
-1/2
0
1
15
0
1
-1/3
2/3
0
0
40
0
0
-4/3
2/3
1
1
20
0
0
1/2
7/2
0
1
615
Si el costo reducido de esta nueva variable hubiese sido cero, entonces el nuevo escenario tendría infinitas soluciones.
2.
Inclusión de una nueva variable: Debemos evaluar si la nueva variable es un aporte significativo a los
resultados del modelo original. Luego, para decir si la actual solución básica es óptima para el nuevo problema, calculamos el costo reducido de la nueva variable como:
donde k es el índice de la nueva variable y Ak su respectiva columna en la matriz de coeficientes. Si se cumple que rk>=0 se conserva la actual solución óptima. En caso contrario, se puede seguir con el Simplex agregando a la tabla una nueva columna con entradas B-1Ak y rk y tomando como variable entrante a la nueva base la que acabamos de introducir al problema.
EJEMPLO: Se desea estudiar la posibilidad de elaborar un nuevo producto con beneficio neto igual a 8 y que requiere 4,
2
y 5 unidades de los recursos asociados a cada restricción. Sin resolver nuevamente el problema,
¿Conviene elaborar el producto? Max
9x1 + 12x2
sa:
4x1 + 3x2 <= 180 2x1
+ 3x2 <= 150
4x1 + 2x2 <= 160 x1,x2 >= 0
X1
X2
X3
X4
X5
1
0
1/2
-1/2
0
15
0
1
-1/3
2/3
0
40
0
0
-4/3
2/3
1
20
0
0
1/2
7/2
0
615
Se debe evaluar rk y determinar si este es >=0.
En este ejemplo rk=1>=0, por lo cual no conviene la incorporación de esta nueva variable al modelo, es decir, aun cuándo sea incorporada no obtendremos un valor óptimo que supere el actual V( P)=615. De todas formas
mostraremos como se incluye en la tabla final del Simplex esta modificación de modo que el lector pueda entender su incorporación cuando es necesario:
X1
X2
X3
X4
X5
XNew
1
0
1/2
-1/2
0
1
15
0
1
-1/3
2/3
0
0
40
0
0
-4/3
2/3
1
1
20
0
0
1/2
7/2
0
1
615
Si el costo reducido de esta nueva variable hubiese sido cero, entonces el nuevo escenario tendría infinitas soluciones.
1.2.4
Aplicación de paquetes computacionales.
Se presenta la documentación relativa a los programas de computación que serán utilizados en el curso para resolver problemas de programación Lineal, adicionalmente, se puede bajar los programas de computación con fines académicos, con miras a resolver los pr oblemas propuestos del curso y no deben ser utilizados con fines comerciales ya que los mismos están protegidos por las leyes de derechos de autor. A.1) E l programa WinQSB (3.9 Mb), cuya propiedad intelectual es del Dr. Yih-Long Chang y es aplicable a todos los problemas de Investigación de Operaciones. A.2) El programa PrgLin, cuya propiedad es de la Universidad de Lisboa (Portugal), el cual se aplica para soluciones gráficas de problemas de dos dimensiones. A.3) El programa InvOp (361 kb), desarrollado por la Universidad del Cuyo en Argentina, se aplica para la solución de problemas relacionados con transporte y redes. A.3) El programa Lingo, propiedad de Lindo Systems Inc (USA), que dado su gran tamaño (18.9 Mb), se recomienda que Usted lo recupere directamente de la pagina Web del propietario de dicha tecnologia http:// www.lindo.com Posteriormente se irán incorporando otros programas de computación específicos para cada caso y cuyo uso será descrito mediante ejemplos en la Clase. B.-)
USO DEL PROGRAMA SOLVER DE EXCEL (Microsoft)
Para conocer la aplicación del método SOLVER de EXCEL (Microsoft), se utilizará un ejemplo práctico: Max Z= 10 X1 + 8 X2 Sujeto a:
30X1 +20X2 <= 120
2X1 + 2X2 <= 9 4X1 + 6X2 <= 24 X1,X2 >=0 La única dificultad que tenemos es el de modelar el programa dentro del Excel, y eso, es muy fácil. Por supuesto, hay infinidad de maneras de hacerlo, aquí propongo una. Se activa Excel y en una hoja... · Se ubican las celdas que se corresponderán con el valor de las variables de decisión; en éste caso, las celdas B6 y C6, se les da un formato para diferenciarlas de las demás, aquí azul oscuro (ver captura abajo). Se ubica también, las celdas que contendrán los coeficientes de las variables de decisión, B4 y C4, y se llenan con sus respectivos valores, 10 y 8. Aunque éste último paso, se podría omitir y dejar los coeficientes definidos en la celda de la función objetivo, así es mejor para los análisis de sensibilidad y para que la hoja quede portable para otro programa. · Se ubica la celda que se corresponderá con la función objetivo (celda objetivo), la B3. En ella se escribe la función que sea, en éste caso, será el coeficiente de X1 (en B4) por el valor actual de X1 (en B6) mas el coeficiente de X2 (en C4) por el valor actual de X2 (en C6) O sea: =$B$4*$B$6+$C$6*$C$4 · Coeficientes para la primera restricción: los podemos escribir en la misma columna de las variables de decisión; en las celdas B7 y C7, con los valores 30 y 20, seguido del sentido de la desigualdad (<=) y de su correspondiente RHS: 120. A la derecha ubicaremos el valor actual de consumo de la restricción, ella se escribirá en función de las variables de decisión y de los coeficientes de la restricción. Esta celda, la utilizará Solver como la real restricción, cuando le digamos que el valor de ésta celda no pueda sobrepasar la de su correspondiente RHS. De nuevo será el valor del coeficiente por el de la variable:=B7*$B$6+C7*$C$6. Notese que ahora B7 y C7 no tienen el signo $. Pues es que luego que se haya escrito ésta celda, se podrá arrastrar hacia abajo para que Excel escriba la fórmula por nosotros (la pereza!), pero tome los valores relativos a los coeficientes que le corresponda a los mismos valores de las variables de decisión. Se repite los pasos anteriores para las otras restricciones, pero ahora la fórmula será: =B8*$B$6+C8*$C$6 y =B9*$B$6+C9*$C$6.
El resto del formato es para darle una presentación detallada a la hoja. Al hacer click en Herramientas,
Solver se tendrá una pantalla como la siguiente. Lo primero que hay que hacer es especificar la celda objetivo y el propósito: maximizar. Se escribe B3 (o $B3 ó B$3 ó $B$3 como sea, da igual), en el recuadro
"cambiando las celdas", se hace un click en la flechita roja, para poder barrer las celdas B6 y C6; lo mismo da si se escriben directamente los nombres.
Y ahora para las restricciones: se hace click en agregar...
En F7 está la primera restricción, como se puede ver en la captura. Se especifica el sentido de la restricción
<=, >= ó =. Aquí también se puede especificar el tipo de variable, por defecto es continua, pero se puede escoger "Int" para entera o "Bin" para binaria. En el recuadro de la derecha establecemos la cota. Aquí podemos escribir 120 pero mejor escribimos $E$7 para que quede direccionado a la celda que contiene el 120, y después lo podríamos cambiar y volver a encontrar la respuesta a manera de análisis de sensibilidad. Se repite éste paso para las otras dos restricciones. La condición de no negatividad hay que incluirla manualmente, así:
El cuadro de diálogo debe lucir así:
Y listo! Se hace click en resolver y ya. Parece un poco largo en comparación con los otros paquetes de programación lineal, pero esto se hará sólo una vez, para los próximos programas se podrá utilizar la misma hoja cambiando los coeficientes. Sin embargo, como se puede notar, la flexibilidad de modelar es muy grande, y se puede introducir directamente en una hoja donde se haga el análisis de Planeación Agregada, Transporte, Inventario, Secuencias, balanceo, etc.