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

Transcript
Page 1: Optimização Optimização com Restrições

Optimização

Optimização com Restrições

Computação – 2º Semestre 2016/2017

Page 2: Optimização Optimização com Restrições

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

Page 3: Optimização Optimização com Restrições

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

Page 4: Optimização Optimização com Restrições

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

Page 5: Optimização Optimização com Restrições

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

Page 6: Optimização Optimização com Restrições

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

Page 7: Optimização Optimização com Restrições

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

Page 8: Optimização Optimização com Restrições

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

Page 9: Optimização Optimização com Restrições

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

Page 10: Optimização Optimização com Restrições

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

Page 11: Optimização Optimização com Restrições

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

Page 12: Optimização Optimização com Restrições

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

Page 13: Optimização Optimização com Restrições

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

Page 14: Optimização Optimização com Restrições

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

Page 15: Optimização Optimização com Restrições

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

Page 16: Optimização Optimização com Restrições

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

Page 17: Optimização Optimização com Restrições

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

Page 18: Optimização Optimização com Restrições

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

Page 19: Optimização Optimização com Restrições

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

Page 20: Optimização Optimização com Restrições

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

Page 21: Optimização Optimização com Restrições

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

Page 22: Optimização Optimização com Restrições

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

Page 23: Optimização Optimização com Restrições

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

Page 24: Optimização Optimização com Restrições

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

Page 25: Optimização Optimização com Restrições

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

Page 26: Optimização Optimização com Restrições

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

Page 27: Optimização Optimização com Restrições

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

Page 28: Optimização Optimização com Restrições

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

Page 29: Optimização Optimização com Restrições

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

Page 30: Optimização Optimização com Restrições

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

Page 31: Optimização Optimização com Restrições

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