Escolar Documentos
Profissional Documentos
Cultura Documentos
ESPECIALIZAÇÃO EM
ENGENHARIA FERROVIÁRIA
Texto Didático
PESQUISA OPERACIONAL
Professor: Arturo Alejandro Zavala Zavala EM
ENGENHARIA FERROVIÁRIA
Cuiabá
2023
1. INTRODUÇÃO
A Pesquisa Operacional (PO) é uma disciplina que consiste na aplicação de
métodos analíticos avançados com o objetivo de apoiar o processo de tomada de
decisão, identificando os melhores cursos de ação possíveis.
Neste contexto, a Pesquisa Operacional utiliza técnicas de modelagem
matemática, análise estatística e otimização matemática, com o objetivo de
alcançar soluções ótimas ou próximas delas diante de problemas de decisão
complexos. Espera-se que as decisões tomadas através do uso de um modelo de
pesquisa operacional sejam significativamente melhores em comparação com
aquelas decisões que poderiam ser tomadas usando a simples intuição ou
experiência do tomador de decisão. O que foi dito acima é particularmente
verdadeiro nos problemas de natureza real complexa, que consideram centenas,
até milhares de variáveis de decisão e restrições.
A Pesquisa Operacional (PO) é uma arte que tem como foco modelar a realidade
dos processos e organizações através da utilização de técnicas matemáticas,
estatísticas e algoritmos para tomada de decisão. Sua origem remonta à Segunda
Guerra Mundial, quando foi utilizado para solucionar problemas de otimização
logística e planejamento de missões.
Abaixo está uma linha do tempo que destaca alguns dos principais marcos na
história da PO:
✓ 1947: O termo “Pesquisa Operacional” é usado pela primeira vez durante um
simpósio realizado no Reino Unido.
✓ Na década de 1950: São desenvolvidas técnicas de programação linear,
permitindo a otimização de problemas limitados de alocação de recursos.
✓ Na década de 1960: A PO se torna uma disciplina acadêmica reconhecida, com
a criação de programas de graduação em universidades nos Estados Unidos e
na Europa.
✓ Na década de 1970: A PO se expande para abranger áreas como teoria dos
jogos, simulação e análise de decisão.
✓ Na década de 1980: São desenvolvidas técnicas de programação não linear,
permitindo a resolução de problemas mais complexos e não lineares.
✓ Na década de 1990: A PO se estende a novas áreas, como otimização
combinatória, inteligência artificial e teoria de redes.
2
✓ Na década de 2000: A PO continua a evoluir, com um foco crescente na
tomada de decisões sob incerteza e na otimização multiobjetivo.
1.1. EXEMPLO 1:
Imaginemos que por motivos de trabalho tenhamos que viajar a São Paulo, todas
as semanas, durante 5 semanas, mas para não deixar nossas obrigações em
Cuiabá, destinamos nossas tarefas em São Paulo de segunda até quarta-feira,
devendo sair sempre na segunda feira e voltar na quarta feira, deixando a quinta e
sexta para solucionar problemas em Cuiabá.
Viajar em avião ida-volta para São Paulo custa em média R$ 400,00. A empresa de
viagens possibilitou um desconto de 20% se as datas de viagens pegavam fins de
semana, já seja em Cuiabá ou São Paulo. Além disso, uma passagem de ida ou de
volta custava 75% do preço da viagem de ida-volta para São Paulo.
Para a solução a este problema simples o primeiro que devemos fazer é identificar
o problema e nos perguntar o seguinte:
3
A restrição para nossa decisão será o fato que para cumprir a tarefa deve sair de
Cuiabá uma segunda feira e voltar uma quarta feira.
Uma forma óbvia de avaliação das alternativas proposta, será aquele que
apresente o menor custo possível.
Custo da Alternativa 1:
Como o custo de uma passagem ida-volta para São Paulo é de R$ 400,00. Então o
custo para as cinco semanas é de:
𝐶𝑢𝑠𝑡𝑜 1 = 5×𝑅$ 400, 00 = 𝑅$ 2. 000, 00
Custo da Alternativa 2:
Custo da Alternativa 3:
4
1.2. EXEMPLO 2:
Consideremos o fato de ter um arame de longitude 𝐿 cm. e se deseja configurar
esse pedaço de arame numa forma retangular, de forma que seja maximizada a
área cercada, qual deveriam ser os lados dessa forma retangular?
Para isto, podemos imaginar que a forma retangular tem a seguinte estrutura:
𝑎, 𝑏≥0
Em termos gerais um modelo matemático para um problema de decisão, estaria
dado por:
Notemos que no exemplo anterior a Função Objetivo estaria dada pela Área
definida pela letra A, e as restrições estaria dado pelas duas expressões
matemáticas.
5
Passo 1: Defina o problema: O primeiro passo é definir o problema que deseja
resolver. É importante identificar claramente qual é o objetivo e quais os
constrangimentos que devem ser cumpridos.
Passo 2: Identifique as variáveis: As variáveis são as incógnitas que você deseja
encontrar no problema. É importante identificar quais variáveis são
relevantes para o problema e atribuir-lhes um nome.
Passo 3: Formule a função objetivo: A função objetivo é uma equação matemática
que representa o objetivo do problema, seja maximizar ou minimizar
algum valor. A função objetivo deve ser em termos das variáveis
identificadas e deve ser linear.
Passo 4: Estabeleça restrições: Restrições são as limitações que devem ser
atendidas para resolver o problema. Estas restrições devem ser em termos
das variáveis identificadas e devem ser lineares. Além disso, as restrições
devem assumir a forma de desigualdades ou igualdades.
Passo 5: Represente o problema na forma de um sistema de equações lineares:
Uma vez definidas a função objetivo e as restrições, elas podem ser
representadas na forma de um sistema de equações lineares.
Passo 6: Resolva o sistema de equações lineares: Existem vários métodos para
resolver sistemas de equações lineares, um dos mais comuns é o método
simplex. Este método permite encontrar a solução ótima que atenda às
restrições e otimize a função objetivo.
Passo 7: Interpretar a solução: Uma vez encontrada a solução ótima, é importante
interpretá-la para tomar decisões informadas e avaliar a eficácia do modelo.
O modelo pode precisar ser ajustado e resolvido se os resultados não
atenderem aos objetivos esperados.
Estas são as etapas gerais para fazer programação linear. Cada problema é único e
pode exigir adaptações específicas, mas essas etapas fornecem um guia geral
para resolver problemas utilizando programação linear.
1.4. EXEMPLO 3:
Para entender o modelo matemático consideremos o seguinte exemplo,
imaginemos que exista a empresa de tintas “Bela” que produz tintas para
interiores e exteriores, ela utiliza para a produção dos dois tipos de tintas, dois
tipos de matérias primas, digamos T1 e T2. A tabela a seguir proporciona a
disponibilidade de Matéria Prima e sua utilidade por cada tipo de tinta.
6
Pintura
Para Para
Exteriores Interiores
Materia Prima T1 6 4 24
Materia Prima T2 1 2 6
Utilidade por
5 4
Tonelada
(US$ 1.000,00)
7
Passo 4: Estabeleça restrições
Para as restrições considerarmos todas aquelas que apresentam alguma
limitação, neste caso a limitação é de disponibilidade máxima de matéria prima.
Desta forma as restrições são:
Matéria Prima 𝑇1: 6𝑋1 + 4𝑋2≤24
Demanda diária de pintura para interiores não pode exceder a de pintura para
exteriores por mais de uma tonelada: 𝑋2 ≤ 𝑋1 + 1
Sujeito a
6𝑋1 + 4𝑋2≤24
𝑋1 + 2𝑋2≤6
𝑋2≤2
𝑋2 ≤ 𝑋1 + 1
𝑋1, 𝑋2≥0
8
Passo 6: Resolva o sistema de equações lineares:
9
No ponto E: temos que 𝑋1 = 4 e 𝑋2 = 0, na função objetivo temos:
𝑍𝐸 = 5(4) + 4(0) = 20
1.5. EXEMPLO 4:
Poderíamos considerar, por exemplo, a empresa “Completa”, que utiliza
diariamente pelo menos 800 Kg. de alimento especial. Este alimento especial é
uma mistura de milho e semente de soja com a composição seguinte:
Quantidade de quilos de
Alimento composto por quilo de
Especial alimento especial
Proteina Fibras Custo/K
s g
Milho 0,09 0,02 0,30
Semente de 0,60 0,06 0,90
Soja
10
𝑋2:={Quantidade de quilogramas de semente de soja}
Sujeito a
𝑋1 + 𝑋2 = 800
− 0, 21𝑋1 + 0, 06𝑋2≥0
0, 03𝑋1–0, 01𝑋2≥0
𝑋1, 𝑋2≥0
11
Passo 6: Resolva o sistema de equações lineares:
12
1.6. EXEMPLO 5:
Uma transportadora utiliza burros e jumentos para transportar cargas entre duas
cidades. A capacidade de carga de um burro é de até 100 Kg, enquanto a do
jumento é de até 50 Kg. Durante a viagem, um burro consome 3 montes de capim
e 100 litros de água. Um jumento consome 2 montes de capim e 30 litros de água.
A empresa possui várias estações de alimentação intermediárias entre as duas
cidades. Estas estações dispõem, no momento, de 900 litros de água e 300 montes
de capim. Os burros e jumentos utilizados pela firma são alugados e o preço do
aluguel é de R$ 30,00 por burro e R$ 20,00 por jumento. Existe no momento uma
necessidade de transporte de 1.000 Kg. Quantos burros e jumentos devem ser
utilizados de modo a minimizar o custo do aluguel pago?
Para a solução do presente exercício, precisamos seguir com os passos seguintes:
Passo 1: Defina o problema
Se deseja minimizar os custos de aluguel
13
Passo 5: Represente o problema na forma de um sistema de equações lineares:
𝑚𝑖𝑛𝑖𝑚𝑖𝑧𝑎𝑟 𝑍 = 30 𝑋1 + 20 𝑋2
Sujeito a
3 𝑋1 + 2 𝑋2≤300
100 𝑋1 + 30 𝑋2≤900
100 𝑋1 + 50 𝑋2 = 1000
𝑋1, 𝑋2≥0
14
Passo 7: Interpretar a solução:
Pelo que podemos dizer que com um mínimo de 8 burros e 5 jumentos
poderemos ter um lucro de 340 unidades monetárias.
15
O método conclui quando não é possível continuar melhorando esse valor, ou o
que dá no mesmo: uma solução ótima foi alcançada dependendo do objetivo a ser
alcançado, porém são apresentados dois casos: maximização e minimização que,
dependendo do seu contexto, permitir a realização de pesquisas operacionais
relevantes.
C) PARAGEM: O algoritmo para quando não houver mais variáveis que possam
entrar como solução ao sistema de equações.
16
Para utilizar o Solver do Excel, o primeiro passo consiste em criar uma folha de
cálculo com a informação contida no modelo. Nessa folha de cálculo se deve ter:
✔ As células onde serão colocados os valores das variáveis de decisão;
✔ A equação que constituíram a função objetivo;
✔ Os coeficientes da matriz de restrições;
✔ As fórmulas que relacionam as variáveis de decisão com a matriz de
restrições;
✔ O valor das restrições.
Da forma a seguir:
17
3. Logo fazer um click em Suplementos, obtendo:
18
Passo 2: No Excel fazer um Click em Dados e logo em Solver,
Após aparece a seguinte janela:
1. Incluir a Função Objetivo, definir o tipo de otimização e identificar as variáveis de
decisão
19
3. Após a inclusão das restrições fazemos um click em tornar variáveis Irrestritas
Não Negativas e logo fazer click em selecionar um método de seleção e
escolher LP Simples, como se amostra abaixo:
No que diz as restrições que dos 1500, só se utilizou 1357,143. Dos 1900 se utilizou os
1900, dos 1000 foi utilizado 542,8571. Também se como mínimo deveu se usar 500,
o programa utilizou 2442,857 e como mínimo se precisa utilizar 300, foi utilizado
1900.
20
EXEMPLO 2:
O Sr. A. Galo, diretor-técnico de um aviário, pretende determinar a composição da
alimentação que deverá ser fornecida diariamente aos animais misturando rações,
de forma a conseguir certa qualidade nutritiva a um custo mínimo. Os dados
relativos ao custo e às propriedades nutritivas de cada tipo de ração constam da
tabela abaixo.
21
Desta forma o modelo matemático é definido por:
𝑀𝑖𝑛𝑖𝑚𝑖𝑧𝑎𝑟 𝑍 = 250 𝑋1 + 300 𝑋2 + 100 𝑋3
Sujeito a
500 𝑋1 + 400 𝑋2 + 300 𝑋3≥150
60 𝑋1 + 70 𝑋2 + 30 𝑋3≥20
No Excel devemos criar um espaço que define as variáveis em estudo, neste caso:
Uma vez feito o passo anterior se abre a janela parâmetros do Solver, aqui em
princípio devemos definir Objetivo e as Células Variáveis, como se amostra a
continuação:
22
Após temos que introduzir as restrições, neste caso se deve clicar no ícone
Adicionar, da forma seguinte:
23
Após fazer OK, voltamos a janela inicial de Parâmetros do Solver, tendo que fazer o
seguinte:
Para nossa solução devemos assegurar que esses dois elementos em círculo
estejam ativados, após fazer um click em Resolver, obtendo a resposta seguinte:
Observemos que:
𝑋1 = 0; 𝑋2 = 0; 𝑋3 = 0, 75; 𝑍 = 75
24
CAPÍTULO 2: ANÁLISE DA DUALIDADE E SENSIBILIDADE
Objetivo: Neste tópico veremos que cada problema de programação linear está
associado a outro problema de programação linear, denominado “Problema Dual”.
E entender a análise de sensibilidade na pesquisa operacional o qual permite
compreender os efeitos que ocorrem em uma solução ótima
25
Para entender este intercambio, consideremos a seguinte estrutura de um
problema primal:
𝑀𝑖𝑛𝑖𝑚𝑖𝑧𝑎𝑟 𝑍 = 𝑐1𝑋1 + 𝑐2𝑋2 + ⋯ + 𝑐𝑛𝑋𝑛
( )
Restrição 1 𝑌1 : 𝑎11𝑋1 + 𝑎12𝑋2 + ⋯ + 𝑎1𝑛𝑋𝑛 ≥ 𝑏1
( )
Restrição 2 𝑌2 : 𝑎21𝑋1 + 𝑎22𝑋2 + ⋯ + 𝑎2𝑛𝑋𝑛 ≥ 𝑏2
⋮
( )
Restrição 𝑚 𝑌𝑚 : 𝑎𝑚1𝑋1 + 𝑎𝑚2𝑋2 + ⋯ + 𝑎𝑚𝑛𝑋𝑛 ≥ 𝑏𝑚
Para obter o problema dual, devemos definir cada restrição como uma variável e
as constantes de disponibilidade como função de custo da nova função objetivo.
Desta forma podemos definir 𝑚 variáveis, definidas com a simbologia 𝑌, se nosso
interesse na função objetivo do primal era de minimizar, no dual será de
maximizar, desta forma o problema dual estará definido por:
𝑀𝑎𝑥𝑖𝑚𝑖𝑧𝑎𝑟 𝑊 = 𝑏1𝑌1 + 𝑏2𝑌2 + ⋯ + 𝑏𝑚𝑌𝑚
( )
Variável 1 𝑋1 : 𝑎11𝑌1 + 𝑎21𝑌2 + ⋯ + 𝑎𝑚1𝑌𝑚 ≤ 𝑐1
( )
Variável 2 𝑋2 : 𝑎12𝑌1 + 𝑎22𝑌2 + ⋯ + 𝑎𝑚2𝑌𝑚 ≤ 𝑐2
⋮
( )
Variável 𝑛 𝑋𝑛 : 𝑎1𝑛𝑌1 + 𝑎2𝑛𝑌2 + ⋯ + 𝑎𝑚𝑛𝑌𝑚 ≤ 𝑐𝑚
26
= ¼ Irrestrita
Variáveis Restrições:
0 ¼
≥0 ¼ ≥
Irrestrita ¼ =
Sujeito a
− 𝑋1 + 𝑋2≤1
𝑋1 + 𝑋2≤3
𝑋1 − 2 𝑋2≤4
𝑋1, 𝑋2≥0
Sujeito a
− 𝑌1 + 𝑌2 + 𝑌3≥2
𝑌1 + 𝑌2 − 2 𝑌3≥1
27
EXEMPLO 2: Considere o seguinte problema primal
𝑀𝑎𝑥𝑖𝑚𝑖𝑧𝑎𝑟 𝑍 = 𝑋1 + 2 𝑋2
Sujeito a
3 𝑋1 + 𝑋2≤6
2 𝑋1 + 𝑋2 = 3
𝑋1, 𝑋2≥0
Sujeito a
3 𝑌1 + 2 𝑌2≥6
𝑌1 + 𝑌2≥2
𝑌1≥0, 𝑌2 𝐼𝑟𝑟𝑒𝑠𝑡𝑟𝑖𝑡𝑜
Sujeito a
𝑋1≤3
𝑋2 = 4
𝑋1 + 2 𝑋2≥9
𝑋1≥0, 𝑋2 𝐼𝑟𝑟𝑒𝑠𝑡𝑟𝑖𝑡𝑎
28
Obter a formulação do problema dual.
Desta forma:
𝑀𝑎𝑥𝑖𝑚𝑖𝑧𝑎𝑟 𝑊 = 3 𝑌1 + 4 𝑌2 + 9 𝑌3
Sujeito a
𝑌1 + 𝑌3≥5
𝑌2 + 2 𝑌3 = 2
Onde (k) representa o estado final da variável e (0) representa o estado inicial da
variável
Para entender consideremos o seguinte exemplo:
EXEMPLO 4:
A Daicast Ind. e Com. é uma empresa metalúrgica que fabrica peças de Alumínio
e Zamak para os mercados de autopeças, de telecomunicações e de eletrônica,
dentre outros. Ela tem uma linha de produtos que atende a mercados com
demandas dependentes (como as autopeças para montadoras) e uma outra linha
com demandas independentes (como o mercado de reposição de autopeças).
Como é uma empresa pequena comparativamente ao tamanho do mercado de
reposição de autopeças, ela consegue escoar toda a sua produção de produtos
com demanda independente sem grandes problemas.
A tabela seguir oferece uma visão geral do problema enfrentando por eles
mensalmente: definir as quantidades a serem produzidas considerando os
recursos disponíveis, os recursos necessários para a produção dos itens e as
margens deles.
29
Recurso Disponibilida Unidade Recursos Necessários peça
de s Tampa Suporte Plaqueta
Materia - 10.000 Kg 0,300 0,200 0,100
Prima
Injetora 1.600 h 0,003 0,005 0,007
Furadeira 800 h 0,007 0,008 0,010
Afinação 600 h 0,033 0,005 0,002
Margem Liquida (R$) 5,00 7,00 8,00
O Problema Primal é:
𝑀𝑎𝑥𝑖𝑚𝑖𝑧𝑎𝑟 𝑍 = 5 𝑋1 + 7 𝑋2 + 8 𝑋3
𝑆𝑢𝑗𝑒𝑖𝑡𝑜 𝑎:
Restrição por Matéria Prima: 0, 3 𝑋1 + 0, 2 𝑋2 + 0, 1 𝑋3≤10. 000
O Problema Dual é:
𝑀𝑖𝑛𝑖𝑚𝑖𝑧𝑎𝑟 𝑊 = 10. 000 𝑌1 + 1. 600 𝑌2 + 800 𝑌3 + 600 𝑌4
𝑆𝑢𝑗𝑒𝑖𝑡𝑜 𝑎:
Restrição devido a Tampa: 0, 3 𝑌1 + 0, 003 𝑌2 + 0, 007 𝑌3 + 0, 003 𝑌4≥5
30
Note que com o Solver identificamos o Preço Sombra dos Recursos, isto é, Matéria
– Prima teve um preço sombra de 5 o que quer dizer que por cada unidade
adicional acrescentado ou diminuído da Restrição da Matéria Prima, esta terá um
efeito sobre a função objetivo de ± 5 unidades, para efeitos práticos
incrementaremos em uma unidade os Recursos da Matéria – Prima, para ver o
efeito sobre a função objetivo.
Outra restrição que teve Preço Sombra é a Furadeira, sendo está de 750, isto quer
dizer que qualquer movimento na restrição do tempo na Furadeira esta terá um
efeito positivo ou negativo na função objetivo em 750 unidades.
31
Agora se rodamos com o Solver o problema Dual, encontraremos o seguinte:
32
Em uma análise de sensibilidade deve-se responder basicamente a dois
perguntas:
a) Qual é o efeito de uma mudança num coeficiente da função objetivo.
b) Qual é o efeito de uma mudança numa constante de uma restrição.
Este resultado exige que não deva ser feita tampas pelo baixo margem de lucro
que pode ser obtida pela produção de tampas. Podemos supor que se aumenta o
preço de ventas das tampas, esta situação possivelmente poderia apresentar
maior lucratividade a empresa.
Neste caso observe-se que se o preço da tampa aumenta de 5 para 6,75, isto é, um
aumento de 1,75 como se indica na coluna de custo reduzido, na solução (Final
Valor) do modelo aparecerá tampas como elemento da solução, mantendo
constante a solução obtida na função objetivo, como se amostra a continuação:
33
b) Alteração em um dos coeficientes de uma restrição
Com o uso do computador é fácil introduzir ou retirar variáveis ou restrições, com
muita facilidade, mas o importante deve ser a construção de um modelo que
facilite a introdução ou retirada de variáveis ou restrições, em modelos medianos e
grandes, isso é uma necessidade.
Esta introdução de variáveis ou restrição afetam diretamente a função objetivo, a
continuação apresentamos uma tabela da situação da função objetivo pela
entrada ou retirada de variáveis ou restrições.
Tabela 2: Introdução e retirada de variáveis ou restrições
Variável Restrição
Flexibilidade do Introdução Aumenta Diminui
Modelo
Retirada Diminui Aumenta
Valor da Função Introdução Se mantem ou Se mantem ou piora
Objetivo melhora
Retirada Se mantem ou Se mantem ou melhora
piora
34
CAPÍTULO 3: MODELO DE TRANSPORTE
Objetivo: Nesta seção é considerado o modelo de transporte através do qual um
administrador deve determinar a melhor forma de levar os produtos de seus
diversos armazéns até seus consumidores, de forma a satisfazer os clientes e com
o mínimo custo.
3.1. INTRODUÇÃO
Este modelo é um caso especial de programação linear, se baseia em procurar o
menor custo que se pode gerar a partir do envio de bens de um ponto de origem
(exemplo fabricas) a ponto de destino (exemplo armazém). Este modelo
pressupõe que o custo de envio numa rota específica é diretamente proporcional
ao número de unidades enviadas nessa rota.
Alguns exemplos de transporte se encontram em controle de inventários, horários
de emprego e distribuição do pessoal.
3.2. O MODELO
Para entender o modelo, deve-se considerar que neste modelo podemos ter “𝑚”
pontos de origem e “𝑛” pontos de destino, cada uma representada por um nó. As
rotas poderão ser representadas pela seta de união de nós, como se apresenta a
continuação:
Sendo as restrições:
𝑛
∑ 𝑋𝑖𝑗 = 𝑓𝑖 (𝑖 = 1, 2, ⋯, 𝑚)
𝑗=1
𝑚
∑ 𝑋𝑖𝑗 = 𝑑𝑗 (𝑗 = 1, 2, ⋯, 𝑛)
𝑖=1
35
Onde
𝑋𝑖𝑗: É a quantidade de bens transportados do ponto de origem "𝑖" ao ponto de
destino "𝑗";
𝐶𝑖𝑗: É o custo de bens transportados do ponto de origem “𝑖” ao ponto de destino “𝑗”;
OBSERVAÇÕES
i) No caso de que a oferta seja maior que a demanda, se deve introduzir um ponto
de destino fantasma (dummy) que tenha os custos unitários de todos os pontos
de origem aos pontos de destino iguais a zero.
ii) No caso da demanda seja maior a oferta se deve introduzir um ponto de origem
fantasma (dummy) que tenha os custos unitários de todos os pontos de origem
aos pontos de destino iguais a zero.
𝑚
∑ 𝑋𝑖𝑗 = 𝑑𝑗 (𝑗 = 1, 2, ⋯, 𝑛)
𝑖=1
b) No caso da demanda total seja maior que a oferta total, a restrição seria:
𝑛
∑ 𝑋𝑖𝑗 = 𝑓𝑖 (𝑖 = 1, 2, ⋯, 𝑚)
𝑗=1
𝑚
∑ 𝑋𝑖𝑗 ≤ 𝑑𝑗 (𝑗 = 1, 2, ⋯, 𝑛)
𝑖=1
36
Em ambas as situações se cria uma variável para equilibrar a demanda total e a
demanda total e logo se faz a solução do sistema.
3.3. EXEMPLO 1
Deseja-se transportar arroz de três armazéns (1, 2 e 3) a três centros consumidores
distintos (A, B e C). Cada armazém apresentou os seguintes níveis de estoque de
arroz em determinado mês:
Qual será a quantidade de arroz a ser transportado entre armazém e cada centro
consumidor, de tal forma que as demandas de cada centro sejam supridas e que o
custo total de transporte seja mínimo?
Para a solução deste problema seguimos as seguintes etapas:
Objetivo: Minimização do custo de transporte
Variáveis:
𝑋11 = {transportar arroz do armazém 1 ao centro consumidor 1};
𝑋12 = {transportar arroz do armazém 1 ao centro consumidor 2};
𝑋13 = {transportar arroz do armazém 1 ao centro consumidor 3};
𝑋21 = {transportar arroz do armazém 2 ao centro consumidor 1};
𝑋22 = {transportar arroz do armazém 2 ao centro consumidor 2};
𝑋23 = {transportar arroz do armazém 2 ao centro consumidor 3};
𝑋31 = {transportar arroz do armazém 3 ao centro consumidor 1};
𝑋32 = {transportar arroz do armazém 3 ao centro consumidor 2};
𝑋33 = {transportar arroz do armazém 3 ao centro consumidor 3}
Restrições:
✔ Estoques disponíveis nos armazéns 1, 2 e 3
✔ Quantidades demandadas nos centros consumidores A, B e C
37
Desta forma:
𝑀𝑖𝑛 𝑍 = 10 𝑋11 + 5 𝑋12 + 12 𝑋13 + 4 𝑋21 + 9 𝑋22 + 15 𝑋23 + 15 𝑋31 + 8 𝑋32 + 6 𝑋33
Sujeito a:
𝑋11 + 𝑋12 + 𝑋31≤200
38
Obtendo
39
Daqui pode-se concluir que:
✓ Se deve transportar 0 Kg de Arroz do armazém 1 ao centro consumidor 1.
✓ Se deve transportar 200 Kg de Arroz do armazém 1 ao centro consumidor 2.
✓ Se deve transportar 0 Kg de Arroz do armazém 1 ao centro consumidor 3.
✓ Se deve transportar 100 Kg de Arroz do armazém 2 ao centro consumidor 1.
✓ Se deve transportar 50 Kg de Arroz do armazém 2 ao centro consumidor 2.
✓ Se deve transportar 0 Kg de Arroz do armazém 2 ao centro consumidor 3.
✓ Se deve transportar 0 Kg de Arroz do armazém 3 ao centro consumidor 1.
✓ Se deve transportar 50 Kg de Arroz do armazém 3 ao centro consumidor 2.
✓ Se deve transportar 250 Kg de Arroz do armazém 3 ao centro consumidor 3.
3.4. EXEMPLO 2
Suponha que Inglaterra, França e Espanha produziam todo o trigo, cevada e aveia
do mundo. A demanda mundial de trigo requer que 50 milhões de hectares de
terra sejam dedicados à produção de trigo. Similarmente, 24 milhões de hectares
de terra são requeridos para cevada e 30 milhões de hectares de terra para aveia.
As quantidades totais de terra disponível para esses propósitos na Inglaterra, na
França e na Espanha são 28 milhões de hectares, 44 milhões de hectares e 32
milhões de hectares, respectivamente.
O número de horas de trabalho necessária na Inglaterra, na França e na Espanha
para produzir um hectare de trigo é 45 horas, 32h30min e 40 horas,
respectivamente. O número de horas de trabalho necessária na Inglaterra, na
França e na Espanha para produzir um hectare de aveia é 30 horas, 25 horas e 40
horas, respectivamente. O número de horas de trabalho necessária na Inglaterra,
na França e na Espanha para produzir um hectare de cevada é 37h30min, 30 horas
e 30 horas, respectivamente. O custo de mão-de-obra por hora para a produção de
40
trigo é $ 3,00; $ 2,40 e $ 3,30 na Inglaterra, na França e na Espanha,
respectivamente. O custo de mão-de-obra por hora para a produção de cevada é $
2,70; $ 3,00 e $ 2,80 na Inglaterra, na França e na Espanha, respectivamente. O
custo de mão-de-obra por hora para a produção de aveia é $ 2,30; $ 2,50 e $ 2,10 na
Inglaterra, na França e na Espanha, respectivamente. Solucione o problema de
modo a atender a demanda por alimento em nível mundial, minimizando o custo
total de mão-de-obra.
A representação prática é dada em:
Restrições:
✔ Demanda mundial de trigo, cevada e aveia (em milhões de ha)
✔ Disponibilidade total de terra para os Três produtos na Inglaterra, França e
Espanha
O Modelo:
𝑀𝑖𝑛 𝑍 = 135 𝑋11 + 78 𝑋12 + 132 𝑋13 + 101, 25 𝑋21 + 90 𝑋22 + 84 𝑋23 + 69 𝑋31 + 62, 5 𝑋32 + 84 𝑋33
Sujeito a:
𝑋11 + 𝑋12 + 𝑋13≥50
41
𝑋31 + 𝑋32 + 𝑋33≥30
42
3.5. EXEMPLO 3
Um avião tem três compartimentos para transportar carga: frente, centro e
traseira. Esses compartimentos têm limites de capacidade tanto em peso quanto
em volume, conforme tabela abaixo:
Além disso, o peso da carga nos respectivos compartimentos tem que observar a
mesma proporção das capacidades de peso dos compartimentos, para manter o
equilíbrio do avião. As quatro cargas seguintes aguardam remessas nos próximos
voos, à medida que haja espaço disponível
O objetivo é determinar quanto de carga deve ser aceito e como distribuí-las pelos
compartimentos a fim de maximizar o lucro total do voo.
Objetivo: Maximizar o lucro total do voo
Variáveis:
𝑋11 = {transportar a carga 1 no compartimento da frente};
𝑋12 = {transportar a carga 1 no compartimento do centro};
𝑋13 = {transportar a carga 1 no compartimento traseiro};
𝑋21 = {transportar a carga 2 no compartimento da frente};
𝑋22 = {transportar a carga 2 no compartimento do centro};
𝑋23 = {transportar a carga 2 no compartimento traseiro};
𝑋31 = {transportar a carga 3 no compartimento da frente};
𝑋32 = {transportar a carga 3 no compartimento do centro};
𝑋33 = {transportar a carga 3 no compartimento traseiro};
𝑋41 = {transportar a carga 4 no compartimento da frente};
𝑋42 = {transportar a carga 4 no compartimento do centro};
𝑋43 = {transportar a carga 4 no compartimento traseiro}
43
Restrições:
✔ Capacidade em peso de cada compartimento;
✔ Capacidade em volume de cada compartimento;
✔ Peso da Carga;
✔ Proporcionalidade entre os compartimentos.
O Modelo:
𝑀𝑎𝑥 𝑍 = 220 𝑋11 + 220 𝑋12 + 220 𝑋13 + 280 𝑋21 + 280 𝑋22 + 280 𝑋23 + 250 𝑋31 + 250 𝑋32 + 250 𝑋33
Sujeito a:
𝑋11 + 𝑋12 + 𝑋13≤20
𝑋11, 𝑋12, 𝑋13, 𝑋21, 𝑋22, 𝑋23, 𝑋31, 𝑋32, 𝑋33, 𝑋41, 𝑋42, 𝑋43≥0
44
Após rodar com o Solver temos:
45
CAPÍTULO 4: PROGRAMAÇÃO LINEAR INTEIRA
Objetivo: Apresentar algoritmos que proporcionam mediante a incorporação de
novas restrições ou planos de corte, variáveis de decisão ótimas que são expressos
como números inteiros.
4.1. INTRODUÇÃO
Este tipo de programação se caracteriza por ter em suas resoluções variáveis que
assumem somente valores inteiros.
Existem neste tipo de problemas dois tipos básicos:
a) A programação linear inteira total (ILP), onde todas as variáveis de decisão são
de tipo inteiro;
b) A programação inteira mista (MILP), onde apenas uma parte das variáveis são
de tipo inteiro, enquanto as outras são de tipo real.
46
Admitindo que o problema de Programação Inteira seja modelo por (modelo
misto):
𝑛
𝑀𝑎𝑥𝑖𝑚𝑖𝑧𝑎𝑟 𝑍 = ∑ 𝐶𝑖 𝑋𝑖
𝑖=1
Sujeito a:
𝑛
∑ 𝑎𝑖𝑗 𝑋𝑖 ≤ 𝑏𝑗 (𝑗 = 1, 2, ⋯, 𝑚)
𝑖=1
𝑋𝑖 ∈ 𝐼 ∀ 𝑖 = 1, 2, ⋯, 𝑝 (𝑝 ≤ 𝑛)
𝑋𝑖≥0 ∀ 𝑖 = 𝑝 + 1, 𝑝 + 2, ⋯, 𝑛 (𝑝 ≤ 𝑛)
Supondo que para cada variável inteira seja possível fornecer limites inferiores 𝐿𝑖 e
superiores 𝑈𝑖 que seguramente incluam os valores ótimos.
𝐿𝑖 ≤ 𝑋𝑖 ≤ 𝑈𝑖 ∀ 𝑖 = 1, 2, ⋯, 𝑝 (𝑝 ≤ 𝑛)
4.3. EXEMPLO 1
As praias usualmente são vigiadas no verão por salva-vidas. Uma programação
numa praia deseja ser considerada, onde sete dias por semana estarão disponíveis
vários nadadores(as)-salvadores. Por regulamento nenhum poderá trabalhar mais
do que 5 dias por semana, tendo 2 dias consecutivos de repouso. Ao contrário da
maior parte dos trabalhadores estes terão mais sobrecarga ao fim de semana.
Atendendo especialmente ao nº de frequentadores das praias, à experiência de
anos anteriores e à promoção de mais segurança, foi aprovada a seguinte tabela
com a segurança necessária.
47
Quantos nadadores(as)-salvadores deverão entrar ao serviço em cada dia da
semana, procurando empregar o menor nº (N), mas satisfazendo as exigências?
Como nenhum salva-vidas pode trabalhar mais de 5 dias, devendo descansar dois
dias consecutivos, então, no dia domingo teremos aqueles que trabalharam todos
os dias menos os de segunda e terça, para os outros dias acontece a mesma coisa,
desta forma temos:
Desta forma o modelo de programação linear fica dado por:
𝑀𝑖𝑛𝑖𝑚𝑖𝑧𝑎𝑟 𝑍 = 𝑋1 + 𝑋2 + 𝑋3 + 𝑋4 + 𝑋5 + 𝑋6 + 𝑋7
Sujeito a
𝑋1 + 𝑋4 + 𝑋5 + 𝑋6 + 𝑋7≥14 (𝐷𝑜𝑚)
𝑋1 + 𝑋2 + 𝑋5 + 𝑋6 + 𝑋7≥7 (𝑆𝑒𝑔)
𝑋1 + 𝑋 2 + 𝑋 3 + 𝑋6 + 𝑋7≥8 (𝑇𝑒𝑟)
𝑋1 + 𝑋2 + 𝑋3 + 𝑋4 + 𝑋7≥8 (𝑄𝑢𝑎)
𝑋1 + 𝑋2 + 𝑋3 + 𝑋4 + 𝑋5 + 𝑋6 ≥9 (𝑄𝑢𝑖)
𝑋2 + 𝑋3 + 𝑋4 + 𝑋5 + 𝑋6 + 𝑋7≥10 (𝑆𝑒𝑥)
𝑋3 + 𝑋4 + 𝑋5 + 𝑋6 + 𝑋7≥13 (𝑆𝑎𝑏)
48
As variáveis são introduzidas no Excel para encontrar a solução, o Solver já tem
incluído o algoritmo Branch and Bounds em seu sistema, os passos para encontrar
a solução são:
1° Introduzir os dados no Excel
3° Introduzir as restrições
49
4° Definir as variáveis inteiras como restrição do modelo, da forma seguinte:
50
Isto quer dizer, que para o dia domingo serão necessários 2 salva-vidas, para
segunda feira não haverá salva-vidas, para terça feira será necessário de 1
salva-vidas, na quarta feira são necessários de 7 salva-vidas, na quinta feira não
haverá salva-vidas, na sexta feira haverá 5 salva-vidas e no sábado não haverá
salva-vidas. Desta forma serão necessários 15 salva-vidas para uma semana.
4.4. EXEMPLO 2
Se estão avaliando cinco projetos ao longo de um horizonte de planejamento de
três anos. A tabela a seguir proporciona as utilidades esperadas para cada projeto
e os egressos anuais associadas.
Sujeito a
5 𝑋1 + 4 𝑋2 + 3 𝑋3 + 7 𝑋4 + 8 𝑋5≤25
𝑋1 + 7 𝑋2 + 9 𝑋3 + 4 𝑋4 + 6 𝑋5≤25
8 𝑋1 + 10 𝑋2 + 2 𝑋3 + 𝑋4 + 10 𝑋5≤25
51
Para a solução deve-se fazer os seguintes passos:
1° Introduzir dados
b) Introduzir Restrições
52
3° O resultado
53
4.5. EXEMPLO 3
Uma pessoa foi consultada por três companhias de Telefone para subscrever-se a
seu serviço de Longa Distância nos Estados Unidos. MaBell cobrará uma tarifa fixa
de 16 dólares por mês, mais 0,25 centavos por minuto. PaBell cobrará 25 dólares
por mês, mas reduzirá o custo por minuto a 0,21 centavos. Enquanto a BabyBell, a
tarifa mensal fixa é de 18 dólares e o custo por minuto é de 0,22 centavos.
Geralmente a pessoa consultada faz uma média de 200 minutos de chamada a
longa distância ao mês. Supondo que não pague a tarifa fixa, a menos de fazer as
chamadas e de que possa dividir mais chamadas entre as três companhias,
segundo ele ache conveniente, como a pessoa pode usar os serviços das três
companhias para minimizar a conta mensal de telefone?
Observe-se que neste caso existem dois tipos de variáveis, estas são:
X1:= Minutos de longa distância ao mês com a MaBell.
X2:= Minutos de longa distância ao mês com a PaBell.
X3:= Minutos de longa distância ao mês com a BabyBell.
Y1:= 1, se X1 > 0 e Y1:=0, se X1 = 0
Y2:= 1, se X2 > 0 e Y2:=0, se X2 = 0
Y3:= 1, se X3 > 0 e Y3:=0, se X3 = 0
𝑋𝑖 ≤ 𝑀 𝑌𝑖 𝑌𝑖 ∈ (0, 1) 𝑖 = 1, 2, 3
Sujeito a
𝑋1 + 𝑋2 + 𝑋3≤200
𝑋1≤200 𝑌1
𝑋2≤200 𝑌2
𝑋3≤200 𝑌3
54
Para a solução deste problema recorremos ao Solver do Excel, os passos são os
seguintes:
1° Inclusão de dados
2° Inclusão de Parâmetros
3° Resultados
55
56