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

Preview:

Citation preview

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

Recommended