21
AULA COMPUTACIONAL AULA COMPUTACIONAL - Síntese de Sistemas de Síntese de Sistemas de Separação (Cap. 7) Separação (Cap. 7) 20 DE OUTUBRO DE 2008

AULA COMPUTACIONAL - Síntese de Sistemas de Separação (Cap. 7) 20 DE OUTUBRO DE 2008

Embed Size (px)

Citation preview

Page 1: AULA COMPUTACIONAL - Síntese de Sistemas de Separação (Cap. 7) 20 DE OUTUBRO DE 2008

AULA COMPUTACIONALAULA COMPUTACIONAL

- Síntese de Sistemas de Separação Síntese de Sistemas de Separação (Cap. 7)(Cap. 7)

20 DE OUTUBRO DE 2008

Page 2: AULA COMPUTACIONAL - Síntese de Sistemas de Separação (Cap. 7) 20 DE OUTUBRO DE 2008

7.6 Resolução por Método de Busca Orientada por Árvore de Estados 7.6.1 Descrição do Método de Rodrigo & Seader 7.6.2 Resolução do Problema Ilustrativo pelo Método de Rodrigo & Seader

Page 3: AULA COMPUTACIONAL - Síntese de Sistemas de Separação (Cap. 7) 20 DE OUTUBRO DE 2008

Sequenciamento de destilações.

Page 4: AULA COMPUTACIONAL - Síntese de Sistemas de Separação (Cap. 7) 20 DE OUTUBRO DE 2008

Localização de alimentação e/ou refluxo de colunas de destilação

Page 5: AULA COMPUTACIONAL - Síntese de Sistemas de Separação (Cap. 7) 20 DE OUTUBRO DE 2008

Rede de trocadores de calor

Page 6: AULA COMPUTACIONAL - Síntese de Sistemas de Separação (Cap. 7) 20 DE OUTUBRO DE 2008

Problemas com o relaxamento da variáveis inteiras

Page 7: AULA COMPUTACIONAL - Síntese de Sistemas de Separação (Cap. 7) 20 DE OUTUBRO DE 2008

qql yyyyzz 1

321 242

2log

logint1

lu zzq

As variáveis inteiras, z, com limites superiores e inferiores dados, zl z zu, podem ser expressas como um vetor de variáveis binárias, y Y = {0,1}q, pela seguinte fórmula:

onde q é o número mínimo de variáveis 01 necessárias para representar z. Este número mínimo é dado por:

sendo que a função “int” trunca o argumento real para um valor inteiro.

Page 8: AULA COMPUTACIONAL - Síntese de Sistemas de Separação (Cap. 7) 20 DE OUTUBRO DE 2008

Programação linear inteira mista (MILP)

min cT x + dT y

sujeito a: A x + B y b x 0

x X n, y Y = {0,1}q

Page 9: AULA COMPUTACIONAL - Síntese de Sistemas de Separação (Cap. 7) 20 DE OUTUBRO DE 2008

Método de Branch & Bound

O método de branch and bound está baseado nas idéias chaves de:

Separação

Relaxação

Sondagem

Page 10: AULA COMPUTACIONAL - Síntese de Sistemas de Separação (Cap. 7) 20 DE OUTUBRO DE 2008

Separação

Denotando o problema MILP abaixo por (P) e o conjunto de suas soluções viáveis por FS(P).

(i) uma solução viável de qualquer subproblema (P1), (P2), ..., (Pn) é também uma solução viável de (P);

(ii) cada solução viável de (P) é uma solução viável de exatamente um de seus subproblemas.

Então o conjunto de subproblemas (P1), (P2), ..., (Pn) de (P) é uma separação de (P) se:

Neste caso, o problema (P) é chamado de problema Pai e os subproblemas (P1), (P2), ..., (Pn) são chamados de problemas Filhos.

Page 11: AULA COMPUTACIONAL - Síntese de Sistemas de Separação (Cap. 7) 20 DE OUTUBRO DE 2008

Uma questão importante no método de branch and bound é de como gerar uma separação do problema (P).

A maneira geralmente utilizada é a introdução de restrições contraditórias em uma única variável binária (ou inteira) a cada estágio.

Por exemplo, selecionando a variável binária y1 de (P), pode-se separá-lo, ou ramificá-lo (branching), em dois subproblemas (P1) e (P2):

Page 12: AULA COMPUTACIONAL - Síntese de Sistemas de Separação (Cap. 7) 20 DE OUTUBRO DE 2008

Um problema de otimização, denotado por (RP), é uma relaxação do problema (P) se o conjunto de soluções viáveis de (P) é um subconjunto de soluções viáveis de (RP), isto é,

FS(P) FS(RP)

Deste modo, se (RP) não tem solução viável, então (P) também não tem.

Além disto, se zP é a solução ótima de (P) e zRP é a solução ótima de (RP), então:

zRP zP

ou seja, a solução do problema relaxado fornece um limite inferior para a solução do problema original. Naturalmente, se a solução ótima de (RP) é viável para (P), então ela é a solução ótima de (P).

Relaxação

Page 13: AULA COMPUTACIONAL - Síntese de Sistemas de Separação (Cap. 7) 20 DE OUTUBRO DE 2008

A forma de relaxação mais freqüentemente utilizada em problemas MILP é tornar as variáveis binárias em variáveis contínuas:

0 y 1

gerando um problema LP relaxado.

Outra forma de relaxação é remoção de algumas restrições de (P). Porém, existe um compromisso entre a relaxação e a qualidade do limite inferior (zRP) para a solução ótima.

Em geral, quanto mais fácil for a solução do problema relaxado (maior relaxamento), maior será a diferença entre zRP e zP.

Page 14: AULA COMPUTACIONAL - Síntese de Sistemas de Separação (Cap. 7) 20 DE OUTUBRO DE 2008

Sondagem

Seja (CS) um subproblema candidato para a solução de (P). Deseja-se então determinar se a região viável de (CS), FS(CS), contém uma solução ótima de (P), para então encontrá-la.

Este subproblema (CS) será considerado sondado se uma das seguintes condições for satisfeita:

(i) estiver garantido que FS(CS) não pode conter uma solução melhor que a melhor solução já encontrada em estágios anteriores (ou solução titular, z*). Se nenhuma solução viável havia sido encontrada, então z* = ;

(ii) uma solução ótima de (CS) foi encontrada, zCS

Em qualquer uma destas situações o subproblema (CS) não necessita de novas separações.

Page 15: AULA COMPUTACIONAL - Síntese de Sistemas de Separação (Cap. 7) 20 DE OUTUBRO DE 2008

Denotando por (RCS) uma relaxação do subproblema (CS), e zRCS a sua solução ótima, então os critérios gerais de sondagem em um algoritmo de branch and bound, baseado em relaxação, são:

a) Se (RCS) não possui solução viável, então (CS) também não possui e pode ser considerado sondado;

b) Se zRCS z* então (CS) está sondado;

c) Se uma solução ótima de (RCS) é viável para (CS), então ela é também uma solução ótima de (CS), portanto o problema (CS) pode ser considerado sondado. Neste caso, a solução também é viável para (P) e se zRCS < z*, então a solução titular é substituída por esta nova solução, senão zRCS é um limite superior para o problema

Page 16: AULA COMPUTACIONAL - Síntese de Sistemas de Separação (Cap. 7) 20 DE OUTUBRO DE 2008

Note que é possível ter

zCS z* > zRCS

e neste caso (CS) não pode ser considerado sondado, sendo zRCS um limite inferior para o problema.

Portanto, quanto menor a diferença entre a solução do problema (RCS) e o problema (CS), mais freqüentemente estes critérios serão utilizados para eliminar ramificações.

O sucesso dos algoritmos de branch and bound está baseado no percentual de eliminação de subproblemas e no esforço requerido para resolver os subproblemas candidatos.

Page 17: AULA COMPUTACIONAL - Síntese de Sistemas de Separação (Cap. 7) 20 DE OUTUBRO DE 2008

Um algoritmo genérico para os métodos de branch and bound:

1) Inicializar a lista de subproblemas (CS) = (P), ou árvore binária, z* = ;2) Se a lista de subproblemas (CS) estiver vazia, então FIM (se z* = ,

então não existe solução viável);3) Selecionar um candidato da lista, tornado-o candidato (CS) corrente;4) Selecionar e resolver uma relaxação (RCS) do (CS) corrente, obtendo a

solução zRCS;5) Aplicar os três critérios de sondagem:

a) Se (RCS) é inviável, então o (CS) corrente não tem solução viável e (ir para 2);

b) Se zRCS z*, então o (CS) corrente não tem solução viável melhor que z* e (ir para 2);

c) Se a solução ótima de (RCS) é viável para (CS) e zRCS < z*, então z* zRCS e (ir para 2);

6) Separar o (CS) corrente e adicionar os seus subproblemas filhos na lista de subproblemas (CS). (ir para 2).

Page 18: AULA COMPUTACIONAL - Síntese de Sistemas de Separação (Cap. 7) 20 DE OUTUBRO DE 2008

Existem três alternativas principais para selecionar os candidatos da árvore binária:

1. Busca em primeira profundidade (depth-first search) com retrocesso (LIFO: Last-In-First-Out). Técnica padrão da maioria dos algoritmos;

2. Busca em primeira largura (breadth-first search);

3. Busca pelo melhor limite.

Page 19: AULA COMPUTACIONAL - Síntese de Sistemas de Separação (Cap. 7) 20 DE OUTUBRO DE 2008

Exemplo: Para ilustrar o método de branch and bound com relaxação das variáveis binárias, seja o seguinte problema:

onde a solução ótima ocorre no ponto x* = 0 e y* = [1 0 1]T, com o valor da função objetivo S(x*,y*) = z* = 6.

Page 20: AULA COMPUTACIONAL - Síntese de Sistemas de Separação (Cap. 7) 20 DE OUTUBRO DE 2008

nível 0

nível 2

nível 3

nível 1

raiz

Busca em primeira profundidade Busca em primeira largura

Page 21: AULA COMPUTACIONAL - Síntese de Sistemas de Separação (Cap. 7) 20 DE OUTUBRO DE 2008