Utilizando o EXCEL Solver
Outubro de 2000
2
A opção Solver no Excel pode ser utilizada para resolver problemas de otimização lineares e nãolineares. As restrições de inteiros podem ser colocadas nas variáveis de decisão. O Solver pode ser utilizado para
resolver problemas com até 200 variáveis de decisão, 100 restrições implícitas e 400 restrições simples (limites
inferior e superior e/ou restrições de inteiros nas variáveis de decisão). Para ativar o Solver, selecione
Ferramentas no menu principal e, a seguir, Solver. A caixa de diálogo Parâmetros do Solver será exibida
como mostrado a seguir.
3
Caixa de Diálogo Parâmetros do Solver
A Caixa de Diálogo Parâmetros do Solver é utilizada para descrever o problema de otimização para o
Excel. A caixa Definir célula de destino deve conter a localização da célula da função de objetivo para o
problema em consideração. Máx ou Mín podem ser selecionados para encontrar o máximo ou mínimo da célula alvo. Se Valor de for selecionado, o Solver tentará encontrar um valor para a Célula -Alvo igual a qualquer valor
colocado na caixa, logo à direita dessa seleção. A caixa Células variáveis deve conter a localização das variáveis
de decisão para o problema. Finalmente, as restrições devem ser especificadas na caixa Submeter às restrições,
clicando-se em Adicionar. Alterar permite a modificação de uma restrição já inserida e Excluir permite a
exclusão de uma restrição previamente inserida. Redefinir tudo limpa o problema atual e reinicializa todos os
parâmetros aos seus valores padrão. Opções ativa a caixa de diálogo de opções do Solver (a ser discutido mais
adiante). A caixa de seleção Estimar não é particularmente útil para nossos objetivos e não será discutida aqui.
As partes relevantes da caixa de diálogo Parâmetros do Solver estão identificadas abaixo para uma referência
mais fácil.
Localização da Célula da Função de Objetivo
Resolver Problema
Máx. ou Mín.?
Ativar Opções do Solver
Adicionar uma restrição
Alterar uma restrição
Excluir uma restrição
Localização da Célula da
Variável de Decisão
Limpar Modelo Atual
Conjunto de Restrições
Quando o botão Adicionar é clicado, a caixa de diálogo Adicionar restrição é exibida:
4
Referência à Célula de
Restrição ou conjunto de
Células de Referência
Fórmula, Célula de
Referência ou Valor
Tipo de Restrição
Ao clicar na Caixa Referência de célula, você pode especificar uma localização de célula (normalmente uma
célula com uma fórmula). O tipo de restrição pode ser definido por meio da seleção com a seta para baixo
(<=, >=, =, int, onde int significa inteiro ou bin significa binário). A caixa Re strição pode conter uma fórmula de
células, uma referência de célula simples ou um valor numérico. O botão Adicionar adiciona a restrição
atualmente especificada ao modelo existente e retorna à caixa de diálogo Adicionar Restrição. O botão OK
adiciona a restrição atual ao modelo e retorna à caixa de diálogo do Solver. Nota: O Solver não supõe nãonegatividade das variáveis de decisão. A caixa de diálogo de opções discutida abaixo permite a especificação
das variáveis como não-negativas.
Se o botão Opções for selecionado na caixa de diálogo Parâmetros do Solver, a caixa de diálogo a seguir será
exibida:
Solução de LP dentro
desse % de Idealização
Utilizar Algoritmo Simplex
Supor Não-Negatividade
Opções Não-Lineares
5
Tempo máximo permite a definição do número de segundos antes do Solver parar. Iterações, de forma similar
ao Tempo Máximo, permitem a especificação do número máximo de iterações (passos do algoritmo do Solver)
antes de parar. Precisão é o grau de precisão do algoritmo do Solver (por exemplo, quão próximo do valor o lado
esquerdo de uma restrição ele deve estar antes de ser considerado igual ao lado direito). Tolerância é usada para
programas de inteiros. Ela especifica uma porcentagem dentro da qual a solução é garantida como sendo a ótima.
Se você busca a solução ideal, esse valor deve ser definido como zero. Se o tempo de execução for muito longo,
você pode definir um valor mais alto (caso queira aceitar uma solução dentro desse percentual de idealização).
Caso o seu modelo seja um programa linear ou um programa linear de inteiros, você deve marcar a
caixa Presumir modelo linear. Ela informa o Solver para utilizar o algoritmo simplex em vez de um algoritmo
não-linear que consumirá um tempo maior (Método do Gradiente Reduzido Generalizado). A caixa Presumir
não negativos deve ser marcada se você deseja que todas as mudanças nos seus valores de células sejam ≥ 0.
Marque Mostrar resultado de iteração se deseja ver as informações iteração a iteração (isso pode realmente
deixar as coisas mais lentas!). A caixa Usar escala automática é útil se o seu modelo apresentar uma escala
deficiente (caso as entradas tenham ordens de magnitude drasticamente diferentes). Finalmente, a seção inferior
da caixa de diálogo diz respeito às opções do algoritmo não-linear, a saber, como ele calcula as não-linearidades,
como as taxas de mudança são estimadas e o tipo de técnica de pesquisa empregada.
Falando de forma geral, os valores padrão da maioria desses parâmetros funcionam bem. A coisa
importante a ser lembrada é a marcação da caixa Presumir modelo linear se você tiver um programa linear
ou um programa linear de inteiros. Marque Presumir não negativos se quiser que as mudanças nas células
produzam somente valores não-negativos. Além disso, se estiver resolvendo um programa de inteiros e em
busca da solução ideal, certifique-se de que a Tolerância seja definida como 0%.
6
Um Exemplo: A Colorado Cattle Company1
A Colorado Cattle Company (CCC) pode comprar três tipos de ingredientes de ração animal de um
atacadista. 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 que 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 de ração animal. A ração de classe 1 custa $ 0,25/libra, a de
classe 2, $ 0,10/libra e a de classe 3, $0,08/libra. O gado pode ser alimentado com uma mistura dos três tipos de
ração. A CCC gostaria de alimentar seu rebanho da forma mais econômica possível.
Dados da Colorado Cattle Company
Ingredientes da Ração (Unidades por Libra)
Classe 1
Classe 2
Classe 3
Cálcio
0,7
0,8
0
Ferro
0,9
0,8
0,8
Proteínas
0,8
1,5
0,9
Gordura
0,5
0,6
0,4
Um modelo de programação linear desse problema segue abaixo:
Considere classe1 = quantidade (em lb) da ração classe 1 a ser usada diariamente na alimentação de uma vaca
classe2 = quantidade (em lb) da ração classe 2 a ser usada diariamente na alimentação de uma vaca
classe3 = quantidade (em lb) da ração classe 3 a ser usada diariamente na alimentação de uma vaca
1
Esse problema está em Management Science, Modeling, Analysis and Interpretation, de J.D. Camm e J.R. Evans, South-Western Publishing Co.,
Cincinnati, Ohio, 1996.
7
Minimize
0,25 classe1 + 0,1 classe2 + 0,08 classe3
sujeita a
0,7 classe1 + 0,8 classe2 + 0 classe3 ≥ 10
(Cálcio)
0,9 classe1 + 0,8 classe2 + 0,8 classe3 ≥ 12
(Ferro)
0,8 classe1 + 1,5 classe2 + 0,9 classe3 ≥ 15
(Proteínas)
0,5 classe1 + 0,6 classe2 + 0,4 classe3 ≤ 7,5
(Gordura)
classe1, classe2, classe3 ≥ 0
Um modelo de planilha Excel desse cenário é mostrada a seguir
8
As fórmulas das células nessa planilha ocorrerão todas na seção Saídas do Modelo (isto é, Restrições):
A funç ão SUMPRODUCT efetua o produto escalar. Por exemplo, a quantidade de cálcio usada é
SUMPRODUCT(B7:D7,B15:D15) = (B7*B15 + C7*C15 + D7*D15).
Os passos a seguir são utilizados para criar o modelo de LP mostrado abaixo:
1. Selecione Ferramentas e Solver.
2. Clique na caixa Definir célula de destino e insira B26.
3. Clique em Mín.
4. Clique na caixa Células variáveis e clique e arraste o mouse na planilha de b15 para D15 (ou digite
B15:D15).
5. Clique no botão Adicionar para ativar a caixa Adicionar restrição.
6. Para inserir as restrições mínimas de necessidade: Na caixa Referência de célula, clique e insira
B20:B22, selecione o tipo >= e, a seguir, clique na caixa Restrição e digite F7:F9. Clique em
Adicionar.
7. Para inserir a restrição máxima permitida: Na caixa Referência de célula, clique e insira B24,
selecione o tipo <= e, a seguir, clique na caixa Restrição e digite G10. Clique no botão OK.
8. Finalmente, selecione Opções, Presumir não negativos e Presumir modelo linear.
9
O modelo completo na caixa de diálogo Parâmetros do Solver é o seguinte:
Para resolver o modelo, clique no botão Resolver. Após a resolução do problema, a caixa Resultados do Solver
será exibida:
Você tem a opção de manter a solução encontrada pelo Solver na planilha ou restaurar os valores originais. Além
disso, como mostrado na caixa Relatórios, três relatórios diferentes podem ser automaticamente gerados. Você
pode selecionar qualquer um deles, clicando sobre os mesmo nessa caixa. Na próxima seção descreveremos cada
um dos relatórios.
10
Relatórios do Solver
O Solver gera três relatórios para programas lineares: Relatório de Resposta, Relatório de Sensibilidade
e Relatório de Limites. Se a opção Manter solução do Solver tiver sido selecionada na caixa de resultados do
Solver, a solução ideal será mantida na própria planilha. Para o problema a Colorado Cattle Company, isso é
mostrado a seguir.
O Relatório de Resposta fornece os valores original e final da Célula de Destino e de todas as Células
Ajustáveis, bem como uma lista de cada restrição e seu status (nota: o termo Transigência descreve as variáveis
de sobra e falta). O modelo do Relatório de Resposta para a Colorado Cattle Company é mostrado na próxima
página. Observe que o EXCEL rotula a Célula de Destino, as Células Ajustáveis e as Restrições utilizando o
primeiro texto encontrado à esquerda e acima de cada uma das células.
Microsoft Excel 8.0 Relatório de resposta
Planilha: [CCC.XLS] CCC
Relatório criado: 12/11/97 08:33:07
Célula de destino (Mín)
Célula
Nome
$B$26
Custo Total
Células ajustáveis
Célula
Nome
$B$15
Qtd Classe 1
$C$15
Qtd Classe 2
$D$15
Qtd Classe 3
Restrições
Célula
$B$20
$B$21
$B$22
$B$24
Nome
Qtd. Cálcio
Qtd. Ferro
Qtd. Proteína
Qtd. Gordura
Valor original
Valor final
0
Valor original
2,59
Valor final
0
0
0
Valor da célula
Fórmula
10 $B$20>=$F$7
12 $B$21>=$F$8
15,1 $B$22>=$F$9
7,5 $B$24<=$G$10
8
5,5
0,5
Status
Agrupar
Agrupar
Sem agrupar
Agrupar
Transigência
0
0
0,1
0
11
O Relatório de Sensibilidade fornece o valor final de cada célula ajustável, seu custo reduzido, o
coeficiente da função objetivo, o acréscimo e o decréscimo do coeficiente da função objetivo para o qual a
solução atual permanecerá ótima (todo o resto é mantido fixo). Por exemplo, no Relatório de Sensibilidade da
Colorado Cattle Company mostrado abaixo, o custo da classe 1 pode diminuir em até 0,1425 e a solução atual
permanecerá como ideal. O preço-sombra para cada restrição (a variação na função objetivo por unidade de
acréscimo no lado direito) é fornecido juntamente com o acréscimo e decréscimo do valor no lado direito para o
qual o preço é válido. Por exemplo, no Relatório de Sensibilidade da Colorado Cattle Company mostrado
abaixo, um acréscimo de 0,5 unidades na quantidade de gordura (o qual está dentro do acréscimo permitido de 1
na restrição) resultará em uma variação na função de objetivo de (0,5)x(-1,14) = -0,57.
Microsoft Excel 8.0 Relatório de sensibi lidade
Planilha: [CCC.XLS] CCC
Relatório criado: 12/11/97 08:33:07
Células ajustáveis
Célula
$B$15
$C$15
$D$15
Nome
Classe 1 Qtd
Classe 2 Qtd
Classe 3 Qtd
Valor
Final
Reduzido
Custo
Objetivo
Coeficiente
8
5,5
0,5
0
0
0
10
12
15,1
Sombra
Preço
0,31
0,67
0
7,5
-1,14
0,25
0,1
0,08
Permissível
Acréscimo
1E+30
0,162857143
0,177142857
Permissível
Decréscimo
0,1425
1E+30
2,68
Permissível
Decréscimo
10
12
15
Permissível
Acréscimo
0,137931034
0,054794521
0,1
7,5
1
Restrições
Célula
$B$20
$B$21
$B$22
$B$24
Nome
Cálcio Qtd
Ferro Qtd
Proteínas
Qtd
Gordura Qtd
Valor
Final
Restrição
Lateral R.H.
4
2
1E+30
0,016949153
12
O Relatório de Limites (mostrado abaixo para o Exemplo da Colorado Cattle Company) fornece os limites
inferior e superior de cada célula ajustável, mantendo todas as outras células em seus valores atuais e
satisfazendo as restrições. O relatório abaixo mostra que a solução para o Exemplo da Colorado Cattle Company
é muito apertada (com duas das três células ajustáveis fixadas em seus valores de destino, a terceira tem limites
inferior e superior iguais ao seu valor de destino).
Microsoft Excel 8.0 Relatório de limites
Planilha: [CCC.XLS] CCC
Relatório criado: 12/11/97 08:33:07
Nome
Célula Destino
$B$26 Custo
Total
Nome
Célula Ajustável
$B$15 Classe 1
Qtd
$C$15 Classe 2
Qtd
$D$15 Classe 3
Qtd
Valor
2,59
Limite
Inferior
Valor
8
Resultado
Destino
8
2,59
Limite
Superior
Resultado
Destino
8
2,59
5,5
5,5
2,59
5,5
2,59
0,5
0,5
2,59
0,5
2,59
Resolvendo Problemas de Inteiros e Não-Lineares
A resolução de modelos lineares de inteiros, modelos não-lineares e mesmo modelos de inteiros nãolineares é obtida por meio das mesmas técnicas previamente descritas. Para especificar uma restrição como
inteiro, ative a caixa de diálogo Adicionar Restrição, selecione a célula ajustável em Referência de célula e
selecione o tipo int (inteiro) (para variáveis binárias, selecione bin). Para modelos não-lineares, simplesmente
não especifique Presumir modelo linear na caixa de diálogo Opções.
Download

Utilizando o EXCEL Solver