Teoria de Decisão I

AULA 3: MODELAGEM MATEMÁTICA DE PROBLEMAS LINEARES

Profa. Luciane Alcoforado

PPGEC/UFF

Objetivos

Verifique ao final desta aula se você é capaz de:

  • Desenvolver modelos matemáticos de otimização linear para as situações problema apresentadas (Si).
  • Gerar soluções para as situações problema apresentadas (Ap).
  • Validar os modelos elaborados por meio da análise das soluções obtidas (An).

Roteiro da Aula

  • Resposta das Interpretações da aula anterior
  • Revisão de conceitos das aulas anteriores
  • Modelos clássicos de planejamento da produção.
  • Interpretando a solução.
  • Exercícios.

Resposta das Interpretações

A solução:

Success: the objective function is 102.4 
[1] 1 0 0 0 2 0 2 3 6
var x11 x12 x13 x21 x22 x23 x31 x32 x33
x 1 0 0 0 2 0 2 3 6
  • Verifique quanto de carga cada cidade recebeu com esta solução. A demanda foi atendida?
Destino Recebido_ton Demanda
Cidade 1 20 20
Cidade 2 29 28
Cidade 3 30 30
  • Todas as betoneiras disponíveis foram utilizadas? Caso não, quantas não foram e de que tipo?
Origem Uso Disponível Sobra
T 1 1 8 7
T 2 2 15 13
T 3 11 11 0

Resposta do Exercício Adicional

Critério de Otimalidade: Maximizar o lucro diário da refinaria relativo a produção de gasolina.

\(x_{ij}\) = número de barris de óleo bruto i usados diariamente para produzir a gasolina j; i = 1, 2, 3; j = 1, 2, 3.

Lucro = Receita - Custo

Receita diária por barril de gasolina = \(5(x_{11} + x_{21} + x_{31}) + 7(x_{12} + x_{22} + x_{32}) + 8(x_{13} + x_{23} + x_{33})\)

Custos diário por barril de óleo bruto \(2(x_{11} + x_{12} + x_{13}) + 3(x_{21} + x_{22} + x_{23}) + 3(x_{31} + x_{32} + x_{33})\)

Lucro diário por barril de gasolina = Receita diária - Custo diário

função objetivo: Max \(Z = (5 – 2)x_{11} + (5 – 3)x_{21} + (5 – 3)x_{31} +\)

\((7 – 2)x_{12} + (7 – 3)x_{22} + (7 – 3)x_{32} (8 – 2)x_{13} +(8 – 3) x_{23} + (8 – 3) x_{33}\)

Resposta do Exercício Adicional…

\(x_{ij}\) = número de barris de óleo bruto i usados diariamente para produzir a gasolina j; i = 1, 2, 3; j = 1, 2, 3.

Max \(Z = 3x_{11} + 5x_{12} + 6x_{13} +2x_{21} + 4x_{22} + 5x_{23} + 2x_{31} + 4x_{32} + 5x_{33}\)

Sujeito a

Restrição do % de óleo 1 na gasolina 1 (comum): \(\frac{x_{11}}{x_{11} + x_{21} + x_{31}}\le 0.7\) ou \(0.30x_{11} – 0.70x_{21} – 0.70x_{31} \le 0\) (R1)

Restrição do % de óleo 1 na gasolina 2 (super): \(\frac{x_{12}}{x_{12} + x_{22} + x_{32}}\le 0.5\) ou \(0.50x_{12} – 0.50x_{22} – 0.50x_{32} \le 0\) (R2)

Restrição do % de óleo 2 na gasolina 2 (super): \(\frac{x_{22}}{x_{12} + x_{22} + x_{32}}\ge 0.1\) ou \(-0.10x_{12} + 0.90x_{22} – 0.10x_{32} \ge 0\) (R3)

Restrição do % de óleo 2 na gasolina 3 (extra): \(\frac{x_{23}}{x_{13} + x_{23} + x_{33}}\le 0.5\) ou \(0.50x_{13} - 0.50x_{23} – 0.50x_{33} \le 0\) (R4)

Restrição do % de óleo 3 na gasolina 3 (extra): \(\frac{x_{33}}{x_{13} + x_{23} + x_{33}}\ge 0.4\) ou \(-0.40x_{13} - 0.40x_{23} + 0.60x_{33} \le 0\) (R5)

Resposta do Exercício Adicional…

\(x_{ij}\) = número de barris de óleo bruto i usados diariamente para produzir a gasolina j; i = 1, 2, 3; j = 1, 2, 3.

Restrição de demanda das gasolinas:

\(x_{11} + x_{21} + x_{31} \ge 5.000\) (R6: gasolina comum)

\(x_{12} + x_{22} + x_{32} \ge 3.000\) (R7: super)

\(x_{13} + x_{23} + x_{33} \ge 3.000\) (R8: extra)

Restrição de oferta de óleo:

\(x_{11} + x_{12} + x_{13} \le 10.000\) (R9: óleo bruto 1)

\(x_{21} + x_{22} + x_{23} \le 8.000\) (R10: óleo bruto 2)

\(x_{31} + x_{32} + x_{33} \le 7.000\) (R11: óleo bruto 3)

Restrição de produção de barril da refinaria

\(x_{11} + x_{12} + x_{13} +x_{21} + x_{22} + x_{23} + x_{31} + x_{32} + x_{33} \le 20.000\) (R12)

Resposta Final do Exercício Adicional

\(x_{ij}\) = número de barris de óleo bruto i usados diariamente para produzir a gasolina j; i = 1, 2, 3; j = 1, 2, 3.

Max \(Lucro = 3x_{11} + 5x_{12} + 6x_{13} +2x_{21} + 4x_{22} + 5x_{23} + 2x_{31} + 4x_{32} + 5x_{33}\)

Sujeito a

\(0.30x_{11} – 0.70x_{21} – 0.70x_{31} \le 0\) (R1)

\(0.50x_{12} – 0.50x_{22} – 0.50x_{32} \le 0\) (R2)

\(-0.10x_{12} + 0.90x_{22} – 0.10x_{32} \ge 0\) (R3)

\(0.50x_{13} - 0.50x_{23} – 0.50x_{33} \le 0\) (R4)

\(-0.40x_{13} - 0.40x_{23} + 0.60x_{33} \le 0\) (R5)

\(x_{11} + x_{21} + x_{31} \ge 5000\) (R6: gasolina comum)

\(x_{12} + x_{22} + x_{32} \ge 3000\) (R7: super)

\(x_{13} + x_{23} + x_{33} \ge 3000\) (R8: extra)

\(x_{11} + x_{12} + x_{13} \le 10000\) (R9: óleo bruto 1)

\(x_{21} + x_{22} + x_{23} \le 8000\) (R10: óleo bruto 2)

\(x_{31} + x_{32} + x_{33} \le 7000\) (R11: óleo bruto 3)

\(x_{11} + x_{12} + x_{13} +x_{21} + x_{22} + x_{23} + x_{31} + x_{32} + x_{33} \le 20000\) (R12)

\(x_{ij} \ge 0, \space \forall i,j=1,2,3\)

Revisão de conceitos

Escolha a alternativa correta

1- Um problema de transporte é um tipo especial de problema de otimização linear que envolve:

  1. A determinação da rota mais longa entre dois pontos, considerando as distâncias e os obstáculos existentes.

  2. A alocação de recursos limitados para várias atividades, maximizando o lucro total da produção.

  3. A seleção de um conjunto de projetos a serem realizados, respeitando as restrições de tempo e orçamento.

  1. A distribuição de um produto de várias origens para vários destinos, minimizando o custo total do transporte.

Escolha a alternativa correta

2- Em um problema de transporte, a variável de decisão é:

  1. A quantidade de produto que é transportada de uma origem para um destino.

  2. O custo unitário de transporte de um produto de uma origem para um destino.

  3. A capacidade de oferta ou demanda de um produto em uma origem ou destino.

  4. O número de origens ou destinos envolvidos no problema.

Verifique seus acertos

1- Um problema de transporte é um tipo especial de problema de otimização linear que envolve:

  1. A distribuição de um produto de várias origens para vários destinos, minimizando o custo total do transporte.

2- Em um problema de transporte, a variável de decisão é:

  1. A quantidade de produto que é transportada de uma origem para um destino.

Escolha a alternativa correta

3- Uma olaria possui três armazéns centrais que distribuem tijolos a quatro lojas localizadas em diferentes cidades. Os armazéns 1, 2 e 3 possuem capacidade de oferta de 12, 17 e 11 remessas por mês. Cada loja necessita receber no mínimo 10 e no máximo 12 remessas por mês. A distância em km entre cada armazém até as respectivas lojas é conhecida. O custo do frete de cada remessa é de R$100 mais R$0,50/km. O objetivo é minimizar o custo total de transporte. A variável de decisão para o problema é:

  1. \(x_i\) = número de lojas a serem atendidas pelo armazém i, \(i=1,2,3\)

  2. \(x_{ij}\) = custo de envio de 1 remessa do armazém i para a loja j, \(i=1,2,3\) e \(j=1,2,3,4\)

  3. \(x_{ij}\) = número de remessas enviadas do armazém i para a loja j, \(i=1,2,3\) e \(j=1,2,3,4\)

  4. \(x_{ij}\) = número de remessas enviadas da loja i para o armazém j, \(i=1,2,3,4\) e \(j=1,2,3\)

  5. \(x_{ij}\) = distância em km do o armazém i para a loja j, \(i=1,2,3\) e \(j=1,2,3,4\)

Escolha a alternativa correta

4- Uma olaria possui três armazéns centrais que distribuem tijolos a quatro lojas localizadas em diferentes cidades. O armazém possue capacidade de oferta de 20 remessas por mês. Cada loja necessita receber no mínimo 10 e no máximo 12 remessas por mês. A distância em km entre o armazém até as respectivas lojas é de 300 km e 600 km. O custo do frete de cada remessa é de R$100 mais R$0,50/km. O objetivo é minimizar o custo total de transporte. Sabendo que a variável de decisão é \(x_i\) = número de remessas enviada à loja i, (\(i=1,2\)), como deve ser escrita a função objetivo deste problema?

  1. min\(z=100x_1+100x_2\)

  2. min\(z=300x_1+600x_2\)

  3. min\(z=x_1+x_2\)

  4. min\(z=150x_1+300x_2\)

  5. min\(z=250x_1+400x_2\)

Verifique seus acertos

3- Uma olaria possui três armazéns centrais que distribuem tijolos a quatro lojas localizadas em diferentes cidades. Os armazéns 1, 2 e 3 possuem capacidade de oferta de 12, 17 e 11 remessas por mês. Cada loja necessita receber no mínimo 10 e no máximo 12 remessas por mês. A distância em km entre cada armazém até as respectivas lojas é conhecida. O custo do frete de cada remessa é de R$100 mais R$0,50/km. O objetivo é minimizar o custo total de transporte. A variável de decisão para o problema é:

  1. \(x_{ij}\) = número de remessas enviadas do armazém i para a loja j, \(i=1,2,3\) e \(j=1,2,3,4\)

4- A distância em km entre o armazém até as respectivas lojas é de 300 km e 600 km. O custo do frete de cada remessa é de R$100 mais R$0,50/km. O objetivo é minimizar o custo total de transporte. Sabendo que a variável de decisão é \(x_i\) = número de remessas enviada à loja i, (\(i=1,2\)), como deve ser escrita a função objetivo deste problema?

  1. min\(z=250x_1+400x_2\)

pois o custo do frete por remessa para a loja 1 é de \(100+0.5 \cdot 300=250\) e o custo do frete para a loja 2 é de\(100+0.5 \cdot 600=400\)

Exemplos aplicados em diversos contextos

Veremos nesta aula modelos relacionados ao problema clássico de planejamento da produção.

Um modelo linear para planejamento da produção é uma ferramenta matemática que busca determinar a quantidade ótima de cada produto a ser fabricado/processado em um determinado período, de modo a maximizar o lucro ou minimizar o custo da produção. O modelo considera os recursos disponíveis, como matéria-prima, mão-de-obra, máquinas e espaço, e as restrições que limitam a capacidade produtiva, como demanda, qualidade e tempo.

Formulação de um problema de planejamento no contexto da engenharia:

Uma concreteira possue dois tipos de caminhão betoneira (tipo 1 e tipo 2) e planeja sua manutenção periodicamente.

Cada tipo de caminhão requer certa quantidade de tempo para a verificação do sistema hidraulico, lavagem do tambor e lubrificação do sistema hidraulico. Especificamente, cada unidade do tipo 1 requer 3 horas para verificação do sistema hidraulico, 4 horas para lavagem do tambor e 1 hora para lubrificação do sistema hidraulico. Os números correspondentes ao tipo 2 são 3.5h, 5h e 1.5h.

Durante a próxima semana, o setor de manutenção tem disponíveis 120 horas para verificação do sistema hidraulico, 160 horas de para lavagem do tambor e 48 horas para lubrificação do sistema hidraulico.

Formule o modelo para o problema com o objetivo de maximizar o caminhões betoneira que passarão pela manutenção na próxima semana.

Elementos da modelagem:

Critério de Otimalidade: Maximizar o número de betoneiras que passarão pela manutenção na próxima semana.

Definição das variáveis de decisão:

\(x_{i}\): número de betoneiras do tipo \(i\) que passarão por manutenção na próxima semana, \(i=1,2\)

Função Objetivo:

max \(z=x_1+x_2\)

Elementos da modelagem…:

Hipótese simplificadora: Não serão considerados tempos de reposicionamento das betoneiras.

Restrições Estruturais

  • Restrição para o tempo disponível na verificação do sistema hidraulico

\(3x_{1} + 3.5x_{2} \le 120\)

  • Restrição para o tempo disponível na lavagem do tambor

\(4x_{1} + 5x_{2} \le 160\)

  • Restrição para o tempo disponível na lubrificação do sistema hidraulico

\(x_{1} + 1.5x_{2} \le 48\)

Restrições de Sinal

\(x_{i} \ge 0, \space \forall i=1,2\)

O modelo completo

\(x_{i}\): número de betoneiras do tipo \(i\) que passarão por manutenção na próxima semana, \(i=1,2\)

max \(z=x_1+x_2\)

sujeito a

\(3x_{1} + 3.5x_{2} \le 120\)

\(4x_{1} + 5x_{2} \le 160\)

\(x_{1} + 1.5x_{2} \le 48\)

\(x_{i} \ge 0, \space \forall i=1,2\)

Obtendo a resposta do modelo

library(lpSolve) #precisa instalar o pacote caso não tenha
coef.objetivo = c(1,1)
R1 = c(3, 3.5)
R2 = c(4, 5)
R3 = c(1, 1.5)
R4 = c(0,1)
restricoes = rbind(R1,R2,R3,R4)
b = c(120, 160, 48,5)
sinal = c("<=","<=","<=",">=")
solucao = lpSolve::lp(direction = "max",
                      objective.in = coef.objetivo,
                      const.mat = restricoes, 
                      const.dir = sinal, 
                      const.rhs = b, all.int = F)
solucao
Success: the objective function is 38.75 
solucao$solution
[1] 33.75  5.00

O modelo indica que deve ser realizado um total de 38.75 manutenções.

Interpretando a solução

var x
x1 33.75
x2 5.00

40 betoneiras do tipo 1 deverão passar por manutenção e esta é a capacidade máxima do setor para a próxima semana.

  • Verifique quanto de horas cada etapa utilizará para realizar a manutenção.

  • Há sobra de horas em alguma etapa?

  • Resolva o problema se incluirmos uma restrição de que pelo menos 4 betoneiras do tipo 2 devem passar por manutenção. O que muda no modelo? O que muda na solução?

Resposta das Interpretações

A solução:

Success: the objective function is 40 
[1] 40  0
Betoneira Quant_manut
T1 40
T2 0
  • Verifique quanto de horas cada setor utilizará para realizar a manutenção.
Setores Tempo_Utilizado
verificação do sistema hidraulico 120
lavagem do tambor 160
lubrificação do sistema hidraulico 40
  • Há sobra de horas em algum setor?
Setores Tempo_Utilizado Tempo_disp Sobra
verificação do sistema hidraulico 120 120 0
lavagem do tambor 160 160 0
lubrificação do sistema hidraulico 40 48 8

Solução

  • Resolva o problema se incluirmos uma restrição de que pelo menos 4 betoneiras tipo 2 devem passar por manutenção. O que muda no modelo? O que muda na solução?
library(lpSolve) #precisa instalar o pacote caso não tenha
coef.objetivo = c(1,1)
R1 = c(3, 3.5)
R2 = c(4, 5)
R3 = c(1, 1.5)
R4 = c(0,1) #acrescenta nova restrição
restricoes = rbind(R1,R2,R3,R4) #R4
b = c(120, 160, 48,4) #R4
sinal = c("<=","<=","<=", ">=") #R4
solucao = lpSolve::lp(direction = "max",
                      objective.in = coef.objetivo,
                      const.mat = restricoes, 
                      const.dir = sinal, 
                      const.rhs = b, all.int = T)
solucao
Success: the objective function is 39 
solucao$solution
[1] 35  4
x=c(paste0("T",c(1,2)))
y=solucao$solution
knitr::kable(data.frame(Betoneira=x,Quant_manut=solucao$solution))
Betoneira Quant_manut
T1 35
T2 4

Aumentamos no modelo mais uma restrição do tipo \(0x1+1x2\ge4\), forçando a solução mudar para no mínimo 4 betoneiras tipo 2 em manutenção, com isso, a função objetivo passou para 39 betoneiras em manutenção, comparando com o modelo anterior, observa-se uma redução no total de betoneiras em manutenção.

Revisão de conceitos

Escolha a alternativa correta

1- Qual é a variável de decisão de um modelo linear para planejamento da produção?

  1. A quantidade ótima de cada produto a ser fabricado/processado

  2. O lucro ou o custo da produção

  3. Os recursos disponíveis, como matéria-prima, mão-de-obra, máquinas e espaço

  4. As restrições que limitam a capacidade produtiva, como demanda, qualidade e tempo

Escolha a alternativa correta

2- Uma escola de especialização possui três tipos de pilotos: Aviadores, Asas Rotativas e Patrulha ou Reconhecimento. Durante o treinamento, os aviadores utilizam as aeronaves tipo A1; os pilotos de asas rotativas utilizam aeronaves tipo A2 e os pilotos de patrulha ou reconhecimento utilizam as aeronaves tipo A3 para treinamento. Cada tipo de piloto utilizará 120h, 130h e 100h em seu respectivo tipo de aeronave de treinamento. Suponha que haja disponível na previsão orçamentária do próximo ano um quantitativo de no máximo 10.000h para ser distribuída entre os pilotos. O objetivo da escola é determinar o número máximo de vagas disponíveis. Sendo \(x_i\) a quantidade de vagas de pilotos em formação do tipo i, qual é a restrição que representa o limite de horas de voo disponível?

  1. \(x_1+x_2+x_3 \le 1000\)

  2. \(x_1+x_2+x_3 \le 1000/3\)

  3. \(12x_1+13x_2+10x_3 \le 1000/3\)

  4. \(12x_1+13x_2+10x_3 \le 1000\)

  5. \(12x_1+13x_2+10x_3 \le 10000/350\)

Verifique seus acertos

1- Qual é a variável de decisão de um modelo linear para planejamento da produção?

  1. A quantidade ótima de cada produto a ser fabricado/processado

2- …Sendo \(x_i\) a quantidade de vagas de pilotos em formação do tipo i, qual é a restrição que representa o limite de horas de voo disponível?

  1. \(12x_1+13x_2+10x_3 \le 1000\)

Escolha a alternativa correta

3- Considere a solução ótima para determinado problema de programação linear com \(x_1=3\) e \(x_2=7\). Suponha que seja apenas acrescentada uma nova restrição ao problema: \(5x_1 - 2x_2 \le 2\). Analise as afirmativas e escolha a opção correta:

I - A solução ótima não se altera quando acrescentamos a nova restrição mas modifica o valor da função objetivo.

II - A nova restrição gera uma nova solução ótima com o mesmo valor da função objetivo que a anterior.

III - A nova restrição não modifica a solução ótima e mantém o mesmo valor da função objetivo.

  1. Todas as afirmativas são verdadeiras.

  2. Todas as afirmativas são falsas.

  3. Apenas a alternativa I é verdadeira.

  4. Apenas as alternativas II é verdadeira.

  5. Apenas a alternativa III é verdadeira.

Escolha a alternativa correta

4- Em cada definição de variável de decisão há uma imprecisão. Identifique-a e corrija.

  1. \(x_i\) = número de produtos a ser adquirido pelo setor de compras, \(i=1,2,3,4\)

  2. \(x_i\) = quantidade de arroz a ser adquirido do fornecedor i. \(i=1,2,3\)

  3. \(x_i\) = tempo de manutenção alocado à aeronave do tipo i. \(i=1,2\)

  4. \(x_{ij}\) = produto i cidade j \(i=1,2\) e \(j=1,2,3\)

  5. \(x_{i}\) = ingrediente i \(i=1,2\)

Verifique seus acertos

3- Considere a solução ótima para determinado problema de programação linear com \(x_1=3\) e \(x_2=7\). Suponha que seja apenas acrescentada uma nova restrição ao problema: \(5x_1 - 2x_2 \le 2\). Analise as afirmativas e escolha a opção correta:

  1. Apenas a alternativa III é verdadeira.

III - A nova restrição não modifica a solução ótima e mantém o mesmo valor da função objetivo.

pois \(5\cdot3 - 2\cdot 7=1 \le 2\) e a função objetivo não foi modificada.

4- Resposta possível, pode variar, o gabarito é uma sugestão.

Observe a imprecisão quanto à unidade de medida ou a ausência de verbo na definição.

  1. \(x_i\) = número de produtos do tipo i a ser adquirido pelo setor de compras, \(i=1,2,3,4\)

  2. \(x_i\) = quantidade de arroz em kg a ser adquirido do fornecedor i. \(i=1,2,3\)

  3. \(x_i\) = tempo de manutenção em horas alocado à aeronave do tipo i. \(i=1,2\)

  4. \(x_{ij}\) = envio de unidades/lotes/toneladas do produto i para a cidade j. \(i=1,2\) e \(j=1,2,3\)

  5. \(x_{i}\) = quantidade em kg do ingrediente i a ser adquirido. \(i=1,2\)

Exemplos aplicados a diversos contextos

Veremos nesta aula um modelo complexo aplicado ao planejamento de uma missão especial.

Formulação do problema:

O planejamento para implosão de uma edificação localizada em determinada região prevê a evacuação de moradores. São no total 8.000 homens, 7.900 mulheres e 1.850 crianças a transportar em no máximo 10 horas. Cada pessoa poderá levar até 10 quilos de bagagem pessoal. Toda a região foi isolada e só circulam veículos militares autorizados para que se evitem acidentes e engarrafamentos. Para efetuar a evacuação estão disponíveis 6 tipos de meios de transporte com um determinado custo por viagem e restrições quanto a quantidade disponível, a capacidade de transportar pessoas e bagagem e o tempo de deslocamento. O objetivo é elaborar o programa de evacuação que minimize o custo total da operação.

Dados do problema:…

Os tipos de veículos são: veículo de 6 ton (V1), veículo de 1/4 ton (V2), helicóptero (V3), ônibus (V4), microonibus (V5) e carros de passeio (V6).

Os carros de passeio só poderão fazer uma viagem de evacuação, ficando, por segurança, retidos fora da área de perigo.

Dados do problema:…

Dados V1 V2 V3 V4 V5 V6
Qte de Unidades Disponíveis 10 20.00 15.00 10.00 5.0 60.0
Capacidade de Transporte (n. pessoas) 20 5.00 10.00 45.00 30.0 5.0
Capacidade para Bagagem (kg) 1000 20.00 50.00 1000.00 500.0 100.0
Custo por Viagem (R$) 10 4.00 75.00 5.00 3.0 2.0
Tempo por Viagem (h) 1 0.75 0.17 0.67 0.5 0.5

Atenção: o tempo por viagem foi convertido para horas, alguns valores sofreram arredondamento o que pode impactar nos parâmetros do modelo e consequentemente na solução. EX: 0.17h é a conversão de 10 min; 0.67h é a conversão de 40 min.

Objetivo

Formular o programa de evacuação que minimize o custo total da operação.

Critério de Otimalidade: Minimizar o custo total da operação.

Definição das variáveis de decisão:

\(x_{i}\): número de viagens do veículo do tipo \(V_i\), \(i=1,2,3,4,5,6\)

Os tipos de veículos são: veículo de 6 ton (V1), veículo de 1/4 ton (V2), helicóptero (V3), ônibus (V4), microonibus (V5) e carros de passeio (V6).

Elementos da modelagem:

Dados V1 V2 V3 V4 V5 V6
4 Custo por Viagem (R$) 10 4 75 5 3 2

Função Objetivo:

min \(z=10x_1+4x_2+75x_3+5x_4+3x_5+2x_6\)

Elementos da modelagem…:

Hipótese simplificadora: 1- Não serão consideradas composições familiares. 2- As cargas não serão transportadas com seu proprietário. 3- Os veículos partem com sua capacidade máxima de carga.

Total de pessoas a ser transportada: 17.750

Total de bagagem a ser transportada: 177.500 kg

Elementos da modelagem…:

Dados V1 V2 V3 V4 V5 V6
2 Capacidade de Transporte (n. pessoas) 20 5 10 45 30 5
3 Capacidade para Bagagem (kg) 1000 20 50 1000 500 100

Restrições Estruturais

  • Restrição de capacidade do transporte de pessoas nos veículos

\(20x_{1} + 5x_2+10x_3+45x_4+30x_5+5x_6 \ge 17750\)

  • Restrição de capacidade do transporte de bagagens nos veículos

\(1000x_{1} + 20x_2+50x_3+1000x_4+500x_5+100x_6 \ge 177500\)

Elementos da modelagem…:

Hipótese simplificadora: 4- Não serão considerados os tempos de reposicionamento dos veículos.

Tempo de operação: 10h

Elementos da modelagem…:

Dados V1 V2 V3 V4 V5 V6
1 Qte de Unidades Disponíveis 10 20.00 15.00 10.00 5.0 60.0
5 Tempo por Viagem (h) 1 0.75 0.17 0.67 0.5 0.5
  • Restrições devido ao número de viagens em cada tipo de veículo

\(x_{1} \le \frac{10}{1} \cdot 10\) ou seja \(x_{1} \le 100\)

\(x_{2} \le \frac{10}{0.75} \cdot 20\) ou seja \(x_{2} \le 266\)

\(x_{3} \le \frac{10}{0.17} \cdot 15\) ou seja \(x_{3} \le 882\) o correto aqui é 900 e não 882 pois 0.17 h é uma aproximação para 10 min.

\(x_{4} \le \frac{10}{0.67} \cdot 10\) ou seja \(x_{4} \le 150\) idem a obs anterior 0.67 é aproximação para 40 min.

\(x_{5} \le \frac{10}{0.5} \cdot 5\) ou seja \(x_{5} \le 100\)

\(x_{6} \le 60\) pois cada veículo de passeio faz apenas uma viagem

Restrições de Sinal: \(x_{i} \ge 0, \space \forall i=1,2,3,4,5,6\)

O modelo completo

\(x_{i}\): número de viagens do veículo do tipo \(V_i\), \(i=1,2,3,4,5,6\)

min \(z=10x_1+4x_2+75x_3+5x_4+3x_5+2x_6\)

sujeito a

\(20x_{1} + 5x_2+10x_3+45x_4+30x_5+5x_6 \ge 17750\)

\(1000x_{1} + 20x_2+50x_3+1000x_4+500x_5+100x_6 \ge 177500\)

\(x_{1} \le 100\)

\(x_{2} \le 266\)

\(x_{3} \le 900\)

\(x_{4} \le 150\)

\(x_{5} \le 100\)

\(x_{6} \le 60\)

\(x_{i} \ge 0, \space \forall i=1,2,3,4,5,6\)

Obtendo a resposta do modelo

library(lpSolve) #precisa instalar o pacote caso não tenha
coef.objetivo = c(10,4,75,5,3,2)
R1 = c(10,5,10,45,30,5)
R2 = c(1000,20, 50, 1000,500,100)
R3 = c(1, 0,0,0,0,0)
R4 = c(0, 1,0,0,0,0)
R5 = c(0, 0,1,0,0,0)
R6 = c(0, 0,0,1,0,0)
R7 = c(0, 0,0,0,1,0)
R8 = c(0, 0,0,0,0,1)
restricoes = rbind(R1,R2,R3,R4,R5,R6,R7,R8)
b = c(17750, 177500, 100, 260, 900, 150, 100, 60)
sinal = c(">=",">=","<=","<=","<=","<=", "<=","<=")
solucao = lpSolve::lp(direction = "min",
                      objective.in = coef.objetivo,
                      const.mat = restricoes, 
                      const.dir = sinal, 
                      const.rhs = b, all.int = F)
solucao
Success: the objective function is 43710 
solucao$solution
[1] 100 260 540 150 100  60

O modelo indica que deve ser realizado um total de 1210 viagens e a operação terá um custo mínimo de R$43.710,00

Interpretando a solução

var=c(paste0("x",1:6))
knitr::kable(result<-data.frame(var,x=solucao$solution))
var x
x1 100
x2 260
x3 540
x4 150
x5 100
x6 60

Para esta operação serão necessárias 1210 viagens com um custo mínimo de R$43.710,00 sendo, 100 viagens com o veículo de 6 ton (V1), 260 viagens com o veículo de 1/4 ton (V2), 540 viagens com o helicóptero (V3), 150 viagens com o ônibus (V4), 100 viagens com o microonibus (V5) e 60 viagens com os carros de passeio (V6)

Análises complementares

  • Verifique quanto de bagagem será transportada com essa solução.
[1] 338200
  • Há capacidade ociosa de carga?
[1] 160700
  • Até quanto poderíamos aumentar a bagagem individual de cada pessoa sem alterar a solução ótima?
[1] 9.053521

Análises complementares

  • E se fosse permitido 20kg de bagagem por pessoa, o que mudaria na solução?
library(lpSolve) #precisa instalar o pacote caso não tenha
coef.objetivo = c(10,4,75,5,3,2)
R1 = c(10,5,10,45,30,5)
R2 = c(1000,20, 50, 1000,500,100)
R3 = c(1, 0,0,0,0,0)
R4 = c(0, 1,0,0,0,0)
R5 = c(0, 0,1,0,0,0)
R6 = c(0, 0,0,1,0,0)
R7 = c(0, 0,0,0,1,0)
R8 = c(0, 0,0,0,0,1)
restricoes = rbind(R1,R2,R3,R4,R5,R6,R7,R8)
b = c(17750, 20*17750, 100, 260, 900, 150, 100, 60)
sinal = c(">=",">=","<=","<=","<=","<=", "<=","<=")
solucao = lpSolve::lp(direction = "min",
                      objective.in = coef.objetivo,
                      const.mat = restricoes, 
                      const.dir = sinal, 
                      const.rhs = b, all.int = F)
solucao
Success: the objective function is 68910 
solucao$solution
[1] 100 260 876 150 100  60

Análises complementares

  • E se trocássemos 2 helicópteros por 1 veículo de 6ton, mantendo 20kg de bagagem por pessoa?

Neste caso mudará os limites de recurso da restrição 3 e 5.

library(lpSolve) #precisa instalar o pacote caso não tenha
coef.objetivo = c(10,4,75,5,3,2)
R1 = c(10,5,10,45,30,5)
R2 = c(1000,20, 50, 1000,500,100)
R3 = c(1, 0,0,0,0,0)
R4 = c(0, 1,0,0,0,0)
R5 = c(0, 0,1,0,0,0)
R6 = c(0, 0,0,1,0,0)
R7 = c(0, 0,0,0,1,0)
R8 = c(0, 0,0,0,0,1)
restricoes = rbind(R1,R2,R3,R4,R5,R6,R7,R8)
b = c(17750, 20*17750, 110, 260, 780, 150, 100, 60)
sinal = c(">=",">=","<=","<=","<=","<=", "<=","<=")
solucao = lpSolve::lp(direction = "min",
                      objective.in = coef.objetivo,
                      const.mat = restricoes, 
                      const.dir = sinal, 
                      const.rhs = b, all.int = F)
solucao
Success: the objective function is 54010 
solucao$solution
[1] 110 260 676 150 100  60

Revise

  • Terminou? Revise os conceitos e modelos das aulas anteriores.

  • Revise os conceitos sobre modelagem.

  • Revise as hipóteses dos modelos de otimização linear.

  • Revise os itens necessários que um modelo deve conter.

  • Refaça todos os modelos propostos em aula.