miércoles, 26 de septiembre de 2018

Método de Voguel

Método de Voguel

El método de Vogel, o aproximación de Vogel, es un método que permite llegar a una solución inicial factible del problema de transporte.
El procedimiento de este método es el siguiente:
  1. Tener los valores de costos de envíos desde cada origen a cada destino tabulados (matriz de costos). En caso de que la matriz no este equilibrada (el numero de filas es diferentes del numero de columnas), agregar una fila o columna de ceros según corresponda. Esto quiere decir que según sea el caso se creara un origen o un destino ficticio.
  2. Realizar el cálculo de las penalizaciones para cada fila y columna. Las penalizaciones se calculan restando los dos valores más pequeños de cada fila y cada columna. Las penalizaciones tienen valor absoluto.
  3. Identificar la fila o columna con la mayor penalización (en caso de que exista un empate en las penalizaciones, se puede elegir cualquiera de las que tiene el mayor valor), y asignar la mayor cantidad de material posible a la casilla con el menor costo en esa fila o columna.
  4. Se sombrean (eliminan) las filas o columnas que hayan sido satisfechas, reduciendo así la matriz.
  5. Se repite el procedimiento desde en paso 2.
  6. Una vez satisfechos todos los orígenes y destinos (sombreadas todas las filas y columnas) se puede proceder a calcular el costo del programa de envió encontrado mediante este método (cabe resaltar que la solución factible encontrada con este método no es necesariamente la optima).


jueves, 20 de septiembre de 2018

Aplicaciones diversas de programación lineal

Modelos y Aplicaciones de la Programación Lineal

Un modelo de Programación Lineal (PL) considera que las variables de decisión tienen un comportamiento lineal, tanto en la función objetivo como restricciones del problema. En este sentido, la Programación Lineal es una de las herramientas más utilizadas en la Investigación Operativa debido a que por su naturaleza se facilitan los cálculos y en general permite una buena aproximación de la realidad.
Los Modelos Matemáticos se dividen básicamente en Modelos Deterministas (MD) o Modelos Estocásticos (ME). En el primer caso (MD) se considera que los parámetros asociados al modelo son conocidos con certeza absoluta, a diferencia de los Modelos Estocásticos, donde la totalidad o un subconjunto de los parámetros tienen una distribución de probabilidad asociada. Los cursos introductorios a la Investigación Operativa generalmente se enfocan sólo en Modelos Deterministas.
Las aplicaciones de los modelos de Programación Lineal abarcan diversas áreas de la Ingeniería. A continuación un breve compendio de alguna de sus aplicaciones y referencias de interés para el lector:
1. Problema de Transporte: (Referencia: Hitchcock, 1941; Kantorovich, 1942; Koopmans 1947).
El problema consiste en decidir cuántas unidades trasladar desde ciertos puntos de origen (platas, ciudades, etc) a ciertos puntos de destino (centros de distribución, ciudades, etc) de modo de minimizar los costos de transporte, dada la oferta y demanda en dichos puntos. Se suponen conocidos los costos unitarios de transporte, los requerimientos de demanda y la oferta disponible.
Por ejemplo, suponga que una empresa posee dos plantas que elaboran un determinado producto en cantidades de 250 y 400 unidades diarias, respectivamente. Dichas unidades deben ser trasladadas a tres centros de distribución con demandas diarias de 200, 200 y 250 unidades, respectivamente. Los costos de transporte (en $/unidad) son:
parametros-costos-de-transp
Se requiere formular un modelo de Programación Lineal que permita satisfacer los requerimientos de demanda al mínimo costo.
Variables de Decisión:
Xij: Unidades transportadas desde la planta i (i=1, 2) hasta el centro de distribución j (j=1, 2, 3)
Función Objetivo: Minimizar el costo de transporte entre las plantas y los centros de distribución dado por:
Minimizar 21X11 + 25X12 + 15X13 + 28X21 + 13X22 + 19X23
Restricciones:
Satisfacer los requerimientos de Demanda de los Centros de Distribución:
  • X11+ X21 = 200
  • X12 + X22 = 200
  • X13 + X23 = 250
Sujeto a la Oferta o Capacidad de Producción de las Plantas::
  • X11+ X12 + X13 = 250
  • X21 + X22+ X23 = 400
No Negatividad:
  • Xij>= 0   i=1,2 y j=1,2,3
El siguiente diagrama permite una visualización de la situación anterior:
diagrama-problema-transport
A continuación una descripción de la implementación computacional y resolución del problema anterior utilizando el complemento Solver de Microsoft Excel:
1. Abrir una Planilla de Cálculo de Excel. Asegúrese de tener instalado el complemento Solver. Luego construya una planilla como la de la imagen de referencia. Se han marcado con amarillo las celdas cambiantes (variables de decisión) y con color azul la celda de la función objetivo.
planilla-problema-de-transp
Notar que algunas celdas en la imagen anterior consideran fórmulas:
  • F7=SUMA(C7:E7)
  • F8=SUMA(C7:E7)
  • C9=SUMA(C7:C8)
  • D9=SUMA(D7:D8)
  • E9=SUMA(E7:E8)
2. Ingrese la función objetivo, celdas cambiantes y restricciones en la ventana de Parámetros de Solver.  Seleccione también la opción Convertir variables sin restricciones en no negativas. Si utiliza la mismas celdas de la imagen anterior, usted debería obtener lo siguiente:
solver-transporte
3. Seleccione Resolver. Obtendrá la solución al problema y podrá requerir los Informes de Solver. Finalmente presione Aceptar para obtener el o los informes de interés.
solucion-solver-transporte
Finalmente, se obtienen los informes de confiabilidad (o sensibilidad) los cuales entregan información relevante en cuanto a los precios sombra asociados a las restricciones, intervalos de variación de garantizan la validez del precio sombra, intervalo de variación para los coeficientes de la función objetivo, etc.
informe-confiabilidad-solve


  • APLICACIONES DE LA PROGRAMACIÓN LINEAL EN PRODUCCIÓN


COMBINACIÓN ÓPTIMA DE BIENES: A menudo las técnicas de PL permiten decidir sobre la cantidad más adecuada que una empresa debe producir de cada uno de sus productos a fin maximizar los beneficios sin dejar de cumplir con unos determinados requisitos (financieros, de demanda, contractuales, de disponibilidad de materias primas, etc.).
PLANIFICACIÓN DE LA PRODUCCIÓN: El establecer un plan de producción para un período de semanas o meses resulta ser una tarea difícil e importante en la mayoría de las plantas de producción. El director de operaciones debe considerar muchos factores: mano de obra, costes de inventario y almacenamiento, limitaciones de espacio, demanda, etc. Por lo general la mayoría de las plantas producen más de un bien, con lo que la tarea anterior se complica aún más. Como veremos en el siguiente ejemplo, el problema de la planificación se asemeja bastante al de la combinación óptima de bienes, pudiendo ser el objetivo maximizar beneficios o bien minimizar los costes de producción más almacenamiento.
  • APLICACIONES DE LA PROGRAMACIÓN LINEAL A LA DISTRIBUCIÓN DE ÁREAS


ASIGNACIÓN DE TRABAJOS: El objetivo aquí será asignar de la forma más eficiente posible un trabajo a cada empleado o máquina. Ejemplos de este tipo de asignación serían la distribución de coches patrulla por las calles de una ciudad o la destino de cada jefe de ventas a una determinada zona geográfica. El objetivo puede ser bien minimizar los tiempos o costes de desplazamiento, o bien maximizar la efectividad de las asignaciones.
Aparte de poder utilizar los algoritmos tradicionales (Simplex y Karmarkar), este tipo de problemas también puede resolverse usando técnicas especialmente diseñadas para sus características como el método húngaro, el cual necesita de menos iteraciones para dar con la solución.
Una propiedad particular de los problemas de asignación es que tanto los coeficientes tecnológicos cómo los términos independientes (right-hand-side) siempre toman el valor 1. Además, todas las variables serán binarias, tomando el valor 1 si la asignación propuesta se lleva a cabo y 0 en caso contrario.
PLANIFICACIÓN DE HORARIOS: La planificación de horarios intenta dar una respuesta efectiva a las necesidades de personal durante un período concreto de tiempo. La aplicación de la PL a este tipo de problemas resulta especialmente útil cuando los directivos disponen de cierta flexibilidad a la hora de asignar tareas a empleados polifuncionales. Un sector típico donde se hace uso de la PL para tomar decisiones sobre planificación de horarios son las entidades bancarias.
  • APLICACIONES DE LA PROGRAMACIÓN LINEAL A LAS FINANZAS


SELECCIÓN DE UNA CARTERA DE VALORES: Un problema al que se tienen que enfrentar de forma habitual los directivos de bancos, fondos de inversión, y compañías de seguros es la selección de una serie de inversiones concretas de entre la gran variedad de alternativas existentes en el mercado. Por norma general, el objetivo de estos directivos es maximizar los beneficios esperados de estas inversiones, las cuales se ven sometidas a un conjunto de restricciones, algunas legales y otras provenientes de la propia empresa (como puede ser el nivel de riesgo que se desea asumir o la cantidad máxima que se permite invertir).
  • APLICACIONES DE LA PROGRAMACIÓN LINEAL A LA LOGÍSTICA


El PROBLEMA DEL TRANSPORTE: El llamado problema del transporte se refiere al proceso de determinar el número de bienes o mercancías que se han de transportar desde cada uno de los orígenes a cada uno de los destinos posibles. El objetivo suele ser minimizar costes de transporte, y las restricciones vienen dadas por las capacidades productivas de cada origen y las necesidades de cada destino. Este tipo de problema es un caso específico de PL, por lo que existen métodos y algoritmos especiales que facilitan su resolución (Regla de la Esquina NorOeste, Método de Vogel, Método de Paso Secuencial, y Método de distribución modificada o MODI).
  • APLICACIONES DE LA PROGRAMACIÓN LINEAL A MEZCLAS


El PROBLEMA DE LA DIETA: Este problema representa una de las primeras aplicaciones de la PL, y comenzó a utilizarse en los hospitales para determinar la dieta más económica con la que alimentar a los pacientes a partir de unas especificaciones nutritivas mínimas. En la actualidad también se aplica con éxito en el ámbito agrícola con la misma idea de encontrar la combinación óptima de alimentos que, logrando un aporte nutritivo mínimo, suponga el menor coste posible.

miércoles, 12 de septiembre de 2018

Método Simplex

El Método Simplex es un método analítico de solución de problemas de programación lineal capaz de resolver modelos más complejos que los resueltos mediante el método gráfico sin restricción en el número de variables.

El Método Simplex es un método iterativo que permite ir mejorando la solución en cada paso. La razón matemática de esta mejora radica en que el método consiste en caminar del vértice de un poliedro a un vértice vecino de manera que aumente o disminuya (según el contexto de la función objetivo, sea maximizar o minimizar), dado que el número de vértices que presenta un poliedro solución es finito siempre se hallará solución.
Este popular método fue creado en el año de 1947 por el estadounidense George Bernard Dantzig y el ruso Leonid Vitalievich Kantorovich, con el ánimo de crear un algoritmo capaz de solucionar problemas de m restricciones y n variables.

¿QUE ES UNA MATRIZ IDENTIDAD?


Una matriz puede definirse como una ordenación rectangular de elementos, (o listado finito de elementos), los cuales pueden ser números reales o complejos, dispuestos en forma de filas y de columnas.

La matriz idéntica o identidad es una matriz cuadrada (que posee el mismo número tanto de columnas como de filas) de orden que tiene todos los elementos diagonales iguales a uno (1) y todos los demás componentes iguales a cero (0), se denomina matriz idéntica o identidad de orden n, y se denota por:



Matriz identidad

La importancia de la teoría de matrices en el Método Simplex es fundamental, dado que el algoritmo se basa en dicha teoría para la resolución de sus problemas.

OBSERVACIONES IMPORTANTES AL UTILIZAR MÉTODO SIMPLEX


VARIABLES DE HOLGURA Y EXCESO

El Método Simplex trabaja basándose en ecuaciones y las restricciones iniciales que se modelan mediante programación lineal no lo son, para ello hay que convertir estas inecuaciones en ecuaciones utilizando unas variables denominadas de holgura y exceso relacionadas con el recurso al cual hace referencia la restricción y que en el tabulado final representa el "Slack or surplus" al que hacen referencia los famosos programas de resolución de investigación de operaciones, estas variables adquieren un gran valor en el análisis de sensibilidad y juegan un rol fundamental en la creación de la matriz identidad base del Simplex.

Estas variables suelen estar representadas por la letra "S", se suman si la restricción es de signo "<= " y se restan si la restricción es de signo ">=".

Por ejemplo:



Método Simplex




Método Simplex

VARIABLE ARTIFICIAL / MÉTODO DE LA "M"

Una variable artificial es un truco matemático para convertir inecuaciones ">=" en ecuaciones, o cuando aparecen igualdades en el problema original, la característica principal de estas variables es que no deben formar parte de la solución, dado que no representan recursos. El objetivo fundamental de estas variables es la formación de la matriz identidad.
Estas variables se representa por la letra "A", siempre se suman a las restricciones, su coeficiente es M (por esto se le denomina Método de la M grande, donde M significa un número demasiado grande muy poco atractivo para la función objetivo), y el signo en la función objetivo va en contra del sentido de la misma, es decir, en problemas de Maximización su signo es menos (-) y en problemas de Minimización su signo es (+), repetimos con el objetivo de que su valor en la solución sea cero (0).




MÉTODO SIMPLEX PASO A PASO


EL PROBLEMA

La empresa el SAMÁN Ltda. Dedicada a la fabricación de muebles, ha ampliado su producción en dos líneas más. Por lo tanto actualmente fabrica mesas, sillas, camas y bibliotecas. Cada mesa requiere de 2 piezas rectangulares de 8 pines, y 2 piezas cuadradas de 4 pines. Cada silla requiere de 1 pieza rectangular de 8 pines y 2 piezas cuadradas de 4 pines, cada cama requiere de 1 pieza rectangular de 8 pines, 1 cuadrada de 4 pines y 2 bases trapezoidales de 2 pines y finalmente cada biblioteca requiere de 2 piezas rectangulares de 8 pines, 2 bases trapezoidales de 2 pines y 4 piezas rectangulares de 2 pines. Cada mesa cuesta producirla $10000 y se vende en $ 30000, cada silla cuesta producirla $ 8000 y se vende en $ 28000, cada cama cuesta producirla $ 20000 y se vende en $ 40000, cada biblioteca cuesta producirla $ 40000 y se vende en $ 60000. El objetivo de la fábrica es maximizar las utilidades.



Método Simplex
Problema planteado por Edwin Bastidas - Ingeniero Industrial

PASO 1: MODELACIÓN MEDIANTE PROGRAMACIÓN LINEAL

Las variables:

X1 = Cantidad de mesas a producir (unidades)
X2 = Cantidad de sillas a producir (unidades)
X3 = Cantidad de camas a producir (unidades)
X4 = Cantidad de bibliotecas a producir (unidades)

Las restricciones:

2X1 + 1X2 + 1X3 + 2X4 <= 24             
2X1 + 2X2 + 1X3 <= 20                  
2X3 + 2X4 <= 20                          
4X4 <= 16                        

La función Objetivo:

ZMAX = 20000X1 + 20000X2 + 20000X3 + 20000X4

PASO 2: CONVERTIR LAS INECUACIONES EN ECUACIONES

En este paso el objetivo es asignar a cada recurso una variable de Holgura, dado que todas las restricciones son "<=".

2X1 + 1X2 + 1X3 + 2X4 + 1S1 + 0S2 + 0S3 + 0S4 = 24           
2X1 + 2X2 + 1X3 + 0X4 + 0S1 + 1S2 + 0S3 + 0S4 = 20                         
0X1 + 0X2 + 2X3 + 2X4 + 0S1 + 0S2 + 1S3 + 0S4 = 20
0X1 + 0X2 + 0X3 + 4X4 + 0S1 + 0S2 + 0S3 + 1S4 = 16

De esta manera podemos apreciar una matriz identidad (n = 4), formado por las variables de holgura las cuales solo tienen coeficiente 1 en su respectivo recurso, por el ejemplo la variable de holgura "S1" solo tiene coeficiente 1 en la restricción correspondiente a el recurso 1.

La función objetivo no sufre variaciones:

ZMAX = 20000X1 + 20000X2 + 20000X3 + 20000X4

PASO 3: DEFINIR LA SOLUCIÓN BÁSICA INICIAL

El Método Simplex parte de una solución básica inicial para realizar todas sus iteraciones, esta solución básica inicial se forma con las variables de coeficiente diferente de cero (0) en la matriz identidad.

1S1 = 24           
1S2  = 20                          
1S3 = 20
1S4  = 16

PASO 4: DEFINIR LA TABLA SIMPLEX INICIAL




Método Simplex
www.ingenieriaindustrialonline.com

Solución: (segundo término)= En esta fila se consigna el segundo término de la solución, es decir las variables, lo más adecuado es que estas se consignen de manera ordenada, tal cual como se escribieron en la definición de restricciones.
Cj = La fila "Cj" hace referencia al coeficiente que tiene cada una de las variables de la fila "solución" en la función objetivo.
Variable Solución = En esta columna se consigna la solución básica inicial, y a partir de esta en cada iteración se van incluyendo las variables que formarán parte de la solución final.
Cb = En esta fila se consigna el valor que tiene la variable que se encuentra a su derecha "Variable solución" en la función objetivo.
Zj = En esta fila se consigna la contribución total, es decir la suma de los productos entre término y Cb.
Cj - Zj =  En esta fila se realiza la diferencia entre la fila Cj y la fila Zj, su significado es un "Shadow price", es decir, la utilidad que se deja de recibir por cada unidad de la variable correspondiente que no forme parte de la solución.

Solución inicial:



Método Simplex
www.ingenieriaindustrialonline.com

PASO 5: REALIZAR LAS ITERACIONES NECESARIAS

Este es el paso definitivo en la resolución por medio del Método Simplex, consiste en realizar intentos mientras el modelo va de un vértice del poliedro objetivo a otro.

El procedimiento a seguir es el siguiente:

1. Evaluar que variable entrará y cual saldrá de la solución óptima:

MaximizarMinimizar
Variable que entraLa más positiva de los Cj - ZjLa más negativa de los Cj - Zj 
Variable que saleSiendo b los valores bajo la celda solución y a el valor correspondiente a la intersección entre b y la variable que entra. La menos positiva de los b/a.Siendo b los valores bajo la celda solución y a el valor correspondiente a la intersección entre b y la variable que entra. La más positiva de los b/a.



Método Simplex
www.ingenieriaindustrialonline.com

2. El hecho de que una variable distinta forme parte de las variables solución implica una serie de cambios en el tabulado Simplex, cambios que se explicarán a continuación.

- Lo primero es no olvidar el valor del "a" correspondiente a la variables a entrar, en este caso el "a = 4".



Método Simplex
www.ingenieriaindustrialonline.com

- Lo siguiente es comenzar a rellenar el resto de la tabla, fila x fila.



Método Simplex
www.ingenieriaindustrialonline.com

- Se repite este procedimiento con las dos filas restantes, ahora se harán los cálculos correspondientes en el resto de las celdas.



Método Gráfico
www.ingenieriaindustrialonline.com

De esta manera se culmina la primera iteración, este paso se repetirá cuantas veces sea necesario y solo se dará por terminado el método según los siguientes criterios.
MaximizarMinimizar
Solución ÓptimaCuando todos los Cj - Zj sean <= 0Cuando todos los Cj - Zj sean >= 0
- Continuamos con las iteraciones para lo cual tenemos que repetir los pasos anteriores.



Método Simplex
www.ingenieriaindustrialonline.com

En esta última iteración podemos observar que se cumple con la consigna Cj - Zj <= 0, para ejercicios cuya función objetivo sea "Maximizar", por ende hemos llegado a la respuesta óptima.

X1 = 3
X2 = 4
X3 = 6
X4 = 4
Con una utilidad de: $ 340000

Sin embargo una vez finalizado el Método Simplex se debe observar una matriz identidad en el rectángulo determinado por las variables de decisión, el hecho de que en este caso no se muestre la matriz identidad significa que existe una solución óptima alterna.



Método Simplex
www.ingenieriaindustrialonline.com

La manera de llegar a la otra solución consiste en alterar el orden en que cada una de las variables entro a la solución básica, recordemos que el proceso fue decidido al azar debido a la igualdad en el Cj - Zj del tabulado inicial. Aquí les presentamos una de las maneras de llegar a la otra solución.



Método Simplex
www.ingenieriaindustrialonline.com

Podemos observar como existe una solución óptima alternativa en la cual la combinación de variables es distinta y existe un menor consumo de recursos, dado que el hecho de que se encuentre la variable "S1" en la solución óptima con un coeficiente de "3" significa que se presenta una holgura de 3 unidades del recurso (pieza rectangular de 8 pines).

X1 = 0 (Cantidad de mesas a producir = 0)
X2 = 7 (Cantidad de sillas a producir = 7)
X3 = 6 (Cantidad de camas a producir = 6)
X4 = 4 (Cantidad de bibliotecas a producir = 4)
S1 = 3 (Cantidad de piezas rectangulares de 8 pines sin utilizar =3)

Con una utilidad de: $ 340000

PROBLEMAS DE MINIMIZACIÓN CON EL MÉTODO SIMPLEX


Para resolver problemas de minimización mediante el algoritmo simplex existen dos procedimientos que se emplean con regularidad.
  • El primero, que a mi juicio es el más recomendable se basa en un artificio aplicable al algoritmo fundamentado en la lógica matemática que dicta que "para cualquier función f(x), todo punto que minimice a f(x) maximizará también a - f(x)". Por lo tanto el procedimiento a aplicar es multiplicar por el factor negativo (-1) a toda la función objetivo.




a continuación se resuelve el algoritmo como un problema de maximización.
  • El segundo procedimiento, el cual pretende conservar la minimización consiste en aplicar los criterios de decisión que hemos esbozado con anterioridad, en los casos de la variable que entra, que sale y el caso en el que la solución óptima es encontrada. Aquí recordamos los procedimientos según el criterio dado el caso "minimizar".

Minimizar
Variable que entraLa más negativa de los (Cj - Zj)
Variable que saleSiendo "b" los valores bajo la celda solución y "a" el valor correspondiente a la intersección entre "b" y la variable que entra. La más positiva de los "b/a".
Solución ÓptimaCuando todos los (Cj - Zj) sean >= 0.









SEGUNDO EJEMPLO









ejemplo de linea de espera