C. ANDROID OS CONSIDERATIONS
4. Google Android Development
Casa 1 2 3 4 5 Costo Tiempo 145 15 290 20 910 40 1150 45 2000 100
Suponiendo que sólo pueden construir una casa a la vez, ¿cuál sería la medida apropiada para programar la construcción de las casas? Use esta medida para determinar el programa que debe seguir el contratista. 8.9. Encuentre el programa que minimiza la tardanza máxima para los siguientes datos.
8.10. Demuestre o dé un contraejemplo para la siguiente afirmación: el TPC minimiza la tardanza má xima.
8.11. Sea Sj = dj - p} el tiempo de holgura para cada trabajo. Demuestre que el tiempo de holgura má
ximo (THM), es decir, S{1] £ S[ 2 ]£ - - ' £ S[n],maximiza L^ = míny.=un{/,,.}.
8.12. Utilice los datos del problema 8.9 para encontrar el programa que minimiza el tiempo de flujo sin trabajos tardíos.
8.13. Desarrolle un algoritmo para minimizar el tiempo de flujo al mismo tiempo que se mantiene Tmi0l
con un valor específico. ¿Es éste un algoritmo exacto? ¿Es polinomial?
8.14. Una pequeña compañía procesadora de alimentos deben realizar siete trabajos (vea la tabla; los datos se expresan en términos de días). El gerente desea entregar las órdenes tan pronto como sea posible, para reducir el espacio que se usa para los trabajos en proceso, y quiere que todos los tra bajos se entreguen con no más de tres días de retraso. ¿Qué programa recomendaría?
8.15. Proporcione un algoritmo para minimizar el tiempo de flujo total en una sola máquina cuando existe precedencia entre los trabajos. ¿Es éste un algoritmo polinomial? ¿Produce programas ópti mos? {Sugerencia: piense en la minimización del tiempo de flujo con todos los trabajos a tiempo.) 8.16. Encuentre un buen programa del tiempo de flujo para los siguientes trabajos con tiempos de libe
ración de las órdenes:
8.17. Devonaire es supervisor del taller de núcleos en Newman Foundries. Se planea llevar a cabo, en la línea de moldeo, cuatro trabajos que necesitan núcleos. Como existe incertidumbre sobre el trabajo actual en proceso, no puede comenzarse un trabajo en el taller hasta que se programe la línea de moldeo. Si el trabajo i necesita núcleos y se programa para comenzar en la línea de moldeo en el tiempo si9 no puede
comenzar en el taller de núcleos hasta s¡- p¡- 4, en donde 4 es un tiempo de compensación arbitrario; Si los núcleos no están listos cuando se programa un trabajo para comenzar en la línea de moldeo, la línea debe esperar hasta que los núcleos estén listos. Los datos de los cuatro trabajos se dan en la tabla, donde los tiempos están en horas y d¡ es el tiempo en que debe entregarse el trabajo para comenzar en la línea de moldeo.
a) ¿Cuál es la función objetivo apropiada para este problema? b) ¿Qué programa recomendaría a Devonaire?
c) Suponga que en el tiempo 10 se cancela el trabajo 2 y se sustituye por los trabajos 5 y 6 con tiempos de procesado 4 y 6 y tiempos de entrega 28 y 36. ¿Qué cambios haría al programa?
8.18. Encuentre la tardanza del programa FEC y del programa heurístico R&M para los siguientes trabajos: Trabajo f 1 2 3 4 5 6 7 8 9 10 Pt *i 7 67 12 75 2 37 6 59 11 67 15 88 9 61 3 48 9 79 14 57
8.19. Dado un vector de tiempos de procesado /?= (1,5,3,4,2,2) y fechas de entrega d = (2,7,9,8,15, 18), encuentre la secuencia de tardanza óptima.
8.20. Demuestre o dé un contraejemplo para la siguiente afirmación: el FEC minimiza la tardanza total si todos los trabajos tienen los mismos tiempos de procesado.
8.21. Demuestre que, si p¡ ^ p¿ y d¡ <> djy entonces el trabajo i debe anteceder al trabajo j en algún
programa óptimo para el problema de la tardanza en una sola máquina.
8.22. Encuentre el programa de tardanza total óptima para el siguiente problema de una sola máquina.
(Sugerencia: use la información que pueda.)
Trabajo/' 1 2 3 4 5 6 Pj dj 79 25 5 96 68 3 102 580 121 260 130 337 147 269
8.23. Encuentre el número mínimo de trabajos tardíos en una sola máquina para los siguientes datos: Trabajo / 1 2 3 4 5 6 7 8 9 10 Pt dt 15 71 11 76 10 73 5 88 25 47 4 59 8 24 3 55 20 23 11 47
8.24. Un taller de reparación de automóviles ofrece un reembolso de $50 a cada cliente cuyo trabajo no esté listo para la fecha prometida. En este momento, el taller tiene cinco automóviles para reparar, con los siguientes tiempos de procesado y fechas de entrega (en días a partir de hoy):
a) Suponga que sólo se puede reparar un automóvil a la vez e indique al gerente en qué orden debe programar el trabajo.
b) Suponga que el taller hace el trabajo gratis en lugar de dar el reembolso de $50. Comente sobre el problema de programación que se obtiene.
8.25. Una estudiante tiene cuatro proyectos para entregar en las próximas dos semanas. Ella puede obtener C de calificación en cada uno sin hacer un esfuerzo adicional, obtener B requerirá más tiem-
8.26. En el problema 8.246), suponga que los costos (en dólares) de las reparaciones fueron 500,1000, 2300,400 y 600. ¿Qué programa recomendaría?
8.27. Proporcione un algoritmo de ramificación y acotamiento para minimizar el número ponderado de trabajos tardíos en una máquina. Sea tan específico como pueda; incluya la solución inicial, calcu le las cotas, dé la ramificación, etc. Algunas figuras pueden ayudarle a explicar sus métodos. 8.28. Desarrolle un modelo de programación matemática para resolver el problema del número ponde
rado de trabajos tardíos en una sola máquina.
8.29. Describa un algoritmo para resolver el problema del número ponderado de trabajos tardíos en una sola máquina, cuando todos los trabajos tienen una fecha de entrega común D.
8.30. Considere el siguiente conjunto de trabajos:
Trabajo/ 1 2 3 4 5 6 7 8 9 10
Pi 5 11 18 8 20 4 14 9 10 16
á) Encuentre la suma mínima de adelanto y tardanza si la fecha de entrega común es 90. b) Repita el inciso anterior si la fecha de entrega es 65.
8.31. Newnan Foundry tiene seis trabajos que realizar para un solo cliente. Como el espacio está en ex tremo limitado, el costo por hora de un trabajo adelantado es casi el mismo que el de uno que se termina después de la fecha de entrega. Hoy es lunes y Newnan Foundry trabaja dos turnos de 10 horas al día, seis días a la semana. Los seis trabajos de este cliente se prometieron a primera hora de la mañana del viernes. Sus tiempos de procesado son 7,12,3,18,10 y 8. ¿Cuándo deben pro gramarse los trabajos? ¿Qué pasaría si se hubieran prometido para el miércoles a las 12 del día? 8.32. Considere los siguientes tiempos de procesado dependientes de la secuencia:
Trabajo 1 2 3 4 5 1 — 22 15 24 15 2 35 — 24 29 1 3 19 23 — 30 13 4 39 18 0 — 9 5 11 0 2 12 —
a) Dé una secuencia según el heurístico del tiempo de preparación más corto. b) Dé una secuencia según el heurístico del arrepentimiento.
c) Dé la secuencia óptima.
8.33. Un troquel hace cuatro partes. Una vez terminada cada parte, se realiza un cambio para la siguien- te parte programada. El tiempo (en horas) para el cambio depende de la secuencia y se muestra en la tabla. El procesado real de las partes puede tomar hasta dos días. Suponga que las partes deben hacerse una a la vez en un programa rotativo, ¿qué secuencia recomendaría?
po y lograr una A en cualquiera de los proyectos parece imposible. Los tiempos (en días de trabajo) y las fechas de entrega (en días a partir de hoy) para los trabajos son
Parte 1 2 3 4
1 — 1 3 4
2 6 — 10 4
3 10 2 — 3
4 2 1 4 —
8.34. Prodigious Plastics, una pequeña compañía, hace partes de plástico que varías compañías usan en productos finales. Por el momento necesitan producir seis lotes de partes en una máquina de mol- deo por inyección. Cuando hay un cambio de partes, la máquina tiene un tiempo de preparación de 10 minutos para colocar otro dado (herramienta). Las partes se hacen de poliestireno (PST) o de polipropileno (PPR). La preparación de la máquina de un tipo de plástico a otro toma dos horas. Estos tiempos son independientes de las partes. Los lotes tienen los siguientes tiempos de proce- sados y bases de plástico.
Trabajo/ 1 2 3 4 5 6 Pi Plástico 50 PST 120 PST 40 PPR 30 PST 130 PPR 210 PST
¿Qué programa recomendaría para minimizar el lapso 4e producción?
8.35. El ejercicio 8.34 es un ejemplo típico de programación por grupos. Se desea programar grupos de trabajos en una sola máquina. Un grupo, i, consiste en los trabajos (i, 1), (i, 2), ..., (i, n(i))> que tiene una preparación común. Hay N grupos de trabajos que deben procesarse. La preparación del grupo i requiere s(i) unidades de tiempo y es independiente del orden en que se producen los gru pos. Sea p(i, j) el tiempo requerido para procesar el trabajo j del grupo i. Si se procesan dos o más trabajos seguidos del mismo grupo, sólo se requiere una preparación. Sin embargo, si se procesa un trabajo del grupo i, seguido de un trabajo del grupo k, seguido de otro trabajo del grupo i, deben realizarse dos preparaciones para el grupo /.
a) Suponga que la medida de desempeño es la suma de los tiempos de terminación de todos los trabajos. Describa el enfoque que adoptaría para resolver este problema.
b) Existen N grupos de nt trabajos con du como la fecha de entrega del trabajo j en el grupo i. To
dos los trabajos en un grupo deben procesarse uno tras otro. Desarrolle un algoritmo para mi nimizar 7^ = máx^máxíO, Cu - d^} para este problema. Suponga que los lotes tienen las
siguientes fechas de entrega: 210,240,350,600,650 y 790. ¿Qué programa recomendaría pa ra minimizar la tardanza máxima?
8.36. Considere los siguientes datos de un problema de tardanza:
Trabajo i 1 2 3 4 5 6 7 8 9 10 Pi 5 57 9 57 11 36 7 43 1 32 10 54 7 54 7 49 15 40 10 50
a) Aplique la búsqueda en una vecindad con intercambio adyacente por pares. b) Compare el resultado con el que se obtiene con intercambio por pares.
8.37. Utilice el método de ramificación y acotamiento para determinar la calidad de la respuesta al ejer cicio 8.36.
8.38. Aplique la búsqueda en una vecindad al ejercicio 8.16.
8.39. Analice en forma breve la diferencia entre la búsqueda en una vecindad y la simulación de reco cido.
8.40. Utilice la simulación de recocido para obtener un programa para los datos del ejercicio 8.36. 8.41. Considere el siguiente problema de programación de una sola máquina con la tardanza como me
dida:
Comenzando con la secuencia semilla 1-2-4-5-3, haga una búsqueda en una vecindad usando in- tercambio adyacente por pares. ¿Es óptimo el programa que resulta? ¿Es sorprendente este resul- tado a la luz del ejercicio 8.20?
8.42. Considere la búsqueda en una vecindad usando intercambio adyacente por pares. Dibuje la vecin- dad para un caso de tres trabajos. Extienda esto a un problema de cuatro trabajos. Desarrolle un ejemplo de un problema de tardanza en una sola máquina, con un programa óptimo local que no sea un óptimo global.
4 MÁQUINAS PARALELAS
Con frecuencia, los problemas de programación consideran varias máquinas. Las máquinas múltiples pueden estar colocadas en paralelo o en serie. En esta sección se estudiarán varios modelos para sistemas paralelos.
La figura 8-7 describe máquinas paralelas. Cuando se usan máquinas múltiples en parale- lo, se supone que cualquier trabajo se puede procesar en cualquiera de las máquinas, y que el tiempo para procesar un trabajo es el mismo en cualquiera de ellas, es decir, son máquinas idénticas. Además, los trabajos consisten en una sola operación; una vez que comienza el pro- cesado de un trabajo en una de las máquinas, debe terminarse. La decisión de programación comprende dos aspectos: qué máquina procesa el trabajo y en qué orden.
Aunque es difícil obtener una solución óptima para los problemas de máquinas idénticas en paralelo, se sabe que para una medida normal la solución óptima se puede ver como una lis- ta programada. Una lista es una secuencia de todos los trabajos. Para crear un programa, se asigna el siguiente trabajó en la lista a la máquina con la menor cantidad de trabajo asignado, y se continúa hasta que todos los trabajos en la lista se asignan. El algoritmo es
Paso 0. Seai/f = 0, i = 1,2, >.., m la carga de trabajo asignada a la máquina i, L = ([1], [2], ..., [/i]) la lista ordenada de la secuencia, Cj = 0* j = 1,2,..., n y k = 1.
FIGURA 8-7