




















































































Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity
Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium
Prepara tus exámenes
Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity
Prepara tus exámenes con los documentos que comparten otros estudiantes como tú en Docsity
Encuentra los documentos específicos para los exámenes de tu universidad
Estudia con lecciones y exámenes resueltos basados en los programas académicos de las mejores universidades
Responde a preguntas de exámenes reales y pon a prueba tu preparación
Consigue puntos base para descargar
Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium
Comunidad
Pide ayuda a la comunidad y resuelve tus dudas de estudio
Ebooks gratuitos
Descarga nuestras guías gratuitas sobre técnicas de estudio, métodos para controlar la ansiedad y consejos para la tesis preparadas por los tutores de Docsity
Asignatura: Tipologia i Disseny Estructural, Profesor: Juan Antonio Campins, Carrera: Enginyeria Mecànica, Universidad: UPC
Tipo: Apuntes
1 / 92
Esta página no es visible en la vista previa
¡No te pierdas las partes importantes!





















































































Estudio y aplicación del algoritmo Lomnicki Pendular al problema Fm | block | Fmax :: (^1)
El presente proyecto está dedicado a estudiar un problema concreto de secuenciación, el de Flow Shop sin pulmones intermáquina. Este problema no sólo refleja una situación ampliamente difundida en la industria (en particular en la denominada química fina ) sino que resulta de una mayor complejidad teórica y computacional que otros problemas más estudiados de la familia de los Sequencing Problems o Problèmes d’Ordonnancement. De forma sucesiva se presentarán los aspectos teóricos pertinentes, el estado del arte de los métodos de resolución y específicamente, su resolución mediante el algoritmo Lomnicki Pendular. Para ello se analizarán las diversas propuestas existentes hasta la fecha, se propondrán mejoras y se implementarán mediante un programa destinado a tal fin. Por último, se llevará a cabo un análisis de los resultados obtenidos y se presentarán las conclusiones finales, incluyendo posibles futuras líneas de investigación a resultas del proyecto que aquí se presenta.
(^2) Agustín Alemán González – Laboratorio de Organización Industrial
- Estudio y aplicación del algoritmo Lomnicki Pendular al problema Fm | block | Fmax :: Estudio y aplicación del algoritmo Lomnicki Pendular al problema Fm | block | Fmax :: (^7)
arb( P , t ) = vértices pendientes no explorados del problema directo en el instante t. arb( P’, t ) = vértices pendientes no explorados del problema inverso en el instante t. bk = capacidad del pulmón k. C max = instante de salida de la última pieza del taller. cot( v ) = valor de la cota asociada a la partición o vértice v. e( j , i ) = instante en que la pieza i entra en la etapa j desde la etapa j – 1. f( j , i ) = instante en que la pieza i sale hacia la etapa j + 1 desde la etapa j. fmej( t ) = mejor solución en un instante t. Fmax = tiempo de permanencia en el taller de la última pieza procesada. F med = tiempo medio de permanencia en el taller. kj = cota longitudinal. m = número total de etapas o máquinas. n = número total de piezas. p( j , i ) = duración de la operación a realizar en la máquina j sobre la pieza i. P = problema directo. P’ = problema inverso. s( j ) = tiempo de preparación en la etapa j. t( j ) = tiempo de trasvase de la pieza de la etapa j a la etapa j + 1. T max = retraso de la pieza que se retrasa más. T med = retraso medio. z0( t ) = valor de cota del problema en el instante t.
(^8) Agustín Alemán González – Laboratorio de Organización Industrial
(^10) Agustín Alemán González – Laboratorio de Organización Industrial
2.1 Origen del Proyecto
En los últimos años, se ha producido un notable incremento del interés en el campo de los problemas de Flow Shop sin pulmones. Este interés viene motivado tanto desde el campo de la investigación pura como desde las posibles aplicaciones industriales: los problemas de Flow Shop sin pulmones se producen en ámbitos productivos donde no se dispone de almacenes intermedios –los pulmones o buffers a los que se hace mención- entre las distintas máquinas responsables de cada operación. En estas situaciones, la pieza que ha completado su procesamiento en una máquina deberá permanecer en ella hasta que la siguiente máquina esté disponible, lo que generará situaciones de bloqueo.
Las dos razones principales para que tengan lugar situaciones que requieran de un procesamiento de tipo sin pulmones intermáquina, radican esencialmente en la tecnología de producción misma. La primera de las razones es que en ciertos procesos, algunas de las características del material tratado –como pueden ser la temperatura o la viscosidad- requieren que el material no pueda ser almacenado entre las máquinas. Ejemplos de estos procesos son habituales en industrias químicas, farmacéuticas y alimentarias, así como en la fabricación y tratamiento de metales.
Como segunda razón en liza, tenemos que ciertos procesos y metodologías actuales de producción, como el just-in-time , las células de fabricación flexible o las células robotizadas de producción pueden ser modelizadas en ocasiones como problemas de Flow Shop sin pulmones, lo que permite otro acercamiento a esos problemas.
Desde el punto de vista académico, el interés proviene de su aparente simplicidad a la hora de enunciar los problemas y la extrema dificultad que conlleva la resolución exacta de las instancias, aun las de reducido tamaño.
Estudio y aplicación del algoritmo Lomnicki Pendular al problema Fm | block | Fmax :: (^11)
2.2 Motivación
Como se comenta en [Lahdari 2003] , desde la publicación del artículo de Johnson en 1954 [Johnson 1954] el estudio teórico del Flow Shop ha constituido uno de los tópicos más investigados en la teoría de la programación. Tal y como hemos comentado previamente, su interés no viene motivado únicamente por su interés práctico, sino por la aparente simplicidad a la hora de plantearlo y la consideración de que aún hoy día, constituye un hueso duro de roer.
A mediados de los años 90, los mejores algoritmos de Branch & Bound experimentaban dificultades para resolver ejemplares con 15 piezas y 4 máquinas de Flow Shop con pulmones, mientras que en otros ámbitos como es el archiconocido problema del viajante de comercio o TSP , ya existían algoritmos que permitían su resolución con ejemplares de unos cuantos cientos de vértices.
Es bien conocido que el caso de dos máquinas en el caso del Flow Shop con pulmones puede ser resuelto utilizando las reglas de Johnson, que genera una programación óptima en O ( n log n ) pasos y que para el caso de sin pulmones, el problema de dos máquinas puede resolverse mediante su equivalente TSP también en O ( n log n ) pasos, mediante el algoritmo de Gilmore y Gomory [Gilmore 1964].
Lamentablemente, para más de dos máquinas el problema se ha demostrado que es NP –duro, lo que ha llevado a muchos autores a centrar sus esfuerzos en el desarrollo de métodos heurísticos que permiten obtener rápidamente soluciones de cierta calidad , a costa de sacrificar su optimalidad en muchos casos.
El proyecto que aquí se presenta pretende sin embargo, el estudio e implementación de un algoritmo exacto para los casos de Flow Shop sin pulmones, a tenor de los prometedores resultados que anteriores proyectos [Vivó 1994] han arrojado para el caso de con pulmones. Para ello haremos uso de un algoritmo de Branch & Bound ya presentado por Lomnicki [Lomnicki 1965] e Ignall y Shrage [Ignall 1965] de forma independiente y mejorado por Companys [Companys 1993] haciendo uso de ciertas propiedades de interacción entre los problemas directo e inverso que describiremos en breve.
Estudio y aplicación del algoritmo Lomnicki Pendular al problema Fm | block | Fmax :: (^13)
La programación de la producción consiste básicamente en asignar unas órdenes de producción y las operaciones consiguientes a centros de trabajo específicos en unos intervalos temporales concretos, lo cual permite afirmar que un programa –al contrario de lo que pudiera parecer a primera vista– resulta ser más una asignación que un calendario.
En entornos productivos que trabajan de manera continua, el problema consiste básicamente en asignar las operaciones a los centros adecuados, establecer las rutas óptimas y equilibrar las líneas, ya que a partir de ese momento y por la propia naturaleza de su funcionamiento en continuo, nuestra tarea tendría que limitarse a establecer las secuencias de productos a lanzar en cada línea. De alguna manera, nos encontraríamos trabajando con el estacionario de una función objetivo cuyo funcionamiento deseamos establecer.
Por el contrario, en entornos productivos no-continuos o intermitentes, la problemática se transforma en algo bastante más complejo, ya que la frecuencia de programación se incrementa notablemente y las decisiones se toman en función de circunstancias en muchas ocasiones imprevisibles. Este caso, como transitorio de la función que antes reseñábamos, introduce un grado de indeterminación en el sistema que requiere de herramientas ciertamente más sofisticadas para su resolución.
Las subfunciones que podemos distinguir dentro de la función programación [Companys 1996] son:
De entre el amplio abanico de problemas que nos ofrece la subfunción secuenciación, nos centraremos en uno ampliamente tratado en la literatura científica: el Problema del Taller Mecánico. Este problema lo someteremos a una serie de restricciones, previa mención de los métodos más significativos que pretenden resolverlo en un tiempo razonable. Posteriormente nos centraremos en uno de los métodos exactos -el Lomnicki – que suele utilizarse como primera aproximación para resolver el problema que hemos escogido. Este algoritmo funciona bien mientras el tamaño de los problemas –tamaño entendido como número de piezas y de máquinas- es reducido. Cuando ese tamaño crece, el tiempo de cálculo necesario para su evaluación crece sobremanera, convirtiéndolo en inasequible.
Para subsanar en la medida de lo posible esa debilidad, se desarrolló posteriormente el algoritmo Lomnicki Pendular –o LOMPEN – [Companys 1993, 1999] que permite abordar problemas de una mayor dimensión mediante la incorporación de ciertas propiedades de interacción durante el desarrollo del Branch & Bound.
(^14) Agustín Alemán González – Laboratorio de Organización Industrial
3.1 Objetivos del proyecto
El objetivo del proyecto consistirá en la realización de una aplicación informática que permita la resolución de problemas de Taller Mecánico de flujo regular –o Flow Shop -, estático con y sin pulmones entre las máquinas mediante la utilización del algoritmo Lomnicki Pendular , comparando además los resultados obtenidos con y sin pulmones. Asimismo, se pretende explorar distintas posibilidades de mejora del algoritmo, así como su implementación y discusión.
3.2 Alcance del proyecto
El presente proyecto pretende llevar a cabo la implementación en lenguaje C de los algoritmos comentados y modificarlos convenientemente para su aplicación a los problemas de Flow Shop con y sin pulmones intermáquina. Una vez testados, se desea añadir nuevas funcionalidades a los mismos que permitan una mejora apreciable en sus tiempos de ejecución y resolución. Estas comparativas pretenden someterse a discusión y análisis, lo que se espera posibilite la propuesta de otras líneas de investigación relacionadas.
(^16) Agustín Alemán González – Laboratorio de Organización Industrial
Este proyecto trabajará exclusivamente con problemas estáticos.
4.3 Tipos de Flujo
Entre los muchos tipos de flujo posibles de las piezas dentro del taller, destacaremos algunos:
Como caso particular tendremos:
o Permutation Flow Shop Problem : aquí obligamos a que el orden de procesamiento de las piezas en cada máquina sea el mismo, con lo que el objetivo pasa a ser el de hallar una permutación de las n piezas que minimice el índice de eficiencia.
Este proyecto se centrará en el caso particular del Permutation Flow Shop Problem.
4.4 Índices de eficiencia
La evaluación de los programas lleva aparejada una serie de criterios de eficiencia, entre los cuales mencionaremos unos pocos:
a. C max : instante de salida de la última pieza del taller.
Cmax = max { C i } [4.1]
b. F max : tiempo de permanencia en el taller de la pieza que permanece más tiempo, es equivalente a la anterior C ma x si todos los instantes de entrada de la pieza en el taller son cero.
Estudio y aplicación del algoritmo Lomnicki Pendular al problema Fm | block | Fmax :: (^17)
Fmax = max { Fi } [4.2]
c. F med : es el tiempo medio de permanencia en el taller.
i
· Fi n
d. T max : retraso de la pieza que se retrasa más.
Tmax = max { Ti } [4.4]
e. T med : retraso medio.
i
· Ti n
El criterio de evaluación adoptado será el de optimizar –minimizar en este caso- el tiempo de permanencia máximo en el taller o Fmax que, como hemos visto, equivale en nuestro caso a Cmax.
Los pulmones intermáquina son almacenes situados a la entrada o a la salida de las máquinas que permiten recibir, almacenar y reexpedir las piezas a la siguiente máquina. Estos pulmones intermáquina posibilitan que las piezas procesadas en la máquina j puedan esperar a ser procesadas en la j + 1 y así dejar libre la máquina j para que pueda procesar la siguiente pieza_._
En función de la capacidad de estos pulmones, podremos clasificar los problemas de Flow Shop en:
El proyecto se centrará en el primer y el tercer caso, ya que los problemas con buffers de capacidad limitada pueden traducirse a un problema de tipo sin pulmones.
Conway, Maxwell y Miller [Conway 1967] señalaron una serie de hipótesis que, generalmente, suelen ser aceptadas en el Problema del Taller Mecánico y que procedemos a relatar a continuación:
Estudio y aplicación del algoritmo Lomnicki Pendular al problema Fm | block | Fmax :: (^19)
a. F indica flujo regular [ Flow Shop ] donde todas las piezas tienen la misma ruta.
b. P indica un caso particular del anterior en el que todas las máquinas tienen la misma secuencia de piezas, o lo que es lo mismo, la solución que buscamos es simplemente una permutación de las piezas [ Permutation Flow Shop].
c. R indica rutas aleatorias [ Randomly Routed Job Shop ]
d. G indica flujo general, es decir, una situación en la que la ruta de una pieza tiene dos operaciones sucesivas en las máquinas r y s , y la de otra pieza tiene dos operaciones sucesivas en s y r.
En nuestro caso, nos situaremos en el caso de flujo regular con la misma secuencia de piezas [ Permutation Flow Shop ] o P.
Alternativamente, haremos uso de otra notación, recogida también en la literatura científica, para distinguir los casos de Permutation Flow Shop con pulmones ilimitados de aquellos sin pulmones. Dicha notación será del tipo Fm | prmu | Fmax para hacer referencia al caso de Permutation Flow Shop con m máquinas, m - 1 pulmones intermáquina de capacidad ilimitada y Fmax como criterio de eficiencia y Fm | block | Fmax para el caso sin pulmones y mismo criterio de eficiencia.
Además, consideraremos que el tiempo de proceso de cada máquina viene dado por un valor p(j,i), que es la duración de la operación a realizar en la máquina j sobre la pieza i.
Combinando nomenclatura y objetivos podemos concluir que el Problema del Taller Mecánico a tratar durante todo este proyecto será el problema estático n / m / P / Fmax en el que todas las piezas están disponibles en el instante 0, en los casos en los que o bien disponemos de buffers de capacidad ilimitada –caso con pulmones o Fm | prmu | Fmax - o bien no disponemos de buffers entre máquinas –caso sin pulmones o Fm | block | Fmax -.
20 Agustín Alemán González – Laboratorio de Organización Industrial
4.8 Problemas de flujo regular estáticos
Tal y como hemos comentado, en los problemas de flujo regular o Flow Shop , es posible enumerar las máquinas de tal manera que las operaciones sucesivas de una pieza se desarrollen en máquinas cuyos números estén en orden creciente. Si una pieza tiene operaciones en todas las máquinas, su operación j -ésima tendrá lugar en la máquina número j con su correspondiente p(j,i) , si no es así, su p(j,i) = 0. En cualquier caso, ninguna pieza tiene dos operaciones distinguibles en una misma máquina, aunque alguna pieza puede no tener operación en alguna máquina.
De esta manera, los datos referentes a un ejemplar quedarán constituidos por una matriz de p(j,i) que denominaremos matriz de duraciones.
Si denominamos e(j,i) al instante en que la pieza i entra en la etapa j desde la etapa j – 1 y f(j,i) al instante en que sale hacia la etapa j + 1, tendremos que las hipótesis para un problema de Flow Shop clásico son:
e( j , i ) + p( j , i ) = f( j , i ) [4.6]
e( j , i ) = f( j , i - 1 ) [4.7]
e( j , i ) = f( j - 1, i ) [4.8]
La ecuación [4.6] hace referencia a que el instante en que la pieza i entra en la máquina j más el tiempo de procesamiento de la pieza i en la máquina j ha de ser como máximo igual al instante en que la pieza i sale de esa máquina.
La ecuación [4.7] muestra el hecho de que cuando la pieza i vaya a entrar en la máquina j , la pieza precedente debe de haber salido –o está saliendo- hacia la máquina siguiente.
Por último, la ecuación [4.8] indica que la pieza i no puede entrar en la máquina j si ésta última está ocupada por la pieza precedente_._
Para i = 1, j = 1 y j = m debemos determinar expresiones especiales o definir de manera acertada los valores correspondientes de f(j, 0 ), f( 0 ,i) y f(m + 1 , i).
4.8.1 El problema n / m / P / Fmax con pulmones intermáquina
ilimitados o Fm | prmu | Fmax
Una suposición implícita para el caso Fm | prmu | Fmax es que si es necesario, frente a cada máquina puede existir una cola de piezas de tamaño ilimitado que han sufrido un determinado número de operaciones y se hallan a la espera de que la máquina en cuestión quede disponible. Esto equivaldrá a decir que disponemos de buffers ilimitados de tipo FIFO entre las máquinas.