Você está na página 1de 33

ENG1537 – Pesquisa Operacional I

Aula 01

Prof. Silvio Hamacher / Prof. Rafael Martinelli


martinelli@puc-rio.br
Departamento de Engenharia Industrial - PUC-Rio
Nosso curso
▪ Estruturado em 27 aulas + 3 avaliações
▪ G1 e G2 obrigatórias
▪ GF - reposição e/ou recuperação

▪ Conteúdo Planejado:
▪ Introdução e Método Gráfico
▪ Método Gráfico
▪ Método Simplex

ENG1537 - Pesquisa Operacional I


▪ Análise de Sensibilidade
▪ Duas Fases
▪ Avaliação 1
▪ Programação Inteira
▪ Branch & Bound
▪ Modelagem
▪ Dualidade
▪ Problema de Transportes
2
▪ Avaliação 2
Nosso curso

▪ Critério para Aprovação:

ENG1537 - Pesquisa Operacional I


▪ (G1 + G2)/2 ≥ 6 E G1 ≥ 3 E G2 ≥ 3
▪ Caso não atenda ➔ GF
▪ Senão MF = (G1 + G2 + 2GF) / 4.

3
Introdução
O que é Pesquisa Operacional (PO)?
▪ “A Pesquisa Operacional é uma ciência aplicada voltada para a resolução
de problemas reais. Tendo como foco a tomada de decisões, aplica
conceitos e métodos de outras áreas científicas para concepção,
planejamento ou operação de sistemas para atingir seus objetivos. ”
(SOBRAPO)

ENG1537 - Pesquisa Operacional I


▪ “A Investigação Operacional (IO) ou Pesquisa operacional (PO), é um ramo
interdisciplinar da matemática aplicada que faz uso de modelos
matemáticos, estatísticos e de algoritmos na ajuda à tomada de decisões.
É usada sobretudo para analisar sistemas complexos do mundo real,
tipicamente com o objetivo de melhorar ou otimizar a performance.”
(Wikipedia)

▪ “A scientific method of providing executive departments with a


quantitative basis for decisions regarding the operations under their
control." 4
(UK Ministry of Defence)
Introdução
▪ E qual é a finalidade prática da PO?

▪ Aplicação prática: utilização de argumentos


fundamentados em métodos analíticos (matemáticos, no
nosso caso) que permitam a otimização do
desempenho de determinado sistema, dada uma unidade

ENG1537 - Pesquisa Operacional I


mensurável de performance.

▪ Alguns exemplos de unidades mensuráveis de


performance:
▪ $$$ - Custos operacionais, logísticos, estoques.
▪ $$$ - Receitas, lucros, expansão de mercado.
▪ $$$... 5
Introdução
▪ A PO compreende uma larga gama de técnicas:
▪ Programação matemática;
▪ Teoria de filas;
▪ Cadeias de Markov;
▪ Métodos Estatísticos;
▪ Teoria de jogos;

ENG1537 - Pesquisa Operacional I


▪ Teoria de grafos;
▪ Heurísticas e Meta-heurísticas;
▪ ...

6
Introdução
▪ A PO compreende uma larga gama de técnicas:
▪ Programação matemática;
▪ Teoria de filas;
▪ Cadeias de Markov;
▪ Métodos Estatísticos;
▪ Teoria de jogos;

ENG1537 - Pesquisa Operacional I


▪ Teoria de grafos;
▪ Heurísticas e Meta-heurísticas;
▪ ...

▪ O objetivo deste curso é abordar uma destas


metodologias, conhecida como programação
7
matemática... E ainda assim, uma parte particular dela.
Um pouco de história...
▪ 1939-1945: Durante a 2a Guerra Mundial, as
gerências militares britânica e americana
empregaram uma abordagem científica para
tratamento de problemas de gerenciamento de
recursos escassos (radares, tropas, munição,
remédios etc.), de forma eficaz.
▪ British Military Applications: Foi utilizado o

ENG1537 - Pesquisa Operacional I


termo "operational research".
▪ Problemas típicos:
▪ Como usar radares? (Áreas de cobertura)
▪ Tamanho e roteamento dos comboios;
▪ Gerenciamento da produção e distribuição de
armamentos e munições;
▪ Coleta e distribuição de correspondência;
▪ Scheduling (escala);
8
▪ ...
Um pouco de história...
▪ 1947: Início do interesse das indústrias na
utilização das técnicas desenvolvidas na
área militar, para auxiliar no planejamento
e controle da produção.

▪ A maioria desses problemas é formulada

ENG1537 - Pesquisa Operacional I


através de modelos matemáticos lineares.

▪ 1949: George B. Dantzig apresenta o


Método Simplex para resolver problemas
de otimização linear (equações e (ou)
George Dantzig
inequações lineares) enquanto trabalhava 1914 - 2005
como Consultor em Matemática no
controle da força aérea americana. 9
Programação Matemática
▪ Logo, o termo Programação Matemática passou a ser
aplicado para a técnica de formulação de problemas reais
usando equações (e/ou inequações matemáticas)
▪ O termo Programação vinha também da área militar, pois
era o jargão para a realização de procedimentos de
planejamento e escalonamento de treinamento,
suprimento logístico e alocação de tropas.

ENG1537 - Pesquisa Operacional I


▪ O salto foi enorme: o que antes tomava dias para ser
preparado (e sujeito a erros!) agora era feito por
computadores em algumas poucas horas (ou menos) e de
forma ótima.

10
Programação Matemática
▪ O método Simplex desenvolvido por Dantzig é específico para um
tipo particular de programa matemáticos: os problemas lineares;
▪ Felizmente, a maior parte dos problemas encontrados no
mundo real podem ser, de alguma forma, simplificados de
forma a serem MODELADOS como problemas lineares.

▪ Classes de problemas:

ENG1537 - Pesquisa Operacional I


▪ Lineares Contínuos;

▪ Lineares Inteiros-Mistos;

▪ Não-Lineares Contínuos;

▪ Não-Lineares Inteiros-Mistos; 11
Programação Matemática
▪ O método Simplex desenvolvido por Dantzig é específico para um
tipo particular de programa matemáticos: os problemas lineares;
▪ Felizmente, a maior parte dos problemas encontrados no
mundo real podem ser, de alguma forma, simplificados de
forma a serem MODELADOS como problemas lineares.

▪ Classes de problemas:

ENG1537 - Pesquisa Operacional I


▪ Lineares Contínuos;

▪ Lineares Inteiros-Mistos;

▪ Não-Lineares Contínuos;

▪ Não-Lineares Inteiros-Mistos; 12
Programação Matemática
▪ O método Simplex desenvolvido por Dantzig é específico para um
tipo particular de programa matemáticos: os problemas lineares;
▪ Felizmente, a maior parte dos problemas encontrados no
mundo real podem ser, de alguma forma, simplificados de
forma a serem MODELADOS como problemas lineares.

▪ Classes de problemas:

ENG1537 - Pesquisa Operacional I


▪ Lineares Contínuos;

▪ Lineares Inteiros-Mistos;

▪ Não-Lineares Contínuos;

▪ Não-Lineares Inteiros-Mistos; 13
Programação Matemática
▪ O método Simplex desenvolvido por Dantzig é específico para um
tipo particular de programa matemáticos: os problemas lineares;
▪ Felizmente, a maior parte dos problemas encontrados no
mundo real podem ser, de alguma forma, simplificados de
forma a serem MODELADOS como problemas lineares.

▪ Classes de problemas:

ENG1537 - Pesquisa Operacional I


▪ Lineares Contínuos;

▪ Lineares Inteiros-Mistos;

▪ Não-Lineares Contínuos;

▪ Não-Lineares Inteiros-Mistos; 14
Programação Matemática
▪ O método Simplex desenvolvido por Dantzig é específico para um
tipo particular de programa matemáticos: os problemas lineares;
▪ Felizmente, a maior parte dos problemas encontrados no
mundo real podem ser, de alguma forma, simplificados de
forma a serem MODELADOS como problemas lineares.

▪ Classes de problemas:

ENG1537 - Pesquisa Operacional I


▪ Lineares Contínuos;

▪ Lineares Inteiros-Mistos;

▪ Não-Lineares Contínuos;

▪ Não-Lineares Inteiros-Mistos; 15
Programação Matemática
▪ O método Simplex desenvolvido por Dantzig é específico para um
tipo particular de programa matemáticos: os problemas lineares;
▪ Felizmente, a maior parte dos problemas encontrados no
mundo real podem ser, de alguma forma, simplificados de
forma a serem MODELADOS como problemas lineares.

▪ Classes de problemas:

ENG1537 - Pesquisa Operacional I


▪ Lineares Contínuos;
Escopo deste curso!
▪ Lineares Inteiros-Mistos;

▪ Não-Lineares Contínuos;

▪ Não-Lineares Inteiros-Mistos; 16
Modelos de Programação Matemática
▪ O que é um modelo matemático?
▪ Representação simplificada e controlada de um
fenômeno ou processo que se busca estudar.
Hipóteses Métodos de
Simplificadoras Solução

ENG1537 - Pesquisa Operacional I


Solução do
Problema Modelo
Modelo
“Real” Matemático
Matemático

Validação do
Modelo
17
Solução
Aceitável
Modelos de Programação Matemática
▪ O que é um modelo matemático?
▪ Representação simplificada e controlada de um
fenômeno ou processo que se busca estudar.
Hipóteses Métodos de
Simplificadoras Solução

ENG1537 - Pesquisa Operacional I


Solução do
Problema Modelo
Modelo
“Real” Matemático
Matemático

Validação do
Modelo
18
Solução
Nosso curso
Aceitável
Modelos de Programação Matemática
▪ Passo-a-passo para a construção de um bom modelo
(bem, em teoria pelo menos)...
▪ Passo Fundamental: Ouvir aquele que lida com o
problema real.
▪ Passo 1: Descobrir quais são as informações
disponíveis (dados do problema).

ENG1537 - Pesquisa Operacional I


▪ Passo 2: Descobrir o que deve ser decidido
(variáveis do problema).
▪ Passo 3: Reproduzir as particularidades do
problema que levam a uma solução (equações) .

▪ Lembrem-se: Modelos matemáticos são perfeitos em seu


mundo onde os dados são perfeitos e as informações são
perfeitas... E SOMENTE! 19
Problemas de Otimização
▪ O que compõe um problema de otimização?
▪ Termos técnicos:
▪ Direção de otimização: Maximização ou minimização do
critério adotado;

▪ Função Objetivo: critério de avaliação, que nos permite

ENG1537 - Pesquisa Operacional I


dizer se uma dada solução para o problema em questão é
melhor ou pior que outra;

▪ Variáveis de decisão: representam os elementos que podem


assumir valores distintos e que, cada combinação destes,
representa uma possível solução para o problema;

▪ Restrições: representam a conjuntura do problema, e


20
devem portanto, serem respeitadas quando apresentada
uma solução;
Nosso primeiro problema de otimização
▪ “Um marceneiro produz mesas e cadeiras. Suas
mesas são vendidas a $1000, e suas cadeiras a
$500. Para a confecção das mesas e cadeiras são
utilizados 2 recursos: madeira e sua mão-de-
obra. O marceneiro leva 3h para fabricar 1 mesa
e 5h para fabricar uma cadeira. Cada mesa
consome 7 unidades de madeira e cada cadeira

ENG1537 - Pesquisa Operacional I


consome 4 unidades de madeira. O marceneiro
dispõe de 40h semanais de sua mão de obra e 60
unidades de madeira disponíveis.

▪ A pergunta: qual deve ser o plano de produção


(i.e., quantas mesas e cadeiras devem ser
produzidas) de forma a maximizar a receita do 21
marceneiro?
Nosso primeiro problema de otimização
▪ Passo 1: Descobrir quais são as informações
disponíveis (dados do problema).

▪ Passo 2: Descobrir o que deve ser decidido


(variáveis do problema).

ENG1537 - Pesquisa Operacional I


▪ Passo 3: Reproduzir as particularidades do
problema que levam a uma solução (equações) .

22
Nosso primeiro problema de otimização
▪ Passo 1: Descobrir quais são as informações
disponíveis (dados do problema).
▪ Receita por mesa e cadeira produzida ($1000 e
$500);
▪ Disponibilidade de recursos (40h de mdo e 60u de
madeira)

ENG1537 - Pesquisa Operacional I


▪ Requerimentos de produção: (3h e 7u para mesas e
5h e 4u)
▪ Passo 2: Descobrir o que deve ser decidido
(variáveis do problema).
▪ Quantas mesas (xm) e quantas cadeiras (xc)
produzir!
23
Nosso primeiro problema de otimização
▪ Passo 3: Reproduzir as particularidades do
problema que levam a uma solução (equações) .
▪ Receita do marceneiro: 𝑧 = 1000𝑥𝑚 + 500𝑥𝑐
▪ Restrição de mdo: 3𝑥𝑚 + 5𝑥𝑐 ≤ 40
▪ Restrição de madeira: 7𝑥𝑚 + 4𝑥𝑐 ≤ 60

ENG1537 - Pesquisa Operacional I


▪ Temos basicamente tudo que precisamos para montar
nosso programa matemático...

24
Nosso primeiro problema de otimização
▪ Formulação padrão do problema do marceneiro:
𝑀𝑎𝑥.𝑥𝑚 ,𝑥𝑐 𝑧 = 1000𝑥𝑚 + 500𝑥𝑐
𝑠. 𝑎 3𝑥𝑚 + 5𝑥𝑐 ≤ 40
7𝑥𝑚 + 4𝑥𝑐 ≤ 60
𝑥𝑚 ≥ 0, 𝑥𝑐 ≥ 0

ENG1537 - Pesquisa Operacional I


▪ Calma! Não vamos resolver ainda! Queremos
primeiro somente analisar a formulação!

25
Nosso primeiro problema de otimização
▪ Formulação padrão do problema do marceneiro:
𝑀𝑎𝑥.𝑥𝑚 ,𝑥𝑐 𝑧 = 1000𝑥𝑚 + 500𝑥𝑐
𝑠. 𝑎 3𝑥𝑚 + 5𝑥𝑐 ≤ 40
7𝑥𝑚 + 4𝑥𝑐 ≤ 60
𝑥𝑚 ≥ 0, 𝑥𝑐 ≥ 0

ENG1537 - Pesquisa Operacional I


▪ Reparem: nossas equações e inequações sempre serão
somas de parcelas. Nunca multiplicaremos variáveis
(de decisão) neste curso - modelos estritamente
lineares

Occam - “entia non sunt multiplicanda praeter


necessitatem” - coisas não devem ser multiplicadas
26
sem uma boa razão.
Nosso primeiro problema de otimização
▪ Formulação padrão do problema do marceneiro:
Variáveis de decisão

Função
𝑀𝑎𝑥.𝑥𝑚,𝑥𝑐 𝑧 = 1000𝑥𝑚 + 500𝑥𝑐 Objetivo
𝑠. 𝑎 3𝑥𝑚 + 5𝑥𝑐 ≤ 40
Direção da
otimização 7𝑥𝑚 + 4𝑥𝑐 ≤ 60 Restrições

ENG1537 - Pesquisa Operacional I


𝑥𝑚 ≥ 0, 𝑥𝑐 ≥ 0

▪ Alguns fatos curiosos... (hipóteses simplificadoras)


▪ Variáveis contínuas (1,7 mesas???)
▪ Negócio perfeito (não há custos de produção e todo
produzido é vendido)...
27
Nosso primeiro problema de otimização
▪ Formulação padrão do problema do marceneiro:
Variáveis de decisão

Função
𝑀𝑎𝑥.𝑥𝑚,𝑥𝑐 𝑧 = 1000𝑥𝑚 + 500𝑥𝑐 Objetivo
𝑠. 𝑎 3𝑥𝑚 + 5𝑥𝑐 ≤ 40
Direção da
otimização 7𝑥𝑚 + 4𝑥𝑐 ≤ 60 Restrições

ENG1537 - Pesquisa Operacional I


𝑥𝑚 ≥ 0, 𝑥𝑐 ≥ 0
▪ Ok. Agora que conseguimos um modelo que
representa o problema que estamos abordando, como
podemos resolvê-lo?
▪ Os métodos a serem utilizados serão assuntos das
próximas aulas.
28
Recapitulando o que vimos até aqui...
▪ Pesquisa operacional (PO) é uma disciplina que consiste
na aplicação de técnicas analíticas para o aprimoramento
da performance de processos;

▪ Programação matemática é uma das técnicas que são


utilizadas para atender aos objetivos da PO;

ENG1537 - Pesquisa Operacional I


▪ O termo programação vem da aplicação da técnica para
otimização de processos militares (jargão)

▪ Programação matemática pode ser contínua ou inteira-


mista e linear ou não-linear.
▪ Vamos estudar sempre o caso linear (sem produto de
variáveis - Navalha de Occam!)
29
▪ Programação não-linear inteira mista:
Recapitulando o que vimos até aqui...
▪ Definição de modelo matemático: representação
simplificada e controlada de um fenômeno ou processo que
se busca estudar.

Hipóteses Métodos de
Simplificadoras Solução

ENG1537 - Pesquisa Operacional I


Solução do
Problema Modelo
Modelo
“Real” Matemático
Matemático

Validação do
Modelo
30
Solução
Aceitável
Recapitulando o que vimos até aqui...
▪ Passo-a-passo para a construção de um bom modelo
(bem, em teoria pelo menos)...
▪ Passo Fundamental: Ouvir aquele que lida com o
problema real.
▪ Passo 1: (dados do problema).
▪ Passo 2: (variáveis do problema).

ENG1537 - Pesquisa Operacional I


▪ Passo 3: (equações).
▪ O que compõe um problema de otimização?
▪ Termos técnicos:
▪ Direção de otimização;
▪ Função Objetivo;
▪ Variáveis de decisão; 31
▪ Restrições.
Recapitulando o que vimos até aqui...
▪ Problema do carpinteiro:

𝑀𝑎𝑥 𝑧 = 1000𝑥𝑚 + 500𝑥𝑐

ENG1537 - Pesquisa Operacional I


𝑠. 𝑎. 3𝑥𝑚 + 5𝑥𝑐 ≤ 40
7𝑥𝑚 + 4𝑥𝑐 ≤ 60
𝑥𝑚 ≥ 0, 𝑥𝑐 ≥ 0

32
Até a próxima!

Prof. Rafael Martinelli


martinelli@puc-rio.br
Departamento de Engenharia Industrial - PUC-Rio

Você também pode gostar