Programação Linear
(3ª parte)
Informática de Gestão 61020
Maria do Rosário Matos Bernardo
2016
Conteúdos
• Excel – Solver
• Instalação do Solver
• Resolução de problemas de programação linear
• Problema de minimização
• Funcionalidades adicionais
• Problema de maximização
2016 Maria do Rosário Matos Bernardo © 2
Excel – Solver (1/2)
Os problemas de programação linear podem ser resolvidos através da
ferramenta Solver (Solver) do Excel.
• A ferramenta Solver é utilizada para encontrar um valor ótimo para o
resultado de uma célula que está dependente, direta ou
indiretamente, da variação dos valores de outras células.
• O valor ótimo é encontrado pela minimização ou maximização de
uma fórmula (ou equação) que se encontra na chamada célula de
destino e que corresponde à função objetivo do problema.
2016 Maria do Rosário Matos Bernardo © 3
Excel – Solver (2/2)
• As outras células com as quais a célula de destino está relacionada
recebem o nome de células ajustáveis, pois vão ter o seu valor
ajustado, de forma a produzirem o resultado desejado.
• Podem ser introduzidas restrições, ou limitações, aos valores que o
Solver pode utilizar no modelo, correspondem às restrições do
problema de programação linear e às condições de não negatividade.
• Estas restrições podem ser aplicadas à célula de destino, às células
ajustáveis ou a outras células que estejam direta ou indiretamente
relacionadas com a célula de destino.
2016 Maria do Rosário Matos Bernardo © 4
Aceder à ferramenta Solver
Para aceder à ferramenta Solver (Solver), deve selecionar o separador
Dados (Data) da sua folha de cálculo e, no grupo Ferramentas de Dados
(Data Tools), selecionar a opção Análise (Analysis).
2016 Maria do Rosário Matos Bernardo © 5
Instalação do Solver
Para instalar a ferramenta Solver deve consultar as páginas 117 e 118
do livro “Excel Aplicado”.
Apesar do livro ter como referência o Excel 2010, e nesta apresentação
estarmos a considerar o Excel do Office 365 (Excel 2016), as diferenças
são mínimas e consegue instalar a ferramenta Solver seguindo as
indicações do livro seja qual for a versão de Office (Excel) com que
esteja a trabalhar.
2016 Maria do Rosário Matos Bernardo © 6
Problema de minimização
Vamos recorrer ao exemplo de problema de minimização apresentado
anteriormente, representado pelo seguinte modelo:
Min z = 12x1 + 8x2
Suj. a:
x1 + x2 6
x1 + 4x2 12
3x1 + x2 8
x1 e x2 0
2016 Maria do Rosário Matos Bernardo © 7
1º passo: Introduzir as variáveis e fórmulas na folha de
Excel
Vamos começar por colocar na folha de cálculo a informação necessária
para resolver o problema, tendo o cuidado de deixar a folha com um
aspeto compreensível, ou seja, que não seja difícil identificar a função
objetivo, as restrições e as soluções do problema.
Pretendemos que a nossa folha de cálculo fique com o seguinte aspeto:
2016 Maria do Rosário Matos Bernardo © 8
2016 Maria do Rosário Matos Bernardo © 9
Para além do texto visível no ecrã vamos colocar as seguintes
fórmulas e valores:
Célula Valor ou Significado no modelo
Fórmula
J2 =12*J9+8*J10 Valor da função objetivo (valor que queremos
minimizar)
J5 =J9+J10 Resultado da primeira restrição
J6 =J9+4*J10 Resultado da segunda restrição
J7 =3*J9+J10 Resultado da terceira restrição
J9 0 Resultado da variável x1
J10 0 Resultado da variável x2
L5 =J5-G5 Valor que sobra depois de satisfeita a restrição 1
L6 =J6-G6 Valor que sobra depois de satisfeita a restrição 2
L7 =J7-G7 Valor que sobra depois de satisfeita a restrição 3
2016 Maria do Rosário Matos Bernardo © 10
2º Passo: O Solver
Vamos resolver o problema com a ferramenta Solver:
1. No separador Dados (Data), grupo Ferramentas de Dados (Data
Tools), opção Análise (Analysis), selecione Solver (Solver).
Aparece a seguinte caixa de diálogo:
2016 Maria do Rosário Matos Bernardo © 11
2016 Maria do Rosário Matos Bernardo © 12
2. Em Definir Objectivo (Set Objective) insira $J$2, pois é a célula que
contém a equação que identifica a função objetivo que
pretendemos minimizar.
3. Em Para: (Equal to), selecione Mínimo (Min).
4. Depois insira em Alterando as Células de Variável (By
Changing Variable Cells) $J$9:$J$10, pois são as células que
contêm as nossas variáveis de decisão (x1 e x2).
5. Seguidamente, para introduzir as restrições, selecione a opção
Adicionar (Add Constraint), e surge a seguinte caixa de diálogo:
2016 Maria do Rosário Matos Bernardo © 13
Vamos introduzir as restrições e as condições de não negatividade uma
a uma.
2016 Maria do Rosário Matos Bernardo © 14
6. Para a restrição x1 + x2 6, preencha a caixa de diálogo
da seguinte forma:
2016 Maria do Rosário Matos Bernardo © 15
7. Selecione Adicionar (Add) para introduzir outra restrição. Deve
proceder desta forma, até ter todas as restrições introduzidas. No
fim, clique em OK para voltar à caixa de diálogo do Solver (Solver).
8. Escolha o Método de Resolução (Solving Method) LP Simplex
(Simplex LP).
2016 Maria do Rosário Matos Bernardo © 16
2016 Maria do Rosário Matos Bernardo © 17
9. Escolha a opção Resolver (Solve) para o Solver (Solver)
encontrar a solução.
10. Selecione a opção OK da caixa de diálogo:
2016 Maria do Rosário Matos Bernardo © 18
11. A solução ótima do problema irá surgir na folha de cálculo.
Temos uma solução ótima única:
Como podemos verificar, a solução ótima encontrada pelo solver
coincide com a solução da resolução gráfica, ou seja, a solução ótima
deste problema de minimização consiste em adquirir um saco de
adubo químico e 5 sacos de adubo biológico, com um custo total de
52 euros.
2016 Maria do Rosário Matos Bernardo © 19
Funcionalidades adicionais
• A ferramenta solver tem outras funcionalidades, como Guardar
Cenário (Save Scenario), para guardar a solução para análise futura no
Gestor de Cenários (Scenario Manager); e a elaboração de Relatórios
(Reports) de Resposta (Answer), Sensibilidade (Sensitivity) e Limites
(Limits). Voltaremos aos relatórios num ponto seguinte.
• Em algumas situações pode ser importante analisar a forma como o
Solver (Solver) chega à solução ótima, isso é possível, basta quando
estamos na caixa de diálogo Parâmetros do Solver (Solver
Parameters) selecionar o botão Opções (Options) e na caixa de
diálogo selecionar a opção Mostrar Resultados de Iteração (Show
Iteration Results).
2016 Maria do Rosário Matos Bernardo © 20
2016 Maria do Rosário Matos Bernardo © 21
Problema de Maximização
Vamos recorrer ao exemplo de problema de maximização apresentado
anteriormente, representado pelo seguinte modelo:
Max z = 40x1 + 30x2
Suj. a:
15x1 + 7x2 900
10x1 + 8x2 700
5x1 + 10x2 600
x1 e x2 0
2016 Maria do Rosário Matos Bernardo © 22
1º passo: Introduzir as variáveis e fórmulas na folha de
Excel
Vamos começar por colocar na folha de cálculo a informação necessária
para resolver o problema, tendo o cuidado de deixar a folha com um
aspeto compreensível, ou seja, que não seja difícil identificar a função
objetivo, as restrições e as soluções do problema.
Pretendemos que a nossa folha de cálculo fique com o seguinte aspeto:
2016 Maria do Rosário Matos Bernardo © 23
2016 Maria do Rosário Matos Bernardo © 24
Para além do texto visível no ecrã vamos colocar as seguintes
fórmulas e valores:
Célula Valor ou Fórmula Significado no modelo
J2 =40*J9+30*J10 Valor da função objetivo (valor que queremos
maximizar)
J5 =15*J9+7*J10 Resultado da primeira restrição
J6 =10*J9+8*J10 Resultado da segunda restrição
J7 =5*J9+10*J10 Resultado da terceira restrição
J9 0 Resultado da variável x1
J10 0 Resultado da variável x2
L5 =H5-J5 Valor de folga (recurso que ainda pode ser usado)
depois de satisfeita a restrição 1
L6 =H6-J6 Valor de folga depois de satisfeita a restrição 2
L7 =H7-J7 Valor de folga depois de satisfeita a restrição 3
2016 Maria do Rosário Matos Bernardo © 25
2º Passo: O Solver
Vamos resolver o problema com a ferramenta solver:
1. No separador Dados (Data), grupo Ferramentas de Dados (Data
Tools), opção Análise (Analysis), selecione Solver (Solver).
2. Em Definir Objectivo (Set Objective) insira $J$2, pois é a célula que
contém a equação que identifica a função objetivo que
pretendemos maximizar.
3. Em Para: (Equal to), selecione Máximo (Max).
4. Depois insira em Alterando as Células de Variável (By
Changing Variable Cells) $J$9:$J$10, pois são as células que
contêm as nossas variáveis de decisão (x1 e x2).
2016 Maria do Rosário Matos Bernardo © 26
5. Seguidamente, para introduzir as restrições, selecione a
opção Adicionar (Add Constraint), e surge a seguinte caixa de
diálogo:
Vamos introduzir as restrições e as condições de não negatividade uma
a uma.
2016 Maria do Rosário Matos Bernardo © 27
6. Para a restrição 15x1 + 7x2 900, preencha a caixa de diálogo
da seguinte forma:
2016 Maria do Rosário Matos Bernardo © 28
7. Selecione Adicionar (Add) para introduzir outra restrição. Deve
proceder desta forma, até ter todas as restrições introduzidas. No
fim, clique em OK para voltar à caixa de diálogo do Solver (Solver).
8. Escolha o Método de Resolução (Solving Method) LP Simplex
(Simplex LP).
Maria do Rosário Matos Bernardo © 29
2016 Maria do Rosário Matos Bernardo © 30
9. Escolha a opção Resolver (Solve) para o Solver (Solver)
encontrar a solução.
10. Selecione a opção OK da caixa de diálogo:
2016 Maria do Rosário Matos Bernardo © 31
11. A solução ótima do problema irá surgir na folha de cálculo.
Temos uma solução ótima única:
Como podemos verificar, a solução ótima encontrada pelo solver
coincide com a solução da resolução gráfica, ou seja, a solução ótima
deste problema de maximização consiste em produzir 46 saias e 30
pares de calças, com uma receita total de 2740 euros.
2016 Maria do Rosário Matos Bernardo © 32
4ª parte:
Excel – Solver
• Análise de sensibilidade
(por favor passe para a apresentação seguinte)
2016 Maria do Rosário Matos Bernardo © 33