Escolar Documentos
Profissional Documentos
Cultura Documentos
Este captulo pretende fazer uma pequena abordagem ao enorme mundo da programao da produo. Esta actividade, que normalmente designada em ingls por Production Shceduling tambm muitas vezes designada em portugus por escalonamento da produo e por calendarizao da produo. Pode-se dizer, de uma forma simplista, que programar a produo definir numa escala de tempo os instantes de incio e concluso do processamento dos lotes/peas nos diversos recursos do sistema produtivo. A programao da produo das tarefas de mais baixo nvel no quadro do planeamento e controlo da produo de um sistema produtivo pois est directamente ligada ao espao fabril e com um carcter de curto prazo. Para melhor situar este tipo de tarefas, elas enquadra-se no nvel quatro do planeamento e controlo da produo denominado controlo fabril (ver captulo II). Neste captulo nfase dada aos problemas de programao da produo e/ou programao sequencial desde o problema de mquina nica s linhas e oficinas de produo.
3.1 Introduo
Em sistemas produtivos de bens, as ordens de produo so envidas para o espao fabril com as respectivas datas de entrega e planos de processo (inclui informao como as sequncias de fabrico, que mquinas utilizar, tempos de processamento, etc.). Essas ordens tem de ser processadas nos postos de trabalho nas sequncias previstas. O processamento das ordens muitas vezes atrasado porque os postos de trabalho esto ocupados ou porque entretanto chegaram ordens de fabrico com maior prioridade. H tambm o problema das avarias inesperadas de mquinas que podem por em causa o cumprimento dos programas. Outros problemas como tempos de processamento maiores do que o previsto podem produzir atrasos. Como se isto no chegasse, ainda temos a interaco com outras funes de gesto como por exemplo o planeamento das necessidades de materiais (MRP). Se os materiais necessrios no estiverem disponveis nos momentos previstos tambm tem como consequncias atrasos e programao da produo ineficiente. A programao da produo tem tido por parte da comunidade acadmica e cientifica uma grande popularidade nas ltimas dcadas. das reas com mais publicaes em conferncias e em revistas da especialidade mas no entanto das reas onde h talvez mais distncia entre aquilo que se investiga e aquilo que se aplica na prtica industrial. Esta classe de problemas, embora de relativa simplicidade em termos de formulao e de visualizao do que requerido, apresenta-se de extrema dificuldade em termos de encontrar a soluo ptima para os problemas mais comuns. A esmagadora maioria dos problemas reais de programao da produo so por natureza muito complexos e com resoluo muito difcil, em termos da soluo ptima. No se quer aqui dizer que os problemas de programao da produo do dia a dia das nossas empresas no seja resolvidos. O que se quer dizer que as solues encontradas por elas no so as solues ptimas, so apenas solues que vo resolvendo os problemas com a eficincia possvel.
ri O instante a partir do qual a entidade i est disponvel para processamento. di - Data de entrega da entidade i - Ponto no tempo a que a entidade i deve estar concluda. Quanto informao que s obtida depois de processada a programao temos: Ci Instante em que a entidade i acabou de ser processada (completion time). Fi - Tempo de percurso (Flowtime) - Tempo que a entidade i demora no sistema: Fi = Ci - ri Ai - Atraso - Tempo em que o fim do processamento da entidade i excedeu a data de entrega: Ai = Ci - di O tempo de percurso de uma entidade o tempo que esse entidade espera entre a sua chegada ao sistema e a sua partida do sistema. O atraso representa a conformidade do programa de produo com uma dada data de entrega, igual diferena entre a data de concluso da entidade e a data de entrega prevista. importante notar que o valor do atraso toma valores negativos se o processamento da entidade for concludo antes da data de entrega. Muitas vezes existe custo associado aos atrasos positivos mas normalmente no h nenhum beneficio associado ao atraso negativo. Alm das notaes referidas at aqui convm incluir as notaes usadas na classificao dos problemas de programao da produo. Vrios tipos de notaes e classificaes aparecem na literatura mas algumas parecem recolher mais consenso e como tal sero aqui adoptadas. Um sistema geral de programao da produo pode ser classificado por: A/B/C/D onde: A representa o nmero de entidades/lotes/peas, B representa o nmero de mquinas, C representa o tipo de fluxo (F - linha e G - oficina), D representa a medida de desempenho a optimizar. Assim, a ttulo de exemplo, um problema de programao da produo definido por n/4/L/Fmed diz respeito a uma linha de fabrico com 4 mquinas e qualquer nmero de lotes havendo a necessidade de encontrar a soluo que conduz ao menor tempo de percurso mdio. O termo entidade ser sempre usado para se referir ao que flui no sistema, quer se trate de lotes, peas isoladas, componentes ou produtos. O termo mquina ser usado para se referir a qualquer tipo de recurso.
Fmed = F =
Amed
1 n F n i =1 i
1 n = A = Ai n i =1
1i n
Fmax = max{ Fi }
Amax = max{ Ai }
1i n
( A )
i =1 i
33
onde
( x) =1
e ( x ) =0
Como se pode observar pela tabela acima, o nmero de sequncias cresce para nmeros extremamente elevados mesmo para problemas relativamente pequenos de programao da produo. Como no existe relao matemtica entre as diferentes solues do problema, a nica forma de se encontrar a soluo ptima passa pela enumerao completa de todas as solues. A partir da enumerao completa das solues, basta comparar o desempenho de cada uma e seleccionar a melhor. Apenas para dar a ideia da complexidade de tais problemas, se um computador demorar 0,000001 segundos para avaliar cada soluo, seriam necessrios 3.96*1059 segundos, ou seja 1,26*1035 milhes de bilies de sculos para avaliar todas as solues. Alguns problemas de programao da produo so relativamente fceis de resolver, podem ser formulados segundo programao linear e a soluo ptima obtida usando algoritmos existentes. Outros problemas simples podem ser resolvidos com algoritmos que tambm encontram a soluo ptima sendo normalmente chamados algoritmos de tempo polinomial. Como para este tipo problemas h algoritmos de tempo polinomial, ento mesmo nos casos em que estes problemas apresentam grandes dimenses (milhares de mquinas e milhares de lotes) podem igualmente ser resolvidos por computador em relativamente pouco tempo. Contudo, a grande maioria dos problemas de programao da produo so intrinsecamente muito difceis. Esse tipo de problemas denominado por NP hard problems cuja complexidade cresce exponencialmente com a dimenso do problema e encontrar a soluo ptima torna-se praticamente impossvel para problemas de razoveis dimenses. Este tipo de problemas no pode ser formulado usando programao linear nem existem regras ou algoritmos simples que garantam encontrar a soluo ptima num espao de tempo limitado de computador (horas ou poucos dias). Assim, para este tipo de problemas no se consegue garantir a soluo ptima e apenas se conseguem relativamente boas solues.
tem sido desenvolvidas para resolver essa classe de problemas. Assim, antes de estudarmos as tcnicas de uso especfico vamos tentar dar uma viso global das tcnicas, heursticas e algoritmos de uso global. De uma forma simplista poderemos dizer que h trs grandes tipos de problemas de PP: (1) Em primeiro lugar temos os problemas que podem ser formulados atravs da programao linear e para esses existem algoritmos que encontram a soluo ptima. (2) Num outro grupo temos problemas simples para os quais existem algoritmos que garantem a soluo ptima em tempo polinomial, ou seja, mesmo para grandes dimenses do problema, a soluo encontrada em tempo til. (3) Finalmente temos o grupo de problemas, onde infelizmente se encontram os mais comuns, que so intrinsecamente difceis, conhecidos por problemas NP difceis. Para este tipo de problemas, no so conhecidos mtodos que permitam encontrar a soluo ptima em tempo aceitvel. As tcnicas para resolver problemas e programao da produo podem ser do tipo construtivo ou do tipo melhoramento. No primeiro caso a soluo vai sendo construda medida que o mtodo vai sendo aplicado e no segundo tipo (melhoramento) parte-se de uma soluo inicial que vai sendo sucessivamente transformada em melhores solues medida que o mtodo ou tcnica vai sendo aplicado.
35
EDD (Earliest Due Date): Quando uma mquina fica livre, de todas as entidades na fila de espera respectiva, seleccionada para processamento a entidade com a data de entrega mais cedo. Esta regra tende em minimizar o atraso mximo entre as entidades da fila de espera. Nos casos de mquina nica, esta regra garante encontrar o menor atraso mximo. SPT (Shortest Processing Time): Quando uma mquina fica livre, de todas as entidades na fila de espera respectiva, seleccionada para processamento a entidade com menor tempo de processamento nessa mquina. Em problemas de mquina nica esta regra garante o menor tempo de percurso mdio. LPT (Longest Processing Time): Quando uma mquina fica livre, de todas as entidades na fila de espera respectiva, seleccionada para processamento a entidade com maior tempo de processamento nessa mquina. FCFS (First Come First Served): Quando uma mquina fica livre, de todas as entidades na fila de espera respectiva, seleccionada para processamento a entidade que mais cedo chegou fila de espera respectiva. Esta regra garante que nenhuma entidade fica eternamente na fila de espera, ao contrrio das duas regras anteriores que em casos extremos no do esta garantia. MWKR (Most Work Remaining): Quando uma mquina fica livre, de todas as entidades na fila de espera respectiva, seleccionada para processamento a entidade cujo somatrio dos tempos de processamentos nas operaes a efectuar (nessa e nas prximas mquinas) maior. LWKR (Least Work Remaining): Quando uma mquina fica livre, de todas as entidades na fila de espera respectiva, seleccionada para processamento a entidade cujo somatrio dos tempos de processamentos nas operaes por efectuar, menor. MOPNR (Most Operations Remaining): Quando uma mquina fica livre, de todas as entidades na fila de espera respectiva, seleccionada para processamento a entidade com maior numero de operaes por efectuar. Das muitas outras regras existentes em publicaes, vamos incluir algumas, diferentes das anteriores, que so sugeridas por Pinedo e Chao (1999): ERD (Earliest Release Date): Quando uma mquina fica livre, de todas as entidades na fila de espera respectiva, seleccionada para processamento a entidade com data mais cedo de entrada no sistema. Esta regra tenta, at certo ponto, minimizar a variao nos tempos de espera. MS (Minimum Slack): Esta regra uma variao da regra EDD. Quando a mquina fica livre, de todas as entidades na fila de espera respectiva, seleccionada para processamento a entidade cujo tempo de folga at data de entrega menor. O tempo de folga at data de entrega obtido subtraindo, ao tempo que ainda falta at data de entrega, os tempos que sero ainda necessrios para processamento. SST (Shortest Setup Time): Quando uma mquina fica livre, de todas as entidades na fila de espera respectiva, seleccionada para processamento a entidade com o menor tempo de preparao da mquina. SQNO (Shortest Queue at the Next Operation): Esta regra usada em oficinas. Quando uma mquina fica livre, de todas as entidades na fila de espera respectiva, seleccionada para processamento a entidade que em seguida ir para a mquina com a menor fila de espera. A medida do tamanho da fila de espera poder ser feita em termos do nmero de entidades em espera ou em termos do tempo de processamento total em espera. Na tabela 3.1 encontra-se um resumo de algumas das regras mais tpicas classificadas por tipos e com os objectivos normalmente esperados com o seu uso (Pinedo e Chao 1999). Em alguns ambientes industriais algumas destas regras garantem a soluo ptima e noutros
36
casos, infelizmente a maioria, so apenas heursticas razoveis que no garantindo a soluo ptima garantem solues rpidas e razoveis.
Tabela 3.1 - Pequeno resumo de regras de prioridade.
Regra Regras que dependem da data de entrega ou da data de entrada no sistema. Regras que dependem dos tempos de processamento ERD EDD MS LPT SPT Random Diversas SST SQNO
Dados ri di di ti ti sij -
Objectivos Varincia dos tempos de percurso Atraso mximo Atraso mximo Carga equilibrada em processadores paralelos Tempo de percurso mdio e WIP Fcil de implementar Makespan e tempo de percurso Utilizao das mquinas
Em diversos estudos que tem sido feitos ao uso de regras de prioridade em ambientes industriais no se pode dizer que determinada regra de prioridade domina as outras em termos de makespan. Contudo a regra com mais sucesso tem sido mais vezes a regra MWKR e algumas das suas variaes. Apesar disso, a regra SPT, produz melhores resultados num pequeno nmero de situaes. Em termos de tempo de percurso mdio (Fmed) como medida de desempenho, tambm no se chegou concluso de que uma regra dominava as outras, embora SPT e LWKR sejam normalmente mais eficazes do que as outras. As experincias demonstraram que a programao da produo em oficinas de fabrico baseadas em regras de prioridade um mtodo praticvel para a obteno de solues subptimas. Quando o makespan a medida de desempenho a considerar, as regras com mais sucesso so as regras que exprimem a prioridade em relao ao trabalho que ainda necessrio levar a cabo em operaes a realizar. Para os problemas de Fmed parece que resultam melhor as regras que do prioridade s entidades com menor carga de trabalho em operaes a efectuar.
37
Cidade 1 -5 4 5 10
Cidade 2 4 -6 7 9
Cidade 3 8 7 -2 7
Cidade 4 6 11 8 -5
Cidade 5 8 13 11 3 --
O nmero de solues para este problema de n!, ou seja, 120 solues possveis. Para este tamanho do problema no difcil encontrar a soluo ptima, bastando para tal avaliar todas as solues e escolher a melhor. claro que para problemas com 1000 cidades no ser vivel avaliar todas as 1000! solues possveis, pelo que outros mtodos tero de ser usados. Estamos claramente em presena de um problema da classe NP difcil. Uma heurstica muito simples para o problema do caixeiro viajante a regra da cidade mais prxima ainda no visitada (Nearest Unvisited City). Este algoritmo segue os seguintes passos: 1. Seleccionar aleatoriamente uma cidade para cidade de origem. 2. Determinar qual a cidade, das ainda no visitadas, que lhe fica mais prxima. 3. Das cidades no visitadas determinar a que fica mais prxima da seleccionada anteriormente. 4. Repetir o ponto 3 at que todas as cidades sejam visitadas. Assim, para o problema da tabela 3.2, se seleccionarmos a cidade 2 como sendo a cidade de incio, temos como cidade mais prxima a cidade 1, seguidamente a cidade 4, depois a cidade 3 e finalmente s nos resta para visitar a cidade 5. A soluo resultante ento a sequncia 2 1 4 3 5 que traduz um distncia percorrida de 5+6+2+11+9 = 33. Embora no haja garantias que esta seja a soluo ptima, sabemos que uma soluo razovel. Esta capacidade de gerar solues boas de forma rpida torna esta regra atraente para problemas cuja determinao da soluo ptima implica custos proibitivos. Claro que a heurstica pode ser aplicado vrias vezes seleccionando qualquer das cidades para origem obtendo-se assim tantas solues quantas as cidades do problema. Naturalmente que a melhor de todas essas solues dever ento ser seleccionada. O algoritmo foi testado considerando tambm uma variao com capacidade de ver no s a prxima cidade mas tambm a prxima da prxima. Isto , determinar as duas cidades cuja distncia total cidade de referncia mnima. Os resultados indicaram que as solues estavam dentro de um erro mximo de 10% sobre a soluo ptima quando o nmero de cidades inferior ou igual a 20. No entanto isto o desempenho do algoritmo deteriora-se se houver grande variabilidade entre as distncias. A eficincia da aplicao de mtodos heursticos para a soluo de problemas de produo, poder ser melhorada pelo seu uso repetitivo, quando possvel, no mesmo problema, de forma a encontrar diferentes solues das quais se poder escolher a melhor. O problema do caixeiro viajante importante porque alguns problemas de programao da produo podem ser formulados como um problema desse tipo. Para resolvermos esse tipo de problemas de programao da produo basta formul-los como problemas do caixeiro viajante e usar os mtodos que resolvem o problema do caixeiro viajante para obter a soluo.
38
para problemas de grandes dimenses o tempo necessrio pode ser proibitivo. Para ilustrar os princpios deste tipo de tcnicas vamos usar um exemplo de um mtodo desta classe. Um dos primeiros estudos de investigao abordando a tcnica de branch and bound foram levados a cabo por Little et al (1963). Este mtodo tem como objectivo encontrar a soluo ptima do problema do caixeiro viajante que vimos anteriormente. Trata-se de um mtodo construtivo que vai construindo a soluo final pela seleco de pares de cidades. A melhor soluo o trajecto cuja distncia percorrida menor. Este mtodo comea por calcular o limite mnimo terico (lower bound). Esse lower bound dnos a certeza que no possvel encontrar nenhuma soluo cuja distncia percorrida seja inferior a esse valor. Alm disso, este mtodo vai gerando limites mnimos para todos os ramos da rvore indicando os ramos mais promissores. Embora no haja garantia que seja possvel encontrar solues com os desempenhos dos tais lower bounds, esses limites mnimos so vitais para a lgica do mtodo. Para entendermos o mtodo vamos considerar o exemplo da tabela 3.2 que se encontra novamente apresentado na tabela 3.3a. Os passos do mtodo so os seguintes: a) colocar na coluna u os menores valores de cada linha. b) subtrair esses menores valores a todos os elementos das linhas correspondentes (ver tabela 3.3b com o resultado). Nesta tabela temos os valores que representam a distncia adicional que necessrio percorrer se no se escolher o para cuja distncia a menor. A ttulo de exemplo: escolher o par 1-3 custa mais 4 unidades do que escolher o par 1-2. c) partindo da tabela 3.3b colocar na linha v os menores valores de cada coluna. d) subtrair esses menores valores (v) a todos os elementos das colunas correspondentes. Como resultado obtemos a tabela 3.3c. e) o somatrio dos us e dos vs corresponde ao limite inferior (lower bound) que alguma soluo poderia atingir. Onde existem zeros correspondem a pares com as menores distncias mas pode no ser possvel uma soluo com combinao desses pares. f) as casas com zeros, correspondem a pares que, ao ser considerados na soluo final, no trazem nenhum acrscimo distncia percorrida. Assim, vamos seleccionar um desse pares como sendo um dos pares possveis para fazer parte da soluo final. g) dos pares que tem zero na matriz seleccionado o par que no sendo escolhido incorre no maior custo. Assim, cada zero etiquetado com a soma do menor da linha e o menor da coluna correspondes. O par escolhido pode ser o par (1-2) ou o par (5-4) visto serem estes os que tem o maior valor na etiqueta. Vamos escolher o par (1-2), neste caso o par (2-1) nunca poder existir pois se existisse nunca o ciclo seria completo. Agora entra a tcnica de ramificao. Dois ramos so considerados: Escolha do par (12) P12 e a proibio do mesmo par P12 como indica a figura 3.1. No ramo do par (1-2) ainda no sabemos o valor para o Lower Bound (LB), mas no caso da negao do par (1-2) temos um LB de 21 + 4 (etiqueta maior) = 25. O valor de LB indica que, para o ramo em questo, nunca ser possvel encontrar uma soluo com um valor de tempo de percurso total (Makespan) inferior a esse valor.
Tabela 3.3a. P Tabela 3.3b. P (reduzida)(linhas)
(1) -5 4 5 10
(2) 4 -6 7 9
(3) 8 7 -2 7
(4) 6 11 8 -5
(5) 8 13 11 3 --
u
4 5 4 2 5
(1) -0 0 3 5
(2) 0 -2 5 4
(3) 4 2 -0 2
(4) 2 6 4 -0
(5) 4 8 7 1 -1
39
(1) -02 02 3 5
(2) 04 -2 5 4
(3) 4 2 -02 2
(4) 2 6 4 -04
(5) 3 7 6 03 --
LB=21
P
LB=23 LB=25
P12
P12
h) O procedimento de reduo da matriz pode ser agora levado a cabo. Em P12 dado que o par (1-2) faz parte da soluo, o par (2-1) tem de ser proibido, mais todos os outros pares que comecem com 1 e todos os outros pares que acabem com 2. Assim temos como resultado a tabela 3.3d para o ramo P12 e a tabela 3.3e para o ramo P12 . i) A cada uma destas tabelas usamos o mesmo procedimento que usamos at aqui. Cada um dos ramos agora subdividido em 2 ramos e assim por diante.
Tabela 3.3d.
P12
(2) -----(3) -2 -0 2 (4) -6 4 -0 (5) -7 6 0 -(1) (2) (3) (4) (5)
Tabela 3.3e.
P12
(4) 2 6 4 -0 (5) 3 7 6 0 --
(1) --0 3 5
(1) -0 0 3 5
(2) --2 5 4
(3) 4 2 -0 2
O clculo do LB para a ramificao P12 feito a partir da tabela 3.3d. depois de lhe ser feita a reduo dos menores valores em cada linha e em cada coluna. Como podem ento ver na referida tabela, o nico valor a subtrair o valor 2 correspondente ao menor da segunda linha, dado que todas as outras linhas e todas as colunas terem pelo menos um zero. Desta forma, o valor do LB para a ramificao P12 obtido somando 2 ao valor inicial de 21 (ver figura 3.1). Neste momento, o ramo correspondente s sequncias que incluem o par (1,2), o que promete melhores solues pelo que dever ser o primeiro a ser explorado, no querendo isto dizer que a melhor soluo est neste ramificao.
2, 1, 3, 4, 5, 6, 7, .. n-2, n-1, n ; 1, 3, 2, 4, 5, 6, 7, .. n-2, n-1, n ; 1, 2, 4, 3, 5, 6, 7, .. n-2, n-1, n ; . ; . ; 1, 2, 3, 5, 4, 6, 7, .. n-1, n-2, n ; 1, 2, 3, 4, 6, 5, 7, .. n-2, n, n-1 Isto uma lista de (n-1) solues distintas, que chamada a vizinhana da semente, para este particular mecanismo de gerao. No ser difcil de imaginar outros mtodos para criar vizinhanas. Outro mecanismo seria o de introduzir o ltima entidade n, em diferentes posies da mesma soluo semente: n, 1, 2, 3, 4, 5, 6, 7, .. n-2, n-1 ; 1, n, 2, 3, 4, 5, 6, 7, .. n-2, n-1 ; 1, 2, n, 3, 4, 5, 6, 7, .. n-2, n-1 ; . ; . ; 1, 2, 3, 5, 4, 6, 7, .. n, n-1 ; O resultado de novo uma lista de (n-1) solues. O mecanismo pode afectar o nmero de solues da vizinhana. Por exemplo, a vizinhana pode ser criada por um mecanismo que faz a troca entre pares adjacentes ou no, o que ser o nmero de combinaes possveis de pares: Np = =
n 2
n! n(n 1) = 2 (n 2)!* 2 !
Isto quer dizer que neste caso teramos n(n-1)/2 solues na vizinhana. Em geral, dada uma semente e um mecanismo de gerao, qualquer soluo que pode ser formada da semente, numa nica aplicao do mecanismo, definida como pertencendo vizinhana da semente. Procedimento de NST 1. Seleccionar uma soluo semente avaliando o seu desempenho. 2. Gerar e avaliar as solues da vizinhana da semente. Se nenhuma das solues produz melhor desempenho do que a semente, ento termina a busca. Doutra forma continuar. 3. Seleccionar a soluo da vizinhana com melhor desempenho para ser a nova semente. Alm disto necessrio especificar as seguintes opes: 1. Um mtodo para obter a semente. 2. Um particular mecanismo de gerao de vizinhana. 3. Um mtodo para seleccionar a soluo que ir ser a prxima semente. Para clarificar este tipo de tcnicas vamos ver o seguinte exemplo. Considere a minimizao de Na (nmero de trabalhos atrasados), no seguinte problema: Entidade 1 2 3 4 5 Tempo de processamento 1 5 3 9 7 Data de entrega 2 7 8 13 11
41
Um outro dado do problema a forma para seleccionar a primeira semente, usar a regra SPT, e o mecanismo de gerao de vizinhana, a troca entre pares adjacentes. Considerar tambm que a primeira sequncia que melhorar o desempenho ser a nova semente. Resoluo: Primeira semente, obtida pela regra SPT: 1 Sequncia 2 Data de entrega 1 Tempo de percurso Entidades atrasadas Na = 3 Gerao da primeira vizinhana: 3 1 1 2 1 3 1 3 Nova semente: 2 3 5 2 5 5 2 4 4 4 4 5 Na=4 Na=3 Na=2 * Na=3 3 8 4 2 7 9 1 5 11 16 1 4 13 25 1
1, 3, 5, 2, 4
Como nenhuma sequncia melhora o Na=2 da ltima semente, a pesquisa termina com Na=2. A sequncia gerada pelo procedimento NST um ptimo local (em relao estrutura da vizinhana). No h, em geral, forma de saber se o ptimo local tambm o ptimo global (a melhor soluo de todas). Pode-se melhorar o procedimento NST, com vista a encontrar o ptimo global, sem no entanto garantir que foi encontrado, atravs de: 1. Gerao de vrias sementes para comear a busca, aplicando o procedimento de busca a cada semente e retirando a soluo ptima gerada. 2. Para cada vizinhana, guardar as solues melhores que a semente. Usar cada uma destas solues como sementes de novas vizinhanas. A sequncia ptima assim gerada ter maior probabilidade de ser o ptimo global que a gerada pelo procedimento NST. 3. Escolha de mecanismos de gerao de vizinhanas que gere maiores vizinhanas. 4. Etc.. Qualquer destes mecanismos, incluindo o procedimento NSP, razoavelmente eficaz na obteno de boas solues.
solues semente. Os algoritmos genticos quando aplicados programao da produo vem as solues como indivduos ou membros de uma populao. Cada indivduo avaliado quanto ao seu desempenho que dita a sua sobrevivncia na populao. Trata-se de um processo iterativo em que cada iterao uma gerao. necessrio definir qual a populao inicial, qual o mtodo de cruzamento e/ou mutao, qual a medida de desempenho e qual o critrio de paragem. Os algoritmos genticos tem genericamente os seguintes passos: a) Definio da populao inicial. Esta populao um conjunto de X solues (programas) que so geradas usando normalmente uma heurstica. b) Definio do mecanismo de cruzamento e mutao dos indivduos (solues). Estes mecanismos nem sempre so simples de criar pois poder haver muitas restries. c) Depois disto h que fazer cruzamentos e/ou mutaes entre as solues iniciais (progenitores) por forma a gerar os filhos (solues da 2 gerao). O tamanho da 2 gerao poder ser igual ao nmero de progenitores (X). d) Do conjunto das duas geraes (2X indivduos) seleccionam-se os X melhores como sendo a populao sobrevivente. Os melhores so os que apresentao melhor desempenho de acordo com o objectivo. e) Novos cruzamentos e/ou mutaes so levadas a cabo sobre esta nova populao e nova seleco ser feita dos melhores indivduos. f) Este processo repete-se at que deixe de haver melhoria significativa no desempenho das populaes.
Estrangulamento: Posto de trabalho crtico do sistema, o que limita a capacidade de todo o sistema. Este assunto ser abordado noutros captulos. Dinis Carvalho 2000
43
4. Uma vez comeado o processamento, nunca ser interrompido at que todas as entidades sejam processadas. Nestas condies temos o valor de n! como nmero total de combinaes possveis, que o nmero de diferentes permutaes de n elementos. A ttulo de exemplo, para 5 entidades temos 120 sequncias possveis e para 10 entidades temos 3 milhes, 628 mil e 800 sequncias possveis. Se a avaliao de uma medida de desempenho ou eficincia para cada sequncia demorasse 0,1 segundo, seriam necessrios, para o caso dos 10 entidades, 12.6 dias de 8 horas para se poder determinar, por enumerao completa das sequncias possveis, a sequncia que permitiria optimizar a medida de desempenho em questo.
44
Segundo estgio Passo 2. Entidade 4 a primeira entidade com atraso. Passo 3. Entidade 4 retirada de E. E={1-3-5} Terceiro estgio Passo 2. No h nenhuma entidade com atraso no conjunto E. A sequncia ptima : 13-5-2-4 As entidades com atraso, conjunto L, podem ser colocadas na sequncia em qualquer ordem pois isso no altera o nmero de entidades com atraso. As tcnicas de procura local referidas anteriormente neste mesmo captulo tambm podem ser usadas para resolver problemas de programao da produo em mquina nica. L={2,4}
Num ciclo completo de produo, a quantidade de tempo improdutivo (tempo de preparao) depende da sequncia pela qual as gasolinas so produzidas, como se pode ver na tabela acima. Em particular, o tempo total de preparao em cada uma das 6 possveis sequncias que inclui todos os 4 tipos diferente. s(1-2-3-4-1) s(1-2-4-3-1) s(1-3-2-4-1) s(1-3-4-2-1) s(1-4-2-3-1) s(1-4-3-2-1) 30+20+60+20 = 130 30+80+10+30 = 150 50+30+80+20 = 180 50+60+15+40 = 165 90+15+20+30 = 155 90+10+30+40 = 170
Assume-se implicitamente que a produo contnua e que o ciclo sempre mantido. A quantidade de tempo necessria para completar todas as entidades chamada Makespan e ser denotada de M. Assim, vem que: F1 = s0,1 + t1 F2 = s1,2 + t2 + F1 Fn-1 = sn-2,n-1 + tn-1 + Fn-2 Fn = sn-1,n + tn + Fn-1 Onde o estado 0 corresponde ao estado inicial. Se o estado n+1 representa o estado terminal (neste caso idntico ao estado inicial) ento o Makespan de: M = Fn + sn,n+1 =
s
i =1
n +1
i 1,i
+ ti
i
45
Sabendo que o segundo somatrio constante, o problema de minimizao do Makespan equivalente ao da minimizao do primeiro somatrio. Esta soma representa o tempo improdutivo total em cada ciclo de produo. O tipo de estrutura representada por este problema de Makespan equivalente ao problema do caixeiro viajante e como tal pode ser resolvido com as tcnicas aplicadas a esse problema clssico.
1 n M * = max m t i , max t i i =1
[ ]
No deve ser difcil compreender a razo pela qual esta equao vlida. Esta equao diz que, ou as mquinas so utilizadas completamente atravs de uma programao ptima, ou a durao da entidade com maior tempo de processamento determinar o makespan. O mtodo de construo do programa ptimo o seguinte. Algoritmo de McNaughton: 1. Seleccionar uma entidade para comear na mquina 1 ao tempo zero. 2. Escolher qualquer entidade ainda no seleccionada e coloca-la o mais cedo possvel na mesma mquina. Repetir este passo at que a mquina ficar ocupada at ao tempo M* (ou at todas as entidades ficarem atribudas). 3. Pegar na parte da entidade que ficou por completar na mquina anterior e atribu-la prxima mquina. Volta ao passo 2. Se a interrupo das entidades proibida, o problema de minimizao do makespan algo mais complicado. No h conhecimento de algum algoritmo que encontre a soluo ptima embora haja um procedimento heurstico para a construo de um programa envolvendo o uso da regra LPT (Longest Processing Time) como um mecanismo de prioridade. Procedimento heurstico para minimizao do M
46
1. Ordenar as entidades pelo seu tempo de processamento mais longo (LPT). 2. Programar essas entidades por ordem, atribuir a entidade mquina que fica livre mais cedo. Este heurstico no garante um makespan ptimo. Procedimento para minimizao do Fmed 1. Ordenar as entidades pelo seu tempo de processamento mais curto (SPT). 3. Atribuir a prxima entidade mquina que fique livre mais cedo. Repetir at que todas as entidades estejam atribudas.
47
Do universo de programas possveis numa linha de fabrico h um subgrupo importante de programas que so os programas ordenados. Os programas ordenadas so apenas aqueles em a sequncia pela qual as entidades entram na primeira mquina mantida em todas as mquinas da linha (ver figura 3.2a). Desta forma, a linha pode ser vista como apenas uma mquina com muitas operaes, o que resulta num nmero de programas igual a n!. Na procura da soluo ptima, no basta considerar apenas os programas ordenados pois a soluo ptima pode muito bem ser um programa no ordenado. No entanto, tambm nem sempre necessrio considerar os (n!)m programas para se encontrar a soluo ptima. As duas propriedades seguintes indicam o quanto possvel reduzir o nmero de programas neste tipo de problemas. Propriedade 1. No que diz respeito a qualquer medida de desempenho, suficiente considerar, para as mquinas 1 e 2, apenas os programas ordenados. possvel compreender esta propriedade considerando um programa em que as sequncias nas mquinas 1 e 2 so diferentes. Vamos considerar que algures no programa temos duas entidades i e j em que a operao (i,1) precede a operao adjacente (j,1) mas a operao
M1 1 M2 M3
2 1 1
3 2 3 2 3 possvel e
M1 M2 M3
2 1 1
3 3 2 3 2 e no
a) Programa ordenado t
1 2 a)
i,1
j,1 j,2
i,2
1 2 b)
j,1
i,1 j,2
i,2
A ideia mostrar que a ordem das entidades na mquina 2 (j antes de i) pode ser tambm aplicada na mquina 1 sem afectar negativamente a medida de desempenho. Se as operaes (i,1) e (j,1) forem trocadas resulta no programa apresentado na figura 3.3b), ento: 1. Com a excepo da operao (i,1), nenhuma operao ser atrasada. 2. A operao (i,2) no ser atrasada pela troca.
48
3. O processamento de (j,2) bem como outras operaes pode ser levado a cabo mais cedo como resultado da troca. Assim a concluso das entidades no seria atrasada pela troca das operaes. Isto quer dizer que nenhuma entidade seria concluda mais tarde o que mostra que no iria piorar nenhuma medida regular de desempenho. Propriedade 2. No que diz respeito ao makespan como medida de desempenho, suficiente considerar apenas os programas ordenados nas mquinas m-1 e m. A demonstrao desta propriedade baseada num argumento parecido do que foi usado na propriedade 1. Considerar um programa em que as sequncias nas mquinas m e m-1 so diferentes. Da figura 3.4 podem-se tirar as seguintes concluses: 1. Com a excepo de (j,m) nenhuma operao atrasada pela troca. 2. A operao (j,m) no concluda mais tarde do que (i,m) do programa inicial. 3. Pode ser possvel que como resultado da troca que as operaes (i,m) e (j,m) sejam processadas mais cedo. Assim a troca no leva ao aumento do makespan. Este tipo de argumento aplica-se a qualquer outro programa nas quais as sequncias diferem entre as mquinas m-1 e m. m-1 m a)
i,m-1
m-1 m b)
...
i,m-1
...
As implicaes destas duas propriedades so que quando se procura pela soluo ptima no necessrio considerar todos os programas possveis. O nmero de programas necessrios so: 1. Para qualquer medida regular de desempenho temos (n!)m-1 programas. 2. Para o makespan temos (n!)m-2 programas desde que m>2.
min{ti1,tj2} min{ti2,tj1}
A implementao desta regra segue os seguintes passos:
Dinis Carvalho 2000
49
Passo 1. Encontrar min {ti1,ti2} Passo 2a. Se o menor tempo de processamento requer a 1 mquina, colocar a entidade respectiva na primeira posio disponvel. Ir para o passo 3. Passo 2b. Se o menor tempo de processamento requer a 2 mquina, colocar a entidade respectiva na ltima posio disponvel. Ir para o passo 3. Passo 3. Retirar a entidade atribuda e voltar ao passo 1 at que todos as entidades sejam atribudas.
t
j '
j1
Para alm disso, suponham que uma dada entidade k a ultima da sequncia. Depois da entidade k ter sido concluda na mquina 1, um intervalo de pelo menos (tk2 + tk3) necessrio antes toda o programa possa ser concludo, como mostra a figura 3.5a. Na situao mais favorvel, a ultima entidade (1) no tem de esperar entre a concluso de uma operao e o comeo da prxima, e (2) tem a soma mnima (tj2 + tj3) entre as entidades de . O clculo de q1, q2 e q3 quando o conjunto apenas composto de uma entidade, feito da seguinte forma:
50
q1
.... ....
tk1 tk2
q2
3
...
(a)
q3
t k3 b1
...
q2 q3
tk2
...
(b)
tk3 b2
Figura 3.5 Estrutura de um programa de produo para linha de fabrico com o intuito de calculo dos limites inferiores de makespan para uma dada sequncia parcial. As reas a cinzento representam os tempos de processamento das entidades j consideradas para a sequncia parcial.
O clculo de q1, q2 e q3 fica um pouco complexo quando o conjunto tem mais do que uma entidade. Neste caso o clculo feito da seguinte forma:
t
j '
j1
+ min t j 2 + t j 3
j '
Um raciocnio similar tambm aplicado ao processamento requerido na mquina 2 (figura 3.5b) resultando no segundo limite inferior do makespan:
b2 = q 2 + t j 2 + min t j 3
j ' j '
{ }
b3 = q 3 + t j 3
j '
O limite inferior da cada alternativa dado por: B=max{b1, b2, b3} Para clarificar o mtodo, vejamos o seguinte exemplo: Entidad ei ti1 ti2 ti3 1 3 4 10 2 11 1 5 3 7 9 13 4 10 12 2
= {1} e = {2, 3, 4}
Dinis Carvalho 2000
51
Assim, q1 = t11 = 3, q2 = t11 + t12 = 7 e q3 = t11 + t12 + t13 =17 Os limites inferiores so: b1 = 3 +28 +6 = 37 b2 =7 + 22 + 2 =31 b3 = 17 + 20 = 37 Os clculos requeridos para encontrar o ptimo so: Sequncia parcial 1 2 3 4 12 13 14 132 134 (q1, q2, q3) (3, 7, 17) (11, 12, 17) (7, 16, 29) (10, 22, 24) (14, 15, 22) (10, 19, 32) (13, 25, 27) (21, 22, 37) (20, 32, 34 (b1, b2, b3) (37, 31, 37) (45, 39, 42) (37, 35, 46) (37, 41, 52) (45, 38, 37) (37, 34, 39) (37, 40, 45) (45, 36, 39) (37, 38, 39) B 37 45 46 52 45 39 45 45 39
= {1, 2} e = {3, 4}
q1 = q1(anterior) + ti1 = 3 + 11 = 14 q2 = max{q1 , q2(anterior)}+ ti2 = max{14, 7} + 1 = 15 q3 = max{q2 , q3(anterior)}+ ti3 = max{15, 17} + 5 = 22
A rvore de Branch and Bound correspondente tabela anterior est representada na figura 3.6.
P0
P11 B=37
P21 B=45
P31 B=46
P41 B=52
P122
B=45
P132
B=39
P142
B=45
P1323
B=45
P1343
B=39
52
em cada mquina. No conceptualmente mais difcil lidar com o caso geral em que uma entidade pode requerer mais do que uma vez o processamento na mesma mquina. A figura 3.7 mostra todas as possibilidades que uma mquina numa oficina de fabrico pode ter em termos de fluxo. Cada mquina pode ser a primeira, a ltima ou ter qualquer outra ordem na sequncia de operaes requeridas para o processamento de uma entidade.
Novos lotes
Lotes em curso
Mquina K
Lotes em curso
Lotes concludos
Em linhas de fabrico, a operao k de qualquer entidade levada a cabo na mquina k, e no h de facto necessidade de distinguir entre nmero da mquina e nmero da operao. No caso das oficinas mais apropriado descrever uma operao com (i, j, k) por forma a definir claramente que a operao j da entidade i requer a mquina k. A descrio grfica das entidades a serem processadas em cada mquina, no problema da oficinas, est representado na figura 3.8a por um grfico de Gantt. A numerao sequencial das operaes para uma dada entidade uma forma de indicar a sequncia de operaes. Se as operaes forem colocadas da forma mais compacta possvel no grfico de Gantt de uma forma arbitrria como mostra a figura 3.8a, o grfico representa uma forma de carregar as mquinas que mais provavelmente no ser exequvel. Um programa exequvel para o mesmo problema apresentado na figura 3.8b, que obedece aos constrangimentos dos recursos quando duas operaes no podem ser levadas a cabo simultaneamente na mesma mquina. O grupo de mquinas que uma dada entidade tem de visitar constitui a trajectria (routing) dessa entidade e faz parte do plano de processo da mesma. Por exemplo, a entidade 2 tem uma trajectria de 2-1-3. O problema fica completamente formulado quando tambm definimos a medida de desempenho a optimizar. Sempre que numa soluo (programa de produo) exista a possibilidade de comear mais cedo uma operao numa mquina sem alterar a sequncia das operaes em nenhuma das mquinas ento estamos em presena de tempo suprfluo de inactividade. O conjunto de programas em que no existe nenhum tempo suprfluo de inactividade chamam-se programas semi-activos. S necessrio considerar os programas semi-activos por forma a encontrar o programa que optimiza uma dada medida de desempenho.
M1 M2 M3
331
431
233
53
a)
M1 M2 M3 b)
212 313
111
331
133
O numero de programas semi-activos finito embora possa ser extremamente grande. O numero exacto normalmente difcil de determinar. Se considerarmos que todas as entidades visitam todas as mquinas da oficina ento temos (n!)m programas semi-activos.
De acordo com o mtodo de Jackson, o programa de produo resultante para o problema ser o seguinte: Na mquina A: Na mquina B: (L6) (L7) (L4) (L5) {A} {B} {B,A} {A,B}
Nota: A ordem para as entidades dos conjuntos {A} e {B} arbitrria, no influenciando o valor .
A visualizao do programa pode fazer-se atravs de um diagrama de Gantt, de onde podemos tambm obter o valor de makespan, que para o exemplo :
54
Maq. A Maq. B
L6 L7 3
L4 L5 5 7
L2 L1 11
L5 L3 14
L7
L6 L4 25 30
Trajectrias Operao 1 2 M1 M2 M2 M1 M3 M2 M2 M3 3 M3 M3 M1 M1
Entidades
E1 E2 E3 E4
55
Para se prever o que vai acontecer com o uso da regra MWKR necessrio usar algum mtodo que v registando a evoluo do tempo e as alteraes que vo acontecendo nas filas de espera e nas mquinas. Podemos utilizar um grfico de Gantt onde se vai construindo o programa ou ento uma tabela. Vamos comear com o instante zero. Neste instante todas as entidades esto disponveis para processamento. Neste instante as mquinas M1 e M3 so apenas requeridas por uma entidade cada uma, logo, no h nenhum problema de deciso, essas entidades podem ser imediatamente enviadas para processamento. Assim a entidade E1 enviada para a mquina M1 e a entidade E3 para a mquina M3. Os instantes de concluso previstos so respectivamente de 4 e 3. O problema de deciso acontece apenas com as entidades E2 e E4 pois ambas requerem a mquina M2. Das duas entidades a que tem maior valor de MWKR a entidade E2 com 1+4+4 = 9 enquanto que o valor de MWKR de E4 de 7. Assim, a E2 vai para M2 e E4 fica em fila de espera.
T actual 0 1 3 4 7 8 92 103 12 14
M1 E1 E1 E1 E2 E2 E4 E3 E3 ---
T concluso 4 4 4 8 8 9 12 12 ---
M2 E2 E4 E4 E1 E3 E3 -----
T concluso 1 4 4 7 9 9 -----
M3 E3 E3 -E4 E1 E1 E1 E2 E2 --
T concluso 3 3 -7 10 10 10 14 14 --
O prximo instante em que haver um evento o instante 1, instante de concluso de E2 em M2. Nesse instante E2 ser transportada para a fila de espera da mquina M1. O processamento de E4 iniciado. O processo continua nesta lgica at que todas as entidades estejam concludas (ver figura 3.9). O makespan obtido pelo uso desta regra ser de 14. Para o mesmo problema, usando a aplicao LEKIN, com a regra Minimum Slack, obtemos um programa com um makespan tambm de 14. Esse programa, em diagrama de Gantt e tal qual aparece na referida aplicao apresentado na figura 3.10.
2 3
Instante em que E4 conclui todas as operaes Instante em que E1 conclui todas as operaes
56
Figura 3.10 Aspecto do programa obtido pela aplicao LEKIN. Uso da regra MS.
O mesmo problema, mas desta vez resolvido pelo uso da heurstica Shifting Bottleneck com a mesma aplicao, foi obtido um programa com um makespan ligeiramente menor (13). Esse programa apresentado na figura 3.11.
Figura 3.11 Aspecto do programa obtido pela aplicao LEKIN. Uso da heurstica Shifting Bottleneck.
57
Procedimentos probabilsticos de prioridade Tendo como objectivo a seleco de um programa que apresenta uma boa medida de desempenho, poder-se-ia gerar aleatoriamente uma srie de programas, avali-los e finalmente escolher o que apresentar a melhor medida de desempenho. Outra forma seria a de repetir a criao de programas usando regras de prioridade diferentes. Por exemplo, no problema do makespan poder-se-ia obter um programa usando a regra MWKR, depois outro programa usando a regra MOPNR e depois outro com a regra SPT e assim por diante. No final escolher-se-ia o programa que apresentasse o melhor valor do makespan. Uma abordagem similar a de usar uma famlia de regras combinando as filosofias de regras de prioridade e amostragem aleatria. Mesmo com boas regras de prioridade
Referncias
Baker K R, 1974, Introduction to sequencing and scheduling, Jonh wiley & sons, 1974 Johnson S M, 1954, Optimal two- and three-stage production schedules with setup times included, Naval research logistics quarterly, vol.1, no. 1, (Maro, 1954). Karg R and Thompson G L, 1964, A Heuristic approach to solving traveling salesman problems, Management science, vol 10, no2 (Janeiro, 1964). LEKIN, http://www.ieor.columbia.edu/~andrew/scheduling/Lekin.html Little J D C, Murty K G, Sweeny D W and Karel C, 1963, An algorithm for the traveling salesman problem, Operations research, vol 11, no 6 (Novembro, 1963). McNaughton R, 1959, Scheduling with deadlines and loss functions, Management science, vol.6, no.1 (Outubro, 1959). Pinedo M e Chao X, 1999, Operations Scheduling: With applications in manufacturing and services, McGraw-Hill International Editions, NSBN 0-07-116675-0
58