Você está na página 1de 27

CAPTULO III Programao da Produo

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.

3.1.1 Notao adoptada


Convm estabelecer aqui alguns atributos das entidades. Alguns deles existem antes de serem processados e outros s passam a ser conhecidos depois de serem processados. Para os primeiros vamos usar uma notao baseada em letra minscula e para os segundos letra maiscula. Para a informao existente antes do processamento das entidades temos: ti - Tempo de processamento para a entidade i.

Captulo IIII - Programao da produo

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.

3.1.2 Medidas de desempenho


Os programas de produo so normalmente avaliados por medidas de desempenho. De seguidas so apresentadas algumas medidas de desempenho mais tpicas e que so as que sero normalmente usadas neste captulo para avaliar as solues: 1. Tempo de percurso mdio:

Fmed = F =
Amed

1 n F n i =1 i

2. Atraso mdio: 3. Tempo de percurso mximo: 4. Atraso mximo:

1 n = A = Ai n i =1
1i n

Fmax = max{ Fi }
Amax = max{ Ai }
1i n

5. Numero de entidades atrasadas: N a =

( A )
i =1 i

Dinis Carvalho 2000

33

onde

( x) =1

se x>o caso contrrio

e ( x ) =0

3.1.1 Complexidade do Problema


O caso mais simples deste tipo de problemas o problema da ordenao de n entidades (lotes, peas, produtos ou componentes) em mquina ou processador nico (n/1//) para a maioria das medidas de desempenho apresentadas neste captulo. O nmero de solues possveis neste caso de n!. Por outro lado o caso mais complexo o caso de um oficina de fabrico com m mquinas e n entidades (n/m/G/ ). Neste ltimo caso o nmero de solues possveis de (n!)m. A tabela seguinte mostra de que forma varia o nmero de sequncias possveis com a variao do nmero de entidades e nmero de mquinas numa oficina de fabrico. Nmero de entidades (n) 5 5 5 10 Nmero de mquinas (m) 1 3 5 10 nmero de solues 120 1.7 milhes 25.000 milhes 3.96*1065

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.

3.2 Procedimentos gerais de programao da produo


Embora algumas tcnicas sejam apropriadas para este ou aquele problema de programao da produo especfico, convm esclarecer que algumas tcnicas, alm do seu uso geral na PP tambm so usadas em muitas outras reas. Uma grande parte dos problemas PP so problemas de optimizao combinatria e como tal podem ser resolvidos com as tcnicas que 34

Captulo IIII - Programao da produo

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.

3.2.1 Regras de prioridade


Uma regra de prioridade ou regra de despacho uma regra que estabelece a prioridade com que sero processadas as entidades que esperam para ser processadas numa mquina. O esquema de prioridade pode estar relacionado com atributos das entidades, atributos das mquinas, ou tambm relacionado com o tempo actual. Quando uma mquina completa o processamento de uma entidade, a regra de prioridade que selecciona, da lista de espera, a entidade com a prioridade mais alta. O nmero de regras de prioridades existentes enorme e de pelo menos vrias centenas e no nos interessa cobrir a maior parte delas. no entanto interessante falar dos diferentes modos como elas podem ser classificadas e focar as regras mais tipicamente usadas. Uma possvel classificao tem como base o facto que umas regras so estticas e outras so dinmicas: As regras de prioridade estticas so aquelas cujo valor da prioridade independente do instante de tempo actual. A regra SPT (Shortest Processing Time) em que a entidade com menor tempo de processamento a que tem maior prioridade uma regra esttica pois o tempo de processamento no varia com o tempo. As regras dinmicas so regras cujo valor de prioridade varia com o tempo. Vejamos a regra Folga para processamento que traduz o tempo que ainda h para processamento at data de entrega. O valor desta regra varia continuamente com o tempo, por isso uma regra dinmica. Outra forma de classificao tem a ver com o tipo de informao em que se baseia a regra em questo. Por uma lado temos as regras locais que apenas levam em linha de conta a informao relativa fila de espera onde se encontra a entidade respectiva. SPT um exemplo de uma regra local. Por outro lado temos as regras globais. Estas regras levam em linha de conta informao de todo o sistema produtivo. Exemplos desta classe e regras Most Work Remaining onde tem maior prioridade a entidade cujo somatrio dos tempos de processamento das operaes que ainda falta realizar at ficar completamente pronta. Muitas regra podem ser encontradas na literatura e a sua apresentao exaustiva no necessria nestes textos. Apenas com o intuito de dar alguns exemplos mais tpicos aqui vo algumas regras de prioridade: RANDOM (Random): Quando uma mquina fica livre, de todas as entidades na fila de espera respectiva, seleccionada para processamento uma entidade aleatoriamente. No h objectivo nenhum em optimizar qualquer medida de desempenho.

Dinis Carvalho 2000

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

Captulo IIII - Programao da produo

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.

3.2.2 Tcnicas heursticas


As heursticas so tcnicas que embora no garantindo a soluo ptima, encontram solues razoveis de uma forma simples e rpida. Todos ns usamos tcnicas heursticas no dia a dia para encontrar as solues para os problemas que nos aparecem. Se tivermos de ir s compras a trs lojas, podemos decidir por exemplo ir em primeiro lugar loja que est mais perto, ou quela cujo volume da compra menor. A soluo ptima pode no ter sido conseguida porque, por exemplo, a primeira loja que decidimos ir estava, naquele momento, cheia de gente. Acabamos por desistir e ir a outra em primeiro lugar. Neste caso utilizamos heursticas pois a deciso foi rpida e simples mas no conseguimos garantir a soluo ptima. Vamos ver um exemplo de uma heurstica aplicada a um problema clssico que o problema do caixeiro viajante. Na sua formulao clssica, o viajante tem de visitar clientes em cada uma das n cidades do negcio. O viajante procura encontrar o trajecto mais curto que o leve a cada uma, e apenas uma, de todas as cidades e voltar ao ponto de partida. Dadas as distncias entre pares de cidades, a tarefa do viajante encontrar a trajectria que lhe minimiza a distncia percorrida. Vejamos o exemplo da tabela 3.2. em que o viajante tem de as visitar quatro cidades conhecendo as distncias entre elas.
Tabela 3.2 Um exemplo do problema do caixeiro viajante.

Dinis Carvalho 2000

37

Cidade 1 Cidade 2 Cidade 3 Cidade 4 Cidade 5

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.

3.2.3 Tcnicas de Branch and Bound


As tcnicas de Branch and Bound so esquemas inteligentes de enumerao completa, ou seja, conseguem mostrar desnecessrio a explorao de grupos de solues provando que no incluem a soluo ptima. Este tipo de tcnicas garante encontrar a soluo ptima mas

38

Captulo IIII - Programao da produo

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) (2) (3) (4) (5)

(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) (2) (3) (4) (5) v

(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

Dinis Carvalho 2000

39

Tabela 3.3c. P (reduzida)(colunas)

(1) (2) (3) (4) (5)

(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

Figura 3.1 Ramificao de opes.

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) (2) (3) (4) (5)

(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.

3.2.4 Tcnicas de procura local


O esforo computacional requerido para resolver problemas combinatrios cresce enormemente com o tamanho do problema. Embora seja difcil dizer quando que um problema tem o tamanho tpico dos problemas prticos necessrio ter sempre em ateno que as tcnicas de optimizao so sempre gulosas em tempo computacional. Problemas de 5 ou 10 entidades pode ser resolvido rapidamente, mas um problema com 20 entidades pode no ser praticvel onde as capacidades computacionais so escassas ou caras ou ainda onde as decises de programao tem de ser tomadas em minutos. Mtodos de sub-optimizao ou procedimento heursticos so adequados para a obteno rpida de boas solues para a ordenao de entidades, mas que no so necessariamente ptimas. As tcnicas de procura local (NST - Neighborhood Search Techniques) permite obter rapidamente, de forma simples e flexvel, boas solues. Os elementos bsicos, na aplicao desta abordagem programao da produo, so os conceitos de semente, de vizinhana e de mecanismo para gerao de vizinhanas. O mecanismo de gerao um mtodo que cria sistematicamente solues relacionadas com um soluo semente. Um exemplo de um mecanismo pode ser o da troca entre pares adjacentes. Se a soluo semente for: 1,2,3,4,5,6,7,..n-2,n-1,n; ento as solues geradas por troca de pares adjacentes seriam: 40

Captulo IIII - Programao da produo

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

Dinis Carvalho 2000

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

Gerao de vizinhana: 3 1 1 1 1 5 3 3 5 3 2 5 2 2 5 4 4 4 4 2 Na=3 Na=3 Na=3 Na=2

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.

3.2.4 Algoritmos genticos


Os algoritmos genticos tem como base a lgica da evoluo gentica. Os indivduos com melhor desempenho so os que sobrevivem e que se reproduzem para gerar nova gerao e assim sucessivamente. Assim, cada nova gerao tem apenas as combinaes genticas dos melhores indivduos da gerao anterior. Esta lei natural assegura que cada espcie tenda naturalmente a melhorar o seu desempenho mdio ao longo das geraes. Os algoritmos genticos podem ser considerados como pertencendo classe das tcnicas de procura local com algumas particularidades: A principal caracterstica que em vez de se iniciar o processo com uma soluo semente, o processo iniciado com um conjunto de 42

Captulo IIII - Programao da produo

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.

3.3 Programao em mquina nica


A programao da produo em mquina nica ou processador nico um problema de programao especial no qual a ordenao (pr em sequncia) das entidades, determina completamente o programa de produo. Podemos dizer que se trata de um problema sequencial puro e apesar de ser o mais simples dos problemas de programao da produo, contudo muito importante. Por um lado ilustra a variedade de tpicos nos problemas de programao da produo e por outro, fornece um contexto no qual se investiga vrias medidas de desempenho e vrias tcnicas. Alm disso, o desempenho de um sistema produtivo passa muitas vezes pelo uso que dado ao estrangulamento1 desse mesmo sistema. Assim, a ordenao das entidades no estrangulamento pode ser levada a cabo de uma forma isolada caindo claramente num problema de mquina nica. Todo o resto do sistema depois programado em funo das decises tomadas no estrangulamento. Alm disso, para se poder entender o comportamento de um sistema complexo, vital que se entenda o comportamento dos seus componentes. Assim, o problema de programao da produo em mquina nica aparece muitas vezes como um componente elementar de um problema de programao complexo. O problema bsico em mquina nica caracterizado pelas seguintes condies: 1. Um grupo de n entidades (lotes, peas, produtos, etc.) independentes, com apenas uma operao est disponvel ao instante zero. 2. Os tempos de preparao da mquina so independentes da sequncia e podem ser includos nos tempos de processamento. 3. A mquina est continuamente disponvel.

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.

3.3.1 Minimizao de algumas medidas de desempenho


Para certas medidas de desempenho, existem algoritmos de optimizao, de aplicao expedita pelo que no se torna necessrio fazer enumerao completa e avaliao de todas as sequncias possveis. Assim, em mquina nica, quando se pretende minimizar o atraso mdio (Amed) relativamente s datas de entrega das entidades, podemos aplicar o seguinte teorema: Minimizao do atraso mdio. O atraso mdio, Amed, das entidades a processar em mquina nica minimizado ordenando as entidades por ordem crescente dos seus tempos de processamento, ou seja, pelo uso da regra SPT (Shortest Processing Time). Minimizao do tempo de percurso mdio. O tempo de percurso mdio Fmed, das entidades a processar em mquina nica tambm minimizado ordenando as entidades por ordem crescente dos tempos de processamento, ou seja, pelo uso da mesma regra SPT. Minimizao do atraso mximo. O atraso mximo, Amax, minimizado atravs da ordenao das entidades pela ordem crescente das datas de entrega. Uso da regra EDD (Earliest due date) Minimizao do nmero de entidades com atraso. O algoritmo de Hodgson minimiza o nmero de entidades em atraso, Na. Tem os seguintes passos: 1. Colocar todas as entidades no conjunto E ordenando-as pela ordem crescente das suas datas de entrega (regra EDD). Criar um conjunto L vazio. 2. Se nenhuma entidade em E tem atraso, termina aqui: E ptimo. Caso contrrio, identificar a primeira entidade de E que tem atraso. Vamos supor que a entidade k. 3. Identificar a entidade com tempo de processamento maior nas primeiras k entidades do conjunto E. Tirar essa entidade do conjunto E colocando-a no conjunto L. Recalcular os tempos de concluso das entidades que restam no conjunto E. Voltar ao passo 2. Com o objectivo de clarificar o algoritmos vejamos um exemplo: Entidade i 1 2 3 4 5 Primeiro estgio Passo 1. Inicializao. Passo 2. Entidade 3 a primeira entidade com atraso. Passo3. Entidade 2 retirada de E. E={1-2-3-5-4} E={1-3-5-4} L={} L={2} ti 1 5 3 9 7 di 2 7 8 13 11

44

Captulo IIII - Programao da produo

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}

3.4 Mquina nica com tempos de preparao variveis


Em muitos problemas reais, os tempos de preparao da mquina variam com o tipo de entidade que acabou de ser processada e do tipo de entidade a ser processada a seguir. A ttulo de exemplo, suponhamos que uma linha produz 4 tipos de gasolina: de competio, super, normal e sem chumbo. A matriz dos tempos de preparao, sij, pode ser representada pela seguinte tabela: De corrida (1) -40 30 20 Aditivada (2) 30 -30 15 S/ chumbo 95 (3) 50 20 -10 S/ Chumbo 98 (4) 90 80 60 --

De corrida (1) Aditivada (2) S/ chumbo 95 (3) S/ chumbo 98 (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

Dinis Carvalho 2000

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.

3.5 Programao da produo em processadores paralelos


O processo de programao da produo requer por um lado decises quanto sequenciao e por outro lado, decises quanto atribuio de recursos. Quando h apenas um recurso, o problema de programao da produo limita-se sequenciao enquanto que se houver mais do que um recurso, necessrio tomar deciso tambm no respeitante atribuio de recursos.

3.5.1 Processadores paralelos idnticos e entidades independentes


Em programao da produo muitas vezes possvel tirar partido do paralelismo na estrutura dos recursos. Um contexto simples para investigar os efeitos dos recursos paralelos o problema da sequenciao de estgio simples com vrias mquinas. No modelo bsico, supem-se que h n entidades de apenas uma operao simultaneamente disponveis no tempo zero. Supe-se tambm que h m mquinas disponveis para processamento e que uma entidade s pode ser processada por uma mquina de cada vez. Minimizar Makespan (Tempo de percurso total) Uma resoluo ao problema de minimizao do makespan em processadores paralelos foi proposto por McNaughton, 1959 onde as entidades so independentes e a interrupo da entidade permitida. O processamento de uma entidade pode ser interrompido para ser concludo noutra mquina. A propriedade central est no facto de que o makespan mnimo, M*, dado por:

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

Captulo IIII - Programao da produo

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.

3.6 Programao da produo em linhas de fabrico


No processamento de entidades em linha de fabrico (linha de produo, linha de montagem) cada entidade sujeita a mais do que uma operao que ter de acontecer numa sequncia pr-definida, ou seja, cada entidade requer uma sequncia especfica de operaes a ser processadas por forma a que a entidade seja concluda. Este tipo de estrutura , s vezes, chamada estrutura de precedncia linear. Uma linha contm m mquinas e cada entidade consiste de m operaes, cada uma das quais requerendo mquinas diferentes. As mquinas numa linha so numeradas: 1, 2, 3,m: e as operaes na entidade i so numeradas de forma correspondente: (i,1), (i,2), (i,3), ., (i.m). Na linha de fabrico pura, cada entidade requer uma operao em cada mquina. Numa linha de fabrico vista de uma forma mais geral, entidades podem requerer menos operaes do que o nmero de mquinas. Neste ltimo caso algumas entidades podem prescindir de alguma ou algumas mquinas. Apesar disso, suficiente estudar apenas a linha pura para ilustrar os principais aspectos do modelo. Condies que caracterizam um problema de programao da produo em linhas de fabrico: 1. Todas as n entidades esto disponveis ao tempo zero. (Cada entidade requer m operaes e cada operao requer uma mquina diferente). 2. Os tempos de preparao so independentes da sequncia e esto includos nos tempos de processamento. 3. As descries das entidades so previamente conhecidas. 4. Todas as mquinas esto continuamente disponveis. 5. Operaes individuais no podem ser interrompidas uma vez iniciadas. No problema da programao da produo em linhas de fabrico, h n! sequncias diferentes possveis para cada mquina e consequentemente (n!)m programas de produo (solues) diferente para ser examinados.

3.6.1 Programas ordenados de produo

Dinis Carvalho 2000

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

b) Programa possvel ordenado t

Figura 3.2. Programas ordenados e possveis.

(j,2) precede (i,2). Esta situao est representada na figura 3.3.

1 2 a)

i,1

j,1 j,2

i,2

1 2 b)

j,1

i,1 j,2

i,2

Figura 3.3 Troca de pares entre duas operaes na mquina 1.

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

Captulo IIII - Programao da produo

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

j,m-1 j,m i,m

m-1 m b)

...

i,m-1

...

j,m-1 i,m j,m

Figura 3.4 Troca de pares entre duas operaes na mquina m.

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.

3.6.2 Regra de Johnson


conhecido pelo problema de Johnson, o problema de linha de fabrico com duas mquinas sendo o makespan o a medida de desempenho a minimizar o. Os resultados originalmente obtidos por Johnson, 1954, so agora fundamentos normalizados na teoria de programao da produo. A regra de Johnson diz que a entidade i precede a entidade j numa sequncia ptima se:

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.

3.6.3 Algoritmo de Ignall-Schrage


Este algoritmo aplica-se a problemas de programao da produo em linha de fabrico e encontra o programa com menor makespan de entre todos os programas ordenados. Para ilustrar o procedimento para m=3 considere-se o seguinte: m - nmero de mquinas. tij - tempo de processamento da entidade j na mquina i. - Conjunto de entidades consideradas na sequncia parcial. - Conjunto de entidades ainda no consideradas na sequncia parcial. Para uma dada sequncia parcial considere que: q1 - o tempo de concluso mais tardio na mquina 1 entre as entidades em (este o tempo mais cedo a partir do qual alguma entidade de pode ser processada). q2 - o tempo de concluso mais tardio na mquina 2 entre as entidades em . q3 - o tempo de concluso mais tardio na mquina 3 entre as entidades em . A quantidade de tempo de processamento ainda requerido na mquina 1 de:

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:

q1 = t11 q2 = t11 + t12 q3 = t11 + t12 + t13

50

Captulo IIII - Programao da produo

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:

q1 = q1(anterior) + ti1 q2 = max{q1 , q2(anterior)}+ ti2 q3 = max{q2 , q3(anterior)}+ ti3


O ndice (anterior) refere-se entidade seleccionada na iterao anterior. Assim, um dos limites inferiores (lower bound) do makespan : b1 = q1 +

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 '

{ }

Finalmente, um limite inferior baseado no processamento ainda requerido pela mquina 3 :

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

Para as sequncias que incluam a entidade 1 temos:

= {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

Para as sequncias que incluam as entidades 1 e 2 temos:

= {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

Figura 3.6 A rvore de Branch and Bound para o exemplo anterior.

3.7 Programao da produo em oficinas de fabrico


O problema clssico de programao de oficinas difere do problema das linhas num aspecto importante: o fluxo dos materiais no unidireccional. Cada entidade apresenta uma sequncia prpria de mquinas a visitar. Apesar que cada entidade possa ter um nmero qualquer de operaes, a formulao mais comum assume que todas as entidades tem m operaes, uma

52

Captulo IIII - Programao da produo

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

Figura 3.7 Fluxo numa mquina tpica numa oficina.

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

111 122 133 212 313 322

221 412 423

331

431

233

Dinis Carvalho 2000

53

a)

M1 M2 M3 b)
212 313

221 412 322 423

111

431 122 233

331

133

Figura 3.8 Representao de programas em diagrama de Gantt. a) inexequvel, b) exequvel.

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.

3.7.1 Oficina com 2 mquinas - Mtodo de Jackson


Este mtodo tem como objectivo a minimizao do makespan em problemas de programao da produo em oficinas de fabrico com apenas 2 mquinas e qualquer nmero de entidades. Para explicar o mtodo vamos usar um exemplo: Considere que se pretende executar/processar 7 entidades de L1 a L7, numa oficina com duas mquinas, A e B, cuja sequncia e tempos de processamento so indicados na tabela seguinte. Os valores entre parntesis dizem respeito aos tempos de processamento. Entidades 1 operao 2 operao Aplicao do mtodo: {A} = {L2} => Conjunto de entidades processadas s na mquina A. {B} = {L1, L3} => Conjunto de entidades processadas s na mquina B. {A,B} = {L4, L6} => Conjunto de entidades processadas primeiro em A e depois em B. {B,A} = {L5, L7} => Conjunto de entidades processadas primeiro em B e depois em A. Aplicar o mtodo de Johnson aos conjuntos {A,B} e {B,A} assumindo tratar-se de dois problemas independentes de linhas de fabrico. Assim, resulta para cada um dos conjuntos as seguintes sequncias: {A,B} = {L4,L6} => (L6) {B,A} = {L5,L7} => (L7) (L4) (L5) L1 B(5) -L2 A(7) -L3 B(2) -L4 A(4) B(5) L5 B(6) A(2) L6 A(3) B(7) L7 B(5) A(3)

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

Captulo IIII - Programao da produo

Maq. A Maq. B

L6 L7 3

L4 L5 5 7

L2 L1 11

L5 L3 14

L7
L6 L4 25 30

3.7.2 Oficina com m mquinas


Este um problema NP difcil e no pode ser formulado usando programao linear, no entanto, podem ser formulados com programao inteira e programao disjuntiva (Pinedo e Chau, 1999). Os mesmos autores apresentam um mtodo de Branch and Bound para resolver este problema em termos de makespan. Como sabem este tipo de mtodos garante encontrar a soluo ptima mas, para problemas com grandes dimenses, o enorme esforo computacional requerido torna proibitiva a enumerao completa de todos programas semiactivos, mesmo que essa enumerao seja truncada por um esquema de Branch and Bound. Ainda mesmos autores apresentam a heurstica Shifting Bottleneck para resolver este tipo de problemas. possvel fazer o download grtis de uma aplicao informtica para resolver problemas de programao da produo onde esta heurstica pode ser experimentada (http://www.ieor.columbia.edu/~andrew/scheduling/Lekin.html). O mecanismo mais comum para resolver estes problemas na industria em geral, passa pelo uso de regras de prioridade. A tomada de deciso acontece em tempo real em cada uma das mquina da oficina. Vrias so as regras que so usadas e delas j foi feita referncia neste mesmo captulo. Nas empresas menos organizadas a tomada de deciso feita numa base pouco sistemtica mas pressupem sempre algum tipo de regra de prioridade, como por exemplo, as entidades do cliente mais importante so as primeiras a ser processadas, ou, se um cliente fizer muita presso, o seu lote poder ser o prximo a ser processado, etc.. Regras de prioridade As regras de prioridade so normalmente usadas em ambientes dinmicos, ou seja, onde novas entidades esto continuamente a entrar no sistema, e so usadas em tempo real, ou seja, as decises vo sendo tomadas medida que haja alteraes no sistema. Quando uma entidade conluiada numa mquina necessrio decidir qual a prxima entidade a ser processada, ou, se uma mquina avaria, necessrio decidir o que fazer s entidades da fila de espera respectiva. A nica coisa que podemos fazer aqui, prever o comportamento do sistema se uma determinada regra for usada num sistema produtivo. Para ilustrar o que pode acontecer no uso de regras de prioridade suponham que a regra MWKR (most work remaining) aplicada ao seguinte exemplo:

Tempos de processamento Operao 1 2 3 4 3 3 E1 1 4 4 Entidades E2 3 2 3 E3 3 3 1 E4

Trajectrias Operao 1 2 M1 M2 M2 M1 M3 M2 M2 M3 3 M3 M3 M1 M1

Entidades

E1 E2 E3 E4

Dinis Carvalho 2000

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

Fila M1 -E2 E2 -E4 ------

M1 E1 E1 E1 E2 E2 E4 E3 E3 ---

T concluso 4 4 4 8 8 9 12 12 ---

Fila M2 E4 -E3 E3 -------

M2 E2 E4 E4 E1 E3 E3 -----

T concluso 1 4 4 7 9 9 -----

Fila M3 ----E2 E2 ----

M3 E3 E3 -E4 E1 E1 E1 E2 E2 --

T concluso 3 3 -7 10 10 10 14 14 --

Figura 3.9 Representao do programa em forma de tabela.

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

Captulo IIII - Programao da produo

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.

Dinis Carvalho 2000

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