Programação Linear - Parte 3

Documentos relacionados
Programação Linear/Inteira

Programação Linear/Inteira - Aula 5

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

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

Programação Linear - Parte 5

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

Programação Linear/Inteira

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

Otimização Linear. Conceitos básicos Álgebra Linear Introdução ao método simplex

5 Análise de Sensibilidade

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

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

Otm1 12/04/2012. Método Simplex Obtenção base inicial Degeneração (alguns comentários) Variáveis Canalizadas

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

Regras para evitar ciclagem

3- O MÉTODO SIMPLEX Introdução e fundamentos teóricos para o Método Simplex

Laboratório de Simulação Matemática. Parte 6 2

Marina Andretta. 10 de outubro de Baseado no livro Introduction to Linear Optimization, de D. Bertsimas e J. N. Tsitsiklis.

Método Simplex Resolução Algébrica. Prof. Ricardo Santos

4- Dualidade em Programação Linear

Determinação de Uma Solução Básica Factível Inicial

Teoremas de dualidade

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

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

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

Otimização Combinatória - Parte 4

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

Método Simplex Dual. Prof. Fernando Augusto Silva Marins Departamento de Produção Faculdade de Engenharia Campus de Guaratinguetá UNESP

Aula 02: Algoritmo Simplex (Parte 1)

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

Lógica do Método Simplex: Passar de Solução Básica Factível para outra Solução Básica, buscando melhorar a Função Objetivo e manter factibilidade

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

Resolução de problemas com apenas restrições lineares de igualdade

Algoritmos de aproximação - Método primal-dual

Modelagem Computacional. Parte 2 2

Representação de poliedros

Professor: Rodrigo A. Scarpel

Algoritmo Simplex para Programação Linear I

Método prático para extrair uma base de um conjunto de geradores de um subespaço de R n

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.

Cálculo Numérico BCC760

5 a Lista de Exercícios de Introdução à Álgebra Linear IMPA - Verão Encontre os autovalores, os autovetores e a exponencial e At para

Algoritmo Simplex em Tabelas. Prof. Ricardo Santos

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

Programação Linear/Inteira

Capítulo 3. O Método Primal Simplex

Investigação Operacional

Existência e otimalidade de pontos extremos

Métodos Numéricos - Notas de Aula

Problema do Caminho Mínimo

SISTEMAS LINEARES PROF. EDÉZIO

Método Simplex Revisado

Aula 07: Análise de sensibilidade (2)

Pesquisa Operacional

Universidade Federal de Viçosa Centro de Ciências Exatas e Tecnológicas Departamento de Matemática

Uma Introdução à Programação Linear

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

Método do Lagrangiano aumentado

Álgebra Linear AL. Luiza Amalia Pinto Cantão. Depto. de Engenharia Ambiental Universidade Estadual Paulista UNESP

2 Geometria e Programação Linear

Conteúdo. Introdução. Notas. Programação Linear Inteira, Introdução. Notas. Notas

Pesquisa Operacional. Prof. José Luiz

Programação Linear - Parte 4

Aula 19: Lifting e matrizes ideais

Programação Linear e Inteira, Introdução

MS428 - RESOLUÇÃO DA PROVA 02-19/10/2010 Prof. Moretti - Respostas sem justificativas não serão consideradas para correção

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

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

Resolução de Sistemas Lineares. Ana Paula

Programação Matemática Lista 3

Pesquisa Operacional

Resolução de sistemas de equações lineares: Fatorações de matrizes

Resolução de sistemas de equações lineares: Fatorações de matrizes

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

UMA ABORDAGEM IMPLÍCITA PARA O MÉTODO M-GRANDE

Matriz Hessiana e Aplicações

Métodos Numéricos. Turma CI-202-X. Josiney de Souza.

CÁLCULO NUMÉRICO. Profa. Dra. Yara de Souza Tadano

Álgebra Linear AL. Luiza Amalia Pinto Cantão. Depto. de Engenharia Ambiental Universidade Estadual Paulista UNESP

Sistemas Lineares. Métodos Iterativos Estacionários

X - D U A L I D A D E

Métodos iterativos para sistemas lineares.

O Método Simplex. Prof. Gustavo Peixoto Silva Departamento de Computação Univ. Federal de Ouro Preto

decomposição de Cholesky.

Resolvendo algebricamente um PPL

Cálculo Numérico. Aula 8 Sistemas de Equações Lineares / Parte /04/2014. Prof. Guilherme Amorim*

Transcrição:

Matemática Industrial - RC/UFG Programação Linear - Parte 3 Prof. Thiago Alves de Queiroz 1/2016 Thiago Queiroz (IMTec) Parte 3 1/2016 1 / 26

O Método Simplex Encontre o vértice ótimo pesquisando um subconjunto dos K vértices de S; A partir de uma solução básica factível, devemos responder: (i) Essa solução é ótima? (ii) Não sendo ótima, como determinar outra solução básica factível melhor? Vejamos como responder estas duas perguntas adiante. Thiago Queiroz (IMTec) Parte 3 1/2016 2 / 26

Pergunta (i) Considere ] a solução básica factível: [ˆxB ˆx = com ˆx B = B 1 b 0 e ˆx N = 0; ˆxN Seja[ a solução ] geral: xb x = em que: x B = B 1 b B 1 Nx N ; x N A função objetivo f(x) pode ser expressa considerando a partição básica: [ ] f(x) = c T x = [cb T ct N ] xb = c x B T x B + cn T x N. N cb T : coeficientes das variáveis básicas na função objetivo; cn T : coeficientes das variáveis não-básicas na função objetivo. Essa solução básica factível é ótima? Thiago Queiroz (IMTec) Parte 3 1/2016 3 / 26

Pergunta (i) Restringindo x ao sistema Ax = b, temos: f(x) = c T B (B 1 b B 1 Nx N ) + c T N x N = c T B B 1 b c T B B 1 Nx N + c T N x N; O primeiro termo corresponde ao valor da função objetivo em ˆx: f(ˆx) = c T B ˆx B + c T N ˆx N = c T B (B 1 b) + c T N (0) = ct B (B 1 b); Definição 6. O vetor λ de ordem m 1, dado por: λ T = c T B B 1 é chamado de vetor multiplicador simplex; Também é referenciado como vetor de variáveis duais; Pode ser obtido pela resolução do sistema: B T λ = c B. Thiago Queiroz (IMTec) Parte 3 1/2016 4 / 26

Pergunta (i) Utilizando o vetor multiplicador simplex em f(x), segue: f(x) = f(ˆx) - c T B B 1 Nx N + c T N x N = f(ˆx) - λ T Nx N + c T N x N = f(ˆx) + (c T N λt N)x N ; Observe que: c T N λt N = (c N1, c N2,..., c Nn m ) λ T (a N1, a N2,..., a Nn m ) = (c N1 λ T a N1, c N2 λ T a N2,..., c Nn m λ T a Nn m ); Além disso: x N = (x N1, x N2,..., x Nn m ); Resulta em: f(x) = f(ˆx) + (c N1 λ T a N1 )x N1 + (c N2 λ T a N2 )x N2 +... + (c Nn m λ T a Nn m )x Nn m. Thiago Queiroz (IMTec) Parte 3 1/2016 5 / 26

Pergunta (i) Definição 7. Os coeficientes ĉ Nj = (c Nj λ T a Nj ) das variáveis não-básicas na função objetivo são chamados de custos relativos ou custos reduzidos. Então, podemos escrever: f(x) = f(ˆx) + ĉ N1 x N1 + ĉ N2 x N2 +... + ĉ Nn m x Nn m ; Sabemos que x Nj 0 (as variáveis são não-negativas). Se (c Nj λ T a Nj ) 0 para todo j, então f(x) f (ˆx) para todo x N 0; Propriedade 3. (condição de otimalidade) Dada uma partição básica A = [B N] em que a solução básica associada é ˆx B = B 1 b 0 e seja λ T = c T B B 1 o vetor multiplicador simplex. Se (c Nj λ T a Nj ) 0 para todo j, então a solução básica ˆx B é ótima; Ou seja, satisfeita a condição de otimalidade, então a solução básica factível é ótima. Thiago Queiroz (IMTec) Parte 3 1/2016 6 / 26

Pergunta (ii) Como determinar uma solução básica factível melhor? Considere uma solução básica factível e suponha que a condição de otimalidade não foi satisfeita; Ou seja, existe um k tal que o custo relativo é negativo: (c Nk λ T a Nk ) < 0; Definição 8. Chamamos de estratégia simplex a perturbação de uma solução básica factível que consiste alterar as variáveis não-básicas por: x Nk = ɛ 0, (variável com custo relativo negativo) x Nj = 0, para todo j, exceto j = k; Ou seja, apenas a variável não-básica x Nk deixa de ser nula. Thiago Queiroz (IMTec) Parte 3 1/2016 7 / 26

Pergunta (ii) Nestas condições, a função objetivo passa a ser: f(x) = f(ˆx) + ĉ N1 0 +... + ĉ Nk ɛ+... + ĉ Nn m 0 = f(ˆx) + ĉ Nk ɛ < f(ˆx); Note que a função objetivo decresce quando ɛ cresce, com a taxa negativa ĉ Nk. Figura: Aplicando a estratégia simplex. Thiago Queiroz (IMTec) Parte 3 1/2016 8 / 26

Pergunta (ii) Note que quanto menor o valor de ĉ Nk, mais rápido a função objetivo decresce; Com isso, a escolha da variável não-básica a ser perturbada é aquela de menor custo relativo (regra de Dantzig); Além disso, seria interessante determinar o maior valor possível para ɛ que mantém a solução perturbada ainda factível; Note que ao mudar o valor das variáveis não-básicas pela estratégia simplex, as variáveis básicas devem ser alteradas para que o sistema Ax = b seja satisfeito; Thiago Queiroz (IMTec) Parte 3 1/2016 9 / 26

Pergunta (ii) A estratégia simplex é equivalente a alterar as variáveis não-básicas para: x N1 0.. x N = x Nk = ɛ.. 0 x Nn m Portanto, as variáveis básicas são modificadas por: x B = B 1 b B 1 Nx N = ˆx B B 1 a Nk ɛ = ˆx B yɛ; Em que: y = B 1 a Nk ; Note que: Nx n = N(0... ɛ... 0) T = [a N1... a Nk... a Nn m ](0... ɛ... 0) T = a Nk ɛ. Thiago Queiroz (IMTec) Parte 3 1/2016 10 / 26

Pergunta (ii) Definição 9. Chamamos de direção simplex o vetor y = B 1 a Nk, o qual fornece os coeficientes de como as variáveis básicas são alteradas pela estratégia simplex; A direção simplex é a solução do sistema By = a Nk ; Voltando a expressão x B = ˆx B yɛ e escrevendo-a em cada uma de suas coordenadas, temos: x Bi = ˆx Bi y i ɛ 0, para i = 1, 2,..., m; Se y i 0, então x Bi 0, para qualquer ɛ 0; Se y i > 0, como x Bi y i ɛ 0, então, ɛ ˆx B i y i ; Logo, o maior valor de ɛ é dado por: ˆɛ = ˆx B l y l = mínimo { ˆx B i y i tal que y i > 0}. Thiago Queiroz (IMTec) Parte 3 1/2016 11 / 26

Solução ótima ilimitada Se y i 0 para i = 1, 2,..., m, então não há limitante superior para ɛ; Isto significa que a solução perturbada será sempre factível para qualquer valor de ɛ 0; Note que a função objetivo decresce com o crescimento de ɛ, ou seja, f(x), com ɛ ; Portanto, o problema não tem solução ótima ou a solução ótima é ilimitada; Thiago Queiroz (IMTec) Parte 3 1/2016 12 / 26

Pergunta (ii) Com o valor de ˆɛ = ˆx B l y l a variável básica x Bl se anula e a variável não-básica x Nk torna-se positiva: ˆx Bl l-ésima variável básica: x Bl = ˆx Bl y lˆɛ = ˆx Bl y l y l = 0; k-ésima variável não-básica: x Nk = ˆɛ; A nova solução tem a seguinte característica: (x B1... x Bl... x Bm 0... x Nk... 0) = (x B1... 0... x Bm 0... ˆɛ... 0); Ou seja, n m variáveis são nulas, as quais podem ser consideradas não-básicas; Isto resulta em uma nova partição básica: B = (a B1,..., a Bl,..., a Bm ) B = (a B1,..., a Nk,..., a Bm ) N = (a N1,..., a Nk,..., a Nn m ) N = (a N1,..., a Bl,..., a Nn m ) Dizemos que x Nk entra na base e x Bl sai da base. Thiago Queiroz (IMTec) Parte 3 1/2016 13 / 26

Pergunta (ii) Propriedade 4. A matriz B é invertível de modo que A = [B N ] é uma partição básica; A solução associada à nova partição básica é obtida da estratégia simplex: x Nk = ˆɛ, x Bi = ˆx Bi y i ɛ, para i = 1,..., m, com i l; Com isso, a estratégia simplex produz uma nova solução básica factível para a qual a função objetivo tem um valor menor: f(x) = f(ˆx) + ĉ Nk ˆɛ < f (ˆx); Este procedimento pode ser repetido até encontrar outra solução básica melhor ou satisfazer a condição de otimalidade; Estas etapas consistem no método simplex. Thiago Queiroz (IMTec) Parte 3 1/2016 14 / 26

Considerações sobre o método simplex Uma implementação computacional simples do método simplex pode trabalhar explicitamente com a matriz básica B 1 ; Isto resulta em atualizar a matriz básica em cada iteração. Este método é chamado de método simplex revisado; O método simplex revisado não é eficiente, pois: Ao recalcular a inversa a cada iteração, erros de arredondamento são inseridos; Matrizes com uma ordem grande, porém esparsa (poucos elementos não-nulos). Outra representação é o método simplex em tabelas. Porém, trata apenas de problemas com dezenas de restrições e variáveis; O método simplex pode ser aplicado quando há limitante superiores para as variáveis, isto é, 0 x j u j : Chamado de método simplex para variáveis canalizadas. Thiago Queiroz (IMTec) Parte 3 1/2016 15 / 26

Método Simplex em Tabelas As operações do método simplex podem ser organizadas em tabelas, chamadas tabelas simplex; Interessante para manipular exemplos pequenos e compreender o funcionamento do método mais rapidamente; Considere um problema de otimização linear na forma padrão: Minimizar z { = f (x) = c T x Ax = b sujeito a : x 0. (1) Os coeficientes presentes no modelo são suficientes para descrever o problema; Podem ser organizados da seguinte maneira: Thiago Queiroz (IMTec) Parte 3 1/2016 16 / 26

Método Simplex em Tabelas Tabela: Coeficientes de um problema de otimização linear. x 1 x 2... x n variáveis c 1 c 2... c n z coeficientes da função objetivo a 1 a 2... a n b coeficientes das restrições Para o exemplo abaixo: Minimizar z = x 1 2x 2 x 1 + x 2 6 x sujeito a : 1 x 2 4 x 1 + x 2 4 x 1 0, x 2 0. (2) O primeiro passo é colocá-lo na forma padrão, adicionando as variáveis de folga; Thiago Queiroz (IMTec) Parte 3 1/2016 17 / 26

Método Simplex em Tabelas Tabela: Tabela simplex inicial - Dados do problema. x 1 x 2 x 3 x 4 x 5 b 1-2 0 0 0 z 1 1 1 0 0 6 1-1 0 1 0 4-1 1 0 0 1 4 Resulta na seguinte tabela simplex inicial, com as Variáveis Básica (VB): Tabela: Tabela simplex inicial. x 1 x 2 x 3 x 4 x 5 b VB 1-2 0 0 0 0 x 3 1 1 1 0 0 6 x 4 1-1 0 1 0 4 x 5-1 1 0 0 1 4 Thiago Queiroz (IMTec) Parte 3 1/2016 18 / 26

O algoritmo simplex em Tabelas Considere um problema de otimização linear na forma padrão. Fase I: Determine uma tabela simplex inicial: A matriz dos coeficientes contém uma matriz identidade m m, e o vetor independente b 0; A função objetivo é escrita em termos das variáveis não-básicas, isto é, os coeficientes das variáveis básicas são nulos; Faça iteração = 0. Fase II: 1. Determine o menor dos custos relativos: c k = mínimo {c j, para toda variável não-básica }; 2. Se ck 0, então pare: solução ótima encontrada; 2.1. Senão, a variável x k entra na base; Thiago Queiroz (IMTec) Parte 3 1/2016 19 / 26

O algoritmo simplex em Tabelas Fase II: continuação... 3. Se a ik 0, para i = 1,..., m, então pare: solução ilimitada; 3.1. Senão, determine: b l = mínimo { b i tal que a a lk a ik > 0, i = 1,..., m}; ik 3.2. A variável básica da linha l, digamos x l, sai da base; 4. Atualize a tabela simplex, considerando o elemento pivô alk e fazendo o pivoteamento no restante da coluna; 4.1. A variável x k passa a ser a variável básica na linha l; 4.2. Faça iteração = iteração + 1; 4.3. Retorne ao passo 1. Thiago Queiroz (IMTec) Parte 3 1/2016 20 / 26

Exemplo Aplique o algoritmo simplex em tabelas no seguinte problema de otimização linear: Minimizar z = x 1 2x 2 x 1 + x 2 6 x sujeito a : 1 x 2 4 x 1 + x 2 4 x 1 0, x 2 0. (3) Thiago Queiroz (IMTec) Parte 3 1/2016 21 / 26

Resolução Pela Fase I, monta-se a tabela simplex inicial, explicitando as variáveis básicas; Fazemos iteração = 0. Tabela: Tabela simplex inicial. x 1 x 2 x 3 x 4 x 5 b VB 1-2 0 0 0 0 x 3 1 1 1 0 0 6 x 4 1-1 0 1 0 4 x 5-1 1 0 0 1 4 Aplicando a Fase II, segue que: 1. O menor custo relativo é: c 2 = 2; 2. c 2 < 0, de forma que a variável x 2 entra na base. Thiago Queiroz (IMTec) Parte 3 1/2016 22 / 26

Resolução 3. Existe a ik > 0. Observe: para i=3 temos 1, e para i=5 temos 1; 3.1. O mínimo ocorre para { 6 1 ; 4 1 }, isto é, para l=i=5; 3.2. A variável básica x 5 sai da base; Tabela: Tabela simplex inicial. x 1 x 2 x 3 x 4 x 5 b VB -1-2 0 0 0 0 x 3 1 1 1 0 0 6 x 4 1-1 0 1 0 4 x 5-1 1 0 0 1 4 4. O elemento pivô é o a ik = a 52 = 1. Realizamos o pivoteamento na coluna a k = a 2 ; 4.1. A variável x 2 entra no lugar da variável x 5 ; Thiago Queiroz (IMTec) Parte 3 1/2016 23 / 26

Resolução Tabela: Tabela simplex iteração 1. x 1 x 2 x 3 x 4 x 5 b VB -3 0 0 0 2 0 + 8 x 3 2 0 1 0-1 2 x 4 0 0 0 1 1 8 x 2-1 1 0 0 1 4 4.2. Faça: iteração = iteração + 1, resultando em iteração = 1; 4.3. Retorne ao passo 1. O processo de resolução continua... até chegarmos na tabela simplex final: Thiago Queiroz (IMTec) Parte 3 1/2016 24 / 26

Resolução Tabela: Tabela simplex final. x 1 x 2 x 3 x 4 x 5 b 3 1 VB 0 0 2 0 2 0 + 8 + 2 = 11 1 x 1 1 0 2 0-1 2 1 x 4 0 0 0 1 1 8 1 1 x 2 0 1 2 0 2 5 Thiago Queiroz (IMTec) Parte 3 1/2016 25 / 26

Exemplos Para uma boa alimentação, o corpo necessita de vitaminas e proteínas. A necessidade mínima de vitaminas é de 32 unidades por dia e a de proteínas de 36 unidades por dia. Uma pessoa tem disponível carne e ovos para se alimentar. Cada unidade de carne contém 4 unidades de vitaminas e 6 unidades de proteínas. Cada unidade de ovo contém 8 unidades de vitaminas e 6 unidades de proteínas. Qual a quantidade diária de carne e ovos que deve ser consumida para suprir as necessidades de vitaminas e proteínas com o menor custo possível? Cada unidade de carne custa 3 unidades monetárias e cada unidade de ovo custa 2,5 unidades monetárias. a) Obtenha o modelo de otimização linear para o problema acima; b) Obtenha todas as soluções básicas factíveis para o problema acima; c) Determine a solução ótima, caso exista, do problema acima usando o método simplex em tabelas; Thiago Queiroz (IMTec) Parte 3 1/2016 26 / 26