Story Transcript
Raúl Urbán Ruiz
Notas de clase. Método Simplex.
La programación lineal es una herramienta de la investigación de operaciones y muy útil para la toma de decisiones. Esta es una herramienta genérica que sirve para resolver problemas lineales. De acuerdo a los valores que pueden tomar las variables que intervienen en un problema de programación lineal, se utiliza, la programación lineal propiamente dicha, cuando los valores están en los números reales y la programación entera, en donde la variable asume solamente números enteros. La solución de un problema con variables enteras es mucho más complicada que un problema de números reales y no es nuestro objeto de estudio. En las empresa, muchas de las decisiones que se toman tienen están dirigidas a optimizar sus recursos, como puede ser el uso de la maquinaria, capital, materias primas, etc. Estos recursos son utilizados en la producción de bienes que a final de cuentas representan ingresos para la empresa. La Programación Lineal es una técnica matemática diseñada para asistir y a los tomadores de decisión de la empresa en la planificación y uso racional de los recursos con que cuenta. Existen muchos ejemplos exitosos en la literatura de aplicaciones de programación lineal, los ejemplos clásicos son, el problema de la dieta y el de transporte. El problema de la dieta, fue uno de los primeros problemas sobre optimización, motivado por el deseo del ejército americano de asegurar unos requerimientos nutricionales al menor coste. El problema fue analizado y resuelto por George Stigler usando la programación lineal en 1947. La formulación general de este problema es: Para que una dieta sea equilibrada deben ingerirse n elementos nutritivos básicos en cantidades mínimas b1, b2,..., bs. Estos elementos se encuentran en m alimentos. Conocemos cuál es la cantidad de cada elemento en cada unidad de cada uno de los alimentos y el coste de la unidad de cada alimento. Se debe minimizar el coste de la dieta pero cubriendo las necesidades nutritivas mínimas. Por ejemplo; Un especialista en nutrición, elabora un plan para determinado tipo de pacientes basado en tres grupos de alimentos; verduras, carne y pescado y harinas, trigo y maíz. Estos se deben combinar para que cumplan con ciertos requisitos nutritivos mínimos de proteínas y calorías de 2600 calorías y 60 g de proteína por día. El contenido de cada alimento por cada 100gr es el siguiente. Las verduras tienen 100 calorías y 2 gr de proteína, la carne y el pescado en promedio 500 calorías y 35 gr de proteína; las harinas combinadas ofrecen en promedio 120 calorías y 8 gr de proteína. Si los precios por cada 100 gr de verdura, proteína y harinas son de $ 8.0, $25.0 y $3.0 respectivamente ¿Cuál debe ser la combinación de alimentos de manera que el costo sea mínimo y se satisfagan las condiciones de nutrición por día?
1
Raúl Urbán Ruiz
Notas de clase. Método Simplex.
Podemos resumir el problema en el siguiente cuadro: Verduras Calorías Proteínas Precios por 100 gramos
100 cal 2 gr $ 8.0
Carne y pescado 500 cal 35 gr $ 25.0
Harinas 120 cal 8 gr $ 3.0
Requisitos mínimos 2600 cal 60 gr
La formulación general del Problema del transporte es que un cierto producto se elabora en varios centros, n, y en su producción intervienen los productos a1,a2,...,as. Este producto debe ser enviado a m destinos cuyo coste por envío desde cada planta a cada destino son conocidos. Además se deben enviar en cantidades b1,b2,...,bs. El objetivo es minimizar el coste total del transporte. Por ejemplo, Una empresa tiene dos plantas de producción en la ciudad de México, una en el norte y otra en el sur. El nivel de producción de la planta del sur es de 1500 unidades y la del norte de 3500. Las ventas de la empresa se distribuyen en las ciudades de Cuernavaca 850 unidades, Guadalajara 4000 unidades, Monterrey 3500 unidades. El costo de transporte se por unidad se muestra en la siguiente tabla. Planta Sur Planta Norte
Cuernavaca 30 32
Guadalajara 240 235
Monterrey 320 315
La pregunta es ¿determinar el número de unidades que debe enviar desde cada planta a cada ciudad para que los costos sean mínimos?
La programación lineal. Los problemas de programación tienen como objetivo principal la asignación óptima de los recursos con que cuenta una empresa, la mayoría de las veces muy limitados, para alcanzar objetivos específicos. Por esta razón los recursos, definidos en forma de restricciones, pueden ser de distintos orígenes. Estas van desde las restricciones de producción como las impuestas por el mercado. También, pueden ser resultado de las limitaciones de material en almacén o en reserva. Al final, el objetivo es maximizar o minimizar una función de beneficio, como podrían ser el la máxima utilidad ó el mínimo costo. Trataremos de determinar la mejor solución posible bajo ciertas restricciones, tales como el trabajo, maquinaria y la existencia de insumos necesarios para la fabricación de los productos de la empresa.
2
Raúl Urbán Ruiz
Notas de clase. Método Simplex.
La primera fase para emprender la solución a un problema de Programación Lineal es formular y obtener el modelo. Considerada esta etapa la más importante del proceso de aplicación, en la cual se necesita definir claramente el problema y conceptualizar de una manera correcta el problema que presente el sistema sobre el cual se pretende realizar la aplicación. La etapa siguiente en el proceso es alcanzar la solución del modelo. Modelado de un programa lineal. La formulación del programa lineal es fundamental para obtener una buena solución a nuestros problemas. Este proceso comprende los siguientes pasos, 1. La formulación del problema y la identificación de las variables de decisión, las que representan el interés fundamental del problema a resolver. 2. Formular la función económica, o función objetivo. 3. Formular en forma de inecuaciones las restricciones del modelo, pueden ser de producción, de presupuesto, etc. Ejemplos. Problema de la dieta, propuesto al inicio. El especialista en nutrición desea formular una dieta basado en tres tipos de alimentos; verduras, carne y pescado, y harinas. El objetivo es encontrar la
combinación de alimentos de manera que el costo sea mínimo y se satisfagan las condiciones de nutrición por día. La formulación del programa lineal sería el siguiente Las variables de decisión son; 𝑥1 verdura, 𝑥2 proteína, 𝑥3 harinas. programa de minimización de los costos.
Se trata de un
a) Función objetivo. Donde Z es una función económica a minimizar 𝑀𝑖𝑛 𝑍 = 8𝑥1 + 25𝑥2 + 3𝑥3
b) Sujeta a las restricciones. Hipótesis de linealidad del modelo; es decir para obtener 2600 calorías diarias se requiere una combinación 100𝑥1 de verdura, 500𝑥2 calorías obtenidas de carne y pescado y 12𝑥3 de harinas de trigo y maíz. La misma consideración se hace para las proteínas. 100𝑥1 + 500𝑥2 + 12𝑥3 ≥ 2600 2𝑥1 + 35𝑥2 + 8𝑥3 ≥ 60
Restricción de calorías Restricción de proteínas
c) No negatividad de las variables 𝑥1 , 𝑥2 , 𝑥3 ≥ 0
3
Raúl Urbán Ruiz
Notas de clase. Método Simplex.
Una organización cafetalera indígena desea comercializar 2 tipos de productos orgánicos; café y pimienta. El café orgánico cuesta $80 pesos/kilo y la pimienta $160 pesos/kilo. Para transportar los productos a la ciudad más cercana cuenta con un camión que solo puede transportar 20,000 kg y un volumen de 1200 𝑚3 . Si el café ocupa 0.025 𝑚3 y la pimienta 0.01 𝑚3 por cada kg, ¿cuántos kilos de cada producto debe cargar en el camión para maximizar su ganancia? Las variables de decisión son; 𝑥1 café y 𝑥2 pimienta. Se trata de un programa de maximizar las utilidades de la organización. De esta manera la función a maximizar es. 𝑀𝑎𝑥 𝑍 = 80𝑥1 + 160𝑥2
a) Sujeta a las restricciones. Hipótesis de linealidad del modelo; por un lado el camión solo puede transportar una combinación de 𝑥1 de café y 𝑥2 de pimienta que no deben rebasar un peso de 20,000 kg. Por otro lado, el volumen de 0.025𝑥1 de café y 0.01𝑥2 de pimienta pueden ocupar un volumen no mayor a 1200 𝑚3 . 𝑥1 + 𝑥2 ≤ 20,000 0.025𝑥1 + 0.01𝑥2 ≤ 1200
Restricción de capacidad Restricción de volumen
b) No negatividad de las variables 𝑥1 , 𝑥2 , 𝑥3 ≥ 0
Como hemos visto, un programa lineal pone en juego cuatro categorías de elementos; las actividades, las constantes económicas, las restricciones y los coeficientes técnicos. a) Las actividades son las variables de decisión del modelo en estudio. Se trata de seleccionar aquellas que correspondan a la función a optimizar. Usualmente utilizamos letras como 𝑥1 , 𝑥2 , 𝑥3 , …. O bien 𝑥, 𝑦, 𝑧, 𝑡, … b) Las constantes económicas miden el nivel de realización asociado al beneficio de cada recurso de la organización, o de la empresa. De esta manera a cada 𝑥𝑗 le asociamos un beneficio 𝑐𝑗 . c) Las restricciones del problema. Estas pueden ser de naturaleza muy diversa, dependen del problema. Son los elementos que limitan el problema, las restricciones. Estas pueden ser las limitaciones de producción, de presupuesto, etc. d) Los coeficientes técnicos, son las cantidades de cada recurso que son necesarios para producir una unidad de producto. Al recurso i y a la actividad j le corresponderá el coeficiente técnico 𝑎𝑖𝑗
4
Raúl Urbán Ruiz
Notas de clase. Método Simplex.
Si las variables son continuas y los coeficientes técnicos y económicos son independientes de los valores de las variables, el problema de programación lineal se puede presentar de la siguiente manera. Un programa lineal en la forma canónica se escribe de la siguiente manera, Maximizar sujeto a:
𝑍 = 𝑐1 𝑥1 + 𝑐2 𝑥2 + ⋯ ⋯ + 𝑐𝑛 𝑥𝑛
≤ 𝑎𝑖1 𝑥1 + 𝑎𝑖2 2𝑥2 + ⋯ ⋯ + 𝑎𝑖𝑛 𝑥𝑛 � 𝑏𝑖 ≥ 𝑥𝑗 ≥ 0
𝑖 = 1,2,3, … . , 𝑛
En términos económicos, 𝑥𝑗 𝑐𝑗
𝑎𝑖𝑗 𝑏𝑖 Z
Cantidad de producto j a producir. Beneficio asociado a una unidad de producción del producto j Cantidad del recurso i requerido para producir una unidad del producto j Cantidad del recurso i disponible. Beneficio total o función económica
Para resolver el programa lineal, deberemos buscar los valores de las variables de decisión como 𝑥1 , 𝑥2 , 𝑥3 , …., que optimizan la función económica 𝑍, o si así fuera el caso demostrar que el modelo no tiene solución. Para establecer un lenguaje común damos las siguientes definiciones; • • •
Llamaremos solución factible, cualquier grupo de valores de las variables de decisión como 𝑥1 , 𝑥2 , 𝑥3 , …. Que verifican el sistema de inecuaciones anterior. Solución óptima toda solución que optimiza la función Z. El conjunto de todas las soluciones factibles de un programa lineal le llamaremos dominio de soluciones factibles
Todo problema de programación lineal debe cumplir con lo siguiente; a) Las soluciones del problema serán, en general, números reales. Para aquellos problemas en los cuales sólo tenga sentido obtener soluciones enteras, se tendrá que aplicar los métodos de solución de la Programación Lineal Entera. b) No negatividad. Las variables de nuestro modelo tomarán siempre valores positivos, esto es muy útil para las aplicaciones económicas ya que no tiene sentido hablar de cantidades negativas de objetos físicos. c) Todas las restricciones deben formularse como ecuaciones.
5
Raúl Urbán Ruiz
Notas de clase. Método Simplex.
d) La parte derecha de una restricción no puede ser negativa Desde el momento en que George Dantzig desarrolla el método simplex para obtener la solución a un modelo de programación lineal, éste método ha sido considerado el único método útil y aplicable a la gran mayoría de problemas de programación lineal. Sin embargo para poder alcanzar una fuerte comprensión del método simplex se hace necesario estudiar inicialmente el método de solución gráfica. Resolución gráfica de un problema de Programación Lineal
El método gráfico de resolución es útil cuando trabajamos programas lineales de dos variables. Para aquellos casos en que el número de variables del problema sea superior a dos, es complicado encontrar la solución a partir de un gráfico bidimensional y, por tanto, tendremos que usar métodos de resolución más complejos. Aun así, el método gráfico es de un gran valor pedagógico dado que nos permite vislumbrar de una forma intuitiva las ideas básicas de la Programación Lineal. Ejemplo. Una empresa electrónica fabrica dos tipos de memoria para computadora, 𝑚1 y 𝑚2 . En el proceso de producción se requiere pasar por dos máquinas distintas, A y B. La máquina A requiere de 75 minutos para la memoria 𝑚1 y 25 para la memoria 𝑚2 . La máquina B necesita de 20 y 12 minutos respectivamente. Además, por razones de mantenimiento, la máquina A solo puede trabajar 30 horas por semana y la B 13 horas. Si el beneficio por unidad de la memoria 𝑚1 es de $60 pesos y el de la memoria 𝑚2 es de $45. ¿Cuánto debemos producir de cada tipo de memoria para obtener el máximo beneficio? Para simplificar nuestro problema denotamos por 𝑥1 : el número de unidades producidas por semana de la memoria 𝑚1 y por 𝑥2 al número de memorias producidas de 𝑚2
El programa lineal será entonces; 𝑀𝑎𝑥𝑖𝑚𝑖𝑧𝑎𝑟 𝑧 = 60𝑥1 + 45𝑥2 Sujeto a: 75𝑥1 + 25𝑥2 ≤ 1800 20𝑥1 + 12𝑥2 ≤ 780 𝑥1, 𝑥2 ≥ 0
(30 ∗ 60) 𝑟𝑒𝑠𝑡𝑟𝑖𝑐𝑐𝑖ó𝑛 𝑚á𝑞𝑢𝑖𝑛𝑎 𝐴 (13 ∗ 60) 𝑟𝑒𝑠𝑡𝑟𝑖𝑐𝑐𝑖ó𝑛 𝑚á𝑞𝑢𝑖𝑛𝑎 𝐵 𝑛𝑜 𝑛𝑒𝑔𝑎𝑡𝑖𝑣𝑖𝑑𝑎𝑑 𝑑𝑒 𝑙𝑎𝑠 𝑣𝑎𝑟𝑖𝑎𝑏𝑙𝑒𝑠
Si graficamos estas dos restricciones lineales en el plano real, la intersección de estas líneas forman lo que se conoce como región factible, o poliedro convexo 1. La teoría matemática establece que, dado un problema de Programación Lineal que tenga solución, ésta vendrá dada por uno de los vértices (o puntos extremos) del polígono que 1
Un poliedro convexo es una figura geométrica en la que al trazar un segmento que une dos puntos, estos puntos están contenidos dentro del poliedro.
6
Raúl Urbán Ruiz
Notas de clase. Método Simplex.
configura la región factible. Por tanto, será suficiente hallar las coordenadas de dichos vértices (intersecciones de rectas) y determinar (sustituyendo en la función objetivo) cuál de ellos es la solución óptima. En nuestro ejemplo, tendríamos sólo cuatro puntos candidatos a ser solución del problema (los cuatro vértices del polígono), sustituyendo sus coordenadas en la función objetivo obtenemos:
𝑍(0,0) = 0;
21 225
𝑍(24,0) = 1440; 𝑍 � 4 ,
4
� = 2846.25; 𝑍(0, 65) = 2925
Como en este caso buscábamos maximizar 𝑍(𝑋, 𝑌), concluiremos que el punto óptimo es el (0,65), dado que con él obtenemos el valor máximo de la función objetivo. Ejemplo. Una cooperativa rural produce tres tipos de muebles de madera; bancos, mesas y sillas. Cuenta con dos talleres ubicados en el norte y en el sur de la localidad donde se encuentran. En cada una de ellas produce los muebles en las siguientes cantidades por hora, Bancos Mesas Sillas
Taller norte 1 1 6
Taller sur 2 4 3
La cooperativa recibe un pedido de 90 bancos, 120 mesas y 180 trompos. El costo de operación del taller sur es de $450 pesos y del taller norte $600 pesos por hora. ¿Cuál es el programa de producción para minimizar los costos del pedido? Solución. Sean 𝑥1 y 𝑥2 el numero de horas que funcionan los talleres Norte y Sur para surtir el pedido. El programa lineal es,
7
Raúl Urbán Ruiz
Notas de clase. Método Simplex.
Minimizar sujeto a:
Solución gráfica del programa lineal.
𝑍 = 450𝑥1 + 600𝑥2 𝑥1 + 2𝑥2 ≥ 90 𝑥1 + 4𝑥2 ≥ 120 6𝑥1 + 3𝑥2 ≥ 180 𝑥1 , 𝑥2 ≥ 0
Este ejemplo de producción puede ser representado gráficamente porque no tiene más de dos variables. Antes de buscar la solución del problema, definamos en la gráfica la región y los puntos que satisfacen las cuatro restricciones. La restricción de no negatividad de las variables nos indica que esta región solo incluirá aquellos valores que sean positivos.
El beneficio para cada punto extremo, A, B y C es el siguiente; 𝐴(0,60) Los costos son 𝑍 = 450(0) + 600(60) = $36,000 𝐵(10,40) Este punto se obtiene al resolver el sistema de ecuaciones siguiente 𝑥1 + 2𝑥2 = 90 ⇒ 6𝑥1 + 3𝑥2 = 180 ⇒
𝑥1 = 90 − 2𝑥2 𝑥1 = 180 − 3𝑥2
90 − 2𝑥2 = 180 − 3𝑥2 𝑥2 = 40 y 𝑥1 = 10
Los costos son de 𝑍 = 450(10) + 600(40) = $28,500
𝐶(60,15) Para obtener este punto resolvemos el siguiente sistema de ecuaciones, 𝑥1 + 2𝑥2 = 90 ⇒ 𝑥1 + 4𝑥2 = 120 ⇒
𝑥1 = 90 − 2𝑥2 𝑥1 = 120 − 4𝑥2
90 − 2𝑥2 = 120 − 4𝑥2 𝑥2 = 15 y 𝑥1 = 60
8
Raúl Urbán Ruiz
Notas de clase. Método Simplex.
Los costos son de 𝑍 = 450(60) + 600(15) = $36,000
𝐷(120,0) 𝑍 = 450(120) = $54,000
La solución óptima es 𝒙𝟏 = 𝟏𝟎 y 𝒙𝟐 = 𝟒𝟎. El costo de producción es de $28,500
Casos especiales
Hasta ahora, los problemas resueltos gráficamente tienen una solución óptima, lo que no siempre sucede. A la hora de resolver un problema de Programación Lineal, nos podríamos encontrar con cualquiera de estas tres situaciones especiales que conviene conocer: •
•
•
•
No Factibilidad: Podría ocurrir que el problema propuesto no tuviese solución. Éste sería el caso en que las restricciones fuesen incompatibles, i.e., que ningún punto del plano (o, en general, del espacio real n-dimensional) puede cumplir simultáneamente todas las limitaciones a las que estamos sometidos, es decir, la región factible es un conjunto vacío. No Acotación: En ocasiones, podemos encontrarnos con problemas que no tengan una solución finita; así por ejemplo, en un problema de maximización podríamos tener alguna variable que pudiese incrementarse indefinidamente sin violar ninguna de las restricciones, permitiendo a la función objetivo tomar valores tan grandes como se desee. Gráficamente, tendríamos una región factible no acotada. Redundancia: Algunas restricciones pueden “estar de más” por no aportar nada nuevo a la “forma” de la región factible, ya que hay otras que resultan ser más restrictivas (esto suele ocurrir en problemas extensos, donde resulta difícil reconocer restricciones redundantes). Soluciones Múltiples: Un problema de Programación Lineal puede tener más de una solución óptima (e incluso infinita). En el caso gráfico de dos variables, si dos vértices consecutivos de la región factible son solución óptima del problema, entonces todos los puntos del segmento comprendido entre ellos también serán óptimos.
Método SIMPLEX
El método del simplex se utiliza, sobre todo, para resolver problemas de programación lineal en los que intervienen tres o más variables. La base del método es el álgebra matricial y el proceso de eliminación de Gauss-Jordan. Un programa lineal es un sistema de ecuaciones o de inecuaciones llamadas “restricciones” que son lineales (es decir, que las variables no están elevadas a una potencia superior a uno y no están multiplicadas entre ellas). Es a partir de estas restricciones que debemos optimizar una función lineal llamada función objetivo.
9
Raúl Urbán Ruiz
Notas de clase. Método Simplex.
Formulación del problema.
Este método, debido a George B. Dantzing, es un procedimiento iterativo que permite realizar una exploración dirigida del conjunto de puntos extremos de la región factible. El proceso concluye cuando no es posible seguir mejorando más dicha solución. El método Simplex, tiene como punto de partida el origen siendo este la solución inicial del sistema. De esta manera, el valor de la función objetivo es de cero al inicio. El método consiste en buscar sucesivamente otro punto extremo 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 puntos extremos 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 punto extremo A, entonces hay una arista que parte de A, a lo largo de la cual 𝑍 aumenta. Forma canónica y forma estándar
Cualquier programa lineal se puede representar 2 dos formas equivalentes llamadas forma estándar y canónica. La forma canónica es de utilidad principalmente para explorar el programa dual, es la forma inicial de representación de nuestro problema. En forma matricial, Maximizar ( o Minimizar) sujeto a:
𝑍 = 𝑐𝑥
≤ 𝐴𝑥 �≥� 𝑏 = 𝑥≥0
Donde 𝑥 𝑦 𝑐, son vectores columna con 𝑛 componentes, 𝑏 es un vector columna de 𝑚 componentes y 𝐴 es una matriz de 𝑚 𝑥 𝑛
Un programa lineal esta en forma canónica, si las variables son no negativas y las restricciones son ≤ para la maximización ó ≥ para la minimización.
Sin embargo, el método Simplex esta diseñado para ser utilizado únicamente con problemas en la forma estándar. Es decir, a) Todas las restricciones son igualdades. b) Todas las variables son no negativas c) Los componentes del vector 𝑏 de las restricciones son todos positivos.
Para transformar un programa lineal en forma canónica a la forma estándar, las inecuaciones deben ser transformadas a ecuaciones mediante la incorporación de las siguientes variables.
10
Raúl Urbán Ruiz
•
Si la desigualdad es del tipo≤, agregamos una variable de holgura positiva del lado izquierdo de la inecuación. Para igualar el lado izquierdo con el derecho.
� 𝑎𝑖𝑗 ≤ 𝑏𝑖 •
Se agrega una variable con signo positivo 𝑠𝑖 , donde 𝑖, representa el número de restricción.
� 𝑎𝑖𝑗 + 𝑠𝑖 ≤ 𝑏𝑖 𝑠𝑖 ≥ 0
En el caso de que la inecuación tenga signo ≥ se agrega una variable de holgura negativa del lado izquierdo de la restricción. � 𝑎𝑖𝑗 ≥ 𝑏𝑖
•
Notas de clase. Método Simplex.
Se agrega una variable con signo positivo 𝑠𝑖 , donde 𝑖, representa el número de restricción.
� 𝑎𝑖𝑗 − 𝑠𝑖 ≥ 𝑏𝑖 𝑠𝑖 ≥ 0
Asimismo, las igualdades pueden ser transformadas en dos desigualdades. � 𝑎𝑖𝑗 = 𝑏𝑖
∑ 𝑎𝑖𝑗 ≤ 𝑏𝑖 ∑ 𝑎𝑖𝑗 ≥ 𝑏𝑖
y
El método Simplex se basa en dos teoremas fundamentales − Si un programa lineal tiene una solución factible, entonces existe al menos una solución básica. − Si el programa lineal tiene una solución óptima, entonces existe al menos una solución básica que es óptima. La solución óptima es una solución básica, el método Simplex consiste en: 1. Determinar una solución básica. Es decir, que variables deben entrar a la base. 2. Probar si esta solución de las variables que están en la base es, o no, una solución óptima
a. Si la solución es óptima el problema se termina b. En caso contrario pasamos al siguiente punto. 3. Cambiar la solución de la base y retomar el proceso a partir del punto 1 hasta encontrar la solución óptima. Cada cambio de base es una iteración diferente del método En muchos problemas prácticos, las restricciones pueden ser una combinación de los tipos anteriores por lo que es necesario explicar la metodología del Simplex con la ayuda de algunos ejemplos.
11
Raúl Urbán Ruiz
Notas de clase. Método Simplex.
Ejemplos de Maximización. Sea el programa lineal siguiente: Maximizar 𝑍 = 3𝑥 + 4𝑦 sujeto a:
2𝑥 + 3𝑦 2𝑥 + 𝑦 𝑥 + 3𝑦
180
𝑥 0 ,𝑦
120 150 0
Los pasos a seguir para resolver un programa lineal por el método Simplex son los siguientes; 1. Pasar el programa lineal a la forma estándar. Se trata de convertir las desigualdades en igualdades. Para cada restricción, se incluye una variable de holgura, para convertirlas en igualdades, resultando el sistema de ecuaciones lineales: 2x + 3y + S1 2x + y + x + 3y +
= 180 S2 = 120 S3 = 150
𝑥, 𝑦, 𝑆1 , 𝑆2 , 𝑆3 ≥ 0
2. Igualar la función objetivo a cero, e incluimos las variables de holgura anteriores −3𝑥 − 4𝑦 − 0𝑆1 − 0𝑆2 − 0𝑆3 + 𝑍 = 0
3. Escribir la tabla inicial simplex. El proceso de cálculo iterativo del algoritmo del simplex es más ordenado si el modelo lineal se rescribe en una arreglo de datos que llamaremos Tabla del Simplex. En esta tabla se muestran con mucha claridad y en forma estructurada las variables y coeficientes del modelo. Además, cada tabla muestra una solución para un punto extremo del modelo lineal. En las columnas aparecerán todas las variables del problema y, en las filas, los coeficientes de las igualdades obtenidas, una fila para cada restricción y la última fila con los coeficientes de la función objetivo: Tabla inicial del simplex Variables Base
Variable de decisión Variable de holgura
Valor
x
Y
S1
S2
S3
S1
2
3
1
0
0
180
S2
2
1
0
1
0
120
S3
1
3
0
0
1
150
Z
-3
-4
0
0
0
0
12
Raúl Urbán Ruiz
Notas de clase. Método Simplex.
4. Elegir la variable básica y la variable de holgura que sale de la base, elección del pivote. Para escoger la variable de decisión que entra en la base, realizamos los siguientes pasos, a) Escogemos la variable con el coeficiente negativo mayor (en valor absoluto) de la función objetivo, última línea del arreglo del simplex. En nuestro ejemplo, la columna de la variable y que tiene el coeficiente – 4, segunda columna. i. ii.
Si existiesen dos o más coeficientes iguales que cumplan la condición anterior, entonces se elige uno cualquiera de ellos. Si en la última fila no existiese ningún coeficiente negativo, significa que se ha alcanzado la solución óptima. Por tanto, lo que va a determinar el final del proceso de aplicación del método del simplex, es que en la última fila no haya elementos negativos.
La columna de la variable que entra en la base se llama columna pivote b) Para encontrar la variable de holgura que tiene que salir de la base, se divide cada término de la columna resultado por el coeficiente correspondiente de la columna pivote, siempre que estos últimos sean mayores que cero. En nuestro caso: 180 120 150 = 60, 1 = 120 𝑦 3 = 50. El menor cociente positivo, indicará la fila de la 3 variable de holgura que sale de la base. En nuestro caso es S3, ya que es el menor cociente, 50. Esta fila se llama fila pivote, y el valor 3 es entonces el pivote. i.
ii.
Si algún valor, de la última columna, es menor o igual que cero no se considera. En el caso de que todos los elementos fuesen menores o iguales a cero, entonces tendríamos una solución no acotada y el proceso de cálculo se detiene. Si al calcular los cocientes, dos o más son iguales, indica que cualquiera de las variables correspondientes puede salir de la base.
c) En la intersección de la fila pivote y columna pivote tenemos el pivote, para nuestro ejercicio esta en el renglón 3 y columna 2; el valor del pivote es 3. 5. Encontrar los coeficientes de la nueva tabla. En primer lugar cambiamos la variable de la base del renglón pivote por la variable de decisión que corresponda a la columna pivote. En nuestro ejercicio, sale la variable S3 y entra a la base la variable de decisión y. Los nuevos coeficientes del renglón y se obtienen dividiendo todos los coeficientes de la fila pivote S3 por el pivote, 3, que es el que hay que convertir en 1. Por reducción gaussiana el resto de coeficientes de la columna son cero, incluso los de la función objetivo.
13
Raúl Urbán Ruiz
Notas de clase. Método Simplex.
1ª. Iteración del simplex Variables Base
Variable de decisión X
Y
S1
0
S2
0
y Z
Variable de holgura S1
S2
S3
0
0
1⁄3
1
1⁄3
Valor
0
50
El siguiente paso es completar la nueva tabla. Para el recalculo vamos a utilizar la tabla anterior. Los valores de las celdas vacías se obtienen de la siguiente forma: Si 𝑎𝑖𝑗 es el coeficiente del renglón 𝑖 y la columna 𝑗. 𝑎𝑖𝑗 = 𝑎𝑖𝑗 −
𝑎𝑖𝑘 𝑎 𝑖≠𝑟 𝑎𝑟𝑘 𝑟𝑗
Donde 𝑎𝑟𝑘 es la posición del pivote; es decir, el renglón pivote r y la columna pivote k.
En nuestro ejemplo, para calcular el coeficiente 𝑎11 , primer renglón de la primera columna. El pivote está en 𝑎𝑟𝑘 = 𝑎32 = 3. 𝑎11 = 𝑎11 −
𝑎12 3 𝑎31 = 2 − (1) = 1 𝑎32 3
1ª. Iteración del simplex
Variables Base
Variable de decisión X
S1
𝑎11 = 𝑎11 −
S2
𝑎21 = 𝑎21 −
Y Z
𝑎41 = 𝑎41 −
𝑎12 3 𝑎 = 2 − (1) = 𝟏 𝑎32 31 3
𝑎22 1 𝟓 𝑎31 = 2 − (1) = 𝑎32 3 𝟑
1⁄3
𝑎42 −4 𝟓 (1) = − 𝑎31 = −3 − 𝑎32 3 𝟑
Variable de holgura Y
S1
S2
S3
0
0
1⁄3
Valor
0 0 1 0
50
El resto de los coeficientes se recalculan de la misma manera.
14
Raúl Urbán Ruiz
Notas de clase. Método Simplex.
2ª. Iteración del simplex Variables Base
Variable de decisión
Variable de holgura
Valor
x
Y
S1
S2
S3
S1
1
0
1
0
-1
30
S2
5⁄3
0
0
1
70
1
0
0
−1/3 1/3
50
−5⁄3
0
0
0
4/3
200
𝑦 Z
1⁄3
30
� 1 = 30� 70
�5⁄3 = 42� 50
�1⁄3 = 150�
Como en la fila Z, aún tenemos coeficientes negativos, −5⁄3, significa que no hemos llegado todavía a la solución óptima. Hay que repetir el proceso: a) La variable que entra en la base es x, por ser la variable que corresponde al coeficiente −5⁄3 b) Para calcular la variable que sale, dividimos los términos de la última columna entre los términos correspondientes de la nueva columna pivote y como el menor cociente positivo es 30, la variable de holgura que sale de la base es S1. c) El elemento pivote, ya tiene el valor de 1. Operando de forma análoga a la anterior obtenemos la nueva tabla: 3ª. Iteración del simplex Variables Variable de Base decisión
Variable de holgura
Valor
X
Y
S1
S2
S3
𝑥
1
0
1
0
-1
S2
0
0
1
𝑦
0
1
−5⁄3
4⁄3
0
0
5⁄3
0
Z
−1⁄3
0
2⁄3
−1⁄3
30
30 �−1 = −30� 20
20 �4⁄3 = 15� 40
40 �2⁄3 = 60� 250
Nuevamente tenemos un valor negativo, en la fila de Z, por lo tanto continuamos el proceso de búsqueda de solución óptima. a) La variable que entra en la base es S3, por ser la variable que corresponde al coeficiente −1⁄3 15
Raúl Urbán Ruiz
Notas de clase. Método Simplex.
b) Dividimos los coeficientes de la última columna entre los términos correspondientes de la nueva columna pivote y como el menor cociente positivo es 15, tenemos que la variable de holgura que sale es S2. c) El elemento pivote, que ahora hay que hacer 1, es −1⁄3.
Obtenemos la tabla:
Solución óptima Variables Variable de decisión Base
Variable de holgura
Valores solución
X
Y
S1
S2
S3
1
0
45
0
0
1
15
𝑦
0
1
3⁄4
0
S2
−1⁄4
0
30
0
0
1⁄4
0
255
𝑥 Z
−5⁄4 1⁄2 5⁄4
3⁄4
− 1⁄2
Como todos los coeficientes de la fila de la función objetivo son positivos, hemos llegado a la solución óptima. La solución óptima viene dada por el valor de Z en la columna de los valores solución, en nuestro caso: 255. 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: 𝒙 = 𝟒𝟓, 𝒚 = 𝟑𝟎 Interpretación geométrica del método simplex.
El proceso iterativo del simplex nos ha llevado a construir diferentes tablas de datos. En cada una de ellas calculamos el valor de la función objetivo en los distintos vértices, puntos extremos, en cada caso se realizó un procedimiento de prueba para saber si se encontró el óptimo. El proceso iterativo del Simplex inicia en el punto 𝐼(0,0) con un valor de la función objetivo 𝑍 = 0.
Posteriormente, el simplex nos lleva a probar el punto 𝐴(0,50). En esta iteración la función objetivo se recalcula al valor de 𝑍 = 200.
16
Raúl Urbán Ruiz
Notas de clase. Método Simplex.
El tercer paso, nos lleva al punto 𝐵(30,40), los datos se pueden verificar en la tabla que corresponde a la esta tercera iteración. El valor de la función objetivo nuevamente se calcula y nos entrega el valor de 𝑍 = 250.
El proceso iterativo termina al llegar al punto C(45,30) que es el punto óptimo. El valor que corresponde a la función objetivo es el máximo Z=255. Aún tendríamos un último punto en D(60,0). Su valor no supera el encontrado en el punto anterior. En el ejercicio anterior el Método Simplex hace uso de la propiedad de que la solución óptima de un problema de Programación Lineal se encuentra en un punto extremo del dominio de puntos factible, por lo cual, la búsqueda secuencial del algoritmo se basa en la evaluación progresiva de estos vértices hasta encontrar el óptimo. Cabe destacar que para aplicar el Método Simplex a un modelo lineal, este debe estar en un formato especial conocido como forma canónica. Entonces un programa lineal esta en forma canónica si todas sus restricciones son del tipo ‘menor o igual’, como en el siguiente ejemplo. Maximizar 𝑍 = 𝑐1 𝑥1 + 𝑐2 𝑥2 + 𝑐3 𝑥3 sujeto a: 𝑎11 𝑥1 + 𝑎12 𝑥2 + 𝑎13 𝑥3 ≤ 𝑏1 𝑎21 𝑥1 + 𝑎22 𝑥2 + 𝑎23 𝑥3 ≤ 𝑏2 𝑎31 𝑥1 + 𝑎32 𝑥2 + 𝑎33 𝑥3 ≤ 𝑏3 𝑥1 , 𝑥2 , 𝑥3 ≥ 0
Sin embargo no todos los problemas se presentan de esta forma, como el caso de la minimización o más aún cuando tenemos restricciones diferentes, como de igualdad o de mayor o igual. En estos casos tendremos que utilizar una transformación mediante la incorporación de variables artificiales.
Variables artificiales.
No siempre es posible en la tabla del Simplex disponer de un conjunto de vectores que, convenientemente ordenados, formen la matriz identidad. Una transformación adecuada es mediante la incorporación de nuevas variables al problema que se conocen como variables artificiales. En primer lugar pasamos nuestro programa lineal a su forma canónica, introduciendo de ser necesario variables de holgura; después, incluimos las variables artificiales a las restricciones necesarias para poder obtener una matriz básica igual a la identidad. Lógicamente para que estas variables introducidas no afecten a la solución del problema, lo deseable es que dejen de ser básicas rápidamente y de esta manera se anulen. La forma de conseguirlo es añadiéndolas a la función objetivo con un
17
Raúl Urbán Ruiz
Notas de clase. Método Simplex.
coeficiente muy alto positivo, que lo representamos con la variable M. De esta manera, para minimizar la función objetivo deben anularse estas variables, con lo que en alguna de las iteraciones del método Simplex las variables artificiales dejan de ser básicas y a partir de ese momento puede prescindirse de ellas. El siguiente ejemplo ilustra la forma de utilizar las variables artificiales para obtener una solución óptima Encontrar la solución óptima para el siguiente programa lineal. Maximizar sujeto a:
𝑍 = 3𝑥1 + 2𝑥2 + 𝑥3 𝑥1 + 2𝑥2 + 3𝑥3 ≤ 6 2𝑥1 − 𝑥2 + 𝑥3 ≥ 5 𝑥1 + 2𝑥2 + 2𝑥3 ≥ 2 𝑥1 , 𝑥2 , 𝑥3 ≥ 0
De acuerdo a las condiciones para resolver un programa lineal se requiere que, a) No negatividad. Las variables de nuestro modelo tomarán siempre valores positivos b) Todas las restricciones deben formularse como ecuaciones. c) La parte derecha de una restricción no puede ser negativa De esta manera, necesitamos pasar de un programa en forma canónica a un sistema de ecuaciones ordinarias. Así, i. ii. iii.
Como en el ejercicio anterior, para restricciones del tipo ≤ se añade una variable de holgura, en la restricción. Por cada restricción del tipo ≥, se resta una variable de holgura negativa A las restricciones de = y ≥, se les añade una variable artificial.
Para nuestro ejemplo, las restricciones se modifican 𝑥1 + 2𝑥2 + 3𝑥3 + 𝑆1 = 6
2𝑥1 − 𝑥2 + 𝑥3 − 𝑆2 + 𝑤2 = 5
𝑥1 + 2𝑥2 + 2𝑥3 − 𝑆3 + 𝑤3 = 2
𝑥1 , 𝑥2 , 𝑥3 , 𝑆1 , 𝑆2 , 𝑆3 , 𝑤1 , 𝑤2 ≥ 0
En primer lugar introducimos variables de holgura positivas, para las restricciones ≤ (𝑆1 ) y negativas para las restricciones ≥ (−𝑆2 𝑦 −𝑆3 ). Finalmente incorporamos variables artificiales para compensar estas variables negativas (𝑤2 𝑦 𝑤3 .
Finalmente, tendremos que incluir las variables artificiales en la función de beneficio, para esto utilizaremos el método de la M grande. El método de la M grande permite la eliminación de las variables negativas, hasta donde sea posible. El método utiliza la letra
18
Raúl Urbán Ruiz
Notas de clase. Método Simplex.
M para representar un número muy grande, requiere de un valor de M suficientemente grande para que todas las variables artificiales salgan de la base. Si la función es de maximizar la función objetivo original se transforma así: Maximizar 𝑆 = 3𝑥1 + 2𝑥2 + 𝑥3 + 0𝑆1 + 0𝑆2 + 0𝑆3 − 𝑀𝑤2 − 𝑀𝑤3
La transformación de la función que se incluirá en la tabla requiere que se despejen las variables artificiales de las restricciones y sustituir y agrupar términos en la función objetivo. 𝑤2 = 5 − 2𝑥1 + 𝑥2 − 𝑥3 + 𝑆2
𝑦 𝑤3 = 2 − 𝑥1 − 2𝑥2 − 2𝑥3 + 𝑆3
Sustituimos en la función objetivo y tendremos,
𝑍 = 3𝑥1 + 2𝑥2 + 𝑥3 − 𝑀(5 − 2𝑥1 + 𝑥2 − 𝑥3 + 𝑆2 ) − 𝑀(2 − 𝑥1 − 2𝑥2 − 2𝑥3 + 𝑆3 ) Agrupando términos nos queda la transformación.
𝑍 = (3 + 3𝑀)𝑥1 + (2 + 𝑀)𝑥2 + (1 + 3𝑀)𝑥3 − 𝑀𝑆2 − 𝑀𝑆3 − 7𝑀
La tabla inicial del simplex queda entonces, Base 𝑆1 𝑤2 𝑤3 Z
𝑥1 1 2 1 -3-3M
𝑥2 2 -1 2 -2-M
𝑥3 3 1 2 -1-3M
𝑆1 1 0 0 0
𝑤2 0 1 0 0
𝑤3 0 0 1 0
𝑆2 0 -1 0 M
𝑆3 0 0 -1 M
Valores 6 5 2 -7M
La columna pivote, es la primera columna, el coeficiente mas negativo de Z y para 5 encontrar el renglón pivote obtenemos los cocientes, 6, 2 , 2; corresponde a el tercer renglón; por lo tanto el pivote es el elemento 𝑎1,3 = 1. La variable de decisión 𝑥1 , entra a la base Base 𝑆1 𝑤2 𝑥1 Z
𝑥1 0 0 1 0
𝑥2 0 -5 2 4+5M
𝑥3 1 -3 2 5+3M
𝑆1 1 0 0 0
𝑤2 0 1 0 0
𝑤3 -1 -2 1 3+3M
𝑆2 0 -1 0 M
𝑆3 1 2 -1 -3-2M
Valores 4 1 2 6-M
Entra a la base la variable 𝑆3 , que es la columna pivote, y el renglón pivote de acuerdo a los cocientes, 4, 1⁄2; por lo tanto, sale de la base la variable artificial 𝑊2 , que corresponde 19
Raúl Urbán Ruiz
Notas de clase. Método Simplex.
al segundo renglón. El pivote es el elemento 𝑎2,6 = 2. En este caso entra a la base una variable de holgura. Base 𝑆1 𝑆3 𝑥1 Z
𝑥1 0 0 1 0
𝑥2
𝑥3 5⁄2
5⁄2
−5⁄2 −1⁄2
−3⁄2 1⁄2
−7
1 2
2
𝑆1 1
𝑤2 −1⁄2 1⁄2 1⁄2
0 0 0
3 2
+𝑀
𝑤3 0
𝑆2 1� 2 ⁄ −1 2 −1⁄2
-1 0 M
3
−2
𝑆3 0 1 0 0
Valores 7⁄2 1⁄2 5⁄2 15 2
Ahora el pivote es el elemento 𝑎1,2 = 2.5. La variable de decisión 𝑥2 entra a la base. Base 𝑥2 𝑆3 𝑥1 Z
𝑥1 0 0 1 0
𝑥2 1 0 0 0
𝑥3 1 1 1 4
𝑆1 2⁄5 1 1⁄5 7 5
𝑤2 −1⁄5 0 2⁄5
4 5
𝑤3 0 -1 0 M
+𝑀
𝑆2 1⁄5 0 −2⁄5 −
Valores 7⁄5 4 16⁄5
𝑆3 0 1 0 0
4 5
62 5
Ahora el pivote es el elemento 𝑎1,4 = 0.2. Deja la base la variable de decisión 𝑥2 y entra la variable de holgura 𝑆2 . Base 𝑆2 𝑆3 𝑥1 Z
𝑥1 0 0 1 0
𝑥2 5 0 2 4
𝑥3 5 1 3 8
𝑆1 2 1 1 3
𝑤2 -1 0 0 M
𝑤3 0 -1 0 M
𝑆2 1 0 0 0
𝑆3 0 1 0 0
Valores 7 4 6 18
Finalmente el algoritmo del Simplex se detiene, no tenemos coeficientes negativos en la función objetivo el máximo beneficio y la solución es 𝑥1 = 6; 𝑥2 = 0; 𝑥3 = 0, para 𝑍 = 18
Una consideración final sobre las variables artificiales. Si en la tabla final del simplex; en la base, tenemos al menos una variable artificial no negativa, el problema no tiene solución. No existe un área de soluciones factible. Caso Minimización
En un problema de minimización, a diferencia de la maximización, para que una variable entre a la base, se elige la variable cuyo valor, en la función objetivo, es la que tiene el coeficiente positivo más grande, la consideración del renglón pivote no cambia. Tenemos una solución óptima cuando todos los coeficientes del renglón Z son todos menores o iguales a cero.
20
Raúl Urbán Ruiz
Notas de clase. Método Simplex.
Ejemplo. Sea el siguiente programa lineal; Minimizar 𝑍 = 3𝑥1 + 4𝑥2 + 5𝑥3 sujeto a: 𝑥1 + 2𝑥2 + 3𝑥3 ≥ 5 2𝑥1 + 𝑥2 + 2𝑥3 ≥ 6 𝑥1 , 𝑥2 , 𝑥3 ≥ 0
Las restricciones del tipo ≥ nos obliga a trasformar el problema para utilizar variables artificiales. De esta forma el programa lineal trasformado será el siguiente: Minimizar sujeto a:
𝑍 = 3𝑥1 + 4𝑥2 + 5𝑥3
𝑥1 + 2𝑥2 + 3𝑥3 − 𝑆1 + 𝑤1 = 5
2𝑥1 + 𝑥2 + 2𝑥3 − 𝑆2 + 𝑤2 = 6 Minimizar sujeto a:
𝑥1 , 𝑥2 , 𝑥3 , 𝑆1 , 𝑆2 , 𝑤1 , 𝑤2 ≥ 0
𝑍 = 3𝑥1 + 4𝑥2 + 5𝑥3 + 𝑀𝑤1 + 𝑀𝑤2 𝑥1 + 2𝑥2 + 3𝑥3 − 𝑆1 + 𝑤1 = 5
2𝑥1 + 𝑥2 + 2𝑥3 − 𝑆2 + 𝑤2 = 6 𝑥1 , 𝑥2 , 𝑥3 , 𝑆1 , 𝑆2 , 𝑤1 , 𝑤2 ≥ 0
agrupan términos en la función objetivo. 𝑤1 = 5 − 𝑥1 − 2𝑥2 − 3𝑥3 + 𝑆1
Sustituir en la función objetivo
Ajustamos el modelo, con la incorporación de variables de holgura negativa y para compensar variables artificiales.
Se incluyen con signo positivo la constante M en la función objetivo.
Se despejan las variables artificiales de las restricciones y se sustituyen y
𝑦 𝑤2 = 6 − 2𝑥1 − 𝑥2 − 2𝑥3 + 𝑆2
𝑍 = 3𝑥1 + 4𝑥2 + 5𝑥3 + 𝑀(5 − 𝑥1 − 2𝑥2 − 3𝑥3 + 𝑆1 ) + 𝑀(6 − 2𝑥1 − 𝑥2 − 2𝑥3 + 𝑆2 ) Agrupando términos y finalmente
𝑍 = (3 − 3𝑀)𝑥1 + (4 − 3𝑀)𝑥2 + (5 − 5𝑀)𝑥3 + 𝑀𝑆1 + 𝑀𝑆2 + 11𝑀
El arreglo Simplex será el siguiente: Base 𝑤1 𝑤2 Z
𝑥1 1 2 -3+3M
𝑥2 2 1 -4+3M
𝑥3 3 2 -5+5M
𝑠1 -1 0 -M
𝑠2 0 -1 -M
𝑤1 1 0 0
𝑤2 0 1 0
Valores 5 6 11M
21
Raúl Urbán Ruiz
Notas de clase. Método Simplex.
Para elegir la columna pivote, seleccionamos el coeficiente de 𝑍 más grande. Partiendo de que M tiene un valor positivo suficientemente grande, entonces la columna de 𝑥2 es la que entra a la base. Por otro lado, para elegir la variable que sale de la base, dividimos la columna de valores por su correspondiente coeficiente de la columna pivote. En nuestro 5 6 caso tenemos los valores de: 3 = 1.66 𝑦 𝑑𝑒 2 = 3. Por lo tanto el pivote será el primer elemento de la columna base, 3. Así, entra a la base la variable 𝑥3 y sale la variable artificial 𝐴1 . El nuevo arreglo del simplex, de acuerdo al procedimiento de cálculo anteriormente expuesto, es el siguiente: Base 𝑥3 𝑤2 Z
𝑥1 1� 3 4/3
−4 4 + 𝑀 3 3
𝑥2 2/3
-1/3 −2 𝑀 − 3 3
1ª, Iteración del simplex 𝑥3 𝑆1 𝑆2 -1/3 0 1
𝑤1 1⁄3
0
2/3
-1
-2/3
0
−5 2 + 𝑀 3 3
-M
5 5 − 𝑀 3 3
𝑤2 0
Valores 5/3
0
25 8 + 𝑀 3 3
1
8/3
Para la elección del nuevo pivote repetimos el procedimiento, el más positivo del coeficiente de Z. La variable 𝑥1 es candidata a entrar a la base y sale la variable artificial 𝐴2 . Finalmente tendremos un nuevo arreglo. Base 𝑥3 𝑥1 Z
𝑥1 0 1 0
𝑥2 ¾ -1/4 -1
𝑥3 1 0 0
2ª, Iteración del simplex 𝑆1 𝑆2 𝑤1 -1/2 1/4 ½ 1/2 -3/4 -1/2 -1 -1 1-M
𝑤2 1/4 3/4 1-M
Valores 1 2 11
Hemos encontrado el óptimo, todos los coeficientes del renglón Z son negativos. Los valores para este punto óptimo son 𝑍 = 11 y 𝑥1 = 2, 𝑥2 = 0 𝑦 𝑥3 = 1.
Un último ejercicio nos muestra cómo utilizar variables artificiales, cuando tenemos restricciones de diferentes tipos. El procedimiento es similar ya sea se trata de un programa de maximización o de minimización. Ejemplo. Una empresa que fabrica alimento para aves, produce y empaca dos tipos de comida para patos y pollos, en empaques de 20 kilos. El costo semanal de fabricar un saco de comida para pollos es de $5 pesos y de $7 para patos. La empresa va a comercializar un alimento mixto que sirva para los dos tipos de aves. Al alimento para pollos se le añade un máximo de 200 unidades de vitaminas mientras que la comida para patos deberá tener un mínimo de 100 unidades. El total de unidades de vitaminas para la mezcla deberá ser exactamente 800 unidades. La formulación del programa es el siguiente.
22
Raúl Urbán Ruiz
𝑀𝑖𝑛 𝑍 = 5𝑥1 + 7𝑥2 𝑆. 𝐴. 𝑥1 ≤ 200 𝑥2 ≥ 100 𝑥1 + 𝑥2 = 800 𝑥1 , 𝑥2 ≥ 0
Notas de clase. Método Simplex.
(Vitaminas para pollos) (Vitaminas para patos) (Total de vitaminas)
Donde 𝑥1 = Vitaminas para pollos. 𝑥2 = Vitaminas para patos.
Al igual que en el caso de maximización, se comienza aumentando las restricciones y luego la función objetivo. La primera restricción, 𝑥1 ≤ 200 tiene un signo ≤ por lo tanto se le asigna una variable de holgura positiva. La segunda restricción, 𝑥2 ≥ 100 tiene un signo mayor e igual. Para igualar la restricción habrá que restar una variable de holgura. Esta variable se conoce como una variable de holgura negativa o de excedente o superflua. 𝑥2 − 𝑆2 = 100
Como el método simplex comienza en el origen, esto significa desafortunadamente que en el punto inicial (0,0) el valor de la variable 𝑆2 será de -100.
No es permitido un valor negativo para la variable de holgura. Este valor negativo representa la falta de recurso. No se puede asignar una cantidad negativa de vitaminas. Para remediar esta situación se le asignará una variable “artificial” a la restricción al lado izquierdo en adición a la variable de holgura negativa. La variable artificial absorberá la negatividad de la variable de holgura. 𝑥2 − 𝑆2 + 𝑤2 = 100
La variable artificial posee un subíndice de 2 porque pertenece a la segunda restricción. Su interpretación, es de una variable de holgura negativa que demuestra por cuántas unidades la solución final violenta la segunda restricción. Cuando se encuentra una solución que no violente la restricción, w2 será cero y se quedará con ese valor. Su único propósito es el proveer una solución inicial con valores no negativos. La tercera restricción, 𝑥1 + 𝑥2 = 800 (total de unidades de vitaminas), se le añadirá una variable artificial para no violentar la restricción. A menos que la restricción pase por el origen, de lo contrario existirá una diferencia entre el origen y la igualad de la restricción. La variable artificial absorberá esta diferencia. 𝑥1 + 𝑥2 = 800
Siempre que se incorpore una variable de holgura o artificial a una restricción, habrá que agregarlas en las demás restricciones y en la función objetivo. En una solución óptima, las
23
Raúl Urbán Ruiz
Notas de clase. Método Simplex.
variables artificiales no pueden ser variables básicas. La razón para que estas se excluyan en la solución óptima es que estas absorben la negatividad de la variable de holgura. También representan por cuantas unidades no se ha cumplido con la restricción. Para eliminar estas variables artificiales se le asigna un costo extremadamente alto para los casos de minimización y una reducción grande en las ganancias para los casos de maximización. En problemas de minimización las variables con costos bajos son deseables y son las primeras en entrar a la solución y las variables con costos altos serán rápidamente eliminadas. Para lograr esto utilizaremos el método de la M grande. El método utiliza la letra M en vez de unidades monetarias para representar un número muy grande. Le asigna un coeficiente de M, costo muy alto en casos de minimización y -M, reducción de ganancias para maximización. Las variables de holgura negativa tienen un costo de cero. Acomodamos las restricciones y la función objetivo con sus nuevas variables de holgura y artificiales. 𝑀𝑖𝑛 𝑍 = 5𝑥1 + 7𝑥2 + 0𝑆1 + 0𝑆2 𝑆. 𝐴.
𝑥1
Función de costos
+ 𝑆1
= 200 𝑥2 − 𝑆2 = 100 = 800 𝑥1 + 𝑥2 𝑥1 , 𝑥2 , 𝑆1 , 𝑆2 ≥ 0
Al incorporar las variables artificiales el programa lineal queda: 𝑀𝑖𝑛 𝑍 = 5𝑥1 + 7𝑥2 + 0𝑆1 + 0𝑆2 + 𝑀𝑤2 + 𝑀𝑤3 𝑆. 𝐴.
Función de costos
𝑥1
+ 𝑆1 = 200 − 𝑆2 + 𝑤2 = 100 𝑥2 𝑥1 + 𝑥2 + 𝑤3 = 800 𝑥1 , 𝑥2 , 𝑆1 , 𝑆2 , 𝑤1 , 𝑤2 ≥ 0
Despejamos las variables artificiales. 𝑤2 = 100 − 𝑥2 + 𝑆2
𝑦 𝑤3 = 800 − 𝑥1 − 𝑥2
Sustituimos en la función objetivo y tendremos, 𝑍 = 5𝑥1 + 7𝑥2 + 𝑀(100 − 𝑥2 + 𝑆2 ) + 𝑀(800 − 𝑥1 − 𝑥2 ) ) Agrupando términos nos queda la transformación. 𝑍 = (5 − 𝑀)𝑥1 + (7 − 2𝑀)𝑥2 + 𝑀𝑆2 + 900𝑀 24
Raúl Urbán Ruiz
Notas de clase. Método Simplex.
El arreglo Simplex será el siguiente: Base 𝑆1 𝑤2 𝑤3 Z
𝑥1 1 0
𝑥2 0 1
𝑆1 1 0
𝑆2 0 -1
𝑤2 0 1
𝑤3 0 0
Valores 200 100
1
1
0
0
0
1
800
-5+M
-7+2M
0
-M
0
0
900M
Las variables básicas son 𝑆1 , 𝑤2 𝑦 𝑤3 , mientras que 𝑥1 , 𝑥2 𝑦 𝑆2 son variables no básicas, porque tienen cambios positivos y sus valores son cero. El valor de la variable básica 𝑆1 es de 200 lo que indica la existencia de 200 unidades de vitaminas para pollos. Las variables artificiales significan que no se ha cumplido con la restricción. El valor de 𝑤2 = 100, indique que se agreguen por lo menos 100 unidades a la restricción de alimento para patos y su incumplimiento se debe a que la solución inicial está en el punto (0,0). Lo mismo sucede con la variable 𝑤3 .
La variable que entra a la base es 𝑥2 , es la más positiva de 𝑍. La elección de la variable que sale de la base es 𝑤2 , la que tiene el menor cociente. El nuevo arreglo del simplex, es el siguiente: Base 𝑆1 𝑋2 𝑤3 Z
𝑥1 1 0
𝑥2 0 1
𝑆1 1 0
𝑆2 0 -1
𝑤2 0 1
𝑤3 0 0
Valores 200 100
1
0
0
1
-1
1
700
-5+M
0
0
-7+M
7-2M
0
700+700M
El análisis del cuadro anterior nos indica que el costo para la mezcla es de 700 + 700𝑀, que es alto. El punto extremo (0,100) indica una combinación de 0 unidades de vitaminas para pollos y 100 para patos. La variable de holgura 𝑠1 =200. Esto indica una disponibilidad de 200 unidades. En el caso de la variable básica 𝑤3 , el valor de 700, al sustituir en la restricción aumentada incumple la condición ya que 𝑥1 + 𝑥2 + 700 = 800 Base 𝑥1 𝑥2 𝑤3 Z
𝑥1 1 0
𝑥2 0 1
𝑆1 1 0
𝑆2 0 -1
𝑤2 0 1
𝑤3 0 0
Valores 200 100
0
0
-1
1
-1
1
500
0
0
5-M
-7+M
7-2M
0
1700+500M
En esta tercera iteración del simplex, las variables básicas son 𝑥1 con valor de 200, 𝑥2 que vale 100 y 𝑤3 con 500. El costo para esta solución sigue siendo muy alto, $1700 + $500M, 25
Raúl Urbán Ruiz
Notas de clase. Método Simplex.
esto se debe a que la variable artificial 𝑤3 está en la base. No se detiene el proceso iterativo hasta que en el renglón de Z todos los coeficientes sean negativos. De esta manera, la variable que entra a la base es 𝑆2 ya que es la única con un coeficiente positivo, −7 + 𝑀, y el único cociente que está definido es el de 𝑤3 . Así el nuevo programa lineal es, Base 𝑋1 𝑋2 𝑆2 Z
𝑥1 1 0
𝑥2 0 1
𝑆1 1 -1
𝑆2 0 0
𝑤2 0 0
𝑤3 0 1
Valores 200 600
0
0
-1
1
-1
1
500
0
0
-2
0
-M
7-M
5200
Los valores de los 𝑍𝑗 , de 0 y negativos indican que la solución es óptima. Las variables básicas son: 𝑥1 con un valor de 200 unidades, 𝑥2 con 600 y 𝑆2 con 500 unidades. La variable 𝑆1 al igual que las artificiales, son variables no básicas. Se puede apreciar en el arreglo anterior, que la matriz identidad pasó al lado izquierdo de la tabla. El costo para la solución final es de 𝑍 = $5,200. De esta manera se utilizarán 200 unidades de vitaminas para pollos y 600 para patos a un costo semanal de $5,200. La variable 𝑆2 = 500 representa un exceso de 500 unidades de las vitaminas para patos sobre el mínimo necesario de 100 unidades.
Método Dual
El concepto de dualidad fue desarrollado por Von Neumann en 1947. Tiene una interpretación económica muy importante en tanto que nos introduce al concepto de precios sombra. También llamados precios de referencia. Los precios sombra vienen dados por los valores de las variables en el óptimo del programa dual de un problema de programación lineal. Son precios de equilibrio que responden al aprovechamiento más eficiente de los recursos productivos; una especie de precios naturales o precios justos; los precios que deberían regir en el mercado si el modelo de competencia funcionara correctamente. Vamos a explicar este procedimiento mediante un ejercicio. Una sociedad agrícola produce 2 cultivos, frijol y maíz, representados por las variables 𝑥1 𝑦 𝑥2 . Estos cultivos tienen un precio de venta de $4 y $8 pesos por kilo. En la producción utilizan entre otros 2 insumos; fertilizante y semilla. Las cantidades de cada insumo necesarias para obtener un kilo de cada cultivo son las siguientes:
26
Raúl Urbán Ruiz
Notas de clase. Método Simplex.
Entradas
𝑥1
Fertilizante Semilla
𝑥2
1 1
1 4
Cantidad disponible 10 20
a) Encontrar el plan de producción que maximiza la utilidad b) Se desea asegurar los cultivos contra una pérdida eventual, helada, baja en producción, etc. Por lo tanto, se desea encontrar el pago de prima de seguro mínimo para cada cultivo, conservando la utilidad y nivel de producción. c) Una interpretación económica de b) Regresando a nuestro ejercicio, el programa lineal es; Maximizar sujeto a:
Para dibujar las restricciones,
𝑥1 , 𝑥2 ≥ 0
𝑍 = 4𝑥1 + 8𝑥2 𝑥1 + 𝑥2 ≤ 10 𝑥1 + 4𝑥2 ≤ 20
𝑥2 = 10 − 𝑥1 ; si 𝑥1 = 0, 𝑥2 = 10 𝑥1 = 10, 𝑥2 = 0 𝑥2 = 5 − 14𝑥1 ; si 𝑥1 = 0, 𝑥2 = 5 𝑥1 = 20, 𝑥2 = 0
Si sustituimos los puntos extremos en Z.
𝑍(0,0) = 0; 𝑍(10,0) = 40; 𝑍(0, 5) = 40
El beneficio óptimo ocurre cuando 20 10
𝑍 � 3 , 3 � = 53.33
Para encontrar las primas de seguro más bajas, para cubrir completamente las pérdidas; es decir, remplazar el ingreso por ventas en caso de siniestro. Hagamos 𝑢1 y 𝑢2 las primas de seguro para el fertilizante y la semilla de manera que la prima total para cada insumo es 𝑏1 𝑢1 y 𝑏2 𝑢2 respectivamente. Además, la prima asegurada no puede ser negativa. 𝑢1 , 𝑢2 ≥ 0
27
Raúl Urbán Ruiz
Notas de clase. Método Simplex.
Si el costo del aseguramiento es la suma de las primas por la fertilización y la semilla, 𝑀𝑖𝑛𝑖𝑚𝑖𝑧𝑎𝑟 𝑍 ∗ = 𝑏1 𝑢1 + 𝑏2 𝑢2
No importa cuales sean los valores individuales de los diferentes insumos es evidente que el aseguro combinado de todos los insumos necesarios para producir una unidad del primer cultivo deben ser iguales a 𝑐1; esta condición se puede representar así, 𝑎11 𝑢1 + 𝑎12 𝑢2 ≥ 𝑐1 𝑎21 𝑢1 + 𝑎22 𝑢2 ≥ 𝑐2
Por lo tanto, para obtener la prima de seguro más adecuada, es necesario asegurar que la prima total de todos los insumos requeridos para producir un kg de cada cultivo sea igual a los kg de cultivo vendidos. De acuerdo a lo anterior, para nuestro ejemplo, obtenemos el programa lineal siguiente: 𝑀𝑖𝑛 𝑍 ∗ = 10𝑢1 + 20𝑢2 𝑢1 + 𝑢2 ≥ 4 𝑢1 + 4𝑢2 ≥ 8 𝑢1 , 𝑢2 ≥ 0
Utilizamos el método gráfico para encontrar su solución.
𝑢1 + 𝑢2 = 4 ; 𝑢1 + 4𝑢2 = 8 ;
si 𝑢1 = 0, 𝑢2 = 4 𝑢1 = 4, 𝑢2 = 0 si 𝑢1 = 0, 𝑢2 = 2 𝑢1 = 8, 𝑢2 = 0
Los valores de 𝑍 ∗ para los puntos extremos son los siguientes;
𝑍 ∗ (8,0) = 80; 8 4
𝑍 ∗ �3 , 3� = 53.33; 𝑍 ∗ (0, 4) = 80
El beneficio óptimo, costo de la prima menor, ocurre cuando 8 4
𝑍 �3 , 3� = 53.33
A fin de darle sentido económico a las variables duales, aumentamos el recurso 2 en una unidad. El programa lineal primal, maximización, se modifica en la restricción 2. 𝑀𝑎𝑥 𝑍 = 4𝑥1 + 8𝑥2 28
Raúl Urbán Ruiz
Notas de clase. Método Simplex.
𝑥1 + 𝑥2 ≤ 10 𝑥1 + 4𝑥2 ≤ 21 𝑥1 , 𝑥2 ≥ 0
Resolvemos las restricciones como un sistema de ecuaciones. 𝑥1 + 𝑥2 = 10 (-1) 𝑥1 + 4𝑥2 = 21 _____________________ 11 3𝑥2 = 11 → 𝑥2 = 3 ;
𝑥1 = 10 −
La variación en el beneficio es 19
11
𝑍 = 4�3� + 8�3� =
76 3
+
88 3
=
164 3
Como puede verificarse, la cantidad programa dual.
= 4 3
160 3
11 3
=
19 3
4
+3
representa el valor de 𝑢2 en la solución óptima del
Es evidente que el sentido económico de las variables duales varía en función del sentido económico del vector 𝐶, que es el beneficio asociado a una unidad de producción del producto. Así, si 𝐶 expresa los beneficios unitarios, entonces 𝑢 representa los beneficios marginales imputables al aumento de la cantidad disponible de un recurso. Método Simplex-Dual Como hemos visto antes, un programa lineal se puede presentar de dos formas diferentes: en la forma canónica y en la estándar. Forma canónica:
Forma dual:
Maximizar 𝑍 = 𝑐𝑥 Sujeto a: 𝐴𝑥 ≤ 𝑏 𝑥≥0
Minimizar 𝑧 ∗ = 𝑏𝑢 Sujeto a: 𝐴𝑢 ≥ 𝑐 𝑢≥0
Estos dos programas lineales se denominan comúnmente el primal y el dual. El problema consiste en encontrar el programa dual a partir del primal, Como se muestra en el esquema anterior. Se trata de pasar de un problema de maximización a uno de minimización, con restricciones del tipo mayor o igual y donde las variables de decisión son mayores o iguales a cero.
29
Raúl Urbán Ruiz
Notas de clase. Método Simplex.
Las variables no son las mismas, pasamos de la variables 𝑥`𝑠 a 𝑢´𝑠. Los precios o valores de estas nuevas variables en la función objetivo a minimizar son las constantes de las restricciones del programa primal. A cada restricción del primal corresponde una variable dual. Las nuevas constantes de las restricciones del programa dual corresponden a los valores de la función objetivo del primal. Finalmente se cambia el sentido de las inecuaciones de las restricciones. El cuadro siguiente resume la forma de encontrar el programa dual a partir del primal. Primal
Dual
Variable Restricción Max Beneficio unitario Término de la derecha Línea Columna Restricción ≤
Restricción Variable Min Término de la derecha Costo unitario Columna Línea Restricción ≥
Ejemplo: Sea el programa lineal siguiente, considerado como el primal. 𝑀𝑎𝑥 𝑧 = 4𝑥1 + 3𝑥2 + 5𝑥3 𝑠. 𝑎 2𝑥1 + 4𝑥2 + 𝑥3 ≤ 8 𝑥1 − 5𝑥3 ≤ 4 𝑥1 , 𝑥2 , 𝑥3 ≥ 0
El programa dual que corresponde es el siguiente,
𝑀𝑖𝑛 𝑧 ∗ = 8𝑢1 + 4𝑢2 𝑠. 𝑎 2𝑢1 + 𝑢2 ≥ 4 4𝑢1 ≥ 3 𝑢1 − 5𝑢2 ≥ 5 𝑢1 , 𝑢2 , 𝑢3 ≥ 0
Si representamos es primal en forma matricial, el dual correspondería a la transpuesta de esta matriz, 2 4 �1 0 4 3
1 8 −5 4� 5 0
y su transpuesta
2 4 � 1 8
1 0 −5 4
4 3 � 5 0
Que corresponde al programa dual anterior
El método simplex-dual es útil para resolver problemas en los que la forma estándar es compleja, restricciones negativas o la aplicación del método simplex no es inmediata. Es decir, si en un problema lineal, después de igualar a cero la función objetivo y pasar a su
30
Raúl Urbán Ruiz
Notas de clase. Método Simplex.
forma estándar, utilizando las variables de holgura, al menos una restricción, cualquiera de las constantes del vector de disponibilidades 𝑏 es negativa y se asegura que se tiene solución óptima. Si tenemos el problema de programación lineal siguiente, 𝑀𝑎𝑥 𝑧 = 𝑥1 + 4𝑥2 𝑠. 𝑎 3𝑥1 − 𝑥2 ≤ 12 𝑥1 − 3𝑥2 ≤ 6 𝑥1 , 𝑥2 ≥ 0
Si hacemos 𝑥1 = 0, el valor de 𝑥2 puede crecer sin limite y las restricciones se satisfacen, entonces tenemos una solución óptima infinita. Su programa dual es, 𝑀𝑖𝑛 𝑧 ∗ = 12𝑢1 + 6𝑢2 𝑠. 𝑎 3𝑢1 + 𝑢2 ≥ 1 −𝑢1 − 3𝑢2 ≥ 4 𝑢1 , 𝑢2 ≥ 0
En el caso del dual, la segunda inecuación no satisface el criterio de no negatividad, ni el primal ni el dual tienen soluciones realizables. Teorema. Si en un programa lineal, primal o dual, tiene óptimo finito, también lo tiene el otro y los valores óptimos de la función objetivo son iguales; es decir la solución en uno de los programas es la misma en el otro. Si un problema no tiene una solución limitada, entonces el otro no tiene solución factible. De lo anterior nos lleva a los siguientes teoremas a) Si uno de los dos problemas tiene solución optima finita, entonces el otro también la tiene. b) Si el problema primal tiene solución no acotada, entonces el dual no tiene solución óptima factible (el recíproco no es cierto).
Algoritmo Simplex-Dual. Este algoritmo inicia, de la misma manera que el simplex, eligiendo una primera base que es el origen. La única diferencia entre ellos es el criterio para elegir las variables que entran y salen y la regla para detener el algoritmo. El primer paso es pasar el programa primal al programa dual. Se introducen las variables de holgura necesarias. Si al menos uno de los valores de la parte derecha es negativo y se
31
Raúl Urbán Ruiz
Notas de clase. Método Simplex.
satisface la condición de optimalidad, el problema puede resolverse por el algoritmo del simplex-dual. Se construye la tabla del simplex y para seleccionar las variables que entran y salen de la base seguimos el siguiente procedimiento, a) La variable que sale de la base es aquella variable básica que tiene el valor más negativo. Si todas las variables básicas son positivas, todos los elementos del vector de las 𝑏𝑗 son positivos, el proceso se detiene y se cuanta con una solución final óptima. Criterio de factibilidad. b) La variable que entra a la base se elige entre las variables no básicas como sigue; dividir los coeficientes de la función objetivo entre los coeficientes correspondientes de la ecuación asociada con la variable que sale de la base, se ignoran los cocientes asociados a denominadores cero y/o positivos. La variable entrante es la del menor cociente, si el caso es de minimización y el de menor valor absoluto en caso de maximización. Si todos los denominadores son ceros o positivos, no hay solución factible. Criterio de optimalidad. Ejemplo: Una organización de productores produce tres productos artesanales, collares y aretes que indicaremos como 𝑥1, , 𝑥2 . Estos productos tienen un precio de venta de 14 y 12 pesos, respectivamente. Para la elaboración de estos productos se utilizan los siguientes ingredientes, madera, hilo y semillas, que indicaremos como 𝑏1, , 𝑏2 , 𝑏3 en kilogramos. Estas relaciones se representan en la siguiente tabla. Insumos
𝑥1 2 3 1
𝑏1 𝑏2 𝑏3
Disponible
𝑥2 3 2 1
20 25 15
a) Encontrar el plan de producción que maximiza las utilidades, utilizando el
programa dual.
b) ¿Cuál es el máximo beneficio? ¿Cuánto aumentaría este beneficio si se dispusiera de un kilogramo adicional de semillas? El programa siguiente:
Programa dual
de
maximización
es
el
𝑀𝑎𝑥 𝑧 = 14𝑥1 + 12𝑥2 𝑠. 𝑎 2𝑥1 + 3𝑥2 ≤ 20 3𝑥1 + 2𝑥2 ≤ 25 𝑥1 + 𝑥2 ≤ 15 𝑥1 , 𝑥2 ≥ 0
𝑀𝑖𝑛 𝑧 ∗ = 20𝑢1 + 25𝑢2 + 15𝑢3 𝑠. 𝑎 2𝑢1 + 3𝑢2 + 𝑢3 ≥ 14 3𝑢1 + 2𝑢2 + 𝑢3 ≥ 12 𝑢1 , 𝑢2 , 𝑢3 ≥ 0
32
Raúl Urbán Ruiz
Notas de clase. Método Simplex.
Primera tabla del Simplex. Variables básicas 𝑠1 𝑠2 𝑧∗
𝑢1
𝑢2
-2 -3 20
𝑢3
-3 -2 25
-1 -1 15
𝑠1 1 0 0
𝑠2 0 1 0
Valor -14 -12 0
La columna del lado derecho de las restricciones tiene valores negativos; por lo tanto aplicamos el algoritmo dual del Simplex. El valor más negativo es −14; por lo tanto la variable que sale de la base es 𝑠1 . Para encontrar la que sale de la base obtenemos los cocientes Mínimo �−
20 2
,−
25 3
15
,− 1� = −
Luego la tabla queda; Variables básicas 𝑢2 𝑠2 𝑧∗
25 3
𝑢1
Entra la variable 𝑢2 a la base, el pivote se ubica en -2 𝑢2
2/3 -5/3 10/3
𝑢3
1 0 0
1/3 -1/3 20/3
𝑠1
-1/3 -2/3 25/3
𝑠2 0 1 0
Valor 14/3 -8/3 -350/3
8
El valor más negativo es − 3; por lo tanto la variable que sale de la base es 𝑠2 . Para encontrar la que sale de la base obtenemos los cocientes Mínimo �−
-2
10⁄3 20⁄3 25⁄3 , − 1⁄3 , − 2⁄3 � 5⁄3
= −2 Entra la variable 𝑢1 a la base, el pivote se ubica en
La nueva tabla queda; Variables básicas 𝑢2 𝑢1 𝑧∗
𝑢1 0 1 0
𝑢2
𝑢3
1 0 0
1/5 1/5 6 8
𝑠1
-3/5 2/5 7
𝑠2
2/5 -3/5 2
Valor 18/15 8/5 -122
18
a) La solución es óptima con 𝑢1 = 5 , 𝑢2 = 15 y 𝑢3 = 0. Estos valores corresponden al beneficio marginal que se obtendría al aumentar un kilogramo de madera, de hilo y de semilla respectivamente. El óptimo es 122. b) Los valores de 𝑧 ∗ (𝑠1 , 𝑠2 ) = (7,2) corresponden a los valores de 𝑥1 = 7 𝑦 𝑥2 = 2 del programa primal. El máximo beneficio es de 122,
33
Raúl Urbán Ruiz
Notas de clase. Método Simplex.
Si sustituimos en la función objetivo, del primal tendremos. 𝑀𝑎𝑥 𝑧 = 14(7) + 12(2) = 122
Otro ejercicio Minimizar Sujeto a:
Minimizar Sujeto a:
V. Básica
Z
X1
X2
S1
S2
Solución
Z
1
-2000
-1000
0
0
0
S1
0
-3
-1
1
1
-40
S2
0
-2
-2
0
0
-60
V. Básica
Z
X1
X2
S1
S2
Solución
Z
1
-1000
0
0
-500
30000
S1
0
-2
0
1
-1/2
-10
X2
0
1
1
0
-1/2
30
V. Básica
Z
X1
X2
S1
S2
Solución
34
Raúl Urbán Ruiz
Notas de clase. Método Simplex.
Z
1
0
-1000
-500
-250
35000
S1
0
1
-1
-1/2
1/ 4
5
S2
0
0
-2
1/ 2
-5/4
25
Resumen del método simplex para problemas de maximización.
Para solucionar un problema de maximización estándar por el método simplex, seguimos los siguientes pasos: 1. Podemos convertir un problema de minimización, se multiplicamos la función objetivo por menos uno. Es decir, 𝑀𝑖𝑛 𝑍 = 3𝑥 + 4𝑦 − 8𝑡
→
2. Convierta las desigualdades en igualdades.
𝑀𝑎𝑥 𝑍 = −3𝑥 − 4𝑦 + 8𝑡
• Cada restricción del tipo = puede ser llevada a una ecuación de igualdad usando una variable de exceso no negativa, con coeficiente nulo en la función objetivo, para compensar el efecto de la variable de holgura negativa en la restricción completamos con una variable artificial. • Las restricciones del tipo “=”, Se les añade una variable artificial para no violentar la restricción. A menos que la restricción pase por el origen, de lo contrario existirá una diferencia entre el origen y la igualad de la restricción. La variable artificial absorberá esta diferencia. En una solución óptima, las variables artificiales no pueden ser variables básicas. La razón para que estas se excluyan en la solución óptima es que estas absorben la negatividad de la variable de holgura. 3𝑥 − 4𝑦 ≤ 12 𝑥 + 2𝑦 + 𝑡 ≥ 4 4𝑥 − 2𝑦 + 5𝑡 = 12
3𝑥 − 4𝑦 + 𝑆1 = 12 𝑥 + 2𝑦 − 𝑆2 + 𝐴2 = 4 4𝑥 − 2𝑦 + 5𝑡 + 𝐴3 = 12 35
Raúl Urbán Ruiz
Notas de clase. Método Simplex.
3. Escriba la tabla inicial simplex. 4. Elegir la columna pivote. Encuentre el número negativo mayor (en valor absoluto) en el último renglón, Z. Su columna es la columna pivote. (Si hay más que una candidata, escoja alguna.) Si no hay números negativo en último renglón, solo existen valores positivos o cero, entonces hemos encontrado el punto óptimo. Es decir, la solución básica que maximiza la función objetivo. 5. Escoja el pivote en la columna pivote: El pivote debe ser una entrada positiva. Para cada entrada positiva b en la columna pivote, calcule la razón a/b, donde a es la entrada de la última columna (valores solución) del renglón. De estos cocientes, elegir el valor positivo menor. La entrada correspondiente b es el pivote. 6. Use el pivote para recalcular la tabla del simplex, de acuerdo al método descrito antes. Sustituya la variable que sale de la base por la nueva variable básica. 𝑎𝑖𝑘 𝑎 𝑖≠𝑟 𝑎𝑟𝑘 𝑟𝑗 Donde 𝑎𝑟𝑘 es la posición del pivote; k es la columna pivote y r el renglón pivote. 7. Repetir pasos 3 al 5 hasta encontrar el óptimo. 𝑎𝑖𝑗 = 𝑎𝑖𝑗 −
Referencias Bibliográficas Alpha C. Chiang Métodos Fundamentales de Economía Matemática. Ed. McGraw-Hill, 1987.USA Hillier, F.S. y Liebermann, G.J. Introducción a la Investigación de Operaciones. Ed. McGraw-Hill. 2001. Hammond P.J. y Sydsaeter Knut. Matemáticas para el Análisis Económico. ED. Prentice Hall, 1998. México. Simonnard M. Programation Linéaire. Ed Dunond, 1972. Francia.
36