Programação Linear/Inteira

Documentos relacionados
Programação Linear - Parte 3

Programação Linear/Inteira - Aula 5

Programação Linear - Parte 4

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

Programação Linear/Inteira

Programação Linear - Parte 5

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

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

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

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

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

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

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

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

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

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

Otimização Combinatória - Parte 4

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

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

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

Regras para evitar ciclagem

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

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

Teoremas de dualidade

Aula 02: Algoritmo Simplex (Parte 1)

Modelagem Computacional. Parte 6 2

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.

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

5 Análise de Sensibilidade

Otimização Aplicada à Engenharia de Processos

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

MÉTODO SIMPLEX SOLUÇÃO INICIAL ARTIFICIAL

4- Dualidade em Programação Linear

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

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

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

Poliedros na forma padrão

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

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

Aula 03: Algoritmo Simplex (Parte 2)

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

Cones e raios extremos

Pesquisa Operacional

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

Investigação Operacional

Pesquisa Operacional. Prof. José Luiz

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

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

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

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

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

Métodos Numéricos - Notas de Aula

PESQUISA OPERACIONAL Definições e Teoremas Básicos. Professor Volmir Wilhelm Professora Mariana Kleina

Cálculo Numérico BCC760

Modelagem Computacional. Parte 2 2

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

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

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

Professor: Rodrigo A. Scarpel

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

Algoritmo Simplex para Programação Linear I

Programação Linear/Inteira

Capítulo 3. O Método Primal Simplex

Resolvendo algebricamente um PPL

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

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

Aulas 6 / 05 de setembro

Programação Matemática Lista 3

Resolução de Sistemas Lineares. Ana Paula

Agenda do Dia Aula 14 (19/10/15) Sistemas Lineares: Introdução Classificação

CAPÍTULO 4. Teoria da Dualidade

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

BCC465 - TÉCNICAS DE MULTI-OBJETIVO. Gladston Juliano Prates Moreira 22 de novembro de 2017

SISTEMAS LINEARES PROF. EDÉZIO

Pesquisa Operacional

CAPÍTULO 3. Método Simplex

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

Programação Matemática

Representação de poliedros

Consideremos um sistema linear de n equações lineares e n incógnitas, do tipo:

Métodos iterativos para sistemas lineares.

Método do Lagrangiano aumentado

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

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

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

Sistema de Equaçõs Lineares

Unidade II PESQUISA OPERACIONAL. Profa. Ana Carolina Bueno

4-1 PESQUISA OPERACIONAL MÉTODO SIMPLEX

Método Simplex V 1.1, V.Lobo, EN / ISEGI, 2008

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

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

Revisão: Matrizes e Sistemas lineares. Parte 01

Renato Martins Assunção

Simplex. Transparências de apoio à leccionação de aulas teóricas. c 2011, 2009, 1998 José Fernando Oliveira, Maria Antónia Carravilla FEUP

Aula 19: Lifting e matrizes ideais

PESQUISA OPERACIONAL. Prof. Carlos Norberto Vetorazzi Jr.

Problema do Caminho Mínimo

PESQUISA OPERACIONAL -PROGRAMAÇÃO LINEAR MÉTODO SIMPLEX. Prof. Angelo Augusto Frozza, M.Sc.

Transcrição:

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