Optimização
Optimização com Restrições
Computação – 2º Semestre 2016/2017
Optimização
Optimização sem Restrições:
Minimizar f(x)
(para maximizar f(x) basta minimizar f(x))
x pode ser unidimensional ou multidimensional
Optimização com Restrições:
Minimizar f(x) sujeito a restrições g(x)=0, h(x)0
Se f, g e h são lineares: Programação Linear
2Optimização2 Maio 2017
Optimização com Restrições
Optimizar (maximizar ou minimizar):
Sujeito às restrições:
3Optimização com Restrições
),,,( 21 nxxxf
0),,,(
0),,,(
21
211
nk
n
xxxg
xxxg
0),,,(
0),,,(
21
211
nm
n
xxxh
xxxh
2 Maio 2017
Programação Linear
Maximizar:
Sujeito às restrições:
4Optimização com Restrições
nnxcxcxcZ 2211
mnmnmm
nn
bxaxaxa
bxaxaxa
2211
11212111
cj lucro por unidade produzida do produto j
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
xj quantidade produzida do produto j
2 Maio 2017
Programação Linear
5Optimização com Restrições
Exemplo:
Lucro total:
Gás usado:
Tempo gasto:
Restrições de espaço:
x1 → Regular x2 → Premium
21 175150 xx
21 117 xx
21 810 xx
21 175150max xxZ
77117 21 xx
80810 21 xx
91 x 62 x
01 x 02 x
2 Maio 2017
Programação Linear
6Optimização com Restrições
Exemplo:21 175150 xxZ
77117 21 xx
80810 21 xx
91 x
62 x
01 x
02 x
Maximizar:
Sujeito a:
2 Maio 2017
Solução Gráfica
7Optimização com Restrições
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:
ou horizontais:
iii bxaxa 2211
intercept(slope) 12 xx intercept(slope) 12 xx
ii bxa 11 ii bxa 22
1
1
i
i
a
bx
1
1
i
i
a
bx
2
2
i
i
a
bx
2
2
i
i
a
bx
2 Maio 2017
Solução Gráfica
8Optimização com Restrições
Desenhar a região admissível.
Resolver a função objectivo em ordem a x2:
obtendo-se uma família de rectas parametrizada por Z.
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 xcxcZ2
1
2
12
c
Zx
c
cx
1
2
12 x
c
cx
2 Maio 2017
Solução Gráfica
9Optimização com Restrições
Ex: 21 175150 xxZ
77117 21 xx
80810 21 xx
91 x
62 x
01 x
02 x
Maximizar:
Sujeito a:
(6)
(5)
(4)
(3)
(2)
(1)
9.41 x
9.32 x
2 Maio 2017
Solução Gráfica
10Optimização com Restrições
Ex: 1400)9.3(175)9.4(150 Z
77)9.3(11)9.4(7
80)9.3(8)9.4(10
99.4
69.3
09.4
09.3
Maximizar:
Sujeito a:
(6)
(5)
(4)
(3)
(2)
(1)
9.41 x
9.32 x
Restrições
Limitantes!
2 Maio 2017
Solução Gráfica
11Optimização com Restrições
Casos especiais que não têm uma solução única:
a) Número infinito de soluções
b) Não tem soluções admissíveis
c) Problema ilimitado
2 Maio 2017
Em geral, quando tem uma região admissível limitada:
Experimentar todos os vértices da região admissível:
Muito ineficiente!
Método simplex:
Sequência de vértices até encontrar o óptimo
Programação Linear
12Optimização com Restrições2 Maio 2017
Permite a resolução de problemas com muitos milhares
de variáveis e restrições.
Funciona através da análise e movimentos em pontos
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:
é o método mais utilizado em programação linear
Método Simplex
13Optimização com Restrições2 Maio 2017
Algoritmo:
1) Converter o problema à forma aumentada.
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
14Optimização com Restrições2 Maio 2017
Método Simplex
15Optimização com Restrições
Converter o problema à forma aumentada:
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
Método Simplex
16Optimização com Restrições
Converter o problema à forma aumentada
Ex:
Forma aumentada:
21 175150 xxZ
77117 21 xx
80810 21 xx
91 x
62 x
01 x
02 x
Maximizar:
Sujeito a:
21 175150 xxZ Maximizar:
Sujeito a:
2 Maio 2017
Método Simplex
17Optimização com Restrições
Forma aumentada:
6 variáveis
4 equações
1 solução por cada par
de variáveis iguais a 0
21 175150 xxZ Maximizar:
Sujeito a:
Ex: para calcular o ponto E fazer x1=S4=0
2 Maio 2017
Método Simplex
18Optimização com Restrições
Forma aumentada:
6 variáveis
4 equações
1 solução por cada par
de variáveis iguais a 0
21 175150 xxZ Maximizar:
Sujeito a:
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
Método Simplex
19Optimização com Restrições
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:
Só algumas são admissíveis:
)!(!
!
mnm
nCn
m
154
6 C 800810
16 C
apenas 5 são admissíveis!
2 Maio 2017
Método Simplex
20Optimização com Restrições
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
Método Simplex
21Optimização com Restrições
Quadro simplex correspondente à formulação inicial:
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
Método Simplex
22Optimização com Restrições
Quadro simplex correspondente à formulação inicial:
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
23Optimização com Restrições
Quadro simplex correspondente à formulação inicial:
08 21 Sx
09 31 Sx
011 11 Sx
inadmissíveis!
Escolhe
o mais
pequeno
2 Maio 2017
Método Simplex
24Optimização com Restrições
Quadro simplex correspondente à formulação inicial:
Move para B
Escolhe
o mais
pequeno
0,0 22 Sx
2 Maio 2017
Método Simplex
25Optimização com Restrições
Quadro simplex correspondente à formulação inicial:
Troca S2 por x1: divide a linha por 10 para o coeficiente ficar 1
Escolhe
o mais
pequeno
0,0 22 Sx
2 Maio 2017
Método Simplex
26Optimização com Restrições
Quadro simplex correspondente à formulação inicial:
Troca S2 por x1: elimina os outros coeficientes da respectiva coluna
Escolhe
o mais
pequeno
0,0 22 Sx
2 Maio 2017
Método Simplex
27Optimização com Restrições
Quadro simplex correspondente a:
Valor corrente da função objectivo: Z=1200
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
o mais
pequeno
0,0 22 Sx
2 Maio 2017
Método Simplex
28Optimização com Restrições
Quadro simplex correspondente a:
A função objectivo não pode ser melhorada:
Não há coeficientes negativos na respectiva linha
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
889.1413Z
2 Maio 2017
Função pré-definida que resolve o problema de
programação linear:
em que:
f, x, b, beq, lb e ub são vectores
A e Aeq são matrizes
Sintaxe: [xmin, fval] = linprog(f,A,b,Aeq,beq,lb,ub)
xmin vector coluna com o ponto mínimo.
fval valor da função objectivo no ponto mínimo.
Usar [] para omitir argumentos
Função MATLAB linprog
29Optimização com Restrições
xf T
Sujeito a:
ubxlbbeqxAeq
bAx
Minimizar:
2 Maio 2017
Exemplo:
Solução:>> f = [-150; -175];
>> A = [7 11; 10 8; 1 0; 0 1];
>> b = [77; 80; 9; 6];
>> lb = zeros(2,1);
>> [x,fval] = linprog(f,A,b,[],[],lb)
Optimization terminated.
x =
4.8889
3.8889
fval =
-1.4139e+003
Função MATLAB linprog
30Optimização com Restrições
21 175150 xxZ
77117 21 xx
80810 21 xx
91 x
62 x
01 x
02 x
Maximizar:
Sujeito a:
2 Maio 2017
Optimização Não Linear com Restrições
Optimização com Restrições:
Minimizar f(x) sujeito a restrições g(x)=0, h(x)0
Em que f, g ou h são não lineares
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
Top Related