DESENVOLVIMENTO DE UMA INTERFACE VBA PARA A PRO- GRAMÇÃO MATEMÁTICA DA PRODUÇÃO UTILIZANDO PRO- GRAMAÇÃO LINEAR



Documentos relacionados
MRP II. Planejamento e Controle da Produção 3 professor Muris Lage Junior

SISTEMAS DE GESTÃO São Paulo, Janeiro de 2005

PESQUISA OPERACIONAL: UMA ABORDAGEM À PROGRAMAÇÃO LINEAR. Rodolfo Cavalcante Pinheiro 1,3 Cleber Giugioli Carrasco 2,3 *

Módulo 15 Resumo. Módulo I Cultura da Informação

Gestão do Conhecimento A Chave para o Sucesso Empresarial. José Renato Sátiro Santiago Jr.

PROCESSO DE DESENVOLVIMENTO DE SOFTWARE. Modelos de Processo de Desenvolvimento de Software

Projeto Você pede, eu registro.

PLANEJAMENTO OPERACIONAL - MARKETING E PRODUÇÃO MÓDULO 3 O QUE É PLANEJAMENTO DE VENDAS E OPERAÇÕES?

Análise Estruturada de Sistemas

PLANEJAMENTO DA MANUFATURA

FATEC Cruzeiro José da Silva. Ferramenta CRM como estratégia de negócios

ROTEIRO PARA ELABORAÇÃO DE PROJETOS

Melhores práticas no planejamento de recursos humanos

Universidade Federal de Goiás UFG Campus Catalão CAC Departamento de Engenharia de Produção. Sistemas ERP. PCP 3 - Professor Muris Lage Junior

Logística e a Gestão da Cadeia de Suprimentos. "Uma arma verdadeiramente competitiva"

ERP Enterprise Resource Planning

CAPÍTULO 1 - CONTABILIDADE E GESTÃO EMPRESARIAL A CONTROLADORIA

Planejamento da produção. FATEC Prof. Paulo Medeiros

Princípios de Finanças

DATA WAREHOUSE NO APOIO À TOMADA DE DECISÕES

3. Fase de Planejamento dos Ciclos de Construção do Software

Curso superior de Tecnologia em Gastronomia

Podemos encontrar uma figura interessante no PMBOK (Capítulo 7) sobre a necessidade de organizarmos o fluxo de caixa em um projeto.

DESPESAS FIXAS. O que são Despesas Fixas?

Prof. Cleber Oliveira Gestão Financeira

A UTILIZAÇÃO ADEQUADA DO PLANEJAMENTO E CONTROLE DA PRODUÇÃO (PCP), EM UMA INDÚSTRIA.

A Organização orientada pela demanda. Preparando o ambiente para o Drummer APS

FLUXO DE CAIXA: Módulo BI (Business Intelligence)

2. Função Produção/Operação/Valor Adicionado

Interatividade aliada a Análise de Negócios

Concentração Mínima de Açúcar (g/l) N (normal) E (europeu fino) Teor Máximo de Acidez (%)

22/02/2009. Supply Chain Management. É a integração dos processos do negócio desde o usuário final até os fornecedores originais que

Aspectos Sociais de Informática. Simulação Industrial - SIND

Soluções baseadas no SAP Business One BX MRO BX MRO. Brochura. Gestão de Manutenção, Reparo e Revisão de Equipamentos

SISTEMA DE GESTÃO PARA CURTUMES

Unidade III GESTÃO EMPRESARIAL. Prof. Roberto Almeida

ATIVIDADES PRÁTICAS SUPERVISIONADAS

Conceitos de Banco de Dados

A ESCOLHA DO SOFTWARE PARA INFORMATIZAÇÃO DA SUA EMPRESA

MARCA PRÓPRIA. Algumas empresas possuem sua própria marca, mas não produzem, apenas desenvolvem a mercadoria.

SERVIÇO DE ANÁLISE DE REDES DE TELECOMUNICAÇÕES APLICABILIDADE PARA CALL-CENTERS VISÃO DA EMPRESA

Dadas a base e a altura de um triangulo, determinar sua área.

Distribuidor de Mobilidade GUIA OUTSOURCING

OS EFEITOS DOS CUSTOS NA INDÚSTRIA

1. Introdução. 1.1 Apresentação

UTILIZAÇÃO DE SOFTWARES NA RESOLUÇÃO DE UM PROBLEMA DE PROGRAMAÇÃO LINEAR. Cintia da Silva Araújo, Tiago de Souza Marçal, Magda Aparecida Nogueira

Professor Severino Domingos Júnior Disciplina: Gestão de Compras e Estoques no Varejo

TRABALHO DE DIPLOMAÇÃO Regime Modular ORIENTAÇÕES SOBRE O ROTEIRO DO PROJETO FINAL DE SISTEMAS DE INFORMAÇÕES

Curso de Graduação em Administração. Administração da Produção e Operações I

A Descrição do Produto ou Serviço e a Análise do Mercado e dos Competidores Fabiano Marques

Gerência de Projetos

Prof. Marcelo Mello. Unidade III DISTRIBUIÇÃO E

Sistemas ERP. Profa. Reane Franco Goulart

CONFIRA UMA BREVE DESCRIÇÃO DAS VANTAGENS COMPETITIVAS OBTIDAS A PARTIR DE CADA META COMPETITIVA VANTAGEM DA QUALIDADE

Planejamento Estratégico de TI. Prof.: Fernando Ascani

Soluções baseadas no SAP Business One BX PRODUCTION BX PRODUCTION. Software de Gestão para Manufatura Discreta e Repetitiva.

INSTRUMENTOS DE PLANEJAMENTO E CONTROLE FINANCEIRO

Curva ABC. Tecinco Informática Ltda. Av. Brasil, º Andar Centro Cascavel PR

Universidade de Brasília Faculdade de Economia, Administração, Contabilidade e Ciência da Informação e Documentação Departamento de Ciência da

Unidade IV ADMINISTRAÇÃO DE. Profa. Lérida Malagueta

APLICACAÇÃO DE METRICAS E INDICADORES NO MODELO DE REFERENCIA CMMI-Dev NIVEL 2

Este trabalho visou a caracterização da utilização dos aplicativos APS pelas empresas.

O USO DA FERRAMENTA SOLVER DO EXCEL NA RESOLUÇÃO DE PROBLEMAS DE PROGRAMAÇÃO LINEAR

CHECK - LIST - ISO 9001:2000

Soluções via.net para otimização de processos paramétricos com Autodesk Inventor.

GESTÃO ORÇAMENTÁRIA. João Milan Júnior Tel.:

Microsoft Access XP Módulo Um

FUNDAMENTOS DE SISTEMAS DE INFORMAÇÃO

SGQ 22/10/2010. Sistema de Gestão da Qualidade. Gestão da Qualidade Qualquer atividade coordenada para dirigir e controlar uma organização para:

GUIA DE CURSO. Tecnologia em Sistemas de Informação. Tecnologia em Desenvolvimento Web. Tecnologia em Análise e Desenvolvimento de Sistemas

Lista 2 - Modelos determinísticos

Metodologias de Desenvolvimento de Sistemas. Analise de Sistemas I UNIPAC Rodrigo Videschi

Instalações Máquinas Equipamentos Pessoal de produção

Na medida em que se cria um produto, o sistema de software, que será usado e mantido, nos aproximamos da engenharia.

FERRAMENTAS E SOLUÇÕES DE APOIO À GESTÃO E MANUTENÇÃO DE ATIVOS

Automação de Bancada Pneumática

Estudo de Viabilidade

Material de Apoio. Sistema de Informação Gerencial (SIG)

REDUZINDO AS QUEBRAS ATRAVÉS DA MANUTENÇÃO PROFISSIONAL

Guia de Recursos e Funcionalidades

4 Avaliação Econômica

ACOMPANHAMENTO GERENCIAL SANKHYA

ASPECTOS CONCEITUAIS OBJETIVOS planejamento tomada de decisão

PR 2 PROCEDIMENTO. Auditoria Interna. Revisão - 2 Página: 1 de 9

ESTUDO DA IMPORTÂNCIA DO PLANEJAMENTO ESTRATÉGICO PARA O COMÉRCIO VAREJISTA LUCIMEIRI CEZAR ANDRÉ

Sistema de Controle de Solicitação de Desenvolvimento

NECESSIDADE DE CAPITAL DE GIRO E OS PRAZOS DE ROTAÇÃO Samuel Leite Castelo Universidade Estadual do Ceará - UECE

Unidade I FINANÇAS EM PROJETOS DE TI. Prof. Fernando Rodrigues

Qualidade é o grau no qual um conjunto de características inerentes satisfaz a requisitos. ISO 9001:2008

Tecnologia em Gestão Pública Desenvolvimento de Projetos - Aula 9 Prof. Rafael Roesler

MATERIAL DIDÁTICO: APLICAÇÕES EMPRESARIAIS SISTEMA DE APOIO À DECISÃO (SAD)

INTRODUÇÃO A PORTAIS CORPORATIVOS

PRODUÇÃO - Conceitos Iniciais

Marketing. Gestão de Produção. Gestão de Produção. Função Produção. Prof. Angelo Polizzi

Aula 02 Excel Operações Básicas

SPEKTRUM SOLUÇÕES DE GRANDE PORTE PARA PEQUENAS E MÉDIAS EMPRESAS SPEKTRUM SAP Partner 1

INTRODUÇÃO AO ASSUNTO PESQUISA OPERACIONAL. O que é Pesquisa Operacional?

DESENVOLVIMENTO DE INTERFACE WEB MULTIUSUÁRIO PARA SISTEMA DE GERAÇÃO AUTOMÁTICA DE QUADROS DE HORÁRIOS ESCOLARES. Trabalho de Graduação

DESENVOLVIMENTO DE UM SOFTWARE NA LINGUAGEM R PARA CÁLCULO DE TAMANHOS DE AMOSTRAS NA ÁREA DE SAÚDE

Orientação a Objetos

Transcrição:

UNIVERSIDADE DE SÃO PAULO ESCOLA DE ENGENHARIA DE LORENA GUILHERME ARANTES PEDRO DESENVOLVIMENTO DE UMA INTERFACE VBA PARA A PRO- GRAMÇÃO MATEMÁTICA DA PRODUÇÃO UTILIZANDO PRO- GRAMAÇÃO LINEAR Lorena 2012

GUILHERME ARANTES PEDRO Desenvolvimento de uma interface VBA para a programação matemática de produção utilizando programação linear Trabalho de conclusão de curso apresentado à Escola de Engenharia de Lorena - USP, como requisito parcial para obtenção do título de Engenheiro Químico. Orientador: Prof. Dr. Domingos Sávio Giordani Lorena 2012

Autorizo a reprodução e divulgação total ou parcial deste trabalho, por qualquer meio convencional ou eletrônico, para fins de estudo e pesquisa, desde que citada a fonte.

AGRADECIMENTOS Primeiramente a Deus, por me conceder saúde, sabedoria, fé e perseverança para a conclusão do meu curso. Aos meus pais, Edna e Élcio, por toda paciência, amor, apoio e suporte para a conclusão da graduação. À Dayane, por todo seu amor, carinho e companheirismo durante esses quatro anos inesquecíveis ao seu lado. Ao meu orientador Prof. Dr. Domingos Sávio Giordani, pela confiança, exemplo de profissional, e por acreditar neste trabalho. Aos meus familiares e amigos, por todo apoio e reconhecimento, em especial minha irmã Gabriela e meu cunhado Diego que sempre me apoiaram e me serviram de exemplo de fé e amor. Aos grandes amigos da banda L Hopital: Túlio, Taynara, Dayane, Martini e Tales pela grande amizade e momentos únicos que ficarão eternamente gravados na memória. Aos atuais e antigos companheiros e amigos de república, pelo convívio e momentos de descontração inigualáveis ao longo destes anos de graduação. À Escola de Engenharia de Lorena, pela oportunidade de realização do Curso de Engenharia Química. A todos os colegas e professores de graduação, pelo convívio e aprendizado.

EPÍGRAFE "Feliz é aquele que transfere o que sabe e aprende o que ensina" Cora Coralina

Pedro, G. A. Desenvolvimento de uma interface VBA para a programação matemática da produção utilizando programação linear. 2012. 63f. Trabalho de Conclusão de Curso (Graduação em Engenharia Química), Universidade de São Paulo, Lorena, 2012. RESUMO Este trabalho dedica-se ao desenvolvimento de uma interface computacional para a resolução de problemas envolvidos com a programação da produção em sistemas produtivos, com o objetivo de auxiliar o processo de tomada de decisão dentro de pequenas empresas. Visto a dificuldade das pequenas empresas em permanecer no mercado, o uso de ferramentas de auxílio na produção é um diferencial para seu estabelecimento no mercado atual. Um método para a abordagem de problemas de programação da produção é trata-los como um problema de Programação Linear e resolvê-los usando programação matemática. Para atender à proposta do trabalho, foi feito um estudo na literatura no qual se notou o grande crescimento no uso de softwares para o planejamento de produção, em especial o Solver. Também, foi elabora uma estrutura lógica para o desenvolvimento do modelo por parte do usuário do aplicativo construído. Por fim, foi desenvolvida uma planilha eletrônica no Microsoft Excel com interface amigável feita em Visual Basic for Applications para a realização das macros nas quais a resolução do problema é feita pelo suplemento Solver do Excel. O desempenho das interfaces foi satisfatório, suas rotinas e execuções agiram como o esperado, além de fornecer dados comparáveis aos da literatura. O aplicativo desenvolvido neste trabalho atende às expectativas das pequenas empresas, por ser um aplicativo eficaz ao auxílio na tomada de decisão e sem custos de aquisição e implantação. Palavras-chave: Planilhas do Excel, Programação da Produção, Programação Linear, Sistemas de apoio à decisão.

Pedro, G. A. Desenvolvimento de uma interface VBA para a programação matemática da produção utilizando programação linear. 2012. 63f. Trabalho de Conclusão de Curso (Graduação em Engenharia Química), Universidade de São Paulo, Lorena, 2012. ABSTRACT This work is dedicated to the development of an interface for solving computational problems involved on the production scheduling in production systems, in order to aid the process of decision in small businesses. Because of the difficulty of the small businesses to maintain themselves in the market, the use of tools to aid in the production can make the difference for their establishment in the current market. One method for addressing problems of production scheduling is to treat them as a Linear Programming problem and solving them using mathematical programming. To reach the proposed work, it was done a study in the literature in which it could be noted the increasing use of software for production planning, in particular Solver. It was also developed a logical framework for the development of the model by the user of the application. Finally, It was developed a user-friendly interface to the spreadsheet in Microsoft Excel, it was done in Visual Basic for Applications. The performance of the interface was satisfactory, their routines and plays acted as expected, and provided data comparable with those in the literature. The application developed in this work meets the expectations of small businesses, being an effective application to aid in decision making with no cost of acquisition and deployment. Keywords: Excel spreadsheets, Production Scheduling, Linear Programming, Decision Support Systems.

LISTA DE FIGURAS Figura 1 Definição da Programação Linear (Imagem adaptada de Paulo, et al., 2003)... 23 Figura 2- Esquema lógico para a elaboração do modelo geral... 31 Figura 3 Esquema da funcionalidade para a criação das interfaces e macros... 31 Figura 3 - Arquitetura da funcionalidade das interfaces e macros adotadas.... 32 Figura 4 - Interface inicial construída no Visual Basic for Applications... 33 Figura 5 - Interface para a inserção dos parâmetros necessários para a Função Objetivo... 33 Figura 6 - Interface das Restrições do problema... 34 Figura 7 - Interface na qual o usuário insere uma restrição por vez... 34 Figura 8 - Interface dos resultados da otimização com os valores das variáveis e o total da otimização... 35 Figura 9 - Planilha padrão com os arranjos de linhas e colunas para a generalização do modelo... 36 Figura 10 Interface de resultados da análise de desempenho 1... 39 Figura 11 - Interface de resultados da análise de desempenho 2... 41 Figura 12 - Interface de resultados da análise de desempenho 3... 43 Figura 13 - Interface de resultados da análise de desempenho 4... 46 Figura 14 - Interface de resultados da primeira maximização da análise 5... 48 Figura 15 - Interface de resultados da segunda maximização da análise 5... 49

LISTA DE TABELAS Tabela 1 - Coeficientes das funções para os parâmetros utilizados no Solver... 48 Tabela 2 - Resultados da simulação na Interface proposta utilizando-se o solver como ferramenta de resolução.... 49 Tabela 3 - Resultados obtidos por MARETH (2012) utilizando o software pago LINDO... 50 Tabela 4 - Quantidade disponível do Petróleo...Erro! Indicador não definido. Tabela 5 - Percentuais para Limites de Qualidade das Gasolinas. Erro! Indicador não definido.

LISTA DE QUADROS Quadro 1 - Sumário das Influências nos aspectos administrativos. Erro! Indicador não definido. Quadro 2 - Influencia do tipo de indústria sobre o planejamento e controle da produção....erro! Indicador não definido. Quadro 3 - Restrições comuns em sistemas de produção... Erro! Indicador não definido.

SUMÁRIO 1. INTRODUÇÂO... 13 1.1. Justificativa... 13 1.2. Objetivo Geral... 15 1.3. Objetivos Específicos... 15 2. REVISÃO DA LITERATURA... 16 2.1. Programação da Produção... 16 2.2. Sistemas de Produção... 18 2.3. Programação Linear... 20 2.4. Planilhas Eletrônicas e o suplemento SOLVER... 24 2.5. A Pequena Empresa e o Processo Decisório... 26 3. DESENVOLVIMENTO... 28 3.1. Estudo das aplicações de Programação Linear... 28 3.2. Desenvolvimento de modelos matemáticos... 30 3.3. Preparação das interfaces VBA... 31 3.4. Preparação das macros e planilhas eletrônicas... 35 3.5. Teste de desempenho da interface... 37 3.5.1. Análise de desempenho 1 (JÚNIOR; SOUZA, 2004)... 37 3.5.2. Análise de desempenho 2 Notações da Disciplina Métodos de Apoio a Decisão, Grupo de Controle e Gestão.... 39 3.5.3. Análise de desempenho 3 (ECKER; KUPFERSCHMID, 1988)... 41 3.5.4. Análise de desempenho 4 Problema 1.2.5. (JÚNIOR; SOUZA, 2004)... 43 3.5.5. Análise de desempenho 5... 47 4. CONCLUSÕES... 51 REFERÊNCIAS BIBLIOGRÁFICAS... 52

APÊNDICE A Manual de utilização da Interface de Programação da Produção por Programação Linear Interface PPPL... 57 APÊNDICE B Macros: Código VBA... 63 Macro 1 Interface Inicial... 63 Macro 2 Interface da Função Objetivo... 65 Macro 3 Interface das Restrições... 67 Macro 4 Interface de adição de restrições... 69 Macro 5 Interface dos resultados... 75 Macro 6 Aplicação Solver... 76 ANEXO Artigo de referência para teste de desempenho... 78 Análise de desempenho 5 - (MARETH, et al., 2012)... 78

13 1.INTRODUÇÂO Hoje as pequenas empresas passam por dificuldades em permanecer no mercado muitas vezes por não conseguirem gerir sua produção de modo efetivo. Vários trabalhos propõem utilizar a programação linear como ferramenta de auxílio às decisões. Contudo, os gerentes responsáveis pela tomada de decisão, muitas vezes, têm dificuldade em organizar e arranjar métodos para a resolução de problemas de decisões. 1.1. Justificativa Nos dias atuais a competitividade define a permanência de uma empresa no mercado. Na busca por diferenciais competitivos, uma produção de qualidade e de baixo custo é um grande diferencial entre empresas, para as quais a programação da produção se torna uma ferramenta essencial. Para isto as empresas necessitam adotar estratégias com relação à metodologia de planejamento e controle da programação (VIEIRA, et al., 2011). Sendo assim, a programação da produção promove melhorias quanto ao uso de matérias primas e produtividade de uma empresa, portanto, mantendo-a competitiva no mercado atual. Muitos são os fatores que podem influenciar a tomada de decisão dos gerentes. Esses tomadores de decisões vêm se deparando com problemas de decisões conflitantes: minimizar custos de produção frente à escassez de recursos produtivos e o crescimento das exigências do mercado (JÚNIOR; SILVA, 2005). A solução de um problema de programação da produção é possível se ele reunir todas as limitações de recursos, restrições de fabricação e necessidades impostas do produto (POLON, 2010). A programação linear pode ser aplicada com resultados satisfatórios otimizando os recursos disponíveis, maximizando resultados ou minimizando custos. O processo de tomada de decisão de quando, onde, o que e como produzir de modo efetivo pode ser demorado visto o grande volume de informações necessárias. Assim, a programação linear é uma ferramenta usada para encontrar a melhor alternativa que atenda os vários objetivos da tomada de decisão (PEKNY,1998). BISPO (1998) afirma que, quando o tomador de decisões possui

14 informações precisas e confiáveis, melhor será a identificação do problema e das alternativas, favorecendo a escolha da melhor solução. Deste modo, as empresas podem fazer uso da programação linear para resolver seus problemas de otimização de recursos, seja com o objetivo de redução de custos, otimização de resultados, ou qualquer outro processo de tomada de decisão gerencial. (KLANN, et al., 2010) A utilização de planilhas eletrônicas, juntamente com o suplemento SOL- VER do Microsoft Excel, é uma ferramenta poderosa no apoio ao processo decisório quando se trata de equacionamentos lineares. Como afirma ROCHA (2011), planilhas eletrônicas são de uso comum e acessível à grande parte da população de um modo geral, em específico o Excel, sendo assim, uma alternativa importante para auxiliar a tomada de decisão. OLISZESKI (2010) ressalta que os modelos propostos servem apenas como auxílio no processo decisório, não descartando a interpretação ou conhecimento tácito do empreendedor. Assim, frente aos resultados propostos pelo modelo, os tomadores de decisões devem ter a capacidade de compreender tais resultados de modo a minimizar a incerteza das decisões. Embora seja uma ferramenta de auxílio, resultados convincentes foram obtidos como no estudo de caso feito por VIEIRA (2011) que constatou, com o uso do modelo da programação linear, um aumento em 6,21% no ganho do processo comparado ao processo sem o uso do modelo proposto. FEY e SANTOS (2000) concluem que o plano proposto ao seu estudo teve um incremento de 8,8% na renda líquida. JÚNIOR (2009) afirma um ganho na faixa de 4% a 8,5% em seu sistema de produção. NETO e ZANELLA (2007) demostram um ganho no faturamento de 6,31 %. Um aumento significativo no lucro foi alcançado por BELLIS, PINHO e PAMPLONA (2004) de aproximadamente 26,4% e de 40,68% por NETO, DEIMLING e TOSATI (2006). Para OLIVEIRA (2011) os resultados mostram que a abordagem utilizada é capaz de tratar com sucesso um problema real. ROCHA (2011), no entanto, conclui que é possível utilizar planilhas eletrônicas com interface amigável em problemas de pequeno porte. E segundo ALVES (2007) o uso das planilhas contribui para a diminuição drástica do tempo de tomada de decisão, além de disponibilizar ao usuário a possibilidade de simular diversos cenários, tarefa impossível de ser feita em tempo hábil de forma manual.

15 A motivação para este trabalho surgiu da simplicidade de programação, da facilidade de acesso ao software por pequenas empresas, do menor grau de complexidade dos processos envolvidos na pequena empresa e, também, dos bons resultados obtidos com a programação linear em trabalhos anteriores. Assim, busca-se neste trabalho a criação de uma interface amigável que atenda às necessidades das pequenas empresas no que diz respeito ao apoio gerencial. 1.2. Objetivo Geral Desenvolver uma Interface em VBA para o apoio ao processo de tomada de decisão em sistemas de produção de pequenas empresas, utilizando planilhas do Excel, juntamente com o suplemento Solver, e a programação linear, como recurso de resolução dos problemas de programação de produção. 1.3. Objetivos Específicos Estudar as atividades de planejamento dos sistemas de produção mais comumente encontrados; Estabelecer o modelo matemático que seja ajustável aos interesses do tomador de decisão baseado em programação linear; Elaborar uma arquitetura da funcionalidade das interfaces e as rotinas das macros necessárias para se trabalhar com o Solver; Criar uma interface intuitiva e amigável utilizando o Microsoft Visual Basic ; Desenvolver macros para a operação automática das planilhas; Teste da interface em simulações e problemas de lógica pouco detalhada; Validação da modelagem e metodologia.

16 2.REVISÃO DA LITERATURA 2.1. Programação da Produção FROSSARD (2009) afirma que uma administração dos recursos disponíveis na empresa feita com eficiência, através do planejamento, controle e execução das atividades relacionadas à utilização destes, é um fator fundamental na busca da otimização dos resultados. Assim, a programação da produção visa otimizar o uso de recursos para satisfazer objetivos predefinidos, sujeito às restrições do processo considerado (GIROTTI; NISHIMURA; MESQUITA, 2011). A programação da produção é usada quando se procura encontrar as quantidades de cada tipo de produto que devem ser fabricados em períodos sucessivos (COSTA, 2009). Segundo JÚNIOR e SILVA (2005) o planejamento, ou programação, da produção possui uma gama enorme de informações essenciais para uma execução eficiente, que dificilmente pode ser sumarizada pela mente humana. Para tanto, o planejamento da produção busca transformar informações de estoque, pedidos, equipamento e processos em ordem de fabricação (COSTA, 2009). BRITO (2000) resume os objetivos da programação produção em: Cumprimento dos prazos de entrega; Controle de nível de estoque em processo; Redução constante dos leads times de produção; Controle das filas de espera nos estoques de produção; Prevenção dos gargalos de produção; Minimização do tempo ocioso dos recursos de produção. Portanto a programação da produção é uma função que consiste em planejar as operações que necessitam ser predeterminadas e executadas. Para GITOTTI; NISHIMURA e MESQUITA (2011) tais atividades podem ser divididas em: (i) Programação: consiste no sequenciamento e programação das operações, e a elaboração da carga dos centros de trabalho; (ii) Execução: envolve a liberação das ordens, também chamada despacho, e (iii) Controle: inclui o apontamento da produção e o controle de seu status.

17 Em específico, os problemas de programação da produção tratam de situações em que certo número de recursos, tais como homens, materiais e máquinas, estão disponíveis e podem ser combinados para produzir um ou mais produtos. A atividade de programação, segundo SEVERO (2007), é uma das mais complexas no gerenciamento da produção. Primeiramente, por lidar com diversos tipos de recursos simultaneamente. As máquinas terão diferentes capacidades e capacitação; o pessoal terá diferentes habilidades. Sendo assim, o número possível de programações da produção aumenta à medida que o número de atividades e processos torna-se maior. Deste modo, a programação computacional fornece a ajuda para a tomada de decisão nos problemas de programação industrial. Ainda, SEVERO (2007) afirma que, nas últimas décadas, observou-se um destacado desenvolvimento científico na área de programação de produção para processos em batelada. Isto se deve à tendência de construção de plantas flexíveis e pequenas, para que possam atender às necessidades do mercado. Devido à grande variedade de produtos da indústria química para atender às necessidades do mercado, POLON (2010) define que no fluxograma de um sistema de produção em batelada não existe uma estrutura e receita física fixa no tempo. E, ainda, afirma que a complexidade das atividades de programação de produção em processos em batelada é consequência de um sistema com equipamentos e armazenagens compartilhados, com necessidade de sincronizar a produção de produtos no horário especificado e por fim, a existência de opções diferentes de produção com custos diferentes. SEVERO (2007) assegura que diversas áreas na indústria química utilizam plantas que operam em batelada, como por exemplo, a indústria farmacêutica, de alimentos e, em geral, o setor de química fina. SEVERO (2007) ainda coloca que desta forma, torna-se importante à implantação de sistemas de gestão de produção e de técnicas que visem à produção otimizada dos diferentes produtos; incluindo o uso de equipamentos, produtos e utilidades de forma eficiente. Portanto, as previsões de produção em processos batelada geram um problema de programação. Em geral, a resolução dos problemas envolvidos com a programação da produção de vários tipos de processo é feita tornando tais problemas um caso de

18 programação linear como encontrados em pequenas empresas que possuem falta de instrumentos para tratar tais problemas. 2.2. Sistemas de Produção Seja a empresa de grande ou pequeno porte, é de suma importância ressaltar a diferença entre suas fábricas e seus respectivos sistemas de programação e controle de produção. Como afirma ROCHA (2011), Sistema de Produção pode ser visto de diversas maneiras, o que lhe confere características específicas, e resultam em arranjos particulares de programação de produção. Existe uma grande dificuldade em encontrar uma solução geral para a programação de produção segundo ZACCARELLI (1982). Isso porque cada fábrica tem suas particularidades. O autor salienta três particularidades importantes desta diferenciação: O tipo de indústria; O tamanho da empresa; As diferenças entre estruturas administrativas. Sendo assim, mesmo empresas semelhantes em produção possuem estruturas administrativas diferentes que geram sistemas de programação de produção diferentes. Assim, ZACCARELLI (1982) classifica e subdivide as industrias conforme sua influencia nos processos administrativos conforme os Quadros 1 e 2:

19 Quadro 1 - Sumário das Influências nos aspectos administrativos (Fonte: ZACCARELLI (1982)) Tipo Contínuo Tipo Intermitente Produz relativamente grande Caracteristicas volume e pequena variedade de produtos. Regimes de produção pouco flexível. Produz grande variedade de produtos em pequenos volumes. Regime de produção muito flexível. Exemplos Previsão de vendas Projeto do produto Equipamento Movimentação dos materiais Material Pessoal Operações Indústrias químicas, usina de aço, linhas de montagem. Relativamente fácil para um período de um ano ou mais Estudado com grande detalhe antes de iniciar a produção. Alterações pouco frequentes no projeto do produto. Especialmente projetado. Poucas ajustagens das máquinas. Necessita de grande manutenção preventiva. A carga de trabalho das máquinas é uniforme. Altamente mecanizado, distâncias pequenas, equipamento com propósito único, material movido continuamente de uma operação para outra. Consumo pouco variável de material, mínimo de material em processamento, sem bancos entre operações. Operários pouco especializados executam sempre a mesma operação; pessoal altamente qualificado planeja o processo produtivo e estuda o produto. Frequentes as operações altamente repetitivas. Máquinas pesadas, grandes transmissores de rádio, navios Em geral, para poucos meses. É frequentemente alterado durante a produção. O produto é projetado de forma a poder ser executado com o equipamento disponível. Do tipo universal. Ajustagens muito frequêntes. Carga de trabalho das máquinas sujeita a variações. Feito com equipamento flexível, geralmente com pouca repetição; necessita de corredores e passagens entre o quipamento. É necessário instruir sobre o que e para onde mover. Materiais de grande variedade se acumulam, geralmente, em cada operação; estoque relativamente grande. Operários especializados tem trabalho variado. Há necessidade de determinar a cada dia que trabalhos o pessoal deverá executar. Operações muito variadas requerem instruções frequentes.

20 Quadro 2 - Influencia do tipo de indústria sobre o planejamento e controle da produção (Fonte: ZACCARELLI (1982)). Sistema de PCP para produção Altamente Repetitiva Sistema de PCP para produção por Encomenda Complexidade Relativamente simples, mas pequenas falhas tem grandes repercussões no lucro. Relativamente complexo, as falhas tem pequena repercurssão no custo. Planejamento do processo produtivo (preparação de informações técnicas para a execução, programação e controle das operações) Programação (agenda de produção) Ordens de produção (documentos para instruir, autorizar e controlar as operações) Estoques Liberação da produção (distribuição das ordens de produção) Feito antes da venda do produto. Deve dispor de informações precisas sobre os tempos de processamento, velocidade de transporte, custo de operação, características dos materiais etc. Feita, principalmente, com base na previsão de vendas. Programa o nível geral de atividade. Poucas e simples. Pequeno número de impressos. Planejados em função da programação. Muito simples. Feito quase todo após a venda do produto. Como o produto varia muito, deve dispor de elementos para calcular com rapidez os tempos de processamento, estimativa de custos e para determinar o melhor roteiro para as operações. Feita com base nos pedidos recebidos. Programa cada operação. Para cada operação com respectivas requisições de material e ferramentas, instruções para inspeção etc. Apenas parte dos materiais é mantida em estoque, os demais são adquiridos para atender aos pedidos específicos. Complexa e de grande importância Controle de custos Pouco trabalhoso. Muito trabalhoso. Pela análise dos quadros se nota a necessidade de programações de produção específicos para cada indústria evidenciando a necessidade de um bom planejamento e controle da produção por parte do tomador de decisões. Portanto, a busca pelo melhor desempenho do sistema de produção, acarreta em um processo de modelagem matemática, como por exemplo a aplicação do método da Programação Linear (ROCHA, 2011). 2.3. Programação Linear MIRANDA; MARTINS e FARIA (2007) relatam que a técnica de programação linear foi consolidada por George Dantzig, em 1.947, quando desenvolvia técnicas de otimização para problemas militares, e também do desenvolvimento do método simplex, capaz de resolver qualquer problema linear.

21 POLON (2010) expõe que problemas de planejamento e programação da produção são geralmente estudados como parte da Pesquisa Operacional, que, segundo o autor, é um ramo da engenharia relacionada à aplicação de métodos científicos para problemas de tomada de decisão que por fim se estabelece soluções ótimas. BELLIS; PINHO e PAMPLONA (2004) explicam que a pesquisa operacional trabalha da seguinte forma: Formulação do problema: em que serão definidos os objetivos do estudo e estabelecidas as restrições do sistema em estudo; Construção do modelo: nesta fase é construído um modelo matemático constituído por equações e inequações, as quais formaram a função objetivo e as restrições, sendo estas representadas por variáveis de decisão e variáveis não controladas; Solução através do modelo: realizado através de técnicas matemáticas específicas; Teste do modelo e da solução: pode ser realizado com dados históricos do sistema. Na ausência destes dados, o sistema deve operar sem mudanças e em seguida existe o confronto dos dados com o desempenho do modelo. Nesta fase será decidido se o modelo deverá continuar em uso ou será reformulado; Estabelecimento de controles da solução: a partir do momento em que o modelo é aceito, seus parâmetros devem ser continuamente controlados para garantir a validade da solução adotada; Implementação e acompanhamento: a implantação deve ser acompanhada de perto para se observar o comportamento do sistema e possíveis adequações que se fizerem necessárias. COSTA (2009) complementa afirmando que a Programação Linear é uma ferramenta da Pesquisa Operacional que usa um modelo matemático composto por funções necessariamente lineares para minimizar ou maximizar parâmetros. OLIVEIRA (2009) define a função da programação linear como sendo uma ferramenta aplicada a soluções de problemas que objetivam a otimização de um

22 sistema em estudo. Portanto a Programação Linear fornece uma ferramenta ao processo de tomada de decisão visando alcançar os melhores resultados. Na programação linear, o tratamento destes problemas é feito a partir de modelagens representadas por expressões lineares. Cabe ressaltar, que existe a dificuldade em se modelar estudos reais, mas que tais tratamentos apresentam confiabilidade satisfatória. ALVES (2007) define que a programação linear tem como tarefa básica a maximização ou minimização de uma função linear, definida como Função Objetivo, que respeita um sistema linear de igualdades ou desigualdades, as quais são chamadas Restrições do Modelo. Para COSTA (2009), um modelo de programação linear é constituído por uma equação, que descreve a função objetivo com parâmetros a serem maximizados ou minimizados, e um conjunto de equações ou inequações que descrevem as restrições do problema real. MIRANDA; MARTINS e FARIA (2007) estabelecem premissas para a criação de modelo matemático. São elas: 1) Definir as variáveis do problema; 2) Definir a função-objetivo: expressão matemática linear para a qual se deseja otimizar por meio da melhor combinação das variáveis básicas (maximização ou minimização); 3) Definir o conjunto de restrições: uma inequação ou igualdade que deve ser satisfeita pelas variáveis de um modelo matemático. Para PAULO, et al., (2003) a modelagem da Programação Linear é uma programação matemática em que a função-objetivo e as restrições assumem características lineares observando-se limitações impostas pelo processo produtivo ou pelo mercado.

23 De modo geral, segundo PAULO, et al., (2003), a Programação Linear pode ser descrita conforme ilustra a Figura 1: Figura 1 Definição da Programação Linear (Imagem adaptada de Paulo, et al., 2003) ROCHA (2011) afirma que a programação linear é uma técnica de resolução de equações lineares, considerada como uma técnica de otimização para resolver problemas de maximização ou minimização de um determinado objetivo. OLIVEIRA (2009) estabelece que a otimização se refere: (i) a maximização de parâmetros tais como: lucro, vendas, uso efetivo de uma área, nível de produção e uso de um determinado recurso; ou (ii) a minimização de parâmetros tais como: custo de produção, uso de um determinado recurso de alto valor monetário e emprego de mão de obra. ALVES (2007) denota que para a resolução de problemas de programação linear, são necessários dois passos fundamentais: primeiramente deve-se fazer a modelagem do problema, e posteriormente aplicar uma técnica para resolvê-lo. Para este trabalho, o método de resolução proposto é a aplicação do suplemento SOLVER do Microsoft Excel.

24 2.4. Planilhas Eletrônicas e o suplemento SOLVER JUNIOR e SILVA (2005) ressaltam a importância de se ter o conhecimento apurado dos custos de produção e margens de lucros dos produtos, pois estes são fatores de importância na tomada de decisão de se produzir maiores ou menores quantidades de um determinado produto. Assim, um modelo matemático para um sistema de produção pode ser trabalhado em planilhas eletrônicas com facilidade. Planilhas eletrônicas são ferramentas comumente usadas para analisar dados e modelar problemas quantitativos gerenciais, como sustentam LEON; PRZASNYSKI e SEAL (1996). Os autores, ainda, afirmam que é razoável assumir que a maior parte da modelagem feita no mundo dos negócios, em que se tem aspecto temporal, é realizada utilizando planilhas eletrônicas. Isto se dá, principalmente, devido ao custo acessível do software e também por serem ferramentas de fácil uso. Para CEZARINO; FILHO e RATTO (2009), o grande atrativo destas planilhas é a facilidade de criar interfaces flexíveis para o usuário com um custo baixo, e assim, permitir que ele possa tomar decisões dentro de um ambiente customizado. NETO e ZANELLA (2007) sustentam que o Excel é uma poderosa ferramenta capaz de realizar cálculos e sistematizar dados, e vai além de construir planilhas de controle de despesas domésticas ou relatórios sobre um projeto, e de possibilitar a integração e automatização de sistemas inteiros de gerenciamento de empresas e indústrias. Os autores ainda ressaltam: Muitas das maiores empresas do mundo usam o Excel para criar aplicações personalizadas.. CEZARINO, FILHO e RATTO (2009) discorrem que, devido ao alto custo de software de sistemas de gerenciamento e sua ausência em pequenas empresas, abre-se uma oportunidade para o desenvolvimento de ambientes de apoio à decisão de baixo custo e que, ambientes computacionais baseados em planilhas eletrônicas, juntamente com suplementos adicionais de modelagem e solução de problemas, são uma ótima alternativa. Os autores ainda acrescentam que o uso da planilha eletrônica é mais simples que tais softwares e permite gravação de modelos sem necessidade das montagens das planilhas pelo usuário, possibilitando que técnicos, sem conhecimento aprofundado em informática, possam se beneficiar desta ferramenta.

25 Dentre as varias ferramentas disponíveis no mercado, ROCHA (2011) diz que, para auxiliar os gestores na tomada de decisão, pode-se utilizar o Solver para resolução de problemas de produção. O Solver é uma ferramenta disponível no Excel que visa a encontrar uma solução ótima para os problemas de programação linear. Para NETO e ZANELLA (2007) o Solver possibilita a realização de simulações em um modelo criado, para, depois de testado e aprovado, ser usado no ambiente real, ou seja, a empresa tem a possibilidade de simular diferentes cenários e optar por aquele que apresentar maior lucro financeiro. E, ainda, ROCHA (2011) ressalta que as planilhas eletrônicas do Excel vêm conquistando um ótimo espaço no mercado, principalmente, em grandes indústrias, pois o Excel permite o desenvolvimento de aplicações personalizadas, além de possibilitar a automatização de sistemas de gerenciamento. JÚNIOR e SOUZA (2004) explicam que o Solver faz parte de um conjunto de programas algumas vezes chamado de ferramentas de análise hipotética. Os autores ainda explicam que o Solver trabalha com um grupo de células relacionadas direta ou indiretamente com a fórmula na célula de destino. Assim, o Solver ajusta os valores nestas células variáveis especificadas, chamadas de células ajustáveis, para produzir o resultado especificado na fórmula da célula de destino. ROCHA (2011) completa afirmando que é possível aplicar restrições a células ajustáveis, células de destino ou a outras células direta ou indiretamente relacionadas à célula de destino para restringir os valores que o Solver poderá usar. NETO e ZANELLA (2007) explicam que esta ferramenta pode ser utilizada para determinar soluções de problemas envolvendo múltiplas variáveis e restrições determinando a melhor solução e pode representar economia de capital e recursos ao determinar as melhores e mais eficientes maneiras de alocá-los. E completam afirmando que se pode economizar o tempo que se levaria buscando soluções por tentativas e erro. Ainda, ROCHA (2011) destaca que a linguagem Visual Basic for Applications (VBA) é uma importante alternativa para automatização do uso da planilha do Excel. O autor ainda ressalta que a linguagem permite a criação de macros para a realização de tarefas repetidas e ainda permite integração com os produtos da Microsoft Office, tais como: Word, Excel, Access, Outlook, PowerPoint, FrontPage e também em produtos como o AutoCAD.

26 CEZARINO, FILHO e RATTO (2009) lembra que a ferramenta Solver, presente na versão padrão comercial do Excel, resolve apenas problemas de pequena dimensão (i.e. até duzentas variáveis), porém é possível, com um pequeno investimento, obter uma licença para uso desta mesma ferramenta para problemas com mais de 8000 variáveis. Em todo caso, para a proposta deste trabalho a versão padrão atende ao esperado. 2.5. A Pequena Empresa e o Processo Decisório O planejamento da produção é fundamental para a otimização da produção e, consequentemente, para a maximização dos resultados financeiros das empresas. No entanto, apesar dos avanços nas tecnologias de informação, MIGLIOLI; OSTANEL e TACHIBANA (2004) observam que existe nas pequenas empresas uma grande dificuldade com relação à geração de conhecimento e crescimento, o que leva à conclusão que muitas das pequenas empresas brasileiras perdem espaços e oportunidades de mercado devido ao improviso na tomada de decisões e na formulação de estratégias. Assim, é necessário que pequenas empresas desenvolvam planos de produção que permitam melhorar suas ações. Para isso a programação linear e o solver são ferramentas de grande potencial para diminuir a incerteza e o improviso nas tomadas de decisões. De fato, como afirmam CEZARINO; FILHO e RATTO (2009), empresas menores convivem com problemas de menor escala e, ferramentas sofisticadas, por certo, não seriam de grande valia. Neste caso, então, o uso de planilhas eletrônicas, associado ao solver, apresenta-se como alternativa de baixo custo e baixa complexidade para solução de problemas gerenciais em pequenas empresas. MIGLIOLI, OSTANEL e TACHIBANA (2004) enfatizam que deve-se criar ambientes de aprendizagem, através de cursos e treinamentos internos, dirigidos à sua realidade, em que o gestor da pequena empresa possa adquirir conhecimentos necessários para manipular as planilhas eletrônicas como ferramenta de apoio à decisão. A ideia deste trabalho é que a construção de uma interface que utiliza recursos de planilha Excel e o suplemento Solver que permita aos tomadores de

27 decisão, pouco familiarizados com modelos matemáticos e ferramentas computacionais, tomar decisões gerenciais diárias.

28 3.DESENVOLVIMENTO 3.1. Estudo das aplicações de Programação Linear Inicialmente, fez-se um estudo na literatura buscando as aplicações da programação linear. Nesta pesquisa, focou-se nas aplicações em processos produtivos industriais para constatar em quais, os problemas de programação foram representados em modelos lineares, além de suas restrições para a otimização. Na exploração de problemas de produção, variadas aplicações foram encontradas tais como as listadas abaixo: Maximização de lucros; Minimização de custos de produção; Minimização de tempo em estoques; Melhor rota de transporte; Melhor número de frotas; Melhor rota de processamento a custo mínimo; Minimização de produção em excesso; Redução no número de lotes; Determinação do melhor mix de produção; Determinação de misturas ideais de matérias-primas; Minimização de alocação de máquinas; Minimização do desperdício de matéria-prima; Melhor uso das linhas de produção; Melhor rotação de culturas; Notou-se a abrangência de áreas nas quais a programação linear pode ser aplicada para a sua otimização, podendo ser aplicada em Processos de Produção, Investimento em ações, Finanças Corporativas, Distribuição, Aquisitivos e Recursos Humanos. Embora a área de aplicação seja grande, verificou-se, também, uma a grande aplicação de modelos lineares em Indústrias de Processos, ou seja, aque-

29 las que agregam valor a materiais por meio de processos de mistura, separação, conformação ou reações químicas visando validar a proposta do trabalho. Também, buscou-se nos estudos da literatura as restrições aplicadas nas otimizações. A partir das restrições observadas, listou-se (QUADRO 3) alguma das restrições mais comumente encontradas: Quadro 3 - Restrições comuns em sistemas de produção Sistemas de produção Restrições Capacidade produtiva Volume de processadores Número de processadores disponíveis Tempo de processamento Tempo de folga de equipamentos Tempo de trabalho de equipamentos Limite de estocagem Manutenção de estoque Meios de transportes disponíveis Tempo de transporte Tempo para entrega Quantidades de cada componente Matéria-Prima disponível Geração de subprodutos Consumo de subprodutos Mão de obra disponível (tempo) Subcontratações Demanda máxima ou mínima de vendas Recursos financeiros Pela análise do Quadro 3, notou-se que as restrições podem ser classificadas e resumidas da seguinte forma: Produtivas - Quantidades de produtos a serem feitos; Operacionais Equipamentos e mão de obras disponíveis; Mercadológicas - Limites de vendas (máxima ou mínima). O Quadro 3 pode ser usado para o auxílio ao usuário a estabelecer as restrições de seu modelo. Lembrando que estas são algumas das restrições possíveis de serem encontradas e, cabe ao usuário analisar seu sistema produtivo e determinar quais restrições são aplicáveis.

30 3.2. Desenvolvimento de modelos matemáticos Após os estudos feitos no levantamento de aplicações de programação linear, foi observado que existe um padrão ao se construir os modelos e as suas restrições. Por se tratar de equacionamento linear as variações de um modelo para outro ocorrem somente nos números de variáveis trabalhadas. A maior complexidade ocorre na elaboração das restrições, pois estas limitações são impostas pelo processo produtivo ou pelo mercado, ou ainda, trabalham com muitas restrições, que são combinações de etapas de processo sendo necessária uma análise combinatória. Para este trabalho, foi estabelecida a função objetivo como sendo a definição da programação linear que é descrita da seguinte forma: Sujeito a... ( ) { } ( ) ( ) Restrições Condição de Não-Negatividade Em que: ( ) Função objetivo x i variável de decisão c i coeficiente da função objetivo a ii coeficiente da restrição n número de variáveis m número de restrições Para a determinação do modelo geral pelo usuário, foi elaborada a seguinte estrutura lógica (FIGURA 2): (i) primeiramente definir as variáveis que pretende controlar no problema e representá-la de modo algébrico, (ii) criar uma fun-

31 ção linear em termos das variáveis de decisão, (iii) definir o objetivo central do problema: maximizar ou minimizar a função objetivo, (iv) e, por último, identificar as limitações impostas pelo problema e expressá-las como equações ou inequações lineares em função das variáveis de decisão. Portanto, a definição do processo que se vai modelar é determinado pela gerência e deve ser focado em uma área ou um processo chave em específico. Figura 2- Esquema lógico para a elaboração do modelo geral Para um melhor entendimento da construção do modelo e sua utilização, por parte da pequena empresa, foi também elaborado um manual de utilização da interface, o qual se encontra disponível no APÊNDICE A. 3.3. Preparação das interfaces VBA Para criação da interface levou-se em consideração a estrutura lógica para a construção do modelo geral apresentado na seção 3.2. Assim, elaborou-se a arquitetura da funcionalidade das interfaces e as rotinas das macros necessárias para se trabalha com o Solver. A Figura 3 mostra o esquema elaborado. Para a criação das interfaces e para controle e personalização do ambiente proposto foi utilizado o Visual Basic for Applications (VBA). A interface inicial (Figura 4) foi criada para que o usuário forneça o número de variáveis a serem analisadas e, ao avançar, toda a estrutura das planilhas é criada.

32 Figura 3 - Arquitetura da funcionalidade das interfaces e macros adotadas. A interface seguinte (Figura 5) trata da função objetivo em que o usuário deverá escolher a opção de maximizar ou minimizar sua função objetivo, bem como fornecer os coeficientes da função objetivo. Para tanto, foi criada a interface com uma caixa de texto na qual o usuário fornece o valor do coeficiente e clica em um botão de comando que insere o valor do coeficiente. Uma lista de visualização foi adicionada para o usuário acompanhar os dados já inseridos. A interface seguinte mostra as restrições inseridas (Figura 6). Para a inserção das restrições foi construída outra interface que é chamada por um botão de comando. Essa interface (Figura 7) de inserção de restrição foi construída de modo semelhante à interface da função objetivo. Nela o usuário pode inserir várias restrições seguidas, clicando no botão de comando Nova Restrição, sem a necessidade de sair da interface de inserção de restrições. Por fim, a macro de execução do Solver é chamada e uma última interface é apresentada com os valores da otimização (Figura 8).

33 Figura 4 - Interface inicial construída no Visual Basic for Applications Figura 5 - Interface para a inserção dos parâmetros necessários para a Função Objetivo

34 Figura 6 - Interface das Restrições do problema Figura 7 - Interface na qual o usuário insere uma restrição por vez

35 Figura 8 - Interface dos resultados da otimização com os valores das variáveis e o total da otimização 3.4. Preparação das macros e planilhas eletrônicas A programação das rotinas das macros foi estruturada para que, a cada avanço nas interfaces, a planilha fosse construída e organizada em um modelo padrão. Este modelo padrão significa colocar cada valor e equações em arranjos organizados de linhas e colunas para que fiquem disponíveis para realizar a generalização do modelo. A Figura 9 mostra como foi organizada e construída a planilha para execução do Solver.

36 Figura 9 - Planilha padrão com os arranjos de linhas e colunas para a generalização do modelo O primeiro procedimento para a preparação das planilhas foi determinar um espaço para o intervalo das constantes da função objetivo, denominas por C i, e seus respectivos valores. Da mesma maneira, foi determinado um espaço para as variáveis de decisão, denominadas X i, sem valores, pois o Solver irá determinar valores ótimos para elas. A planilha também inclui uma tabela com os valores das restrições do sistema trabalhado. A partir da planilha organizada, foi implementado o código VBA para possibilitar a criação automática da planilha e interligação das macros, planilhas e interface para a utilização generalizada do suplemento Solver. O código VBA encontra-se disponível no APÊNDICE B.

37 3.5. Teste de desempenho da interface O teste de desempenho da interface foi feito por meio da aplicação de casos de programação linear encontrados na literatura. Com a proposta de se trabalhar com casos rotineiros e de baixo grau de complexidade. 3.5.1. Análise de desempenho 1 (JÚNIOR; SOUZA, 2004) 1.2.3 Problema da Fábrica de Motores A LCL Motores Ltda., uma fábrica de motores especiais, recebeu recentemente R$90.000,00 em pedidos de seus três tipos de motores. Cada motor necessita de um determinado número de horas de trabalho no setor de montagem e de acabamento. estes dados. A LCL pode terceirizar parte da sua produção. A tabela a seguir resume Modelo 1 2 3 Total Demanda 3000 un. 2500 un. 500 un. 6000 un. Montagem 1 h/un. 2 h/un. 0,5 h/un. 6000 h Acabamento 2,5 h/un. 1 h/un. 4 h/un. 10000 h Custo Produção R$ 50 R$ 90 R$ 120 Terceirizado R$ 65 R$ 92 R$ 140 A LCL Motores deseja determinar quantos motores devem ser produzidos em sua fábrica e quantos devem ser produzidos de forma terceirizada para atender à demanda de pedidos. 3.5.1.1. Solução esperada por programação linear. Sendo F i o número de motores dos modelos i (i = 1, 2, 3). E T i o número de motores terceirizados dos modelos i (i = 1, 2, 3). A função-objetivo é em função dos custos de cada motor, então se escreve como função objetivo o custo total: Sujeito a; (Demanda modelo 1) (Tempo de Montagem) (Tempo do Acabamento)

38 (Demanda modelo 2) (Demanda modelo 3) 3.5.1.2. Utilização da Interface Neste caso tem-se uma fábrica que produz três modelos de motores e também terceiriza a fabricação dos mesmos modelos de motores. O que se deseja é minimização do custo total. Então a função-objetivo, em função dos custos individuais é: Sujeito a; (Tempo de Montagem) (Tempo do Acabamento) Assim, os parâmetros para o Solver são: Coeficientes da função objetivo = 50; 90; 120; 65; 92 e140 Coeficientes das restrições Restrição 1 1; 2; 0,5; 0; 0 e 0 menor igual 6000 Restrição 2 2,5; 1; 4; 0; 0 e 0 menor igual 10000 Restrição 3 1; 0; 0; 1; 0 e 0 igual 3000 Restrição 4 0; 1; 0; 0; 1 e 0 igual 2500 Restrição 5 0; 0; 1; 0; 0 e 1 igual 500 O resultado da otimização pela interface é mostrada na Figura 10. Pela otimização é recomendável a terceirização de 2000 motores do modelo 2. A fabrica deverá fazer 3000, 500 e 500 dos modelos 1, 2 e 3, respectivamente.

39 Figura 10 Interface de resultados da análise de desempenho 1 3.5.2. Análise de desempenho 2 Notações da Disciplina Métodos de Apoio a Decisão, Grupo de Controle e Gestão. Uma empresa é propriedade de dois sócios. A empresa em questão produz bicicletas de dois modelos, uma mais sofisticada para todo-o-terreno (modelo TT) e outra mais simples para passeio (modelo PP). Dada a qualidade dos seus produtos e com a primavera a chegar, os dois sócios sabem que irão vender todas as bicicletas que conseguirem, estando apenas limitado pelo processo produtivo. Para definir o melhor plano de produção para o próximo mês fizeram uma análise ao seu sistema produtivo, tendo chegado às seguintes conclusões: - Cada bicicleta TT requer 3 horas de soldagem e cada PP requer 3 de soldagem - As bicicletas TT necessitam de 6 horas de maquinação e as PP apenas 4 horas - As bicicletas TT consomem 9 horas de trabalho no departamento de montagem e as PP apenas 4

40 O número de horas de trabalho disponíveis no próximo mês nos departamentos de maquinagem, soldagem e montagem são respectivamente 2400, 1500 e 2700 Sabendo que as bicicletas PP originam um lucro de R$40 e as TT R$80, ajude os dois sócios a encontrarem o melhor plano de produção para o próximo mês. 3.5.2.1. Solução esperada por programação linear. Sendo x1 a quantidade de bicicletas PP e x2 a quantidade de bicicletas TT, se tem como função objetivo o lucro total: Sujeito a; (Maquinagem) (Soldagem) (Montagem) 3.5.2.2. Utilização da Interface A elaboração do modelo seguiu a expectativa de maximizar o lucro, tendo como função objetivo o lucro total descrito por: E sujeito a; (Maquinagem) (Soldagem) (Montagem) Assim, os parâmetros para o Solver são: Coeficientes da função objetivo = 80 e 40 Coeficientes das restrições Restrição 1 6 e 4 menor igual 2400 Restrição 2 3 e 3 menor igual 1500 Restrição 3 9 e 4 menor igual 2700 Após a inserção dos dados na interface trabalhada obteve-se como resultado de maximização de lucros, uma produção de 140 bicicletas do modelo TT e 360 bicicletas do modelo PP com lucro total de R$25600,00. Os resultados da interface são mostrados na Figura 11.

41 Figura 11 - Interface de resultados da análise de desempenho 2 Exercise 2.14 3.5.3. Análise de desempenho 3 (ECKER; KUPFERSCHMID, 1988) The Wood Products Company uses three machines to produce two products. The following technology table gives the hours on each machine required to produce one unit of each product, and the total time available on each machine during the production period. Time Used in Making Total Machine Time Machine Availible in Production Product 1 Product 2 Period Lathe 1,1 2 1000 Sander 3 4,5 2000 Polisher 2,5 1,3 1500 The problem faced by the company is that it wants to maximize the total number of products made, but it wants to be sure that the amount of product 1 is at least one third the total number produced. (a) Formulate a linear programming model for this problem. (b) Suppose that instead of 3 machines and 2 products, 300 machines are used to produce 200 products. Let

42 Formulate a linear programming model for this enlarged version of the problem. r ij = number of hours on machine j required to produce one unit of product i c j = available machine time on machine j que: 3.5.3.1. Solução esperada por programação linear. Sendo x1 e x2 a quantidade de produtos 1 e 2, respectivamente temos Sujeito a; (lathe) (sander) (polisher) ( ) (proporcionalidade) Para nosso caso somente a questão (a) nos interessa. condições: 3.5.3.2. Utilização da Interface Pela utilização da lógica para construção do modelo teve-se as seguintes Sujeito a; (lathe) (sander) (polisher) ( ) (proporcionalidade) Para este caso tem-se: Coeficientes da função objetivo = 1 e 1 Coeficientes das restrições Restrição 1 1,1 e 2 menor igual 1000 Restrição 2 3 e 4,5 menor igual 2000 Restrição 3 2,5 e 1,3 menor igual 1500 Restrição 4 0,67 e - 0,33 menor igual 0

43 A Figura 12 mostra a interface de resultados com os valores otimizados. Figura 12 - Interface de resultados da análise de desempenho 3 Para este caso os valores ótimos seriam produzir 165 unidades do produto 1 e 335 unidades do produto 2. 3.5.4. Análise de desempenho 4 Problema 1.2.5. (JÚNIOR; SOUZA, 2004) Uma refinaria processa vários tipos de petróleo. Cada tipo de petróleo possui uma planilha de custos diferente, expressando, condições de transporte e preços na origem. Por outro lado, cada tipo de petróleo representa uma configuração diferente de subprodutos para a gasolina. Na medida em que certo tipo de petróleo é utilizado na produção da gasolina, é possível a programação das condições de octanagem e outros requisitos. Esses requisitos implicam na classificação do tipo de gasolina obtida. Supondo que a refinaria trabalhe com uma linha de quatro tipos diferentes de petróleo e deseje produzir as gasolinas amarela, azul e superazul, programar a mistura dos tipos de petróleo atendendo às condições que se seguem nas tabelas a seguir:

44 Tabela 1 - Quantidade disponível do Petróleo Tipo de Petróleo Quantidade Máxima Disponível (barril/dia) ril/dia (R$) Custos por Bar- 1 3500 19 2 2200 24 3 4200 20 4 1800 17 Tabela 2 - Percentuais para Limites de Qualidade das Gasolinas Tipo de Gasolina Especificação Preço de Venda (R$/Barril) Superazul Não mais que 30% de 1 Não mais que 40% de 2 35 Não mais que 50% de 3 Azul Não mais que 30% de 1 Não mais que 10% de 2 28 Amarela Não mais que 70% de 1 22 3.5.4.1. Solução esperada por programação linear. Sendo x ij = número de barris de petróleo de tipo j (j = 1, 2, 3, 4) que serão destinados à produção da gasolina i (i = A-gasolina amarela, Z-gasolina azul e S- gasolina superazul). O modelo para a função-objetivo de maximização de vendas fica: Sujeito a; (Quantidade disponível do petróleo tipo 1) (Quantidade disponível do petróleo tipo 2) (Quantidade disponível do petróleo tipo 3) (Quantidade disponível do petróleo tipo 4) (Especificações para gasolina do tipo S) (...) (...) (Especificações para gasolina do tipo Z) (...) (Especificações para gasolina do tipo A)

45 3.5.4.2. Utilização da Interface O sistema de produção em questão deseja otimizar a mistura de petróleo 4 tipos de petróleo para a fabricação de três tipos de gasolina relacionando seus preços. O modelo proposto de 12 variáveis é: Sujeito a; (Quantidade disponível do petróleo tipo 1) (Quantidade disponível do petróleo tipo 2) (Quantidade disponível do petróleo tipo 3) (Quantidade disponível do petróleo tipo 4) Especificações da mistura de petróleo: (gasolina do tipo S) (...) (...) (gasolina do tipo Z) (...) (gasolina do tipo A) Para este caso temos: Coeficientes da função objetivo = 3; -2; 2; -5; 9; 5; 8; 1; 16; 11; 15 e 8 Coeficientes das restrições Restrição 1 1; 0; 0; 0; 1; 0; 0; 0; 1; 0; 0 e 0 menor igual 3500 Restrição 2 0; 1; 0; 0; 0; 1; 0; 0; 0; 1; 0 e 0 menor igual 2200 Restrição 3 0; 0; 1; 0; 0; 0; 1; 0; 0; 0; 1 e 0 menor igual 4200 Restrição 4 0; 0; 0; 1; 0; 0; 0; 1; 0; 0; 0 e 1 menor igual 1800 Restrição 5 0; 0; 0; 0; 0; 0; 0; 0; 0,7; -0,3; -0,3; -0,3 menor igual 0 Restrição 6 0; 0; 0; 0; 0; 0; 0; 0; -0,4; 0,6; -0,4; -0,4 maior igual 0 Restrição 7 0; 0; 0; 0; 0; 0; 0; 0; -0,5; -0,5 0,5; -0,5 menor igual 0 Restrição 8 0; 0; 0; 0; 0,7; -0,3; -0,3; -0,3, 0; 0; 0; 0 menor igual 0 Restrição 9 0; 0; 0; 0; 0,9; -0,1; -0,1; -0,1, 0; 0; 0; 0 maior igual 0 Restrição 10 0,3; -0,7; -0,7; -0,7; 0; 0; 0; 0; 0; 0; 0; 0; menor igual 0

46 A janela de resultados deste problema é mostrada na Figura 13. Portanto têm-se os barris destinados a apenas algumas gasolinas: Z1, Z3, Z4,S1, S2 e S3. Figura 13 - Interface de resultados da análise de desempenho 4

47 3.5.5. Análise de desempenho 5 Este teste foi realizado a partir da modelagem feita por MARETH, et al., (2012) para a gestão de produção de uma indústria de usinagem. O modelo foi construído a partir do cálculo da margem de contribuição e lucro líquido utilizando como ferramenta de resolução de programação linear o software pago LINDO. O artigo apresentou dois modelos a partir da gestão de custos da empresa. Um modelo para a Margem de Contribuição e outro modelo para o Lucro Líquido. Modelo para Margem de Contribuição: Modelo para Lucro Líquido: Sujeito as seguintes restrições: (Tempo de máquina); (Custo de Mão de Obra); (Custo de Matéria Prima); (Demanda Mínima produto 1); (Demanda Mínima produto 2); (Demanda Mínima produto 3); (Demanda Mínima produto 4); (Demanda Mínima produto 5); (Demanda produto 6); (Demanda Máxima produto 1); (Demanda Máxima produto 2); (Demanda Máxima produto 3); (Demanda Máxima produto 4); (Demanda Máxima produto 5); (Custos e Despesas Fixas).

48 do processo. Para este caso, construiu-se a Tabela 1 com os coeficientes das funções Tabela 3 - Coeficientes das funções para os parâmetros utilizados no Solver Maximizar Z1 3,21 6,17 15,33 5,36 13,05 419,32 Maximizar Z2 0,96 2,08 0,91 0,15 7,24 267,35 Restrição 1 4,89 2 1,5 2,5 3,75 35,73 <= 218887 Restrição 2 0,41 0,18 0,15 0,92 5,33 12,95 <= 6997,8 Restrição 3 2,4 5,5 7,38 2,9 9,73 241,7 >= 2770 Restrição 4 1 0 0 0 0 0 >= 50 Restrição 5 0 1 0 0 0 0 >= 50 Restrição 6 0 0 1 0 0 0 >= 50 Restrição 7 0 0 0 1 0 0 >= 50 Restrição 8 0 0 0 0 1 0 >= 50 Restrição 9 0 0 0 0 0 1 = 25 Restrição 10 1 0 0 0 0 0 <= 2774 Restrição 11 0 1 0 0 0 0 <= 1050 Restrição 12 0 0 1 0 0 0 <= 302 Restrição 13 0 0 0 1 0 0 <= 1084 Restrição 14 0 0 0 0 1 0 <= 2649 Restrição 15 2,25 4,09 16,24 5,51 5,81 151,97 <= 25328 Assim, os valores dos coeficientes foram inseridos na interface e finalizouse a aplicação. A janela de resultados é apresentada na Figura 14 e Figura 15. Figura 14 - Interface de resultados da primeira maximização da análise 5

49 Figura 15 - Interface de resultados da segunda maximização da análise 5 Os resultados da interface são apresentados conforme a Tabela 2: Tabela 4 - Resultados da simulação na Interface proposta utilizando-se o solver como ferramenta de resolução. Margem de Contribuição Lucro Líquido Z maximizado = 43690,84 Z maximizado = 18953,09 Variável Valor Variável Valor c1 2774,00 c1 2774,00 c2 1050,00 c2 1050,00 c3 302,00 c3 302,00 c4 68,48 c4 50,00 c5 983,00 c5 986,19 c6 25,00 c6 25,00 De modo comparativo, os resultados obtidos por MARETH, et al. (2012) são apresentados na Tabela 3:

50 Tabela 5 - Resultados obtidos por MARETH (2012) utilizando o software pago LINDO Margem de Contribuição Lucro Líquido Total função obj. (Z maximizado) = 46042,93 Total função obj. (Z maximizado) = 18050,33 Variável Valor Variável Valor x1 2774,00 x1 2774,00 x2 1050,00 x2 1050,00 x3 302,00 x3 199,83 x4 1084,00 x4 50,00 x5 746,13 x5 925,60 x6 25,00 x6 25,00 Nota-se que nas duas otimizações, tanto pelo Solver quanto pelo LINDO, tem-se um valor próximo de maximização, apresentando um desvio na diferença de valores de 5,1 % para a Margem de Contribuição e de 5% para o Lucro Líquido. No entanto, é visível que na Maximização 1 os produtos 4 e 5 possuem valores significativamente diferentes. O mesmo acontece na Maximização 2 em que os produtos 3 e 5 também apresentam uma diferença significante. Acredita-se que a fonte desta variação seja o método de resolução utilizado pelo SOLVER e do LINDO.

51 4. CONCLUSÕES No estudo de busca por aplicações da programação linear pôde-se concluir que, notavelmente, o uso de ferramentas computacionais para planejamento cresceu muito nos últimos anos. E também, devido à facilidade e preço acessível, o Excel vem despontando entre os softwares de otimização para o uso da programação linear. Isso se deve, em grande parte, ao fato dele possuir um ambiente customizado e, muitas vezes, sem custo de implantação. Ainda, pôde-se confirmar a larga aplicação da Programação Linear em diversas áreas, desde Recursos Humanos até Sistemas de Produção. É plausível afirmar que se deve estimular a utilização destes ambientes, devido aos ótimos resultados de trabalhos envolvendo esses aplicativos. Todos os trabalhos encontrados mostram que os modelos aplicados em programação linear são eficazes ao produzir soluções otimizadas e muitos deles com um ganho significativo. Com a utilização do Visual Basic for Applications pôde-se desenvolver uma interface amigável para a fácil utilização do suplemento Solver, restando ao usuário somente a inserção das constantes sem se preocupar com a organização e layout das tabelas. Nas análises de desempenho as interfaces agiram como esperado, fornecendo e integrando a planilha à interface. O resultados obtidos nas otimizações é comparável aos da literatura evidenciando a correta programação das rotinas e interação com o recurso Solver. Ainda, o Solver mostra-se uma poderosa ferramenta comparável a softwares pagos como o LINDO. Assim pode-se afirmar que o aplicativo desenvolvido neste trabalho atende às expectativas das pequenas empresas, por ser um aplicativo auxiliar na tomada de decisão sem custos de aquisição e implantação.

52 REFERÊNCIAS BIBLIOGRÁFICAS ABREU, J. D. O estudo da pesquisa operacional no campo da programação de produção em sistemas agroindustriais. Disponível em: <http://www.administradores.com.br/informe-se/producao-academica/o-estudo-dapesquisa-operacional-no-campo-da-programacao-de-producao-em-sistemasagroindustriais/2240/>. ALVES, J. M. C. B. Um sistema para o planejamento de produção e vendas de uma empresa mineradora. Dissertação de Mestrado em Engenharia Mineral, Universidade Federal de Ouro Preto, Ouro Preto, 2007. BELLIS, P. M. D.; PINHO, A. F.; PAMPLONA, E. D. O. Definição de mix de produção com uso de programação linear e custos empresariais. p. 14 XI Congresso Brasileiro de Custos, Porto Seguro, 2004. BISPO, C. A. F. Uma análise da nova geração de sistemas de apoio à decisão. Dissertação de Mestrado, Escola de Engenharia de São Carlos, Universidade de São Paulo, São Carlos, 1998. BRITO, R. G. F. A. Planejamento Programação e Controle da Produção. 2ª Ediçao. São Paulo: Editora Imam, 2000. 108 p. p. CEZARINO, W.; FILHO, O. S. S.; RATTO, J. R. Planejamento agregado da produção: Modelagem e solução via planilha Excel & Solver. Revista Produção. ABEPRO, v. IX, n. Nº III, p. 28, 2009. COSTA, A. R. N. Programação da produção otimizada em indústrias de panificação. 2009. 119f. Dissertação (Mestrado em Métodos Numéricos em Engenharia), Universidade Federal do Paraná, Curitiba, 2009. ECKER, J. G.; KUPFERSCHMID, M. Introdution to operations research. New York: John Wiley & Sons, v. Vol. 1, 1988. 509 p. p.

53 FEY, E.; SANTOS, S. R. Planejamento de um sistema agrícola utilizando programação linear.. Congresso e Mostra de AgroInformática, Ponta Grossa, 2000. FROSSARD, A. C. P. Programação linear: Maximização de lucros e minimização de custos. Revista Científica da Faculdade Lourenço Filho. v. Vol. 6, n. 1, p. 19-48, 2009. GITOTTI, L. J.; NISHIMURA, V. S.; MESQUITA, M. A. Simulação em planilhas para programção de ordens de produção em sistemas Job Shop. XXXI Encontro NAcional de Engenharia de Produção, Belo Horizonte, 2011. GRANDI, B. Uso da programação linear, através de planilha eletrônica (Excel), como auxílio no planejamento de sistemas de produção agrícola. p. 5 Congresso e Mostra de AgroInformática, Ponta Grossa, 2000. JÚNIOR, A. D. C. G.; SOUZA, M. J. F. Solver (excel): Manual de Referência. Apostila, Universidade Federal de Ouro Preto, Ouro Preto, 2004. JÚNIOR, J. C. M. Programação linear no planejamento agregado de produção e vendas de uma indústria siderúrgica. 2009. 77 f. Dissertação (Mestrado em Engenharia de Produção), Universidade Federal de MInas Gerais, Belo Horizonte, 2009. JÚNIOR, J. F. D. A.; SILVA, A. B. D. Um sistema de apoio à decisão baseado em planilhas eletrônicas para o planejamento da produção na indústria de laticínios. Revista Brasileira de Agroinformática. v. Vol. 7, n. n. 2, p. 17-31, 2005. KLANN, R. et al. Utilização da programação linear na otimização de resultados de uma empresa do ramo de transporte rodoviário de cargas. Vol. 1, ABCustos Associação Brasileira de Custos, [S.l.], 2010. LEON, L.; PRZASNYSKI, Z.; SEAL, K. C. Spreadsheets and OR/MS models: an enduser perspective. Interfaces. p. 92-104, 1996.

54 MARETH, T. et al. Programação linear como ferramenta de apoio a gestão de custos: Um estudo de caso em uma indústria de usinagem. Revista Eletrônica Pesquisa Operacional para o Desenvolvimento. v. Vol.4, n. 2ª Edição, Rio de Janeiro, p. p. 125-138, 2012. MIGLIOLI, M.; OSTANEL, L. H.; TACHIBANA, W. K. Planilhas eletrônicas como ferramentas para apoio à decisão e geração de conhecimento na pequena empresa. p. 8 XXIV Encontro Nacional de Engeneharia de Produção, Florianópolis, 2004. MIRANDA, J.; MARTINS, V. F.; FARIA, A. F. D. O uso da programação linear num contexto de laticínios com várias restrições na capacidade produtiva. Revista Custos e @gronegócio. v. Vol. 3, n. Edição Especial, p. 40-58, 2007. MUNHOZ, J. R.; MORABITO, R. Um modelo baseado em programação linear e programação de metas para análise de um sistema de produção e distribuição de suco concentrado congelado de laranja. Revista Gestão & Produção. v. Vol. 8, n. n.2, p. 139-159, ago. 2001. NETO, A. R.; ZANELLA, C. Planejamento da produção com a utilização do solver-excel na empresa Bondio Alimentos S.A. XXVII Encontro NAcional de Engenharia de Produção, Foz do Iguaçu, 2007. NETO, A. R.; DEIMLING, M. F.; TOSATI, M. C. Aplicação da programação linear no planejamento e controle de produção: Definição do mix de produção de uma indústria de bebidas. p. 10 XIII SIMPEP, Bauru, 2006. OENNING, V. et al. Teoria das restrições e programação linear. Uma análise sobre o enfoque de otimização da produção. p. 8 XXIV Encontro Nacional de Engenharia de Produção, Florianópolis, 2004. OLISZESKI, C. A. N. Modelos de planejamento agrícola: Um cenário para otimização de processos agroindustriais. Dissertação (Mestrado em Engenharia de Produção - Programa de de Pós-Graduação em Tenologia), Universidade Tecnológica Federal do Paraná, Ponta Grossa, 2010.

55 OLIVEIRA, L. V. Utilização da programação linear para produção de sopa desidratada em leito de jorro. VII Congresso Brasileiro de Engenharia Química em Iniciação Científica, Uberlândia, 2009. OLIVEIRA, V. A. D. Programação da produção de um estaleiro náutico. 2011. 126 f. Dissertação (Mestrado em Engenharia Mecânica e de Materiais), Universidade Tecnológica Federal do Paraná, Curitiba, 2011. PAULO, E. et al. Aplicação da programação linear para redução de custos de produção: Enfoque sobre o planejamento de produção e do quadro funcional. p. 17 Fundação Visconde de Cairu, Salvador, 2003. PEKNY, J. F.; REKLAITIS, G. V. Towards the Convergence of theory and practice: A technoloy guide for scheduling/planning methodology in proceedings of the foundations of computer aided process operations. p. 1-20 Conference - FOCAPO, Snowbird. Utah, 1998. POLON, P. E. Otimização da produção da indústria de embutidos. Tese (Doutorado em Engenharia Química), Universidade Estadual de Maringá, Maringá, 2010. ROCHA, P. T. Programação matemática da produção em processos batelada utilizando planilhas do Excel com interface amigável. Dissertação de Mestrado em Engenharia Química, Universidade Estadual de Maringá, Maringá, 2011. SEVERO, L. S. Aplicação de modelo de programação da produção na indústria de couros. Dissertação de Mestrado em Engenharia Química, Universidade Federal do Rio Grande do Sul, Porto Alegre, 2007. VIEIRA, C. et al. Otimização de um processo produtivo por meio do uso conjunto da teoria das restrições com programação linear: Estudo de caso no segmento de plásticos descartáveis. p. 13 XXXI Encontro Nacional de Engenharia de Produção, Belo Horizonte, 2011.

ZACCARELLI, S. B. Programação e controle da produção. 6ª Edição. São Paulo: Pioneira, 1982. 292 p. p. 56

57 APÊNDICE A Manual de utilização da Interface de Programação da Produção por Programação Linear Interface PPPL

58

59

60

61

62

63 APÊNDICE B Macros: Código VBA Macro 1 Interface Inicial Private Sub CommandButton1_Click() Testar se alguma opção de aplicação foi selecionada Dim Checar As Boolean Dim C As Object Checar = False For Each C In Controls If TypeName(C) = "OptionButton" Then If C.Value = True Then Checar = True End If End If Next C Caso não encontre nenhuma opção seleciona mostrar mensagem de erro If Checar = False Then MsgBox "Selecione uma opção de Aplicação" Exit Sub End If Caso tudo estaja selecionado seguir em frente Este calcula o caso de Aplicação Geral Primeiramente testa se o número de variáveis foi fornecido If TextBox3 = "" Then MsgBox "Informe o número de variáveis" Exit Sub End If Var = TextBox3.Value UserForm1.Hide Macro 1 Cria a planilha na forma correta de aplicação Solver Range("A1").Select ActiveCell.FormulaR1C1 = "Planejamento de Produção por Programação Linear" With Selection.Font.Name = "Calibri".Size = 18.Strikethrough = False.Superscript = False.Subscript = False.OutlineFont = False.Shadow = False.Underline = xlunderlinestylenone

64.ThemeColor = xlthemecolorlight1.tintandshade = 0.ThemeFont = xlthemefontminor End With Selection.Font.Italic = True Range("D2").Select ActiveCell.FormulaR1C1 = "Nº de variáveis=" Columns("D:D").Select Columns("D:D").EntireColumn.AutoFit Range("A4").Select ActiveCell.FormulaR1C1 = "Função Objetivo" Range("D5").Select ActiveCell.FormulaR1C1 = "Total função Otimizada" Columns("D:D").Select Columns("D:D").EntireColumn.AutoFit Range("D5").Select ActiveCell.FormulaR1C1 = "Total função obj." Range("D7").Select ActiveCell.FormulaR1C1 = "Variável Otimizada" Columns("D:D").Select Columns("D:D").EntireColumn.AutoFit Range("E7").Select ActiveCell.FormulaR1C1 = "Valor" Range("A7").Select ActiveCell.FormulaR1C1 = "Coeficientes" Columns("B:B").Select Columns("A:A").ColumnWidth = 11.86 Range("B7").Select ActiveCell.FormulaR1C1 = "Valor" Range("A4:E4").Select Selection.Borders(xlDiagonalDown).LineStyle = xlnone Selection.Borders(xlDiagonalUp).LineStyle = xlnone With Selection.Borders(xlEdgeLeft).LineStyle = xlcontinuous.colorindex = xlautomatic.tintandshade = 0.Weight = xlthin End With With Selection.Borders(xlEdgeTop).LineStyle = xlcontinuous.colorindex = xlautomatic.tintandshade = 0.Weight = xlthin End With Selection.Borders(xlEdgeBottom).LineStyle = xlnone With Selection.Borders(xlEdgeRight).LineStyle = xlcontinuous.colorindex = xlautomatic.tintandshade = 0.Weight = xlthin End With Selection.Borders(xlInsideVertical).LineStyle = xlnone Selection.Borders(xlInsideHorizontal).LineStyle = xlnone Dim z_obj As Integer Cria as colunas das n variáveis For z_obj = 1 To Var

65 Range("A" & z_obj + 7).Select ActiveCell.FormulaR1C1 = "x" & z_obj Next z_obj Dim w As Integer Cria as colunas das n variáveis a ser otimizada End Sub For w = 1 To Var Range("D" & w + 7).Select ActiveCell.FormulaR1C1 = "c" & w Next w Range("E2").Select ActiveCell.FormulaR1C1 = "" & Var UserForm2.Show Private Sub CommandButton2_Click() UserForm1.Hide End Sub Macro 2 Interface da Função Objetivo Option Explicit Private Sub CommandButton1_Click() Checa se todos os parâmetros fora preenchidos Dim Checar As Boolean Dim C As Object Checar = False For Each C In Controls If TypeName(C) = "OptionButton" Then If C.Value = True Then Checar = True End If End If Next C If Checar = False Then Caso não encontre nenhuma opção seleciona mostrar mensagem de erro MsgBox "Selecione uma opção de Otimização" Exit Sub End If Insere o somatório da função objetivo Call SomatorioObjetivo

66 Marcada a opção, seguir em frente UserForm2.Hide UserForm3.Show End Sub Private Sub CommandButton2_Click() UserForm2.Hide UserForm1.Show End Sub Private Sub CommandButton3_Click() Dim w w = Plan1.Range("T5").Value If w < Range("E2") Then Dim q q = Plan1.Range("B65000").End(xlUp).Row Range("B" & q + 1).Select ActiveCell.FormulaR1C1 = TextBox1.Text Range("T5").Select ActiveCell.FormulaR1C1 = w + 1 TextBox1 = "" Call PreencherListBox Else MsgBox "Todas as variáveis já foram preenchidas!" TextBox1 = "" End If End Sub Private Sub OptionButton1_Click() MMV é usado para se referir ao MaxMinVal do parametro SolverOk Caso deseja-se Maximizar a função objetivo If OptionButton1.Value = True Then Range("T4").Value = 1 End If End Sub Private Sub OptionButton2_Click() Caso deseja-se Minimizar a função objetivo If OptionButton2.Value = True Then Range("T4").Value = 2 End If End Sub Private Sub UserForm_Initialize() ao inicializar o form preenche o controle Call PreencherListBox

67 End Sub Sub PreencherListBox() Dim lastrow As Long Dim i As Integer ListBox1.Clear With ListBox1 define nº colunas.columncount = 2 End With Verifica qual a ultima linha preenchida lastrow = Plan1.Range("A65000").End(xlUp).Row adiciona dados For i = 8 To lastrow Me.ListBox1.AddItem Plan1.Range("A" & i) Me.ListBox1.List(Me.ListBox1.ListCount - 1, 1) = Plan1.Range("B" & i) Next End Sub Sub SomatorioObjetivo() Adiciona a somatória da função objetivo Dim f As String Salva o somatório Dim y As String Intermediário para o somatório Dim m As Long Contador para percorrer todos os coeficientes f = "=" For m = 1 To Plan1.Range("E2").Value y = "B" & m + 7 & "*E" & m + 7 f = f & "+" & y Next m Range("E5").Select Insere o somatório na célula correspondente ActiveCell.Formula = f End Sub Macro 3 Interface das Restrições Option Explicit Private Sub CommandButton1_Click() Módulo1.Solver UserForm3.Hide UserForm5.Show End Sub Private Sub CommandButton3_Click()

68 UserForm4.Show End Sub Private Sub UserForm_Activate() Preenche ListBox com o número de restrições inseridas Call PreencherListBoxRestricoes End Sub Private Sub UserForm_Initialize() Cria o cabeçalho das Restrições Range("H4:I4").Select With Selection.HorizontalAlignment = xlcenter.verticalalignment = xlbottom.wraptext = False.Orientation = 0.AddIndent = False.IndentLevel = 0.ShrinkToFit = False.ReadingOrder = xlcontext.mergecells = False End With Selection.Merge ActiveWindow.SmallScroll ToRight:=2 ActiveCell.FormulaR1C1 = "Restrições" Range("G4:I4").Select Selection.Borders(xlDiagonalDown).LineStyle = xlnone Selection.Borders(xlDiagonalUp).LineStyle = xlnone With Selection.Borders(xlEdgeLeft).LineStyle = xlcontinuous.colorindex = xlautomatic.tintandshade = 0.Weight = xlthin End With With Selection.Borders(xlEdgeTop).LineStyle = xlcontinuous.colorindex = xlautomatic.tintandshade = 0.Weight = xlthin End With Selection.Borders(xlEdgeBottom).LineStyle = xlnone With Selection.Borders(xlEdgeRight).LineStyle = xlcontinuous.colorindex = xlautomatic.tintandshade = 0.Weight = xlthin End With

69 Selection.Borders(xlInsideVertical).LineStyle = xlnone Selection.Borders(xlInsideHorizontal).LineStyle = xlnone Cria um contador para construção da planilha de restrição Range("T7").Select ActiveCell.FormulaR1C1 = 7 Cria um contador de restrições Range("T8").Select ActiveCell.FormulaR1C1 = 1 End Sub Sub PreencherListBoxRestricoes() Dim sa ListBox1.Clear With ListBox1.ColumnCount = 1 End With sa = Plan1.Range("T8") Me.ListBox1.AddItem sa End Sub Macro 4 Interface de adição de restrições Option Explicit Private Sub CommandButton1_Click() ################################ Checar se tudo foi preenchido ################################ Checa se foi fornecido valores dos coeficientes If Range("T6") = 0 Then MsgBox "Nenhum valor dos coeficientes foram Digitados" Exit Sub End If If Range("T6") < Range("E2") Then MsgBox "Ainda falta valores dos coeficientes" Exit Sub End If Checa se foi selecionado o igualador Dim Checar As Boolean Dim C As Object Checar = False For Each C In Controls If TypeName(C) = "OptionButton" Then If C.Value = True Then

70 Checar = True End If End If Next C Caso não encontre nenhuma opção seleciona mostrar mensagem de erro If Checar = False Then MsgBox "Selecione o igualador: <=, =, >=!" Exit Sub End If Checa se foi dado valor a igualdade If TextBox2 = "" Then MsgBox "Forneça o valor da igualdade ou desigualdade" Exit Sub End If ################################# Caso tudo OK, prosseguir ################################# Inserir somatório das multiplicações LHS Call Somatorio Conta para a próxima restrição Dim d As Integer d = Plan1.Range("T7") d = d + Range("E2") + 5 Range("T7").Select ActiveCell.FormulaR1C1 = "" & d Conta o número de restrições Dim h As Integer h = Plan1.Range("T8") h = h + 1 Range("T8").Select ActiveCell.FormulaR1C1 = "" & h Controle para manter o valor de t Range("T6").Select ActiveCell.FormulaR1C1 = 0 UserForm4.Hide End Sub Private Sub CommandButton3_Click() Checagem se foi digitado o valor da variável If TextBox1 = "" Then

71 MsgBox "Nenhum valor foi digitado!" Else Caso digitado, armazena valor na célula correspondente Dim w w = Plan1.Range("T6").Value Controla o número de variáveis digitadas If w < Range("E2") Then Dim q q = Plan1.Range("I65000").End(xlUp).Row Range("I" & q + 1).Select ActiveCell.FormulaR1C1 = TextBox1.Text Controle do número de variáveis adicionadas Range("T6").Select ActiveCell.FormulaR1C1 = w + 1 End Sub End If TextBox1 = "" Call PreencherListBox Else MsgBox "Todas as variáveis já foram preenchidas!" TextBox1 = "" End If Private Sub CommandButton4_Click() UserForm4.Hide End Sub Private Sub CommandButton5_Click() ################################ Checar se tudo foi preenchido ################################ Checa se foi fornecido valores dos coeficientes If Range("T6") = 0 Then MsgBox "Nenhum valor dos coeficientes foram Digitados" Exit Sub End If If Range("T6") < Range("E2") Then MsgBox "Ainda falta valores dos coeficientes" Exit Sub End If Checa se foi selecionado o igualador Dim Checar As Boolean Dim C As Object Checar = False

72 For Each C In Controls If TypeName(C) = "OptionButton" Then If C.Value = True Then Checar = True End If End If Next C Caso não encontre nenhuma opção seleciona mostrar mensagem de erro If Checar = False Then MsgBox "Selecione o igualador: <=, =, >=!" Exit Sub End If Checa se foi dado valor a igualdade If TextBox2 = "" Then MsgBox "Forneça o valor da igualdade ou desigualdade" Exit Sub End If ################################# Caso tudo OK, prosseguir ################################# Inserir somatório das multiplicações LHS Call Somatorio Conta para a próxima restrição Dim d As Integer d = Plan1.Range("T7") d = d + Range("E2") + 5 Range("T7").Select ActiveCell.FormulaR1C1 = "" & d Conta o número de restrições Dim h As Integer h = Plan1.Range("T8") h = h + 1 Range("T8").Select ActiveCell.FormulaR1C1 = "" & h Controle para manter o valor de t Range("T6").Select ActiveCell.FormulaR1C1 = 0 Limpa a list box ListBox1.Clear Limpa Textbox2 TextBox2 = ""

73 End Sub Preenche a listbox com as novas restrições Call PreencherRestricoes Private Sub OptionButton1_Click() Escolha do igualador Dim g As Integer If OptionButton1.Value = True Then g = Plan1.Range("T7") + Plan1.Range("E2") + 1 Range("I" & g).value = 1 End If End Sub Private Sub OptionButton2_Click() Escolha do igualador Dim g As Integer If OptionButton2.Value = True Then g = Plan1.Range("T7") + Plan1.Range("E2") + 1 Range("I" & g).value = 2 End If End Sub Private Sub OptionButton3_Click() Escolha do igualador Dim g As Integer If OptionButton3.Value = True Then g = Plan1.Range("T7") + Plan1.Range("E2") + 1 Range("I" & g).value = 3 End If End Sub Private Sub TextBox2_Change() Adiciona o valor RHS a célula Dim j As Integer j = Plan1.Range("T7") + Plan1.Range("E2") + 2 Range("I" & j).value = TextBox2.Value End Sub Private Sub UserForm_Initialize() Cria os espaços para as restrições e seus coeficientes Call PreencherRestricoes Range("T6").Select

74 ActiveCell.FormulaR1C1 = 0 ListBox1.Clear End Sub Sub PreencherListBox() Dim lastrow As Long Dim i As Integer Dim S As Integer S = Plan1.Range("T7").Value ListBox1.Clear With ListBox1 define nº colunas.columncount = 2 End With Verifica qual a ultima linha preenchida lastrow = Plan1.Range("H65000").End(xlUp).Row adiciona dados For i = S To lastrow - 3 Me.ListBox1.AddItem Plan1.Range("H" & i) Me.ListBox1.List(Me.ListBox1.ListCount - 1, 1) = Plan1.Range("I" & i) Next End Sub Sub PreencherRestricoes() Dim r As Integer Cria as colunas das n variáveis das restrições Dim t As Integer Dim p As Integer r = Plan1.Range("H65000").End(xlUp).Row Range("G" & r + 2).Select ActiveCell.FormulaR1C1 = "nº" & Range("T8") Range("H" & r + 2).Select ActiveCell.FormulaR1C1 = "Coeficiente" Range("I" & r + 2).Select ActiveCell.FormulaR1C1 = "Valor" End Sub For t = 1 To Range("E2").Value Range("H" & r + 3).Select ActiveCell.FormulaR1C1 = "x" & t r = r + 1 Next t p = Plan1.Range("H65000").End(xlUp).Row Range("H" & p + 1).Select ActiveCell.FormulaR1C1 = "LHS=" Range("H" & p + 2).Select ActiveCell.FormulaR1C1 = "Igualador=" Range("H" & p + 3).Select ActiveCell.FormulaR1C1 = "RHS=" Sub Somatorio()

75 Adiciona o somatório do LHS Dim z As Integer Contador para definir o local da somatória Dim f As String Salva o somatório Dim y As String Intermediário para o somatório Dim m As Long Contador para percorrer todos os coeficientes Dim n Intermediário para o valor de "m" End Sub z = Plan1.Range("T7") + Plan1.Range("E2") f = "=" For m = 1 To Plan1.Range("T6").Value n = Range("T7") - 1 y = "I" & m + n & "*E" & m + 7 f = f & "+" & y Next m Range("I" & z).select ActiveCell.Formula = f Macro 5 Interface dos resultados Option Explicit Private Sub CommandButton1_Click() UserForm5.Hide End Sub Sub PreencherListBox() Dim lastrow As Long Dim i As Integer ListBox1.Clear With ListBox1 define nº colunas.columncount = 2 End With Verifica qual a ultima linha preenchida lastrow = Plan1.Range("D65000").End(xlUp).Row adiciona dados For i = 8 To lastrow Me.ListBox1.AddItem Plan1.Range("D" & i) Me.ListBox1.List(Me.ListBox1.ListCount - 1, 1) = Plan1.Range("E" & i) Next End Sub Private Sub UserForm_Click() End Sub

76 Private Sub UserForm_Initialize() Dim r As Long Call PreencherListBox r = Plan1.Range("E5").Value TextBox1.Text = r End Sub Macro 6 Aplicação Solver Option Explicit Sub Solver() Linhas de programação para utilização automática do Solver. MACRO para utilizar o solver ############################################################################## ########### Parâmetros iniciais do solver: Célula destino, Otimização, Intervalo de variáveis, etc.. Dim ChangeAddr As String, MaxMinVal As Long Dim n As Integer Procura a última linha preenchida das variáveis n = Plan1.Range("B65000").End(xlUp).Row ChangeAddr = "$E$8:$E$" & n MaxMinVal = Range("T4").Value Seta os parâmetros iniciais SolverOk SetCell:="$E$5", MaxMinVal:="" & MaxMinVal, ValueOf:=0, By- Change:="" & ChangeAddr, _ Engine:=2, EngineDesc:="Simplex LP" ############################################################################## ########### Adição das Restrições Dim h As Integer Número de restrições Dim w As Integer Referência para o Loop Dim q As String Referência para localizar célula que deve ser lida Dim r As Long

77 h = Plan1.Range("T8") - 1 q = 7 + Plan1.Range("E2") For w = 1 To h r = Range("$I$" & q + 1).Value SolverAdd CellRef:="$I$" & q, Relation:="" & r, FormulaText:="$I$" & q + 2 q = q + 5 + Plan1.Range("E2") Next w ############################################################################## ############ Finaliza o Solver SolverSolve True Define ação e tipo de relatórios SolverFinish KeepFinal:=1, ReportArray:=1, OutlineReports:=1 End Sub

78 ANEXO Artigo de referência para teste de desempenho Análise de desempenho 5 - (MARETH, et al., 2012)

79

80

81

82

83