Docsity
Docsity

Prepare-se para as provas
Prepare-se para as provas

Estude fácil! Tem muito documento disponível na Docsity


Ganhe pontos para baixar
Ganhe pontos para baixar

Ganhe pontos ajudando outros esrudantes ou compre um plano Premium


Guias e Dicas
Guias e Dicas


Manual Solver, Lindo e Lingo, Manuais, Projetos, Pesquisas de Engenharia Mecânica

Tutorial sobre os programas de otimização

Tipologia: Manuais, Projetos, Pesquisas

Antes de 2010

Compartilhado em 24/03/2010

lucas-gava-9
lucas-gava-9 🇧🇷

5

(1)

2 documentos

1 / 20

Toggle sidebar

Esta página não é visível na pré-visualização

Não perca as partes importantes!

bg1
Pesquisa Operacional - Tutorial sobre Softwares
Notas de Aula - Fernando Nogueira 1
1. Resolução de problemas de Programação Linear utilizando
Excel
O
software
Excel resolve problemas de Programação Linear através da
ferramenta “
Solver
”.
Retomando um problema de Programação Linear já citado, tem-se:
()
2121 x5.1xZx,xlucroMax +==
Sujeito a:
+
+
+
0x,x
280x2x4
120x2x
160x2x2
21
21
21
21
(1)
Para resolver este problema utilizando o Excel, deve-se montar a seguinte
planilha:
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14

Pré-visualização parcial do texto

Baixe Manual Solver, Lindo e Lingo e outras Manuais, Projetos, Pesquisas em PDF para Engenharia Mecânica, somente na Docsity!

1. Resolução de problemas de Programação Linear utilizando

Excel

O software Excel resolve problemas de Programação Linear através da ferramenta “Solver”. Retomando um problema de Programação Linear já citado, tem-se:

Max lucro ( x 1 ,x 2 ) =Z=x 1 + 1. 5 x 2

Sujeito a:

x,x 0

4 x 2 x 280

x 2 x 120

2 x 2 x 160

1 2

1 2

1 2

Para resolver este problema utilizando o Excel, deve-se montar a seguinte planilha:

Os valores nas linhas 2, 3 e 4 com as colunas B e C correspondem aos coeficientes das restrições. Os valores nas linhas 2, 3 e 4 com a coluna D correspondem ao total para cada restrição em função dos valores x 1 e x 2. Os valores nas linhas 2, 3 e 4 com a coluna F correspondem aos valores do lado direito das restrições (recursos). Os valores na linha 5 com as colunas B e C correspondem aos coeficientes da função objetivo. Os valores na linha 6 com as colunas B e C correspondem aos valores de x 1 e x 2. O valor da célula D5 é o valor da função objetivo Z. A coluna E é apenas ilustrativa, mostrando o sinal das inequações. Na célula D2 é digitada a seguinte fórmula: =SOMARPRODUTO(B2:C2;$B$6:$C$6) ou =B2B5 + C2C

Nas células D3, D4 e D5, pode-se utilizar a opção de auto preenchimento do Excel clicando sobre a célula D2 e então arrastando o mouse até a linha 5. Observação: após clicar sobre a célula D2 está ficará com a borda realçada. Sobre esta borda, no canto inferior direito aparece um quadrado e então deve-se posicionar o mouse sobre este quadrado para o auto preenchimento. A figura abaixo mostra este quadrado sendo indicado por uma flecha vermelha.

janela “Parâmetros do Solver” então irá aparecer sobre a planilha. A figura abaixo mostra a planilha neste estágio.

Nesta janela, o campo “Definir célula de destino:” aparece o valor $D$5, que corresponde ao valor da função objetivo. O campo “Células variáveis” corresponde aos valores de x 1 e x 2. Assim, pode-se selecionar com o mouse as células correspondentes (B6 e C6) clicando na posição indicada pela seta vermelha na figura abaixo.

Após selecionar as células B6 e C6, deve-se clicar na caixa “Adicionar” para inserir as restrições. Estas podem ser selecionadas com o mouse de maneira análoga a realizada para selecionar as “Células variáveis”. Após clicar na caixa “Adicionar” irá aparecer outra janela denominada “Adicionar restrição”. Nesta janela o campo “Referência de célula:” deve-se selecionar as células D2, D3 e D4 e no campo “Restrição” deve-se selecionar as células F2, F3 e F4. A figura abaixo mostra como deve ficar está janela.

Como se pode notar, os valores das células B6 e C6 são iguais a 40, ou seja, os valores de x 1 e x 2 são iguais a 40 (valores ótimos). A célula D5, com valor igual a 100, corresponde ao valor da função objetivo. Após a resolução, aparece uma janela denominada “Resultados do Solver”, sendo que no canto direito aparece um campo denominado “Relatórios”. Pode-se então selecionar as opções de relatório disponíveis para visualizar demais resultados.

1.1 Programação Linear Inteira

Quando se faz necessário que uma ou mais variáveis de controle sejam inteiras utiliza-se restrições adicionais. Considere a seguinte planilha:

A solução ótima (contínua) é:

Para se obter a solução ótima inteira, deve-se acrescentar a seguinte uma restrição indicando que as células B6 e C6 assumam apenas valores inteiros. A caixa "parâmetros do Solver" deve ficar assim:

2. Resolução de problemas de Programação Linear utilizando

Lindo

A modelagem do problema de programação linear nosoftware Lindo se dá de maneira bastante semelhante à modelagem escrita manualmente. O modelo de programação linear deve ser digitado no seu próprio editor (ou outro editor qualquer sendo o arquivo salvo no formato ASCII). O editor é carregado no menu FILE →OPEN (se já possui algum arquivo) ou FILE →NEW (para começar um novo arquivo). O texto abaixo mostra o problema de programação linear dado em 1) para o Lindo (este texto pode ser copiado e colado no editor do Lindo): ......................................................................................................................... ! A EXCLAMACAO E´ COMENTARIO MAX 1 X1 + 1.5 X2 !FUNCAO OBJETIVO, PODE SER MIN PARA MINIMIZAR SUBJECT TO! COMECA AS RESTRICOES REST1) 2 X1 + 2 X2 <= 160 !REST1) E´ O NOME DA RESTRICAO 1, PODERIA SER OUTRO REST2) 1 X1 + 2 X2 <= 120 REST3) 4 X1 + 2 X2 <= 280 END !TERMINA AS RESTRICOES

!INT E´ O COMANDO UTILIZADO PARA FORCAR AS VARIAVEIS ASSUMIREM VALORES 0 E 1 !EXEMPLO: !INT 2 !FORCA AS DUAS VARIAVEIS A ASSUMIREM VALORES 0 E 1 !INT X1 !FORCA APENAS A VARIAVEL X1 ASSUMIR VALOR 0 E 1

!GIN E´ O COMANDO UTILIZADO PARA FORCAR AS VARIAVEIS ASSUMIREM VALORES !INTEIROS !EXEMPLO: !GIN 2 !FORCA AS DUAS VARIAVEIS A ASSUMIREM VALORES INTEIROS !GIN X1 !FORCA APENAS A VARIAVEL X1 ASSUMIR VALOR INTEIRO .........................................................................................................................

Após digitado o modelo, o problema é resolvido através do menu SOLVE →SOLVE.

3. Resolução de problemas de Programação Linear utilizando

LINGO

O LINGO é um software para otimização de problemas lineares e não- lineares. Este software permite utilizar uma sintaxe específica de tal modo que grandes problemas podem ser descritos de concisa. Segue abaixo um exemplo desta sintaxe para um Problema de Transporte (obs: no caso de programação linear, a mesma sintaxe utilizada nosoftware Lindo pode ser utilizada também). .........................................................................................................................

MODEL: !isso é um comentário !setname / member_list /: attribute_list Implicit member_list Format Example Set Members 1..n 1..5 1, 2, 3, 4, 5 stringM..stringN O1..O3 O1,O2,O dayM..dayN MON..FRI MON, TUE, WED, THU, FRI monthM..monthN OCT..JAN OCT, NOV, DEC, JAN monthYearM..monthYearN OCT2001..JAN2002 OCT2001, NOV2001, DEC2001, JAN

attribute_list (PODE SER MAIS DE UM) ORIGENS / O1..O3 / : OFERTA, LOCALIZACAO, PATIOS;

~

~

4. Resolução de problemas de Programação Linear utilizando

MPL

O software MPL, ao contrario do Lindo, permite que se utilizem vários "Solvers", inclusive o próprio Lindo, para a resolução dos problemas de programação linear. A modelagem se dá de maneira bastante parecida com a modelagem utilizada no Lindo. O texto abaixo mostra o problema de programação linear dado em 1) para o MPL (este texto pode ser copiado e colado no editor do MPL): ......................................................................................................................... ! A EXCLAMACAO E´ COMENTARIO MAX X1 + 1.5 X2 !FUNCAO OBJETIVO, PODE SER MIN PARA MINIMIZAR Subject to 2 X1 + 2 X2 <= 160; X1 + 2 X2 <= 120; 4 X1 + 2 X2 <= 280;

!BINARY FORCAR AS VARIAVEIS ASSUMIREM VALORES 0 E 1 !EXEMPLO: !BINARY X1 !FORCA APENAS A VARIAVEL X1 ASSUMIR VALOR 0 E 1

!INTEGER E´ O COMANDO UTILIZADO PARA FORCAR AS VARIAVEIS ASSUMIREM VALORES !INTEIROS !EXEMPLO: !INTEGER X1 !FORCA APENAS A VARIAVEL X1 ASSUMIR VALOR INTEIRO

!FREE E´ O COMANDO UTILIZADO PARA AS VARIAVEIS ASSUMIREM VALORES LIVRES !EXEMPLO: ! FREE X1 !DEIXA APENAS A VARIAVEL X1 ASSUMIR VALOR 0 E 1 ......................................................................................................................... Depois de digitado o modelo, o problema é resolvido através do menu RUN→SOLVE CPLEX. Este comando irá executar o CPLEX comoSolver. O Comando SOLVE Conopt irá executar o Conopt comoSolver.

O principal problema em escrever o problema de Programação Linear como acima é que para problemas grandes, tal notação se torna inviável. Porém, é possível escrever o problema utilizando uma notação reduzida, que será então interpretada pelo software. Segue abaixo um exemplo para o problema de Programação Linear já citado (este texto pode ser copiado e colado no editor do MPL): ......................................................................................................................... TITLE Problema_Classico; {isto é um comentário} INDEX produto:=(x1,x2); maquina:=(a,b,c); DATA coef_lucro[produto]:=(1,1.5); coef_tec[maquina,produto]:=(2,2, 1,2, 4,2);

HORIZONTAL NOME da série 1

COMENTÁRIO ANO (MÊS, SEMANA, DIA,..) INICIAL

MÊS (SEMANA, DIA,...) INICIAL

NÚMERO DE AMOSTRAS QUE ANO (MÊS, SEMANA, DIA,...) CONTÉM

PERÍODO DO FENÔMENO SAZONAL

DADO1 DADO ...

NOME da série 2

COMENTÁRIO ANO (MÊS, SEMANA, DIA,..) INICIAL

MÊS (SEMANA, DIA,...) INICIAL

NÚMERO DE AMOSTRAS QUE ANO (MÊS, SEMANA, DIA,...) CONTÉM

PERÍODO DO FENÔMENO SAZONAL

DADO1 DADO ...

Para o caso VERTICAL a planilha fica:

VERTICAL NOME da série 1 NOME da série 2 (^) ... COMENTÁRIO COMENTÁRIO (^) ... ANO (MÊS, SEMANA, DIA,..) INICIAL ANO (MÊS, SEMANA, DIA,..) INICIAL (^) ... MÊS (SEMANA, DIA,...) INICIAL MÊS (SEMANA, DIA,...) INICIAL (^) ... NÚMERO DE AMOSTRAS QUE ANO (MÊS, SEMANA, DIA,...) CONTÉM

NÚMERO DE AMOSTRAS QUE ANO (MÊS, SEMANA, DIA,...) CONTÉM

PERÍODO DO FENÔMENO SAZONAL PERÍODO DO FENÔMENO SAZONAL ...

DADO1 DADO ...

DADO2 DADO ...

A figura A1 mostra um exemplo de planilha Excel com as séries históricas dispostas horizontalmente.

Fig. A1 – Exemplo de planilha Excel com as séries históricas dispostas horizontalmente.

De posse do arquivo com a planilha Excel abre-se este no FORECAST PRO 3.5 através do menu FILE -> OPEN DATABASE. A figura A2 mostra a tela do FORECAST PRO 3.5 para essa situação.

Fig. A2 – Tela do FORECAST PRO 3.5 mostrando menu FILE->OPEN DATABASE.

Fig. A4 – Combo box com o comando BATCH selecionado.

Após a seleção do comando BATCH deve-se clicar no ícone ou no menu Operations->Forecast para realizar os cálculos de previsão para as séries selecionadas. Imediatamente após esta ação, o FORECAST PRO 3.5 apresenta a janela “Select default batch processing mode” para o usuário selecionar o método de previsão desejado. A figura A5 mostra esta janela. A opção “Expert Selection” irá realizar os cálculos para todos os métodos apresentados nesta janela e automaticamente selecionar o melhor método para cada série segundo critérios próprios.

Fig. A5 – Janela para selecionar o método de previsão a ser utilizado.

O horizonte de previsão (quantas amostras após a última amostra de cada série) é determinado no menu Settings->Options na aba Basic->Forescat Horizon. Nesta mesma aba pode-se escolher o intervalo de confiança das previsões através dos valores “Upper confidence Limit” e “Lower confidence Limit”. No menu Settings->Forecast Output Design pode-se selecionar os resultados e informações, além da disposição destas no arquivo de saída dos resultados. Para salvar o arquivo com os resultados, utiliza-se o menu FILE->SAVE FORECASTS. Por default, o FORECAST PRO 3.5 sugere o nome do arquivo de saída dos resultados como o mesmo nome do arquivo de entrada dos dados com “!” no começo do nome. O formato default do arquivo de saída é também uma planilha Excel (extensão .xls). No menu Graph pode-se selecionar várias opções de gráficos das séries. O menu Operations->Adjust Forecasts exibe uma janela para alterar manualmente os resultados das previsões.