Departamento de Computação Instituto de Ciências … · bolos. Marco Antonio M. Carvalho ......

31
PCC173 - Otimização em Redes Marco Antonio M. Carvalho Departamento de Computação Instituto de Ciências Exatas e Biológicas Universidade Federal de Ouro Preto 20 de março de 2018 Marco Antonio M. Carvalho (UFOP) PCC173 20 de março de 2018 1 / 31

Transcript of Departamento de Computação Instituto de Ciências … · bolos. Marco Antonio M. Carvalho ......

PCC173 - Otimização em Redes

Marco Antonio M. Carvalho

Departamento de ComputaçãoInstituto de Ciências Exatas e Biológicas

Universidade Federal de Ouro Preto

20 de março de 2018

Marco Antonio M. Carvalho (UFOP) PCC173 20 de março de 2018 1 / 31

Avisos

Site da disciplina:I http://www.decom.ufop.br/marco/

Lista de e-mails:I [email protected]

Para solicitar acesso:I http://groups.google.com/group/pcc173

Marco Antonio M. Carvalho (UFOP) PCC173 20 de março de 2018 2 / 31

Conteúdo

1 Programação Linear Inteira

2 Resolvedores de Programação Linear

3 Exemplos de Resolução de Programas Lineares

Marco Antonio M. Carvalho (UFOP) PCC173 20 de março de 2018 3 / 31

Avisos

Marco Antonio M. Carvalho (UFOP) PCC173 20 de março de 2018 4 / 31

Programação Linear Inteira

ExemploUma confeitaria produz dois tipos de bolo de sorvete: chocolate e creme.

Cada lote de bolo de chocolate possui um lucro associado, demandamínima, demanda máxima, e tempo de preparo, descritos na tabela abaixo.

Bolo Lucro Demanda Mínima Demanda Máxima TempoCreme R$ 1,00 – 40 lotes 3 horas

Chocolate R$ 3,00 10 lotes 60 lotes 2 horas

Considerando que há uma exigência mínima de produção de 20 lotes debolo por dia, e que as máquinas disponibilizam 180 horas para produção,determine um esquema de produção que maximize o lucro com a venda dosbolos.

Marco Antonio M. Carvalho (UFOP) PCC173 20 de março de 2018 5 / 31

Programação Linear Inteira

ExemploAs variáveis de decisão xi indicam a quantidade de lotes de bolos do tipoi=(1-creme e 2-chocolate).

A função objetivo visa maximizar o lucro com a produção dos bolos.

As restrições são relacionadas à disponibilidade de maquinário, demandasmínimas e máximas por bolos.

As variáveis não podem assumir valores negativos, portanto, adicionamosrestrições de não-negatividade.

Porém, há um detalhe adicional: não é possível produzir meio lote de cincobolos de chocolate, ou 1,012 lote de quatro bolos de creme...

Adicionamos então restrições de integralidade, caracterizando assim umPrograma Linear Inteiro (PLI).

Marco Antonio M. Carvalho (UFOP) PCC173 20 de março de 2018 6 / 31

Programação Linear Inteira

Programação Linear Inteira PuraModelo de programação linear, porém, só com variáveis de decisão inteiras.

Programação Linear Inteira MistaModelo de programação linear, com variáveis de decisão inteiras econtínuas.

Programação Linear Inteira BináriaModelo de programação linear, porém, só com variáveis de decisão binárias.

Marco Antonio M. Carvalho (UFOP) PCC173 20 de março de 2018 7 / 31

Programação Linear Inteira

Exemplo 1

max x1 + 3x2 (1)sujeito a :

x1 ≤ 40 (2)x2 ≤ 60 (3)x2 ≥ 10 (4)x1 + x2 ≥ 20 (5)3x1 + 2x2 ≤ 180 (6)x1 ≥ 0 (7)x2 ≥ 0 (8)x1, x2 ∈ Z+ (9)

Marco Antonio M. Carvalho (UFOP) PCC173 20 de março de 2018 8 / 31

Exemplo 1

Representação gráfica da matriz de restrições do exemplo.

Marco Antonio M. Carvalho (UFOP) PCC173 20 de março de 2018 9 / 31

Programação Linear Inteira

Características dos Modelos de PLIEm inúmeras situações, as variáveis de decisão não poderão assumir valorescontínuos.

Por exemplo, quando se referem a pessoas, configurações, objetos físicos,etc, soluções fracionárias perdem o sentido prático.

Poderíamos pensar que este problema não seria tão grave setrabalhássemos com uma formulação contínua e, após a solução final,empregássemos alguma estratégia de arredondamento.

O que pode parecer, ingenuamente, uma solução “razoável”, pode ser umapéssima idéia na prática.

Marco Antonio M. Carvalho (UFOP) PCC173 20 de março de 2018 10 / 31

Programação Linear Inteira

Características dos Modelos de PLIComo é possível observar na representação gráfica da matriz de restrições,os pontos A, B, C, D, E e F do polígono de soluções possuem coordenadasinteiras, o que é um fenômeno raro.

Nesta situação solucionar um problema de programação linear com variáveiscontínuas equivale a solucionar um problema de programação inteira.

Ponto Coordenadas Função ObjetivoA (40,10) 70B (40, 30) 130C (20, 60) 200D (0, 60) 180E (0, 20) 60F (10, 10) 40

Marco Antonio M. Carvalho (UFOP) PCC173 20 de março de 2018 11 / 31

Programação Linear Inteira

Características dos Modelos de PLIComo é possível observar na representação gráfica da matriz de restrições,os pontos A, B, C, D, E e F do polígono de soluções possuem coordenadasinteiras, o que é um fenômeno raro.

Nesta situação solucionar um problema de programação linear com variáveiscontínuas equivale a solucionar um problema de programação inteira.

Ponto Coordenadas Função ObjetivoA (40,10) 70B (40, 30) 130C (20, 60) 200D (0, 60) 180E (0, 20) 60F (10, 10) 40

Marco Antonio M. Carvalho (UFOP) PCC173 20 de março de 2018 12 / 31

Programação Linear Inteira

Características dos Modelos de PLIA equivalência entre solucionar um PL com variáveis contínuas e solucionarum PLI não é o caso comum.

O programa a seguir ilustra a necessidade de arredondamento e como isto éum problema grave.

Marco Antonio M. Carvalho (UFOP) PCC173 20 de março de 2018 13 / 31

Programação Linear Inteira

Características dos Modelos de PLI

max x1 + 19x2 (1)sujeito a :

x1 + 20x2 ≤ 50 (2)x1 + x2 ≤ 20 (3)x1 ≥ 0 (4)x2 ≥ 0 (5)x1, x2 ∈ Z+ (6)

A solução ótima para PL é x∗1 = 1889 , x∗2 = 111

19 , e z∗0 = 48 819 .

Marco Antonio M. Carvalho (UFOP) PCC173 20 de março de 2018 14 / 31

Programação Linear Inteira

Características dos Modelos de PLIAplicando uma estratégia de arredondamento, providenciando uma buscaracional em torno do ponto ótimo contínuo, teríamos:

Pontos Examinados (coordenadas) Função Objetivox∗1 = 19 x∗2 = 2 inviávelx∗1 = 19 x∗2 = 1 38x∗1 = 18 x∗2 = 2 inviávelx∗1 = 18 x∗2 = 1 37

Contudo, a solução ótima para o PLI é obtida com x∗1 = 10 e x∗2 = 2,resultando em z∗0 = 48, um erro de 24% no arredondamento.Com um número maior de variáveis e com esta técnica de arredondamento,teríamos uma derrocada completa no esforço de modelagem e solução.

Marco Antonio M. Carvalho (UFOP) PCC173 20 de março de 2018 15 / 31

Programação Linear Inteira

Obtenção de Soluções InteirasExistem vários métodos específicos para obtenção de soluções inteirasexatas de um problema de programação linear:

I Branch-and-Bound ;I Enumeração Implícita;I Restrições Surrogate;I Cortes Inteiros (Primais e Duais);I Cortes Combinatórios;I Cortes de Interseção;I Método de Decomposição de Benders;I Branch-and-Cut;I Teoria de Grupos;I etc.

Marco Antonio M. Carvalho (UFOP) PCC173 20 de março de 2018 16 / 31

Programação Linear Inteira

Obtenção de Soluções InteirasHá uma diversidade de ferramentas de modelagem e resolvedores deprogramação linear.

Em comum eles têm a implementação do método Simplex (Revisado) e doMétodo de Pontos Interiores (Primal Dual).

I IBM ILOG CPLEX;I GUROBI;I GNU Linear Programming Kit – GLPK;I COIN-OR CLP;I LINDO;I Xpress Optimizer;I Excel;I etc.

Marco Antonio M. Carvalho (UFOP) PCC173 20 de março de 2018 17 / 31

Resolução de Programas Lineares

ExemplosVejamos agora a solução dos exemplos da aula anterior usando aferramenta Solver do Excel.

Marco Antonio M. Carvalho (UFOP) PCC173 20 de março de 2018 18 / 31

Exemplos de Resolução de Programas Lineares

Exemplo 1 – PL ContínuaUma metalúrgica deseja maximizar sua receita bruta. A tabela abaixoindica a proporção de cada material na mistura para obtenção de umatonelada das ligas passíveis de fabricação.

O preço está cotado em Reais, e as restrições de disponibilidade estãoexpressas em toneladas.

Liga Especial de Liga Especial de DisponibilidadeBaixa Resistência Alta Resistência de Matéria Prima

Cobre 0,5 0,2 16Zinco 0,25 0,3 11

Chumbo 0,25 0,5 15Preço de Venda 3.000 5.000

Marco Antonio M. Carvalho (UFOP) PCC173 20 de março de 2018 19 / 31

Exemplos de Resolução de Programas Lineares

Exemplo 1 – PL Contínua

max 3000x1 + 5000x2 (1)sujeito a :

0, 5x1 + 0, 2x2 ≤ 16 (2)0, 25x1 + 0, 3x2 ≤ 11 (3)0, 25x1 + 0, 5x2 ≤ 15 (4)x1 ≥ 0 (5)x2 ≥ 0 (6)

Marco Antonio M. Carvalho (UFOP) PCC173 20 de março de 2018 20 / 31

Exemplos de Resolução de Programas Lineares

Exemplo 2 – PL ContínuaEm uma dieta para redução calórica, é necessário determinar asquantidades de certos alimentos que deverão ser ingeridos diariamente, demaneira que requisitos nutricionais sejam satisfeitos a custo mínimo.

A tabela abaixo expressa os requisitos nutricionais de alguns alimentos emtermos de vitaminas A, C e D, controlados por sua quantidade mínimanecessária.

Leite Carne Peixe Salada Requisito Nutricional(Litro) (kg) (kg) (100g) Mínimo

A 2 mg 2 mg 10 mg 20 mg 11 mgC 50 mg 20 mg 10 mg 30 mg 70 mgD 80 mg 70 mg 10 mg 80 mg 250 mg

Custo 2 reais 4 reais 1,50 real 1 real

Marco Antonio M. Carvalho (UFOP) PCC173 20 de março de 2018 21 / 31

Exemplos de Resolução de Programas Lineares

Exemplo 2 – PL Contínua

min 2xl + 4xc + 1, 5xp + xs (1)sujeito a :

2xl + 2xc + 10xp + 20xs ≥ 11 (2)50xl + 20xc + 10xp + 30xs ≥ 70 (3)80xl + 70xc + 10xp + 80xs ≥ 250 (4)xl ≥ 0, xc ≥ 0, xp ≥ 0, xs ≥ 0 (5)

Marco Antonio M. Carvalho (UFOP) PCC173 20 de março de 2018 22 / 31

Exemplos de Resolução de Programas Lineares

Exemplo 3 – PL ContínuaUm sitiante está planejando sua estratégia de plantio para o próximo ano,visando o maior lucro. Ele deseja cultivar trigo, arroz e milho e sabe deantemão qual é a produtividade de sua terra para cada uma das culturas,reportado na tabela abaixo.

Produtividade Lucro porem kg por m2 kg de produção

Trigo 0,2 10,8 centavosArroz 0,3 4,2 centavosMilho 0,4 2,03 centavos

Por falta de um local de armazenamento próprio, a produção máxima estálimitada a 60 toneladas. A área cultivável do sítio é de 200.000m2.Por fim, para atender as demandas do próprio sítio, é imperativo que seplante 400m2 de trigo, 800m2 de arroz e 10.000m2 de milho.

Marco Antonio M. Carvalho (UFOP) PCC173 20 de março de 2018 23 / 31

Exemplos de Resolução de Programas Lineares

Exemplo 3 – PL Contínua

max 2, 6xt + 1, 26xa + 0, 812xm (1)sujeito a :

xt ≥ 400 (2)xa ≥ 800 (3)xm ≥ 10.000 (4)xt + xa + xm ≤ 200.000 (5)0, 2xt + 0, 3xa + 0, 4xm ≤ 60.000 (6)xa ≥ 0, xt ≥ 0, xm ≥ 0 (7)

Marco Antonio M. Carvalho (UFOP) PCC173 20 de março de 2018 24 / 31

Exemplos de Resolução de Programas Lineares

Exemplo 1 – PL Inteira com Possibilidade de Aproximação ContínuaUma fábrica de móveis de madeira possui em seu portfólio escrivaninhas,mesas, armários e prateleiras. A composição de cada móvel é descrita natabela abaixo, que também apresenta o valor de revenda e a disponibilidadede cada material.

Consumo por unidade de produto (m2) Estoque (m)Escrivaninha Mesa Armário Prateleira

Tábua 1 1 1 4 250Prancha 0 1 1 2 600Painel 3 2 4 0 500

Valor de Revenda 100 80 120 20

O problema consiste em maximizar a receita com a venda de móveis.

Marco Antonio M. Carvalho (UFOP) PCC173 20 de março de 2018 25 / 31

Exemplos de Resolução de Programas Lineares

Exemplo 1 – PL Inteira com Possibilidade de Aproximação Contínua

max 100x1 + 80x2 + 120x3 + 20x4 (1)sujeito a :

x1 + x2 + x3 + 4x4 ≤ 250 (2)x2 + x3 + 2x4 ≤ 600 (3)3x1 + 2x2 + 4x3 ≤ 250 (4)x1 ≥ 0, x2 ≥ 0, x3 ≥ 0, x4 ≥ 0 (5)

Marco Antonio M. Carvalho (UFOP) PCC173 20 de março de 2018 26 / 31

Exemplos de Resolução de Programas Lineares

Exemplo 2 – PL Inteira com Possibilidade de Aproximação ContínuaUm atleta pratica natação e ciclismo. Com um orçamento mensal de 70reais, o atleta pode dedicar, no máximo, 18 horas mensais e 80.000 caloriasà prática de esportes:

I A natação custa em média 3 reais por seção de 2 horas, e queima1.500 calorias;

I O ciclismo custa 2 reais por seção de 2 horas e queima 1.000 calorias.Considerando que o atleta gosta igualmente de ambos esportes, o problemaconsiste em programar seu treinamento de maneira a otimizar o número deseções.

Marco Antonio M. Carvalho (UFOP) PCC173 20 de março de 2018 27 / 31

Exemplos de Resolução de Programas Lineares

Exemplo 2 – PL Inteira com Possibilidade de Aproximação Contínua

max x1 + x2 (1)sujeito a :

3x1 + 2x2 ≤ 70 (2)1.500x1 + 1.000x2 ≤ 80.000 (3)2x1 + 2x2 ≤ 18 (4)x1 ≥ 0, x2 ≥ 0 (5)

Marco Antonio M. Carvalho (UFOP) PCC173 20 de março de 2018 28 / 31

Exemplos de Resolução de Programas Lineares

Exemplo 1 – PL Inteira sem Aproximação ContínuaUm hospital trabalha com atendimento variável em demanda 24 horas pordia, segundo a tabela abaixo.

Turno Horário Número Mínimo de Enfermeiros1 08:00-12:00 502 12:00-16:00 603 16:00-20:00 504 20:00-00:00 405 00:00-04:00 306 04:00-08:00 20

A jornada de trabalho de um enfermeiro dura 8 horas, exceto no turno 5,cuja jornada é de apenas 4 horas. A remuneração para o turno 4 possuiuma gratificação de 50%. O problema consiste em minimizar o gasto coma mão de obra.

Marco Antonio M. Carvalho (UFOP) PCC173 20 de março de 2018 29 / 31

Exemplos de Resolução de Programas Lineares

Exemplo 1 – PL Inteira sem Aproximação Contínua

min x1 + x2 + x3 + 1, 5x4 + 2x5 + x6 (1)sujeito a :

x6 + x1 ≥ 50 (2)x1 + x2 ≥ 60 (3)x2 + x3 + x4 ≥ 50 (4)x3 + x4 ≥ 40 (5)x5 ≥ 30 (6)x6 ≥ 20 (7)x1, x2, x3, x4, x5, x6 ∈ Z+ (8)

Marco Antonio M. Carvalho (UFOP) PCC173 20 de março de 2018 30 / 31

Dúvidas?

Marco Antonio M. Carvalho (UFOP) PCC173 20 de março de 2018 31 / 31