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