A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

1 Optimização Na programação por restrições, há que considerar não apenas a satisfação de restrições mas também a optimização de uma função objectivo.

Apresentações semelhantes


Apresentação em tema: "1 Optimização Na programação por restrições, há que considerar não apenas a satisfação de restrições mas também a optimização de uma função objectivo."— Transcrição da apresentação:

1 1 Optimização Na programação por restrições, há que considerar não apenas a satisfação de restrições mas também a optimização de uma função objectivo. Esta optimização já foi explicitamente considerada no caso da programação linear em que o domínio das variáveis eram os números racionais/reais. Há que abordar agora os casos em que as variáveis podem tomar apenas um número finito de valores (inteiros) as restrições não sejam lineares. Esta optimização pode ser feita de uma forma construtiva, ou de uma forma reparativa.

2 2 Optimização Na versão construtiva, o processo de optimização pode ser vista como a progressiva instanciação de valores às variáveis que modelam o problema. Na versão reparativa, a optimização vai iterativamente procurando, a partir de uma solução completa mas não satisfatória, melhores soluções na vizinhança da solução corrente. A simples extensão da programação linear com variáveis booleanas 0/1 é adequada para modelar uma série de problemas, permitindo: A escolha (disjunção) de restrições; Violações da proporcionalidade; Não linearidades.

3 3 Optimização Exemplo 1: Escolha de 1 de 2 restrições Pretende-se satisfazer uma de entre as duas restrições X 1 + 2X 2 3 2X 1 + X 2 3 Introduzindo-se uma constante M suficientemente grande, a disjunção anterior pode ser modelada através de uma variável Booleana Z X 1 + 2X M Z 2X 1 + X M (1-Z) De facto, se Z = 0, a 1ª restrição é imposta e a 2ª restrição é trivialmente satisfeita. Se Z = 1, é a 2ª restrição que é imposta e a 1ª que é trivial.

4 4 Optimização Exemplo 2: Escolha de pelo menos k de m restrições Pretende-se satisfazer k de m restrições A 11 X A 1n X n B 1... A m1 X A mn X n B m Introduzindo-se uma constante M suficientemente grande, a selecção anterior pode ser modelada através de variáveis Booleana B 1,..., B m fazendo para todas as restrições A i1 X A in X n B i + M(1- Z i ) Impondo a restrição adicional Z 1 + Z Z m k O que garante que pelo menos k restrições sejam impostas (não trivialmente satisfeitas).

5 5 Optimização Exemplo 3: Não proporcionalidade da função objectivo Em muitos casos os custos não são lineares às unidades produzidas ( C = c1 Xi ), mas deve considerar-se um custo fixo de início de produção. C = 0se X i = 0 = k i + c i X i se X i > 0 Introduzindo-se uma variável booleana Z i, denotando a existência ou não de produção, o custo é expresso por C = k i Z i + c i X i A condição X i > 0 Z i =1 é imposta pela restrição X i M Z i A condição X i =0 Z i =0 é garantida, indirectamente, pela minimização do custo.

6 6 Optimização Exemplo 4: Restrições não lineares As restrições não lineares podem ser aproximadas por troços. Por exemplo, Y = X 2, com X entre 0 e 4 pode ser aproximada por Z 1 Y 1 = 0 + 1X 1 para 0 X 1 Z 2 Y 2 = 1 + 3X 2 para 1 X 2 Z 3 Y 2 = 4 + 5X 3 para 2 X 3 Z 4 Y 3 = 9 + 7X 4 para 3 X 4 Para apenas um troço estar activo, a activação de uma só das variáveis Z i que identifica um troço é feita através de Y = Y Y 4 e Z Z 4 = 1 E a ligação entre as variáveis X e Z i é feita por M(1-Z 3 ) X-3 e M(1-Z 3 ) 2-X

7 7 Optimização A optimização feita de uma forma construtiva utiliza de uma forma geral dois tipos de técnicas Pesquisa Relaxação Estes conceitos são ilustrados no seguinte problema BIP (Binary Integer Programming) Max Z = 9x x 2 +6 x 3 + 4x 4 Suj a6x 1 +3x 2 + 5x 3 + 2x x 3 + 2x x 1 + x x 2 + x 4 0

8 8 Optimização Como as variáveis são binárias X1 = 0 / 1 e o problema decompõe-se nos problemas Max Z = 9x x 2 +6 x 3 + 4x 4 Suj a6x 1 +3x 2 + 5x 3 + 2x x 3 + 2x 4 1 -x 1 + x x 2 + x 4 0 Max 5 x 2 +6 x 3 + 4x 4 Suj 3x 2 + 5x 3 + 2x x 3 + 2x 4 1 x x 2 + x 4 0 Max 9+5 x 2 +6 x 3 + 4x 4 Suj 3x 2 + 5x 3 + 2x x 3 + 2x 4 1 x x 2 + x 4 0

9 9 Optimização A relaxação do problema (neste caso) traduz-se em considerar as variáveis não inteiras mas sim tomando valores no intervalo [0..1]. Neste caso, os subproblemas podem ser considerados como problemas de programação linear, o que origina os máximos 9 com (0,1,0,1) Max 5 x 2 +6 x 3 + 4x 4 Suj 3x 2 + 5x 3 + 2x x 3 + 2x 4 1 x x 2 + x c/(1,.8,0,.8) Max 9+5 x 2 +6 x 3 + 4x 4 Suj 3x 2 + 5x 3 + 2x x 3 + 2x 4 1 x x 2 + x 4 0 Desta forma a pesquisa é mais promissora por X1 =1

10 10 Optimização A relaxação do problema (neste caso) traduz-se em considerar as variáveis não inteiras mas sim tomando valores no intervalo [0..1]. Neste caso, os subproblemas podem ser considerados como problemas de programação linear, o que origina os máximos 9 com (0,1,0,1) Max 5 x 2 +6 x 3 + 4x 4 Suj 3x 2 + 5x 3 + 2x x 3 + x 4 1 x x 2 + x c/(1,.8,0,.8) Max 9+5 x 2 +6 x 3 + 4x 4 Suj 3x 2 + 5x 3 + 2x x 3 + x 4 1 x x 2 + x 4 0 Desta forma a pesquisa é mais promissora por X1 =1

11 11 Optimização Deste passo interessa considerar que: O problema X1 = 0 tem uma solução exacta. Assim, só interessará explorar problemas com o potencial de melhorarem o óptimo provisório de 9. O problema X1 = 1 tem uma solução potencial de 16.2 pelo que parece melhor que o anterior. A heurística de pesquisa é pois de explorar primeiro o subproblema c/(1,.8,0,.8) Max 9+5 x 2 +6 x 3 + 4x 4 Suj 3x 2 + 5x 3 + 2x x 3 + x 4 1 x x 2 + x 4 0

12 12 Optimização Decompondo o problema na variável X2 teremos: 13.8 com (1,0,.8,0) Max 9+ 6 x 3 + 4x 4 Suj 5x 3 + 2x x 3 + x 4 1 x 3 0 x c/(1,1,0,.5) Max x 3 + 4x 4 Suj 5x 3 + 2x x 3 + x 4 1 x 3 1 x c/(1,.8,0,.8) Max 9+5 x 2 +6 x 3 + 4x 4 Suj 3x 2 + 5x 3 + 2x x 3 + x 4 1 x x 2 + x 4 0

13 13 Optimização Pelas razões anteriores prosseguiremos com X1=1 e X2=1: 16 com (1,1,0,.5) Max 14+ 4x 4 Suj 2x 4 1 x x 4 1 Max x 4 Suj 2x 4 -4 x x c/(1,1,0,.5) Max x 3 + 4x 4 Suj 5x 3 + 2x x 3 + x 4 1 x 3 1 x 4 1

14 14 Optimização Prosseguindo com X1=1, X2=1 e X3=0 : 16 com (1,1,0,0) Max 14 Suj com (1,1,0,.5) Max 14+ 4x 4 Suj 2x 4 1 x x com (1,1,0,0) Max 18 Suj

15 15 Optimização Analisando a solução X1=1, X2=1, X3=0 e X4 = 0: 16 com (1,1,0,0) Max 14 Suj Verificamos que A solução é inteira. O seu valor é melhor que o máximo potencial dos subproblemas em aberto, que podem ser abandonados

16 16 Optimização Estas técnicas de base são usadas pelo algoritmo branch and bound utilizado para a obtenção do óptimo de uma forma construtiva, mesmo que o problema não envolva aenas variáveis binárias. Assim Um problema pode ser subdividido em dois (ou mais) subproblemas (Branch). O potencial de cada subproblema é avaliado, por uma técnica de relaxação (aproximação) (Bound) Os problemas sem potencial de melhorarem a melhor solução corrente são abandonados.

17 17 Optimização Outras técnicas podem ser utilizadas em alguns casos (BIP) Eliminação de restrições redundantes x 4 1 Fixação de variáveis x 3 0 x 3 = 0 Geração de planos de corte (cutting-planes) 6x 1 + 3x 2 + 5x 3 + 2x Pode gerar x 1 + x 3 1 x 1 + x 2 + x 4 2

18 18 Optimização Estas técnicas podem ser utilizadas em Mixed Integer Programming, com as adaptações óbvias A decomposição é feita normalmente através de uma valor de corte. Se X [0..8] então X 4 e X > 4 A geração de planos de corte é mais problemática As aproximações são feitas com aritmética de intervalos que levanta alguns problemas de aproximação, mas permite calcular bounds seguros, mesmo que não muito bons.

19 19 Optimização O SICStus permite a optimização quer em MIP quer em IP


Carregar ppt "1 Optimização Na programação por restrições, há que considerar não apenas a satisfação de restrições mas também a optimização de uma função objectivo."

Apresentações semelhantes


Anúncios Google