Docsity
Docsity

Prepara tus exámenes
Prepara tus exámenes

Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity


Consigue puntos base para descargar
Consigue puntos base para descargar

Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium


Orientación Universidad
Orientación Universidad


SBH (heurística cuello de botella), Guías, Proyectos, Investigaciones de Diseño de Sistemas de Producción

Pseudocódigo y descripción de la heurística que es utilizada para desarrollar problemas tipo Job Shop.

Tipo: Guías, Proyectos, Investigaciones

2019/2020

Subido el 26/04/2020

Javi.Jama
Javi.Jama 🇨🇱

1 documento

1 / 7

Toggle sidebar

Esta página no es visible en la vista previa

¡No te pierdas las partes importantes!

bg1
Shifting Bottleneck Heuristic
Integrantes: Lucia Bravo-Josefa Decap-Javiera Mora-Klaus Wilder
En busca de redimir la rigidez de los procesos se han diseñado nuevos
complementos de metodologías para la programación de la producción y
desarrollar una relación entre maquina y producto más eficiente. Uno de los
métodos ampliamente utilizados basados en descomposición es el algoritmo
de cuello de botella (SBH) que tiene como objetivo principal minimizar el
tiempo de tardanza de completar todos los trabajos, también denominado,
makespan.
Este tipo de problemas, tienen dos tipos de restricciones:
Restricciones de precedencia: indica que todos los trabajos están
formados por una serie de tareas u operaciones que deben ser
ejecutadas en un orden determinado, es decir que una tarea no puede
comenzar sin haber terminado todas las operaciones anteriores.
Restricciones de recursos: indica que una maquina solo puede
realizar una operación a la vez, obligando a seleccionar un orden de
ejecución de todas las operaciones que se realizan en la máquina.
En términos generales, el algoritmo a presentar consta de M iteraciones que
permiten planificar cada una de las maquinas en un orden determinado en
función de la máquina que sea cuello de botella. Hay que tener en cuenta
que se trabaja con un conjunto de máquinas ya planificadas (Mo) que irá
aumentando en cada iteración.
A continuación, se presenta el pseudocodigo que permite implementar lo
mencionado anteriormente:
1. Condiciones Iniciales
Mo=
El grafo G es el grafo formado por todos los arcos de precedencia y
ningún arco
disyuntivo.
Cmax
igual a la longitud del camino más largo en G.
2. Análisis de máquinas a planificar.
Para cada máquina “
i
“ del conjunto
MMo
se realiza:
Formular un problema para esa única máquina con todas sus
operaciones teniendo en cuenta los tiempos de liberación y de
finalización esperados.
Minimizar
Lmax
en cada uno de dichos subproblemas
pf3
pf4
pf5

Vista previa parcial del texto

¡Descarga SBH (heurística cuello de botella) y más Guías, Proyectos, Investigaciones en PDF de Diseño de Sistemas de Producción solo en Docsity!

Shifting Bottleneck Heuristic

Integrantes: Lucia Bravo-Josefa Decap-Javiera Mora-Klaus Wilder En busca de redimir la rigidez de los procesos se han diseñado nuevos complementos de metodologías para la programación de la producción y desarrollar una relación entre maquina y producto más eficiente. Uno de los métodos ampliamente utilizados basados en descomposición es el algoritmo de cuello de botella (SBH) que tiene como objetivo principal minimizar el tiempo de tardanza de completar todos los trabajos, también denominado, makespan. Este tipo de problemas, tienen dos tipos de restricciones:

 Restricciones de precedencia: indica que todos los trabajos están

formados por una serie de tareas u operaciones que deben ser ejecutadas en un orden determinado, es decir que una tarea no puede comenzar sin haber terminado todas las operaciones anteriores.

 Restricciones de recursos: indica que una maquina solo puede

realizar una operación a la vez, obligando a seleccionar un orden de ejecución de todas las operaciones que se realizan en la máquina. En términos generales, el algoritmo a presentar consta de M iteraciones que permiten planificar cada una de las maquinas en un orden determinado en función de la máquina que sea cuello de botella. Hay que tener en cuenta que se trabaja con un conjunto de máquinas ya planificadas (Mo) que irá aumentando en cada iteración. A continuación, se presenta el pseudocodigo que permite implementar lo mencionado anteriormente:

  1. Condiciones Iniciales Mo = El grafo G es el grafo formado por todos los arcos de precedencia y ningún arco disyuntivo. Cmax igual a la longitud del camino más largo en G.
  2. Análisis de máquinas a planificar. Para cada máquina “ i “ del conjunto MMo se realiza: Formular un problema para esa única máquina con todas sus operaciones teniendo en cuenta los tiempos de liberación y de finalización esperados. Minimizar Lmax en cada uno de dichos subproblemas

Sea Lmax ( i ) el mínimo Lmax en el subproblema correspondiente a la máquina i.

  1. Selección del cuello de botella y secuenciación. Sea Lmax^ (^ h )= maxi ∈ MMo (^ Lmax^ (^ i )) Secuenciar la máquina h acorde a la secuencia generada en el paso 2. Insertar en G todos los arcos disyuntivos correspondientes a la máquina “ h “. Insertar la máquina “h” en Mo.
  2. Re-secuenciación de todas las maquinas planificadas anteriormente. Para cada maquina l ∈ Moh realizar: Eliminar los arcos disyuntivos correspondientes de G , formular un subproblema para la máquina l con los tiempos de liberación y finalización determinados por el cálculo del camino más largo en G. Encontrar la secuencia que minimice Lmax ( l ) e insertar los correspondientes arcos disyuntivos en G.
  3. Criterio de parada. Si Mo = M , entonces FIN, en otro caso volver al paso 2. Con el fin de facilitar la compresión del algoritmo, se enumerarán las distintas variables y parámetros utilizados a lo largo de este: a. Mo: Conjunto de máquinas planificadas. b. M: Número de máquinas. c. Cmax: Longitud del camino más largo desde el nodo fuente hasta el nodo sumidero(makespan) (tiempo en el que termina la ejecución de todos los trabajos). d. pij : Tiempo de procesamiento. e. opij : Operación de un trabajo “j” que se realiza en la maquina “i". f. Tiempo de liberación ( rtij ): Camino más largo en G desde el nodo fuente hasta opij (suma de todos los tiempos de procesamiento de todos los trabajos que tienen que realizarse en la maquina antes de que el trabajo respectivo puede llevarse a cabo). g. Tiempo de finalización esperado ( dtij ): Cmax menos el camino más largo desde opij hasta el nodo sumidero, mas pij. h. Lmax(i): Mínima longitud del camino más largo en el subproblema formado por las operaciones ejecutadas en la maquina i. i. Lmax(h): Maquina h con la mayor tardanza. Para la explicación y desarrollo del pseudocodigo se utilizará un grafo G que se muestra en la figura 1:

 D es el conjunto de todos los pares ordenados de la forma (Oij,Oil).

También conocidos como arcos de recursos ya que une todas las operaciones o procesos que se ejecutan en la misma maquina y representan la unión de recursos. Generalmente su longitud representa la duración de la operación de origen de dicha arista.

 Cada fila del grafo representa un trabajo, el que pasa por distintos

nodos para ejecutar sus procesos en las maquinas correspondientes.

 Cada elemento “i” representa la maquina en que se ejecuta la

operación y cada elemento “j” representa el trabajo que se va a realizar. Con 1 ≤ i ≤ n, 1 ≤ j ≤ m.

 Los elementos “k” representan a las maquinas, pero se debe cumplir

que k ≠ i, mientras que los elementos “l” representan los trabajos y deben cumplir con l ≠ j. Condiciones Iniciales:

  1. Calcular el tiempo de procesamiento de cada trabajo mediante la suma de los tiempos de las operaciones o procesos individuales.
  2. Una vez obtenido los tiempos de procesamiento de cada trabajo, se obtiene el makespan del sistema, Cmax, donde se asume que no existen conflictos de recursos. Primera iteración:
  3. Determinar cuál maquina es la que está causando el efecto cuello de botella, tomando en cuenta las siguientes variables: -Tiempo de liberación ( rtij ), el que corresponde al tiempo mínimo más temprano para realizar el proceso correspondiente. -Tiempo de finalización esperado ( dtij ) o de termino, el cual corresponde al tiempo máximo que podría tomar un proceso en realizarse. -Tiempo de producción pij , tiempo que se demora en procesar una determinada máquina.
  4. Determinar el camino óptimo de cada máquina i mediante rutas que reduzcan el máximo retraso para todos los trabajos de esta máquina, y para ello es posible utilizar el método Branch and Bound. Estas secuencias óptimas nos permiten encontrar la tardanza máxima (Lmax(i)) de cada máquina i.
  5. Una vez calculados los tiempos máximos de retraso, se elige aquella máquina que posea el mayor valor, la cual será denominada cuello de botella. En caso de que existieran dos máquinas con el mayor tiempo de retraso, se puede elegir cualquiera de las dos para comenzar. Y si

existe la posibilidad de que ninguna tuviese un tiempo máximo de retraso, entonces se optimiza cada secuencia de máquinas.

  1. Una vez encontrada la maquina cuello de botella se agrega el camino correspondiente a los arcos disyuntivos, los que representan las restricciones de capacidad que ayudaran a obtener uno nuevo makespan. El nuevo makespan será el makespan anterior más la tardanza máxima de la maquina cuello de botella. Tabla 2 Trabaj os

pij 10 3 4 rtij 0 8 0 dtij 10 1 1

Tardanz a

Figura 2: Grafo que se forma luego de la primera iteración Segunda iteración: (re secuenciar todas las maquinas programadas previamente)

  1. Secuenciar todas las máquinas restantes, con el método Branch and Bound se buscaría la tardanza máxima (Lmáx(i)) tomando en cuentas las restricciones de los arcos disyuntivos agregados.
  2. Ya encontrada la máquina con la tardanza máxima, se calcula el nuevo makespan y se posicionan los arcos disyuntivos correspondientes al grafo.