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 |
AULA 3: MODELAGEM MATEMÁTICA DE PROBLEMAS LINEARES
PPGEC/UFF
Verifique ao final desta aula se você é capaz de:
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 |
| Destino | Recebido_ton | Demanda |
|---|---|---|
| Cidade 1 | 20 | 20 |
| Cidade 2 | 29 | 28 |
| Cidade 3 | 30 | 30 |
| Origem | Uso | Disponível | Sobra |
|---|---|---|---|
| T 1 | 1 | 8 | 7 |
| T 2 | 2 | 15 | 13 |
| T 3 | 11 | 11 | 0 |
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}\)
\(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)
\(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)
\(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\)
1- Um problema de transporte é um tipo especial de problema de otimização linear que envolve:
A determinação da rota mais longa entre dois pontos, considerando as distâncias e os obstáculos existentes.
A alocação de recursos limitados para várias atividades, maximizando o lucro total da produção.
A seleção de um conjunto de projetos a serem realizados, respeitando as restrições de tempo e orçamento.
2- Em um problema de transporte, a variável de decisão é:
A quantidade de produto que é transportada de uma origem para um destino.
O custo unitário de transporte de um produto de uma origem para um destino.
A capacidade de oferta ou demanda de um produto em uma origem ou destino.
O número de origens ou destinos envolvidos no problema.
1- Um problema de transporte é um tipo especial de problema de otimização linear que envolve:
2- Em um problema de transporte, a variável de decisão é:
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 é:
\(x_i\) = número de lojas a serem atendidas pelo armazém i, \(i=1,2,3\)
\(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\)
\(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\)
\(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\)
\(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\)
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?
min\(z=100x_1+100x_2\)
min\(z=300x_1+600x_2\)
min\(z=x_1+x_2\)
min\(z=150x_1+300x_2\)
min\(z=250x_1+400x_2\)
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 é:
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?
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\)
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.
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.
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\)
Hipótese simplificadora: Não serão considerados tempos de reposicionamento das betoneiras.
Restrições Estruturais
\(3x_{1} + 3.5x_{2} \le 120\)
\(4x_{1} + 5x_{2} \le 160\)
\(x_{1} + 1.5x_{2} \le 48\)
Restrições de Sinal
\(x_{i} \ge 0, \space \forall i=1,2\)
\(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\)
Utilize o phpsimplex e veja o resultado. http://www.phpsimplex.com/simplex/simplex.htm?l=pt
Utilize o R e veja o resultado
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)
solucaoSuccess: the objective function is 38.75
[1] 33.75 5.00
O modelo indica que deve ser realizado um total de 38.75 manutenções.
| 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?
A solução:
Success: the objective function is 40
[1] 40 0
| Betoneira | Quant_manut |
|---|---|
| T1 | 40 |
| T2 | 0 |
| Setores | Tempo_Utilizado |
|---|---|
| verificação do sistema hidraulico | 120 |
| lavagem do tambor | 160 |
| lubrificação do sistema hidraulico | 40 |
| 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 |
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)
solucaoSuccess: the objective function is 39
[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.
1- Qual é a variável de decisão de um modelo linear para planejamento da produção?
A quantidade ótima de cada produto a ser fabricado/processado
O lucro ou o custo da produção
Os recursos disponíveis, como matéria-prima, mão-de-obra, máquinas e espaço
As restrições que limitam a capacidade produtiva, como demanda, qualidade e tempo
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?
\(x_1+x_2+x_3 \le 1000\)
\(x_1+x_2+x_3 \le 1000/3\)
\(12x_1+13x_2+10x_3 \le 1000/3\)
\(12x_1+13x_2+10x_3 \le 1000\)
\(12x_1+13x_2+10x_3 \le 10000/350\)
1- Qual é a variável de decisão de um modelo linear para planejamento da produção?
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?
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.
Todas as afirmativas são verdadeiras.
Todas as afirmativas são falsas.
Apenas a alternativa I é verdadeira.
Apenas as alternativas II é verdadeira.
Apenas a alternativa III é verdadeira.
4- Em cada definição de variável de decisão há uma imprecisão. Identifique-a e corrija.
\(x_i\) = número de produtos a ser adquirido pelo setor de compras, \(i=1,2,3,4\)
\(x_i\) = quantidade de arroz a ser adquirido do fornecedor i. \(i=1,2,3\)
\(x_i\) = tempo de manutenção alocado à aeronave do tipo i. \(i=1,2\)
\(x_{ij}\) = produto i cidade j \(i=1,2\) e \(j=1,2,3\)
\(x_{i}\) = ingrediente i \(i=1,2\)
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:
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.
\(x_i\) = número de produtos do tipo i a ser adquirido pelo setor de compras, \(i=1,2,3,4\)
\(x_i\) = quantidade de arroz em kg a ser adquirido do fornecedor i. \(i=1,2,3\)
\(x_i\) = tempo de manutenção em horas alocado à aeronave do tipo i. \(i=1,2\)
\(x_{ij}\) = envio de unidades/lotes/toneladas do produto i para a cidade j. \(i=1,2\) e \(j=1,2,3\)
\(x_{i}\) = quantidade em kg do ingrediente i a ser adquirido. \(i=1,2\)
Veremos nesta aula um modelo complexo aplicado ao planejamento de uma missão especial.
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.
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 | 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.
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).
| 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\)
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
| 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
\(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\)
Hipótese simplificadora: 4- Não serão considerados os tempos de reposicionamento dos veículos.
Tempo de operação: 10h
| 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 |
\(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\)
\(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\)
Utilize o phpsimplex e veja o resultado. http://www.phpsimplex.com/simplex/simplex.htm?l=pt
Utilize o R e veja o resultado
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)
solucaoSuccess: the objective function is 43710
[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
| 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)
[1] 338200
[1] 160700
[1] 9.053521
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)
solucaoSuccess: the objective function is 68910
[1] 100 260 876 150 100 60
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)
solucaoSuccess: the objective function is 54010
[1] 110 260 676 150 100 60
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.
Mestrado em Engenharia Civil/UFF