programacion de operaciones - secuenciacion de trabajos

57
PROGRAMACION A CORTO PLAZO 1 DEDICATORIA: La presente monografía es el resultado de un trabajo de búsqueda de información necesaria, para representar una idea clara y concisa. Está dedicado a nuestros seres queridos, por apoyarnos en todo momento. También estamos agradecidos a usted

Upload: alonso-carrasco-siancas

Post on 07-Jul-2016

24 views

Category:

Documents


2 download

DESCRIPTION

Maquinas paralelasAlgoritmo de JohnsonProduccion intermitente

TRANSCRIPT

Page 1: Programacion de operaciones - Secuenciacion de Trabajos

PROGRAMACION A CORTO PLAZO 1

DEDICATORIA:La presente monografía es el resultado de un trabajo de búsqueda de información necesaria, para representar una idea clara y concisa.

Está dedicado a nuestros seres queridos, por apoyarnos en todo momento.

También estamos agradecidos a usted por su labor pedagógico, hacia cada uno de nosotros.

Page 2: Programacion de operaciones - Secuenciacion de Trabajos

INDICEN° PAGINA

INTRODUCCION………………………………………………………………3

PROGRAMACION A CORTO PLAZO………………………………………4

Importancia, criterio y técnicas………………………………………….5 Secuenciación de trabajos………………………………………………6

MAQUINAS PARALELAS……………………………………………………….7

TALLERES DE PRODUCCION CONTINUA ………………………………...10

Enfoque de los sistemas productivos…………………………………16 Medición del desempeño……………………………………………….17 Tipos de secuenciación ………………………………………………..19

TALLERES DE PRODUCCIÓN CONTINUA: ALGORITMOS DE PROGRAMACION………………………………………………………………21

Lapso en un taller de producción continúa con dos máquinas…….21 Algoritmo de Johnson ………………………………………………….22 Lapso de producción con más de dos máquinas……………………26

ALGORITMOS HEURISTICOS………………………………………………..28

Trabajo en 2 máquinas…………………………………………………30 Secuenciación dinámica de trabajos………………………………….30 Otras medidas…………………………………………………………...33

SISTEMA DE PRODUCCION INTERMITENTE……………………………. 34

Objetivo…………………………………………………………………..34 Características…………………………………………………………..34 Ventajas y desventajas…………………………………………………35 Planificación……………………………………………………………..36 Problemática…………………………………………………………….36 Regla de Jackson……………………………………………………….39 Tipos de prioridades…………………………………………………….40

CONCLUSIONES……………………………………………………………..41

BIBLIOGRAFIA………………………………………………………………..42

PROGRAMACION A CORTO PLAZO 2

Page 3: Programacion de operaciones - Secuenciacion de Trabajos

INTRODUCCION

La globalización y el inicio de la era “punto com”, en las últimas décadas han traído consigo grandes cambios en aspectos sociopolíticos, se ha ingresado en una era de tendencias fruto del intercambio de información y la internet, la globalización llevo consigo la alta competitividad y búsqueda de estándares de alta calidad en producción, en los inicios de la revolución industrial se dio inicio a estándares de procesos y tiempos, se dio alta calificación de importancia al uso de máquinas de vapor, esto daba como ventaja la definición de procesos un tanto más burda y sencilla que a comparación de la época actual en la que estamos marcados por altas tendencias que hacen que las fluctuaciones de demanda oscilan de manera más desordenada e inesperada que pide de cada ingeniero o administrador de operaciones realizar la programación de manera mucho más analítica y mucho más rápida de los procesos ya sean en procesos productivos y de servicios.

En todo sistema de producción las necesidades de los clientes se traducen en órdenes de producción que se liberan y "transforman" en trabajos con fecha de entrega asociada. La programación de producción que asigna estos trabajos a recursos productivos limitados, debe realizarse de manera detallada y eficiente para permitir un mejor control de las operaciones dentro del sistema productivo y constituir una ventaja competitiva difícil de imitar.

Los problemas de programación de tareas en máquinas tratan sobre la asignación de recursos escasos a través del tiempo. Ellos surgen en distintos escenarios, como por ejemplo, un sitio de construcción donde el jefe debe asignar trabajos a cada empleado, una CPU que debe procesar tareas requeridas por varios usuarios, o en las líneas de producción de una fábrica que debe procesar productos para sus clientes. En general, una instancia de un problema de programación en máquinas consiste en un conjunto de n trabajos y un conjunto de m maquinas.

PROGRAMACION A CORTO PLAZO 3

Page 4: Programacion de operaciones - Secuenciacion de Trabajos

PROGRAMACION A CORTO PLAZO

La programación a corto plazo puede considerarse como el último eslabón de la planeación de la producción; esta etapa consiste a grandes rasgos en ajustar tareas u operaciones particulares a personas y máquinas específicas. Su horizonte de tiempo está dado en días, horas y minutos; razón por la cual requiere del profesional que la desarrolle, pericia, dinamismo, y practicidad en su ejecución. El grado de influencia de la programación a corto plazo en los resultados de la compañía es determinante, ya que de ella depende el cumplimiento de los plazos de entrega, factor crítico en la búsqueda de una ventaja competitiva basada en el tiempo.

Programación a corto plazo en el horizonte de planeación:Los programas a corto plazo convierten lo establecido en la planeación agregada, y los entregables de los planes maestros de producción en asignaciones de cargas y secuencias muy específicas de fuerza laboral, materiales y maquinaria. Su principal objetivo es cumplir con las metas de demanda de acuerdo a la capacidad disponible; una programación a corto plazo puede efectuarse de muchas maneras, el tipo de programación que se utilice para asignar las cargas depende en gran medida del enfoque del sistema productivo, y la secuencia depende de los criterios de programación que primen teniendo en cuenta los factores que afecten el proceso.

PROGRAMACION A CORTO PLAZO 4

Page 5: Programacion de operaciones - Secuenciacion de Trabajos

Importancia estratégica:

La importancia estratégica de la programación es clara:

La programación efectiva implica un movimiento más rápido de bienes y servicios a través de una instalación. Esto significa un mayor uso de sus activos y, por consiguiente, mayor capacidad por dólar invertido, lo que a su vez reduce los costos.

La capacidad agregada, la producción más rápida, y la flexibilidad relacionada proporcionan un mejor servicio al cliente mediante una entrega más rápida.

Una buena programación también contribuye a crear compromisos realistas y, por ende, a una entrega confiable.

Tecnicas de programacion:

Las técnicas utilizadas en la programación a corto plazo se pueden clasificar en:

Programación hacia adelante: Esta programación se inicia tan pronto como se conocen los requerimientos de producción, utilizarla implica en gran medida desconsiderar la fecha de entrega, y es utilizada usualmente en procesos que trabajan sobre pedido, en los que la entrega se requiere lo antes posible, por ejemplo en restaurantes, centros de belleza, hospitales, talleres satélite dedicados a la maquila, etc.

Programación hacia atrás: Esta programación inicia con la fecha de entrega del pedido, su principal consideración es cumplir con los plazos de entrega pactados o establecer plazos alcanzables. La dinámica de esta programación consiste en programar en primer lugar la operación final, y sucesivamente las operaciones que la anteceden en orden inverso.

Criterios de programación:

La elección de la técnica de programación correcta depende de múltiples factores, entre los que se destacan la naturaleza del proceso, la flexibilidad de los centros de trabajo, el volumen de los requerimientos y la consideración de los siguientes criterios por parte de la compañía, la importancia que se le dé a cada criterio depende en gran medida de las ventajas competitivas consignadas en el plan estratégico.

PROGRAMACION A CORTO PLAZO 5

Page 6: Programacion de operaciones - Secuenciacion de Trabajos

1. Maximizar la utilización: Consiste en el uso que la técnica empleada haga de la capacidad instalada.

2. Minimizar el tiempo medio de terminación: Consiste en la capacidad que tiene la técnica para efectuar entregas de pedidos, es muy bien estimada por la parte financiera dado que optimiza los flujos de dinero de la empresa.

3. Minimizar la media de trabajo en proceso: Consiste en reducir el número de trabajos que permanecen en el sistema.

4. Minimizar los retrasos de los pedidos: Consiste en reducir el tiempo medio de espera de los clientes, teniendo en cuenta las fechas de entrega.

Secuenciacion de trabajos:

Principios de prioridad para la secuenciación de trabajos

PEPS - Primero en entrar, primero en servir (First Come, First Served): El primer trabajo en llegar al sistema se procesa en primer lugar.

TPC - Tiempo de procesamiento más corto (Shortest Processing Time): El trabajo que tenga el tiempo de proceso más corto se procesa en primer lugar.

TPL - Tiempo de procesamiento más largo (Longest Processing Time): El trabajo que tenga el tiempo de proceso más largo se procesa en primer lugar.

FEP - Fecha de entrega más próxima (Earliest Due Date): El trabajo que tenga la fecha de entrega más próxima se procesa en primer lugar.

Los principios o reglas de prioridad no deben confundirse con los criterios de programación, puesto que estos principios proporcionan una secuencia de procesamiento que tendrá unos indicadores de desempeño (criterios de programación), la elección de la mejor secuencia se relacionará con las políticas de la compañía y como se ve afectada en dichos indicadores (tiempos de espera, utilización, retrasos).

PROGRAMACION A CORTO PLAZO 6

Page 7: Programacion de operaciones - Secuenciacion de Trabajos

Maquinas paralelas:En esta parte del trabajo se trata el problema del taller de máquinas paralelas idénticas con tiempos de preparación dependientes de la secuencia, que consiste en resolver la programación de trabajos en un sistema de capacidad múltiple con m máquinas que realizan operaciones iguales, dispuestas en paralelo y n trabajos a procesar en una, y sólo una, de las máquinas.

El concepto de máquinas idénticas significa que cada trabajo puede ser procesado en cada una de las máquinas con igual tiempo de proceso. El tiempo de preparación en el que se incurre al procesar un trabajo en una máquina depende del trabajo previamente procesado en la misma. Este tipo de configuración está presente en diferentes ambientes de manufactura como en la industria textil, industria de la madera, etcétera.

El tiempo de proceso de cada trabajo está fijo y existen tiempos de preparación de máquinas que dependen del orden en el que se procesan los trabajos en cada una. El objetivo considerado en este trabajo es minimizar el makespan (Cmax), que consiste en minimizar el intervalo de tiempo entre el inicio del procesamiento del primer trabajo (tiempo de referencia 0) y el tiempo de terminación del procesamiento del último trabajo, es decir, el intervalo de tiempo en el que se procesa completamente la totalidad de los trabajos (órdenes de producción). Se consideran los siguientes supuestos:

1. Cada trabajo debe ser procesado en una, y sólo una, máquina k, k = 1, 2,..., m.

2. El tiempo de proceso del trabajo i, independiente de la máquina, está dado por pi (i = 1,..., n).

3. Los tiempos de preparación para procesar el trabajo j después del trabajo i, independiente de la máquina, está dado por sij (i = 1,..., n; j = 1,…, n), donde si i representa la preparación inicial cuando el trabajo i es el primer trabajo procesado en una máquina.

4. Cada máquina puede procesar sólo un trabajo a la vez. 5. El proceso de un trabajo en una máquina no se puede interrumpir. 6. Todos los trabajos son independientes entre sí y se encuentran

disponibles en el instante inicial. 7. Las máquinas operan sin fallas en el horizonte de programación. 8. El objetivo es minimizar Cmax (makespan).

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 los siguientes puntos se estudiarán algunos modelos para sistemas paralelos.

PROGRAMACION A CORTO PLAZO 7

Page 8: Programacion de operaciones - Secuenciacion de Trabajos

Esta figura describe máquinas paralelas. Cuando se usan máquinas múltiples en paralelo, 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 procesado 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 lista programada. Una lista es una secuencia de todos los trabajos. Para crear un programa, se asigna el siguiente trabajo 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. 

Método de tiempo de flujo:

Teniendo en cuenta el problema de asignar a una sola máquina bajo el criterio de asignar primero el de menor tiempo de procesamiento, de manera que se minimice el tiempo de procesamiento. Se inicia programando el trabajo con el menor tiempo en cualquier máquina, luego se programa el siguiente trabajo en la máquina que tenga el menor tiempo de procesado, para así continuar hasta que todos los trabajos sean programados.

La cantidad de tiempo que un trabajo pasa en el sistema de servicio o manufacturero se conoce como tiempo de flujo del trabajo.

PROGRAMACION A CORTO PLAZO 8

Page 9: Programacion de operaciones - Secuenciacion de Trabajos

Es la suma del tiempo que hay que esperar para recibir atención de un dependiente o para que se desocupe una máquina, el tiempo del proceso (incluidas las preparaciones), el tiempo de tránsito entre las distintas operaciones y los retrasos ocasionados por averías de las máquinas, la falta de disponibilidad de los bienes o componentes facilitadores y otras cosas por el estilo. La minimización de los tiempos de flujo del trabajo apoya las prioridades competitivas de costo (menos inventario) y tiempo (rapidez en la entrega).

Tiempo de flujo del trabajo = Tiempo de terminación – Tiempo en que el trabajo estuvo disponible para la primera operación de procesamiento.

El tiempo de inicio es el tiempo en el que el trabajo estuvo disponible para la primera operación de procesamiento, y no necesariamente el momento en que se inició la primera operación de dicho trabajo. El tiempo de flujo del trabajo se conoce a veces como tasa de producción en cuanto al tiempo o tiempo pasado en el sistema, incluido el servicio.

Lapso de producción:

Supongamos que se quiere minimizar el lapso en lugar del tiempo de flujo. Desafortunadamente, no se cuenta con un algoritmo eficiente para minimizar el lapso, ni siquiera cuando se trata de sólo dos máquinas. Sin embargo, la lista del programa proporciona un buen heurístico.

Si alguna vez se ha ayudado a alguien a cargar un camión, tal vez haya colocado los artículos más grandes primero y usado los más pequeños para llenar los espacios libres. La misma filosofía se aplica a la construcción de los programas que minimizan el lapso. Se usa primero una lista del tiempo de procesado más largo (TPL) y se asigna el siguiente trabajo en la lista a la máquina con el menor tiempo de procesado total asignado.

El tiempo total necesario para completar un grupo de trabajos se conoce como lapso de fabricación (makespan). La minimización del lapso de fabricación apoya las prioridades competitivas de costo (menos inventario) y tiempo (rapidez en la entrega).

Lapso de fabricación = Tiempo de terminación del último trabajo – Tiempo de inicio del primer trabajo

PROGRAMACION A CORTO PLAZO 9

Page 10: Programacion de operaciones - Secuenciacion de Trabajos

TALLERES DE PRODUCCIÓN CONTINUA

Complejidad algorítmica:

Morton y Pentico (1993) afirman: "programar es el proceso de organizar, elegir y dar tiempos al uso de recursos para llevar a cabo todas las actividades necesarias, para producir las salidas deseadas en los tiempos deseados, satisfaciendo a la vez un gran número de restricciones de tiempo y relaciones entre las actividades y los recursos". Esta definición implica que, si los recursos no están limitados, no existe el problema. En el problema de la fundidora, los trabajos son las actividades y las máquinas son los recursos.

Entonces un programa especifica el tiempo en el que comienza y termina cada trabajo en cada máquina, al igual que cualquier recurso adicional que se necesite. Una secuencia es un orden simple de trabajos; 3-1-2 indica que el trabajo 3 se hace primero, el 1 es el segundo y el 2 es el último. Si cada trabajo comienza tan pronto como es posible y se procesa sin interrupción para un tiempo dado de procesamiento, la secuencia determina los tiempos de inicio y terminación y, por lo tanto, determina la programación. Determinar la "mejor" secuencia parece sencillo; sólo se enumeran todas las secuencias y se elige la que optimiza alguna medida de desempeño. Para 32 trabajos, el número de secuencias posibles es 32!« 2.6 x 1035 secuencias posibles. Suponga que una computadora puede examinar mil millones de secuencias por segundo, ¡tomaría 8.4 x 1015 siglos enumerarlas todas!

Una computadora que fuera un millón de veces más rápida todavía tardaría 8.4 x 109 siglos para examinarlas. Con sólo 16 trabajos existen más de 20 billones de programas, que a una tasa de mil millones de secuencias por segundo, podrían enumerarse más o menos en 8 meses. Muy pocos problemas de programación son tan sencillos. Los recursos adicionales (mano de obra, materia prima, etc.) y las dependencias entre trabajos (como la preparación) complican aún más el problema.

Esta explosión combinatoria muestra por qué es difícil resolver algunos problemas de programación y la razón por la que su estudio es interesante. El capítulo comienza con el examen del entorno de la programación, incluyendo trabajos, máquinas, medidas de desempeño y algoritmos. Luego se estudian los modelos de programación de una sola máquina; estos modelos se clasifican según la medida de desempeño. Después de los modelos de una sola máquina, se examinan los sistemas de programación de capacidad finita y se comenta sobre el software disponible y la evolución de la programación.

Éste es un análisis intuitivo más que una descripción matemática precisa. Aunque las siguientes afirmaciones no son exactas, son bastante buenas para

PROGRAMACION A CORTO PLAZO 10

Page 11: Programacion de operaciones - Secuenciacion de Trabajos

las consideraciones prácticas. Un tratamiento más preciso se puede encontrar en Garey y Johnson (1979).

Un algoritmo enciente es aquel en el que el esfuerzo dedicado a un problema está acotado por un polinomio cuyo grado es el tamaño del problema, como el número de trabajos.

Antecedentes:

Esta sección proporciona antecedentes para los problemas, modelos y algoritmos de programación.

Se analizará el entorno de la programación y se definirá la terminología y notación. Se usa la terminología clásica para programar los trabajos en las máquinas, pero éstos son términos genéricos y existen muchas aplicaciones fuera de la manufactura.

Trabajos:

Los trabajos son actividades a realizar. En el ejemplo introductorio, los trabajos eran las órdenes de los clientes. En otras situaciones, los trabajos pueden ser pacientes para rayos X, clientes para servir en un restaurante, programas para correr en una computadora o aviones que van a aterrizar en un aeropuerto. Se supone que cada trabajo tiene un tiempo de procesado conocido.

A menos que se establezca de otra manera, una vez que comienza a realizarse un trabajo, debe procesarse continuamente hasta terminarlo; es decir, no se permiten interrupciones. Puede tenerse una fecha de entrega en la que el trabajo debe estar terminado. Un trabajo también puede tener una fecha de inicio (o fecha de distribución de la orden), antes de la cual el procesamiento no puede comenzar.

Un trabajo puede depender de otro. Un tipo de dependencia ocurre cuando un trabajo debe preceder a otro; por ejemplo, un orificio no se puede roscar antes de perforarse. Otro tipo de dependencia ocurre cuando el tiempo necesario para un trabajo depende de que el trabajo anterior sea procesado. Si el trabajo 1 necesita un conjunto de herramientas en una máquina y el trabajo 2 necesita otro, entonces después de procesar el trabajo 1 debe cambiarse el herramental antes de procesar el trabajo 2. Si el trabajo 3 necesita las mismas herramientas que el trabajo 1, entonces la secuencia 1-2-3 requiere más preparaciones que la secuencia 1-3-2. Esto se conoce como tiempo de preparación dependiente de la secuencia. Si los tiempos de preparación no dependen de la secuencia, se pueden incluir en el tiempo de procesado. Se supone que los trabajos son independientes a menos que se diga lo contrario.

PROGRAMACION A CORTO PLAZO 11

Page 12: Programacion de operaciones - Secuenciacion de Trabajos

Máquinas:

Las máquinas procesan trabajos. En la manufactura, una máquina puede ser una máquina de moldeo automático. En situaciones fuera de la manufactura, una máquina puede representar un aparato de rayos X, un mesero en un restaurante, una computadora o una pista de aterrizaje.

Los entornos de las máquinas se dividen en varias clases: una sola máquina, máquinas paralelas, talleres de producción continua, producción intermitente y plantas abiertas.

Para los problemas en una sola máquina, se tiene sólo una máquina y deben procesarse en ella todos los trabajos. La máquina puede procesar a lo más un trabajo a la vez. Una vez que un trabajo se ha procesado en la máquina, se termina. El ejemplo introductorio considera que la línea de producción es una sola máquina.

Varias máquinas que pueden realizar el mismo tipo de procesamiento se llaman máquinas paralelas. Un trabajo se puede procesar en cualquiera de las máquinas, y una vez procesado por cualquiera de ellas, queda terminado. A menos que se diga lo contrario, se supone que todas las máquinas paralelas son idénticas. El tiempo para procesar un trabajo en una de varias máquinas idénticas es independiente de qué máquina lo haga. Un buen ejemplo de máquinas paralelas es un grupo de máquinas de moldeo por inyección, cada una de las cuales puede hacer varias partes de plástico diferentes.

Un taller de producción continua contiene máquinas diferentes. Cada trabajo debe procesarse en cada máquina exactamente una vez. Más aún, todos los trabajos siguen la misma ruta; esto es, deben visitar las máquinas en el mismo orden. Sin pérdida de generalidad, se pueden numerar las máquinas de manera que la 1 sea la primera, la 2 la segunda, y así sucesivamente.

Un trabajo no puede comenzar su procesado en la segunda máquina hasta no terminar el de la primera. Las líneas de ensamble y las células son ejemplos típicos de producción continua.

Un taller de producción intermitente es más general que el de producción continua: cada trabajo tiene una ruta única. Los talleres de metalmecánica son con frecuencia intermitentes.

Un trabajo debe pasar por el torno, después por un taladro y luego a un molino; mientras que otro irá al molino y luego al torno, pero nunca pasa por el taladro.

Los talleres abiertos son aquellos en los que los trabajos no tienen una ruta específica. Un ejemplo sería un taller mecánico (de reparación de automóviles). Los vehículos necesitan reparaciones múltiples que requieren distintos equipos, pero el orden de las reparaciones carece de importancia. Como los talleres abiertos son poco usuales en el mundo de la manufactura, no se analizarán.

PROGRAMACION A CORTO PLAZO 12

Page 13: Programacion de operaciones - Secuenciacion de Trabajos

Medición:

El mejor programa implica una medida de desempeño. Maximizar la ganancia o minimizar el costo son medidas obvias. Desafortunadamente, es difícil estimar los parámetros financieros que relacionen un programa con costo o ganancia. Por otro lado, no se conocen algoritmos eficientes para optimizar la ganancia o el costo en modelos de programación de la producción.

Se usan objetivos sustitutos para aproximar algunos costos relevantes. La mayoría de los sustitutos son medidas normales. Una medida normal es una función del tiempo de terminación, en la que el objetivo es minimizar la función y donde esa función sólo se incrementa si al menos un tiempo de terminación en el programa aumenta. Sean:

n = número de trabajos que serán procesados m = número de máquinas

pk. = tiempo de procesado del trabajo i en la máquina k

r¡ = tiempo de liberación de la orden (o fecha de distribución)

del trabajo

d¡ = fecha de entrega del trabajo

w¡ = ponderación (importancia o valor) del trabajo i respecto

a los otros trabajos

Dado un programa específico, se define para cada trabajo i:

C¡ - tiempo de terminación del trabajo i

F¡ = (C¡ - r¡), tiempo de flujo del trabajo i (F¡ > 0)

L¡ = (C¡ - d¡), retraso del trabajo, (L¡<0, denota adelanto o

anticipación).

T¡=max{0, L¡}, tardanza del trabajo i.

E¡=max{0, -L¡}, anticipación del trabajo i.

δ¡=1 si el trabajo i se atrasa (es decir T¡>0).

δ¡=0 si el trabajo i se adelanta o está a tiempo ( es decir

T=0).

Cmáx= max i=1,n {Ci}, tiempo máximo de terminación de

todos los trabajos y lapsos.

Lmax= max i=1,n {Li}, retraso máximo de todos los trabajos.

Tmax= max i=1,n {Ti},tardanza máxima de todos los

trabajos.

La cota del peor casoPROGRAMACION A CORTO PLAZO 13

Page 14: Programacion de operaciones - Secuenciacion de Trabajos

Sobre la eficacia determina el número de cálculos que debe realizar el algoritmo para cualquier problema práctico de un tamaño específico (de ahí el nombre de "peor caso"). Un buen algoritmo acota el número de cálculos por una función polinomial del tamaño del problema. Esto no se ha hecho para algunos algoritmos heurísticos que deben ser evaluados en forma empírica. Para dar una justificación teórica de la calidad de un algoritmo heurístico, debe probarse matemáticamente que genera una solución dentro de cierto porcentaje de optimalidad, sin importar el problema particular que se está resolviendo. Igual que con la eficacia, si la calidad de un algoritmo heurístico no tiene justificación teórica, debe juzgarse de manera empírica. Las pruebas empíricas consisten en generar y resolver muchos problemas prácticos y analizar los resultados. Se puede determinar el tiempo promedio para resolver el problema. Se puede encontrar la diferencia entre las soluciones heurística y óptima para problemas pequeños.

Para casos en los que no se puede obtener la solución óptima, la solución heurística se compara con una cota sobre la solución óptima. Si existe una diferencia pequeña, la calidad del heurístico parece buena. La causa de una diferencia grande puede ser una cota débil o un heurístico pobre. Si el algoritmo heurístico tiene un buen desempeño en los casos de prueba, se hace la suposición de que se desempeña igual en otros casos. Esto puede no ser cierto para algún caso que difiera de las pruebas. Al ponerlo en marcha debe compararse la solución heurística con la solución actual.

Todos los algoritmos heurísticos que se estudian han tenido un buen desempeño en las pruebas. Estas pruebas empíricas están publicadas y se dan las referencias en la literatura sobre programación. Esto no es una garantía de soluciones buenas o ni siquiera que se puedan usar.

La implantación de un algoritmo heurístico debe siempre ir precedida de pruebas con ejemplos "típicos" de la aplicación. Un algoritmo es una "receta" para obtener una solución de un modelo.

Un caso es un conjunto de datos específico para el modelo. Los algoritmos exactos proporcionan una solución óptima para todos los casos del problema. Los algoritmos heurísticos dan soluciones que se espera sean óptimas o cercanas a la óptima en cualquier caso.

¿Por qué no siempre se usan algoritmos exactos? Para muchos modelos de programación, los únicos algoritmos exactos que se conocen están basados en la enumeración, como el de ramificación y acotamiento o la programación dinámica. En los casos prácticos, la naturaleza combinatoria del problema de programación los hace computacionalmente prohibitivos.

Breve recorrido de la programacion de operaciones

PROGRAMACION A CORTO PLAZO 14

Page 15: Programacion de operaciones - Secuenciacion de Trabajos

Gráficas de Gantt:

A principios del siglo XX, Henry Gantt (1911) fue un pionero en el aumento de la productividad a través de una mejor programación. Una de sus primeras herramientas fue una representación pictórica de un programa, ahora llamada gráfica de Gantt en su honor. El propósito de la gráfica es desplegar el estado de cada recurso (casi siempre una máquina) en todo momento. El eje x representa el tiempo y el eje y consiste en una barra horizontal para cada máquina. Cuando tiene que procesarse un trabajo en una máquina, se coloca un rectángulo en la barra horizontal, que comienza en el tiempo de inicio del trabajo y concluye en su tiempo de terminación. Las gráficas de Gantt también se pueden construir colocando trabajos en lugar de máquinas en el eje y.

Programación de una sola máquina:

En esta sección se estudiarán los modelos para una sola máquina y sus soluciones. Estos modelos también son útiles para programar varias máquinas.

Los modelos de una sola máquina también son adecuados para procesos en serie que contienen una máquina cuello de botella que restringe al sistema completo.

Es importante generar un buen programa para la máquina cuello de botella porque su programación determina el programa para las máquinas que están antes y después del cuello de botella.

Primero se estudian algoritmos sencillos para varios modelos, cuyas medidas de desempeño son tiempo de flujo, retraso y tiempo de flujo ponderado. Después se dan algoritmos sencillos para minimizar el retraso máximo, la tardanza máxima y el número de trabajos tardíos. Desafortunadamente, minimizar el número ponderado de trabajos tardíos no tiene una solución elegante, pero se presenta un algoritmo heurístico. Minimizar la tardanza en una sola máquina es un problema difícil.

Enfoque estratégico de los sistemas productivos

PROGRAMACION A CORTO PLAZO 15

Page 16: Programacion de operaciones - Secuenciacion de Trabajos

El enfoque estratégico de un sistema de producción o transformación determina la metodología (forma) de generación de bienes o servicios, que cumplan claramente con las necesidades planteadas por el cliente y los parámetros de calidad establecidos para el producto, enmarcado en la optimización de los recursos de acuerdo a la estrategia de la organización y a su enfoque competitivo.

Existen a grandes rasgos cuatro enfoques estratégicos de procesos productivos, y la mayoría de los sistemas de producción de la actualidad se pueden identificar con estos enfoques o como mínimo con una variación de los mismos. Estos enfoques son:

Enfoque en el proceso. Enfoque repetitivo. Enfoque en el producto. Personalización Masiva (Mass Customization).

Medidas de eficiencia

Productividad

La productividad es la medida de la eficiencia que se define como la calidad de producto conseguida por unidad de entrada o insumo.

"Productividad es el cociente que se obtiene de dividir la producción por uno de los factores de la producción".

Eficiencia:

Es la razón entre la producción real obtenida y la producción estándar esperada.

Por ejemplo: si la producción de una maquina fue de 120 piezas/hrs mientras que la tasa estándar es de 180 piezas/hrs. Se dice que la eficiencia de la maquina fue de: 

Eficiencia= (120/180) 0.6667= 66.67

Medición del desempeñoPROGRAMACION A CORTO PLAZO 16

Page 17: Programacion de operaciones - Secuenciacion de Trabajos

Para medir correctamente el desempeño de una empresa debemos usar dos conjuntos de medidas: uno desde el punto de vista de las finanzas y el otro desde el de las operaciones.

Medidas de las finanzas

Las medidas de la capacidad de la empresa para ganar dinero son tres:

La utilidad neta: una medida absoluta en dólares. El rendimiento de la inversión: una medida relativa basada en la

inversión. La liquidez: una medida de la posibilidad de sobrevivir.

Medidas de las operaciones

Las medidas de las finanzas funcionan bien para el nivel alto, pero no las podemos usar al nivel de las operaciones. Necesitamos otra serie de medidas que nos guíen:

Salidas: velocidad a la cual el sistema genera dinero por medio de las ventas.

Inventario: dinero que el sistema ha invertido en adquirir bienes que piensa venderá.

Gastos de operación: dinero que el sistema gasta para convertir el inventario en rendimiento.

Secuenciación de n trabajos en un centro de trabajo:La determinación de la secuencia de cada orden de trabajo a través de cada centro de trabajo en que se deben realizarse los trabajos en cada centro de trabajo, es un proceso conocido como secuenciación de trabajo. Las órdenes de trabajo son asignadas a sus correspondientes centros de trabajo garantizando la fecha de entrega. Dicha asignación de las tareas en los centros de trabajo se conoce como carga de la máquina.

OBJETIVOS DE LA SECUENCIACIÓN DE TRABAJOS:

1: Termino de productos en la fecha de entrega2: Minimización del tiempo de producción 3: Minimización del trabajo en proceso4: Maximización de la utilización del centro de trabajo5: Menor costo de producción6: Maximización de utilidades

DEFINICION DE UN CENTRO DE TRABAJO:

PROGRAMACION A CORTO PLAZO 17

Page 18: Programacion de operaciones - Secuenciacion de Trabajos

Organización funcional cuyos departamentos o centros de trabajo se organizan alrededor de ciertos tipos de equipos u operaciones; en ellos, los productos fluyen por los departamentos en lotes que corresponden a los pedidos de los clientes.

PRINCIPIOS DE LA PROGRAMACION DEL CENTRO DE TRABAJO:

Los siguientes principios resumirían gran parte de nuestra explicación de los sistemas de programación del centro de trabajo:

1. El flujo del trabajo es directamente equivalente al flujo monetario.2. La velocidad del flujo por todo el taller debe servir de medida de la

eficacia de un taller cualquiera.3. Programe los trabajos en forma de cuentas de collar, con los pasos del

proceso lado con lado.4. Cuando se ha iniciado un trabajo no debe ser interrumpido.5. Concentrarnos en los centros de trabajo y los trabajos que representan

un cuello de botella nos permitirá alcanzar una velocidad de flujo más eficiente.

6. Reprogramar todos los días.7. Obtener retro alimentación, todos los días, respecto de trabajos que no

han quedado terminados en cada uno de los centros de trabajo.8. Equipar la información que entra del centro de trabajo y lo que el

trabajador realmente puede hacer.9. Cuando pretendamos aumentar la producción, buscar si existe alguna

incompatibilidad entre el diseño de Ingeniería y la ejecución del proceso.10.En un taller, es imposible tener certidumbre respecto de las normas las

rutas y demás, pero siempre debemos esforzarnos por alcanzarlas.

TIPOS DE SECUENCIACION:

PROGRAMACION A CORTO PLAZO 18

Page 19: Programacion de operaciones - Secuenciacion de Trabajos

SECUENCIACION SIMPLE:

La secuenciación simple consiste en determinar el orden en que se debe realizar los trabajos en un centro de trabajo. La secuenciación de trabajos, que forma parte del proceso de control en un sistema de fabricación, es necesaria cuando un conjunto común de recursos debe ser compartido, para fabricar una serie de productos durante el mismo periodo de tiempo. El objetivo de la secuenciación es la asignación eficiente de máquinas y otros recursos a los trabajos, o a las operaciones contenidas en estos, y la determinación del momento en el que cada uno de estos trabajos debe procesarse.

SECUENCIACIÓN DE PEDIDOS:

Esta actividad consiste, en la determinación del orden en que serán procesados los pedidos en cada centro de trabajo, una vez establecida la existencia de capacidad. El problema de la Secuenciación se hace más complejo en la medida que aumenta el número de centros de trabajo, sin importar la cantidad de pedidos; así mismo, es importante tomar en cuenta el tipo de configuración del taller, pues de esto depende la aplicabilidad de las diferentes técnicas.

En lo referente a talleres configurados en Flow Shop, las técnicas más conocidas son:

1: Técnicas de Secuenciación en una máquina: algoritmo húngaro, algoritmo de Kauffman, regla SPT y el método de persecución de objetivos utilizado en los sistemas Kanban.

2: Técnicas de Secuenciación en varias máquinas: regla de Johnson para N pedidos y dos máquinas, regla de Johnson para N pedidos y tres máquinas y reglas para N pedidos y M máquinas (algoritmo de Campbell-Dudek-Schmith, algoritmo de Bera, técnicas de simulación, sistemas expertos y más recientemente los Sistemas Cooperativos Asistidos).

SECUENCIACIÓN MÚLTIPLE:

Es determinar el orden en que se debe realizar los trabajos en dos o más centros de trabajo.

SECUENCIACIÓN DE N TRABAJOS EN MÚLTIPLES CENTROS DE TRABAJO.

PROGRAMACION A CORTO PLAZO 19

Page 20: Programacion de operaciones - Secuenciacion de Trabajos

Se considera el problema (n/múltiples/F/F) consistente en secuenciar n trabajos (n>1) en múltiples centros de trabajo o máquina.

N TRABAJOS EN 2 MÁQUINAS

1. Los n trabajos se procesan en 2 máquinas con el mismo orden2. Este problema se conoce como N/2.3. Se utilizan para minimizar el tiempo de procesamiento de la secuencia

de un grupo de trabajos que pasan por dos centros de trabajo para ello se disponen de la regla de Jhonson.

4. Si pij es el tiempo de proceso del trabajo i en la máquina j, seleccione el mínimo y si éste corresponde a la máquina 1, asígnelo a la primera posición de la secuencia.

5. Si corresponde a la máquina 2, el trabajo se asigna a la última posición de la secuencia.

6. Elimine el trabajo asignado del set y repita el procedimiento con los trabajos no asignados.

TALLERES DE PRODUCCIÓN CONTINUA: ALGORITMOS DE PROGRAMACION

PROGRAMACION A CORTO PLAZO 20

Page 21: Programacion de operaciones - Secuenciacion de Trabajos

DEFINICIÓN: 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 (1-1) describe un taller de producción continua. 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 producen 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.

1° Lapso en un taller de producción continúa con dos máquinas: algoritmo de Johnson:

1.1° ¿EN QUÉ CONSISTE EL ALGORITMO DE JOHNSON?El algoritmo o regla de Johnson es un algoritmo heurístico utilizado para resolver situaciones de secuenciación de procesos que operan dos o más órdenes (operaciones) que pasan a través de dos máquinas o centros de trabajo. Su principal objetivo es minimizar el tiempo de procesamiento total del grupo de trabajos. Este algoritmo consiste en la aplicación de cuatro sencillos pasos.

¿PORQUE HAY QUE UTILIZAR LA REGLA DE JOHNSON?

Para minimizar el tiempo ocioso total de las máquinas. Para minimizar el tiempo de procesamiento y establecer la secuencia de

un grupo de trabajos en dos centros de trabajo. Minimizar el tiempo muerto total en los centros de trabajo.

Regla de Johnson:

Se utiliza para secuenciar N trabajos a través de dos máquinas en el mismo orden.

La regla de Johnson sigue 4 pasos:

PROGRAMACION A CORTO PLAZO 21

Page 22: Programacion de operaciones - Secuenciacion de Trabajos

1. Todos los trabajos se deben colocar en una lista, así como el tiempo que requiere cada uno en cada máquina.

2. Se selecciona el trabajo con menor tiempo de actividad. Si el menor tiempo corresponde a la primera máquina, el trabajo se programa primero. Si el menor tiempo cae con la segunda máquina, el trabajo se programa el último.

3. Una vez que el trabajo está programado, se debe eliminar de la lista.4. Aplicar los pasos 2 y 3 para los trabajos restantes, trabajando hacia el

centro de la secuencia.

PROGRAMACIÓN DE N PEDIDOS ENTRE MAQUINAS

REGLA DE JOHNSON AMPLIADA.

Condiciones para obtener la solución óptima:

1. El tiempo de proceso más corto en la máquina 1 es >= tiempo más largo en la máquina 2.

2. El tiempo de proceso más corto en la máquina 3 es >= tiempo más largo en la máquina 2.

3. Si no se cumplen estas condiciones la solución es cercana a la óptima.

ALGORITMO DE JOHNSON

Considere el problema de secuenciación (n/2/F/Fmax) consistente en ordenar n trabajos seriados independientes en 2 máquinas tal que minimice el tiempo de fluido máximo; cada trabajo requiere de dos procesos secuenciales distintos, realizándose el primero en una máquina y el siguiente en la otra. La secuencia de los procesos no se altera.

Sea t [ij] el tiempo de proceso j (j=1,2), del trabajo i, (1, 2,…, n). El algoritmo que resuelve este problema, diseñado por Johnson prosigue de la siguiente manera:

1. Sea k = 1 y p = n.2. Encuentre el mínimo t [ij]. Si este ocurre para j=1 se le hace t [k], 1 y t

[k] ,2 se elimina del análisis posterior. Si, por el contrario el mínimo t [ij] ocurre para j=2, se le hace t [p] ,1 y t [p] ,2. Se elimina del análisis posterior.

3. Con los t [ij] restantes se repite el procedimiento del paso anterior haciendo k= k+1, o

4. p=p-1 si j=2. los empates se resuelven arbitrariamente. El algoritmo termina en n iteraciones.CASO PRÁCTICO DE DEFINICIÓN:

PROGRAMACION A CORTO PLAZO 22

Page 23: Programacion de operaciones - Secuenciacion de Trabajos

Metal Ica S.A fabrica marcos de metal para puertas. La preparación del abisagrado 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 Metal Ica S.A. Los tiempos de procesado para los cuatro trabajan actuales (lotes de los diferentes tipos) en cada máquina se dan en la tabla (1-2). 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 durante 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.

……. …

MAQUINAS TRABAJOS

TIEMPO TOTAL

1 5 4 3 2 142 2 5 2 6 15

Ahora considere el programa 4-2-3-1 descrito en la figura 8-12. Su lapso es 17, por lo que 1-2- 3-4 no es óptimo. ¿Es óptimo 4-2-3-1? Es claro que el lapso debe ser tan grande como la suma de los tiempos de procesado en cualquiera de las máquinas, es decir:

Al entender que el tiempo ocioso de la máquina 1 al final del programa y el de la máquina 2 al principio son inevitables, se puede ajustar la cota.

PROGRAMACION A CORTO PLAZO 23

Trabajos

Máquina m

Máquina 2

Máquina 1

FIGURA (1-1)Taller de

producción continua

FIGURA (1-2)Tiempos de

procesado para las

operaciones deembisagrado

Page 24: Programacion de operaciones - Secuenciacion de Trabajos

No se sabe qué trabajo debe ser el primero, y su tiempo de procesamiento en la máquina 1 determina el tiempo ocioso inevitable en la máquina 2, entonces, ¿qué debe hacerse para aumentar la cota? Ese tiempo ocioso debe ser al menos tan grande como el menor tiempo de procesado en la máquina 1. De igual manera, el tiempo ocioso inevitable de la, máquina 1 debe ser igual o mayor que el tiempo de procesado más pequeño en la máquina 2.Esto lleva a una mejor cota sobre el lapso:

Al calcular esta cota se ve que C*máx > 17 y, por lo tanto, el programa 4-2-3-1 es óptimo. Del examen de la cota sobre el lapso surge la idea de un algoritmo. Si un trabajo tiene un tiempo de procesado corto en la máquina 1, parecería que debe ir al principio del programa, mientras que uno con un tiempo corto en la segunda máquina debe programarse al final. Esto lleva al algoritmo de Johnson (Jofanson, 1954):

Paso 0, sean U= {1,2,…, n} el conjunto de trabajos no programados, k=1, t=n y J=0, i=1,2,…, n.

Paso 1.Si U=Φ, se va al paso 4, sea: Si j* = 1, se va al paso 2; de otra manera se va al paso 3.

Paso 2. Se programa el trabajo i* en la posición más cercana disponible (k) de la secuencia, se actualiza k y se elimina el trabajo del conjuntó programable. Se hace Jk = i*, k = k + 1 y U = U-{i*}.Se va al paso 1.

Paso3. Se programa el trabajo i, en la posición más lejana posible (L), se actualiza (L) y se elimina el trabajo del conjunto programable. Se hace

Jt= I*, L=L-1 y U=U - {i*}.Se va al paso 1. Paso 4. La secuencia de trabajos está dado por J, con J, como el

primer trabajo, etc.Para determinar el programa real se construye la gráfica de Gantt. Sea Hj el tiempo de terminación del último trabajo programado en la, maquina j y cj el tiempo de terminación del trabajo i en la maquina J. Para calcular los tiempos de terminación de cada operación en cada máquina se hace lo siguiente.

Paso 0: Se hace K=0; Hj=0; J=1,2; Cj=0; i=1,2,…, n; J=1,2. Paso 1: Sea i=Jk, se hace Cij=H1+Pij, Cj2=max {H2, Cij}+Pi2

PROGRAMACION A CORTO PLAZO 24

M1 1 2 3 4M2 1 2 3 4

5 10 15 20

Page 25: Programacion de operaciones - Secuenciacion de Trabajos

Paso 2: Se sustituye Hj Cij, J=1,2. Se hace K=K+1, si K<=n, se va al paso 1.

El Algoritmo de Johnson siempre genera un programa óptimo. El tiempo de inicio de cada trabajo en cada máquina es el tiempo es el tiempo de terminación menos el tiempo de procesado. La grafica de Gantt se construye con facilidad si se usan los tiempos de inicio.

Ejemplo: Algoritmo de Johnson, ejemplo de aplicados a Metal Frame, para la demostración:

Paso 0: U= {1, 2, 3, 4}, k=1, L=4, J=J1=J2=J3=J4=0.

Paso 1: U no es vacío. El trabajo 4 tiene el menor tiempo de procesado (P12=2) entre los trabajos en U. (Los empates se rompen arbitrariamente) Por tanto, i=4, j=2; como j=2, se va al paso 3.

Paso 2: Se hace J4=1, L=4-1=3 y U= {2, 3, 4} y se va al paso 1.

Paso 1: U no es vacío. El trabajo 4 tiene el menor tiempo de procesado (p41=2) entre los trabajos en U. Por lo tanto, i=4 y j=1. Como j=1, se va al paso 1.

Paso 2: Se hace J1=4, k=1+1=2 y U= {2, 3} y se va al paso 1.

Paso 1: U no es vacío. El trabajo 3 tiene el menor tiempo de procesado (p32=2) entre los trabajadores en U. Por lo tanto, i=3 y j=2. Como j=2, se va al paso 3.

Paso 3: Se hace J3=3, L=3-1=2 y U= {2} y se va al paso 1.

Paso1: U no es vacío, el trabajo 2 tiene el menor tiempo de procesado (p21=4) entre los trabajos en U. Por lo tanto i=2 y j=1. Como j=1, se va al paso 2.

Paso 2: Se hace J2= 2, k=2+1=3 y U=Ø y se va al paso 1.

Paso 1: U=Ø, de manera que se va al paso 4.

Paso 4: La secuencia de lapso mínimo es J1=4, J2=2, J3=3 y J4=1.

Con la construcción de una gráfica de Gantt para esta secuencia (figura 8-12) se encuentra que el lapso es 17.

Lapso de producción con más de dos máquinasSi se tienen más de dos máquinas, el algoritmo de Johnson no funciona excepto en casos especiales.Un caso especial ocurre cuando la máquina intermedia está dominada, ya sea por la primera o por la tercera. Una máquina está dominada cuando su tiempo

PROGRAMACION A CORTO PLAZO 25

Page 26: Programacion de operaciones - Secuenciacion de Trabajos

de procesado más largo no es mayor que el tiempo de procesado más corto de otra máquina, es decir, para la máquina intermedia de tres máquinas,

Entonces se puede formar un problema equivalente de dos máquinas con tiempos de procesado

Al resolver este problema de dos máquinas se obtiene la secuencia de lapso óptimo para el problema dominado de tres máquinas. Un trabajo comienza en una máquina tan pronto como el trabajo anterior en esa máquina termina, o su operación en la máquina anterior termina. Esto funciona porque en un problema dominado, la máquina 2 nunca causa un retraso en el programa.Para problemas de dos máquinas y problemas de tres máquinas con la máquina 2 dominada, el programa óptimo es un programa de permutación. Esto es, la secuencia de trabajos es la misma en todas las máquinas. Un programa de no permutación tiene diferentes secuencias de trabajo en al menos dos máquinas. Suponga que el trabajo i está programado antes del trabajo j en la máquina k, pero en la máquina k + 1 se procesa j antes de i. El trabajo i pudo haberse procesado en la máquina k +1, mientras j estaba en la máquina k, de manera que hay tiempo ocioso insertado en la máquina k + 1. Si el objetivo es el lapso de producción, se puede demostrar que un programa óptimo es un programa de permutación para tres máquinas. Sin embargo, para cuatro o más máquinas, el programa óptimo puede no ser un programa de permutación. Para otros objetivos, los problemas de tres máquinas no tienen garantía de programas de permutación óptimos. Si no hay una máquina dominante en un problema de tres máquinas, o si se tienen más de tres máquinas, no existe una manera sencilla de obtener una solución óptima. Debe recurrirse a algoritmos heurísticos o enumerativos para resolver estos problemas.

EJEMPLO PRÁCTICO:

Seis trabajos deben pasar por dos máquinas herramientas diferentes, pero la secuencia tecnológica es diferente. Los tiempos de proceso son:

TRABAJO 1 2 3 4 5 6

PROGRAMACION A CORTO PLAZO 26

P12≤máx {min p¡1, min p¡3}.

p¡1= p¡1+ p¡2 y p¡2= p¡2 + p¡3

Page 27: Programacion de operaciones - Secuenciacion de Trabajos

MAQUINA 1 4 8 1 7 4 5MAQUINA 2 6 2 3 9 2 10

Los tiempos de proceso están dados en horas. Calcular la secuencia aplicando el algoritmo de Johnson.

Solución

Iteración 1

1. Sea k =1 y p =62. El mínimo valor tij corresponde a t31 = 1. Como j =1, se asigna el primer

lugar (k=1) al tercer trabajo.3. Se elimina el tercer trabajo del análisis.

Iteración 2

1. Sea k =2 y p =62. El mínimo valor tij corresponde a t52 = 2. Como j =2, se asigna el sexto

lugar (p=6) al quinto trabajo.3. Se elimina el quinto trabajo del análisis.

Iteración 3

1. Sea k =2 y p =52. El mínimo valor tij corresponde a t22 = 2. Como j =2, se asigna el quinto

lugar (p =5) al segundo trabajo.3. Se elimina el segundo trabajo del análisis.

Iteración 4

1.- Sea k =2 y p =4

2.- El mínimo valor tij corresponde a t14 = 4. Como j =1, se asigna el segundo lugar (k =2) al primer trabajo.

3.- Se elimina el primer trabajo del análisis.

Iteración 5

1. Sea k =3 y p =42. El mínimo valor tij corresponde a t61 = 1. Como j =1, se asigna el tercer

lugar (k =3) al sexto trabajo.3. Se elimina el sexto trabajo del análisis.

Algoritmos heurísticos

Un algoritmo heurístico directo es forzar al problema para que se vea como uno de dos máquinas y usar el algoritmo de Johnson. Esta secuencia se convierte

PROGRAMACION A CORTO PLAZO 27

Entonces la secuencia óptima es: {3, 1, 6, 4, 2, 5}

Page 28: Programacion de operaciones - Secuenciacion de Trabajos

en un programa de permutación para el problema original. Los diferentes enfoques para convertir el problema de m máquinas en un problema de dos máquinas producen programas distintos, entonces se puede elegir el mejor de ellos.Cambell, Dudek y Smith (1970) propusieron un enfoque de conversión, el heurísticoCDS. Sean p'iX y p'i2 los tiempos de procesado para el problema de dos máquinas. Entonces, para un problema de m máquinas, se tiene

Ellos sugieren comenzar con i = l y / = wy generar un programa con el algoritmo de Johnson.Después se hace fc=2y/=m-lyse repite, continuando hasta que ¿ = m - l y / = 2. Se usa el mejor de los m – 1 programas generados. Existen otras formas para generar los tiempos de procesado para seudomáquinas.Gupta (1972) propuso otro algoritmo heurístico. Sea:

Se determina una secuencia de permutación--mediante s[l] > s[2] > … > s[n]. Gupta basa esta regla en el algoritmo de Johnson para una máquina intermedia dominada, porque es exacto para ese caso.

1. Determinar la secuencia óptima de procesar n trabajos en una máquina.

2. Representemos los tiempos de proceso de los trabajos i como pi (i = 1,

n).

PROGRAMACION A CORTO PLAZO 28

p¡1= ∑pij (j=1 hasta k) y p¡2= ∑pij (j=L hasta m)

1 si pij < pim

E=

-1 si pij ≥ pim

e

Min k=1, m-1 {pik + pik+1}

Page 29: Programacion de operaciones - Secuenciacion de Trabajos

3. La secuencia que minimiza el criterio es aquella en la que los trabajos se

ordenan del menor tiempo al mayor.

4. Esta secuencia también minimiza el tiempo promedio de espera y la

tardanza promedio

5. Cuando los trabajos tienen diferente prioridad o peso, el objetivo puede

ser el de minimizar el tiempo de flujo promedio ponderado. 

6. A mayor valor del índice, el trabajo es más importante.

7. La secuencia óptima sería ordenando los trabajos de menor pi/wi al

mayor.

8. Determinar la secuencia óptima de procesar n trabajos en una máquina.

9. Todas las secuencias tienen el mismo makespan.

10.Minimizar el mean flow time es el criterio a satisfacer.

11.Representemos los tiempos de proceso de los trabajos i como pi (i = 1,

n).

12.La secuencia que minimiza el criterio es aquella en la que los trabajos se

ordenan del menor tiempo al mayor.

13.Ésta secuencia también minimiza el tiempo promedio de espera y la

tardanza promedio (mean lateness).

14.Cuando los trabajos tienen diferente prioridad o peso, el objetivo puede

ser el de minimizar el tiempo de flujo promedio ponderado.

15.A mayor valor del índice, el trabajo es más importante.

16.La secuencia óptima sería ordenando los trabajos de menor pi/wi al

mayor.

17.Minimizar el promedio ponderado del tiempo de flujo.

La secuencia óptima es (2, 5, 3, 6, 1,4).

Trabajos en 2 maquinas:

PROGRAMACION A CORTO PLAZO 29

Page 30: Programacion de operaciones - Secuenciacion de Trabajos

1. Los n trabajos se procesan en 2 máquinas con el mismo orden. El

criterio es el de minimizar el makespan.

2. El procedimiento a utilizar es el de Johnson.

3. Si pij es el tiempo de proceso del trabajo i en la máquina j, seleccione el

mínimo y si éste corresponde a la máquina 1, asígnelo a la primera

posición de la secuencia.

4. Si corresponde a la máquina 2, el trabajo se asigna a la última posición

de la secuencia.

5. Elimine el trabajo asignado del set y repita el procedimiento con los

trabajos no asignados.

6. Procedimiento de Johnson

7. Determine la secuencia de proceso que minimice el makespan

La secuencia es (2, 4, 5, 3,1).

Secuenciación dinámica de trabajos Trabajos llegan a procesarse al azar durante un intervalo de tiempo. Su secuencia se determina mediante el uso de reglas de despacho que

proporcionan prioridades a los mismos. Las reglas se derivan a través de análisis de líneas de espera,

experimentación y simulación. La regla de secuenciación y despacho más importante es la del tiempo

de proceso más corto (SPT). Otras reglas se derivan del SPT, así como del tamaño de las líneas de

espera y la fecha prometida a los clientes.

Enfoques de ramificación y acotamiento

PROGRAMACION A CORTO PLAZO 30

Page 31: Programacion de operaciones - Secuenciacion de Trabajos

Es difícil encontrar programas de lapso óptimo para más de tres máquinas. Lo mejor que se puede esperar es encontrar la mejor secuencia de permutación. Esto se puede hacer con el método de ramificación y acotamiento. Se describe un algoritmo de ramificación y acotamiento que usa cotas simples basadas en las máquinas y en los trabajos. En la literatura sobre programación de la producción se pueden encontrar otros enfoques más elaborados. Para un taller de producción continua con dos máquinas,

Es una cota sobre el lapso. Suponga que se tiene un programa parcial y que U es el conjunto de trabajos no programados. Sea Hj el tiempo de terminación actual del último trabajo programado en la máquina j. Si hay tres máquinas, el lapso en la máquina 1 debe ser al menos el tiempo de terminación actual más el tiempo para procesar los trabajos no programados más el tiempo para hacer el último trabajo en las máquinas 2 y 3. Como no se sabe qué trabajo será el último, debe usarse la suma mínima de los tiempos de procesado para todos los trabajos no programados en las máquinas 2 y 3. Matemáticamente, se tiene

Máquina 2 también debe programarse en la máquina 3. Como no se conoce el orden de los trabajos enU, se debe usar el menor tiempo de procesado en la máquina 3. Los trabajos en U no pueden comenzar en la máquina 2 hasta H2, o hasta que el primer trabajo programado de U termine en la máquina 1. De nuevo, no se conoce el orden de los trabajos en (7, por lo que se usa el menor tiempo de procesado en la máquina 1 más //,. La cota es

De manera similar, para la máquina 3 se puede usar la cota:

Éstas son cotas basadas en la máquina, es decir, examinan lo que puede ocurrir en cada máquina. También pueden obtenerse cotas basadas en los trabajos. Una cota trivial basada en los trabajos es la suma de los tiempos de procesado en todas las máquinas para cualquier trabajo no programado. £1 máximo sobre todos los trabajos programados se puede sumar a //, :

Si U consiste en más de un trabajo y el trabajo k es el primero programado, los otros trabajos en U le siguen. Si / se programa al último, los otros trabajos le

PROGRAMACION A CORTO PLAZO 31

Cmax ≥ max {(min i=1,n pi2 + ∑piL) (min i=1,n pi1 +∑pi2 (i=1)}

Page 32: Programacion de operaciones - Secuenciacion de Trabajos

preceden; de otra manera, algunos le preceden y otros le siguen. Una cota legítima para el trabajo i es

Se pueden desarrollar cotas similares basadas en los trabajos para las máquinas 2 y 3. Si hay más de tres máquinas, tanto las cotas basadas en las máquinas como las basadas en los trabajos se pueden extender con facilidad. Pueden desarrollarse otras cotas para el modelo de producción continua.

Las ramas del árbol corresponden a los trabajos en una posición de la secuencia, comenzando con la primera posición. Una solución heurística, por ejemplo, CDS o Gupta, proporciona una solución incumbente. Cualquier nodo con una cota mayor que o igual a la solución incumbente se puede podar. Si se encuentra una solución mejor que la incumbente, la sustituye. Idealmente, las cotas podarán muchas de las ramas, ya que el primer nivel puede tener n nodos, cada uno con otros n - 1, etcétera.

Árbol de ramificación y acotamiento para producción continúa

Los siguientes cálculos sondearán estos nodos, y el algoritmo de ramificación y acotamiento queda completo. Se confirma que el programa de permutación óptima.

Otras medidas:

PROGRAMACION A CORTO PLAZO 32

Page 33: Programacion de operaciones - Secuenciacion de Trabajos

El lapso de producción se centra en la utilización de la máquina. Tradicionalmente, la utilización ha sido la medida de desempeño más común; pero el cambio rápido en el entorno de producción ha hecho que otras medidas sean importantes, en particular las medidas del servicio al cliente.Éstas incluyen tardanza, número de trabajos tardíos, tiempo de flujo ponderado y adelanto. Existen pocos resultados para otras medidas. Se pueden encontrar heurísticos relacionados con fechas de entrega en Grabowski et al. (1983) y en Kim (1993).Los procedimientos generales de búsqueda, como la búsqueda en una vecindad y simulación de recocido, son heurísticos atractivos para estos modelos. Es relativamente sencillo extender los conceptos de la sección 3.8 a la producción continua. Osman y Potts (1989) y Ogbu y Smith (1990) proporcionan detalles de algoritmos de simulación de recocido para el lapso sobre producción continua con permutaciones. Reeves (1995) proporciona algoritmos genéticos para el mismo problema. Estos procedimientos se pueden modificar para que funcionen con cualquier medida para la que se pueda evaluar un programa. Para programación de permutaciones se pueden usar las búsquedas en la vecindad IAP, IP e IN. En cuanto a la efectividad computacional, se necesitan formas para evaluar las medidas sin generar los programas desde el principio.También son útiles otros dos enfoques para las plantas de producción continua, los procedimientos de despacho y de cuello de botella. Con frecuencia se usan para programar la producción intermitente, de manera que se diferirá su análisis. Como las plantas de producción continua son casos especiales de las de producción intermitente, debe ser sencillo usar los algoritmos de estos últimos para resolver modelos de producción continua.

SISTEMA DE PRODUCCIÓN INTERMITENTE

PROGRAMACION A CORTO PLAZO 33

Page 34: Programacion de operaciones - Secuenciacion de Trabajos

La producción intermitente es aquella donde la producción se relaciona de forma variable con el tiempo a través del cual tendrá que producir, esto quiero decir, que habrá periodos en los que se deba producir mucho más que otros periodos en los cuales su producción será casi nula, y debido a esto, los sistemas de producción intermitente presentan diferente características .

OBJETIVO:

Entregar un producto de calidad superior (mejorada)

Entregar el producto a tiempo

Ser un fabricante de clase mundial

Lograr máxima satisfacción al cliente

Producir bienes a los menores costos posibles

CARACTERÍSTICAS DE LA PRODUCCIÓN INTERMITENTE:

Por lo general se trabaja bajo pedido

Existen periodos de tiempo de producción muy alta y periodos de producción sumamente baja o nula.

Es el tipo de sistema de las empresas que forman parte de la cadena de valor de otras empresas, es decir, son proveedoras de otras empresas.

La mano de obra especializada.

Cuando su forma de trabajo es por órdenes o pedidos , la recepción del pedido implica análisis de recursos

Regla de prioridad:

PROGRAMACION A CORTO PLAZO 34

Page 35: Programacion de operaciones - Secuenciacion de Trabajos

El primero que llega

Pedidos con tiempos de ejecución corto

Pedidos con tiempo de ejecución extenso

Pedidos que tengan la demora más pequeña

Pedido más cercano a la fecha de entrega

Según la importancia del cliente

SISTEMA DE PRODUCCIÓN POR PROCESO INTERMITENTE

Ventajas:

Gran flexibilidad de productos

Equipo con propósito más general

Baja inversión inicial

Desventajas:

Altos costos variables

 Personal altamente entrenado

Mayor dificultad en planeación y control de producción

Baja utilización del equipo (5% a 25%)

PROGRAMACION A CORTO PLAZO 35

Page 36: Programacion de operaciones - Secuenciacion de Trabajos

Planificación en una producción intermitente

LA VENTA: Es el elemento con el que se inicia el proceso de fabricación de determinado producto en la producción intermitente. Se puede presentar de dos formas, siendo la primera que la empresa posea un catálogo y allí el cliente seleccione el producto. La segunda alternativa es que el cliente necesita un producto especial con especificaciones propias. Los ofrecimientos de fecha de entrega no las puede hacer el vendedor sin antes consultar al departamento de producción o al encargado de planificación.

CÁLCULOS DE REQUERIMIENTOS: Transformación de los pedidos o las ventas, en el material a utilizar para satisfacer la producción de cada uno de los artículos, la determinación del tiempo que se necesitará en cada uno de los puestos de trabajo.

DIAGRAMACIÓN DE ACTIVIDADES: Programa básico. El uso del diagrama es una ayuda de visualización cronológica. La diagramación nos presentará la ubicación de pedidos establecidos, dando la oportunidad de acomodar pedidos nuevos o algunos de tipo urgente.

LANZAMIENTO ORDENADO DEL TRABAJO: Son llamadas comúnmente Ordenes de Trabajo la cual simplemente se refieren a fichas que servirán para saber de los trabajos planificados, en ejecución y realizados. Indican a cada departamento que producto, en que cantidad, en que momento y cual es su destino.

Problemática que se representa en la producción intermitente:

Como hemos podido observar, unos de los principales es el manejo de los diferentes recursos pero en especial el del personal

La problemática que encontramos en ese tipo de forma de trabajo es:

Fuerza de trabajo variable: la necesidad de disponer y prescindir de mayor número de personal en cortos y variados periodos de tiempo durante el año.

La nivelación de inventarios: el abasto de materiales para producción en periodos pico y en periodos no picos.

PROGRAMACION A CORTO PLAZO 36

Page 37: Programacion de operaciones - Secuenciacion de Trabajos

Cuando hablamos de producción intermite nos referimos a la producción que varía su producción conforme el tiempo. Existen diversas formas en la que la producción intermitente se presenta.

La principal cualidad de este tipo de producción es la gran variación en la cantidad de volumen de producción que puede representar a largo tiempo. A continuación hablaremos de las diferentes formas en las que se puede presentar.

Formas en las que se presenta la producción intermitente

Producción bajo pedido:

Cuando las empresas forman se convierten en proveedores de otras empresas de mayor tamaño comienzan a trabajar por pedido. Las empresas producen solamente después de haber recibido un encargo o pedido de sus productos, solo después de realizar el contrato o recibir el encargado de un determinado producto por parte de la empresa del cliente la empresa proveedora elabora su producto.

En primer lugar , el producto se ofrece al mercado

Cuando se recibe el pedido se crea un plan de producción de acuerdo a la cotización del cliente y es utilizado para hacer un análisis más detallado del trabajo que se realizara.

Los sistemas de producción continua pueden estimar la producción en relación a cuanto consumirá el cliente final, mientras que los sistemas de producción intermitente dependen de la estabilidad de las empresas de las cuales forman parte de la cadena de valor, o de la cantidad de bienes de mayor orden que necesiten su producto, existen formas en las que podemos encontrar a la producción bajo pedido ya sea que implique productos de grandes lotes o pedidos de pequeños lotes con un alto valor tecnológico o comercial alguna de las formas en las que podemos encontrar a la producción intermitente por pedido son las producción por trabajo y la producción en serie intermitente.

Producción por trabajo:

En el caso de la producción de equipos especializados individuales es inevitable recurrir a la producción por trabajos, pero en el caso de la fabricación cuantitativa es concebible, aunque poco probable que pueda también usarse la producción por trabajos.

PROGRAMACION A CORTO PLAZO 37

Page 38: Programacion de operaciones - Secuenciacion de Trabajos

Si un trabajo comprende cinco unidades idénticas y se decide producirlas simultáneamente mediante un sistema de producción por trabajos se requerían entonces cincos grupos de trabajos completos, debiendo abarcar cada grupos de todas las especialidades necesarias. El valor agregado a cada unidad aumentara entonces en forma de producción intermitente bajo el modelo de orden o pedido.

Producción en serie intermitente

Es la producción de piezas en serie es decir se fabrican siempre las mismas pero con diferentes características, esto permite organizar los procesos de producción por tipo de trabajo realizado por ejemplo claro este tipo de sistemas serie la elaboración de publicitarios.

En el caso de producción de equipos especializados o al trabajar con un alto de nivel de tecnología aumenta el problema del personal al necesitar capacitación.

Se requiere personal especializado

En fuerzas de trabajos variables

La calidad de los productos necesita especial control

El abastecimiento de materiales debe ser cronometrado

Todos estos problemas se resuelven al aplicar un correcto de administración el cual desarrollaremos paso a paso para observar mejor las características que se presentan estos sistemas.

Comencemos por conocer que es administración cual es su proceso y en qué parte de la escala de la empresa nos encontramos para saber cuáles son nuestras limitantes y nuestras oportunidades para manejar la producción

PROGRAMACION A CORTO PLAZO 38

Page 39: Programacion de operaciones - Secuenciacion de Trabajos

Aplicación de la regla de Jackson a la programación de n trabajos en 2 máquinas:

A diferencia de la Regla de Johnson aplicable a la programación de n trabajos en 2 máquinas bajo un esquema de atención fijo (es decir, los trabajos siguen siempre el mismo orden, por ejemplo primero pasan por la máquina A y luego por la máquina B), la Regla de Jackson (Método de Jackson) permite generar una Programación de Trabajos cuando la secuencia de dichos trabajos es aleatoria, es decir, se elimina el supuesto de que los trabajos siguen la misma secuencia.

En este contexto el Método de Jackson considera los siguientes pasos:

Paso 1: Clasificar los trabajos existentes en las 4 familias posibles: Los que requieren sólo la máquina 1 (A) – Los que requieren sólo la máquina 2 (B) – Los que pasan primero por máquina 1 y luego la 2 (AB) – Los que pasan primero por máquina 2 y luego la 1 (BA).

Paso 2: Ordenar los trabajos de (AB) y (BA) aplicando la Regla de Johnson.

Paso 3: Ordenar los trabajos de (A) y (B) en forma arbitraria.

Paso 4: Programar en la máquina 1 en primer lugar los trabajos de (AB), luego los trabajos en (A) y finalmente los trabajos en (BA).

Paso 5: Programar en la máquina 2 en primer lugar los trabajos de (BA), luego los trabajos en (B) y finalmente los trabajos en (AB).

PROGRAMACION A CORTO PLAZO 39

Page 40: Programacion de operaciones - Secuenciacion de Trabajos

Tipos de prioridades:

TPC (tiempo procesado más corto): se programa la operación con el tiempo procesado más corto

PEPS (primero en entrar y primero en servir): se programa en la operación que llego primero

MTR (mayor trabajo restante): se programa la operación de trabajo con la mayor suma de tiempos de procesado en las operaciones no programadas

FEC (fecha de entrega más cercana): se programa la operación cuyo trabajo tiene la fecha de entrega más cercana

FEC/OP (operación de fecha de entrega más cercana): se programa la operación con fecha de entrega para la operación

HLG: (holgura): se programa la operación con la menor holgura. La holgura es el tiempo que el trabajo debe entregar el trabajo

RC: (razón critica): se programa la operación con la razón más pequeña de holgura entre tiempo que queda para entrar al trabajo

HLG/OP (operación de holgura): se programa la operación con la razón más pequeña de holgura en el número de operaciones que quedan

PROGRAMACION A CORTO PLAZO 40

Page 41: Programacion de operaciones - Secuenciacion de Trabajos

CONCLUSION

La planificación y control de la producción permite verificar el cumplimiento de planes y programas de producción, detectar y analizar las causas de las desviaciones producidas, mejorar la planificación y programación de la producción futura, evaluar el grado de cumplimiento de los objetivos de producción y medir la relación entre los objetivos de producción alcanzados y los factores empleados para su obtención, o sea la productividad y el análisis de costos de producción

La programación de la producción permite saber a cada trabajador o a cada responsable de un centro de trabajo lo que debe hacer para cumplir con el plan general. De tal manera que se pueda observar la importancia de esta etapa. Se inicia con la especificación de lo que debe hacerse, en función de la planeación de la producción. Incluye la carga de los productos a los centros de producción y el despacho de instrucciones pertinentes a la operación.

PROGRAMACION A CORTO PLAZO 41

Page 42: Programacion de operaciones - Secuenciacion de Trabajos

BIBLIOGRAFIA

http://www.monografias.com/trabajos97/planificacion-y-control- operaciones/planificacion-y-control-operaciones5.shtml#conclusioa

http://www.ingenieriaindustrialonline.com/herramientas-para-el- ingeniero-industrial/producci%C3%B3n/regla-de-johnson

http://www.ingenieriaindustrialonline.com/herramientas-para-el- ingeniero-industrial/producci%C3%B3n/programaci%C3%B3n-a-corto-plazo/

https://prezi.com/3ehxrrgwb9rv/programacion-a-corto-plazo/ http://www.redalyc.org/articulo.oa?id=40425635004 http://es.slideshare.net/albertojeca/secuenciacion-de-n-trabajos http://pert-cpm-operaciones.blogspot.pe/2010/12/secuenciacion.html http://temasoperaciones-escobarramirez.blogspot.pe/p/secuenciacion-

de-tareas-en-centros-de.html Libro de administración de operaciones – Lee Krajewsky Libro de planificación y control de la producción - Sipper

PROGRAMACION A CORTO PLAZO 42