Você está na página 1de 16

Pesquisa Operacional

EPR 705

Soluções de problemas de PL e
Programação inteira

Prof. Drª. Josiane Palma Lima

Alguns Softwares Existentes

 Solver (Excel)  QM for windows


 Matlab  DS for windows
 LINDO  Linprog
 LINGO  Etc

Pesquisa Operacional- Prof. Dr. Josiane Palma Lima

1
SOLVER (Excel)
 O Microsoft Excel Solver usam o método simplex com
limites sobre as variáveis e o método de desvio e limite,
implementado por John Watson e Dan Fylstra, da Frontline
Systems, Inc. para os problemas lineares e inteiros
 Usa o código de otimização não linear Generalized
Reduced Gradient (GRG2), desenvolvido por Leon Lasdon,
da University of Texas em Austin, e Allan Waren, da
Cleveland State University;

Pesquisa Operacional- Prof. Dr. Josiane Palma Lima

SOLVER (Excel)
Ativando o Solver no Excel

4
Pesquisa Operacional- Prof. Dr. Josiane Palma Lima

2
SOLVER (Excel)
 O solver está habilitado em dados“dados”

 A formulação matemática já pode


ser esquematizada no excel

Pesquisa Operacional- Prof. Dr. Josiane Palma Lima

SOLVER (Excel)

 Ex.: O problema do Giapetto

Pesquisa Operacional- Prof. Dr. Josiane Palma Lima

3
SOLVER (Excel)

1º Escrever as
fórmulas de cálculo

 Três células recebem as formulações das restrições (G8, G9, G10) e


uma recebe a equação para o cálculo da função objetivo (H12)
 Duas células são reservadas para receber a solução ótima X1 e X2
(D12 e D13)

7
Pesquisa Operacional- Prof. Dr. Josiane Palma Lima

SOLVER (Excel)

1º Selecionar
células das variáveis
x1 e x2
2º Acrescentar as
restrições

3º LP Simplex

Pesquisa Operacional- Prof. Dr. Josiane Palma Lima

4
SOLVER (Excel)

Pesquisa Operacional- Prof. Dr. Josiane Palma Lima

Exercício 1 : determinar a solução ótima


 Resolva pelo Solver
a)
Max Z = X1 + 2X2
Sujeito a:
3X1 + 4X2 ≤ 24
5X1 + 2X2 ≤ 20
b)
Max Z = 3X1+ 2X2
Sujeito a:
X1 + X2 ≤ 6
5X1 + 2X2 ≤ 20

Pesquisa Operacional- Prof. Dr. Josiane Palma Lima

5
Exercício 2 : determinar a solução ótima

Max Z = 160 X1 + 100 X2 + 90 X3


Sujeito a:
10 X1 + 6 X2 + 4 X3  1500 recurso horas de mão de obra)
20 X1 + 16 X2 + 8 X3  2500 (recurso horas de máquina)
10 X1 + 8 X2 + 5 X3  1600 (recurso matéria prima em Kg)
X1  100 (recurso demanda de P1)
X2  100 (recurso demanda de P2)
X3  100 (recurso demanda de P3)

Pesquisa Operacional- Prof. Dr. Josiane Palma Lima

Exercício 3 : determinar a solução ótima

Max Z = 60X1 + 35X2 + 20X3


Sujeito a:
8X1 + 6X2 + X3  48 (restrição de mogno)
4X1 + 2X2 + 1.5X3  20 (restrição de acabamento)
2X1 + 1.5X2 + 0.5X3  8 (restrição de carpintaria)
X2  5 (limitação de demanda de mesas)
X1, X2, X3  0

Pesquisa Operacional- Prof. Dr. Josiane Palma Lima

6
Programação Inteira

Programação Inteira
 Seja a formulação

MAX Z = 20X1 + 10X2


Sujeito a:
X1 + 0,45 X2  5
X1 + 1,70 X2  12
X1, X2  0

O que fazer quando precisar de valores inteiros,


tais como quantidade de material, número de
funcionários, etc.?
Z = 105,60
O arredondamento pode não levar a uma
X1 = 2,48
solução viável.
X2 = 5,60

Pesquisa Operacional- Prof. Dr. Josiane Palma Lima

7
Programação Inteira

X1 = 2,48
X2 = 5,6
Região de solução

12

X1 = 3 Fora da
10
Região
8
X2 = 6 de
solução Restrição 1
6
X2

Restrição 2

0
0 2 4 6 8 10 12 14
X1

15
Pesquisa Operacional- Prof. Dr. Josiane Palma Lima

Observações
 O problema resolvido através da técnica de Programação Inteira,
pode levar a resultados bastante diferentes do arredondamento.
 Se o resultado implicar em valores grandes, o arredondamento
normalmente pode ser utilizado;
 A Programação Inteira possui uma técnica particular de solução,
chamada de “Algoritimo Branch and Bound”, que se baseia na
montagem de um diagrama tipo árvore, em que cada ramo é
uma opção de solução inteira;
 Apenas alguns ramos são testados e para cada tentativa, o
Método Simplex é utilizado.
 O computador é indispensável!

Pesquisa Operacional- Prof. Dr. Josiane Palma Lima

8
Exemplo - Programação Inteira

 Max Z = 4X1 + 3X2


Sujeito a:
5X1+3X2 ≤ 22
2X1+2X2 ≤ 11
X1;X2 ≥ 0
X1; X2 são inteiros

Soluções Viáveis

Pesquisa Operacional- Prof. Dr. Josiane Palma Lima

AlgoritimoBranchand Bound
 Ex. problema com 3 variáveis:
Nós: Subproblemas
Arcos: Novas restrições a
serem adicionadas ao
modelo

Para cada S,
uma nova
restrição é
adicionada
Para S6, foram
adicionadas as
restrições x1=1
e x2=1

Solução S0 se refere ao problema original relaxado


A árvore contém todas as soluções candidatas
Pesquisa Operacional- Prof. Dr. Josiane Palma Lima

9
Tipos de programação inteira
 Programa puro de inteiros
– Se todas as variáveis devem ser inteiras

 Programa binário de inteiros ou programa de inteiros


0-1
– Se todas as variáveis devem ter valor 0 ou 1

 Programação inteira mista (PIM)


– Se algumas variáveis forem contínuas e outras
discretas (inteiras)

Pesquisa Operacional- Prof. Dr. Josiane Palma Lima

Programação Inteira no Solver

20
Pesquisa Operacional- Prof. Dr. Josiane Palma Lima

10
Exercício 4 - Programação Inteira
 Resolver a formulação a
seguir pelo Solver. Problema de Designação de Pessoas
Inicialmente, resolver Min Z = X1 + X2 + X3 + X4 + X5 + X6 + X7
arredondando as
sujeito a:
respostas. A seguir,
X1 + X4 + X5 + X6 + X7  17 (SEG)
resolver através da
programação inteira. X1 + X2 + X5 + X6 + X7  13 (TER)
Comparar os resultados X1 + X2 + X3 + X6 + X7  15 (QUAR)
X1 + X2 + X3 + X4 + X7  19 (QUIN)
X1 + X2 + X3 + X4 + X5  14 (SEX)
X2 + X3 + X4 + X5 + X6  16 (SAB)
X3 + X4 + X5 + X6 + X7  11 (DOM)
Xi  0 (i = 1; 2;....; 7)

Pesquisa Operacional- Prof. Dr. Josiane Palma Lima

Exercício 5 - Programação Binária


 Um alpinista deseja escolher quais objetos carregar na mochila, sendo que
será carregado apenas um objeto de cada, entre os escolhidos. Para cada
possível objeto o alpinista atribui uma nota em função de sua utilidade,
conforme mostra a Tabela. Os pesos de cada objeto também estão na Tabela.
O peso máximo que o alpinista pode carregar é de 5 kg. Modelar e achar a
solução para o problema da mochila.

nota

Pesquisa Operacional- Prof. Dr. Josiane Palma Lima

11
Exercício 5 (cont.)
 Variáveis de decisão:
– Xj: Objetos que serão selecionados
• Terá valor 1 se o objeto j (1 a 9) estiver na mochila
• Terá valor 0 se o objeto j não for selecionado
 Função objetivo:
– Maximizar a utilidade total de mochila
Max z = 6x1+7x2+3x3+2x4+9x5+5x6+2x7+10x8+6x9
 Restrições:
– O peso total dos objetos não pode ultrapassar 5 kg
200x1+400x2+400x3+100x4+1000x5+200x6+30x7+3000x8+500x9 ≤ 5000
– As variáveis Xj são binárias:
Xj ϵ {0,1}, j = 1,2,..,9

Pesquisa Operacional- Prof. Dr. Josiane Palma Lima

LINDO
 Linear, Interactive and Discrete Optimizer
 Software desenvolvido pela Lindo Systems Inc. de Chicago
Illinois, EUA
 Site da Web: http://www.lindo.com
 Resolve modelos de programação linear, quadrática ou
inteira

Pesquisa Operacional- Prof. Dr. Josiane Palma Lima

12
LINDO

Pesquisa Operacional- Prof. Dr. Josiane Palma Lima

LINDO
 Problema do Giapetto
– Na tela de desenvolvimento digita-se os valores da
seguinte maneira INICIALIZA A RESOLUÇÃO DO PROBLEMA

Pesquisa Operacional- Prof. Dr. Josiane Palma Lima

13
LINDO
– Tela com os resultados do modelo

Pesquisa Operacional- Prof. Dr. Josiane Palma Lima

LINDO – Algumas considerações

 Todo modelo desenvolvido no software LINDO deve começar com


a função de maximização (MAX) ou minimização (MIN), depois
deve apresentar as letras ST (Subject To) seguidas das restrições e
deve terminar com a palavra END.
 As variáveis criadas não podem conter mais de oito caracteres,
não pode conter traços e não podem começar por números. O
software também não aceita parênteses ou qualquer outro sinal,
as operações são ordenadas da esquerda pra direita.
 O LINDO reconhece somente cinco operadores: mais (+), menos (-),
maior do que (>), menor do que (<) e igual (=). O LINDO
automaticamente considera (>) como maior ou igual e (<) menor
ou igual, mas mesmo assim é possível utilizar (>=) e (<=).

Pesquisa Operacional- Prof. Dr. Josiane Palma Lima

14
Programação Inteira/Binária no LINDO

GIN >>> General


Integer

 GIN 2: todas as variáveis com valores inteiros


 GIN X1: X1 inteiro e X2 qualquer
 Se tiver 7 variáveis: GIN 7: todas inteiras
GIN 5: as primeiras 5 inteiras
 Programação Binária: INTEGER X1; INTEGER X2
INTEGER 7 : se todas as 7 variáveis forem binárias (0 ou 1) 29

Exemplo Exercício 4 – Programação inteira

Pesquisa Operacional- Prof. Dr. Josiane Palma Lima

15
Exemplo Exercício 5 – Programação binária

Pesquisa Operacional- Prof. Dr. Josiane Palma Lima

16

Você também pode gostar