Carregar apresentação
A apresentação está carregando. Por favor, espere
PublicouFlávio Caminha Balsemão Alterado mais de 7 anos atrás
1
INTRODUÇÃO À PESQUISA OPERACIONAL ** Programação Linear – Parte 2 **
Profa. Vitória Pureza 2º Semestre
2
Última Aula Exemplo de modelagem matemática
Resolução Gráfica de Problemas de 2 Variáveis Casos de Programação Linear: Uma única solução ótima, Soluções Ótimas Alternativas, PL infactível, e PL ilimitado Uma implicação da Premissa de Linearidade: pelo menos uma das soluções ótimas* estão em vértices da região factível Transformação de Problemas de Programação Linear na Forma Padrão Nesta aula vamos aprender o método Simplex para resolução de PLs
3
Roteiro Método Simplex em Tabelas
Aplicando o Algoritmo Simplex a Problemas de Maximização O Método Simplex e PLs Ilimitados O Método Simplex e Soluções Ótimas Alternativas Degenerescência em PLs Dificuldades em PLs Degenerados Determinação de Soluções Básicas Factíveis Iniciais Relações entre PLs e os Problemas Artificiais Associados
4
Problemas com mais de 2 variáveis
Método Simplex Visita pontos extremos um a um até que condições de otimalidade sejam satisfeitas
5
Método Simplex em tabelas
As operações realizadas no método simplex podem ser organizadas em tabelas, denominadas tabelas simplex Embora não seja a melhor forma de se implementar o método em um computador, esta organização pode ser interessante para manipular problemas pequenos e compreender mais rapidamente como o método funciona Considere o problema de otimização linear na forma padrão Minimizar f(x) = cT x Ax = b x 0
6
onde aj é a j-ésima coluna da matriz A x1 x2 ... xn c1 c2 ... cn f
Os coeficientes do sistema de equações lineares e da função objetivo são suficientes para descrição do problema e podem ser organizados da seguinte maneira: onde aj é a j-ésima coluna da matriz A x x xn c1 c cn f a1 a an b Variáveis de Decisão Coeficientes da função objetivo Coeficientes do lado esquerdo das restrições Lado direito das restrições
7
Minimizar f(x1, x2, x3, x4, x5 ) = x1 2x2 + 0x3 + 0x4 + 0x5
Exemplo: Minimizar f(x1, x2) = x1 2x2 x1 + x2 ≤ 6 x1 x2 ≤ 4 x1 + x2 ≤ 4 x1 ≥ 0, x2 ≥ 0 Adicionando as variáveis de folga x3, x4 e x5, obtêm-se a forma padrão Minimizar f(x1, x2, x3, x4, x5 ) = x1 2x2 + 0x3 + 0x4 + 0x5 x1 + x2 + x3 = 6 x1 x2 + x4 = 4 x1 + x2 + x5 = 4 x1 ≥ 0, x2 ≥ 0, x3 ≥ 0, x4 ≥ 0, x5 ≥ 0
8
Exemplo: Minimizar f(x1, x2 ,x3, x4, x5) = x1 2x2 + 0x1 + 0x2 + 0x3
Os coeficientes do sistema Ax = b e da função objetivo f(x)=cTx são apresentados na tabela Note que as colunas das variáveis x3, x4, x5 formam uma matriz identidade - estas variáveis são chamadas de variáveis básicas x1 x2 x3 x4 x5 1 2 f 1 6 4
9
Numa tabela simplex, a matriz dos coeficientes das variáveis básicas é sempre a matriz identidade
Isto significa que cada variável básica está expressa em termos das demais variáveis, no caso, x1 e x2, as quais são chamadas de variáveis não básicas Assim, basta atribuir valores às variáveis não básicas x1 e x2 para que tenhamos uma solução que satisfaça o sistema Ax = b Para o exemplo, tem-se: x3 = b1 a11 x1 a12 x2 = 6 x1 x2 x4 = b2 a21 x1 a22 x2 = 4 x1 + x2 x5 = b3 a13 x1 a32 x2 = 4 + x1 x2
10
Se fixarmos, por exemplo, as variáveis não básicas x1 e x2 em seus limites inferiores (x1, x2 ≥ 0, portanto, zero é o limite de ambas) ...então as demais variáveis têm valores x3 = 6 x1 x2 = 6 x4 = 4 x1 + x2 = 4 x5 = 4 + x1 x2 = 4 e produzem uma solução factível para o problema cujo valor é f = 0 Esta solução básica corresponde a um vértice da região factível (S) indicado abaixo
11
A função objetivo é f = x1 2x2
Como as variáveis não básicas x1 e x2 estão em seus limites inferiores, a única possibilidade de examinar soluções alternativas consiste em aumentar os valores de x1 e x2 Note que: A função objetivo é f = x1 2x2 Em soluções alternativas resultantes do aumento de x1 ou x2, a função objetivo decresce (melhora), ou seja, a solução básica atual (x1 = 0, x2 = 0, x3 = 6, x4 = 4, x5 = 4) não é ótima Consideremos a alteração de uma variável não básica por vez (estratégia simplex)
12
Apenas as variáveis básicas x3 e x5 limitam o crescimento de x2
Aumento do valor de x2, mantendo-se x1 = 0 a função objetivo decresce com a taxa de variação 2 (f = 2x2) e quanto maior o valor de x2, menor será o valor de f Com o aumento de x2, os valores das variáveis básicas (x3, x4, x5) são alterados, podendo aumentar ou diminuir desde que a não negatividade das variáveis seja preservada x3 = b1 a12 x2 = 6 x2 (a12 = 1) como a12 > 0, então b1 a12 x2 0, , e portanto, x2 6 x4 = b2 a22 x2 = 4 + x2 (a22 = -1) como a22 < 0, então a variável x4 cresce com x2,não limitando o aumento em x2 x5 = b3 a32 x2 = 4 x2 (a32 = 1) como a32 > 0, então b3 a32 x2 0, , e portanto, x2 4 Apenas as variáveis básicas x3 e x5 limitam o crescimento de x2
13
(a variável da terceira restrição se anula)
Note que se a12 0, a22 0 e a32 0, então a variável x2 poderia crescer indefinidamente e f , e o problema não teria solução ótima finita (PL ilimitado) O maior valor possível para x2 é 4, ou seja, x2 = mínimo{ } = 4 e, com este valor, segue que: x5 = 4 x2 = 0 (a variável da terceira restrição se anula) Isto produz uma nova solução: Variáveis não básicas: x1 = 0, x2 = 4 Variáveis básicas: x3 = 2, x4 = 8, x5 = 0 Valor da função objetivo: f = 0 – 2x2 = 8
14
Variáveis não básicas são agora redefinidas como aquelas cujo valores são nulos, enquanto variáveis básicas tem valores positivos Assim, dizemos que a variável não básica x2 “entrou na base” no lugar da variável básica x5 que “saiu da base” x2 passa a ser a variável básica da terceira equação Note que tínhamos uma solução básica factível com valor f = 0 ...agora temos outra solução básica factível melhor com valor f = 8 Entretanto, as colunas das novas variáveis básicas não formam a matriz identidade: a tabela simplex precisa ser pivotada para que isso ocorra Este procedimento, que parte de uma solução básica factível e obtém outra melhor, consiste em uma iteração do método simplex
15
Iteração do método simplex usando tabelas
Encontre uma variável não básica xk que tenha o coeficiente negativo na função objetivo: xk é candidata a entrar na base Percorra a coluna na tabela simplex da variável xk e, para cada coeficiente positivo (aik > 0), calcule: (valores que anulam a variável básica na linha i) e faça Com , a variável básica da linha se anula (i.e., a variável básica da linha sai da base) Se 0, i = 1, ..., m, então f e o problema não tem solução ótima finita (pare) Redefina as variáveis básicas e não básicas e pivote a tabela simplex para esta nova solução básica
16
Pivotamento de tabelas simplex
Pivotar significa fazer operações de multiplicar uma equação por um no e adicionar o resultado à outra equação esta operação é também chamada de eliminação de Gauss, e não altera a solução do sistema Tabela simplex inicial – Variáveis básicas (VB): x3, x4, x5 Tabela simplex iteração 1 – VB: x3, x4, x2 x1 x2 x3 x4 x5 VB 1 2 f 1 6 4 x5 2 + (-1) + 1 + x1 x2 x3 x4 x5 VB 3 2 f+8 1 -1 8 1 4
17
A linha da função objetivo significa
f = 3x1 + 2x5 ou f = 8 3x x5 Os coeficientes das variáveis não básicas na função objetivo são chamados custos relativos 1 +
18
Exercício: Faça uma nova iteração para o problema
Note que aumentar o valor da variável x1, mantendo-se x5 = 0, faz decrescer a função objetivo na taxa 3 (custo relativo de x1) As equações do sistema mostram que com x5 = 0: x3 = 2 2 x1 0 x4 = x1 0 x2 = x1 0 O valor máximo para x1 é 1 Com este valor para x1, a variável básica na primeira equação x3 = 2 2x1 se anula, enquanto a variável não básica x1 torna-se positiva Isto fornece uma nova solução básica: Variáveis não básicas: x1 = 1, x5 = 0 Variáveis básicas: x3 = 0, x4 = 8, x2 = 5 Valor da função objetivo: f = – x1 – 2x2 = – 11 x1 x2 x3 x4 x5 VB 3 2 f+8 1 -1 8 1 4
19
Tabela simplex iteração 1 – VB: x3, x4, x2
As variáveis não básicas são agora redefinidas como aquelas cujos valores são zero e as variáveis básicas como aquelas cujos valores são positivos: Variáveis não básicas: x3 = 0, x5 = 0 Variáveis básicas: x1 = 1, x4 = 8, x2 = 5 Como a variável x1 entrou na base (primeira coluna) e a variável x3 saiu da base (primeira equação), uma nova tabela simplex é reescrita com pivotamento Tabela simplex iteração 1 – VB: x3, x4, x2 Tabela simplex iteração 2 – VB: x1, x4, x2 x1 x2 x3 x4 x5 VB 3 2 f+8 x3 1 -1 8 1 4 x1 x2 x3 x4 x5 VB 3 2 f+8 x3 1 1/2 -1/2 8 1 4 + 3 1 1/2 x1 x2 x3 x4 x5 VB 3/2 1/2 f+11 1 -1/2 8 5
20
Portanto, a solução x1=1, x2=5 e x4=8 (f=11) é ótima
Note que f = 11 + 3/2x3 + 1/2x5 Note também que os custos relativos das variáveis não básicas são positivos sua introdução na base aumentaria (pioraria) f Portanto, a solução x1=1, x2=5 e x4=8 (f=11) é ótima Quando todos os custos relativos são não negativos (maiores ou iguais a zero), dizemos que a condição de otimalidade foi satisfeita 1/2
21
O algoritmo Simplex (em tabelas)
Seja um problema de otimização linear escrito na forma padrão Fase I: Determine uma tabela simplex inicial, isto é, A matriz dos coeficientes contém uma matriz identidade mm (m é o número de equações) 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: Obtenha o menor dos custos relativos (regra de Dantzig) : ck = mínimo {cj para toda variável não básica}. Se ck 0, então pare (a solução básica é ótima). C.c., a variável xk entra na base Se aik 0, i = 1, ..., m, pare (não existe solução ótima finita). C.c., determine (a variável básica da linha sai da base). Faça pivotamento no elemento (l,k). A variável xk passa a ser a variável básica na linha . Faça iteração = iteração + 1 e retorne ao passo 1
22
O Método Simplex e PLs Ilimitados
Seja o problema Minimizar f(x1, x2) = x1 x2 x1 x2 4 x1 + x2 4 x1 0, x2 0 Introduzindo-se as variáveis de folga, a matriz identidade é formada pelas colunas das variáveis x3 e x4; como o vetor de recursos b é não negativo, tem-se a tabela simplex inicial: Tabela simplex inicial – VB: x3, x4 A variável x1 entra na base e a variável x3 sai da base x1 x2 x3 x4 VB 1 f x3 1 4
23
Após pivoteamento, obtém-se:
A variável x2 tem custo relativo negativo, entretanto, note que como todos os coeficientes na coluna de x2 são menores ou iguais a zero, o que significa que a variável x2 pode crescer indefinidamente sem que nenhuma variável básica torne-se negativa, Ou seja, f , e o problema não tem solução ótima finita (PL ilimitado) x1 x2 x3 x4 VB 2 1 f + 4 1 4 8
24
Aplicando o Algoritmo Simplex a Problemas de Maximização
Opção 1) Transforme-o em um problema de minimização e o resolva conforme demonstrado Opção 2) Modifique os passos 2 e 3 da fase 2 como se segue: Obtenha o maior dos custos relativos: ck = máximo {cj para toda variável não básica}. Se ck ≤ 0, então pare (a solução básica é ótima). C.c., a variável xk entra na base
25
Lista 2: Aplique o método Simplex aos seguintes PLs
1) Maximizar f(x1, x2, x3) = 60x1 + 30x2 + 20x3 8x1 + 6x2 + x3 48 4x1 + 2x ,5x3 20 2x1 + 1,5x ,5x3 8 x2 5 x1 ≥ 0, x2 ≥ 0, x3 ≥ 0 2) Maximizar f(x1, x2, x3) = 60x1 + 35x2 + 20x3 3) Maximizar f(x1, x2, x3, x4) = 36x1 + 30x2 – 3x3 – 4x4 x1 + x2 – x3 5 6x1 + 5x2 – x4 10 x1 0, x2 0, x3 0, x4 0
26
Solução: 1) x*=(2, 0, 8) , f*(x) = 280 2) x*=(2, 0, 8) , f*(x) = 280
2) x*=(2, 0, 8) , f*(x) = 280 3) PL ilimitado
27
O Método Simplex e Soluções Ótimas Alternativas
Em um PL min: Se todas as variáveis não básicas na tabela simplex ótima tiverem custos relativos positivos, então o PL tem uma solução ótima única Se alguma variável não básica tiver custo relativo igual a zero, então é possível que o PL tenha soluções alternativas ótimas Considere o seguinte PL Minimizar f(x1, x2) = x1 x2 x1 + x2 6 x1 x2 4 x1 + x2 4 x1 0, x2 0
28
Após introduzir variáveis de folga e aplicar o algoritmo simplex, obtém-se a tabela simplex ótima com x1=5, x2=1, x3=0, x4=0, x5=8, e f=-6 Note que a base ótima pode ser alterada, introduzindo x4 e retirando x5 sem que o valor da função objetivo mude, ou seja, obtendo-se uma solução alternativa ótima ( O simplex não faria isso, porém obtenha a solução alternativa ótima com uma nova iteração) x1 x2 x3 x4 x5 VB 1 f + 6 0,5 -0,5 5 8
29
Como isso não pode ocorrer, x4 não poderia entrar na base
Note, entretanto, que se no exemplo anterior, a solução da tabela simplex ótima apresentasse uma variável básica nula, a entrada de x4 na base poderia provocar a diminuição do valor desta variável básica, tornando-a, portanto, negativa Como isso não pode ocorrer, x4 não poderia entrar na base Em outras palavras, O problema não apresentaria soluções ótimas alternativas, mesmo tendo variáveis não básicas com custos relativos iguais a zero na tabela simplex ótima
30
Exercício: Minimizar f(x1, x2) = x1 x2
31
Degenerescência em PLs
Uma solução factível é dita degenerada se alguma variável básica for nula Um PL é dito degenerado se existe pelo menos uma solução básica factível degenerada Exemplo: Minimizar f(x1, x2) = 5x1 2x2 x1 + x2 6 x1 x2 0 x1 0, x2 0
32
Solução Básica Factível
Note que As restrições x1 – x2 ≤ 0, x1≥ 0 e x2≥ 0 se cruzam no ponto C Cada ponto extremo no qual três ou mais restrições se cruzam corresponde a mais de um conjunto de variáveis básicas Em C, x3 é necessariamente uma das variáveis básicas, enquanto a outra variável básica pode ser x1, x2 ou x4 (todas têm valor igual a zero) VB Solução Básica Factível Ponto Extremo x1, x2 x1= x2=3, x3= x4=0 D (3) x1, x3 x1= 0, x3=6, x2= x4=0 C (2) x1, x4 x1= 6, x4= -6, x2= x3=0 Infactível x2, x3 x2= 0, x3= 6, x1= x3=0 C x2, x4 x2= 6, x4= 6, x1= x3=0 B x3, x4 x3= 6, x4= 0, x1= x2=0 C (1)
33
Dificuldades em PLs Degenerados
Considere um PL degenerado para o qual a solução ótima tenha valor igual a 30. Suponha também que a solução inicial tenha valor igual a 20 Como é possível pivotar sem alterar o valor da solução, a aplicação do simplex poderia gerar uma seqüência de soluções (com valor igual a 20) do tipo: sf1 sf2 sf3 Ou seja, ocorre ciclagem em um conjunto de soluções factíveis, nunca atingindo a solução ótima Mesmo que não ocorra ciclagem, o simplex pode encontrar um grande número de soluções básicas degeneradas antes de descobrir que não correspondem a soluções ótimas (último exemplo) Isso significa que o simplex geralmente não é um método eficiente para resolver problemas degenerados
34
Lista 3: Aplique o método Simplex ao seguinte PL
1) Maximizar f(x1, x2, x3, x4) = 10x1 - 57x2 - 9x3 - 24x4 0,5x1 – 5,5x2 – 2,5x3 + 9x4 0 0,5x1 – 1,5x2 – 0,5x3 + x4 0 x 1 x1 ≥ 0, x2 ≥ 0, x3 ≥ 0, x4 ≥ 0
35
Determinação de Soluções Básicas Factíveis Iniciais (Fase I)
Algumas classes de problemas a fornecem naturalmente. Seja: Minimizar f(x) = cTx Ax b x ≥ 0 Introduzindo as variáveis de folga (xf): Ax + xf= b x, xf ≥ 0 A matriz dos coeficientes das restrições é dada agora por [A I] e B= I as variáveis básicas são as variáveis de folga xB=xf N=A as variáveis não básicas são as variáveis originais xN=x e a solução básica factível é: xB=xf=b xN=x=0
36
Entretanto, nem sempre uma solução básica factível está disponível
Entretanto, nem sempre uma solução básica factível está disponível. Por exemplo, Minimizar f(x) = cTx Ax = b x ≥ 0 Pode-se criar uma base, introduzindo novas variáveis (y): Ax + y = b x ≥ 0, y ≥ 0 As variáveis y são chamadas de variáveis artificiais. Como não fazem parte do problema original devem ser eliminadas Como ?
37
Opção 1) Um problema artificial, semelhante ao original, é construído:
Minimizar fa (x,y) = Ax + y= b x, y ≥ 0 A função objetivo do problema artificial penaliza as variáveis artificiais. Assim, se houver solução para o problema, a solução deve ter yi=0, i=1,...,m. Se houver variáveis de folga, resultantes de restrições de desigualdade, estas podem ser utilizadas na construção da base inicial, e complementadas por variáveis artificiais
38
Exercícios: Construa problemas artificiais para:
Forma padrão: Minimizar f(x1,..., x4) = x1 x2 + 2x3 + 0x4 x1 + x2 + x = 3 2x1 - 2x2 + x x4 = 4 x1,..., x4 ≥ 0 PA2: Uma variável artificial é introduzida somente na 1ª restrição Minimizar f(x5) = x5 x1 + x2 + x x5 = 3 2x1 - 2x2 + x x = 4 x1,..., x5 ≥ 0 Minimizar f(x1,..., x3) = x1 x2 + 2x3 x1 + x2 + x3 = 3 2x1 - 2x2 + x3 4 x1,..., x3 ≥ 0 PA1: Uma variável artificial é introduzida em cada restrição Minimizar f(x5, x6) = x5 + x6 x1 + x2 + x x = 3 2x1 - 2x2 + x3 + x x6 = 4 x1,..., x6 ≥ 0 Variáveis básicas: xB=[x5,x6] Variáveis não básicas: xN=x e x4 Variáveis básicas: xB=[x4,x5] Variáveis não básicas: xN=x
39
Ao final da resolução do problema artificial, as variáveis artificiais são não básicas (nulas segundo o objetivo deste problema) e uma base com as colunas originais de A é obtida. Se o problema original tem solução factível , então Esta solução é ótima para o problema artificial pois é equivalente a (x,y)= , a qual é factível para aquele problema e minimiza a função objetivo daquele problema Isso mostra que o problema artificial tem, em geral, infinitas soluções ótimas (qualquer solução factível do problema original)
40
Este método é denominado
Uma vez encontrada uma solução básica em que todas as variáveis artificiais são não básicas, o método simplex é aplicado para resolver o problema original a partir desta base Este método é denominado Fase 1: Resolve o problema artificial Fase 2: Resolve o problema original a partir da base factível obtida na Fase 1 MÉTODO DAS DUAS FASES
41
Minimizar f(x1,..., x5) = x1 x2 + 2x3+ Mx4 + Mx5
Opção 2) Uma alternativa ao método das duas fases consiste em adicionar à função objetivo original, um termo que penaliza grandemente as variáveis artificiais, e aplicar o simplex: Minimizar f(x1,..., x5) = x1 x2 + 2x3+ Mx4 + Mx5 x1 + x2 + x x5 = 3 2x1 - 2x2 + x x = 4 Este método é denominado MÉTODO DO BIG-M
42
Relações entre PLs e os Problemas Artificiais Associados
PL ARTIFICIAL PL ORIGINAL Alguma variável artificial positiva na tabela ótima Infactível Ilimitado e todas as variáveis artificiais nulas na tabela ótima Ilimitado Ilimitado e alguma variável artificial positiva na tabela ótima
43
Uma Alternativa ao Simplex
Métodos de Pontos Interiores Gera pontos interiores da região factível buscando a convergência a uma solução ótima
Apresentações semelhantes
© 2025 SlidePlayer.com.br Inc.
All rights reserved.