Algoritmos Especiales de Programación Lineal
INSTITUTO TECNOLÓGICO DE CERRO AZUL
MATERIA: MODELOS DE OPTIMIZACION DE RECURSOS DOCENTE: ING. OCTAVIANO LUNA SANCHEZ INVESTIGACIÓN: “UNIDAD III. ALGORITMOS ESPECIALES DE PROGRAMACION PROGR AMACION LINEAL” PRESENTADO POR POR: MORALES CRUZ, JESÚS ESPECIALIDAD INGENIERÍA CIVIL
UNIDAD III ALGORITMOS ESPECIALES DE PROGRAMACION LINEAL La programación lineal es un procedimiento o algoritmo matemático mediante el cual se resuelve un problema indeterminado, formulado a través de un sistema de inecuaciones lineales, optimizando la función objetivo, también lineal. Consiste en optimizar (minimizar o maximizar) una función lineal, denominada función objetivo, de tal forma ue las variables de dic!a función estén sujetas a una serie de restricciones ue expresamos mediante un sistema de inecuaciones lineales
Algo!"#o$ %$&%'!(l%$ "on dise#ados para problemas de programación lineal, son problemas enunciados con ecuaciones lineales $ con una función objetivo, $ una o más funciones restricciones, para lograr la optimización de la función objetivo ue se analiza. %lgunos de ellos son& 'ran , lujo m*nimo, %lgoritmo raccional, étodo +ual "implex, entre otros.
A&l!'('!)* "on empleados principalmente en problemas de flujo de redes $ problemas de flujo de mercanc*as. "on mu$ usados en la microeconom*a $ la administración de empresas, $a sea para aumentar al máximo los ingresos o reducir al m*nimo los costos de un sistema de producción.
+. El Po-l%#( % T(*$&o"% l -roblema de ransporte corresponde a un tipo particular de un problema de programación lineal. "i bien este tipo de problema puede ser resuelto por el método "implex, existe un algoritmo simplicado especial para resolverlo. /n problema particular ue se resuelve con los procedimientos de la programación lineal es la situación conocida como problema del transporte o problema de la distribución de mercanc*as. "e trata de encontrar los caminos para trasladar mercanc*a, desde varias plantas (or*genes) a diferentes centros de almacenamiento (destinos), de manera ue se minimice el costo del transporte. -ara ue un problema pueda ser resuelto por el método del transporte debe cumplir& 0) La función objetivo $ las restricciones deben ser lineales. 1) l total de unidades ue salen en origen debe ser igual al total de unidades ue entran en destino. "upongamos ue un fabricante tiene tres plantas ue producen el mismo producto. stas plantas a su vez mandan el producto a dos depósitos. Cada planta puede mandar productos a todos los depósitos, pero el costo de transporte var*a con las diferentes combinaciones. l problema es determinar la cantidad ue cada planta debe mandar a cada depósito con el fin de minimizar el costo total de transporte. La manera más fácil de reconocer un problema de transporte es por su naturaleza o estructura 2de3!acia4& de un origen !acia un destino, de una fuente !acia un usuario, del presente !acia el futuro, de au* !acia allá, una relación de uno a otro. %l enfrentar este tipo de problemas, la intuición dice ue debe !aber una manera de obtener una solución. "e conocen las fuentes $ los destinos, las capacidades $ demandas $ los costos de cada tra$ectoria. +ebe !aber una combinación óptima ue minimice el costo (o maximice la ganancia). La dificultad está en el gran n5mero de combinaciones posibles , debido a eso el problema del transporte recurre a buscar soluciones con la computara $ soft6are especializado.. l responsable de gestión del trasporte debe determinar una pol*tica óptima& cómo !acer llegar los productos de sus diversos depósitos, plantas de producción o bodegas a sus consumidores o clientes, con el objeto de satisfacer la demanda a un costo m*nimo de transporte o de env*o.
Pl(*"%(#!%*"o %l &o-l%#( l problema del transporte en general se especifica mediante la siguiente información& 0. /n conjunto de m puntos de oferta desde los cuales se env*an utilidades o bienes. 1. /na lista de capacidades de suministro máximo de cada sitio de oferta si para i 7 0, 1, . . ., m. 8. /n conjunto de n puntos de demanda !acia los cuales se env*a una utilidad o bien. 9. /na lista de demandas de utilidades o bienes dj de cada punto de demanda j las cuales deben satisfacerse m*nimamente. :. /na matriz de valores ue indica el costo fijo en el ue se incurre al enviar una unidad producida en el punto de oferta i $ enviada al punto de demanda j, cij .
Mo%lo % &og(#('!)* l!*%(l %l &o-l%#( % "(*$&o"% "ea& ; i j 7 /nidades enviadas del origen i ( i 70,1,...m), al destino j ( j 7 0,1,...,n) C i j 7 Costo unitario desde el nodo origen i !asta el nodo destino j. ai 7
l modelo de programación lineal au* mostrado se presenta para un problema balanceado con las restricciones de oferta $ demanda en igualdad. -ara el caso de un problema no balanceado (oferta $ demanda en desigualdad) es necesario el uilibrio& 7 b j= además, debe cumplirse ue toda ; i j >7 ?
T(-l( %l &o-l%#( % "(*$&o"%
D%"%#!*('!)* % l( Sol/'!)* 01$!'( 2('"!-l% La utilización del método "@-L; no resulta eficiente para resolver el -roblema de ransporte, por lo cual se utilizan otros métodos como& a) étodo de la suina Aor3
M3"oo % l( %$4/!*( *oo%$"% C(('"%5$"!'($ • • •
"encillo $ fácil de !acer. Ao tiene en cuenta los costos para !acer las asignaciones. 'eneralmente nos deja lejos del óptimo
Algo!"#o 0. Constru$a una tabla de ofertas (disponibilidades) $ demandas (reuerimientos). 1. mpiece por la esuina noroeste. 8. %signe lo máximo posible (Lo menor entre la oferta $ la demanda, respectivamente) 9. %ctualice la oferta $ la demanda $ rellene con ceros el resto de casillas (ilas ó Columnas) en donde la oferta ó la demanda !alla uedado satisfec!a. :. uévase a la derec!a o !acia abajo, seg5n !alla uedado disponibilidad para asignar. . Depita los pasos del 8 al : sucesivamente !asta llegar a la esuina inferior derec!a en la ue se elimina fila $ columna al mismo tiempo. Aota& Ao elimine fila $ columna al mismo tiempo, a no ser ue sea la 5ltima casilla. l romper ésta regla ocasionará una solución en donde el n5mero de variables básicas es menor a mEn30, produciendo una solución básica factible degenerada.
Po-l%#( % %6%#&lo /na compa#*a tiene 8 fábricas ubicadas en %, F $ C, las cuales proveen a los almacenes ue están ubicados en +, , $ '. La capacidad de producción de las fábricas es de G?, H? $ 00: unidades mensuales respectivamente, mientras ue las capacidades de los almacenes son de :?, ?, G? $ H: unidades respectivamente. l costo de envió de una unidad desde cada una de las fábricas a cada una de los almacenes se presenta en el siguiente cuadro (en pesos)&
"e colocan los datos en forma tabular&
-or consiguiente, la solución es&
M7TODO DEL COSTO MÍNIMO C(('"%5$"!'($:
• • •
s más elaborado ue el método de la esuina noroeste iene en cuenta los costos para !acer las asignaciones 'eneralmente nos deja alejados del óptimo
Algo!"#o: 0. Constru$a una tabla de disponibilidades, reuerimientos $ costos 1. mpiece en la casilla ue tenga el menor costo de toda la tabla, si !a$ empate, escoja arbitrariamente (Cualuiera de los empatados). 8. %signe lo máximo posible entre la disponibilidad $ el reuerimiento (l menor de los dos). 9. Dellene con ceros (?) la fila o columna satisfec!a $ actualice la disponibilidad $ el reuerimiento, restándoles lo asignado. Aota& Decuerde ue no debe eliminar ó satisfacer fila $ columna al mismo tiempo, caso en ue la oferta sea igual a la demanda, en tal caso recuerde usar la I (Jpsilon). :. uévase a la casilla con el costo m*nimo de la tabla resultante ("in tener en cuenta la fila o columna satisfec!a). . Degrese a los puntos 8,9,: sucesivamente, !asta ue todas las casillas ueden asignadas.
Po-l%#( %6%#&lo: l !ospital "aludmuc! pertenece a la Compa#*a de "eguros odosalud "%. sta sociedad tiene un Centro de %sistencia -rimaria (C%-) en : ciudades de una región (un C%- en cada ciudad). -ara obtener un buen funcionamiento global del servicio $ poder planificar el n5mero de visitas en función del personal previsto en cada C%- $ de su dimensión, odosalud ".%. !a decidido organizar el servicio de tal forma ue todos sus asegurados tengan un C%- de referencia asignado, pero ue sea éste el más cercano posible a su lugar de residencia. n la región !a$ : ciudades $ la compa#*a sabe cuántos asegurados tiene en cada uno de ellos. Los C%- tienen una capacidad máxima de pacientes ue pueden soportar. l objetivo es asignar a los asegurados a los C%-s minimizando el coste de desplazamiento o la distancia total.
"i no existiera el problema de capacidad de los C%-s, el modelo ser*a trivial, $a ue bastar*a asignar cada ciudad al C%- más cercano, obteniéndose el coste de transporte más barato. %l tener l*mites en la capacidad, puede ser ue no todas las ciudades tengan asignado el centro más cercano, $a ue esto implicar*a una sobre utilización. ntonces, puede ser ue alguna ciudad, o parte de ella tenga asignada un C%- ue no es el más cercano, en función de la disponibilidad o !olgura del sistema.
n su forma tabular uedar*a de la siguiente manera&
M7TODO DE VOGEL C(('"%5$"!'($
• •
•
s más elaborado ue los anteriores, más técnico $ dispendioso. iene en cuenta los costos, las ofertas $ las demandas para !acer las asignaciones. 'eneralmente nos deja cerca al óptimo.
Algo!"#o 0. Construir una tabla de disponibilidades (ofertas), reuerimientos (demanda) $ costos. 1. Calcular la diferencia entre el costo más peue#o $ el segundo costo más peue#o, para cada fila $ para cada columna. 8. scoger entre las filas $ columnas, la ue tenga la ma$or diferencia (en caso de empate, decida arbitrariamente). 9. %signe lo máximo posible en la casilla con menor costo en la fila o columna escogida en el punto 8.
:. asigne cero (?) a las otras casillas de la fila o columna donde la disponibilidad ó el reuerimiento uede satisfec!o. . Depita los pasos del 1 al :, sin tener en cuenta la(s) fila(s) $Ko columna(s) satisfec!as, !asta ue todas las casillas ueden asignadas.
No"(: Decuerde ue no debe satisfacer filas $ columnas al mismo tiempo= caso en ue la disponibilidad sea igual al reuerimiento= en tal caso use el I (epsilon).
Po-l%#( %6%#&lo
*jese ue la ma$or diferencia la tiene la columna 9 con un valor de 0H, escogido entre 1,1,8,?,0:,08,0H $ 0. l menor costo de la columna 9 es cero (?), se asigna lo máximo posible entre :? $ 9?, ue es 9?, se satisface la columna $ se actualiza la oferta $ la demanda. %!ora recalculamos las diferencias, sin tener en cuenta la columna 9, ue está satisfec!a. /na vez ejecutado todo el algoritmo !asta asignar todas las casillas, obtenemos la siguiente asignación básica $ factible inicial.
*jese ue el n5mero de variables básicas es& mEn307 "olución básica factible no degenerada& ;0:79? = ;1078? = ;1871? = ;1:70? = ;8179? = ;8878? = ;9979? = ;9:70? M 7 0(9?) E 0:(8?) E 08(1?) E 0(0?) E 0:(9?) E 0(8?) E ?(9?) E ?(0?) 7 1.:?
EL CRITERIO DE LA OPTIMALIDAD Nemos conseguido tres (8) soluciones básicas factibles no degeneradas por medio de tres métodos& l de la esuina noroeste, el del costo m*nimo $ el de Bogel. -ero ninguna de ellas nos garantiza ue la solución encontrada es la óptima. -ara saberlo, debemos estar seguros ue ninguna de las variables no básicas pueda entrar a la base !aciendo ue la función objetivo disminu$a. -ara discernir un método ue nos eval5e el efecto de introducir una unidad de cada variable no básica, recurrimos al método <+@. étodo <+@ o /B
P($o : Consideremos la solución inicial !allada por el método de la suina A.<.
P($o 8: "e dibuja la matriz Mij ue contiene los costos de la variable solución.
P($o +: "e constru$e un conjunto de n5meros vj $ ui tal ue la suma iguale a los valores de la matriz Mij del paso 1 $ se completa las celdas vac*as con la suma de los ui $ vj la matriz Mij ue contiene los costos de la variable solución
"e tiene las siguientes ecuaciones de las celdas básicas&
Naciendo v0 7 ? se encuentra ue& u0 7 0G = v1 7 8 = u1 7 0 B8 7 = u8 7 G = v9 7 0?
P($o 9: "e calcula Cij O Mij
"e selecciona la casilla (0,9) ue tiene el costo de entrada más peue#o, por consiguiente, debe entrar a la base la variable ;09
l costo de la nueva solución es& M0 7 :8?: E (1?)(30:) 7 8??: % continuación, probamos si esta solución es o no la óptima "e calcula Cij O Mij
"e selecciona la casilla (1,0) ue tiene el costo de entrada más peue#o, por consiguiente, debe entrar a la base la variable ;10
"e selecciona la casilla (8,1) ue tiene el costo de entrada más peue#o, por consiguiente debe entrar a la base la variable ;81
l costo de la nueva solución es& M1 7 99:E (1?)(309) 7 90: % continuación probamos si esta solución es o no la óptima
El (lgo!"#o % #%6o(#!%*"o % l( $ol/'!)* +ado ue los métodos estudiados no garantizan una solución óptima, es necesario verificar ue no exista una ruta no utilizada ue lo sea. +e ser este el caso, se determina esta nueva solución. "e estudiarán 1 métodos para el mejoramiento de una solución básica factible inicial& a) étodo de la +istribución odificada b) étodo del -aso "ecuencial
M7TODO DEL PASO SECUENCIAL 0) Localizar una celda no básica, ue no tenga costo marginal, $ determinar un circuito con el m*nimo n5mero de celdas básicas siguiendo tra$ectorias !orizontales $ verticales solamente. 1) %signar intercalando signos positivos 2E4 $ negativos 234 al circuito determinado en el paso 0, comenzando con la asignación 2E4 a la celda no básica. 8) +eterminar el costo marginal del circuito localizado, ue consiste en el costo de ingresar una unidad a la celda no básica utilizando los signos del paso 1 9) "i existen celdas no básicas sin costo marginal regresar al paso0. :) "i todas las celdas no básicas tienen costo marginal no negativo la solución actual es óptima. @A. ) Localizar la celda ue tenga el costo marginal más
negativo. %signar a esta celda x-, donde x- es el m*nimo valor de las celdas del circuito ue tienen signo menos 234& :) x- 7 min (x0, x8, x:) ) Deajuste el valor de las celdas básicas en x- conforme a los signos correspondientes& x0 7 x0 3 xx1 7 x1 E xx8 7 x8 3 xx9 7 x9 E xx7xx x: x: O xM 7 M E (Costo arginal) x xG) +escarte los costos marginales de las celdas no básicas $ regrese al paso 0.
M7TODO DE LA DISTRI0UCIÓN MODI2ICADA 0) %signar a cada fila las variables& ui , i 7 0, 1, ..., m %signar a cada columna las variables& vj , j 7 0, 1, ..., n 1) Con cada celda básica se tiene& cij 7 ui E vj se asigna& u0 7 ? determinar las restantes variable u $ v. 8) +eterminar el costo marginal de las celdas no básicas de la siguiente forma& Costo arginal (P, m) 7 cPm O ( uP E vm ) 9) "i todas las celdas no básicas tienen costo marginal no negativo la solución actual es óptima.@A. :) Localizar la celda ue tenga el costo marginal más negativo. +ise#ar un circuito similar al método anterior para esta celda. %signar a esta celda x-, donde x- es el m*nimo valor de las celdas del circuito ue tienen signo menos 234& x- 7 min ( x0, x8, x:) Deajuste el valor de las celdas básicas en x- conforme a los signos correspondientes ) +escarte los costos marginales de las celdas no básicas $ regrese al paso 0.
+.8 EL PRO0LEMA DE ASIGNACION uc!as de las situaciones en la vida exigen una de dos respuestas posibles& si o no. %s* uc!as de las situaciones en la vida exigen una de dos respuestas posibles& si o no. %s* es ue podemos representar éstas posibilidades con los valores ? (no) $ 0 (si), $ aprovec!ar las matemáticas para ue nos den una mano ante decisiones dif*ciles= a esto es lo ue solemos llamar 3por obvias razones3 -rogramación Finaria. /na de las muc!*simas aplicaciones de la -rogramación Finaria, es el problema de la %signación. ste método analiza el problema de asignar un cierto n5mero de recursos a un determinado n5mero de tareas, con base en alg5n tipo de valoración para cada recurso. Cada recurso, podrá ser asignado a una sola tarea. l -% consiste en asignar recursos a tareas en función de un objetivo ligado a la eficiencia del sistema. /n ejemplo t*pico es el de asignación de personas a turnos !orarios, o el de asignar personas a máuinas. l esuema tabular del -% es&
-lanteamiento del problema inimizar el costo total de operación de modo ue& Q cada tarea se asigne a una $ sólo una máuina Q cada máuina realice una $ sólo una tarea
Algo!"#o &(( %"%#!*( l( ($!g*('!)* o&"!#( La utilización del método "@-L; o los métodos del -roblema de ransporte, no resultan eficientes para resolver el -roblema de %signación, por lo cual se utiliza otro método denominado <+< NRA'%D<. l étodo N5ngaro se desarrolló por Su!n, basado en un trabajo de gervár$ $ Sonig. ue Su!n uien lo denominó& étodo N5ngaro.
C(('"%5$"!'( %l M3"oo H*g(o l método a estudiar tiene la siguiente caracter*stica& a) "e garantiza la solución óptima. b) l procedimiento reuiere ue la matriz de costos sea no negativa. c) La solución óptima se obtiene en una matriz de costos euivalente cu$o valor óptimo es cero (?). d) l problema planteado debe estar balanceado&
e) La solución óptima no var*a si a la matriz original se le incrementa un valor P a cada celda. -ero el valor M se incrementa en nP. f) La solución óptima no var*a si a la matriz original se le incrementa un valor P a una fila o columna. -ero el valor M se incrementa en P.
Po'%$o %l M3"oo H*g(o 0) R%/''!)* &o ;!l($ +eterminar el m*nimo valor de cada fila $ restarlo a todas las celdas de su correspondiente fila. sto garantiza un cero en cada fila. 1) R%/''!)* &o 'ol/#*($ +eterminar el m*nimo valor de cada columna $ restarlo a todas las celdas de su correspondiente columna. sto garantiza un cero en cada columna. 8) C/-!#!%*"o % '%o$ Con el m*nimo n5mero de rectas cubrir los ceros de la matriz reducida. mpezar por la fila o columna ue tenga el ma$or n5mero de ceros. "i el n5mero de rectas resulta igual a n (n5mero de tareas o euipos) se !a llegado a la solución óptima -asar al paso : de lo contrario pasar al óptima. :, paso 9. 9) R%/''!)* &o$"%!o Localizar la celda no cubierta de menor costo. Destar el valor determinado a las celdas no cubiertas. "umar el valor determinado a las celdas ue se encuentren en la intersección de las rectas. Degresar al paso 8. :) Lo'(l!<('!)* % l( $ol/'!)* +eterminar las filas ue tengan un 5nico valor cero $ asignarlos, eliminar las columnas correspondientes. +eterminar las columnas ue tengan un 5nico valor cero $ asignarlos, eliminar las filas correspondientes. Depetir este procedimiento tantas veces sea necesario. n caso de celdas con empates seleccionar arbitrariamente. La asignación localizada de valor cero, implantarla en la matriz de costos original $ determinar el valor de M.
-roblema ejemplo xisten : operarios (%, F, C, + $ C) ue tienen ue llenar : cargos (@, @@, @@@, @B $ B). La matriz de costos ue caracteriza el problema de asignación es la siguiente&
+eterminar la asignación óptima 03 "e calcula CTij7 Cij O elemento más peue#o de cada columna
1. "e calcula CUij 7 CTij O elemento mas peue#o de cada fila
8. -rocederemos a encontrar el n5mero m*nimo de recta r ue cubren todos los ceros de la matriz CU
Bemos ue r 7 9 ue es diferente de m7:, por consiguiente no se !a llegado al óptimo 9. n este caso ⍬7 0 (elemento m*nimo no cubierto por las rectas). "e resta ⍬ a todos los elementos no cubiertos por las rectas3 "e suma ⍬ a todos los
elementos en las intersecciones entre 1 rectas $ se vuelve al paso 8. La matriz CU se transforma en
"e observa ue r 7 : 7 m 7:, por consiguiente se !a llegado al óptimo . +eterminamos la asignación óptima
Na$ dos soluciones óptimas& % es asignado a @B F es asignado a @@ C es asignado a @ + es asignado a B es asignado a @@ < bien& % es asignado a B F es asignado a @@ C es asignado a @ + es asignado a @B es asignado a @@@ l costo total del programa en ambos casos es M 7 V 0