danza mínima
FIGURA 8-9 Granea de Gantt para
el lapso de
producción en procesadores paralelos
donde m es el número de máquinas (Graham, 1969). Así, para el problema de tres máquinas, no importa cuáles sean los datos, el algoritmo de la lista TPL nunca produjo un lapso mayor que 23% arriba del lapso óptimo. Éste es un resultado sorprendente, significa una garantía para el heurístico.
Si se permite la interrupción (es decir, que los trabajos se separen y se haga una parte en una máquina y el resto en otra), es sencillo obtener el programa de lapso mínimo. McNaughton (1959) demuestra que el lapso mínimo cuando se permite interrupción es
De manera intuitiva los trabajos se asignan a las máquinas tan parejo como se pueda. Para construir un programa con este lapso, se asignan trabajos de manera arbitraria a la máquina 1, hasta que el tiempo de procesado total es mayor que Cmáx. Se interrumpe el último trabajo, moviendo
a la máquina 2 la parte que excede a Cmáx. Se continúa asignando trabajos a cada máquina de esta
forma; al final se obtiene un programa sin tiempo ocioso y con lapso se programa el trabajo más largo en una máquina, se eliminan el trabajo y la máquina del problema y se procede como antes.
Para garantizar un programa con lapso mínimo sin interrupciones, se debe recurrir a algoritmos enumerativos como ramificación y acotamiento o programación dinámica. Sin embargo, el lapso proporciona una cota inferior sobre el lapso sin interrupciones. Para el ejemplo, Cmiac = máx{19,
53}. Como el algoritmo de la lista TPL construyó un programa con lapso de 54, quedó dentro del 2% alejado del óptimo, que es lo suficientemente cercano para la mayor parte de las aplicaciones. Existe un programa mejor: intercambiar el trabajo 11 en la máquina 2 con el trabajo 9 en la 3, con esto todas las máquinas tienen 53 unidades de procesado, que es igual a la cota inferior y, por lo tanto, debe ser óptima.
En la figura 8-8 se ve que el lapso para el programa de tiempo de flujo mínimo era 59, mientras que en la figura 8-9 se observa que el tiempo de flujo para el programa TPL es 582. Si ambas medidas son importantes, ¿qué programa debe elegirse? De hecho, se puede mejorar mucho el tiempo de flujo del lapso mínimo con sólo invertir el orden de los trabajos en cada máquina, es decir, poniéndolos en el orden TPC. Esto no es lo mismo que el algoritmo de la lista TPC; todavía se hace la asignación según el TPL y se obtienen diferentes asignaciones de los trabajos a las máquinas. Para el ejemplo, al invertir el orden de los trabajos en las máquinas se reduce el tiempo de flujo a 372, que es igual al tiempo de flujo de la lista TPC. Para este ejemplo se puede tener el pastel y también comerlo, ya que se obtienen un buen lapso (54) y el tiempo de flujo óptimo (372) en el mismo programa. Esto sucedió por suerte y no necesariamente ocurrirá en otros problemas.
4.3 Otros modelos
Si la medida no es el lapso o el tiempo de flujo, el problema de programar máquinas paralelas idénticas es mucho más difícil. Si la medida es Tmáx, la lista FEC parecería adecuada; para tiempo de flujo ponderado se usa TPPC. Es sencillo aplicar una extensión del algoritmo de Hodgson para tratar de minimizar el número de trabajos tardíos. Si lo que interesa es la tardanza, puede ser razonable una lista formada con el heurístico de R&M. Desafortunadamente, ninguno de ellos garantizan programas óptimos. El intercambio adyacente por pares puede mejorar la solución. Los procedimientos de búsqueda en una vecindad y simulación de recocido pueden adaptarse para resolver estos problemas. Los algoritmos especializados para otros problemas de máquinas paralelas se encuentran en Arkin y Roundy (1991), en Cheng y Chen (1994) y en So (1990).
Si los procesadores no son idénticos, el problema puede complicarse todavía más. Algunos sistemas paralelos tienen procesadores proporcionales o uniformes. En ese caso, el tiempo para hacer el trabajo j en la máquina k e spik = sk p’j, donde sk refleja la velocidad del procesador k y pfj es
el tamaño del trabajo/ Así, si el trabajo i toma más tiempo en la máquina k que el trabajo j, tomará más tiempo que el trabajo j en cualquier máquina. Los procesadores no relacionados tienen tiempos de procesado pJk que varían por trabajo y máquina sin patrón aparente. Es difícil obtener soluciones
óptimas para estos modelos, pero existen buenos heurísticos. Vea detalles en Morton y Pentico (1993) o en Cheng y Sin (1990).
SECCIÓN 4 EJERCICIOS
8.43. Determine el programa de flujo mínimo para los trabajos descritos en la tabla, procesados en tres máquinas idénticas. Compare el tiempo de flujo con la solución de una sola máquina.
Trabajo; 1 2 3 4 5 6 7 8 9 10
Pi 16 9 10 8 5 11 15 6 3 19
Trabajo/ 11 12 13 14 15 16 17 18 19 20
Pi 8 4 3 11 5 1 11 10 6 5
8.44. Gerry, el mecánico del ejercicio 8.5, puede contratar otro mecánico para ayudarlo a reparar seis automóviles. El mecánico cuesta $10 por hora y debe trabajar un mínimo de cuatro horas. ¿Qué costo por hora tendrá que asignar Gerry al tiempo de espera del cliente para justificar la contrata ción del mecánico?
8.45. AutoElectric produce cables y partes eléctricas para automóvil. Tienen seis órdenes relevantes para cable recubierto. Los tiempos de procesado (en horas) son
Trabajo 12 3 4 5 6 Tiempo 5 5 9 2 6 3
Tienen dos máquinas para recubrir idénticas. ¿Qué programa recomendaría para minimizar el tiempo de flujo?
8.46. PowerTransfer fabrica engranes de precisión grandes que se usan en equipo pesado. Se hacen mediante troquelado y tienen dos troqueles idénticos. Actualmente, son cinco los engranes que deben terminarse para mañana. La compañía sólo cuenta con un turno de trabajadores, pero les puede pagar horas extra para terminar los engranes. Todos los trabajadores del turno se quedan hasta que
terminan todos los trabajos. Los tiempos respectivos para procesar los cinco trabajos son 3,7,2, 15 y 4 horas. ¿Qué programa recomendaría para este problema? Explique.
8.47. Suponga que PowerTransfer (ejercicio 8.46) recibe el pago tan pronto como entrega los engranes. ¿Qué programa recomendaría para este problema? Explique todas las suposiciones que haga y por qué recomienda el programa.
5 TALLERES DE PRODUCCIÓN CONTINUA
El procesado de trabajos de manera secuencial en varias máquinas, recibe el nombre de producción continua. Todos los trabajos se procesan en el mismo orden, por lo que se pueden numerar las máquinas de manera que la máquina 1 hace la primera operación y así sucesivamente. La figura 8-10 describe un taller de producción continua. Las células dedicadas son buenos ejemplos de producción continua. Una familia, o un grupo, de partes se produce en una célula. Cada parte visita, en el mismo orden, las máquinas que componen una célula. Se supone que cada parte debe procesarse en todas las máquinas; si no es así, el tiempo de procesado en una máquina que no es necesaria para un trabajo se iguala a cero. Sólo unos cuantos de estos modelos tienen una solución sencilla. Se comienza con el modelo del lapso de producción para dos máquinas.
5.1
Lapso en un taller de producción continua
con dos máquinas: algoritmo de Johnson
MetalFrame fabrica marcos de metal para puertas. La preparación del embisagrado es una operación de dos pasos. Primero el montaje se forma en una laminadora rodante (máquina 1), después se incrusta el patrón de la bisagra usando una prensa (máquina 2). Se hacen cuatro tipos diferentes de montajes para distintos clientes de MetalFrame. Los tiempos de procesado para los cuatro trabaja actuales (lotes de los diferentes tipos) en cada máquina se dan en la tabla 8-29. El programa "natural" (trabajo 1 primero, trabajo 2 después, etc.) se describe en la gráfica de Gantt de la figura 8-11. El lapso de este programa es 22. ¿Es óptimo este programa?
Al examinar este programa se observa que hay tiempo ociosa Gomo, en este caso, minimizar el lapso es equivalente a minimizar el tiempo ocioso, si se tuviera un tiempo ocioso de cero, el programa sería óptimo» Sin embargo, en la producción continua es imposible tener cero tiempo ocioso. Debido a que el primer trabajo programado en la máquina 2 no puede comenzar hasta que termine en la máquina 1, la máquina 2 debe estar ociosa Bufante este tiempo. De manera similar, la máquina 1 debe estar ociosa mientras se procesa el último trabajo en la máquina 2. (Por supuesto, si se dispone de otros trabajos además de los que están bajo consideración, se pueden procesar en estos tiempos.) Otros tiempos ociosos (como el que hay entre los trabajos 1 y 2 en la máquina 2) pueden no ser necesarios.
FIGURA 8-10