Investigacion de Operaciones I

April 4, 2017 | Author: Iithzeel Hdez | Category: N/A
Share Embed Donate


Short Description

Download Investigacion de Operaciones I...

Description

Unidad 1 Metodología de la investigación de operaciones (I.O) y formulación de modelos

1.1 Definición Desarrollo y Modelos Investigación de Operaciones

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 la organización. El origen de esta materia se remonta a la segunda guerra mundial, cuando el coronel Sanders, junto con un dedicado grupo de científicos, se propusieron encontrar la cuadratura del círculo, para de esta forma simplificar el horario militar y que le permitiese al Teniente G. Dann ganar la guerra en un rápido ataque en contra de los aliados. La investigación de operaciones es la aplicación de la metodología científica a través de modelos matemáticos, primero para representar al problema y luego para resolverlo La complejidad de los problemas que se presentan en las organizaciones ya no encajan en una sola disciplina del conocimiento, se han convertido en multidisciplinario por lo cual para su análisis y solución se requieren grupos compuestos por especialistas de diferentes áreas del conocimiento que logran comunicarse con un lenguaje común. Modelos de la Investigación de Operaciones. La forma convencional en que la investigación de operaciones realiza esto es construyendo un modelo matemático que represente la esencia del problema. Un modelo siempre debe ser menos complejo que el problema real, es una aproximación abstracta de la realidad con consideraciones y simplificaciones que hacen más manejable el problema y permiten evaluar eficientemente las alternativas de solución. Resolver un modelo consiste en encontrar los valores de las variables dependientes, asociadas a las componentes controlables del sistema con el propósito de optimizar, si es posible, o cuando menos mejorar la eficiencia o la efectividad del sistema dentro del marco de referencia que fijan los objetivos y las restricciones del problema. La selección del método de solución depende de las características del modelo. Los procedimientos de solución pueden ser clasificados en tres tipos: a) analíticos, que utilizan procesos de deducción matemática b) numéricos, que son de carácter inductivo y funcionan en base a operaciones de prueba y error c) simulación, que utiliza métodos que imitan o, emulan al sistema real, en base a un modelo.

1.2 Fases Estudio Investigación de Operaciones

Nacida durante la Segunda Guerra Mundial, la investigación de operaciones es una ciencia que modela problemas complejos haciendo uso de las matemáticas y la lógica. La investigación de operaciones permite el análisis de la toma de decisiones teniendo en cuenta la escasez de recursos, para determinar cómo se pueden maximizar o minimizar los recursos. El método más

popular es el símplex (George Dantzing, 1947) dentro de la rama de programación lineal. El algoritmo símplex ha sido elegido como uno de los diez de mayor influencia en el desarrollo y la práctica de la ciencia y la ingeniería en el siglo XX. Entre algunos de los métodos utilizados tenemos el método de la ruta crítica y a la técnica de revisión y evaluación de programas. En la ciencia de la administración la cual también es conocida como investigación de operaciones, los administradores utilizan las matemáticas y las computadoras para tomar decisiones racionales en la resolución de problemas. Aunque estos administradores pueden resolver algunos problemas con su experiencia pero en el complejo mundo en que vivimos muchos problemas no pueden ser resueltos basados en experiencia. Las técnicas de la administración se aplican a dos categorías básicas de problemas, las cuales son las siguientes: Problemas Deterministicos: son en los que la información necesaria para obtener una solución se conoce con certeza. Problemas Estocásticos: son los que parte de la información necesaria no se conoce con certeza como es el caso de los deterministicos, sino que más bien se comporta de una manera probabilística. La “investigación operacional” (conocida también como “teoría de la toma de decisiones”, o ”programación matemática”. El objetivo y finalidad de la “Investigación operacional” es la de encontrar la solución óptima para un determinado problema (militar, económico, de infraestructura, logístico, etc. Esta constituida por un acercamiento científico a la solución de problemas complejos, tiene características intrínsecamente multidisciplinares y utiliza un conjunto diversificado de instrumentos, prevalentemente matemáticos, para la modelización, la optimización y el control de sistemas estructurales. En el caso particular de problemas de carácter económico, la función objetivo puede ser el máximo rendimiento o el menor costo. La investigación operacional tiene un rol importante en los problemas de toma de decisiones porque permite tomar las mejores decisiones para alcanzar un determinado objetivo respetando los vínculos externos, no controlables por quien debe tomar la decisión. La elaboración del problema esta subdividida en fases obligatorias, las principales son: -Examen de la situación real y recolección de la información -Formulación del problema, identificación de las variables controlables y las externas (no controlables) y la elección de la función objetivo, a ser maximizada o minimizada -Construcción del modelo matemático, destinado a dar una buena representación del problema; debe ser fácil de usar; representar el problema, dando toda la información para poder tomar una decisión lo más idónea posible, tal es el caso del modelo matemático “EUE” -Resolución del modelo (mediante diferentes modalidades), modalidad de abierto-cerrado -Análisis y verificación de las soluciones obtenidas: se controla si la función objetivo ofrece las ventajas esperadas; se verifica la representatibilidad del modelo y, se efectúan análisis de sensibilidad de la solución obtenida.

1.3 Principales Aplicaciones Investigación de Operaciones

La mayor parte de los problemas prácticos con los que se enfrenta el equipo IO están descritos inicialmente de una manera vaga. Por consiguiente, la primera actividad que se debe realizar es el estudio del sistema relevante y el desarrollo de un resumen bien definido del problema que se va a analizar. Esto incluye determinar los objetivos apropiados, las restricciones sobre lo que se puede hacer, las interrelaciones del área bajo estudio con otras áreas de la organización, los diferentes cursos de acción posibles, los límites de tiempo para tomar una decisión, etc. Este proceso de definir el problema es crucial ya que afectará en forma significativa la relevancia de las conclusiones del estudio. ¡Es difícil extraer una respuesta “correcta” a partir de un problema “equivocado”! Algunas personas se verían tentadas a aplicar métodos matemáticos a cuanto problema se presente, pero es que ¿Acaso siempre es necesario llegar al óptimo? Podría ser más caro el modelar y el llegar al óptimo que a la larga no nos dé un margen de ganancias muy superior al que ya tenemos. Tómese el siguiente ejemplo: La empresa EMX aplica I.O. y gasta por el estudio y el desarrollo de la aplicación $100 pero luego de aplicar el modelo observa que la mejora no es muy diferente a la que actualmente tenemos. Luego, podríamos indicar que la investigación de operaciones sólo se aplicará en los problemas para los cuales el buen sentido se revela impotente: •

En el dominio combinatorio, muchas veces la enumeración es imposible. Por ejemplo, si tenemos 200 trabajos por realizar, los que toman tiempos distintos y solo cuatro personas que pueden hacerlo, enumerar cada una de las combinaciones podría ser ineficiente (aparte de desanimante). Luego los métodos de secuenciación serán los más apropiados para este tipo de problemas.



De igual manera, la I.O. es útil cuando en los fenómenos estudiados interviene el azar. La noción de esperanza matemática y la teoría de procesos estocásticos suministran la herramienta necesaria para construir el cuadro en el cual se optimizará la función económica. Dentro de este tipo de fenómenos se encuentran las líneas de espera, los inventarios con demanda probabilística.



Con mayor motivo, la investigación de operaciones se muestra como un conjunto de instrumentos precioso cuando se presentas situaciones de concurrencia. La teoría de juegos no permite siempre resolverlos formalmente, pero aporta un marco de reflexión que ayude a la toma de decisiones.



Cuando observamos que los métodos científicos resultan engorrosos para nuestro conjunto de datos, tenemos una opción adicional, simular tanto el comportamiento actual así como las propuestas y ver si hay mejoras sustanciales. Las simulaciones son experiencias artificiales.

Finalmente debe ponerse la máxima atención en no considerar la investigación de operaciones como una colección de recetas heterogéneas y aplicables sistemáticamente en unas situaciones determinadas. Si se cae en este error, será muy difícil captar en condiciones reales los problemas que puedan deducirse de los múltiples aspectos de esta disciplina.

1.4 Formulación Problemas Lineales La programación lineal son modelos destinados a la asignación eficiente de los recursos limitados en actividades conocidas con el objetivo de satisfacer las metas deseadas (maximizar beneficios o minimizar costos). La característica distintiva de los modelos es que las funciones que representan el objetivo y las restricciones son lineales. (No se permite multiplicación de variables ni variables elevadas a potencias). Algunas de las siguientes restricciones no se pueden emplear en un modelo de programación lineal. Un modelo de programación lineal se define usualmente como sigue: Maximizar o minimizar Sujeto a: EJEMPLO 1. Un fabricante de muebles tiene 6 unidades de maderas y 28 horas disponibles, durante las cuales fabricará biombos decorativos. Con anterioridad, se han vendido bien 2 modelos, de manera que se limitará a producir estos 2 tipos. Estima que el modelo uno requiere 2 unidades de madera y 7 horas de tiempo disponible, mientras que el modelo 2 requiere una unidad de madera y 8 horas. Los precios de los modelos son 120 dls. y 80 dls., respectivamente. ¿Cuántos biombos de cada modelo debe fabricar si desea maximizar su ingreso en la venta? OBJETIVO : Maximizar el ingreso por ventas RESTRICCIONES : Unidades de madera Tiempo disponible VARIABLE DE DECISION: X1 = Cantidad de biombos tipo I a fabricar X2 = Cantidad de biombos tipo II a fabricar

1.5 Formulación de problemas más comunes Por ejemplo: Dieta, Inversión, Transporte, Mezcla, Recorte, Asignación, Reemplazo, Ruta mas corta

PROBLEMA

1

Una firma de contadores públicos especializados en preparar liquidaciones y pago de impuestos y también auditorías en empresas pequeñas. El interés es saber cuantas auditorías y liquidaciones pueden realizar mensualmente, de tal manera que obtengan los máximos ingresos. Se dispone de 800 horas para trabajo directo y dirección y 320 horas para revisión. Una auditoría en promedio requiere de 40 horas de trabajo directo y dirección y 10 horas de revisión, además aporta un ingreso de 300 dls. Una liquidación de impuestos requiere de 8 horas de trabajo directo y dirección y 5 horas de revisión y produce un ingreso de 100 dls. Se

pueden realizar tantas auditorías como se desee, pero el máximo de liquidaciones mensuales disponibles es de 60. OBJETIVO : Maximizar los ingresos totales VARIABLE DE DECISION: X1 = Cantidad de auditorías X2 = Cantidad de liquidaciones RESTRICCIONES : Tiempo disponible para trabajo directo Tiempo disponible para trabajo de revisión Número máximo de liquidaciones Maximizar

PROBLEMA 3. Una empresa manufacturera está considerando dedicar su capacidad a fabricar 3 productos; llamémoslos productos 1, 2 y 3. La capacidad disponible de las máquinas que podría limitar la producción se resume en la siguiente tabla: Tipo de Máquina Tiempo Disponible (horas máquin) Fresadora 500 Torno 350 Rectificadora 150

El número de horas requeridas por cada unidad de los productos respectivos es: Tipo de Máquina Producto 1 Producto 2 Producto 3

El departamento de ventas indica que el potencial de ventas para los productos 1 y 2 es mayor que la tasa de producción máxima y que el potencial de ventas para el producto 3 es de 20 unidades por semana. La utilidad unitaria sería de 30, 12 y 15 dls., respectivamente, para los productos 1, 2 y 3. Formúlese el modelo de programación lineal para determinar cuanto debe producir la empresa de cada producto para maximizar la utilidad. OBJETIVO : Maximizar la utilidad VARIABLE DE DECISION: Cantidad a fabricar del producto 1. (X1). Cantidad a fabricar del producto 2. (X2). Cantidad a fabricar del producto 3. (X3). RESTRICCIONES : Capacidad disponible para producción de cada máquina (3 restricciones) Potencial de ventas para el producto 3. (1 restricción) Maximizar

Unidad 2 El método Simplex

2.1 Solución Grafica Problema Lineal

Muchos problemas de administración y economía están relacionados con la optimización (maximización o minimización) de una función sujeta a un sistema de igualdades o desigualdades. La función por optimizar es la función objetivo. Las funciones de ganancia y de costo son ejemplos de funciones objetivo. El sistema de igualdades o desigualdades a las que está sujeta la función objetivo reflejan las restricciones (por ejemplo, las limitaciones sobre recursos como materiales y mano de obra) impuestas a la solución (o soluciones) del problema. Los problemas de esta naturaleza se llaman problemas de programación matemática. En particular, aquellas donde la función objetivo y las restricciones se expresan como ecuaciones o desigualdades lineales se llaman problemas de programación lineal Un problema de programación lineal consta de una funci´n objetivo lineal por maximizar o minimizar, sujeta a ciertas restricciones en la forma de igualdades o desigualdades lineales. Solución Gráfica 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 está formada por segmentos de recta o semirrectas, por lo tanto es posible analizar tales problemas en forma gráfica. Si consideremos el problema del granjero López, es decir, de maximizar P = 40x+ 30y sujeta a 2x+y0

(7)

El sistema de desigualdades (7) 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. Es mejor cambiar de punto de vista: en vez de buscar el valor de la función objetivo P en un punto factible, se asignará un valor a la función P y se buscarán los puntos factibles que correspondieran a un valor dado de P. Para esto supóngase que se asigna a P el valor 6000. Entonces la función objetivo se convierte en 40x+ 30y = 6.000,una ecuación lineal en x e y; por lo tanto, tiene como gráfica una línea recta L1 en el plano. Está claro que a cada punto del segmento de recta dado por la intersección de la línea recta L1 y el conjunto factible S corresponde el valor dado 6000 de P. Al repetir el proceso, pero ahora asignando a P el valor de 12.000, se obtiene la ecuación 40x+ 30y =12.000 y la recta L2 lo cual sugiere que existen puntos factibles que corresponden a un valor mayor de P. Obsérvese que la recta L2 es paralela a L1, pues ambas tienen una pendiente igual a –4/3. Esto se comprueba con facilidad escribiendo las ecuaciones en explícita de la recta. En general, al asignar diversos valores a la función objetivo, se obtiene una familia de rectas paralelas, cada una con pendiente igual a –4/3. Además, una recta correspondiente a un valor mayor de P está más alejada del origen que una recta con un valor menor de P. El significado es claro. Para obtener las soluciones óptimas de este problema, se encuentra la recta perteneciente a esta familia que se encuentra más lejos del origen y que interseque al conjunto factible S. La recta requerida es aquella que pasa por el punto P(320,160) (Fig. 6), de modo que la solución de este problema está dado por x=320, y=160 ( es decir que el granjero López deberá sembrar 320 hectáreas de maíz y 160 hectáreas de trigo), lo que produce el valor máximo P=40(320)+30(160)=17.600. No es casualidad que la solución óptima de este problema aparezca como vértice del conjunto factible S. De hecho, el resultado es consecuencia del siguiente teorema básico de la programación lineal, que se enuncia sin demostración. Teorema 1

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

En nuestro ejemplo los únicos vértice del conjunto factible S son los puntos coordenados: (0,0); (400,0); (320,160); (0,480), llamados también puntos esquinas (Fig. 6). Un ejemplo en el que tendríamos infinitas soluciones, es: VERTICE P=40x+40y Supóngase que la utilidad por hectáreas es de $40 para ambos, maíz y trigo. La tabla para este caso muestra la misma utilidad total en los vértices(0,480) (0,0) 0 y (320,160). Esto significa que la línea de utilidad en movimiento abandona la región sombreada por el lado determinado por esos vértices (adyacentes) , (0,480) 19.200 así todo punto en ese lado da una utilidad máxima. Todavía es válido, sin embargo, que la utilidad máxima ocurre en un vértice. (320,160) 19.200 (400,0)

16.000

El teorema 1 dice que la búsqueda de las soluciones a un problema de programación lineal se puede restringir al examen del conjunto de vértices del conjunto factible S relacionado con el

problema. Como un conjunto factible S tiene un número finito de vértices, el teorema sugiere que las soluciones a un problema de programación lineal se puedan hallar inspeccionando los valores de la función objetivo P en los vértices. Aunque el teorema 1 arroja un poco de luz acerca de la naturaleza de la solución de un problema de programación lineal, no indica cuándo tiene solución. El siguiente teorema establece ciertas condiciones que garantizan la existencia de la solución de un problema de programación lineal. Teorema 2: Existencia de una solución

Supóngase un problema de programación lineal con un conjunto factible S y una función objetivo P = ax + by. 1. Si S está acotado, entonces P tiene u valor máximo y n valor mínimo en S. 2. Si S no está acotado y tanto a como b son no negativos, entonces P tiene un valor mínimo en S, si las restricciones que definen a S incluyen las desigualdades x ³ 0 e y ³ 0. 3. Si S es el conjunto vacío, entonces el problema de programación lineal no tiene solución; es decir, P no tiene un valor máximo ni uno mínimo

El método utilizado para resolver el problema del granjero López recibe el nombre de método de las esquinas. Este método sigue un procedimiento muy sencillo para resolver los problemas de programación lineal basado en el teorema1. Método de 1. Se grafica el conjunto factible. las 2. Se encuentran las coordenadas de todas las esquinas (vértices) del esquinas 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.

Aplicaremos los conceptos antes emitidos al siguiente problema de nutrición, basado en los requerimientos, en el cual hay que minimizar la función objetivo

2.2 Teoría Método Simplex

EL METODO SIMPLEX PARA SOLUCIÓN DE PROBLEMAS DE PROGRAMACIÓN LINEAL 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. El método del simplex fue creado en 1947 por el matemático George Dantzig .

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. El álgebra matricial y el proceso de eliminación de Gauss-Jordan para resolver un sistema de ecuaciones lineales constituyen la base del método simplex. Con miras a conocer la metodología que se aplica en el Método SIMPLEX, vamos a resolver el siguiente problema: Maximizar Z= f(x,y)= 3x + 2y sujeto a: 2x + y 18 2x + 3y 42 3x + y 24 x0 , y 0 Se consideran las siguientes fases: 1. Convertir las desigualdades en igualdades Se introduce una variable de holgura por cada una de las restricciones, para convertirlas en igualdades, resultando el sistema de ecuaciones lineales: 2x + y + h = 18 2x + 3y + s = 42 3x +y + d = 24 2. Igualar la función objetivo a cero - 3x - 2y + Z = 0 3. Escribir la tabla inicial simplex 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 I . Iteración nº 1 Base Variable de decisión Variable de holgura Valores solución xyhsd h 2 1 1 0 0 18 s 2 3 0 1 0 42 d 3 1 0 0 1 24 Z −3 −2 0 0 0 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 x de coeficiente - 3. 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 (En color azulado).

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] Si hubiese algún elemento menor o igual que cero no se hace dicho cociente. En el caso de que todos los elementos fuesen menores o iguales a cero, entonces tendríamos una solución no acotada y no se puede seguir. El término de la columna pivote que en la división anterior dé lugar al menor cociente positivo, el 3, ya 8 es el menor, indica la fila de la variable de holgura que sale de la base, d. Esta fila se llama fila pivote (En color azulado). Si al calcular los cocientes, dos o más son iguales, indica que cualquiera de las variables correspondientes pueden salir de la base. En la intersección de la fila pivote y columna pivote tenemos el elemento pivote operacional, 3. 5. Encontrar los coeficientes de la nueva tabla. Los nuevos coeficientes de x se obtienen dividiendo todos los coeficientes de la fila d por el pivote operacional, 3, que es el que hay que convertir en 1. A continuación mediante la reducción gaussiana hacemos ceros los restantes términos de su columna, con lo que obtenemos los nuevos coeficientes de las otras filas incluyendo los de la función objetivo Z. También se puede hacer utilizando el siguiente esquema: Fila del pivote: Nueva 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 2 3 0 1 0 42 -----Coeficiente 2 2 2 2 2 2 xxxxxx Nueva fila pivote 1 1/3 0 0 1/3 8 ====== Nueva fila de s 0 7/3 0 1 −2/3 26 Tabla II . Iteración nº 2 Base Variable de decisión Variable de holgura Valores solución xyhsd

h 0 1/3 1 0 −2/3 2 s 0 7/3 0 1 −2/3 26 x 1 1/3 0 0 1/3 8 Z 0 −1 0 0 1 24 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: La variable que entra en la base es y, 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: 2:1/3 [=6] , 26:7/3 [=78/7] y 8:1/3 [=8] y como el menor cociente positivo es 6, tenemos que la variable de holgura que sale es h. El elemento pivote, que ahora hay que hacer 1, es 1/3. Operando de forma análoga a la anterior obtenemos la tabla: Tabla III . Iteración nº 3 Base Variable de decisión Variable de holgura Valores solución xyhsd 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: 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. Obtenemos la tabla: Tabla IV . Final del proceso Base Variable de decisión Variable de holgura Valores solución xyhsd 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 Como 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) • •

Si en el problema de maximizar apareciesen como restricciones inecuaciones de la forma: ax + by c; multiplicándolas por - 1 se transforman en inecuaciones de la forma ax - by - c y estamos en el caso anterior 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 finalizan 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). Si calculas el valor de la función objetivo en el vértice E(0,14), su valor no supera el valor 33.

2.3 Forma Tabular Método Simplex

EL METODO SIMPLEX El método del simplex fue creado en 1947 por el matemático George Dantzig . 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. El álgebra matricial y el proceso de eliminación de Gauss-Jordan para resolver un sistema de ecuaciones lineales constituyen la base del 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. Con miras a conocer la metodología que se aplica en el Método SIMPLEX, vamos a resolver el siguiente problema: Maximizar Z= f(x,y)= 3x + 2y sujeto a: 2x + y 18 2x + 3y 42 3x + y 24 x0,y 0 Se consideran las siguientes fases: 1. Convertir las desigualdades en igualdades Se introduce una variable de holgura por cada una de las restricciones, para convertirlas en igualdades, resultando el sistema de ecuaciones lineales: 2x + y + h = 18 2x + 3y + s = 42

3x +y + d = 24 2. Igualar la función objetivo a cero - 3x - 2y + Z = 0 3. Escribir la tabla inicial simplex 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 I . Iteración nº 1 . Base Variable de decisión Variable de holgura Valores solución x

y

h

s

d

h 2 1 1 0 0 18 s 2 3 0 1 0 42 d 3 1 0 0 1 24 Z −3 −2 0 0 0 0 4. Encontrar la variable de decisión que entra en la base y la variable de holgura que sale de la base A. 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 x de coeficiente - 3. 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 (En color azulado). 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] Si hubiese algún elemento menor o igual que cero no se hace dicho cociente. En el caso de que todos los elementos fuesen menores o iguales a cero, entonces tendríamos una solución no acotada y no se puede seguir. El término de la columna pivote que en la división anterior dé lugar al menor cociente positivo, el 3, ya 8 es el menor, indica la fila de la variable de holgura que sale de la base, d. Esta fila se llama fila pivote (En color azulado). Si al calcular los cocientes, dos o más son iguales, indica que cualquiera de las variables correspondientes pueden salir de la base. C. En la intersección de la fila pivote y columna pivote tenemos el elemento pivote operacional, 3. 5. Encontrar los coeficientes de la nueva tabla. Los nuevos coeficientes de x se obtienen dividiendo todos los coeficientes de la fila d por el pivote operacional, 3, que es el que hay que convertir en 1.

A continuación mediante la reducción gaussiana hacemos ceros los restantes términos de su columna, con lo que obtenemos los nuevos coeficientes de las otras filas incluyendo los de la función objetivo Z. También se puede hacer utilizando el siguiente esquema: Fila del pivote: Nueva 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 2 3 0 1 0 42 -

-

-

-

-

-

x

x

x

x

=

=

=

Coeficiente 2 2 2 2 2 2 x

x

Nueva fila pivote 1 1/3 0 0 1/3 8 =

=

=

Nueva fila de s 0 7/3 0 1 −2/3 26 Tabla II . Iteración nº 2 Base Variable de decisión Variable de holgura Valores solución x

y

h

s

d

h 0 1/3 1 0 −2/3 2 s 0 7/3 0 1 −2/3 26 x 1 1/3 0 0 1/3 8 Z 0 −1 0 0 1 24 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. La variable que entra en la base es y, por ser la variable que corresponde al coeficiente −1 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: 2:1/3 [=6] , 26:7/3 [=78/7] y 8:1/3 [=8]

y como el menor cociente positivo es 6, tenemos que la variable de holgura que sale es h. C. El elemento pivote, que ahora hay que hacer 1, es 1/3. Operando de forma análoga a la anterior obtenemos la tabla: 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. La variable que entra en la base es d, por ser la variable que corresponde al coeficiente −1 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: 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. C. El elemento pivote, que ahora hay que hacer 1, es 4. Obtenemos la tabla: Tabla IV . Final del proceso Base Variable de decisión Variable de holgura Valores solución 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 Como 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)

2.4 El Método de Dos Fases

Éste método difiere del Simplex en que primero hay que resolver un problema auxiliar que trata de minimizar la suma de las variables artificiales. Una vez resuelto este primer problema y reorganizar la tabla final, pasamos a la segunda fase, que consiste en realizar el método Simplex normal. FASE 1 En esta primera fase, se realiza todo de igual manera que en el método Simplex normal, excepto la construcción de la primera tabla, la condición de parada y la preparación de la tabla que pasará a la fase 2. - Construcción de la primera tabla: Se hace de la misma forma que la tabla inicial del método Simplex, pero con algunas diferencias. La fila de la función objetivo cambia para la primera fase, ya que cambia la función objetivo, por lo tanto aparecerán todos los términos a cero excepto aquellos que sean variables artificiales, que tendrán valor “-1″ debido a que se está minimizando la suma de dichas variables (recuerde que minimizar F es igual que maximizar F·(−1)). La otra diferencia para la primera tabla radica en la forma de calcular la fila Z. Ahora tendremos que hacer el cálculo de la siguiente forma: Se sumarán los productos Cb·Pj para todas las filas y al resultado se le restará el valor que aparezca (según la columna que se éste haciendo) en la fila de la función objetivo. Tabla C0 C1 C2 … Cn-k … Cn Base Cb P0 P1 P2 … Pn-k … Pn Pi1 Ci1 bi1 a11 a12 … a1n-k … a1n Pi2 Ci2 bi2 a21 a22 … a2n-k … a2n … … … … … … … … … Pim Cim bim am1 am2 … amn-k … amn Z Z0 Z1 Z2 … Z2 … Zn Siendo Zj = Σ(Cb·Pj) - Cj y los Cj = 0 para todo j comprendido entre 0 y n-k (variables de decisión, holgura y exceso), y Cj = −1 para todo j comprendido entre n-k y n (variables artificiales). - Condición de parada: La condición de parada es la misma que en el método Simplex normal. La diferencia estriba en que pueden ocurrir dos casos cuando se produce la parada: la función toma un valor 0, que significa que el problema original tiene solución, o que tome un valor distinto, indicando que nuestro modelo no tiene solución. - Eliminar Columna de problema original tiene Deberemos eliminar las objetivo por la original, y 1.

variables artificiales: Si hemos llegado a la conclusión de que el solución, debemos preparar nuestra tabla para la segunda fase. columnas de las variables artificiales, modificar la fila de la función calcular la fila Z de la misma forma que en la primera tabla de la fase

FASE 1. Formule un nuevo problema reemplazando la función objetivo por la suma de las variables artificiales. La nueva función objetivo se minimiza sujeta a las restricciones del problema original. Si el problema tiene un espacio factible el valor mínimo de la función objetivo óptima será cero, lo cual indica que todas las variables artificiales son cero. En este momento pasamos a la fase 2. •

Si el valor mínimo de la función objetivo óptima es mayor que cero, el problema no tiene solución y termina anotándose que no existen soluciones factibles

FASE 2. Utilice la solución óptima de la fase 1 como solución de inicio para el problema original. En este caso, la función objetivo original se expresa en términos de las variables no básicas utilizando las eliminaciones usuales Gauss-Jordan.

2.5 El Metodo Simplex Revisado

METODO SIMPLEX REVISADO (FORMA MATRICIAL) El método del simplex expuesto, que se denomina básico, se desarrolla a través de cada iteración transformando completamente una sucesión de tableros al ir cambiando de base. Teniendo en cuenta que muchos de estos cálculos no hacen falta para la determinación de cada nueva base y basados en el algoritmo del simples revisado, el cual es realmente un esquema de ordenación de los cálculos que se llevan a cabo con el método del simplex básico, prescindiendo y evitando aquellos que sean innecesarios en relación con la solución final del problema. El inconveniente de este método es que por la forma en que se lleva a cabo induce más fácilmente a errores en los cálculos a mano que el simplex básico, aspecto que evidentemente no ocurre si está implementado en computador. En el método del simplex revisado partimos como en el básico, del problema lineal en forma estandar: MAX Z = c x Sujeta a: A x = b x

0

Dada la base factible B, hay que evaluar si alguna variable no básica Xj puede entrar a la base para mejorar la función objetivo; para ello utilizamos el costo reducido: Zj – Cj =CB B aj – Cj El vector CB está formado por los coeficientes de la función objetivo de las variables y B aj representa el vector aj en términos de la actual base. El método del simplex revisado no cambia los vectores yj en cada tabla como el básico, sino que utiliza siempre el vector aj inicial con los multiplicadores del simples: S= CB B que si cambian con la base. Es claro que se alcanza una solución óptima cuando: S aJ-CJ

0 para todo j

La selección de la variable de salida se hace con el mismo criterio que en el simplex básico: si Xk es la variable seleccionada para entrar a la base, la columna pivote es B ak y los valores actuales de las variables básicas B b. Se aplica la regla de la mínima razón a estos elementos, que dando así determinada la variable Xr que sale de la base. Finalmente, la nueva matriz básica se obtiene sustituyendo la columna ar por la ak en la anterior matriz B. Ejemplo: MAX Z = 2 X1 + X2 + 3 X3 Con sus restricciones:

Resolver el anterior problema de Programación Lineal aplicando el Método Simplex Revisado. Solución analítica: Agregamos variables de holgura X4 y X5 a cada restricción con coeficientes cero (0) en la función objetivo para tener el problema en la forma estandar; la base inicial B y el vector CB son:

Z1 – C1 = – 2; Z2 – C2 = – 1; Z3 – C3 = – 3 El valor que más se aleja de cero (0) por la izquierda es Z3 – C3: X3 es la variable que entra a la base; la razón mínima es 8/2, luego S2 es la variable que sale de la base. Las variables básicas son ahora (S1, X3) con matriz básica (sustituyendo a5 por a3):

CB = (0 3); S = (0, 3/2) y los indicadores de las variables no básicas son: Z1 – C1 = 3/2 – 2 = – 1/2; Z2 – C2 = 9/2 – 1 = 7/2; Z3 – C3 = 3/2 – 0 = 3/2 y X1 es la variable que entra a la base; para determinar la variable de salida calculamos: B b = (3,4) y B a1 = (5/2,1/2); la razón mínima es 6/5, luego X4 es la variable que sale de la base. Las variables básicas son ahora (X1, X3) y la nueva matriz básica (reemplazando en la anterior a4 por a1) es:

CB = (2 3); S = (1/5, 7/5) y los indicadores de las variables no básicas son: Z2 – C2 = 23/5 – 1 = 18/5; Z4 – C4 = 1/5 – 0 = 1/5; Z5 – C5 = 7/5 – 0 = 7/5 y al ser todos positivos se ha alcanzado la optimalidad. La solución óptima es: XB = ( X1, X3 ) = B b = ( 1.2, 3.4) Solución Optima Unica: X*1= 1,2; X*2= 0; X*3= 3,4;S*1 = 0; S*2 = 0; Z* = 12,6.

2.6 Casos Especiales Método Simplex

El 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 o cuando esta es óptima. Este método, permite analizar cada variable del problema planteado, sus variaciones, para determinar cual es la decisión más acertada a tomar en cualquiera que

sea el área de la empresa sobre la cual se presente la incertidumbre. Existen casos especiales de solución de problemas por medio del simplex, tales como: • Soluciones Múltiples • Solución Degenerada • Solución Infactible • Sin Solución A continuación se presenta un análisis detallado de cada caso especial de solución con un ejemplo práctico. CASO DE SOLUCIONES MÚLTIPLES Cuando la función objetivo es paralela a una restricción que se satisface en el sentido de la igualdad a través de la solución óptima, la función objetivo tomará el mismo valor óptimo en más de un punto de la solución. Por esta razón reciben el nombre de Múltiples alternativas óptimas. CASO DE SOLUCIÓN DEGENERADA La degeneración ocurre cuando en alguna iteración del método simplex existe un empate en la selección de la variable que sale. Este empate se rompe arbitrariamente. En este caso decimos que la nueva solución es degenerada. Sin embargo, cuando suceda esto una o más veces de las variables básicas, será necesariamente igual a cero en la siguiente iteración. En el método simplex, la presencia de una variable básica igual a cero, no requiere ninguna acción especial; en todo caso, es necesario no descuidar las condiciones de degeneración. En términos geométricos, la degeneración ocurre cuando un vértice está definido por demasiadas restricciones. CASO DE SOLUCIÓN INFACTIBLE En un modelo de Programación Lineal, cuando las restricciones no se pueden satisfacer en forma simultánea, se dice que este no tiene solución factible. Esta situación nunca puede ocurrir si todas las restricciones son del tipo MENOR O IGUAL ( ), esto, suponiendo valores positivos en el segundo miembro, ya que las variables de holgura producen siempre una solución factible. Sin embargo, cuando empleamos los otros tipos de restricciones, recurrimos al uso de variables artificiales, que por su mismo diseño no ofrecen una solución factible al modelo original. Aunque se hacen provisiones (a través del uso de penalizaciones) para hacer que estas variables artificiales sean cero en el nivel óptimo, esto sólo puede ocurrir si el modelo tiene una espacio factible. Si no lo tiene, cuando menos una variable artificial será positiva en la iteración óptima. Desde el punto de vista práctico, un espacio infactible, apunta a la posibilidad de que el modelo no se haya formulado correctamente, en virtud de que las restricciones estén en conflicto. También es posible que las restricciones no estén destinadas a cumplirse en forma simultánea. En este caso, quizás se necesite una estructura del modelo totalmente diferente que no admita todas las restricciones al mismo tiempo. CASO DE NO SOLUCIÓN En algunos modelos de Programación Lineal, los valores de las variables, se pueden aumentar en forma indefinida sin violar ninguna de las restricciones, lo que significa que el espacio es sin solución cuando menos en una dirección. Como resultado, el valor de la función objetivo puede crecer (Maximización) o decrecer (Minimización) en forma indefinida. En este caso, decimos que el espacio en el cual se espera sea resuelto el modelo, y el valor óptimo de la función objetivo no tiene solución. La falta de explicación de un modelo puede señalar solo una cosa, que este se encuentra mal construido. Evidentemente resulta irracional hacer que un modelo produzca una ganancia infinita. Las irregularidades más probables en este modelo son: 1. No se toman en cuenta una o más restricciones redundantes 2. No se determinan adecuadamente los parámetros (constantes) de alguna restricción.

Unidad 3 Teoría de la dualidad y Análisis de sensibilidad

Todo problema de Programación Lineal tiene asociado un segundo problema, conocido como su problema Dual. Ambos están relacionados estrechamente, hasta el punto de que el modelo de uno puede obtenerse a partir del modelo del otro y la solución óptima del modelo del primero proporciona información completa acerca de la solución óptima del segundo. Una de las ventajas de la existencia del problema dual es la posibilidad de reducir el esfuerzo computacional al resolver ciertos modelos de Programación Lineal. Pero más importante aún es la relación que existe entre la dualidad y el análisis de sensibilidad, tema del próximo capitulo, el cual estudia el efecto que las variaciones en los parámetros de un modelo tienen en la solución óptima de este. Además, los valores óptimos de las variables del modelo dual suministran información económica muy importante acerca del valor implícito de los recursos que se utilizan en el problema que se esta resolviendo. El matemático norteamericano John Von Neumann fue el primero en destacar la existencia de la dualidad en la programación lineal y a partir de allí el concepto se ha usado en una gran variedad de áreas teóricas y prácticas de la misma. Para comprender el concepto de dualidad analicemos los dos casos siguientes. CONCEPTUALIZACION DE LA DUALIDAD - CASO 1 Una compañía produce dos tipos de artículo; la unidad del tipo 1 se vende a $106 y la del tipo 2 a $144. Para el presente mes la empresa cuenta con 2000 minutos de mano de obra en el departamento de ensamble, 1800 en el departamento de revisión y con 1000 en el departamento de empaque. El número de minutos requeridos en cada departamento para la fabricación de una unidad de cada uno de los artículos se da en la siguiente tabla: Tipo de producto Operación Ensamble Revision Empaque Tipo 1 3 2 1 Tipo 2 2 3 2 El pago por minuto es de $10 a los trabajadores del departamento de ensamble, $8 a los de revisión y de $20 a los del departamento de empaque. El administrador de la empresa desea determinar cuál es el programa de producción que maximiza la utilidad total en el mes. Construcción del modelo Definamos a Xi como el número de artículos de tipo i que se deben producir mensualmente. Para plantear la función del objetivo calculemos primero la utilidad unitaria de cada tipo de artículo, así: Tipo de producto

Tipo 1

Tipo 2

Precio de venta 106 144 - Costo de produccion 66 84 Costo de ensamble 3(10)=30 2(10)=20 Costo de revisión 2(8)=16 3(8)=24 Costo de empaque 1(20)=20 2(20) 66

84

Utilidad Unitaria $40 $60 de manera que el modelo de programación lineal para este problema es: Maximizar Utilidad = 40X1 + 60X2 Sujeto a : 3X1 +2X2 < 2000 (Minuto de ensamble)

con

2X1

+3X2

<

1800

(Minuto de revision)

1X1

+2X2

<

1000

(Minutos de empaque)

X1,X2



0

Si utilizamos el winqsb para resolver el modelo obtenemos el siguiente reporte combinado lo cual indica que el programa óptimo consiste en producir mensualmente 500 unidades del producto tipo 1 y 250 del producto tipo 2, obteniendo una ganancia de $35 000 mensuales. Observamos que hay 50 minutos de holgura en la operación de revisión (slack = 50), mientras que no hay sobrante en los minutos disponibles para las otras operaciones, ya que las variables de holgura de las restricciones correspondientes valen cero; por lo cual concluimos que en este programa de producción se consumen todos los minutos de ensamble y en empaque que tiene disponibles la empresa. Precisamente el agotamiento de los minutos disponibles en esas operaciones es el que impide que las variables X1 y X2 puedan tomar un valor superior, para maximizar aún mas el valor de la función del objetivo. Efectuando el balance entre los ingresos por ventas y los costos de producción, podemos verificar que la utilidad obtenida es efectivamente de $35 000: Ingresos por ventas 500(106) + 250(144) = 89.000 - Costos de produccion 2000(10) + 1750(8) +1000(20) =54.000 = Utilidad

=35.000

Como se acaba de decir no se pueden fabricar más artículos ya que se agotaron los recursos, pero aparece entonces la inquietud de que si fuera posible disponer de minutos adicionales en alguno de los departamentos del proceso, se pudieran fabricar más artículos aumentando así las utilidades del periodo.

Con el fin de conocer cómo varía la utilidad (y la solución) al aumentar la disponibilidad de cada recurso, vamos a efectuar cálculos para tres situaciones diferentes. Primera, cuando consideramos que se aumenta en un minuto la capacidad de ensamble mientras los minutos de revisión y de empaque permanecen constantes, segunda cuando aumentamos en un minuto la capacidad de empaque, pero mantenemos invariable la capacidad de revisión y de ensamble y finalmente cuando aumentamos en uno los minutos de revisión, dejando invariable la cantidad de minutos de ensamble y de empaque. Aumento en la capacidad de ensamble Al aumentar en un minuto la capacidad de ensamble, el modelo queda: Maximizar Utilidad = 40X1 + 60X2 Sujeto a : 3X1 +2X2 < 2001 2X1

+3X2

<

1800

1X1

+2X2

<

1000

El reporte combinado del winqsb es La cual corresponde a una utilidad de $35 005 pesos, que es superior en $5 a la obtenida anteriormente. El aumento que tiene la función objetivo (acá se llama utilidad) cuando se incrementa en una unidad un determinado recurso, es lo que se conoce en economía como la utilidad marginal del recurso.Entonces la utilidad marginal de los minutos adicionales de ensamble es de 5 ($/minuto). Notamos que se aumentó la producción de los artículos tipo 1 en media unidad ( X1 = 550.50), mientras que se disminuyó la de los artículos tipo 2 en un cuarto de unidad. ( X2 = 249.75). Además, el sobrante de minutos en revisión es ahora de 49.75 o sea que se rebajó en un cuarto de minuto. De nuevo se están utilizando totalmente los minutos disponibles en ensamble y en empaque. Estos nuevos valores de las variables básicas los aprenderemos a calcular en forma rápida al estudiar más adelante el tema de análisis de sensibilidad. Calculemos ahora las utilidades marginales de los minutos de terminado y de revisión. Aumento en la capacidad de terminado Si los minutos disponibles en terminado se aumentan en uno, el modelo es Maximizar Utilidad = 40X1 + 60X2 Sujeto a : 3X1 +2X2 < 2000 2X1

+3X2

<

1800

1X1

+2X2

<

1001

Cuyo reporte combinado del winqsb es Ahora la utilidad es de $30025, que resulta ser superior en $25 a la obtenida con la cantidad inicial de recursos. Así pues la utilidad marginal de los minutos de empaque es de 25 ($/minuto). Observamos que se disminuyó en medía unidad el número de artículos de tipo 1 ( X1 = 299.50) mientras que se aumentó en tres cuartos el número de unidades de tipo 2 ( X2 =

250.75) y el sobrante en la operación de revisión se rebajó en 1.25 minutos. De nuevo se están consumiendo todos los minutos disponibles en ensamble y en empaque. Aumento en la capacidad de revisión Si los minutos disponibles en revisión se aumentan en uno, el modelo es Maximizar Utilidad = 40X1 + 60X2 3X1

+2X2

<

2000

2X1

+3X2

<

1801

1X1

+2X2

<

1000

Cuyo reporte combinado del winqsb es Observamos que la utilidad conserva el valor de $35 000, así pues la utilidad marginal de los minutos de revisión es de $0 ($/minuto). Notamos también que las cantidades producidas de los artículos conservan su valor (X1= 500, X2 = 250), utilizando la totalidad de minutos disponibles en ensamble y en empaque, pero ahora el sobrante de minutos en la operación de revisión aumentó de 50 a 51. Los resultados obtenidos en este ultimo cambio son de esperarse, puesto que en la solución óptima del modelo inicial tenemos que hay un sobrante de 50 minutos de revisión, y si aumentamos en uno la disponibilidad, es lógico que lo único que ocurra es que el sobrante de ese recurso se aumente en uno, sin producir cambios en el programa óptimo de producción y por consiguiente tampoco en la utilidad. Por ello la utilidad marginal es cero. Tal como lo hicimos con el modelo inicial, verifiquemos mediante un balance de ingresos y costos que las utilidades totales y marginales están correctamente calculadas en cada caso. Cuando hay aumento de un minuto en ensamble Ingreso por ventas (500.5)(106) + (249.75)(144) = 89 017 - costo de produccion (2001)(10) + (1750.25)(8) + (1000)(20) = 54 012 =utilidad 35 005 -utilidad anterior 35 000 =utilidad marginal $5* Cuando hay aumento de un minuto en terminado Ingreso por ventas (499.5)(106) + (250.75)(144) = 89 055 - costo de produccion (2000)(10) + (1751.25)(8) + (1001)(20) = 54 030 =utilidad 35 025 -utilidad anterior 35 000 =utilidad marginal $25* Cuando hay aumento de un minuto en revisión

Ingreso por ventas (500)(106) + (250)(144) = 89 000 - costo de produccion (2000)(10) + (1750)(8) + (1000)(20) = 54 000 =utilidad 35 000 -utilidad anterior 35 000 =utilidad marginal $0* En el calculo de los costos se destacan en negrilla (2001)(10), para los minutos de ensamble, (1001)(20), para los minutos de terminado, y (1750)(8), para minutos de revisión; para llamar la atención sobre el hecho de que se están- valorando todos las 2001 minutos utilizados en ensamble a $10, lo cual supone que el minuto adicional “valió” los mismos $10 que costaban los 2000 utilizados inicialmente. Similarmente sucede con los 1001 minutos de empaque, valorados a $20, con lo cual se toma que el minuto adicional también se paga a $20, y con los 1750 minutos de revisión valorados a $8. Pero veamos qué pasa por, ejemplo, si el precio que hay que pagar por un minuto extra en ensamble es de $12 ($$2 de recargo sobre el precio normal de $10). El costo de producción se incrementaría en $2, con lo cual la utilidad marginal neta de ese minuto extra de ensamble sería apenas de $3. Algo similar sucede cuando debemos pagar dinero extra por el minuto adicional en empaque. Si por ejemplo pagamos $28 (un 40% de recargo sobre $20) por un minuto extra, los costos se aumentan en $8 y la utilidad marginal neta se rebaja a $17 hora. Naturalmente que si podemos adquirir los minutos extras de ensamble al mismo precio de los iniciales, obtendremos una utilidad marginal adicional de $5, pero si debemos pagar algún recargo por ellos, la utilidad adicional se verá reducida en la misma cantidad. Podemos concluir fácilmente que el máximo recargo que estaremos dispuestos a pagar por un minuto adicional en ensamble es el equivalente a la utilidad marginal de ese minuto extra, o sea los $5. Nótese que si el precio del minuto extra fuera por ejemplo $16, estaremos perdiendo $1 por cada minuto adicional adquirido. Para el tercer recurso, minutos del departamento de empaque, podemos efectuar una discusión similar, así: Si conseguimos los minutos extras al precio original, la utilidad marginal es de $25, pero si pagamos un recargo disminuye la utilidad, por lo cual deducimos que el máximo recargo que podemos pagar es igual a los $25 de la utilidad marginal de ese recurso. O sea que el máximo precio que estaremos dispuestos a pagar (obteniendo utilidad marginal neta de $0) es $45. Al pagar menos de $45 tendremos utilidad marginal y al pagar más obtendremos una perdida marginal. Para el departamento de revisión, en el cual tenemos una capacidad no utilizada de 50 minutos, es obvio que no desearíamos ampliar la capacidad y por el contrario estaríamos interesados en vender este recurso sobrante. Su mínimo precio de venta sería $8, es decir no buscaríamos utilidad en la venta de estas unidades, pues basta con recibir el precio que pagamos por ellas para recuperar su costo Podemos concluir que el cálculo de la utilidad marginal de los recursos es de gran importancia para decidir la negociación de unidades adicionales de esos recursos cuando ellos están agotados (utilizados el máximo) en un programa óptimo de producción. Pero debemos saber que la utilidad marginal de un “recurso agotado” no se mantiene constante al incrementar la disponibilidad de este, sino que disminuye a partir de cierto valor, relacionado con el nivel de disponibilidad que conduzca a que el recurso ya empiece a sobrar por ser otro recurso diferente el que se esté utilizado al máximo. Precisamente, el “recurso sobrante” de minutos de revisión puede disminuirse hasta un valor tal que ya empiece a escasear (Para nuestro problema este valor es de 1750 que es el uso real) y a partir de ese valor el recurso deberá tener utilidad marginal positiva, pues estaría agotado y ya seria alguno de los otros recursos el que tendría sobrante. El fenómeno mencionado se conoce en Economía como el

concepto de los rendimientos decrecientes, tema que estudiaremos en detalle en el capitulo dedicado al análisis de la sensibilidad, también llamado análisis de las soluciones post óptimas. OTRO ENFOQUE DEL MISMO PROBLEMA Reflexionemos un poco sobre la situación hipotética de “vender” los minutos disponibles en los tres departamentos, en lugar de utilizarlos para producir unidades de los productos. Nuestra interés se centrará en la determinación del precio al cual debemos vender un minuto de cada operación para obtener la misma ganancia que obtenemos en el proceso productivo, o más exactamente estaremos interesados en hallar la utilidad unitaria que debo fijar a cada recurso, para ganarme igual dinero que utilizándolos en el proceso de producción.Naturalmente que debemos aspirar a unas utilidades razonables para que el precio del recurso sea competitivo en el mercado, o sea que debemos determinar el mínimo valor de la utilidad al vender o arrendar los recursos disponibles. Construyamos un modelo de Programación lineal para este problema. Sean Yi = utilidad unitaria que debo fijar en el precio de venta del recurso i Como estamos dispuestos a vender toda la cantidad disponible de los recursos (minutos de ensamble, de revisión y de empaque), el objetivo será minimizar la siguiente función Utilidad = 2000Y1 + 1800Y2 + 1000Y3 En el proceso productivo se utilizan 3 minutos de ensamble, 2 de revisión y uno de empaque, para fabricar una unidad del producto tipo 1,que da utilidad de $40, por lo cual es lógico pensar que la venta combinada de esas cantidades de los recursos debe arrojar al menos igual utilidad. La consideración anterior da lugar a la siguiente restricción en el modelo: 3Y1 + 2Y2 + 1Y3 = 40 ($) Utilidad unitaria del artículo tipo uno. Haciendo una reflexión similar para las unidades de tipo 2, notemos que la venta de 2 minutos de ensamble, mas 3 de revisión, mas 2 de empaque deben aportar una utilidad mínima de $60, que es la que se obtiene actualmente fabricando con esos recursos una unidad del artículo 2. La restricción derivada de este análisis es: 2Y1 + 3Y2 + 2Y3 = 60 ($) Utilidad unitaria del artículo tipo dos. Si a todo lo anterior le agregamos el detalle de que los valores de las variables Y1, Y2, Y3 deben ser mayores o iguales que cero (la mínima utilidad neta puede ser cero), podemos plantear el siguiente modelo de programación lineal, para el problema en estudio: Minimizar Utilidad = 2000Y1 + 1800Y2 + 1000Y3 Sujeto a : 3Y1 + 2Y2 + 1Y3 ≥ 2000 $/unidad del P1 2Y1

3Y2

con

Y1,Y2, Y3

+ 2Y3



1800



0

$/unidad del P2

Al resolver este modelo utilizando el winqsb, obtenemos el siguiente reporte combinado: Hemos obtenido que la utilidad mínima que debe obtenerse al vender un minuto de ensamble es de $5, al vender un minuto de revisión debe ser de $0, y al vender un minuto de empaque debe ser de $25, para así obtener una utilidad de $35 000. El valor de la utilidad mínima no

debe asombrarnos, ya que el planteamiento del problema lo sugería, pero sí son novedad los valores óptimos de las variables de este nuevo modelo, puesto que coinciden con los valores de las utilidades marginales de los recursos del problema de mezcla de producción, analizado en primera instancia. El administrador de la empresa sabe ahora que si otro empresario desea comprarle sus recursos, lo mínimo que debe cobrarle es $15 por cada minuto de ensamble (= 10 + 5; suma de lo que debe pagar a sus operarios y lo que debe obtener de utilidad), $45 por cada minuto de empaque (= 20 + 25). En cambio, por cada minuto de revisión solo debe cobrar los mismos $8 (= 8 + 0; suma de lo que debe pagar a sus operarios y lo que debe obtener de utilidad). Pero recordemos que estos precios solo son válidos para cierto intervalo, que conoceremos en el próximo capitulo, por fuera del cual cambia la mezcla óptima de productos y también el valor de las utilidades marginales. (Una vez obtenidos estos nuevos valores, tanto de las variables básicas, como de la utilidades marginales, se puede hacer un balance de ingresos y costos similar al que hicimos para el problema presentado como ejemplo. Para la situación actual, si los precios en el mercado son inferiores a $15, a $45, o a $8, no es conveniente vender los recursos, pero teóricamente cuando son superiores, resultaría mas rentable venderlos a otro que utilizarlos en el proceso productivo. EL MODELO DUAL Consideremos conjuntamente los modelos correspondientes a los dos enfoques del problema que estamos analizando. El primero busca determinar cuántas unidades producir de cada tipo de artículo para maximizar la ganancia al utilizar unos recursos: Maximizar Utilidad = 40X1 + 60X2 Sujeto a : 3X1 +2X2 < 2000 2X1

+3X2

<

1800

1X1

+2X2

<

1000

X1,X2



0

con

El segundo pretende hallar la ganancia mínima que debo fijar por unidad de cada recurso, para obtener la mínima ganancia total que sea aceptable en lugar de producir artículos con los recursos. Minimizar Utilidad = 2000Y1 + 1800Y2 + 1000Y3 Sujeto a : 3Y1 + 2Y2 + 1Y3 ≥ 40 $/unidad del P1 2Y1

3Y2

con

Y1,Y2, Y3

+ 2Y3



60



0

$/unidad del P2

Hemos observado que ambos problemas tienen soluciones óptimas que producen igual valor de la función objetivo. Además mientras que uno enfoca el problema desde el punto de vista de los artículos (variables de decisión Xi), el otro lo analiza desde el punto de vista de los recursos (variables de decisión Y¡). Además la solución óptima del segundo coincide con las utilidades marginales de los recursos calculadas en el punto óptimo del primero. El primer enfoque da lugar al llamado modelo primo, mientras el segundo origina el modelo conocido como modelo dual. Entre estos modelos existen múltiples relaciones que nos permiten, por ejemplo, plantear uno de ellos a partir del otro u obtener la solución óptima de

uno conociendo la solución optima del otro. Pero como se mencionó antes, quizás lo más importante es el significado económico de las variables del problema dual, cuyos valores óptimos representan las utilidades marginales de los recursos del problema primal. Relaciones entre las modelos PRIMO y DUAL Observando la estructura de ambos modelos podemos citar las siguientes relaciones entre ellos. 1. Los coeficientes objetivo de uno son los coeficientes recurso del otro. 2. Los coeficientes recurso de uno son los coeficientes objetivo del otro. 3. La matriz de coeficientes tecnológicos de uno es la transpuesta de la matriz de coeficientes tecnológicos del otro. 4. Ambos problemas están en formato canónico, como lo comprueban más en detalle las siguientes características 4.1 El objetivo del primo es maximizar en cambio el objetivo del dual es minimizar. 4.2 Las restricciones del Primo son del tipo = , mientras que las del dual son del tipo =. 4.3 Las variables de ambos problemas están restringidas a ser mayores o iguales que cero CONCEPTUALIZACION DE LA DUALIDAD - CASO 2 Cierta dietista necesita preparar una comida que contenga determinados nutrientes, al menos en las cantidades que se indican en la siguiente tabla. Dispone de tres ingredientes cuyos costos y contenidos de cada nutriente (unidades por gramo de ingrediente) se dan en la misma tabla.

3.1 Formulación Problema Dual

Hemos visto como la programación lineal puede ser usada para resolver una extensa variedad de problemas propios de los negocios, ya sea para maximizar utilidades o minimizar costos. Las variables de decisión en tales problemas fueron, por ejemplo, el número de productos a producir, la cantidad de pesos a emplear, etc. En cada caso la solución óptima no explicó cómo podrían ser asignados los recursos (ejemplo: materia prima, capacidad de las máquinas, el dinero, etc.) para obtener un objetivo establecido. En este capítulo veremos que a cada problema de programación lineal se le asocia otro problema de programación lineal, llamado el problema de programación dual. La solución óptima del problema de programación dual, proporciona la siguiente información respecto del problema de programación original: 1. La solución óptima del problema dual proporciona los precios en el mercado o los beneficios de los recursos escasos asignados en el problema original. 2. La solución óptima del problema dual aporta la solución óptima del problema original y viceversa. Normalmente llamamos al problema de programación lineal original el problema de programación primal.

3.2 Relación Primal Dual

Relación de la solución óptima del problema dual con la solución óptima del problema primo.La relación principal entre ellos es que tanto el problema primal como el dual buscan el valor óptimo del sistema.

DUALIDAD El dual es un problema de PL que se obtiene matemáticamente de un modelo primal de PL dado. Los problemas dual y primal están relacionados a tal grado, que la solución símplex óptima de cualquiera de los dos problemas conduce en forma automática a la solución óptima del otro. El método símplex además de resolver un problema de PL llegando a una solución óptima nos ofrece más y mejores elementos para la toma de decisiones. La dualidad y el análisis de sensibilidad son potencialidades de éste método. En la mayoría de los procedimiento de PL, el dual se define para varias formas del primal, dependiendo de los tipos de restricciones, de los signos de las variables y del sentido de la optimización. La experiencia nos indica que en ocasiones, los principiantes se confunden con los detalles de esas definiciones. Más importante aún es que el uso de esas definiciones múltiples puede conducir a interpretaciones inconsistentes de los datos en la tabla símplex, sobre todo en lo que respecta a los signos de las variables. El concepto de dualidad indica que para cada problema de PL hay una asociación y una relación muy importante con otro problema de programación lineal, llamado precisamente dual.

 La relación entre el problema dual y su asociado, es decir el problema original llamado primal, presenta varias utilidades: 

Aporta elementos que aumentan sustancialmente la compresión de la PL.

 El análisis de dualidad es una herramienta útil en la solución de problemas de PL, por ejemplo: más restricciones que variables.  El problema dual tiene interpretaciones e informaciones importantes que muestran que los análisis marginales están siempre involucrados implícitamente al buscar la solución óptima a un problema de PL. La forma estándar general del primal se defina como; para maximizar o minimizar.

sujeto a;

¿Cómo convertir un problema primal a dual?

Un problema dual se formula de un problema primal de la siguiente forma: 1. Si el primal es un problema de maximización su dual será un problema de minimización y viceversa. 2. Los coeficientes de la función objetivo del problema primal se convierten en los coeficientes del vector de la disponibilidad en el problema dual. 3. Los coeficientes del vector de disponibilidad del problema original se convierten en los coeficientes de la función objetivo (vector de costo o precio) en el problema dual. 4. Los coeficientes de las restricciones en el problema primal, será la matriz de los coeficientes tecnológicos en el dual. 5. Los signos de desigualdad del problema dual son contrarios a los del primal. 6. Cada restricción en un problema corresponde a una variable en el otro problema. Si el primal tiene m restricciones y n variables, el dual tendrá n restricciones y m variables. Así, las variables Xn del primal se convierte en nuevas variables Ym en el dual.

3.3 Interpretacion Economica del Dual

Precio Sombra.- Se define como la proporción con que mejora el valor de la función objetivo a partir de la i - ésima restricción, dependiendo si se trata de maximización tiende a aumentar y a disminuir cuando es de minimización. La interpretación económica de la dualidad se basa directamente en la interpretación más frecuente del problema primal ( 16 ). Interpretación del problema dual. Para ver cómo la interpretación del problema primal conduce a una interpretación económica del problema dual. Notese el valor de Z como: Z = W1b1 + W2b2 + W3b3 + … + Wmbm donde cada bi Wi puede interpretarse como la contribución a la ganancia por disponer de bi unidades del recurso i. Wi se interpreta como la contribución a la ganancia por unidad del recurso i ( i = 1 , 2, . . . , m), cuando se usa el conjunto actual de variables básicas para obtener la solución primal. Si le preguntaramos a un contador - uno que no tenga ni la menor idea de PL- que a partir de la solucion al problema del enunciado I nos respondiera cual es el costo unitario de producir (y vender) el bien 1 y el 2 muy probablemente nos mirara primero con cierta desconfianza - pero si no hay precio de los insumos!!! - para luego , mas cautamente contestarnos que el costo de 1 , dado que se requiere una unidad del insumo A y una de B el costo unitario ( Cua) se calcularia como Pa + Pb mientras que el costo unitario (Cub) del bien 2 se calcularia como 2Pa + Pb , toda vez que se requieren dos unidades de A y una de B por unidad de 2. Eso si se conocieran los precios de los insumos A y B cosa que se desconoce. Con la misma desconfianza nos responderia a que el costo total de producir ambos bienes seria igual a: APa + BPb ( es decir 150Pa + 100Pb). Si finalmente le preguntamos si puede obtener esos precios de los insumo si se asume que producir y vender 1 y 2 son actividades competitivas en las cuales o bien no hay beneficio alguno o bien si hubiere perdidas no se produciria el bien, la respuesta que daria seria : los precios que resuelven el siguiente conjunto de ecuaciones y V el costo total resultante:

1 = Pa + Pb 1,6 = 2Pa + Pb V = 150Pa + 100Pb

Hecho esto , nuestro contador nos diria que lo que acaba de hacer no es otra cosa que imputar precios a los factores productivos , lo que determina que el costo total V sea igual al ingreso total Z. Resolviendo el sistema anterior obtendria Pa = 0,6 , Pb = 0,4 y V = 130

Si ahora formulamos el problema dual del enunciado I de referencia obtendremos : min V = 150Pa + 100Pb sujeto a 1 = 1,6 y 150Pa +400Pb = 150 El unico conjunto de precios -no negativos- de los insumos que imputa correctamente- es decir cumple con las tres condiciones anteriores es Pa = 1 y Pb =0 , el mismo resultado del economista y del programador lineal.

3.4 Condiciones Khun Tucker Para identificar puntos estacionarios de un problema restringido no lineal sujeto a restricciones de desigualdad. Estas condiciones también son suficientes bajo ciertas reglas. Una condición necesaria para la optimización es que sea no negativa (no positiva) para problemas de maximización (minimización). Esto se justifica como sigue. Considere el caso de maximización. Como mide la taza de variación de F con respecto a g.

3.5 Dual Simplex En el algoritmo dual símplex, el problema empieza optimo y no factible. Las iteraciones sucesivas están diseñadas para avanzar hacía la factibilidad, sin violar la optimalidad. En iteración, cuando se restaura la factibilidad, el algoritmo termina. El método dual símplex contrasta con el método regular (primal simplex), en el sentido de que las iteraciones empiezan factibles y no optimas y no continúan siendo factibles hasta que se logra la factibilidad. En el método dual símplex, el cuadro simplex inicial debe tener un renglón objetivo optimo por lo menos con una variable básica no factible (< 0). Para mantener la optimalidad y, simultáneamente, avanzar hacia la factibilidad en cada nueva iteración, se emplearan las dos condiciones siguientes: Condición Dual de Factibilidad: La variable de salida, x, es la variable básica que tiene el valor más negativo, con empates que se rompen arbitrariamente. Si todas las variables básicas son no negativas, el algoritmo termina. Condición Dual de Optimalidad : La variable de entrada esta determinada entre las variables no básicas como la correspondiente a min {øzj - cj ø, rj < 0} no básicas rj Donde rj es el coeficiente de restricción de la tabla símplex asociada con el renglón de la variable de salida x, y la columna de la variable de entrada Xj. Los empates se rompen arbitrariamente. Ejemplo: Minimice z = 3×1 + 2×2 Sujeta a 3×1 + x2 “ 3 4×1 + 3×2 “ 6 x1 + x2 “ 3 x1, x2 “ 0 La tabla

símplex inicial para el problema se da como Solución básica factible X1 X2 X3 X4 X5 Solución z −3 −2 0 0 0 0 X3 −3 −1 1 0 0 −3 X4 −4 −3 0 1 0 −6 X5 1 1 0 0 1 3 Las variables X3 y X4 son superávit, mientras que X5, es una holgura

3.6 Cambios en Vector Costos Cj

Fundamentalmente cuando se trabaja en Programación Lineal es importante realizar un análisis de postoptimalidad para observar por medio de simulación si los cambios que le vamos a introducir al modelo original, en qué aspectos nos benefician o nos afectan en las variables y/o parámetros.Es importante tener en cuenta que los cambios que se realizan en el modelo original deben ser factibles y deben responder a situaciones reales que la empresa puede llegar a vivir en un momento determinado. Los cambios en los vectores b, c y en la matriz A pueden suceder en forma discreta o continua; el cambio discreto indica que una o varias componentes originales de los vectores o de la matriz son reemplazados por nuevas cantidades; el cambio continuo en los vectores aj, b y c se da cuando se presentan cambios así:

donde b, c y aj son vectores respectivamente con las mismas dimensiones que los vectores b, c, aj; , , son escalares que pueden tomar cualquier valor real. El análisis de sensibilidad que estudia los cambios continuos se denomina Programación Paramétrica. Para observar las variaciones que ocurren o no, vamos a ilustrar las diversas situaciones con el siguiente ejemplo: MAX Z = 50 X1+ 120 X2 Sujeta a:



Cambio en un Cj cuando Xj es no básica:

Va a cambiar un número en la fila de Zj - Cj, desde Z*j - Cj hasta Z*j hasta C'j; la nueva solución sigue siendo factible ya que no se han cambiado las restricciones, ni los recursos.Cuando hay un cambio en un Cj del primal, solamente cambia el lado derecho de la jésima restricción del dual; puede ocurrir que la solución ya no sea factible (una de las variables básicas será menor que cero).La función objetivo va a asegurar una solución óptima, porque los recursos del primal no se han cambiado. Ejemplo: Se cambia la función objetivo de: MAX Z = 50 X1+ 120 X2 a: MAX Z = 80 X1+ 120 X2

El cambio en la función objetivo en la variable X1 es 50 por 80. Este cambio tiene un efecto sobre el valor de Z*j - Cj en el óptimo actual Primal: X*1 = 0; X*2 = 20; S*1 = 0; S*2 = 40; Z*= 2400 Dual: Y*1 = 30; Y*2 = 0; S*1= 10; S*2 = 0; W* = 2400 , valores que se pueden convertir en: Si el valor actualizado de Z*j - Cj > 0 , la solución óptima permanece igual a la del problema inicial y en el problema dual solo cambia el valor de la variable de holgura S*1. Si el nuevo valor de Z*j - Cj = 0, la solución óptima permanece igual a la del problema inicial cuando se presentan soluciones múltiples y en el problema dual solo cambia el valor de la variable de holgura S*1 cuyo valor será cero (0). Si el valor actualizado de Z*j - Cj < 0 la solución deja de ser óptima por lo cual se requiere la utilización del simplex, tomando X1 como la variable que se convertirá en variable básica. La solución óptima actual es: Primal: X*1 = 16; X*2 = 12; S*1 = 0; S*2 = 0; Z*= 2720 Dual: Y*1 = 28; Y*2 = 8; S*1= 0; S*2 = 0; W* = 2720 Para que se mantenga la solución actual óptima y factible basta con plantear y resolver la ecuación que recalcula el valor de Z1 -C1, sabiendo que en el tablero óptimo el valor de C1 debe cumplir con la condición que Z1 -C1 0, por lo cual C1 60. •

Cambio en un Cj cuando Xj es básica:

Si Xj es básica Z*j - Cj = 0 y Z*j - C'j 0, con lo cual se debe modificar la fila de Z -C en el último tablero y en algunos casos se debe variar toda la tabla, si la solución del primal dejó de ser la óptima.En algunos casos cuando Z*j - C'j > 0, la solución es aún óptima. La nueva solución en el óptimo debe ser óptima o mejorar, pero en algunos casos puede no ser factible. Ejemplo: Cambiando la función objetivo de: MAX Z = 50 X1+ 120 X2 a: MAX Z = 50 X1+40 X2 El nuevo valor de Z*j - Cj corresponde a una variable básica, cuyo valor será cero (0). La solucion Optima es: Primal: X*1 = 16; X*2 = 12; S*1 = 0; S*2 = 0; Z*= 1280 Dual: Y*1 = 7; Y*2 = 12; S*1= 0; S*2 = 0; W* = 2720 Para que permanezca la solución actual óptima y factible basta con plantear y resolver la ecuación que recalcula el valor de Z*j - Cj de cada una de las variables no básicas, sabiendo que en el tablero óptimo el valor de C1 debe cumplir con la condición que Z*j - Cj 0, por lo cual 4 C2 + .

3.7 Cambio en Bi de las Restricciones



Cambio en un bi (recurso):

Los únicos cambios posibles son en los lados derechos de las restricciones, porque estos lados dan los valores de las variables de la base y éstas se pueden volver negativas; cuando no hay cambios en los Z*j - Cj, la solución encontrada sigue siendo óptima.En el caso en que un bi se vuelva negativo se debe emplear el dual simplex para solucionar el primal. Además es posible en el problema dual encontrar e interpretar el precio sombra (marginal) y los costos reducidos. Ejemplo: Cambiando la segunda restricción de: 3 X1+X2

60

3 X1+X2

50

a:

La solución óptima actual es: Primal: X*1 = 0; X*2 = 20; S*1 = 0; S*2 = 30; Z*= 2400 Dual: Y*1 = 30; Y*2 = 0; S*1= 10; S*2 = 0; W* = 2400 Para que se mantenga la solución actual factible basta con plantear y resolver las ecuaciones para encontrar los valores de los nuevos bi, de tal manera que las variables básicas sean 0, por lo cual -70 b1 170 y 20 b2 +

3.8 Cambio en Coeficientes Xj



Cambio en aij cuando Xj es no básica:

En estos casos cambian los coeficientes de Xj en todas las filas del tablero; como Xj no es básica, si la fila Z -C > 0, la solución sigue siendo óptima. Es más fácil investigar si la solución anterior es todavía óptima con el dual, ya que el único cambio es en la j-ésima restricción:

, porque los valores óptimos de las variables

originales Y*1 = Z no cambian; la solución anterior es factible y aún óptima si la nueva restricción no se viola. Ejemplo: Cambiando la segunda restricción de: 3 X1+X2

60 a:

X1+X2

60

La solución actual es: Primal: X*1 = 0; X*2 = 20; S*1 = 0; S*2 = 40; Z*= 2400

Dual: Y*1 = 30; Y*2 = 0; S*1= 10; S*2 = 0; W* = 2400 Para que permanezca la solución actual óptima basta con plantear y resolver la ecuación que recalcula el valor de Z1 - C1 con la condición que Z1 - C1

0, por lo cual

3.9 Adicion de Nueva Variable

Muchas veces es necesario analizar la sensibilidad de la solución óptima, cuando se agrega al modelo una restricción que no se considero inicialmente, ya sea por olvido o por decisión de quien planteó el modelo. El primer paso en el análisis de los cambios que sufre la solución óptima actual al considerar una nueva restricción, es determinar si esta se cumple para la solución óptima. Para ello deben reemplazarse los valores óptimos de las variables en la nueva restricción y determinar si se cumple la condición expresada. En caso afirmativo concluimos que la solución actual no se altera, pues la nueva restricción también se cumple para ella. Tal caso ocurre en situaciones como la que podemos observar en la grafica 1, en donde la nueva restricción A no altera la región de factibilidad. Otra situación del mismo caso es la que se muestra en la gráfica 2 para la nueva restricción B, que sí altera la región de factibilidad, pero sin modificar el punto óptimo.

Pero cuando los valores óptimos no satisfacen la nueva restricción, concluimos que la solución óptima actual es infactible. La gráfica 3 nos permite entender como lo que ocurrió fue que la nueva restricción afectó la región de factibilidad del problema, eliminando de ella el sector que incluye la solución óptima actual. Debemos entonces encontrar la nueva solución óptima que corresponda a la nueva región factible. Efectuemos un análisis del efecto. Supóngase que agregamos al modelo la restricción am+1 , 1 X1 + am+1 , 2 X2 + ... + am+1 , nXn < bm+1 Para simplificar, definamos el vector fila Tm+1 que contenga todos los coeficientes tecnológicos am+1,j de la restricción m+1 y escribamos la nueva restricción como el siguiente producto escalar

Tm+1 < X bm+1 Separando los coeficientes de las variables básicas y de las no básicas y agrupándolos en dos vectores que las contengan, podemos expresar la restricción como:

TBXB + TNXN + Hn+1 = bm+1 Ya que XN = 0, despejando a Hn+1 llegamos a que:

Hn+1 = bm+1 - TBXB Cuando bm+1 > TBXB, tendremos que Hn+1 será no negativa lo cual implica que la nueva restricción se cumple en el punto óptimo y la actual solución no cambia. Pero cuando bm+1< aBXB, tendremos que Hn+1 toma valor negativo,, implicando que la restricción no se satisface en el óptimo y por ello la solución óptima actual es infactible y debemos hallar la nueva solución óptima, que cumpla la restricción adicional. El procedimiento para determinar la nueva solución óptima es: 1. Escribir la nueva restricción al final de la tabla óptima. Considerando a Hn+1 como variable básica. 2. Efectuar los ajustes necesarios para que los vectores de sustitución de las variables básicas, sean vectores unitarios. Al lograr lo anterior, se obtiene un valor negativo para la variable de

holgura que se acaba de adicionar como nueva variable básica, lo cual significa que la solución actual es infactible, al considerar la restricción adicional 3. Utilizar el algoritmo Dual – Simplex, para intercambiar la variable básica negativa por una positiva y obtener así una solución óptima factible para el modelo aumentado con la nueva restricción.

3.10 Adicion de Nueva Restriccion

El último caso es aquel en el que debe introducirse al modelo una nueva restricción después de que ya se ha resuelto. Este caso puede ocurrir porque se pasó por alto la restricción en un principio o porque surgieron nuevas consideraciones después de la formulación original. Otra posibilidad es que a propósito se haya eliminado la restricción para disminuir el esfuerzo computacional por parecer menos restrictiva que otras ya planteadas en el modelo, pero ahora es necesario verificar esta impresión con la solución óptima que se obtuvo. Para ver si la nueva restricción afecta a la solución óptima actual, todo lo que tiene que hacerse es verificar directamente si esa solución óptima satisface la restricción. Si es así, todavía sería la mejor solución básica factible (es decir, sería la solución óptima), aun cuando se agregara la restricción al modelo. La razón es que una nueva restricción sólo puede eliminar algunas de las soluciones factibles anteriores sin agregar ninguna. Si la nueva restricción elimina la solución óptima actual, y si se quiere encontrar la nueva solución, se introduce esta restricción a la tabla simplex final (como un renglón adicional) como si fuera la tabla inicial, en la que se designa la variable usual (de holgura o artificial) como la variable básica que corresponde a este nuevo renglón. Como éste tal vez tenga coeficientes distintos de cero para algunas otras variables básicas, se debe aplicar la conversión a la forma apropiada de eliminación de Gauss y después cl resto del procedimiento general. Igual que para algunos de los casos anteriores, este procedimiento para el caso de una adición de una nueva restricción es una versión simplificada del procedimiento general resumido anteriormente. La única pregunta que hay que hacerse en este caso es si la solución óptima anterior es todavía factible así que la prueba de optimalidad se ha eliminado. La prueba de factibilidad se ha reemplazado por una prueba de factibilidad mucho más rápida (¿la solución óptima anterior satisface la nueva restricción?) que debe realizarse justo después de la revisión del modelo. Sólo cuando la respuesta a esta prueba es negativa y se quiere reoptimizar, se usan los siguientes pasos; revisión de la tabla simplex final, conversión a la forma apropiada de eliminación de Gauss, y reoptimización. EJEMPLO. Como ejemplo de este caso, supóngase que se introduce la nueva restricción, 2×1 + 3×2 ≤ 24, Al modelo dado en la tabla 20. El efecto gráfico se muestra en la figura 5. La solución óptima anterior (0, 9) viola la nueva restricción, por lo que la solución óptima cambia a (0, 8). Para analizar este ejemplo algebraicamente, obsérvese que (0, 9) lleva a que 2×1 + 3×2 = 27 > 24, entonces esta solución óptima anterior ya no es factible. Para encontrar la nueva solución óptima, se agrega esta restricción a la tabla simplex final actual, tal como se describió, con la variable de holgura x6 como su variable básica inicial. Esto lleva a la primera tabla que se muestra en la tabla 23. El paso de conversión a la forma apropiada de eliminación de Gauss requiere restar el renglón 2 multiplicado por 3 del nuevo renglón, con lo que se identifica la solución básica actual: x3 = 4, x2 = 9, x4 = 6, x6 = −3 (xl = 0, x5 = 0), como se muestra en la segunda tabla. Cuando se aplica el método dual simplex se obtiene en una sola iteración (algunas veces se necesitan más) la nueva solución óptima en la tabla final de la tabla |23. Figura 5 – Región factible Tabla23 – Procedimiento de análisis de sensibilidad

Unidad 4 Transporte y asignación 4.1 Definicion Problema de Transporte Problema del transporte Un problema particular que se resuelve con los procedimientos de la programación lineal es la situación conocida como problema del transporte o Una empresa dedicada a la fabricación de componentes de problema de la ordenador tiene dos fábricas que producen, respectivamente, distribución de 800 y 1500 piezas mensuales. Estas piezas han de ser mercancías. transportadas a tres tiendas que necesitan 1000, 700 y 600 piezas, respectivamente. Los costes de transporte, en pesetas Se trata de encontrar los por pieza son los que aparecen en la tabla adjunta. ¿Cómo caminos para trasladar debe organizarse el transporte para que el coste sea mínimo? mercancía, desde varias plantas (orígenes) a diferentes centros de almacenamiento (destinos), de manera que se minimice el costo del transporte. Para que un problema Tienda A Tienda B Tienda C pueda ser resuelto por el Fábrica I 3 7 1 método del transporte Fábrica II 2 2 6 debe cumplir: 1) La función objetivo y las restricciones deben ser lineales. 2) El total de unidades que salen en origen debe ser igual al total de unidades que entran en destino.

En este tipo de problemas se exige que toda la producción sea distribuida a los centros de ventas en las cantidades que precisa cada uno; por tanto, no pueden generarse inventario del producto ni en las fábricas ni en los centros de ventas. En consecuencia, los 800 artículos producidos en la fábrica I deben distribuirse en las cantidades x, y, z a A, B y C, de manera que x + y + z = 800. Pero, además, si desde I se envían x unidades a A, el resto, hasta las 1000 necesarias en A, deben ser enviadas desde la fábrica II; esto es, 1000 - x unidades serán enviadas desde II a A. Del mismo modo, si desde I a B se envían y, el resto necesario, 700 - y, deben enviarse desde II. Y lo mismo para C, que recibirá z desde I y 600 - z desde II. En la siguiente tabla de distribución se resume lo dicho: Envíos

a la tienda A (1000) a la tienda B (700) a la tienda C (600)

Desde la fábrica I ( 800)

x

y

800 - x - y

Desde la fábrica II (1500)

1000 - x

700 - y

x + y - 200

La última columna la hemos obtenido de la siguiente forma: Como x + y + z = 800 , se tiene que z = 800 - x - y, de donde, 600 - z = 600 - (800 - x - y) = x + y - 200. Ahora bien, todas las cantidades anteriores deben ser mayores o iguales que cero. Por tanto, se obtienen las siguientes desigualdades: x

0 ; 1000 - x

0;y

0; 700 - y

0 ; 800 - x - y

0 ; x + y - 200

0

Simplificando las desigualdades anteriores, se obtienen las siguientes inecuaciones: 1000

x

0 ; 700

y

0 ; 800

x+y

0

Recordemos que nuestro objetivo es abaratar al máximo los costes de transporte. Estos costes se hallan multiplicando las cantidades enviadas a desde cada fábrica a cada tienda por los respectivos costes de transporte unitario. Se obtiene: Z = f(x,y) = 3x + 2(1000 - x) + 7y + 2(700 - y) + (800 - x - y) + 6(x + y - 200) = 6x + 10y + 3000 En definitiva, el programa lineal a resolver es : Minimizar: Z = 6x + 10y + 3000 sujeto a: 1000 x 0 700 y 0 800 x + y 0 La región factible se da en la imagen del margen. Sus vértices son A(200,0) ; B(800,0) ; C(100,700) ; D(0,700) y E(0,200). El coste, el valor de Z en cada uno de esos puntos, es: • • • • •

en A, 4200 en B, 7800 en C, 10600 en D, 10000 en E, 5000

El mínimo se da en A , cuando x = 200 e y = 0. Luego, las cantidades a distribuir son:

Envíos

a la tienda A (1000) a la tienda B (700) a la tienda C (600)

Desde la fábrica I ( 800)

200

0

600

Desde la fábrica II (1500)

800

700

0

4.2 Metodo de Aproximacion de Vogel

Método de Aproximación de Vogel: para cada renglón y columna que queda bajo consideración, se calcula su diferencia, que se define como la diferencia aritmética entre el costo unitario más pequeño (cij) y el que le sigue, de los que quedan en ese renglón o columna. (Si se tiene un empate para el costo más pequeño de los restantes de un renglón o columna, entonces la diferencia es 0). En el renglón o columna que tiene la mayor diferencia se elige la variable que tiene el menor costo unitario que queda. (Los empates para la mayor de estas diferencias se pueden romper de manera arbitraria). Para hacer más concreta esta descripción, se ilustrará el procedimiento general, utilizando el método de aproximación de Vogel para resolver el ejemplo presentado anteriormente y que fue resuelto por la regla de la esquina noroeste: Iniciamos el método calculando las primeras diferencias para cada renglón y columna. De las diferencias que obtuvimos nos fijamos

en la mayor (¿Por qué?), que resulta ser para la

tercera columna. En esa columna encontramos el costo unitario (cij) menor y en esa celda realizamos la primera asignación:

3

7 4

2 4

2

3

Recursos 5 1

6

4

3

22 0

0

8

53

1

DIF.

10 Demanda DIF.

3 1

4 1

2 0 3 1

1 2

10

Nota: Marcaremos a la mayor de las diferencias seleccionada encerrándola en un círculo y escribiéndole como superíndice el número que le corresponda en la secuencia de selección. Observemos en la figura anterior que únicamente eliminamos el segundo renglón ya que la tercera columna nos servirá después para hacer la asignación de una variable básica degenerada. Continuando con la aplicación del método, tenemos que calcular nuevamente las diferencias de las columnas ya que hemos eliminado un renglón y ésto puede ocasionar que las diferencias aritméticas entre el costo unitario más pequeño y el que le sigue ya no sean las mismas:

3 2

7 4 3

2

Recursos 5 1

6

4

3

22 0

0

DIF.

4

53 0

8

3

1 10

Demanda DIF.

3 1

4 1 1

1

4

2

2 0 3 1

1 2

2

1

10

Como siguiente paso deberíamos calcular las nuevas diferencias de columnas, pero ya que solamente queda un renglón dentro de las posibilidades (ésto no significa que solamente un renglón quede bajo consideración ya que podemos observar que ninguna de las cuatro columnas (destinos) ha sido eliminada y todas quedan todavía bajo consideración), no es posible encontrar la diferencia aritmética entre el costo menor y el que le sigue, por lo tanto vamos tomando una a una las celdas que quedan comenzando con la de menor costo unitario hasta que todas hayan sido asignadas.

3

3

1

2

7

0

4 4

3

2

3

6

1

4

Recursos DIF. 5 2 1 0 1

3

22 0

0

8

53 0

1 10

Demanda DIF.

3 0 1

4 1 0 1

1

4

2

2 0 3 1

1 0 2

2

1

10

La solución inicial básica factible es x11=3, x12=1, x13=0 (variable básica degenerada), x14=1, x23=2 y x32=3 y el costo total de transporte asociado a esta primera “Política de Transporte” factible es de:

Costo =

x11 c11 x12 c12 x13 c13 x14 c14 x23 c23 x32 c32 3 (3) + 1 (7) + 0 (6) + 1 (4) + 2 (3) + 3 (3) = 35 unidades Es necesario aclarar que ésta puede o no ser la solución final del problema, es

necesario aplicar a esta primera solución factible la prueba de optimalidad ya que puede existir una mejor “política de transporte” que minimice todavía más el costo total.

4.3 Metodo de Modi

Este método reproduce exactamente las mismas iteraciones del método de banquillo. La principal diferencia ocurre en la forma en que las variables no básicas se evalúan en cada iteración. Asociados a cada renglón i de la tabla existen multiplicadores Ui similarmente se asocia un multiplicador Vj a cada columna de la tabla j. Para cada variable básica Xij de la solución actual, se escribe la ecuación Ui +Vj = Cij. Esas ecuaciones proporcionan m+n-1 relaciones con m+n incógnitas.

Los valores de los multiplicadores pueden ser determinados a partir de las ecuaciones suponiendo un valor arbitrario para cualquiera de los multiplicadores (usualmente se establece U1=0) y resolviendo el sistema de ecuaciones para encontrar los multiplicadores desconocidos. Una vez que se hace esto, la evaluación de cada variable no básica X pq está dada como: El criterio que se utiliza para seleccionar la variable que entra es el mismo que el método de banquillo (la mayor negativa). Ejemplo: Una compañía está considerando una demanda de 5 clientes utilizando artículos que tienen disponibles en 2 almacenes. Los almacenes cuentan con 800 y 1000 unidades respectivamente. Los clientes necesitan 200, 150, 200, 180 y 500 unidades respectivamente. Los costos de embarque por artículo de los almacenes de los clientes son:

Resuelva el modelo de transporte empleando. a) Una solución inicial por el método de aproximación de vogel. b) La solución óptima por el método de multiplicadores.

DESTINO FICTICIO = 570 ARTÍCULOS

4.4 Procedimiento de Optimizacion

Una solución BF es optima si y solo si Cij-Ui-Vj=>0 para toda (ij)tal que Xij es no basica. Es la reducion de costos. Pasos para la optimizacion: 1.- se determina la variable basica entrante; se elige la variable no basica Xij que tiene el valor negativo mas grande(en terminos absolutos)para Cij-Ui-Vj. 2.- se determina la varible basica que sale: se identifica la reaccion en cadena que se necesita para conservar la factibilidad cuando aumenta el valor de la variable basica entrante. Entre las celdas donadoras se selecciona la variable basica que tiene el menor valor. 3.- se determina la nueva solucion BF; se suma el valor de la variable basica que sale a las asignaciones de las celdas receptoras y se resta a las asignaciones de las celdas donadoras.

4.5 Definición Problema de Asignación

Definición del problema. Sean un conjunto de fragmentos F = {F1, F2, ..., Fn} y una red formada por el conjunto de sitios S = {S1, S2, ..., Sm} en la cual un conjunto de aplicaciones Q = {q1, q2, ..., qq} se ejecutan. El problema de la asignación implica encontrar la distribución óptima de F sobre S. Uno de los problemas más importantes que necesita discusión es el significado de distribución óptima. La distribución óptima puede definirse con respecto a dos medidas:

1. Coste mínimo. La función de coste consiste en el coste de almacenamiento de cada Fi

2.

en un sitio Sj, el coste de practicar una consulta en Fi en el sitio Sj, el coste de actualizar Fi en todos los sitios donde se almacene y el coste de las comunicaciones de datos. El problema de la asignación, entonces, intenta encontrar un esquema de asignación tal que minimice esta función de coste combinado. Rendimiento. La estrategia de asignación se diseña para mantener una medida del rendimiento. Dos medidas habituales de este rendimiento son el tiempo de respuesta y la salida del sistema en cada sitio. Evidentemente, se debe intentar minimizar la primera y maximizar la segunda.

Se han propuesto modelos de asignación que enfocan el concepto de distribución óptima desde diferentes puntos de vista. Sin embargo, no resulta descabellado pensar en la inclusión, tanto del rendimiento como de los factores de coste, dentro del concepto. En otras palabras, deberíamos buscar un esquema de asignación tal que, por ejemplo, la respuesta a las consultas de los usuarios se realizase en el menor tiempo posible mientras que el coste de procesamiento fuese mínimo. Una afirmación similar podría hacerse respecto a la maximización de la salida del sistema. Consideremos ahora una formulación del problema muy simple. Definamos F y S como se hizo anteriormente. Por el momento, consideraremos únicamente un fragmento sencillo, Fk. Daremos un número de definiciones que nos permitan modelar el problema de la asignación.

1. Asumiremos que Q puede modificarse de tal manera que sea posible identificar las consultas de actualización de las de lectura, y definiremos lo siguiente para ese fragmento simple Fk:

donde ti es el tráfico de lectura que se genera en el sitio Si para Fk, y

donde ui es el tráfico de actualización que se genera en el sitio Si para Fk.

2. Asumiremos que el coste de comunicaciones entre un par de sitios Si y Sj es fijo para una unidad de transmisión. Además, asumiremos que éste es diferente para actualizaciones y para lecturas, por lo que definimos:

donde cij es el coste de la unidad de comunicación para las peticiones de lectura entre los sitios Si y Sj y c'ij es el coste de la unidad de comunicación para las peticiones de lectura entre los sitios Si y Sj.

3. Sea di el coste de almacenar el fragmento en el sitio Si. Entonces definimos D = {d1, d2, ..., dm} como el coste de almacenar Fk en todos los sitios. 4. Asumiremos que no existen restricciones de capacidad en los sitios o en los enlaces de comunicaciones. Entonces el problema de asignación puede especificarse como un problema de minimización de costes por el cual se intenta encontrar el conjunto I S que especifique el lugar donde han de ubicarse las copias de los fragmentos. La expresión matemática hace uso de la variable de decisión para la ubicación xj es, xj = 1 si xj = 0 en otro caso

el

fragmento

Fk

se

asigna

al

sitio

Sj

entonces, definida xj,

El segundo término de la función calcula el coste total de almacenar todas las copias duplicadas del fragmento. El primer término corresponde al coste de transmisión de las actualizaciones a todos los sitios que mantienen réplicas de un fragmento y al coste de ejecución de las peticiones de lectura en el sitio, lo cual resultará un coste mínimo de transmisión de datos. Esta es una formulación muy simple que no es válida para el diseño de bases de datos distribuidas. Pero en el caso que lo fuera, existiría un problema. Para un gran número de fragmentos y de sitios, obtener soluciones óptimas resultaría probablemente totalmente inviable. Las investigaciones, por tanto, deben girar en torno a la búsqueda de buenos heurísticos que proporciones soluciones parcialmente óptimas.

Hay un número de razones del porqué de formulaciones tan simples que no sirven para el diseño de bases de datos distribuidas. Generalmente, se heredan de los modelos de asignación de archivos para redes, pero 1. No se pueden tratar los fragmentos como archivos individuales que se asignen aisladamente. La ubicación de un fragmento generalmente tiene influencia sobre las decisiones de asignación de los otros fragmentos, a los cuales se acceden a la vez, puesto que el coste de acceso de los fragmentos restantes puede variar. Por tanto, las relaciones entre fragmentos deben tenerse en consideración. 2. El acceso de las aplicaciones a los datos se modela muy sencillamente. Una petición de usuario se resuelve en un sitio y todos los datos necesarios se transfieren a ese sitio. En los sistemas de bases de datos distribuidos, el acceso a los datos es más complicado que el simple acceso a archivos remotos. Por tanto, la relación entre la asignación y el procesamiento de consultas debería también tenerse en cuenta. 3. Estos modelos no tienen en cuenta el coste de mantenimiento de la integridad, aún localizando dos fragmentos implicados con las mismas restricciones de integridad en dos sitios diferentes podría resultar costoso dicho mantenimiento. 4. Igualmente, el coste derivado del control de concurrencia debería tenerse en cuenta. En resumen, debemos distinguir entre el problema tradicional de asignación de archivos de la asignación de fragmentos en los sistemas de bases de datos distribuidos. No existen modelos heurísticos generales que tomen como entrada un conjunto de fragmentos y produzcan una asignación cercana a lo óptimo que además esté influenciada por los tipos de restricciones descritas antes. Los modelos desarrollados realizan una serie de simples suposiciones y pueden aplicarse a ciertas formulaciones específicas. Por tanto, presentaremos un modelo general y discutiremos una serie de posibles heurísticos que puedan emplearse para resolver el problema. Posteriormente, describiremos un algoritmo concreto de asignación. Información necesaria. En esta etapa de la asignación, necesitaremos datos cuantitativos sobre la base de datos, las aplicaciones que funcionan sobre ella, la red de comunicaciones, las características de proceso, y el límite de almacenamiento de cada sitio de la red. Procederemos a discutirlos en detalle.Información de la base de datos. Para desarrollar la fragmentación horizontal, definimos la selectividad de los mintérminos. Ahora, necesitamos extender esta definición a los fragmentos y definir la selectividad de un fragmento Fj con respecto a una consulta qi. Es el número de tuplas de Fj a las que se necesita acceder para procesar qi. Este valor lo notaremos como seli(Fj). Otro elemento informativo de los fragmentos de la base de datos es su tamaño. El tamaño de un fragmento Fj viene dado por tamaño(Fj) = card(Fj)*long(Fj), donde long(Fj) es la longitud (en octetos) de una tupla del fragmento Fj. Información de las aplicaciones. Mucha de la información relativa a las aplicaciones se recoge durante el proceso de fragmentación, pero se necesita un poco más para el modelo de asignación. Las dos medidas más importantes son el número de accesos de lectura que una consulta qi realiza sobre un fragmento Fj durante su ejecución (llamada RRij), y el número de accesos de actualización que una consulta qi realiza sobre un fragmento Fj durante su ejecución (llamada URij). También necesitamos definir dos matrices UM y RM, con elementos uij y rij, respectivamente, que se especifican como sigue: uij = 1 si la consulta qi actualiza el fragmento Fj uij = 0 en otro caso rij = 1 si la consulta qi lee del fragmento Fj rij = 0 en otro caso También debe definirse un vector O de valores o(i), donde o(i) especifica el sitio origen de la consulta qi. Finalmente, especificaremos las restricciones impuestas por el tiempo de respuesta, asignando a cada aplicación el máximo tiempo de respuesta permitido.

Información de los sitios. Sobre cada ordenador necesitamos conocer sus capacidades de procesamiento y almacenamiento. Obviamente, estos valores pueden calcularse a través de funciones elaboradas o por simples estimaciones. La unidad de coste de almacenar datos en el sitio Sk será denotada como UCAk. Así mismo, especificaremos como medida de coste UPTk al coste de procesar una unidad de trabajo en el sitio Sk. La unidad de trabajo debería ser idéntica a aquella utilizada en las medidas RR y UR. Información sobre la red. En nuestro modelo asumiremos la existencia de una red simple donde el coste de comunicaciones se define respecto a una trama de datos. Entonces gij nota el coste de comunicación por trama entre los sitios Si y Sj. Para permitir el cálculo del número de mensajes, usaremos ftamaño como el tamaño (en octetos) de una trama. Es evidente que existen modelos de red mucho más elaborados que toman en cuenta las capacidades del canal, las distancias entre sitios, las características del protocolo, etc. Sin embargo, se cree que la derivación de estas ecuaciones se sale fuera de este documento.

4.6 El Método Húngaro de Asignación

Este algoritmo se usa para resolver problemas de minimización, ya que es más eficaz que el empleado para resolver el problema del transporte por el alto grado de degeneración que pueden presentar los problemas de asignación. Las fases para la aplicación del método Húngaro son: Paso 1: Encontrar primero el elemento más pequeño en cada fila de la matriz de costos m*m; se debe construir una nueva matriz al restar de cada costo el costo mínimo de cada fila; encontrar para esta nueva matriz, el costo mínimo en cada columna. A continuación se debe construir una nueva matriz (denominada matriz de costos reducidos) al restar de cada costo el costo mínimo de su columna. Paso 2: (En algunos pocos textos este paso se atribuye a Flood). Consiste en trazar el número mínimo de líneas (horizontales o verticales o ambas únicamente de esas maneras) que se requieren para cubrir todos los ceros en la matriz de costos reducidos; si se necesitan m líneas para cubrir todos los ceros, se tiene una solución óptima entre los ceros cubiertos de la matriz. Si se requieren menos de m líneas para cubrir todos los ceros, se debe continuar con el paso 3. El número de líneas para cubrir los ceros es igual a la cantidad de asignaciones que hasta ese momento se pueden realizar. Paso 3: Encontrar el menor elemento diferente de cero (llamado k) en la matriz de costos reducidos, que no está cubierto por las líneas dibujadas en el paso 2; a continuación se debe restar k de cada elemento no cubierto de la matriz de costos reducidos y sumar k a cada elemento de la matriz de costos reducidos cubierto por dos líneas (intersecciones). Por último se debe regresar al paso 2. Notas: 1. Para resolver un problema de asignación en el cual la meta es maximizar la función objetivo, se debe multiplicar la matriz de ganancias por menos uno (−1) y resolver el problema como uno de minimización. 2. Si el número de filas y de columnas en la matriz de costos son diferentes, el problema de asignación está desbalanceado. El método Húngaro puede proporcionar una solución incorrecta si el problema no está balanceado; debido a lo anterior, se debe balancear primero cualquier problema de asignación (añadiendo filas o columnas ficticias) antes de resolverlo mediante el método Húngaro. 3. En un problema grande, puede resultar difícil obtener el mínimo número de filas necesarias para cubrir todos los ceros en la matriz de costos actual. Se puede demostrar que si se necesitan j líneas para cubrir todos los ceros, entonces se pueden asignar solamente j trabajos a un costo cero en la matriz actual; esto explica porqué termina cuando se necesitan m líneas.

Unidad 5 Programación Entera Introducción y casos de aplicación

5.2 Definición y Modelos de Programación Entera

Programación Entera es un termino general para los modelos de programación matemática que presentan condiciones de integridad (condiciones que estipulan que algunas o todas las variables de decisión deben tener valores enteros). Ya hemos apuntado que los modelos de programación lineal entera son modelos de programación lineal que tienen la característica adicional de que algunas de las variables de decisión deben tener valores enteros. Existen diversas clasificaciones de esta categoría de modelos. Programas Enteros Puros Un modelo entero puro (PLE) es, como su nombre lo indica, un problema en el que se exige que todas las variables de decisión tengan valores enteros. Por ejemplo Min 6×1 + 5×2 + 4×3 s.a. 108×1 + 92×2 + 58×3 >= 576 7×1 + 18×2 + 22×3 >= 83 x1, x2, x3 >= 576 7×1 - 18×2 + 22×3 >= 83 x1, x2, x3 >=0; x1 y x2 enteros Programas Enteros 0–1 En algunos problemas se restringe el valor de las variables a 0 o 1. Dichos problemas se llaman binarios o programas lineales enteros 0–1. Son de particular interés debido a que se pueden usar las variables 0–1 para representar decisiones dicotómicas (sí o no). Diversos problemas de asignación, ubicación de plantas, planes de producción y elaboración de cartera, son de programación lineal entera 0–1.

Existen dos métodos para generar las restricciones especiales que fuercen la solución óptima del problema, hacia la solución óptima entera deseada: - Método de ramificar y acotar. - Método de planos de corte. En ambos métodos las restricciones agregadas eliminan partes del espacio de soluciones, pero nunca alguno de los puntos enteros factibles. Desafortunadamente, ninguno de los dos métodos es efectivo en la solución de problemas de programación lineal entera. No obstante los métodos de ramificar y acotar son mucho mejores en cuanto al calculo se refiere que los métodos de plano de corte. Por esta razón, la mayoría de los códigos comerciales se basan en el procedimiento de ramificar y acotar.

5.3 Metodo Ramificar y Acotar

En este momento será más conveniente explicar los fundamentos del algoritmo de ramificar y acotar (R y A), por medio de un ejemplo numérico: Consideremos el siguiente problema de Programación lineal Entera: Max z = 5×1 + 4×2 Sujeto a x1 + x2 = 3 y x1 = 3 y x1 = 4) + (x2
View more...

Comments

Copyright ©2017 KUPDF Inc.
SUPPORT KUPDF