Você está na página 1de 45

Introdução à

Pesquisa Operacional

Prof. Edson Luiz França Senne

Aula 1
Introdução

Instituto de Ciência e Tecnologia


UNIFESP
2021
•  Pesquisa Operacional: Área do conhecimento
que aplica métodos científicos para que as
melhores decisões possam ser tomadas.
•  Por que um tomador de decisão nem sempre
consegue concluir sobre qual é a melhor decisão?
•  Porque, nem sempre é possível analisar todos os
cenários em um intervalo de tempo razoável.

Exemplo:
Imagine que um vendedor precisa visitar várias
cidades. Todas as cidades devem ser visitadas (não
existe uma ordem predefinida). O vendedor deve
escolher uma cidade para iniciar a visita e, depois
de visitar todas as cidades, deve voltar para a
cidade de origem.
2
•  Vamos pegar as cidades com campus da UNESP.

•  São 23 cidades. Quantas rotas são possíveis?


23! = 25.852.016.738.884.976.640.000 = 2,58 x 1022
3
•  Uma forma de determinar a melhor rota é obter
cada uma das rotas possíveis e comparar todas
essas rotas.
•  Vamos supor que um computador seja capaz de
obter cada rota possível e fazer a comparação em
10-13 segundos (0,0000000000001 s/rota).
•  Quanto tempo este computador vai gastar para
verificar todas as rotas possíveis?
•  Rotas possíveis: 23! = 2,58 x 1022
•  Tempo = (2,58 x 1022 rotas)(10-13 s/rota)
= 2,58 x 109 s
= (2,58 x 109 s)/(3600 x 24 x 365)
81 anos!
4
•  Imagine que uma oficina de carpintaria precisa
cortar itens de diferentes tamanhos a partir de
vigas de madeira de tamanho padronizado.

•  Qual é a melhor maneira de cortar os itens?


5
•  Imagine que o prefeito de SJC decidiu construir 3
centros de atendimento médico na cidade.

•  Quais são os melhores locais para os centros?


6
•  Imagine uma máquina na qual
Tarefa Ferramentas
diversas tarefas devem ser
1 1, 4
processadas. Cada tarefa requer
2 1, 3, 5
um conjunto específico de
3 2, 4
ferramentas para ser processada
4 3, 4
e a máquina tem capacidade
5 1, 5
para armazenar apenas 3
ferramentas.
•  Qual sequência de processamento das tarefas
resulta no menor número de trocas de ferramentas?

1 2 3 4 5
5 trocas
1 4 1 3 5 2 3 4 2 3 4 1 3 5

2 5 1 4 3
2 trocas
1 3 5 1 3 5 1 3 4 1 3 4 1 2 4
7
•  Qual é a melhor rota para o vendedor?
•  Qual é a melhor maneira de cortar os itens de
madeira?
•  Quais são os melhores locais para os centros de
atendimento?
•  Qual é a melhor sequência de processamento das
tarefas na máquina flexível de manufatura?

O que estes problemas têm em comum?


São problemas de otimização!

•  Estes são problemas de Otimização Combinatória


porque o número de soluções possíveis é finito e
pode ser obtido por um cálculo combinatório
simples.
8
•  O problema de encontrar a melhor rota é
conhecido como Problema do Caixeiro Viajante.
•  Para 25 cidades, qual seria o tempo de solução?
•  Tempo = (25! rotas)(10-13 s/rota)
= (1,55 x 1025 rotas)(10-13 s/rota)
= (1,55 x 1012 s)/(3600 x 24 x 365 x 1000)
49 milênios!
•  Ou seja, um pequeno aumento no tamanho do
problema implica em um aumento enorme no
tempo de solução.
•  Este problema ilustra muito bem a dificuldade em
encontrar a melhor solução por um processo
enumerativo.
9
•  Por que é difícil resolver um problema de
otimização?
•  Porque o número de soluções possíveis pode ser
muito grande. Certo?
Não é bem assim!

•  Imagine o seguinte y x=5


problema: Quais
são os valores de x
e y que satisfazem: 5

x≤5
x + 2y = 10
x + 2y ≤ 10
x
x, y ≥ 0 0 5 10

Qual é o número de
soluções possíveis? Infinito!
10
•  Num problema de otimização, precisamos definir o
critério de "melhor solução".
•  Vamos adotar o critério: max (x + y)
•  Solução ótima: x = 5, y = 2.5
y

5
solução ótima

x
0 5 10

•  Por que é difícil resolver um problema de otimização?


•  É difícil se para determinar a melhor solução for preciso
enumerar as soluções possíveis, o que pode ser
proibitivo!
11
Um algoritmo de enumeração implícita

•  A idéia é enumerar inteligentemente as soluções


possíveis do problema.
•  Considere, por exemplo, o
A B C D
problema do caixeiro viajante:
A 0 8 6 25
A B 8 0 18 5
C 6 18 0 4
8 6 25
D 25 5 4 0
B C D
26 13 24 10
C D B D
Rota: A-C-D-B-A
17 15
C B
Dos 22 nós possíveis
23 23 da árvore, apenas 12
A A
foram explorados.
12
Pesquisa Operacional e Tecnologias da Informação

•  A Pesquisa Operacional pode ser vista tanto como


uma ciência e quanto como uma tecnologia (da
decisão).
•  Como ciência: uso do método científico (construção
de modelos matemáticos) para adquirir
conhecimento sobre um objeto de estudo.
•  Como tecnologia: uso de ferramentas
computacionais para coletar, organizar e comunicar
dados, gerar e otimizar modelos e reportar
resultados.
•  Sistemas de apoio à decisão.
13
Problema de máxima cobertura

14
•  A Pesquisa Operacional envolve muitas áreas e
métodos de solução:
•  Programação Linear
•  Programação Não-Linear
•  Otimização Discreta
•  Otimização em Redes
•  Métodos Heurísticos
•  Metaheurísticas
•  Programação Dinâmica
•  Otimização Multiobjetivo
•  Programação Estocástica
•  Simulação
•  Teoria das Filas
•  Teoria dos Jogos
•  Ciência de Dados e Otimização
15
Pesquisa Operacional
"The science of better" (INFORMS)
Institute for Operations Research and the Management Sciences

16
Tomada de decisão
•  Muitas vezes, as decisões são tomadas com base
na experiência ou na intuição.
•  Que rota tomar?
•  Como cortar as peças de madeira?
•  Onde instalar os centros de atendimento?
•  Como executar um conjunto de tarefas?
•  Um problema simples de decisão
Numa cidade com 5 crianças:

onde instalar uma escola de modo que as


crianças andem a menor distância possível?
17
Resposta: Meio: 50+49+48+49+50 = 246
Melhor: 2+1+0+97+98 = 198

•  Nem sempre a intuição basta.


•  Por isso recorremos a métodos matemáticos.
Intuição/Experiência
Solução

Problema
Solução
Construção de modelo Melhor
Solução do modelo
Validação do modelo
Implementação da solução

•  Depende do objetivo. No caso: Min ∑ dj


j∈N
18
•  Pode haver mais de uma maneira de se olhar para
o mesmo problema.
•  Função-objetivo:
•  Minimizar a soma das distâncias caminhadas por
todas as crianças.
•  Minimizar a distância caminhada pela criança que
mais anda.
•  Minimizar a diferença entre as distâncias
caminhadas pelas crianças.
•  Minimizar o número de crianças que andam mais
do que uma certa distância.
•  Problemas multiobjetivos
•  Combinação de objetivos
•  Objetivos conflitantes
19
Origens
•  Inglaterra
•  (1938): Estudo sobre técnicas operacionais em
experimentos com radar (desenvolvido em 1934)
para a localização de aviões.
•  (1941): Operações de guerra (manutenção de
aviões, melhor escolha de aviões, destruição de
submarinos).
•  EUA
•  (1947): Projeto do Pentágono para apoio às
decisões da força aérea (Dantzig participou do
projeto e inventou o método simplex).
•  (1952): Criação da ORSA - Operations Research
Society of America.
20
•  (1953): Criação da ORS - Operations Research
Society (Inglaterra) e TIMS - The Institute of
Management Science (EUA).
•  (1957): Primeira conferência internacional de PO em
Oxford (Inglaterra).
•  (1968): Primeiro simpósio brasileiro de PO no ITA e
criação da SOBRAPO.
•  Atualmente
•  INFORMS (Institute for Operations Research and the
Management Sciences).
•  EURO (The Association of European Operational
Research Societies).
•  ALIO (Associación Latino-Ibero-Americana de
Investigación Operativa).
•  IFORS (International Federation of Operational
Research Societies). 21
Modelos
•  Modelo: estrutura construída com o objetivo de
exibir, demonstrar, reproduzir determinadas
características de um objeto real.

Max (x + y)
x≤5
x + 2y ≤ 10
x, y ≥ 0

•  Modelos podem ser concretos ou abstratos.


•  Por que modelos são importantes?
•  Maior entendimento do objeto
•  Facilidade de experimentação
•  Possibilidade de análises
22
Modelos Matemáticos
•  A PO é um enfoque (científico e tecnológico) para a
tomada de decisões.
•  O enfoque consiste em representar um problema
real por meio de um modelo matemático: uma
simplificação (abstração) do problema real.
•  O modelo deve ser tratável por métodos de
resolução e a solução do modelo deve ser coerente
com o problema real.
Formulação
(modelagem)
Problema real Modelo matemático
Resolução
Avaliação (métodos e
algoritmos)
Interpretação
Decisões Conclusões do modelo
23
O processo de modelagem
•  Ciência e arte: 1. Definição do problema
2. Construção do modelo
•  técnicas matemáticas [3]
3. Solução do modelo
•  criatividade, experiência, 4. Validação do modelo
julgamento [1, 2, 4, 5] 5. Implementação da solução

1.  Alternativas de decisão? Objetivo? Limitações?


2.  Traduzir a definição do problema em relações
matemáticas.
3.  Métodos e algoritmos de otimização.
4.  A solução faz sentido? Os resultados são
aceitáveis? E a qualidade dos dados? A
modelagem precisa ser revista?
5.  Instruções operacionais para as pessoas que
administram o problema. A palavra final é do
tomador de decisão.
24
•  Problema da Dieta: Sabendo que cada alimento
tem um dado custo e uma dada quantidade de
nutrientes, determinar a dieta de menor custo que
atende a todas as necessidades nutricionais.
Alimento
Nutriente 1 2 3 Mínimo Quais são as decisões?
A 2 3 7 10
Que restrições limitam
B 4 2 1 15 as decisões?
C 1 8 1 10
Quais são os objetivos?
D 3 1 1 8
Custo/Kg 20 10 16

•  As decisões definem as variáveis do modelo.


•  Seja: xi = quantidade do alimento i na dieta
•  Precisamos escrever as restrições e objetivos em
função das variáveis escolhidas para o modelo.
25
Alimento
Nutriente 1 2 3 Mínimo
A 2 3 7 10
B 4 2 1 15
C 1 8 1 10
D 3 1 1 8 Restrições
Custo/Kg 20 10 16 do modelo

2x1 + 3x2 + 7x3 ≥ 10


Restrições que garantem
4x1 + 2x2 + 1x3 ≥ 15 que a quantidade mínima
1x1 + 8x2 + 1x3 ≥ 10 dos nutrientes será
3x1 + 1x2 + 1x3 ≥ 8 obtida na dieta

Função-objetivo do modelo

Min 20x1 + 10x2 + 16x3 O objetivo é uma dieta


de menor custo possível.
26
Solução do Modelo

•  Em PO, muitas ferramentas podem ser usadas para


obter a solução de modelos matemáticos.
•  As soluções, geralmente, são obtidas por
algoritmos.
•  Em alguns casos, os algoritmos podem obter a
solução ótima (ou solução exata) do problema.
•  Algoritmos heurísticos obtém uma boa solução (ou
solução aproximada, que até pode ser, em alguns
casos, a solução ótima) do problema.
•  Linguagens de modelagem: AMPL, OPL, Mosel.
•  Otimizadores comerciais: CPLEX, Gurobi, Xpress,
LINDO, Excel Solver, Google Solver.
27
•  Resolvendo o modelo com o Google Solver:

28
•  Resolvendo o modelo com CPLEX:
1.  Escrever o modelo usando a notação algébrica e
salvar em arquivo com extensão .lp
2-dieta.lp

2.  Executar CPLEX


a)  read 2-dieta.lp
b)  opt
c)  display solution variables −
29
•  Resolvendo o modelo com CPLEX:

30
O problema das p-medianas
•  O problema consiste em localizar p centros em
uma rede com n clientes, de modo a minimizar a
soma das distâncias de cada cliente ao centro mais
próximo.
n=5 1 0 5 4 12 10
p=2 5 0 3 9 13
2 3 4 3 0 10 8
12 9 10 0 6
5
4 10 13 8 6 0

•  Quais são as decisões?


•  Que restrições limitam as decisões?
•  Quais são os objetivos?
31
•  Quais são as decisões?
•  Um determinado nó é um centro ou não?
•  A qual centro um determinado cliente está alocado?
•  As decisões definem as variáveis do modelo:
•  yj = 1 se j é um centro, senão: yj = 0
•  xij = 1 se i está alocado ao centro j, senão: xij = 0
•  i, j ∈ N = {1, ..., n}
•  Que restrições limitam as decisões?
•  O número de centros deve ser igual a p

•  Cada cliente deve ser alocado a apenas 1 centro
•  Os clientes só podem ser alocados a centros
•  Quais são os objetivos?
•  Minimizar a soma das distâncias dos clientes aos
centros
32
•  yj = 1, se j é um centro; yj = 0, caso contrário.
•  xij = 1, se i está alocado ao centro j; xij = 0, caso
contrário.
•  i, j ∈ N = {1, ..., n}

O número de centros deve ser ∑ yj =p


€ igual a p j∈N

Cada cliente deve ser alocado a ∑ x ij = 1 ∀ i ∈ N


apenas 1 centro j∈N

Os clientes só podem ser alocados x ≤ y ∀ i, j ∈ N
ij j
a centros

Minimizar a soma das distâncias Min ∑ ∑ dij x ij
dos clientes aos centros € i∈N j∈N

33
Formulação matemática
•  Problema das p-Medianas:
Min ∑ ∑ dij xij Função-objetivo
i∈N j∈N

∑ yj = p
j∈N

∑ xij = 1 ∀ i∈ N
j∈N Restrições
xij ≤ yj ∀ i, j ∈ N
xij , yj ∈ {0,1} ∀ i, j ∈ N

34
•  Resolvendo o modelo com Xpress (Mosel)

35
36
Planejamento de lotes de produção
•  Produção de um item final (item A) que tem como
componente o item B. Cada unidade do item A
requer 1 unidade do item B.
•  Estoque inicial dos itens: 0
•  Horizonte de planejamento: 4 semanas
•  Horas disponíveis por semana: 80
•  A demanda semanal do item A deve ser atendida.
•  Custo total de produção compreende:
•  Custo fixo e custo variável (depende da
quantidade produzida)
•  Custo de estoque
•  Decisão: Quanto produzir de cada item em cada
semana para minimizar o custo total.
37
•  Dados do problema:
j dj Kj
i ei Si ci ai 1 30 80
2 25 80
1 25 900 1 1
3 25 80
2 10 850 1 1 4 20 80

•  dj = demanda do item 1 no período j


•  Kj = capacidade (horas) no período j
•  ei = custo unitário de estoque do item i
•  Si = custo fixo de produção do item i
•  ci = custo unitário de produção do item i
•  ai = tempo (h) para produzir uma unidade do item i

•  Vamos resolver o problema usando uma heurística:


achar uma solução para cada item isoladamente.
38
•  Inicialmente: produzir exatamente o que for
necessário a cada período.
Item Período 1 2 3 4 Notar que esta é
Demanda 30 25 25 20 uma solução
1 factível, pois
Produção 30 25 25 20
atende a
Estoque 0 0 0 0 capacidade de
Demanda 30 25 25 20 produção em
2 Producao 30 25 25 20 cada período
Estoque 0 0 0 0 (80).

Custo = (3600 + 100 + 0) + (3400 + 100 + 0) = 7200

•  Qual é o problema desta solução?


•  Os custos fixos!
•  Ideia: antecipar a produção de alguns períodos.
39
•  Iteração 1:
Item Período 1 2 3 4 Solução não
Demanda 30 25 25 20 factível: o plano
1 excede a
Produção 55 0 45 0
capacidade (80)
Estoque 25 0 20 0 nos períodos 1
Demanda 55 0 45 0 (110) e 3 (90).
2 Producao 55 0 45 0
Estoque 25 0 20 0

•  Iteração 2:
Item Período 1 2 3 4 A solução
Demanda 30 25 25 20 melhora mas
1 continua não
Produção 30 25 45 0
factível: a
Estoque 0 0 20 0 capacidade (80)
Demanda 30 25 45 0 é excedida no
2 Producao 50 5 45 0 período 3 (90).
Estoque 20 0 0 0

40
•  Iteração 3:
Item Período 1 2 3 4 Tem-se uma
Demanda 30 25 25 20 solução factível.
1 Produção 30 25 45 0
Estoque 0 0 20 0
Demanda 30 25 45 0
2 Producao 50 50 0 0
Estoque 20 45 0 0

Custo = (2700 + 100 + 500) + (1700 + 100 + 650) = 5750

•  Solução ótima:
Item Período 1 2 3 4 Custo da
Demanda 30 25 25 20 solução: 5700.
1 Produção 30 25 45 0
Estoque 0 0 20 0
Demanda 30 25 45 0
2 Producao 45 55 0 0
Estoque 15 45 0 0
41
Formulação matemática do problema
•  Sejam as variáveis de decisão:
•  xij = quantidade do item i produzida no período j
•  Iij = estoque do item i no final do período j
⎧⎪S + c x se x > 0
•  Custo de produção: Cij = ⎨ i i ij ij

⎪⎩0 se x ij = 0
Min ∑ ∑ Cij + eiIij
Função-objetivo
i j

I1j =€I1,j−1 + x1j − dj ∀j


I2j = I2,j−1 + x 2j − x1j ∀j
Restrições
a1x1j + a2 x 2j ≤ 80 ∀j
x ij ≥ 0, Iij ≥ 0 ∀ i, j
42
•  Como tratar a variável (condicional) Cij?
•  Uma ideia: usar uma variável binária yij tal que:
•  se xij = 0, então yij = 0
•  se xij > 0, então yij = 1
•  Com isso, a variável de custo passa a ser:
Cij = Siyij + cixij
•  Mas, como garantir que as condições para yij sejam
sempre respeitadas?
•  Incluindo uma nova restrição:
xij ≤ Myij onde M é uma constante bem grande.
Note que para xij = 0, a restrição vai estar satisfeita com yij = 0 ou
com yij = 1. Mas como deseja-se minimizar o custo Cij, a opção
yij = 0 será sempre a escolhida.
•  Quais são as implicações desta ideia?
•  O modelo fica maior (uma variável e uma restrição a
mais) e mais difícil de ser resolvido. 43
•  Resolvendo o modelo com AMPL:

44
•  Dados do modelo:

Com AMPL pode-se


escolher o solver:
CPLEX, Gurobi, IlogCP,
Xpress, dentre outros.

Pode-se usar o NEOS-Server:


https://neos-server.org/neos/
Basta fornecer o arquivo com o
modelo AMPL e o arquivo de
dados. O resultado vem por email.

45

Você também pode gostar