Exemplo: Maximização de lucros em uma chocolateria que produz os seguintes produtos: (1) Chocolate Pyramide (2) Chocolate Pyramide Nuit

Documentos relacionados
Combinando inequações lineares

Pesquisa Operacional

Combinando inequações lineares

Otimização Linear. Profª : Adriana Departamento de Matemática. wwwp.fc.unesp.br/~adriana

Teoria de dualidade. Marina Andretta ICMC-USP. 19 de outubro de 2016

Programação Linear - Parte 5

Teoremas de dualidade

Pesquisa Operacional aula 3 Modelagem PL. Profa. Alessandra Martins Coelho

Aula 03: Algoritmo Simplex (Parte 2)

Métodos de Pesquisa Operacional

Otimização Combinatória - Parte 4

Prof.: Eduardo Uchoa.

PESQUISA OPERACIONAL. Prof. Carlos Norberto Vetorazzi Jr.

Modelagem Matemática de Problemas de Programação Linear

Graduação em Engenharia Elétrica MÉTODOS DE OTIMIZAÇÃO ENE081. PROF. IVO CHAVES DA SILVA JUNIOR

No exemplo há duas variáveis básicas: ST e LX. Serão agora representadas, em um gráfico bidirecional, tanto as restrições como a função objetivo.

Aula 10: Revisão Otimização Linear e Inteira Túlio A. M. Toffolo

Resolvendo algebricamente um PPL

PESQUISA OPERACIONAL. Fabiano F. T. dos Santos. Instituto de Matemática e Estatística

Programação Linear. Dualidade

Pontos extremos, vértices e soluções básicas viáveis

Programação Linear M É T O D O S : E S T A T Í S T I C A E M A T E M Á T I C A A P L I C A D A S D e 1 1 d e m a r ç o a 2 9 d e a b r i l d e

PROGRAMAÇÃO LINEAR 11º ANO MATEMÁTICA A

A Dualidade em Programação Linear

Programação Linear/Inteira - Aula 5

Problema de Designação. Fernando Nogueira Problema de Designação 1

Otimização Linear. Profª : Adriana Departamento de Matemática. wwwp.fc.unesp.br/~adriana

Gabriel Coutinho DCC035 - Pesquisa Operacional Lista 6

Representação de poliedros

Universidade da Beira Interior Departamento de Matemática. Ficha de exercícios nº3: Dualidade. Interpretação Económica.

INVESTIGAÇÃO OPERACIONAL. Programação Linear. Exercícios. Cap. IV Modelo Dual

Programação Matemática

Aula 07: Análise de sensibilidade (2)

Maristela Santos. Instituto de Ciências Matemáticas e de Computação Universidade de São Paulo

Capítulo 3. O Método Primal Simplex

Otimização Linear. Profª : Adriana Departamento de Matemática. wwwp.fc.unesp.br/~adriana

BANCO DE EXERCÍCIOS - 24 HORAS

Algoritmo Aproximado. Prof. Anderson Almeida Ferreira [DPV]9.2 [ZIV]9.2.2 e 9.2.3

Cones e raios extremos

O Problema de Transportes

Unidade: Modelo Simplex e Modelo Dual. Unidade I:

Método Simplex dual. Marina Andretta ICMC-USP. 24 de outubro de 2016

Unidade II PESQUISA OPERACIONAL. Profa. Ana Carolina Bueno

Programação Linear. MÉTODOS QUANTITATIVOS: ESTATÍSTICA E MATEMÁTICA APLICADAS De 30 de setembro a 13 de novembro de 2011 prof. Lori Viali, Dr.

Algoritmo Simplex para Programação Linear I

II. Programação Linear (PL)

Aula 22: Formulações com número exponencial de variáveis

Programação Linear. (1ª parte) Informática de Gestão Maria do Rosário Matos Bernardo 2016

Programação Matemática. Método Simplex

Professor João Soares 20 de Setembro de 2004

Pesquisa Operacional aplicada ao Planejamento e Controle da Produção e de Materiais Programação Linear

Algoritmo Aproximação. Prof. Anderson Almeida Ferreira [DPV]9.2 [ZIV]9.2.2 e 9.2.3

Solução de problemas de PL com restrições do tipo >= e =

Programação Linear (PL) Solução algébrica - método simplex

Programação Matemática Lista 3

Marina Andretta. 02 de agosto de 2010

Programação Linear. Dual Simplex: Viabilidade Dual Método Dual Simplex

Aula 02: Algoritmo Simplex (Parte 1)

Aulas 6 / 05 de setembro

Lema de Farkas e desigualdades lineares

Otimização Aplicada à Engenharia de Processos

X - D U A L I D A D E

Otimização Linear. Profª : Adriana Departamento de Matemática. wwwp.fc.unesp.br/~adriana

α ( u 1 - u 2 ) = u 3 - u 2.

Estrutura de Dados e Algoritmos e Programação e Computadores II. Aula 11: Introdução aos Grafos

Notas 1 / 17. Notas 2 / 17. Notas

4-1 PESQUISA OPERACIONAL MÉTODO SIMPLEX

MB PRINCÍPIOS DA PESQUISA OPERACIONAL PO INTRODUÇÃO A PESQUISA OPERACIONAL LISTA DE EXERCÍCIOS - PROGRAMAÇÃO LINEAR

O método Simplex Aplicado ao Problema de Transporte (PT).

Pesquisa Operacional. Introdução à Pesquisa Operacional Programação Linear

TP052-PESQUISA OPERACIONAL I Algoritmo Dual Simplex. Prof. Volmir Wilhelm Curitiba, Paraná, Brasil

Espaço amostral Ω: Conjunto enumerável de todos os possíveis resultados de um experimento aleatório. um evento elementar. E = E[X j ] X j.

PESQUISA OPERACIONAL. UNIDADE 2 Visão Geral do Modelo

Aula 20: Revisão Otimização Linear e Inteira Túlio A. M. Toffolo

Simplex. Investigação Operacional José António Oliveira Simplex

5 Análise de Sensibilidade

PESQUISA OPERACIONAL 11. SOLUÇÃO ALGEBRICA O MÉTODO SIMPLEX ( ) DEFINIÇÕES REGRAS DE TRANSFORMAÇÃO. Prof. Edson Rovina Página 16

ESPAÇOS VETORIAIS EUCLIDIANOS

Objetivos. Expressar o vértice da parábola em termos do discriminante e dos

Investigação Operacional

Problemas de Fluxos em Redes

Exercício: Identifique e faça um esboço do conjunto solução da. 3x xy + y 2 + 2x 2 3y = 0

Pesquisa Operacional

Primeiro Ano do Ensino Médio. Autor: Prof. Fabrício Siqueira Benevides Revisor: Prof. Antonio Caminha M. Neto. Portal OBMEP

DISCIPLINA: Investigação Operacional ANO LECTIVO 2009/2010

Programação Linear/Inteira

Resolução de PL usando o método Simplex

Problema de Transporte (Redes) Fernando Nogueira Problema de Transporte 1

Arranjos. Claudio Esperança Paulo Roma LCG/UFRJ. All rights reserved.

A seguir, uma demonstração do livro. Para adquirir a versão completa em papel, acesse:

Professor: Rodrigo A. Scarpel

Pesquisa Operacional

Sistemas Lineares. Prof. Márcio Nascimento

Dualidade - Definições

Otimização Aplicada à Engenharia de Processos

Faculdade de Engenharia Optimização. Prof. Doutor Engº Jorge Nhambiu

2012/2013-2º SEMESTRE- 2ª ÉPOCA EXAME DE ÁLGEBRA LINEAR (1303) 4 de Julho de 2013

Investigação Operacional

Transcrição:

Universidade Tecnológica Federal do Paraná Professor Murilo V. G. da Silva Notas de aula Estrutura de Dados 2 (Aula 09) Conteúdos da Aula: [DPV06 7.1, 7.2, 7.3] [Observação: Estas notas de aula são apenas um esboço do que foi visto em aula e não devem ser usadas como material principal de estudos. O(a) aluno(a) deve acompanhar os conteúdos cobertos nesta aula usando os livros indicados na página da disciplina.] 1. Programação Linear 101 Entrada: ˆ Conjunto de equações/desigualdades lineares com variáveis x 1,..., x n ; ˆ Uma função objetivo f a ser maximizada/minimizada. Saída: ˆ Valores para x 1,..., x n que maximizam/minimizam f respeitando as equações/desigualdades. Exemplo: Maximização de lucros em uma chocolateria que produz os seguintes produtos: (1) Chocolate Pyramide (2) Chocolate Pyramide Nuit Considere as seguintes condições: ˆ Lucro com venda de uma caixa de (1): $1,00. ˆ Lucro com venda de uma caixa de (2): $6,00. ˆ Demanda diária por (1): 200 caixas. ˆ Demanda diária por (2): 300 caixas. ˆ Capacidade de produção da fábrica: 400 caixas diárias. Pergunta: Quanto devemos produzir de (1) e (2) diariamente para maximizar o lucro? ˆ Vamos chamar de x 1 a quantidade de caixas de (1) ˆ Vamos chamar de x 2 a quantidade de caixas de (2) Com isso queremos maximizar a função objetivo x 1 + 6x 2 e as restrições são: x 1 200 x 2 300 x 1 + x 2 400 x 1, x 2 0 Olhando o gráfico da Figura 1 (a) temos um polígono em que cada aresta vem de uma equação do conjunto de restrições. Qualquer valor que satisfaça as restrições (sem necessariamente maximizar a função objetivo) deve pertencer ao polígono. Qualquer um destes valores são chamados de soluções factíveis. Na Figura 1 (b) cada linha pontilhada representa uma reta da função x 1 + 6x 2 = c para diferentes valores de lucro c. Claramente, o valor máximo que c pode atingir é quando a função objetivo passa no ponto (100, 300). Tal ponto é chamado de solução ótima. Neste curso veremos apenas os conceitos básicos de como se modelar problemas usando programação linear e não apresentaremos os algoritmos que resolvem de fato os problemas. Convidamos os alunos, entretanto, a pesquisar sobre os diferentes algoritmos utilizados nesta área. A ideia básica que queremos que o aluno entenda neste momento (embora não demonstraremos aqui) é que a solução do problema de programação linear sempre se encontra em um dos vértices do polígono (ou poliedro n-dimensinal, onde n é o número de variáveis) convexo 1

Figura 1: Espaço de soluções do problema (figura copiada so livro texto DVP06). obtido a partir das restrições do problema. Novo Exemplo: Digamos que temos um terceiro tipo de chocolate cujo lucro é de $13,00 por caixa. Digamos que neste novo cenário aparecem outras restrições modeladas pelas equações extras que aparecem abaixo: Maximizar x 1 + 6x 2 + 13x 3 dadas as restrições: x 1 200 x 2 300 x 1 + x 2 400 x 2 + x 3 600 x 1, x 2, x 3 0 Figura 2: Novo espaço de soluções do problema, agora com 3 variáveis (figura copiada so livro texto DVP06). Neste caso a solução ótima é (0, 300, 100) com valor 3100 para a função objetivo. No gráfico da figura 2, 2

é mostrado a sequência de passos que o Algoritmo Simplex usa para chegar na solução. O algoritmo percorre cada um dos vértices do poliedro sempre movendo-se para um vértice adjacente que tenha um maior valor para a função objetivo. Novo Exemplo: Planejamento de Produção em uma fábrica Digamos que temos em mãos os dados da demanda experada pelos produtos fabricados em cada mês. Chamaremos estes números de d 1, d 2,..., d 12 e que temos inicialmente w 0 = 30 funcionários e não temos nenhum produto estocado, que denotaremos por s 0 = 0. Além disso sabemos o seguinte: ˆ Produtividade dos trabalhadores: 80 produtos (mês) ˆ Salário dos trabalhadores: $2000.00 (mês) ˆ Hora Extra: Um produto produzido em hora extra custa 80% mais ˆ Hora Extra: Um trabalhador em hora extra produz 30% a mais ˆ Custo para contratar: $320.00 ˆ Custo para demitir: $400.00 ˆ Custo de armazenamento de produtos: $8.00 (mês) Queremos determinar o valor de diversas variáveis: ˆ Produtos a serem fabricados em cada mês: x 1, x 2,..., x 12 ˆ Produtos a serem armazenados em cada mês: s 1, s 2,..., s 12 ˆ Quantidade de funcionários em cada mês: w 1, w 2,..., w 12 ˆ Produtos fabricados durante hora-extra: o 1, o 2,..., o 12 ˆ Quantidade de funcionários contratados: h 1, h 2,..., h 12 ˆ Quantidade de funcionários demitidos: f 1, f 2,..., f 12 Vamos as equações: Minimizar: 2000 12 Restrições: w i + 320 12 h i + 400 12 f i + 8 12 s i + 180 12 o i x i = 20w i + o i w i = w i 1 + h i f i s i = s i 1 + x i d i o i 6w i Além disso, obviamente temos x i, s i, w i, o i, h i, f i 0 Problema: O que significa demitir 3.25 funcionários? Pense a respeito. 3

Versão padrão de um problema de PL Primeiro observe que dado um problema de maximização de uma função objetivo, é fácil obter um problema equivalente de minimização (e vice-versa) apenas multiplicando cada coeficiente da função objetivo por -1. Além disso veremos que equações podem ser transformadas em inequações e vice-versa. Finalmente veremos se tivermos variáveis com domínio igual a R, podemos mudar o problema para que tenhamos domínio apenas com valores maiores ou iguais a 0. Maximização para minimização: max x 1 6x 2 torna-se min x 1 + 6x 2. Uma equação vira duas inequações: ax = b é equivalente as duas inequações ax b, ax b. Uma inequação vira uma equação (+ uma variável dummy ): Dada a equação n a i x i b, podemos adicionar uma variável dummy s com domínio não negativo e obter: n a i x i + s = b s 0 Domínio das variáveis R para domínio apenas com valores positivos: Basta trocar cada variável x com domínio R por duas variáveis x, x 0 e onde aparecia x nas equações agora aparece x x Moral da história: Com isso podemos assumir que nossos problemas de PL sempre são de minimização, com equações (igualdades) e com variáveis assumindo valores 0. Fluxo em Redes Dada uma rede com capacidade nas arestas, nosso objetivo agora é enviar a maior quantidade de produtos de uma origem para um destino respeitando as capacidades das arestas da rede. Por exemplo, se a rede é uma malha de oleodutos, a capacidade de uma aresta é a quantidade máxima de petróleo que um determinado duto admite por unidade de tempo. Se por exemplo estivermos tratando de uma rede de transporte rodoviário, a capacidade de uma aresta é a quantidade máxima de veículos que podem trafegar em uma determinada via por unidade de tempo. O problema é modelado com um grafo G = (V, E) (normalmente direcionado) com capacidades positivas nas arestas c : E R + e dois véritices especiais s, t V de origem e destino respectivamente. Figura 3: (a) Grafo com capacidades nas arestas. (b) Um fluxo máximo (figuras do livro texto DVP06). 4

A ideia é determinar a quantidade máxima de produtos que podem ser enviados de s a t de maneira que dada uma aresta uv E não se pode enviar mais produtos pela aresta uv do a capacidade c(uv). Além disso o fluxo tem que ser coerente, ou seja, a quantidade de produtos chegando em um vértice u tem que ser igual a quantidade de objetos saindo de u (exceto o vértice s do qual temos apenas produtos saindo e o vértice t no qual temos apenas produtos chegando. Para resolver o problema a ideia é calcular uma função de fluxo f : E R + que associa um fluxo de produtos para cada aresta de G. Este fluxo tem que respeitar o seguinte: (1) uv E, 0 f(uv) c(uv) (2) x V \ {s, t}, f(vx) = v;vx E v;xv E f(xv) O fluxo obtido é soma dos fluxos das arestas saindo de s, ou seja, se o mesmo valor de f(vt)). v;vt E Como encontrar um fluxo máximo: (ideia do algoritmo visto em sala) Certificado de Otimalidade: Corte Mínimo: (visto em sala) Modelando fluxo máximo como programação linear: (visto em sala) Dualidade em programação linear: v;sv E f(sv) (observe que este valor deve Assim como temos um problema de minimização associado ao problema de fluxo máximo (no caso o problema de corte mínimo), temos um problema de minimização associado a qualquer problema de maximização em programação linear (assim como sempre há um problema de maximização associado a cada problema de minimização). Vamos mostrar isso voltando ao nosso problema da fábrica de chocolates, onde tínhamos formulado o problema da seguinte maneira: max x 1 + 6x 2 x 1 200 x 2 300 x 1 + x 2 400 x 1, x 2 0 Pergunta: O solução que obtivemos foi (100, 300). Como podemos nos certificar de que a solução ótima? (Ou seja, que o valor máximo que x 1 + 6x 2 pode atingir é 1900?) Se somarmos a primeira restrição com a segunda multiplicada por seis obtemos a seguinte equação que é um limitante superior para a função objetivo: ˆ x 1 + 6x 2 2000 Chegamos quase lá, mas isso não é bom o suficiente. Com um pouco de perspicácia podemos ver que multiplicando a primeira, a segunda e a terceira restrição respectivamente por 0, 5 e 1 e somarmos as três equações chegamos em ˆ x 1 + 6x 2 1900 Ou seja, a função objetivo não pode atingir um valor maior do que 1900. Como nossa solução (100, 300) atinge este valor, a solução é ótima. Em particular, o vetor (0, 5, 1) é um certificado de otimalidade. 5

O que acontece se buscarmos sistematicamente o vetor (0,5,1)? Veremos agora o que acontece se o invés de advinhar o vetor (0, 5, 1), tentarmos sistamticamente obter tal vetor. Vamos chamá-lo de (y 1, y 2, y 3 ). ˆ Fato 1: y 1, y 2, y 3 0 (caso contrário o sentido da desigualdade mudaria) ˆ Fato 2: Multiplicando a i-ésima restrição por y i e somando as três equações obtemos: (y 1 + y 3 )x 1 + (y 2 + y 3 )x 3 200y 1 + 300y 2 + 400y 3 Como queremos que o lado esquerdo tenha a forma da nossa função objetivo em que os coeficientes são 1 e 6, basta restringir que (a) y 1 + y 3 = 1 e (b) y 2 + y 3 = 6. No caso de obtivermos o nosso certificado dizendo que uma função objetivo c 1 x 1 + c 2 x 2 1900 para valores c 1 1 e c 2 6 isso também serve dado o sentido da desigualdade. Ou seja, as restrições (a) e (b) podem ser vistas como ˆ Fato 3: y 1 + y 3 1 e y 2 + y 3 6. Como estamos em busca de um limitante superior mais apertado possível, queremos minimizar o lado direito da desigualdade do Fato 2. Juntando tudo temos: min 200y 1 + 300y 2 + 400y 3 y 1 + y 3 1 y 2 + y 3 6 y 1, y 2, y 3 0 Ou seja, outro problema de PL! Esse novo problema de PL é chamado de dual do problema original, que é chamado de problema primal. Veja que qualquer solução factível para o problema dual oferece um limitante superior para o valor ótimo do problema original. Se acharmos uma solução factível cujo valor objetivo seja igual no primal e no dual, esta solução deve ser ótima. Este é o caso das soluções x 1 = 100, x 2 = 300 e y 1 = 0, y 2 = 5, y 3 = 1. Para estes valores, a função objetivo de ambos problemas (um de minimização e outro de maximização) tem valor 1900. Não é difícil generalizar todo este raciocínio e ver que todo problema de PL de maximização tem um dual de minimização e vice-versa de acordo com a Figura 4 abaixo: Figura 4: Um problema de maximização e seu dual de minimização. 6