Optimização Optimização com Restrições

of 31 /31
Optimização Optimização com Restrições Computação – 2º Semestre 2016/2017

Embed Size (px)

Transcript of Optimização Optimização com Restrições

Computação Optimização com Restrições:
2Optimização2 Maio 2017
Optimização com Restrições
bi quantidade total disponível do recurso i
aij quantidade de recurso i consumida na produção de uma unidade do produto j
lucro total
2 Maio 2017
Só para casos com duas variáveis x1 e x2.
Resolver as restrições com x1 e x2 em ordem a x2:
obtendo-se regiões delimitadas por rectas inclinadas:
Resolver as restrições apenas com x1 ou x2 :
obtendo-se regiões delimitadas por rectas
verticais:
1
1
i
i
a
Desenhar a recta com Z=0:
Desenhar rectas paralelas acima desta que interceptem a região admissível.
Descobrir o ponto extremo (x1, x2) que é interceptado pela recta paralela mais distante da origem.
Calcular o respectivo valor de Z.
2211 xcxcZ 2
a) Número infinito de soluções
b) Não tem soluções admissíveis
c) Problema ilimitado
2 Maio 2017
Experimentar todos os vértices da região admissível:
Muito ineficiente!
Método simplex:
Programação Linear
Permite a resolução de problemas com muitos milhares
de variáveis e restrições.
extremos (vértices) da região admissível.
Há problemas particulares em que não é eficiente:
análise da complexidade é baseada no pior caso possível
Na prática é mais rápido que outros teoricamente mais
eficientes:
Método Simplex
Algoritmo:
2) Determinar uma solução básica admissível
3) Verificar se a solução é óptima e terminar caso seja óptima.
4) Caso contrário, passar para outra solução básica admissível,
adjacente à anterior mas com um melhor valor da função
objectivo, utilizando operações algébricas elementares.
5) Voltar ao passo 3)
Método Simplex
Método Simplex
O objectivo é verificar os vértices da região admissível.
As restrições de desigualdade passam a igualdade por
introdução de variáveis de desvio (uma por cada restrição).
A variável de desvio Si representa a quantidade do recurso i
disponível (valor negativo indica insatisfação da restrição).
Soluções do sistema aumentado com todas as variáveis não
negativas correspondem aos vértices da região admissível.
2 Maio 2017
Ex:
21 175150 xxZ Maximizar:
Ex: para calcular o ponto E fazer x1=S4=0
2 Maio 2017
21 175150 xxZ Maximizar:
Ex: para calcular o ponto E fazer x1=S4=0
cuja solução é: x2=6, S1=11, S2=32 e S3=9
2 Maio 2017
Em geral com m equações e n variáveis:
Uma solução básica é obtida fixando nm variáveis a 0 e
resolvendo o sistema restante de m equações e m variáveis
As variáveis fixadas a 0 denominam-se variáveis não básicas
As restantes variáveis denominam-se variáveis básicas
Uma solução em que todas as variáveis básicas são não
negativas denomina-se solução básica admissível
O ponto óptimo é uma destas soluções básicas admissíveis
Não é viável experimentar todas as soluções básicas:
São muitas:
Determinar uma solução básica admissível inicial:
Uma solução básica inicial é obtida fixando a 0 todas as nm
variáveis que não são de desvio
O valor de cada variável de desvio Si corresponde à
quantidade total disponível bi do respectivo recurso
Exemplo: 021 xx
2 Maio 2017
A função objectivo é expressa na forma:
Todas as variáveis não básicas têm coeficientes 0?
se sim, então a solução é óptima.
se não: escolher a variável que tem o coeficiente mais negativo para entrar na base (heurística)
2 Maio 2017
A função objectivo é expressa na forma:
Todas as variáveis não básicas têm coeficientes 0?
se sim, então a solução é óptima.
se não: escolher a variável que tem o coeficiente mais negativo para entrar na base (heurística)
No nosso caso deveríamos escolher x2
(mas vamos escolher x1 para ser mais breve: ver figura) 2 Maio 2017
Método Simplex
08 21 Sx
09 31 Sx
011 11 Sx
Move para B
Quadro simplex correspondente à formulação inicial:
Troca S2 por x1: divide a linha por 10 para o coeficiente ficar 1
Escolhe
Quadro simplex correspondente à formulação inicial:
Troca S2 por x1: elimina os outros coeficientes da respectiva coluna
Escolhe
Próxima variável a ficar básica: x2
Próxima variável a ficar não básica: S1
Valor atribuído a x2: 3.889
Escolhe
Valor máximo da função objectivo:
O ponto que maximiza a função objectivo é:
0,0 21 SS
889.3,889.4 21 xx
programação linear:
em que:
A e Aeq são matrizes
Sintaxe: [xmin, fval] = linprog(f,A,b,Aeq,beq,lb,ub)
fval valor da função objectivo no ponto mínimo.
Usar [] para omitir argumentos
>> b = [77; 80; 9; 6];
>> lb = zeros(2,1);
>> [x,fval] = linprog(f,A,b,[],[],lb)
Optimization terminated.
Optimização com Restrições:
Ideia: substituir o problema original com restrições por
uma sequência de problemas sem restrições
A solução do problema original deve estar relacionada com a
solução da sequência dos subproblemas sem restrições.
31Optimização com Restrições2 Maio 2017