












Estude fácil! Tem muito documento disponível na Docsity
Ganhe pontos ajudando outros esrudantes ou compre um plano Premium
Prepare-se para as provas
Estude fácil! Tem muito documento disponível na Docsity
Prepare-se para as provas com trabalhos de outros alunos como você, aqui na Docsity
Encontra documentos específicos para os exames da tua universidade
Prepare-se com as videoaulas e exercícios resolvidos criados a partir da grade da sua Universidade
Responda perguntas de provas passadas e avalie sua preparação.
Ganhe pontos para baixar
Ganhe pontos ajudando outros esrudantes ou compre um plano Premium
Tutorial sobre os programas de otimização
Tipologia: Manuais, Projetos, Pesquisas
1 / 20
Esta página não é visível na pré-visualização
Não perca as partes importantes!













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:
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:
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.
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;
~
~
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
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.