Resumos
Este artigo e mais o artigo Parte II (Emissão de Ordens e Programação de Operações) fazem parte de um trabalho que visa integrar todas as atividades de programação da produção dentro do contexto de um Sistema de Controle da Produção, concebido para operar na manufatura celular semi-repetitiva. Para deixarmos claro o que entendemos por manufatura celular semi-repetitiva fazemos uma classificação dos sistemas de produção e uma taxonomia da manufatura celular. O sistema proposto foi concebido e implementado computacionalmente em 3 módulos (nível de produto final, de componentes e de operações). O primeiro é tratado neste artigo (Parte I), enquanto que outros dois módulos são tratados no outro artigo (Parte II).
controle da produção; programação da produção; programa mestre de produção; manufatura celular; sistemas de apoio à decisão; classificação de sistemas
This paper and that of Part II (ordering system and operations scheduling) aims to integrate all production scheduling activities in a semi-repetitive cellular manufacturing environment. With the aim of clarifying what we mean by semi-repetitive cellular manufacturing, we have made a production systems classification and a cellular manufacturing taxonomy. The proposed system was conceptualized and computationally implemented in three modules (product, component and operation levels). The first level is treated in this paper and the other two are treated in the Part II.
production control; production scheduling; master production scheduling; cellular manufacturing; decision support systems; systems classification
Um sistema de controle da produção para a manufatura celular parte I: sistema de apoio à decisão para a elaboração do programa mestre de produção
A production control system to the cellular manufacturing part I: decision support system for elaborating the master production scheduling
Flávio César F. FernandesI; Creusa Sayuri TaharaII
IProf. Doutor do Departamento de Engenharia de Produção. Universidade Federal de São Carlos (UFSCar). Fax: (016) 274-8240
IIMestre em Engenharia de Produção pela UFSCar. Doutoranda em Engenharia de Produção na EESC-USP
RESUMO
Este artigo e mais o artigo Parte II (Emissão de Ordens e Programação de Operações) fazem parte de um trabalho que visa integrar todas as atividades de programação da produção dentro do contexto de um Sistema de Controle da Produção, concebido para operar na manufatura celular semi-repetitiva. Para deixarmos claro o que entendemos por manufatura celular semi-repetitiva fazemos uma classificação dos sistemas de produção e uma taxonomia da manufatura celular. O sistema proposto foi concebido e implementado computacionalmente em 3 módulos (nível de produto final, de componentes e de operações). O primeiro é tratado neste artigo (Parte I), enquanto que outros dois módulos são tratados no outro artigo (Parte II).
Palavras-chave: controle da produção, programação da produção, programa mestre de produção, manufatura celular, sistemas de apoio à decisão, classificação de sistemas.
ABSTRACT
This paper and that of Part II (ordering system and operations scheduling) aims to integrate all production scheduling activities in a semi-repetitive cellular manufacturing environment. With the aim of clarifying what we mean by semi-repetitive cellular manufacturing, we have made a production systems classification and a cellular manufacturing taxonomy. The proposed system was conceptualized and computationally implemented in three modules (product, component and operation levels). The first level is treated in this paper and the other two are treated in the Part II.
Key-words: production control, production scheduling, master production scheduling, cellular manufacturing, decision support systems, systems classification.
1. Introdução
Há muitos e muitos séculos que a utilização dos recursos de forma eficiente, ou seja evitando desperdícios, se colocou como um problema para a humanidade. Isso nos explica o porquê do aparecimento das quatro funções gerenciais (organização, planejamento, direção e controle) há tanto tempo. Segundo GEORGE Jr. (1972), por volta do ano 4000 a.C., os egípcios reconheceram a necessidade de planejar, organizar e controlar (prova disso foi terem viabilizado a construção das grandes pirâmides, além de terem sido conservados manuscritos da época). Essas funções e mais a de dirigir (comandar, coordenar, liderar) tinham suas necessidades reconhecidas pelos chineses por volta de 1100 a.C. (GEORGE Jr., 1972).
A maior contribuição ao problema do controle de alguma atividade foi dada por James Watt quando inventou o governador da máquina a vapor. Seu objetivo era controlar a velocidade do eixo da máquina; para tanto:
a) é definido um padrão (número de rotações por minuto do eixo). Obs: no controle de qualidade esse padrão é dado pelos limites de controle dentro dos quais a variável de controle deve situar-se; no controle da produção esse padrão é o programa de produção que deve ser cumprido;
b) é monitorado o que está de fato ocorrendo;
c) é comparado o real com o padrão e em caso de desvios são tomadas providências de modo que o padrão seja redefinido ou o real convirja para o padrão.
O Controle da Produção (CP) é uma atividade gerencial das mais importantes, que visa regular o fluxo de materiais na fábrica. Dado que quanto maior o horizonte de planejamento, maior a imprevisibilidade do futuro (quebra de máquinas, absenteísmo, greves, flutuações na demanda, medidas governamentais, ...), só faz sentido regular o fluxo de materiais com base em programas de curto prazo (no máximo três meses). Naturalmente, quanto mais instável o sistema de produção ou o seu ambiente, menor deve ser o horizonte.
Há muita confusão entre as atividades de Controle da Produção (CP) e a de Planejamento da Produção (PP). Para ambas, as funções de planejar e controlar são essenciais. Porém, o objetivo do PP é muito diferente. O Planejamento da Produção trata de questões de médio prazo (três a dezoito meses), tais como: planejamento da capacidade produtiva para tentar compatibilizá-la com o comportamento esperado da demanda futura, fornecer diretrizes e parâmetros para que contratos de fornecimento de médio prazo possam ser firmados, etc.
Isso difere:
a) da concepção de BURBIDGE (1971) que entende que o Planejamento da Produção é a função de gestão que projeta o sistema de fluxo de materiais e, assim, compreende a escolha: (i) dos materiais, (ii) dos equipamentos e demais recursos produtivos, (iii) dos roteiros de fabricação, (iv) do sistema de armazenagem e do sistema de movimentação de materiais, e (v) do lay-out. Para nós, essas atividades fazem parte do Projeto do Sistema Produtivo.
b) um pouco da opinião de BURBIDGE (1975; 1978), seguida por WARNECKE & KOLLE (1979) que a formularam do seguinte modo: "O Controle da Produção planeja, controla e monitora a produção. (...) pode ser dividido em planejamento de médio e longo prazos, planejamento e controle de curto prazo". Convém destacar que BURBIDGE (1985) afirmou que tinha convicção de que ao homem não foi dada a capacidade de prever o futuro e que portanto, o CP deveria restringir-se ao curto prazo. Contudo em 1990, BURBIDGE (1990) volta a colocar que do âmbito do Controle da Produção fazem parte a programação de curto e a de longo prazos.
Devido ao fato da situação brasileira ser sempre altamente instável, excluímos do âmbito do Controle da Produção o planejamento de médio e longo prazos.
Como já foi dito, o controle da produção envolve a programação da produção de curto prazo e o monitoramento do chão de fábrica, com realimentação após comparar o que foi programado com o que está efetivamente ocorrendo (ver figura 1). Tal programação envolve três níveis hierárquicos de decisão (Quadro 1): 1) elaboração do Programa Mestre de Produção (PMP), 2) Emissão de Ordens, e 3) Programação de Operações.
O que propomos é um sistema de Controle da Produção (SCP) que contempla os três níveis e foi desenvolvido para operar na manufatura celular semi-repetitiva. Para deixarmos claro o que entendemos por manufatura celular semi-repetitiva fazemos uma classificação dos sistemas de produção (seção 2) e uma taxonomia da manufatura celular (seção 3). Vale ressaltar que não existe um SCP plenamente satisfatório para a manufatura semi-repetitiva e, segundo BURBIDGE (1975), o essencial para o êxito da Tecnologia de Grupo é usar o layout em grupo e um sistema de controle da produção apropriado. Há relatos na literatura de que o sistema celular implantado em algumas fábricas na Rússia e na Inglaterra passou a funcionar pior que o sistema convencional anteriormente existente, porque o sistema de controle da produção não foi substituído por um sistema apropriado ao novo tipo de estrutura do chão-de- fábrica.
A concepção completa do SCP que propomos está em FERNANDES (1991). A implementação e os testes, em computador, foram objeto de duas dissertações de mestrado ((TAHARA, 1995) e (PACHECO, 1995)). A primeira tratou do sistema de apoio à decisão para elaboração do programa mestre de produção para a manufatura celular (SADEPMEP) e a segunda, tratou do sistema de emissão de ordens e programação de operações para a manufatura celular (SEMPRO). O SADEPMEP é apresentado neste artigo e o SEMPRO na Parte II.
Além do nosso, o único trabalho de que temos conhecimento sobre um sistema para elaboração do PMP utilizando formalismo científico é o de DAS & SARIN (submetido em 1990) que formulam um modelo que combina o planejamento agregado da produção e o PMP no que eles denominam de Programa Agregado da Produção. Atualmente consideramos esse estudo como altamente teórico e pretencioso, não só pela dificuldade de resolver modelos de Programaçao Inteira Mista de grande porte, mas principalmente pela dificuldade de obter os valores dos parâmetros das funções-custo envolvidas. Nas indústrias brasileiras atuais, mesmo nas mais organizadas, essa abordagem é impraticável.
2. Classificação dos Sistemas de Produção
Provavelmente, a primeira classificação consistente dos sistemas de produção foi feita por JOHNSON & MONTGOMERY (1974), a saber:
1- Sistema contínuo: poucas famílias de produtos similares feitos em grande volume.
2- Sistema Intermitente flow-shop: grande variedade de produtos fabricados, com mudanças freqüentes nos lotes sendo produzidos, em que os itens de uma mesma linha têm a mesma seqüência de operações nas máquinas.
3- Sistema Intermitente job-shop: grande variedade de produtos fabricados, com mudanças freqüentes dos lotes que estão sendo produzidos, e diferenças, quanto ao roteiro de fabricação, entre os itens fabricados num setor produtivo.
4- Sistema Grande Projeto: em que produtos especiais e complexos são produzidos, geralmente sob encomenda e não raro uma única vez.
5- Sistema Puro de Estoques: em que não há o processamento. Os produtos são comprados, estocados (distribuídos ou não) e revendidos.
Observando que a manufatura celular é intermediária, em termos de aplicação entre o job-shop e o flow-shop, BLACK (1983) propôs a seguinte classificação: 1- sistema de grande projeto; 2- job-shop; 3- manufatura celular; 4- flow-shop; 5- sistema de processo contínuo.
Vale ressaltar que:
flow-shop é um tipo de instalação, ou de padrão de fluxo, em que todas as tarefas executadas têm o mesmo roteiro de fabricação (passam pelas mesmas máquinas e na mesma ordem);
job-shop é um tipo de instalação fabril para produção em lotes (intermitente), em que o arranjo físico é do tipo funcional e, na grande maioria das vezes, a produção é feita sob encomenda; pode significar ainda o tipo de padrão de fluxo em que cada peça tem um roteiro de fabricação que pode ou não ser o mesmo de alguma(s) outra(s) peça(s) fabricada(s) na instalação.
Tomando por base o conceito de repetibilidade, classificamos os sistemas produtivos em:
1- sistema contínuo puro;
2- sistema de produção em massa (representado pelo flow-shop);
3- sistema de produção repetitivo (representado pela manufatura celular em que o padrão de fluxo é flow-shop);
4- sistema de produção semi-repetitivo (representado pela manufatura celular em que o padrão de fluxo é job-shop);
5- sistema de produção não-repetitivo (representado pelo job-shop);
6- sistema grande projeto.
Esta classificação é um refinamento das anteriores. Contudo, apresenta a necessidade de se definir repetibilidade de forma precisa. Para RIBEIRO (1984) se estivéssemos fabricando o item em lotes do tamanho definido pelo lote econômico e então, para atender à demanda tivéssemos que fabricar lotes a intervalos menores ou iguais a dez dias, então o item seria considerado repetitivo.
Consideramos:
Sistema de Produção Repetitivo: o sistema de produção em que pelo menos 75% dos itens são repetitivos;
Sistema de Produção Semi-repetitivo: o sistema de produção em que pelo menos de 25% dos itens são repetitivos e pelo menos 25% dos itens não são repetitivos;
Sistema de Produção Não-repetitivo: o sistema de produção em que pelo menos 75% dos itens não são repetitivos;
3. Manufatura Celular Semi-repetitiva
Diversas classificações dos tipos de células são possíveis. PERA (1974, apud SINHA & HOLLIER (1984)) sugere três tipos de células:
a) células flexíveis. Tarefas que foram planejadas para serem executadas numa célula podem ser transferidas, por questão de conveniência, para uma outra célula;
b) células baseadas na descrição dos itens. Por exemplo, células de engrenagens;
c) células baseadas nos roteiros de processo.
Com base no tipo de lay-out, ARN (1975) classifica as células em três categorias:
a) linha de produção de TG (Tecnologia de Grupo). Parecida com a linha de produção, a principal diferença é que nesta, o número de produtos fabricados é um (admitindo variantes do produto), e na TG é unitário o número de famílias. Em ambas, o padrão de fluxo é flow-shop;
b) célula de TG. Padrão de fluxo job-shop. Consideramos como sendo a célula de ocorrência mais usual;
c) centro de TG. As máquinas do centro são todas do mesmo tipo; assim, a racionalização é feita para um único tipo de operação (por exemplo torneamento); representa o nível de racionalização mais baixo no contexto da TG, e pode ser aplicado com o lay-out funcional. As peças que são processadas num dado centro de TG, são agrupadas em famílias.
Células com um número grande de máquinas, superior a aproximadamente 15 máquinas, são usualmente chamadas de células do tipo mini-fábrica.
Petrov (1968, apud SINHA & HOLLIER (1984)) considera que as células são basicamente linhas de produção com múltiplos produtos e as classifica como:
a) linhas de produção variáveis. Poucos tipos de itens e só um entra na célula por vez. Antes de mudar para outro, todas as máquinas são preparadas;
b) linhas de produção de grupo, com repreparação de equipamentos. Número substancial de componentes, podendo haver produção de diferentes itens em paralelo (simultaneamente);
c) linhas de produção de grupo, sem repreparação de equipamentos. Em cada máquina passa sempre o mesmo conjunto de componentes de tal modo que não há repreparação de máquinas.
Já SHAW (1988) considera:
a) células flexíveis. Compostas de máquinas universais usadas e preparadas para realizar uma grande variedade de operações;
b) células orientadas por produto. Por exemplo, células de engrenagens;
c) células de montagem por robô.
GALLAGHER & KNIGHT (1986) classificam as células segundo a complexidade do sistema de movimentação de materiais:
a) célula integrada. Uso integrado de esteiras transportadoras para o controle do fluxo de materiais na célula;
b) célula semi-integrada. Uso de esteiras transportadoras para finalidades apenas de transporte e armazenagem do estoque em processo;
c) célula simples. Sem aparatos de movimentação;
d) trabalho agrupado em uma única máquina, e em particular usando a abordagem do componente composto.
Outra classificação consiste em diferenciar apenas as células de fabricação e as células de montagem. Estas últimas podem ser (GALLAGHER & KNIGHT, 1986):
a) grupos em série. Os problemas de balanceamento são reduzidos com a inserção de pulmões (buffers) entre cada dois grupos consecutivos;
b) grupos em paralelo. Cada um monta o produto completo, e o número deles é determinado pelo volume de produção requerido;
c) grupos ramificados. Submontagens em paralelo, seguidas de montagem(ns) final(is).
Já as células providas com automação flexível podem ser classificadas em (SPUR & MERTINS, 1982):
a) Linha de Transferência Flexível (FTL). Características: interligação interna; usinagem de multiestágios; transporte cíclico; fluxo direcionado do material; versatilidade parcial do equipamento de processamento com tempos de preparação relativamente curtos;
b) Sistema Flexível de Manufatura (FMS). Características: interligação externa; usinagem de mono ou multiestágio; transporte não-cíclico; fluxo de material automatizado; preparação não-manual para spectrum limitado de peças;
c) Célula Flexível de Manufatura. Características: máquinas isoladas sem interligação; usinagem de estágio único; troca automatizada de ferramentas; é um centro de usinagem contendo ainda um magazine para ferramentas e outro para pallets contendo peças.
De uma forma análoga à dos tipos clássicos de lay-out, CONTADOR (1995) classifica as células de manufatura em 4 tipos:
a) por produto, com predominância de máquina;
b) por produto, com predominância do homem;
c) por processo;
d) por posição fixa do produto.
Para fins de controle da produção, a característica mais importante de uma célula é o padrão de fluxo que nela ocorre. "A complexidade de um sistema de controle da produção é diretamente relacionada com a complexidade do fluxo de trabalho na área de fabricação" (DALE & RUSSELL, 1983). Assim sendo, fazemos uma classificação baseada no fluxo no interior da célula:
(i) Célula monoestágio. Por exemplo, o centro de usinagem.
(ii) Célula monoestágio com máquinas em paralelo.
(iii) Célula multiestágio unidirecional. Corresponde ao flow-shop.
(iv) Célula multiestágio unidirecional variado. Admite saltar máquinas (overflow).
(v) Célula multiestágio unidirecional com máquinas em paralelo. Corresponde ao flow-line.
(vi) Célula multiestágio unidirecional variado com máquinas em paralelo. WITTROCK (1985) denomina de Flexible Flow-Line.
(vii) Célula multiestágio multidirecional. Admite saltos de máquinas bem como contrafluxos. Corresponde ao padrão de fluxo job-shop.
(viii) Célula multiestágio multidirecional com máquinas em paralelo.
Agora temos condições de definir o que é manufatura celular semi-repetitiva: é o sistema de produção semi-repetitivo em que o chão-de-fábrica é constituído por células multi-estágio multi-direcional, a produção é feita sob encomenda e os produtos finais são semi-padronizados (o cliente define alguns parâmetros, p.ex., o vão livre de uma ponte rolante).
4. Sistema de Apoio à Decisão para Elaboração do Programa Mestre de Produção
4.1 Conceituação
O Programa Mestre de Produção (PMP), como inicializador do processo de regulagem do fluxo de materiais, deve ser elaborado para um horizonte de apenas alguns períodos (de uma ou duas semanas cada um). Para uma visão geral dos princípios para a elaboração do PMP e de casos práticos relativos ao tema recomendamos BERRY et al. (1989).
Para tratar esse problema propomos um Sistema de Apoio à Decisão (SAD) que denominamos de SADEPMEP (Sistema de Apoio à Decisão para Elaboração do Programa Mestre de Produção) em que o usuário (provavelmente o gerente de produção) interage com o sistema composto por uma interface que gerencia o diálogo usuário/sistema, uma base de dados, um modelo de programação inteira (modelo I) e um algoritmo heurístico (algoritmo H). Revisão e discussão recentes a respeito dos SADs podem ser encontradas em ANGEHRN & JELASSI (1994) e RADERMACHER (1994).
Um objetivo que não é considerado na literatura referente à programação da produção é o da maximização do Valor Presente, muito usado na avaliação de alternativas de investimentos financeiros. Dada a inflação significativa que, em geral, acompanha a economia brasileira, acreditamos que esse critério é da maior importância em nosso país. Admitiremos que, preservadas as restrições e condições de contorno, é melhor entregar o produto X no período j e entregar um produto Y de menor valor num período posterior a j, do que o inverso. Mesmo em 1995, que foi considerado como o ano de menor inflação das últimas décadas, os juros cobrados, que são o que realmente importa para esse tipo de critério, estão altíssimos, e mesmo a inflação ficou entre 15,25% (índice IGPM da FGV) e 46,18% (índice ICV do DIEESE). O IPC da FIPE-USP ficou em 23,16%. Além disso, na manufatura celular semi-repetitiva, cuja produção, como vimos, é feita sob encomenda e envolve produtos semipadronizados, precisamos de uma maneira de priorizar a fabricação dos produtos finais (ou seja, quais clientes vão receber primeiro seus produtos) já que todas as encomendas devem ser atendidas. Assim, neste caso, não faz sentido o critério maximizar lucro (tal critério pressupõe que podemos escolher qual a quantidade total a ser produzida, de cada produto, durante todo o horizonte de programação, o que não é verdadeiro para o caso de produção sob encomenda). Já o critério minimizar custos só faria sentido se as decisões tomadas quanto à priorização dos pedidos de fato alterassem tais custos. Adotando como objetivo maximizar o Valor Presente, estamos indireta e implicitamente dando maior prioridade aos clientes que vão desembolsar maiores somas monetárias. Em geral, as empresas consideram que tais clientes pertencem ao conjunto de seus clientes preferenciais.
Os dados necessários para o funcionamento do modelo I são:
a) um Plano de Vendas (usualmente a Carteira de Pedidos) de curto prazo, cobrindo alguns períodos (por exemplo 8 semanas); esses pedidos são agrupados por produto;
b) uma taxa de atratividade, que espelhe o que vale, em termos monetários, para a empresa, ter uma entrada em caixa postergada em um período (por exemplo, a taxa referencial de juros semanal);
c) as condições de pagamento oferecidas aos clientes em relação aos produtos solicitados (por exemplo, $20000 na entrega mais $20000 daí a 30 dias).
Com esses dados, o sistema monta a função-objetivo (maximizar o Valor Presente) e a primeira restrição de que a demanda (deduzida a partir da carteira de pedidos) deve ser atendida. Para essa restrição, o usuário especifica o estoque previsto de cada produto para o início do primeiro período considerado no horizonte de programação, e o estoque desejado para o início do primeiro período após o horizonte de programação considerado.
Denominamos de h o período corrente, no início do qual consideramos que está sendo elaborado o PMP,. O horizonte de programação cobrirá HP períodos, a saber: h+2, h+3, ... , h+HP+1. Se o PMP elaborado especificar que x unidades do produto X deverão ser concluídas no período h+2, admitimos (veja o próximo artigo: Parte II referente ao Sistema de Emissão de Ordens) que nos períodos h e h+1 serão fabricadas as peças do produto X, e no período h+2 serão montadas as x unidades desse produto.
A segunda restrição trata da mão-de-obra de montagem. A capacidade da mão-de-obra não pode ser ultrapassada, bem como deve atingir um nível mínimo desejado pelo usuário. Quanto mais prioridade ele der à utilização da mão-de-obra, maior deverá ser o limite inferior, por ele especificado, dessa restrição. A mão-de-obra de fabricação é considerada pelo usuário quando ele interage com o Algoritmo H (seção 4.5), e especifica as células a serem ativadas no período em questão.
Consideramos a possibilidade de introduzir no modelo uma restrição que levasse em conta o nível desejado de capital investido em estoque. Contudo, para o usuário obter controle total sobre o estoque de produtos finais basta que ele especifique o nível desejado de estoque dos produtos finais no início do primeiro período após o horizonte de programação, e isso é realizado pelo usuário na especificação da restrição 1. Esse fato decorre da suposição que fazemos de que se um produto estiver pronto e contar com pedido em carteira, ele será imediatamente entregue para fazer caixa. Além disso, como as peças serão produzidas em conjuntos balanceados, não há problema de estoque de peças fabricadas. Assim, só resta para ser tratado o estoque de componentes adquiridos de terceiros. Essa questão não é tratada neste trabalho, cuja atenção está voltada para os itens de fabricação própria; o controle da produção apenas especificará, para a área de compras, com uma antecipação de dois períodos, dado o Sistema de Emissão de Ordens que adotamos no próximo artigo, a quantidade mínima necessária de cada componente fornecido por terceiros; e assim toda a definição de políticas de controle de estoques de tais itens, principalmente os itens com leadtime de suprimento maior que 2 períodos, é considerada neste trabalho como sendo tratada fora do Sistema de Controle da Produção aqui proposto.
Como terceira restrição a ser tratada temos o nível desejado de utilização das células e sua própria capacidade produtiva.
Na manufatura celular semi-repetitiva, a utilização da capacidade dos equipamentos depende da alocação de carga às células, já que admitimos que existem peças que podem ser realizadas em sua célula primária ou em sua célula secundária. Esse conceito foi explicitado por CHOOBINEH (1984): células primária e secundária são células viáveis para uma dada peça, porém o tempo ou o custo de produção é menor no caso de se usar a célula primária. Buzacott (1983, apud KASSICIEH & SCHULTZ (1987)) sustenta que existem duas alternativas aos Sistemas de Manufatura: (a) uma é a flexibilidade de tarefa, nos casos em que a tarefa pode ser realizada por pelo menos dois processos alternativos; (b) a outra é a flexibilidade de máquina, em que as máquinas são repreparadas de modo a realizar as diferentes operações requeridas por diferentes tarefas. A alternativa (a) depende de uma programação da produção eficiente, enquanto que a (b) depende principalmente de recursos tecnológicos de modo que essas repreparações sejam rápidas para que a produtividade não caia.
Com processos alternativos (primário e secundário), levar em conta a restrição (3) do modelo acima na manufatura celular, é bem mais complicado que no caso da manufatura convencional. Assim a restrição (3) é tratada à parte.
Para levar em conta a carga das células, devemos considerar as peças e não os produtos. Pensamos em tratar a restrição (3) por meio de um modelo de programação inteira; porém, como o número de peças é muito maior do que o número de produtos, esse modelo de programação inteira teria um número exorbitante de variáveis, o que o tornaria intratável do ponto de vista da computação. Assim tratamos tal restrição por intermédio de um método heurístico que propomos e denominamos de Algoritmo H.
Obtida uma solução da interação do usuário com o modelo I, é ativado o algoritmo H que, partindo dessa solução e da especificação, pelo usuário, das células que permanecerão inativas durante o período, para manutenção, procura atribuir às células uma carga viável. O algoritmo H trata um período de cada vez.
Pode então acontecer que:
(i) o usuário considere que a solução obtida apresenta uma baixa utilização da capacidade da célula; assim, ele poderá aumentar o número de células que ficarão inativas e usar novamente o algoritmo H;
(ii) a capacidade de alguma(s) célula(s) seja excedida; nesse caso ou o usuário aumenta essa capacidade, por meio de horas extras, por exemplo, ou ativa alguma(s) das que permaneceriam inativas, e então volta a utilizar o algoritmo H na busca de uma nova solução. Pode ocorrer que, mesmo ativando todas as células passíveis de serem ativadas, ainda assim a capacidade não seja suficiente. Nesse caso, após observar os períodos em que há sub-utilização de capacidade, o usuário deve providenciar a elaboração de um novo PMP, que será uma nova entrada para o algoritmo H, ou alterando o período de produção de alguns produtos, ou voltando a interagir com o modelo I. Esse processo terminará quando for obtido pelo menos um PMP satisfatório, segundo a visão do usuário. Ao final do processo, dentre os PMPs viáveis, o usuário escolhe o que ele achar melhor, e seleciona uma dentre as viáveis atribuições de carga às células relativas a esse PMP.
A saída do SADEPMEP, que é uma entrada para o Sistema de Emissão de Ordens (artigo Parte II), é portanto a quantidade de cada produto final a ser montada no período j (j= h+2, ..., h+HP+1), a quantidade de cada peça (correspondente ao PMP do período j) cuja produção deve ser iniciada no período j-2, bem como a indicação da célula na qual cada uma delas deve ser fabricada.
A estrutura do SADEPMEP está colocada na figura 2.
4.2 A Interface Usuário/Sistema
A interface é responsável pelo gerenciamento do diálogo usuário/sistema. No SADEPMEP esse diálogo é orientado por menu.
Na atualização dos dados, além de poder acrescentar pedidos dos clientes, cancelar pedidos, dar baixa em pedidos já concluídos e entregues etc, o usuário pode alterar o período h corrente, no início do qual ele deve elaborar um PMP (Programa Mestre de Produção), alterar o HP (número de períodos a ser considerado na elaboração do PMP, ou seja, HP é a duração do Horizonte de Programação), alterar t (a duração em semanas de cada período, usualmente uma ou duas semanas), alterar o preço e a forma de pagamento dos produtos, etc.
Na opção Elaboração do PMP, o módulo Modelo I (seção 4.4) e o módulo Algoritmo H (seção 4.5) são executados, havendo, principalmente no módulo H, intenso acesso à Base de Dados e grande interação com o usuário por meio da interface.
4.3 Base de Dados
O objetivo é termos uma Base que seja a mais simples possível. Felizmente, a Base de Dados relacional, apesar de simples, contém várias características altamente desejáveis (veja-se, por exemplo, SUH & HINOMOTO (1989)) e tem sido a mais usada, havendo a perspectiva de que esse uso se torne um paradigma.
No quadro 2, damos o nome e a finalidade dos principais arquivos da base de dados do sistema.
4.4 O Modelo I
Sendo HP o número de períodos definido pelo usuário, um PMP será elaborado a intervalos máximos de (HP-2) períodos e cobrirá HP períodos, estando, o primeiro deles, dois períodos à frente do instante em que o PMP está sendo elaborado. Como já foi dito, isso é devido ao Sistema de Emissão de Ordens que propomos e adotamos no artigo Parte II e à acomodação da variabilidade relativamente alta na manufatura semi-repetitiva. Dessa forma há uma reprogramação para pelo menos dois períodos.
Suponha-se, por exemplo, que HP=4 e um período equivale a uma semana (t=1). Então se no início da semana 5 for elaborado um PMP (ou seja h=5), ele considerará os períodos 7, 8, 9 e 10, e assim no início da semana 7, no máximo, será elaborado um novo PMP cobrindo então as semanas de 9 a 12. Pode ocorrer que num caso extremo, devido a imprevistos, já ao fim da semana 5, o usuário note que não será mais possível respeitar o PMP. Assim, no início da semana 6 será elaborado um novo PMP, compreendendo as semanas de 8 a 11, ficando prevista para o início da semana 8 a elaboração do PMP subseqüente.
Consideramos P como sendo o número de produtos finais distintos produzidos pela empresa. Modelos distintos de um mesmo produto são considerados como produtos distintos para efeito de formulação.
A variável de decisão do modelo I é a seguinte:
Xij= quantidade do produto i a ser concluída e entregue no final do período j;
sendo 1< i < P; h+2 < j < h+HP+1
Após a interface acionar o módulo MODELO I, o gerador da função-objetivo entra em ação, com acesso ao arquivo DF (Dados Financeiros), na Base de Dados, que contém as formas de pagamento e o preço total de cada produto.
Se a forma de pagamento for 1, entende-se que o pagamento é à vista contra a entrega; se for 2, entende-se que 50% é pago contra a entrega e 50% daí a 30 dias (ou seja daí a 2 períodos se t=2 semanas); se for 3, 33.33% é pago contra a entrega, 33.33% daí a 30 dias e 33.33% daí a 60 dias da entrega, e assim por diante; se a forma de pagamento for 0, significa uma forma especial, que não segue esse padrão, e assim caberá ao usuário definir a parcela da função-objetivo FO correspondente a esse produto.
O gerador da FO tem acesso ao arquivo MOD que contém modelos para as formas de pagamento usuais. Esse arquivo está no quadro 3. Nesses modelos, PT significa o preço total contido no arquivo DF, TA é a taxa de atratividade por período e t é a duração do período. TA e t encontram-se no arquivo de variáveis VALOR que é um vetor linha e i é o número de identificação do produto em questão.
Passamos agora a ilustrar a geração da FO mediante o exemplo abaixo, cujos dados serão usados também para ilustrar a geração das restrições do modelo I. Dados:
h= 5, é o número do período corrente, no início do qual, está sendo elaborado o PMP atual;
TA= 5%/semana, é a Taxa de Atratividade semanal; t= 1 semana, é a duração de cada período;
HP= 4, é o número de períodos considerados no Horizonte de Programação.
Considerando como Data Zero do fluxo de caixa o final do período 7 (2 períodos adiante do período atual h=5), a função-objetivo (FO) para esse exemplo fica sendo a maximização do Valor Presente da seguinte receita gerada z:
max z = 5*(X17 + X18/(1+0.05) + X19/(1+0.05)2 + X1 10/(1+0.05)3) + 4*(X27 + X28/(1+0.05) + X29/(1+0.05)2 + X2 10/(1+0.05)3 + (1+0.05)-4*(X27 + X28/(1+0.05) + X29/(1+0.05)2 + X2 10/(1+0.05)3) + 2*(X47 + X48/(1+0.05) + X49/(1+0.05)2 + X4 10/(1+0.05)3)
Vale a pena ressaltar novamente que, com essa FO, tão logo fique pronto, um produto deve ser entregue o mais rápido possível, já que estamos admitindo que os pagamentos só se iniciam com a entrega do produto. Com essa suposição, por sinal bastante realista, evitamos introduzir uma variável Yij, quantidade a ser entregue do produto i no final do período j, o que levaria a dobrar o número de variáveis de decisão e aumentar o número de restrições do problema, o que é absolutamente indesejável em se tratando de um modelo de programação inteira (já que as variáveis são inteiras não negativas), dada a intratabilidade computacional de modelos de programação inteira de grande porte (número significativamente grande de variáveis ou restrições).
As seguintes restrições deverão ser satisfeitas:
RESTRIÇÃO (1): Restrição relacionada com as necessidades dos clientes, colocadas no arquivo PAP.
O usuário deverá especificar o estoque previsto para o início do período h+2 (no exemplo que está sendo tratado h+2=7) e o estoque desejado para o início do primeiro período após o Horizonte de Programação, ou seja, período h+HP+2 (no exemplo, h+HP+2=11).
Seja Eij o estoque do produto i no início do período j.
e VAij o Valor Acumulado, contido no arquivo PAP, o qual representa a quantidade de unidades do produto i que deverão estar concluídas até o final do período j.
Assim, a restrição (1) fica sendo:
para i= 1, 2, ... P;
j= h+2, h+3, ... , h+HP+1;
e
Xij variáveis inteiras não negativas:
Eih+2 + Xih+2 ³ VAih+2
Eih+2 + Xih+2 + Xih+3 ³ VAih+3
....
Eih+2 + Xih+2 + Xih+3 + ... + Xih+HP ³ VAih+HP
Eih+2 + Xih+2 + Xih+3 + ... + Xih+HP+1 =VAih+HP+1 + Eih+HP+2
RESTRIÇÃO (2): Carga da mão-de-obra de montagem
O tempo ti (em homens-horas) requerido de mão de obra para montar uma unidade do produto i encontra-se no arquivo TMON (Tempo de Montagem).
Tj (em homens-horas) a capacidade disponível da mão-de-obra de montagem no período j, e Dj o nível mínimo, desejado pelo usuário, de utilização dessa mão-de-obra, devem ser especificados pelo usuário.
Com esses dados, o conjunto de restrições (2) é o seguinte:
P
∑ ti*Xij< Tj, para j= h+2, h+3, ... , h+HP+1
i=1
P
∑ ti*Xij ³ Dj, para j= h+2, h+3, ... , h+HP+1
i=1
4.5 Algoritmo H
Dado o PMP provisório, obtido pela interação usuário/modelo I/base de dados, para levar em conta as restrições de capacidade das células é necessário fazer uma alocação de peças a elas. O algoritmo H trata um período por vez, e uma solução possível é aquela que tanto satisfaz a disponibilidade de capacidade das células, quanto o seu nível mínimo de utilização, desejado pelo usuário.
Idéia Básica: Quanto mais uma determinada peça estiver no início da lista A e quanto mais no início da lista B estiver sua célula primária, com maior razão devemos atribuir tal peça à sua célula primária, ou seja, quanto menor o RMp (definido no Passo 4.8) mais razão temos para atribuí-la à sua célula primária.
Observação: a capacidade da célula pode ser quantificada pela equação que propomos no (passo 4.4), como um valor geralmente entre 0 e 1. Valores maiores que 1 (100%) dependem de decisões do usuário em conceder sobrecapacidade (horas extras, turnos extras, etc.).
(Passo 1)
j:= h+2
(Passo 2)
Se j < h+HP+1 vá para o (Passo 3)
caso contrário vá para o (Passo 6)
(Passo 3)
Considerando o PMP até então obtido, calcule o número de peças de cada tipo cuja produção deverá ser iniciada no período j-2, pela seguinte equação:
P
Npj-2 = (∑ Qpi*Xij)/(1-rp); para p= 1, 2,..., N
i=1
onde
Npj-2= número de peças do tipo p cuja produção será iniciada no período j;
Qpi= quantidade de peças p usadas na montagem de uma unidade do produto i;
Xij= número de unidades do produto i a ser produzido (montado) no período j;
rp= porcentagem de refugo da peça p;
P= número total de produtos distintos;
N= número total de peças distintas;
(Passo 4)
Aloque a carga às células por meio do seguinte algoritmo:
Sejam os conjuntos
PUC= conjunto de Peças que podem ser fabricadas numa Única Célula, ou seja, peças que só têm célula primária;
PUA= conjunto de Peças que têm célula primária e secundária, mas apenas Uma delas está Ativada no período j;
PNA= conjunto de Peças ainda Não Atribuídas;
CKD= conjunto de células ativadas e ainda com capacidade disponível, ou seja kcj>0, o qual definimos no (Passo 4.4);
Observação: Neste texto, fazer a atribuição de uma peça a uma célula significa: especificar que célula fabricará a peça a partir do período j-2; retirar essa peça do conjunto PNA; recalcular, conforme equação do (Passo 4.4), a capacidade disponível kcj-2 da célula em questão; e reordenar as Listas A e B definidas nos Passos (4.6) e (4.7) respectivamente.
(Passo 4.1)
Faça PNA como sendo igual ao conjunto de todas as peças; Peças do conjunto PUC, são atribuídas à sua célula primária. Células nessa condição deverão ser ativadas no período j-2;
Se com essas atribuições a capacidade dessas células for satisfeita, vá para o (Passo 4.2), caso contrário: é viável aumentar a capacidade das células com capacidade não satisfeita? Se sim, efetive esse aumento e vá para o (Passo 4.2), caso contrário: é mostrado ao usuário o PMP atual, e é solicitado que ele escolha entre o acesso à opção do SADEPMEP em que ele interaja novamente com o Modelo I para obter novo PMP, ou o acesso à opção em que ele mesmo elabora um novo PMP;
(Passo 4.2)
As demais células são exibidas ao usuário para que ele selecione aquelas que serão ativadas no período j;
(Passo 4.3)
As peças do conjunto PUA são atribuídas à sua célula ativada;
Se a capacidade dessas células for satisfeita, faça a atribuição e vá para o (Passo 4.4), caso contrário, para as peças cuja célula teve a capacidade esgotada antes da sua atribuição, é solicitado ao usuário que ative a outra célula; se isso for feito, faça a atribuição e vá para o (Passo 4.4); se não for possível, é viável aumentar a capacidade das células com capacidade não satisfeita? Se sim, efetive esse aumento e vá para o (Passo 4.2), caso contrário:
é solicitado que ele interaja novamente com o Modelo I para obter novo PMP, ou recorra à opção em que ele mesmo elabora um novo PMP;
(Passo 4.4)
Calcule, para as células ativadas, qual a sua capacidade disponível, em termos de porcentagem, pela seguinte equação:
P
Kcj-2= 1 + Ka - fp - ∑ Ycj-2p*Npj-2/Dcj-2p
p=1
na qual
Kcj-2= capacidade disponível, após as atribuições já feitas, da célula c no período j-2;
1= representa a capacidade da célula se ainda não lhe foi atribuída nenhuma peça, ou seja, 100% de capacidade;
Ka= capacidade adicional caso o usuário aloque horas extras para a célula c;
fp= fator de preparação. É um número real, entre 0 e 1, que representa a perda em termos de porcentagem da capacidade da célula, devido aos tempos de preparação das máquinas. Se existirem dados históricos que possibilitem o cálculo de uma amostra da perda em função dos tipos de peças atribuídas à célula em questão, então fp pode ser estimado por meio de um modelo de regressão. Se não for esse o caso, então nesse momento devem ser exibidas ao usuário as peças que já foram atribuídas a essa célula, para que ele estime fp de forma subjetiva de acordo com sua experiência;
Ycj-2p= 1, se o lote da peça p já foi atribuído para ser fabricado na célula c no período j-2,
= 0, caso não tenha sido ainda atribuído;
Dcj-2p= número de unidades da peça p que poderiam ser produzidas na célula c no período j-2, caso toda a capacidade dessa célula fosse usada para produzir somente peça p;
Suponha que Dcj-2p=1000 e Npj-2=100, ou seja, se a célula c só fabricasse a peça p no período j-2, seria possível produzir 1000 unidades e, se forem alocadas a ela 100 unidades da peça p, então 100/1000= 10% da capacidade da célula c fica comprometida com a peça p;
(Passo 4.5)
Para cada uma das peças ainda pertencentes ao conjunto PNA (note que todas elas possuem célula primária e secundária ativadas no período j-2), calcule a diferença entre o tempo para produzi-la na sua célula secundária e o tempo para produzi-la na sua célula primária, ou seja:
dp= tps - tpp
note que, pela definição de célula secundária e primária, o tempo para produzir o lote Npj-2 na célula secundária da peça p, é maior que o tempo para fabricar tal lote na célula primária da peça p, ou seja tps ³ tpp;
(Passo 4.6)
ordene esse conjunto de peças segundo a ordem decrescente de dp. Chamamos essa lista de Lista A;
(Passo 4.7)
ordene as células utilizadas por essas peças na ordem decrescente do índice Kcj-2, conforme a equação do (Passo 4.4). Chamamos essa lista de Lista B;
(Passo 4.8)
A atribuição será feita com base na seguinte idéia: quanto mais uma peça estiver no início da Lista A, e quanto mais no início da Lista B estiver sua célula primária, com maior razão devemos atribuir tal peça à sua célula primária.
Assim sendo, propomos a seguinte heurística para continuar a atribuição:
(Passo 4.8.1)
Obtenha para cada peça do conjunto PNA, o ranking multiplicativo que é obtido ao multiplicar a posição (ranking) da peça na Lista A, pela posição da sua célula primária na lista B. Por exemplo, a peça 5 ocupa a primeira posição da Lista A, e sua célula primária é a terceira na Lista B, então o ranking multiplicativo da peça 5 é 1*3= 3;
(Passo 4.8.2)
Se o conjunto PNA estiver vazio, então vá para o (Passo 5);
Se não estiver, então:
(Passo 4.8.2.1)
determine a peça desse conjunto com o menor ranking multiplicativo. Ela passa a ser a peça em questão;
(Passo 4.8.2.2)
Considere a célula em questão como sendo a célula primária da peça em questão;
(Passo 4.8.2.3)
Se a célula em questão estiver no conjunto CKD (células ativadas com Kcj-2>0), então recalcule o índice Kcj-2 dessa célula considerando a atribuição dessa peça a ela.
Se o novo Kcj-2 for ³ 0, faça essa atribuição e volte para o (Passo 4.8.2);
Se o novo Kcj-2 for = 0, faça essa atribuição, retire essa célula do conjunto CKD e volte para o (Passo 4.8.2);
Se o novo Kcj-2 for < 0, então
Se a célula em questão for a célula primária, então vá para o início deste (Passo 4.8.2.3) sendo que a célula secundária passa a ser a célula em questão;
Se não for, ocorreu que a peça em questão não pode ser atribuída diretamente;
considere a célula em questão como sendo a célula primária e vá para o próximo passo;
(Passo 4.8.2.3.1)
Forme o conjunto das peças já atribuídas à célula em questão e que têm tanto sua célula primária quanto a secundária ativadas no período j-2. Coloque as peças desse conjunto na ordem em que foram atribuídas à célula em questão;
Começando pela última peça desse conjunto, depois se necessário a penúltima, e depois a antepenúltima e assim por diante, verifique se essa peça não pode ser atribuída a uma outra célula com capacidade disponível para recebê-la e ao mesmo tempo liberar capacidade para tratar a peça em questão; em caso positivo: faça essas duas atribuições e volte para o (Passo 4.8.2);
em caso negativo: se a célula em questão for a célula primária da peça em questão, então vá para o início deste (Passo 4.8.2.3.1) sendo que a célula secundária passa a ser a célula em questão;
Se não for, então é solicitado ao usuário que ele ative alguma célula que foi colocada por ele como inativa no período e, após a identificação de tal célula, inicie novamente os procedimentos, e assim vá para o (Passo 1);
Se o usuário colocar que não há célula que possa ser ativada, então o sistema fornecerá o último PMP que foi obtido na última interação usuário/modelo I, e então o usuário deverá escolher entre interagir novamente com o modelo I, para conseguir outro PMP, ou alterar diretamente o PMP;
(Passo 5)
j:= j+1 e vá para o (Passo 2)
(Passo 6)
Foi encontrado um PMP viável (armazene-o no arquivo AVPMP - Alternativas Viáveis de Programas Mestre de Produção) ou foi encontrada uma atribuição viável (armazene-a no arquivo AVAC - Alternativas Viáveis de Atribuição de peças às células e, no arquivo RAVAC (Resumo das Alternativas Viáveis de Atribuição de peças às Células);
(Passo 7)
Exibir ao usuário a última alternativa viável encontrada, mostrando as capacidades utilizadas das células. Por exemplo:
(célula 1): 90%
(célula 2): 0% (foi considerada inativa)
(célula 1): 105% (hora extra)
(célula 1): 95%
De posse dessas informações, o usuário decide se está satisfeito e então vai para o (Passo 8), ou se pretende ativar ou tornar inativa alguma célula, indo então para o (Passo 1), ou se pretende elaborar um novo PMP, indo para o módulo Modelo I;
(Passo 8)
Exibir para o usuário as alternativas armazenadas no arquivo AVPMP, e cada PMP com as alternativas de atribuição às células (arquivos AVAC e RAVAC), para que o usuário escolha então o PMP, como também a alternativa de atribuição de carga às células, referente a esse PMP, que julgar melhor;
(Passo 9)
Imprimir a escolha do (Passo 8) e enviá-la para o setor de Emissão de Ordens, que deverá respeitar a indicação da célula na qual cada peça deverá ser produzida.
Na tabela 1 tem-se um exemplo de arquivo RAVAC (Resumo das Alternativas Viáveis de Atribuição de peças às Células). No campo ALTER, por exemplo, 2/1 significa a alternativa, de atribuição de peças às células, de número 2 referente ao PMP viável número 1. Na tabela 1, porcentagem maior que 100% significa que o usuário permitiu sobrecapacidade à célula (por exemplo, concedendo horas extras).
5. A Implementação Computacional do Sistema
O sistema foi elaborado com o auxílio de um software de desenvolvimento da Microsoft, lançado em 1992, o FoxPro for Windows, versão 2.5. A escolha do software para a elaboração do sistema é uma questão bastante importante, já que muito do desempenho do sistema projetado depende de como o software fornece ferramentas para que a implementação se torne simples, completa e de fácil operação. Desta forma, é preciso determinar claramente os principais objetivos do sistema para que se possa buscar o melhor software, ou aquele que mais se adapte aos objetivos desejados. Como principais objetivos temos: a interface deve ser amigável, os algoritmos devem ter um desempenho computacional razoável e o acesso à base de dados deve ser rápido. A partir de uma comparação entre algumas linguagens, escolhemos o FoxPro. Com base nas características do FoxPro (VIDAL, 1994; JONES, 1994; KALMAN, 1993), concluímos que ele atende às nossas necessidades tanto em termos de gerenciamento de banco de dados (o acesso à base de dados é muito rápido devido à tecnologia Rushmore) como em termos de interface amigável. Já em termos de implementação de modelos matemáticos, se os cálculos matemáticos forem em grande volume ou complexidade, o FoxPro deixa a desejar se for imperioso um pequeno tempo computacional.
Neste trabalho, usamos exclusivamente o modo de operação programado (os outros modos de operação do FoxPro são o dirigido e o interativo). Desenvolvemos uma aplicação de forma que o usuário não entra em contato com o comando diretamente, fornecendo apenas as diretrizes para a execução da tarefa.
O sistema fornece inicialmente um menu que permite a entrada nos módulos de manipulação do banco de dados e de programação da produção.
Se o usuário selecionar a opção Banco de Dados, será apresentado um outro menu que fornecerá uma lista dos arquivos que admitem as operações de manipulação, como inclusão, alteração, exclusão ou consulta de dados e emissão de relatórios. Se o usuário selecionar a opção PCP, o sistema passará para outra tela, que fornece mais três opções: Programa Mestre de Produção, Emissão de Ordens e Programação de Operações. Como já foi dito, este artigo trata do PMP e o artigo seguinte (Parte II) trata dos outros dois módulos.
Selecionada a opção para a geração do PMP, o sistema fornece um outro menu, o qual permite ao usuário:
1. Fornecer o PMP (o PMP é elaborado fora do sistema, p.ex., por outro software);
2. Calcular o PMP via algoritmo de Programação Linear Inteira;
3. Exibir os resultados e
4. Finalizar o processo.
Na opção 1, o sistema solicita o PMP e efetua logo a seguir os cálculos de carga de célula por período, pelo algoritmo heurístico H. A entrada dos dados do PMP é feita via teclado, ou seja, o usuário deve digitar todas as quantidades de produto por período.
Se o usuário escolher a opção 2, o sistema fornece um outro menu com as opções:
2.1. fazer o agrupamento dos pedidos;
2.2. atualizar dados sobre o tamanho dos períodos, horizonte de programação, taxa de atratividade,
agrupará os pedidos em produtos por período e forma de pagamento, pois o sistema tratará produtos de um mesmo período com formas de pagamento diferentes como produtos diferentes;
gera os coeficientes da função objetivo;
2.3. gerar os períodos nos quais o sistema baseará a programação;
2.4. gerar o PMP via modelo de programação linear inteira;
A opção 2.4, gerar o PMP, não está disponível, já que no momento estamos ainda em fase de depuraçào do código de programação linear inteira que escrevemos em FoxPro. Para contornar esta lacuna, escrevemos um programa na linguagem de modelagem GAMS para resolver o modelo I.
6. Alguns Testes Computacionais
A fase de testes computacionais, de acordo com novos projetos de desenvolvimento de software (ver exemplos em PRESSMAN, 1992), pode estar vinculada a todas as etapas do desenvolvimento do sistema computacional. Este fato acarreta, entre outras vantagens, economia no tempo de desenvolvimento, melhor desempenho dos testes finais e maior confiabilidade do produto final. Contudo, o presente sistema acompanhou o processo tradicional de desenvolvimento de sistemas de ciclo de vida de produto, uma vez que, para seguir a abordagem mais moderna teríamos que dominar pelo menos uma de suas metodologias (por exemplo, a Prototipização ou as Técnicas de Quarta Geração). Vale observar que nenhuma dessas metodologias modernas é algo simples de ser aplicado.
Nesta fase procuramos erros de lógica. Testamos todas as ligações do sistema, ou seja, se todos os caminhos possíveis são estabelecidos e se os erros são devidamente tratados. Não pretendemos, neste caso, afetuar exaustivos testes comparativos, nem utilizar metodologias específicas para isso. Nosso objetivo é mostrar que o produto desenvolvido está disponível para utilização e proporciona vantagens no processo de definição do Programa Mestre de Produção.
Para executar cada exemplo, elaboramos uma situação fictícia de produção, na qual temos produtos formados a partir da montagem de várias peças, fabricadas no ambiente manufatura celular semi-repetitiva. Cada peça, possui uma ou duas células viáveis de produção (a célula primária e a célula secundária). A carteira de pedidos gera a restrição de demanda; a disponibilidade de mão-de-obra de montagem gera a restrição de mão-de-obra e a capacidade de produção de cada célula gera a restrição de carga de célula.
O porte de cada um dos exemplos está sumarizado na tabela 2. Destaque especial é dado ao processo de interação do sistema com o usuário durante a execução do algoritmo H.
Como já foi dito, como o código PLI em FoxPro ainda não está totalmente depurado, escrevemos um modelo em linguagem de modelagem GAMS. Para obter informações a respeito da GAMS veja-se BROOKE et al. (1992). A partir das quantidades definidas por esse software, executamos o algoritmo H para levar em conta a restrição de capacidade de célula.
O programa foi executado em um micro computador da linha PC 486-DX2-66 Mz, 4 Mb de memória RAM e sugerimos que seja respeitada esta configuração como mínima para sua execução, já que o próprio FoxPro recomenda uma configuração mínima superior a essa (por exemplo, memória RAM de 8 Mb ou mais).
O desempenho do modelo PLI em GAMS foi muito bom. O tempo de execução não ultrapassou 6 minutos em nenhum caso. Na tabela 2 resumimos os resultados obtidos nos testes de desempenho do algoritmo H.
As soluções encontradas satisfazem a todas as restrições impostas, ou seja, é garantido que a solução é um PMP viável. Mais informações podem ser obtidas em TAHARA (1995).
7. Conclusões e Considerações Finais
As conclusões gerais relativas ao sistema como um todo serão apresentadas no segundo artigo (Parte II). Aqui nos restringiremos apenas ao desempenho do módulo PMP.
Podemos observar que, de forma geral, o sistema fornece a resposta para o problema em tempo mais do que satisfatório. O modelo de programação inteira não é de grande porte, já que a variável de decisão corresponde a produtos acabados (ordem de grandeza nos problemas reais: algumas dezenas) e não a peças componentes (ordem de grandeza: alguns milhares). Com o algoritmo H obtemos uma forma de recorrer à experiência do usuário, por exemplo no momento de ativar e desativar células. Estes caminhos alternativos proporcionaram maior flexibilidade ao problema de elaboração do PMP, tornando mais realista sua solução. Para o algoritmo H o sistema não executa nenhum tipo de cálculo de alta complexidade, mas sim a manipulação de arquivos, para a qual contamos com um dos recursos de maior destaque no FoxPro for Windows 2.5.
No desenvolvimento do sistema houve sempre uma grande preocupação com a interface do sistema com o usuário, para que fosse tão amigável quanto possível, de forma a tornar o trabalho de programação da produção um serviço menos árduo e mais interessante, fornecendo informações importantes na hora certa da decisão. Para testar este aspecto, seria necessário submeter o sistema a um teste em situação real e verificar a opinião dos usuários em relação à clareza das informações e ao nível de dificuldade encontrado. Não houve oportunidade para tal teste, mas esta já é uma das propostas para a futura continuação do trabalho, ou seja, tentar implantar o sistema em situação real. Um ponto importante relacionado à interface do sistema com o usuário, que consideramos passível de alterações, é o referente à obtenção do resultado do Programa Linear Inteiro, que deve ser resolvido fora do sistema. Este ponto com certeza compromete a agilidade do sistema, já que o usuário deve inicialmente resolver o problema no GAMS e posteriormente recorrer ao SADEPMEP e introduzir a solução inteira obtida pelo GAMS. Estamos supondo, por enquanto, que o usuário deve também conhecer o GAMS.
Nos exemplos, percebemos alguns pontos críticos para o desempenho do sistema: a quantidade de produtos, a quantidade de peças, a capacidade de armazenamento do disco rígido e o tamanho da memória RAM. A quantidade de produtos é um fator crítico para a obtenção da solução do inteira no GAMS, já que à medida que aumentamos essas quantidades, o tempo requerido para resolver o problema aumenta exponencialmente. Mas, nos testes, com até 45 produtos, obtivemos desempenho muito satisfatório quanto ao tempo (não passou de 6 minutos de processamento) pelo GAMS.
Um resultado importante e até mesmo impressionante ocorreu nos testes de desempenho do algoritmo H: o caso com 125 peças apresentou um tempo de processamento pouco maior que o de outro com 25 peças.
O sistema implementado em computador é ainda um protótipo, embora o consideremos um bom ponto de partida para uma evolução e melhorias, de modo a estar pronto para ser utilizado em situações práticas.
Acreditamos que nosso trabalho atinge um ponto de equilíbrio entre os extremos: ser muito específico, e portanto com aplicabilidade muito reduzida, e ser muito geral, sem vínculo com nenhuma situação prática.
Referências bibliográficas
- ANGEHRN, A.A & JELASSI, T.: "DSS research and practice in perspective". Decision Support Systems, vol. 12, p. 267-275, 1994.
- ARN, E.A.:Group Technology Springer-Verlag, New York, 1975
- BERRY, W.L.; VOLLMANN, T.E.; WHYBARK, D.C.:Master Production Scheduling: Principles and Practice American Production and Inventory Control Society (APICS), 4th printing, 1989.
- BLACK, J.T.: "Cellular Manufacturing Systems Reduce Setup Time, Make Small Lot Production Economical". Industrial Engineering, 15 (11), p. 36-48, November 1983.
- BROOKE, A.; KENDRICK, D.; MEERAUS, A.:Release 2.25 GAMS a user's guide The Scientific Press, South San Francisco (CA), 1992
- BURBIDGE, J.L.:Production Planning William Heinemann Ltd., London, 1971.
- BURBIDGE, J.L.:The Introduction of Group Technology William Heinemann Ltd., London, 1975.
- BURBIDGE, J.L.: The Principles of Production Control MacDonald and Evans Limited, 1978.
- BURBIDGE, J.L.: "Production Planning and Control- A Personal Philosophy". Computers in Industry, vol. 6, p. 477-487, 1985.
- BURBIDGE, J.L.:"Production control: a universal conceptual framework". Production Planning & Control, 1(1), p. 3-16, 1990.
- CHOOBINEH, F.: "Optimum Loading for GT/MRP Manufacturing Systems". Computers & Industrial Engineering, 8 (3/4), p. 197-206, 1984.
- CONTADOR, J.C.: "Células de Manufatura". Produçăo, 5 (1), p. 45-64, julho 1995.
- DALE, B.G. & RUSSELL, D.: "Production Control Systems for Small Group Production". Omega, 11 (2), p. 175-185, 1983.
- DAS, S.K. & SARIN, S.C.: "An Integrated Approach to Solving the Master Aggregate Scheduling Problem". Submitted to Journal of Manufacturing & Operations Management in 1990.
- FERNANDES, F.C.F.: Concepçăo de um Sistema de Controle da Produçăo para a Manufatura Celular Tese de Doutoramento, EESC-USP, Săo Carlos, 1991.
- GALLAGHER, C.C. & KNIGHT, W.A.:Group Technology Production Methods in Manufacture Ellis Horwood Ltd., Chichester (England), 1986.
- GEORGE Jr, C.S.:The History of Management Thought Prentice-Hall, 1972.
- JOHNSON, L.A. & MONTGOMERY, D.C.:Operations Research in Production Planning, Scheduling and Inventory Control Wiley, New York, 1974.
- JONES, E.:Por Dentro do FoxPro 2.5 For Windows Makron Books, 1994.
- KALMAN, D.M.:FoxPro 2.5: Técnicas Avançadas. Berkeley , 1993.
- KASSICIEH, S.K. & SCHULTZ, C.R.: "Decision Support Flexible Manufacturing Systems". Omega, 15 (6), p. 495-502, 1987.
- PACHECO, R.F.:Um Sistema de Emissăo de Ordens e Programaçăo de Operaçőes para a Manufatura Celular Dissertaçăo de Mestrado, DEP, UFSCar, Săo Carlos, 1995.
- PRESSMAN, R.S.: Software engineering McGraw-Hill Book Co., 1992.
- RADERMACHER, F.J.: "Decision Support Systems: Scope and Potential". Decision Support Systems, vol. 12, p. 257-265, 1994.
- RIBEIRO, P.D.: Kanban COP Editora, Rio de Janeiro, 1984.
- SHAW, M.J.: "Dynamic Scheduling in Cellular Manufacturing Systems: A Framework for Networked Decision Making". Journal of Manufacturing Systems, 7 (2), p. 83-94, 1988
- SINHA, R.K. & HOLLIER, R.H.: "A Review of Production Control Problems in Cellular Manufacture". Int. J. of Production Research, 22 (5), p. 773-789, 1984.
- SPUR, G. & MERTINS, K.: "Flexible Manufacturing Systems in Germany, Conditions and Development Trends". Proceedings of First International Conference on Flexible Manufacturing Systems, p. 37-47, 1982.
- SUH, E.-H. & HINOMOTO, H.: "Use of a Dialogbase for Integrated Relational Decision Support Systems". Decision Support Systems, vol. 5, p. 277-286, 1989.
- TAHARA, C.S.: Sistema de Apoio ŕ Decisăo para a Elaboraçăo do Programa Mestre de Produçăo para a Manufatura Celular Dissertaçăo de Mestrado, DEP-UFSCar, Săo Carlos, 1995.
- VIDAL, A.G. da R.: FoxPro for Windows, Básico Rio de Janeiro: Ed. Livros Técnicos e Científicos, 1994.
- WARNECKE, H.J. & KOLLE, J.H.: "Production Control for New Structures". Int. J. of Production Research, 17 (6), p. 631-641, 1979.
- WITTROCK, R.J.: "Scheduling Algorithms for Flexible Flow Lines". IBM J. Res. Develop., 29 (4), p. 401-412, 1985.
Datas de Publicação
-
Publicação nesta coleção
01 Jun 2010 -
Data do Fascículo
Ago 1996