Unidade de Matemática e Tecnologia - RC/UFG Programação Linear/Inteira Prof. Thiago Alves de Queiroz Aula 3 Thiago Queiroz (IMTec) Aula 3 Aula 3 1 / 45
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, deve-se 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) Aula 3 Aula 3 2 / 45
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) Aula 3 Aula 3 3 / 45
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; Ele é também referenciado como vetor de variáveis duais; Ele pode ser obtido pela resolução do sistema: B T λ = c B. Thiago Queiroz (IMTec) Aula 3 Aula 3 4 / 45
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) Aula 3 Aula 3 5 / 45
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, pode-se escrever: f(x) = f(ˆx) + ĉ N1 x N1 + ĉ N2 x N2 +... + ĉ Nn m x Nn m ; Sabe-se 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) Aula 3 Aula 3 6 / 45
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. Chama-se de estratégia simplex, a perturbação de uma solução básica factível que consiste em 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) Aula 3 Aula 3 7 / 45
Pergunta (ii) Segue que 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) Aula 3 Aula 3 8 / 45
Pergunta (ii) Note que quanto menor o valor de ĉ Nk, mais rápida 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) Aula 3 Aula 3 9 / 45
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) Aula 3 Aula 3 10 / 45
Pergunta (ii) Definição 9. Chama-se 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 componentes, tem-se: 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) Aula 3 Aula 3 11 / 45
Solução ótima ilimitada Se y i 0, para todo 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) Aula 3 Aula 3 12 / 45
Pergunta (ii) Com o valor de ˆɛ = ˆx B l y l, a variável básica x Bl anula-se 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) Aula 3 Aula 3 13 / 45
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; As etapas anteriores consistem no método simplex. Thiago Queiroz (IMTec) Aula 3 Aula 3 14 / 45
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 ; Isso faz com que a matriz básica seja atualizada em cada iteração, resultando no método simplex revisado; O método simplex revisado tem limitações: 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á limitantes superiores para as variáveis, isto é, 0 x j u j : Chamado de método simplex para variáveis canalizadas. Thiago Queiroz (IMTec) Aula 3 Aula 3 15 / 45
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) Aula 3 Aula 3 16 / 45
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) Aula 3 Aula 3 17 / 45
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) Aula 3 Aula 3 18 / 45
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) Aula 3 Aula 3 19 / 45
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) Aula 3 Aula 3 20 / 45
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) Aula 3 Aula 3 21 / 45
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) Aula 3 Aula 3 22 / 45
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) Aula 3 Aula 3 23 / 45
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) Aula 3 Aula 3 24 / 45
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) Aula 3 Aula 3 25 / 45
Exercício 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) Determine a solução ótima, caso exista, utilizando o método simplex em tabelas; Thiago Queiroz (IMTec) Aula 3 Aula 3 26 / 45
Casos Especiais: Degeneração Algumas vezes pode ocorrer um empate na escolha de variáveis a entrar na base, resultando na degeneração; Isso revela que o modelo possui uma ou mais restrições redundantes, implicando em: ciclagem: o valor da função objetivo não melhora e a condição de otimalidade não é alcançada em uma sequência de iterações; estagnação do valor objetivo: ocorre uma mudança entre variáveis básicas e não-básicas, embora resultem em valores idênticos para a função objetivo; A degeneração no método gráfico, com duas variáveis, pode ser observada quando há três ou mais restrições passando por um mesmo vértice da região factível; Pode-se utilizar a regra de Bland para lidar com a degeneração: Escolhe-se a variável de menor índice para sair na base, nos casos de empate; Escolhe-se a variável de menor índice para entrar da base, nos casos de empate; Thiago Queiroz (IMTec) Aula 3 Aula 3 27 / 45
Casos Especiais: Outros Múltiplas Soluções Ótimas: a função objetivo pode ser escrita como combinação linear de alguma das restrições; No método gráfico, isso corresponde a ter uma curva de nível da função objetivo que coincide com um dos lados (segmento de reta) do região factível; Solução Ilimitada: na linha da variável que vai entrar na base, todos os coeficientes das restrições são negativos ou nulos; No método gráfico, isso corresponde a região factível ser aberta (ilimitada) e a função objetivo caminhar nessa direção indefinidamente; Solução Inviável: surgem valores negativos para as variáveis básicas ao atingir a condição de otimalidade; No método gráfico, isso corresponde a não ter região factível, ou seja, as restrições são inconsistentes; Thiago Queiroz (IMTec) Aula 3 Aula 3 28 / 45
Solução Inicial O método simplex depende de uma solução básica factível inicial (Fase I); Para problemas como: Minimizar z { = c T x Ax b sujeito a : x 0. (4) sendo b 0, temos uma solução básica factível naturalmente; Com a introdução das variáveis de folga, digamos x f, temos: Minimizar z { = c T x Ax + xf = b sujeito a : x 0, x f 0. (5) Thiago Queiroz (IMTec) Aula 3 Aula 3 29 / 45
Solução Inicial Note que a matriz dos coeficientes das restrições é dada por [A I]; Esta matriz fornece a seguinte partição básica factível: B = I: as variáveis básicas são as variáveis de folga x b = x f ; N = A: as variáveis não-básicas são as variáveis originais xn = x; Além disso, a solução básica factível é dada por: xb = x f = b 0; xn = x = 0; Porém, em geral, uma solução básica factível inicial deve ser encontrada. Considere: Minimizar z { = c T x Ax = b sujeito a : x 0. (6) Em que A não tem uma submatriz identidade e que b 0. Thiago Queiroz (IMTec) Aula 3 Aula 3 30 / 45
Solução Inicial A questão é como encontrar uma partição nas colunas de A m n, A = [B N], tal que exista B 1 e x B = B 1 b 0; Uma estratégia simples é fazer uma busca exaustiva e encontrar m colunas linearmente independentes para formar B, satisfazendo x B 0; Note que este procedimento pode envolver a resolução de C n m sistemas de equações lineares m m; Isto é inaceitável para problemas grandes do ponto de vista computacional; Existe um método, chamado de método das duas fases que permite encontrar uma solução inicial. Thiago Queiroz (IMTec) Aula 3 Aula 3 31 / 45
Método das Duas Fases Quando há restrições de igualdade, não há variáveis de folga; Quando há restrições do tipo, há variáveis de excesso que aparecem com o coeficiente 1 na restrição; Nos dois casos, introduzimos novas variáveis, como se fossem de folga. No exemplo de igualdade: Ax = b Ax + y = b x 0, y 0. Essas novas vaiáveis são chamadas variáveis artificiais: NÃO fazem parte do problema original; Devem ser eliminadas. Thiago Queiroz (IMTec) Aula 3 Aula 3 32 / 45
Método das Duas Fases Para eliminar as variáveis artificiais, cria-se um novo objetivo; Isto resulta no problema artificial: m Minimizar z a = y i = y 1 + y 2 +... + y m { i=1 Ax + y = b sujeito a : x 0, y 0. (7) A solução ótima desse problema deve ter y i = 0, i = 1,..., m; Os coeficientes na função objetivo artificial podem ser quaisquer números positivos; Caso haja colunas da matriz identidade na matriz A: Tais colunas devem ser utilizadas para formar a base inicial; Completar o restante das colunas com a adição das variáveis artificiais; Thiago Queiroz (IMTec) Aula 3 Aula 3 33 / 45
Método das Duas Fases Observe um exemplo em que não é preciso adicionar variáveis artificiais em todas as restrições: Minimizar z = x 1 x 2 + 2x 3 x 1 + x 2 + x 3 = 3 sujeito a : 2x 1 x 2 + 3x 3 4 x 1 0, x 2 0, x 3 0. (8) Para se ter uma base B factível, requer-se uma matriz de ordem m = 2, ou seja, de duas colunas linearmente independentes; Note que a segunda restrição é do tipo, sendo necessário acrescentar uma variável de folga com coeficiente positivo: 2x 1 x 2 + 3x 3 + x 4 = 4, com x 4 0. Esta restrição fornece imediatamente uma variável básica, pois [ ] 0 sua coluna corresponde a uma coluna da matriz identidade. 1 Thiago Queiroz (IMTec) Aula 3 Aula 3 34 / 45
Método das Duas Fases A primeira restrição não fornece imediatamente qualquer variável básica. O mesmo seria verdade caso tal restrição fosse do tipo ; Neste caso, seguindo o método das duas fases, cria-se uma variável artificial x5 a que é adicionada na restrição, ou seja: x 1 + x 2 + x 3 + x5 a = 3, com x 5 a 0. Note que agora se tem imediatamente uma variável básica, já que outra coluna da matriz identidade está disponível; O problema artificial é: Minimizar z a = x5 a x 1 + x 2 + x 3 + x5 a = 3 sujeito a : 2x 1 x 2 + 3x 3 + x 4 = 4 x 1 0, x 2 0, x 3 0, x 4 0, x 5 0. (9) Logo, pode-se definir as variáveis básicas por x B = (x a 5, x 4); Thiago Queiroz (IMTec) Aula 3 Aula 3 35 / 45
Método das Duas Fases No caso geral, o problema artificial sempre tem uma partição básica factível óbvia: B = I: variáveis básicas xb = y; N = A: variáveis não-básicas x N = x. Com isso, aplica-se o método simplex para obter uma base inicial que não contenha variáveis artificiais; O objetivo é chegar em uma base que contenha apenas as variáveis do problema (podendo ter as de folga/excesso) e com as colunas originais da matriz A; Isto acontece quando a função objetivo artificial alcançar o valor 0 (zero), isto é, z a = 0, que é o mínimo para o objetivo artificial; Com base nisso, o problema artificial tem, em geral, infinitas soluções ótimas, isto é, qualquer solução factível do problema original é solução ótima para o problema artificial. Thiago Queiroz (IMTec) Aula 3 Aula 3 36 / 45
Ao Passar da Fase I para a Fase II Ao final da Fase I, se existir alguma variável artificial na base, procede-se da seguinte maneira: Etapa 1: Selecione uma variável artificial básica com valor (solução) igual a zero sair da base e designe sua linha como a linha do pivô; A variável que entra na base pode ser qualquer variável não-básica (não-artificial) que tenha coeficiente não-zero (positivo ou negativo) na linha do pivô. Execute a operação de pivotamento; Etapa 2: Remova a coluna da variável artificial que acabou de sair da base. Se todas as variáveis artificiais básicas com valor igual a zero tiverem sido removias, passe para a Fase II. Caso contrário, volte para a Etapa 1; Caso não alguma variável artificial tenha valor/solução diferente de zero, então o problema original é infactível; Thiago Queiroz (IMTec) Aula 3 Aula 3 37 / 45
Método das Duas Fases Por outro lado, o problema original é infactível (inviável) quando o problema artificial tem solução ótima z a 0, ou seja, existe variável artificial básica com valor diferente de zero; Neste caso, finaliza-se a resolução e retorna-se que o problema original é inviável; Em resumo, o método das duas fases consiste em: Fase I: resolver o problema artificial com o simplex; Fase II: resolver o problema original com o simplex, a partir da base factível obtida na Fase I. No final da Fase I, chegando em z a = 0, pode-se eliminar (todas) as variáveis artificiais e as suas respectivas colunas do modelo, caso tais variáveis estejam fora da base. Caso elas estejam na base, deve-se proceder conforme o slide anterior; Thiago Queiroz (IMTec) Aula 3 Aula 3 38 / 45
Método das Duas Fases Exemplo. Resolva o seguinte problema de programação linear usando o método das duas fases. Maximizar z = x 1 + x 2 x 1 + 4x 2 4 sujeito a : 3x 1 + x 2 = 1 x 1 0, x 2 0. (10) 1. Coloque as restrições na forma padrão, adicionando uma variável de folga onde for preciso: primeira restrição; x 1 + 4x 2 x 3 = 4, com x 3 0, 2. Como não é possível obter uma base diretamente, com B = I, acrescentam-se variáveis artificiais nas restrições que originalmente eram = e : primeira e segunda restrição; Thiago Queiroz (IMTec) Aula 3 Aula 3 39 / 45
Método das Duas Fases Na primeira restrição, adiciona-se a variável artificial y 1 0: x 1 + 4x 2 x 3 + y 1 = 4; Na segunda restrição, adiciona-se a variável artificial y 2 0: 3x 1 + x 2 + y 2 = 1; O problema artificial é: Minimizar z a = y 1 + y 2 x 1 + 4x 2 x 3 + y 1 = 4 sujeito a : 3x 1 + x 2 + y 2 = 1 x 1 0, x 2 0, x 3 0, y 1 0, y 2 0. (11) 3. Aplica-se o simplex (em tabelas) para resolver o problema artificial; Thiago Queiroz (IMTec) Aula 3 Aula 3 40 / 45
Método das Duas Fases Para montar a tabela, a linha da função objetivo artificial consiste na operação das linhas: linha da função objetivo artificial - linhas que contém variáveis artificiais: Linha original de z a y 1 + y 2 = 0 - Linha da restrição que contém y 1 (x 1 + 4x 2 x 3 + y 1 = 4) - Linha da restrição que contém y 2 (3x 1 + x 2 + y 2 = 1) = nova linha de z a = 4x 1 + 5x 2 + x 3 = 5. Colocar a linha da função objetivo original na forma padrão: Minimizar z = x 1 x 2 Tabela: Tabela simplex inicial - Fase I. x 1 x 2 x 3 y 1 y 2 b z a -4-5 1 0 0-5 VB -1-1 0 0 0 0 y 1 1 4-1 1 0 4 y 2 3 1 0 0 1 1 Thiago Queiroz (IMTec) Aula 3 Aula 3 41 / 45
Método do M-grande Um objetivo alternativo para o problema artificial consiste em considerar a função objetivo original; Neste caso, as variáveis artificiais são penalizadas exageradamente de modo que sejam nulas na solução ótima (caso o problema tenha solução); Considere um valor grande de M: positivo (se o problema original for de minimizar) ou negativo (se o problema original for de maximizar); Dado o problema original com uma função de minimizar, então a nova função objetivo é: Minimizar z a = c T x + M(y 1 + y 2 +... + y m ). Após adicionar as variáveis artificias penalizadas com o coeficiente de M na função objetivo, o problema é resolvido com o método simplex (em tabelas); Thiago Queiroz (IMTec) Aula 3 Aula 3 42 / 45
Método do M-grande Note que o valor exagerado para as variáveis artificiais deve orientar o método simplex para substituir as variáveis artificias da base por outras de menor coeficiente na função objetivo; Se o problema não possuir solução factível, então, no final da aplicação do método simplex, alguma variável artificial será básica e diferente de zero na solução ótima encontrada; Este procedimento é chamado de método do M-grande, tendo desempenho na prática inferior método das duas fases; Exemplo. Aplique o método do M-grande para resolver o problema abaixo: Maximizar z = x 1 + x 2 x 1 + 4x 2 4 sujeito a : 3x 1 + x 2 = 1 x 1 0, x 2 0. (12) Thiago Queiroz (IMTec) Aula 3 Aula 3 43 / 45
Método do M-grande 1. Coloque as restrições na forma padrão, adicionando uma variável de folga onde for preciso: primeira restrição; x 1 + 4x 2 + x 3 = 4, com x 3 0. 2. Como não é possível obter uma base diretamente, com B = I, acrescente variáveis artificiais nas restrições que originalmente eram = e : primeira e segunda restrição; Na primeira restrição, adiciona-se a variável artificial y 1 0: x 1 + 4x 2 x 3 + y 1 = 4; Na segunda restrição, adiciona-se a variável artificial y 2 0: 3x 1 + x 2 + y 2 = 1; 3. Na função objetivo do problema acrescente a variável artificial com um coeficiente (valor de M) negativo: Maximizar z a = x 1 + x 2 100y 1 100y 2. 4. Transforma-se a função objetivo do problema para a forma padrão: Minimizar z a = x 1 + x 2 + 100y 1 + 100y 2. Thiago Queiroz (IMTec) Aula 3 Aula 3 44 / 45
Método do M-grande Para montar a tabela, a linha da função objetivo consiste na operação das linhas: linha da função objetivo artificial - M (linhas que contém variáveis artificiais): Linha original de z a x 1 x 2 + 100y 1 + 100y 2 = 0 - Linha que contém y 1 100(x 1 + 4x 2 x 3 + y 1 = 4) - Linha que contém y 2 100(3x 1 + x 2 + y 2 = 1) = linha objetivo z = 401x 1 501x 2 + 100x 3 = 500. Tabela: Tabela simplex inicial - Grande M. x 1 x 2 x 3 y 1 y 2 b VB -401-501 100 0 0-500 y 1 1 4-1 1 0 4 y 2 3 1 0 0 1 1 5. Aplique o método simplex e observe que, na solução final, as variáveis artificiais não devem aparecer na base; Lembre-se que a variável artificial não tem significado para o problema; Thiago Queiroz (IMTec) Aula 3 Aula 3 45 / 45