Método Simple. Montar um dicionário inicial 2. Olhando a equação do z, escolha uma variável nãobásica in cujo aumento melhoraria a solução corrente do dicionário (coeficiente negativo se for minimização, positivo se for maimização). Se não houver tal variável, a solução corrente é ótima. 3. Calcule o máimo valor para in que não torne uma variável básica negativa. Se esse valor for infinito, o PL é ilimitado. Caso contrário, escolha uma variável out que bloqueou o crescimento de in.. A variável in entra na base, out sai da base. Atualize o dicionário colocando in isolado do lado esquerdo, out vai pro lado direito. Volte para o Passo 2.
Como montar o dicionário inicial? Isso só é óbvio quando a matriz A já contém uma base viável que seja uma matriz-identidade. Por eemplo, quando todas as restrições são do tipo e o vetor b for não-negativo, as variáveis de folga definem uma base-identidade viável. Em geral, não eiste maneira simples de montar o primeiro dicionário. Apenas saber se eiste alguma solução para um PL pode ser difícil! 2
Pesquisa Operacional I Inicialização do método simple Prof.: Eduardo Uchoa uchoa@producao.uff.br http://www.logis.uff.br/~uchoa/poi 3
Eemplo: Minimizar 2 2 2 sujeito a + 2 2 3 - + 2 2 3, 2 0 2
Colocando o PL no formato padrão Eemplo: Minimizar 2 2 sujeito a + 2 2 - + 2 2 3, 2 0 Min 2 2 s. a + 2-3 = 2 - + 2 - = 2 + 5 = 3, 2, 3,, 5 0 As variáveis de folga/ecesso não servem para obter uma base identidade viável (se as duas primeiras igualdades forem multiplicadas por -, o vetor b fica com valores negativos). 5
Adicionar duas variáveis artificiais ao PL para que eista uma base viável que seja uma identidade! Note que as variáveis de folga/ecesso são variáveis reais do PL (não mudam o problema) e possuem coeficiente zero na F.O. Já as novas variáveis artificiais mudam o problema e, portanto, devem receber o coeficiente M (um número arbitrariamente grande, tendendo ao infinito) se o problema for de minimização e M se for de maimização. Eemplo: Minimizar 2 2 sujeito a + 2 2 - + 2 2 3, 2 0 Min 2 2 + M 6 + M 7 s. a + 2-3 + 6 = 2 - + 2 - + 7 = 2 + 5 = 3, 2, 3,, 5, 6, 7 0 6
Notar que:. As variáveis 5, 6 e 7 definem uma base identidade viável para o PL modificado => É fácil montar o dicionário inicial para esse PL. 2. Mas o valor da F.O. da solução associada é muito ruim, pior do que o custo de qualquer solução que não use essas variáveis (ou seja, em que elas estejam zeradas). Eemplo: Minimizar 2 2 sujeito a + 2 2 - + 2 2 3, 2 0 Min 2 2 + M 6 + M 7 s. a + 2-3 + 6 = 2 - + 2 - + 7 = 2 + 5 = 3, 2, 3,, 5, 6, 7 0 7
Logo: Se o PL original tiver solução viável => a solução ótima do PL modificado vai ser a solução ótima do PL original (as variáveis artificiais serão não-básicas e terão valor zero). Se o PL original for inviável => a solução ótima do PL modificado vai ter alguma variável artificial não-zerada. Eemplo: Minimizar 2 2 sujeito a + 2 2 - + 2 2 3, 2 0 Min 2 2 + M 6 + M 7 s. a + 2-3 + 6 = 2 - + 2 - + 7 = 2 + 5 = 3, 2, 3,, 5, 6, 7 0 8
º dicionário = 2 + 6 2 3 = + + 7 2 = 3 5 2 ( ) z = 3M + 2 + 2M + M + M 2 3 2 3 A solução associada (0,0) viola duas restrições do problema original 2 9
º dicionário = 2 + 6 2 3 = + + 7 2 = 3 5 2 ( ) z = 3M + 2 + 2M + M + M 2 3 0
º dicionário = 2 + 6 2 3 = + + 7 2 = 3 5 2 ( ) z = 3M + 2 + 2M + M + M 2 3 2 2 = = { } min 2,,3
º dicionário = 2 + 6 2 3 = + + 7 2 = 3 5 2 ( ) z = 3M + 2 + 2M + M + M 2 3 2 2 = = { } min 2,,3 2
º dicionário = 2 + 6 2 3 = + + 7 2 = 3 5 2 ( ) z = 3M + 2 + 2M + M + M 2 3 2 2 = = { } min 2,,3 entra na base e sai da base 2 7 3
2º dicionário = 2 + + 6 3 7 = + + 2 7 = 2 + 5 7 ( ) ( ) ( ) z = 2 + M + 2M + M 2 + M + 2 + 2M 3 7
2º dicionário = 2 + 6 3 = + + 2 = 2 5 ( ) ( 2 ) + ( ) z = 2 + M + 2M + M + M 2 + 2M 3 + + 7 7 7 7 Quando uma variável artificial sai da base, ela nunca mais volta (devido a seu custo infinito) => 7 pode ser retirada do dicionário 5
2º dicionário = 2 + 6 3 = + + 2 = 2 5 ( ) ( ) z = 2 + M + 2M + M 2 + M 3 2 3 A nova solução viola apenas uma restrição 2 6
2º dicionário = 2 + 6 3 = + + 2 = 2 5 ( ) ( ) z = 2 + M + 2M + M 2 + M 3 7
2º dicionário = 2 + 6 3 = + + 2 = 2 5 ( ) ( ) z = 2 + M + 2M + M 2 + M 3 = min, 2 2 = 2 8
2º dicionário = 2 + 6 3 = + + 2 = 2 5 ( ) ( ) z = 2 + M + 2M + M 2 + M 3 = min, 2 2 = 2 9
2º dicionário = 2 + 6 3 = + + 2 = 2 5 ( ) ( ) z = 2 + M + 2M + M 2 + M 3 = min, 2 2 = 2 entra na base e sai da base 6 20
3º dicionário = 2 + 2 2 2 3 6 = 3 2 + 2 + 2 2 2 3 6 = 3 2 2 2 + 2 5 3 6 ( + 2M ) 5 3 z = 3 + 2 2 2 2 6 entra na base e sai da base 2
3º dicionário = 2 + 2 2 3 = 3 2 + 2 + 2 2 3 = 3 2 2 2 5 3 5 3 z = 3 2 2 2 + 2 2 + 2 6 6 6 ( + 2M ) 2 6 entra na base e sai da base A variável artificial 6 pode ser eliminada 22
2 3º dicionário = 2 + 2 2 3 = 3 2 + 2 + 2 2 3 = 3 2 2 2 5 3 5 3 z = 3 2 2 2 3 2 entra na base e sai da base Todas as variáveis artificiais foram eliminadas. Logo, essa solução é viável para o problema original! Agora basta prosseguir com o método até a solução ótima. 23
3º dicionário = 2 + 2 2 3 = 3 2 + 2 + 2 2 3 = 3 2 2 2 5 3 5 3 z = 3 2 2 2 entra na base e sai da base 2
3º dicionário = 2 + 2 2 3 = 3 2 + 2 + 2 2 3 = 3 2 2 2 5 3 5 3 z = 3 2 2 2 2 3 2 = min, 2 2 = entra na base e sai da base 25
3º dicionário = 2 + 2 2 3 = 3 2 + 2 + 2 2 3 = 3 2 2 2 5 3 5 3 z = 3 2 2 2 2 3 2 = min, 2 2 = entra na base e sai da base 26
3º dicionário = 2 + 2 2 3 = 3 2 + 2 + 2 2 3 = 3 2 2 2 5 3 5 3 z = 2 2 2 3 2 3 2 = min, 2 2 = entra na base e sai da base 27
º dicionário = 2 + 3 = 2 + 2 3 = + 5 3 z = + 3 2 3 3 2 entra na base e sai da base 2 28
º dicionário = 2 + 3 = 2 + 2 3 = + 5 3 z = + 3 2 3 entra na base e sai da base 29
º dicionário = 2 + 3 = 2 + 2 3 = + 5 3 z = + 3 2 3 3 = min entra na base e sai da base 30
º dicionário = 2 + 3 = 2 + 2 3 = + 5 3 z = + 3 2 3 3 = min entra na base e sai da base 3
º dicionário = 2 + 3 = 2 + 2 3 = + 5 3 z = + 3 2 3 3 = min entra na base e sai da base 3 5 32
5º dicionário = 2 5 = 3 2 5 = + 3 5 z = 6 + + 2 5 entra na base e sai da base 33
5º dicionário = 2 5 = 3 2 5 = + 3 5 z = 6 + + 2 5 Não eistem variáveis que, quando aumentadas, resultem em redução do valor da função objetivo. Logo, a solução encontrada neste dicionário é ótima. entra na base e sai da base 3
5º dicionário = 2 5 = 3 2 5 = + 3 5 z = 6 + + 2 5 Não eistem variáveis que, quando aumentadas, resultem em redução do valor da função objetivo. 2 entra na base e sai da base A solução associada a este dicionário é ótima e dada por: = 0 2 = 3 Esta solução resulta em: z = -6 3 2 35
2 5 0 Min 2 + 2 S.a,5 +,0 2 2 3,0 +,5 2 2,0 +,0 2 8, 2 0 5 0 5 Min 2 + 2 +M 6 +M 7,5 +,0 2 -,0 3 +,0 6 = 2 3,0 +,5 2 -,0 +,0 7 = 2,0 +,0 2 +,0 5 = 8, 2, 3,, 5, 6, 7 0 36
º dicionário 3 6 = 2 2 + 3 2 = 2 3 3 2 + = 8 7 2 5 2 ( 9M ) ( 8 M ) z = 5M + + + M + M 2 2 2 3 2 2 = = 6 { } min 6,,8 entra na base e sai da base e é eliminada do problema 2 6 37
2º dicionário 3 2 = 6 + 3 8 39 3 = 2 + 6 8 5 5 = 2 3 8 7 3 ( 2 2 ) ( 8 39M ) ( 8 3M ) z = + M + + + M 6 8 3 entra na base e sai da base 5 6 2 2 = min,, 3 8 39 6 5 8 = 6 5 38
3º dicionário 2 2 3 2 = + 3 + 5 5 5 5 2 3 39 = + + + 5 5 0 6 2 8 = 3 5 5 5 5 7 3 5 ( 28 + 2M ) ( 32 + 2M ) ( 8 + 39M ) z = + 3 + M + 5 0 0 5 entra na base e sai da base 5 Coeficientes positivos, solução ótima. 39
3º dicionário 2 2 3 2 = + 3 + 5 5 5 5 2 3 39 = + + + 5 5 0 6 2 8 5 = 3 5 5 5 5 7 3 5 ( 28 + 2M ) ( 32 + 2M ) ( 8 + 39M ) z = + 3 + M + 5 0 0 5 entra na base e sai da base 5 Como há variável artificial com valor positivo na solução ótima, o problema original é inviável. 0
É possível eecutar o método de duas formas: Tratar M algebricamente (como estamos fazendo) - Preferível, sempre funciona Atribuir um valor numérico suficientemente grande para M -Em alguns raros casos pode ser difícil achar um valor adequado. Valor baio demais: o método termina com variável artificial positiva apesar de haver solução viável. Valor alto demais: estouro numérico no computador
O método das duas fases Uma alternativa para inicializar o método simple Na Fase, ignora-se a FO original. Na nova FO, as variáveis artificiais tem coeficiente e as demais 0. Se a solução ótima desse PL modificado tiver z > 0 => PL original inviável. Caso contrário, todas as variáveis artificiais foram eliminadas => a base inicial do PL original está pronta Na Fase 2, restaura-se a FO original (de acordo com essa base) e resolve-se o PL 2
O método das duas fases Eemplo: minimizar 2 2 sujeito a + 2 2 - + 2 2 3, 2 0 min Z - + 2 2 s. a + 2-3 + 6 = 2 - + 2 - + 7 = 2 + 5 = 3, 2, 3,, 5, 6, 7 0 FASE : min 6 + 7 s. a + 2-3 + 6 = 2 - + 2 - + 7 = 2 + 5 = 3, 2, 3,, 5, 6, 7 0 3
O método das duas fases Fase º dicionário = 2 + 6 2 3 = + + 7 2 = 3 5 2 z = 3 2 + + 2 3 entra na base e sai da base 2 7
O método das duas fases Fase º dicionário = 2 + 6 2 3 = + + 7 2 = 3 5 2 z = 3 2 + + 2 3 entra na base e sai da base 2 7 5
O método das duas fases Fase º dicionário = 2 + 6 2 3 = + + 7 2 = 3 5 2 z = 3 2 + + 2 3 2 2 = = { } min 2,,3 entra na base e sai da base 2 7 6
O método das duas fases Fase º dicionário = 2 + 6 2 3 = + + 7 2 = 3 5 2 z = 3 2 + + 2 3 2 2 = = { } min 2,,3 entra na base e sai da base 2 7 7
O método das duas fases Fase º dicionário = 2 + 6 2 3 = + + 7 2 = 3 5 2 z = 3 2 + + 2 3 2 2 = = { } min 2,,3 entra na base e sai da base 2 7 8
O método das duas fases Fase 2º dicionário = 2 + 6 3 = + + 2 = 2 5 z = 2 + 3 entrou na base e saiu da base 2 7 e foi eliminada 9
O método das duas fases Fase 2º dicionário = 2 + 6 3 = + + 2 = 2 5 z = 2 + 3 50
O método das duas fases Fase 2º dicionário = 2 + 6 3 = + + 2 = 2 5 z = 2 + 3 = min,2 2 = 2 5
O método das duas fases Fase 2º dicionário = 2 + 6 3 = + + 2 = 2 5 z = 2 + 3 = min,2 2 = 2 52
O método das duas fases Fase 2º dicionário = 2 + 6 3 = + + 2 = 2 5 z = 2 + 3 = min,2 2 = 2 entra na base e sai da base e 6 é eliminada 53
O método das duas fases Fase 3º dicionário = + 2 2 2 = 3 + + 2 2 2 = 3 2 2 2 z = 0 3 2 3 5 3 2 3 2 Fim da fase Foi encontrada uma solução básica viável: = ½, 2 = 3/2, 5 = 3/2 z = 0 5
Restaurando a FO original Fase 2 Montando o º dicionário = 2 + 2 2 3 = 3 2 + 2 + 2 z 2 3 = 3 2 2 5 3 = 2 2 2 entra na base e sai da base 55
O método das duas fases Fase 2 Montando o º dicionário = 2 + 2 2 3 = 3 2 + 2 + 2 z 2 3 = 3 2 2 5 3 = 2 2 2 A FO deve ser escrita em função das entra na base e sai da base variáveis não-básicas 3 e 56
O método das duas fases Fase 2 º dicionário = 2 + 2 2 3 = 3 2 + 2 + 2 2 3 = 3 2 2 2 5 3 5 3 z = 3 2 2 2 entra na base e sai da base 57
O método das duas fases Fase 2 º dicionário = 2 + 2 2 3 = 3 2 + 2 + 2 2 3 = 3 2 2 2 5 3 5 3 z = 3 2 2 2 entra na base e sai da base 58
O método das duas fases Fase 2 º dicionário = 2 + 2 2 3 = 3 2 + 2 + 2 2 3 = 3 2 2 2 5 3 5 3 z = 3 2 2 2 2 3 2 = min, 2 2 = entra na base e sai da base 59
O método das duas fases Fase 2 º dicionário = 2 + 2 2 3 = 3 2 + 2 + 2 2 3 = 3 2 2 2 5 3 5 3 z = 3 2 2 2 2 3 2 = min, 2 2 = entra na base e sai da base 60
O método das duas fases Fase 2 º dicionário = 2 + 2 2 3 = 3 2 + 2 + 2 2 3 = 3 2 2 2 5 3 5 3 z = 2 2 2 3 2 3 2 = min, 2 2 = entra na base e sai da base 6
O método das duas fases Fase 2 2º dicionário = 2 + 3 = 2 + 2 3 = + 5 3 z = + 3 2 3 entra na base e sai da base 62
O método das duas fases Fase 2 2º dicionário = 2 + 3 = 2 + 2 3 = + 5 3 z = + 3 2 3 entra na base e sai da base 63
O método das duas fases Fase 2 2º dicionário = 2 + 3 = 2 + 2 3 = + 5 3 z = + 3 2 3 3 = entra na base e sai da base 6
O método das duas fases Fase 2 2º dicionário = 2 + 3 = 2 + 2 3 = + 5 3 z = + 3 2 3 3 = entra na base e sai da base 65
O método das duas fases Fase 2 2º dicionário = 2 + 3 = 2 + 2 3 = + 5 3 z = + 3 2 3 3 = entra na base e sai da base 3 5 66
O método das duas fases Fase 2 3º dicionário = 2 5 = 3 2 5 = + 3 5 z = 6 + + 2 5 entra na base e sai da base 67
O método das duas fases Fase 2 3º dicionário = 2 5 = 3 2 5 = + 3 5 z = 6 + + 2 5 entra na base e sai da base 68
O método das duas fases Fase 2 3º dicionário = 2 5 2 5 3 5 = 3 = + z = 6 + + 2 entra na base e sai da base Coeficientes positivos, solução ótima. 5 Fim da fase 2. A solução associada ao 3º dicionário é ótima e é dada por: = 0, 2 = 3 Z = -6 3 2 2 69
OBSERVAÇÃO Este material refere-se às notas de aula do curso TEP7 (Pesquisa Operacional I) da Universidade Federal Fluminense (UFF) e foi criado a partir das notas do Prof. Rodrigo A. Scarpel do ITA (www.mec.ita.br/~rodrigo) e não pode ser reproduzido sem autorização prévia de ambos os autores. Quando autorizado, seu uso é eclusivo para atividades de ensino e pesquisa em instituições sem fins lucrativos. 70