Projeto Integrador - TIO[1]

22
GRUPO EDUCACIONAL DRUMMOND FACULDADE CARLOS DRUMMOND DE ANDRADE ENGENHARIA DE PRODUÇÃO PROJETO INTEGRADOR DE ENGENHARIA (TIO) Programação Linear com o Software Microsoft Excel via Solver e LINDO FERNANDO ROLDÃO DIEGO MARQUES NASCIMENTO WELINGTON TEIXEIRA FÁBIO SANTOS São Paulo 2012

description

Solver e Lindo

Transcript of Projeto Integrador - TIO[1]

GRUPO EDUCACIONAL DRUMMOND

FACULDADE CARLOS DRUMMOND DE ANDRADE

ENGENHARIA DE PRODUÇÃO

PROJETO INTEGRADOR DE ENGENHARIA (TIO)

Programação Linear com o Software Microsoft Excel via Solver e LINDO

FERNANDO ROLDÃO

DIEGO MARQUES NASCIMENTO

WELINGTON TEIXEIRA

FÁBIO SANTOS

São Paulo

2012

FERNANDO ROLDÃO

DIEGO MARQUES NASCIMENTO

WELINGTON TEIXEIRA

FÁBIO SANTOS

PROJETO INTEGRADOR DE ENGENHARIA (TIO)

Programação Linear com o Software Microsoft Excel via Solver e LINDO

Orientador: Profº Mestre João Alves

São Paulo

2012

RESUMO

Este trabalho tem como objetivo encontrar soluções para problemas de programação apresentados pelos orientadores do projeto. São problemas de equações lineares que serão resolvidos utilizando o programa Solver da Microsoft e o LINDO – um programa livre.

ABSTRACT

This work aims to find solutions to programming problems suggested by guiding of the project. They are problems of linear equations that are solved using the Solver program by Microsoft and LINDO - a free program.

SUMÁRIOINTRODUÇÃO............................................................................................................1

1. PROGRAMAÇÃO LINEAR...................................................................................2

2. SOLVER...............................................................................................................3

2.1. Desenvolvimento..........................................................................................3

2.2. Parâmetros....................................................................................................3

3. LINDO (Linear, Interactive, and Discrete Optimizer)........................................4

4. PROBLEMAS PROPOSTOS................................................................................4

4.1. Primeiro Problema........................................................................................4

4.2. Apresentação da Solução Ótima Através do Solver.................................5

1° cenário:.............................................................................................................5

2° cenário:.............................................................................................................6

3° cenário:.............................................................................................................7

4.3. Apresentação da Solução Ótima através do LINDO..................................7

1

INTRODUÇÃO

O projeto integrador é um trabalho gerenciado que visa encontrar soluções

para um determinado problema ou a execução de determinada proposta. O projeto

proposto para os alunos do 5° semestre de Engenharia de Produção período

noturno é a solução de dois problemas através de programação linear via software.

O software destinado à solução destes problemas é a ferramenta Solver

utilizada via Microsoft Excel, contudo resolvemos realizar a solução dos problemas

utilizando também a ferramenta LINDO (Linear, INteractive, and Discrete Optimizer),

para que assim possamos oferecer um comparativo entre os dois métodos de

resolução de problemas de programação linear.

2

1. PROGRAMAÇÃO LINEAR

Através de pesquisa podemos observar que a Programação Linear é uma das

técnicas da Pesquisa Operacional mais utilizada em se tratando de problemas de

otimização.

Os problemas de Programação Linear buscam a distribuição eficiente de

recursos limitados para atender um determinado objetivo e este é expresso através

de uma função linear, denominada de "Função Objetivo".

É necessário que se defina quais as atividades que consomem recursos e em

que proporções os mesmos são consumidos. Essas informações são apresentadas

em forma de equações e inequações lineares, uma para cada recurso. Ao conjunto

dessas equações e/ou inequações, denomina-se "Restrições do Modelo".

Normalmente se tem inúmeras maneiras de distribuir os recursos escassos

entre as diversas atividades em estudo, bastando para com isso que essas

distribuições estejam coerentes com as restrições do modelo. No entanto, o que se

busca, num problema de Programação Linear é a função objetivo, isto é, a

maximização do lucro ou a minimização dos custos. A essa solução dá-se o nome

de solução ótima.

Assim, a Programação linear se incube de achar a solução ótima de um

problema, uma vez definida o modelo linear, ou seja, a função objetivo e as

restrições lineares.

3

2. SOLVER

O Solver faz parte de um conjunto de programas algumas vezes chamado de

ferramentas de análise hipotética e é um componente opcional do Software

Microsoft Excel, ele não vem automaticamente disponível, mas sim deve ser

instalado como um suplemento.

2.1. Desenvolvimento

A versão original do Solver saiu em fevereiro de 1991, incluído como um

componente opcional para o Excel 3.0. A versão inicial foi escrita para um ambiente

que possuía memória limitada se comparado aos computadores modernos.

Na versão do Excel 2010 o Solver recebeu otimização do desempenho o que

acelerou o método de modelagem Simplex o mais utilizado no Excel para os casos

de negócios e o método GRG não-linear. Um método de solução adicional, chamado

Evolutionary Solver também foi implementado este utiliza de algoritmos genéticos

para encontrar a melhor solução e tem a vantagem adicional de ser capaz de usar

todas as funções do Excel como parte dos parâmetros de entrada. Versões

anteriores do Solver não poderiam extrair dados de tabelas usando o INDEX ou

funções PROCV.

2.2. Parâmetros

Com o Solver você pode localizar um valor ideal para uma fórmula em uma

célula chamada de célula de destino em uma planilha. O Solver trabalha com um

grupo de células relacionadas direta ou indiretamente com a fórmula na célula de

destino. O Solver ajusta os valores nas células variáveis que você especificar

chamadas de células ajustáveis para produzir o resultado especificado por você na

fórmula da célula de destino. Você pode aplicar restrições para restringir os valores

que o Solver poderá usar no modelo e as restrições podem se referir a outras

células que afetem a fórmula da célula de destino.

S1 S2 S3 S4 S5A 0 1 5 4 3B 2 1 0 3 2C 3 1 0 9 0CUSTO 4 2 1 10 5

4

3. LINDO (Linear, Interactive, and Discrete Optimizer)

LINDO (Linear, Interactive and Discrete Optimizer) foi desenvolvido por Linus

Schrage (1986). Ele é um programa de computador que pode ser usado para

resolver problemas de programação linear, inteira e quadrática.

Utilizado para resolução de problemas reais de mais de 10.000 variáveis,

dispõe de características que mostram os passos e quadros intermediários do

método simplex.

4. PROBLEMAS PROPOSTOS

4.1. Primeiro Problema

Uma nutricionista precisa estabelecer uma dieta contendo, pelo menos, 10

unidades de vitamina A, 30 unidades de vitamina B e 18 unidades de vitamina C.

Essas vitaminas estão contidas em quantidades variadas em cinco alimentos que

vamos chamar de S1, S2, S3, S4, S5. O quadro seguinte dá o numero de unidades

das vitaminas A, B e C em cada unidade desses cinco alimentos como o seu custo

por unidade.

O problema está em calcular a quantidade dos cinco alimentos que devem ser incluídas na dieta diária, a fim de garantir os teores de cada vitamina e com o menor custo possível.

0X1 + 1X2 + 5X3 + 4X4 + 3X5 > 10

2X1 + 1X2 + 0X3 + 3X4 + 2X5 > 30

3X1 + 1X2 + 0X3 + 9X4 + 0X5 > 18

MIN 4 2 1 10 5

S1 S2 S3 S4 S54 2 1 10 51 1 1 1 1

A 0 1 5 4 3 13 10

B 2 1 0 3 2 8 30

C 3 1 0 9 0 13 18

22

Requisitos nutricionais

Vita

min

as

Alimentos

Custo total

Custo por unidadeTotal de unidades

Total de Vitamina

5

4.2. Apresentação da Solução Ótima Através do Solver

Com base nos dados do problema elaboramos o modelo de programação linear:

Para utilizar o Solver na resolução deste problema, nós transcrevemos estas informações para uma planilha do Excel e podemos o seguinte cenário:

1° cenário:

Na situação acima onde apenas uma unidade de cada alimento é adquirida, não completamos o objetivo, pois temos carência das vitaminas B e C.

S1 S2 S3 S4 S54 2 1 10 52 4 1 4 5

A 0 4 5 16 15 40 10

B 4 4 0 12 10 30 30

C 6 4 0 36 0 46 18

82

Requisitos nutricionais

Vita

min

as

Alimentos

Custo total

Custo por unidadeTotal de unidades

Total de Vitamina

6

2° cenário:

No cenário acima as necessidades nutricionais foram cumpridas e isto gerou um custo total de R$ 82,00.

Utilizamos o Solver para saber se o custo encontrado pode ser minimizado.

Para isto definimos:

A função objetivo a ser minimizada.

As células variáveis.

As restrições.

S1 S2 S3 S4 S54 2 1 10 510 10 0 0 0

A 0 10 0 0 0 10 10

B 20 10 0 0 0 30 30

C 30 10 0 0 0 40 18

60

Requisitos nutricionais

Vita

min

as

Alimentos

Custo total

Custo por unidadeTotal de unidades

Total de Vitamina

0X1 + 1X2 + 5X3 + 4X4 + 3X5 > 10

2X1 + 1X2 + 0X3 + 3X4 + 2X5 > 30

3X1 + 1X2 + 0X3 + 9X4 + 0X5 > 18

MIN 4 2 1 10 5

7

3° cenário:

Como podemos observar abaixo, obtemos o menor custo possível respeitando os teores impostos para cada vitamina.

Sendo assim a solução ótima para o problema proposto seria a aquisição de 10 unidades do alimento S1 e 10 unidades do alimento S2.

4.3. Apresentação da Solução Ótima através do LINDO

Para a apresentação da solução ótima utilizando o LINDO, utilizamos os mesmos dados e modelo utilizados anteriormente para a resolução através do Solver.

Para utilizar o Solver na resolução deste problema, nós transcrevemos estas informações para o campo de entrada do software:

8

Depois de digitado o modelo clicamos no menu SOLVE / COMPILE MODEL(CTRL+E), em seguida clicamos novamente em SOLVE / SOLVE(CTRL+S).

Após estas etapas é exibida a solução ótima para o problema:

Podemos observar que é exatamente a mesma solução apontada pelo Solver onde teremos 10 unidades do alimento S1 e 10 unidades do alimento S2 com um custo total de R$ 60,00.

4.4 Segundo Problema

Classe 1 Classe 2 Classe 3

Cálcio 0,7 0,8 0

Ferro 0,9 0,8 0,8

Proteinas 0,8 1,5 0,9Gordura 0,5 0,6 0,4

Ingredientes da ração (unidades por l ibra)

9

A Colorado Cattle Company (CCC) pode comprar três tipos de ingredientes de ração animal de atacadistas. O gado da empresa tem certas necessidades nutricionais em relação á gordura, proteínas, cálcio e ferro. Cada vaca exige, no mínimo, 10 unidades de cálcio, não mais de 7,5 unidades de gordura, no mínimo 12 unidades de ferro e 15 unidades de proteínas por dia. A tabela abaixo mostra a quantidade de gordura, proteínas, cálcio e ferro em cada libra dos três ingredientes da ração animal. A ração de classe um custa $ 0,25/libra, a de classe 2, $ 0,10/libra e a da classe 3, $ 0,08/libra. O gado pode ser alimentado com uma mistura dos três tipos de ração. Portanto, a CCC gostaria de alimentar seu rebanho da forma mais econômica possível.

4.5 Apresentação da Solução Ótima Através do Solver

Com base nos dados do problema elaboramos o modelo de programação linear:

Para utilizar o Solver na resolução deste problema, nós transcrevemos estas informações para uma planilha do Excel e podemos o seguinte cenário:

10

1° cenário:

Na situação acima onde apenas uma unidade de cada Classe é adquirida, não completamos o objetivo, pois temos carência de todos os requisitos.

Utilizamos o Solver para saber se o custo encontrado pode ser minimizado.

Para isto definimos:

A função objetivo a ser minimizada.

As células variáveis.

As restrições.

Classe 1 Classe 2 Classe 3Custo por unidade 0,25 0,1 0,08Total de unidades 8 5,5 0,5

Cálcio 5,6 4,4 0 10 10

Ferro 7,2 4,4 0,4 12 12

Proteinas 6,4 8,25 0,45 15 15

Gordura 4 3,3 0,2 7,5 7,5

Custo Total 2,59

AlimentosTota l de

necesss idades nutricionais

Requisitos nutricionais

11

2° cenário:

Como podemos observar abaixo, obtemos o menor custo possível respeitando requisitos impostos para cada classe.

Sendo assim teremos 8 unidades da classe 1, 5,5 unidades da classe 2 e 0,5 unidades da classe 3, totalizando um custo de R$ 2,59.

4.6 Apresentação da Solução Ótima através do LINDO

Para a apresentação da solução ótima utilizando o LINDO, utilizamos os mesmos dados e modelo utilizados anteriormente para a resolução através do Solver.

Classe 1 Classe 2 Classe 3Custo por unidade 0,25 0,1 0,08Total de unidades 8 5,5 0,5

Cálcio 5,6 4,4 0 10 10

Ferro 7,2 4,4 0,4 12 12

Proteinas 6,4 8,25 0,45 15 15

Gordura 4 3,3 0,2 7,5 7,5

Custo Total 2,59

AlimentosTota l de

necesss idades nutricionais

Requisitos nutricionais

12

Para utilizar o Solver na resolução deste problema, nós transcrevemos estas informações para o campo de entrada do software:

Depois de digitado o modelo clicamos no menu SOLVE / COMPILE MODEL(CTRL+E), em seguida clicamos novamente em SOLVE / SOLVE(CTRL+S).

Após estas etapas é exibida a solução ótima para o problema:

13

Podemos observar que é exatamente a mesma solução apontada pelo Solver onde teremos 8 unidades da classe 1, 5,5 unidades da classe 2 e 0,5 unidades da classe 3, totalizando um custo de R$ 2,59.

5. Conclusão

Observamos que as duas ferramentas utilizadas na resolução do problema proposto apresentaram a mesma solução.

Ao discutirmos sobre qual o melhor método para a apresentação da solução ótima chegamos a algumas vantagens e desvantagens.

14

Sendo assim chegamos a conclusão que as duas ferramentas cumprem com o seus objetivos, entretanto o LINDO consegue apresentar a solução do problema de maneira mais objetiva.

6. Referencias Bibliográficas

Introdução a Programação Linear Parte 1 – Prof. Alexandre Stamford.

www.ceset.unicamp.br/~marlih/ST565/2003_1_pl1%5B1%5D.ppt

Softwares de otimização: manual de referência - Aloísio de Castro Gomes Júnior

15

http://www.decom.ufop.br/prof/marcone/Disciplinas/OtimizacaoCombinatoria/ManualdeSoftwaresdeOtimizacao.pdf

History of Calc Solver

http://kohei.us/2007/10/02/history-of-calc-solver/

METODOS COMPUTACIONAIS DE APOIO A DECISAO - Prof. João Alves

PESQUISA OPERACIONAL - Prof. Rai