Você está na página 1de 69

Branch-and-Bound

Wendel Melo
Faculdade de Computação
Universidade Federal de Uberlândia

1
Problema abordado
 Problema de Otimização Não Linear Inteira Mista (ONLIM)
“convexo”:

 As funções do problema são “amigáveis”: contínuas, convexas e


duplamente diferenciáveis

2
Classes de algoritmos para ONLIM

 Algoritmos de Branch-and-Bound;

 Algoritmos de aproximação linear;

 Algoritmos de reformulação contínua;

 Algoritmos híbridos;

 Heurísticas;

3
Classes de algoritmos para ONLIM

 Algoritmos de Branch-and-Bound;

 Algoritmos de aproximação linear;

 Algoritmos de reformulação contínua;

 Algoritmos híbridos;

 Heurísticas;

4
Branch-and-Bound
 Land e Doig (1960)

 Técnica para resolução de problemas não convexos:


• Problemas de Otimização Inteira;
• Problemas de Otimização Global (contínua e ou inteira).

 Tem sido usada com sucesso para Otimização Linear Inteira


Mista;

 A aplicação no universo não linear traz diversos novos desafios a


serem superados.
5
Branch-and-Bound

 O algoritmo de Branch-and-Bound (B&B) é do tipo divisão e


conquista.

6
Branch-and-Bound

 O algoritmo de Branch-and-Bound (B&B) é do tipo divisão e


conquista.

 O algoritmo enumera implicitamente as soluções viáveis para (P);

7
Branch-and-Bound

 O algoritmo de Branch-and-Bound (B&B) é do tipo divisão e


conquista.

 O algoritmo enumera implicitamente as soluções viáveis para (P);

 A região viável vai sendo sequencialmente subdivida em sub-


regiões:

8
Branch-and-Bound

 O algoritmo de Branch-and-Bound (B&B) é do tipo divisão e


conquista.

 O algoritmo enumera implicitamente as soluções viáveis para (P);

 A região viável vai sendo sequencialmente subdivida em sub-


regiões:
• Aprofunda-se a busca em sub-regiões promissoras;

9
Branch-and-Bound

 O algoritmo de Branch-and-Bound (B&B) é do tipo divisão e


conquista.

 O algoritmo enumera implicitamente as soluções viáveis para (P);

 A região viável vai sendo sequencialmente subdivida em sub-


regiões:
• Aprofunda-se a busca em sub-regiões promissoras;
• Descarta-se as que sabidamente não podem conter uma
solução melhor que a melhor solução conhecida.

10
Branch-and-Bound
 B&B (minimização) se baseia em dois componentes fundamentais:

11
Branch-and-Bound
 B&B (minimização) se baseia em dois componentes fundamentais:

1) Um modo de calcular um limite inferior para uma sub-região:

12
Branch-and-Bound
 B&B (minimização) se baseia em dois componentes fundamentais:

1) Um modo de calcular um limite inferior para uma sub-região:

i. É necessário que os limites inferiores possam ser melhorados a medida


em que uma (sub) região é dividida;

13
Branch-and-Bound
 B&B (minimização) se baseia em dois componentes fundamentais:

1) Um modo de calcular um limite inferior para uma sub-região:

i. É necessário que os limites inferiores possam ser melhorados a medida


em que uma (sub) região é dividida;

ii. Em geral, esses limites são obtidos através de relaxações convexas do


problema abordado nas sub-regiões.

14
Branch-and-Bound
 B&B (minimização) se baseia em dois componentes fundamentais:

1) Um modo de calcular um limite inferior para uma sub-região:

i. É necessário que os limites inferiores possam ser melhorados a medida


em que uma (sub) região é dividida;

ii. Em geral, esses limites são obtidos através de relaxações convexas do


problema abordado nas sub-regiões.

2) Um mecanismo de obtenção de limites superiores para o problema

15
Branch-and-Bound
 B&B (minimização) se baseia em dois componentes fundamentais:

1) Um modo de calcular um limite inferior para uma sub-região:

i. É necessário que os limites inferiores possam ser melhorados a medida


em que uma (sub) região é dividida;

ii. Em geral, esses limites são obtidos através de relaxações convexas do


problema abordado nas sub-regiões.

2) Um mecanismo de obtenção de limites superiores para o problema


i. Possibilita descartar sub-regiões cujo limite inferior esteja acima do
superior;

16
Branch-and-Bound
 B&B (minimização) se baseia em dois componentes fundamentais:

1) Um modo de calcular um limite inferior para uma sub-região:

i. É necessário que os limites inferiores possam ser melhorados a medida


em que uma (sub) região é dividida;

ii. Em geral, esses limites são obtidos através de relaxações convexas do


problema abordado nas sub-regiões.

2) Um mecanismo de obtenção de limites superiores para o problema


i. Possibilita descartar sub-regiões cujo limite inferior esteja acima do
superior;
ii. Em geral, são obtidos por meio de soluções viáveis encontradas.
17
Branch-and-Bound
 O algoritmo pára quando:

1) A diferença entre o limite inferior e o superior para o problema


abordado é suficientemente pequena;

2) Não há mais sub-regiões a serem exploradas.

18
Branch-and-Bound
 Inicia-se com uma relaxação
convexa para o problema
original (P);

S0

19
Branch-and-Bound
 Inicia-se com uma relaxação
convexa para o problema
original (P);

 Se a resolução da relaxação
convexa não apresentar uma
solução ótima para (P), di- S1 S2
vide-se a região viável (rami-
ficação) em um número de
sub-regiões;

20
Branch-and-Bound
 Inicia-se com uma relaxação
convexa para o problema
original (P)

 Se a resolução da relaxação
convexa não apresentar uma
solução ótima para (P), di- S1 S2
vide-se a região viável (rami-
ficação) em um número de
sub-regiões

 Aqui, dividimos S0 em duas


sub-regiões: S1 e S2.
21
Branch-and-Bound
 O algoritmo mantém então
uma lista N de sub-regiões
ainda não exploradas. (Em
nosso exemplo, corrente-
mente N = {S1, S2} );

S1 S2

22
Branch-and-Bound
 O algoritmo mantém então
uma lista N de sub-regiões
ainda não exploradas. (Em
nosso exemplo, corrente-
mente N = {S1, S2} );

 A cada iteração, uma sub-re- S1 S2


gião Sk de N é escolhida para
ser explorada (por exemplo,
S1 );

23
Branch-and-Bound
 O algoritmo mantém então
uma lista N de sub-regiões
ainda não exploradas. (Em
nosso exemplo, corrente-
mente N = {S1, S2} );

 A cada iteração, uma sub-re- S1 S2


gião Sk de N é escolhida para
ser explorada (por exemplo,
S1 );

 Na região escolhida, resolve-


se uma nova relaxação.
24
Branch-and-Bound
 Se a região sendo explorada
não for descartada, ela será
subdividida novamente;

S3

S1 S2
S4

25
Branch-and-Bound
 Se a região sendo explorada
não for descartada, ela será
subdividida novamente;

 Desse modo, gera-se novas S3


sub-regiões S3 e S4 que serão
também incluídas no conjun- S1 S2
to N; S4

26
Branch-and-Bound
 Se a região sendo explorada
não for descartada, ela será
subdividida novamente;

 Desse modo, gera-se novas S3


sub-regiões S3 e S4 que serão
também incluídas no conjun- S1 S2
to N; S4

 Assim, o algoritmo progride


até um dos critérios de para-
da ser alcançado.

27
Branch-and-Bound
 Convém armazenar um limite in-
ferior para as sub-regiões em N;

S3

S1 S2
S4

28
Branch-and-Bound
 Convém armazenar um limite in-
ferior para as sub-regiões em N;

 Para S3 e S4, um limite inferior


válido é o valor objetivo ótimo S3
da relaxação na sub-região que
lhes originou (S1); S1 S2
S4

29
Branch-and-Bound
 Seja (P) o problema sendo trata-
do e Lk um limite inferior para a
sub-região k;

S3

S1 S2
S4

30
Branch-and-Bound
 Seja (P) o problema sendo trata-
do e Lk um limite inferior para a
sub-região k;

 Tão logo seja encontrada uma S3


solução viável para (P) com valor
objetivo inferior a Lk, pode-se S1 S2
descartar a sub-região k. S4

31
Branch-and-Bound
 Seja (P) o problema sendo trata-
do e Lk um limite inferior para a
sub-região k;

 Tão logo seja encontrada uma S3


solução viável para (P) com valor
objetivo inferior a Lk, pode-se S1 S2
descartar a sub-região k; S4

 Assim, nem toda sub-região ge-


rada é explorada.

32
Branch-and-Bound
 Para dividir uma (sub) região,
pode-se, por exemplo, usar
novas restrições: S0

S1 S2

λ 33
Branch-and-Bound
 Para dividir uma (sub) região,
pode-se, por exemplo, usar
novas restrições: S0

 Esse tipo de ramificação é S1 S2


usada com variáveis contínuas
(geralmente, em otimização
global).
λ 34
Branch-and-Bound
 Com variáveis inteiras, é comum
as relaxações nas sub-regiões
geradas não cobrirem totalmen- S0
te a relaxação na região original:

S1 S2

λ 35
Branch-and-Bound
 Quando descartar uma sub-região?

36
Branch-and-Bound
 Quando descartar uma sub-região?

1) Quando a relaxação convexa na sub-região for inviável (poda por


inviabilidade);

37
Branch-and-Bound
 Quando descartar uma sub-região?

1) Quando a relaxação convexa na sub-região for inviável (poda por


inviabilidade);

2) Quando a resolução da relaxação convexa na sub-região fornece


uma solução sabidamente ótima para (P) nessa sub-região (poda
por otimalidade);

38
Branch-and-Bound
 Quando descartar uma sub-região?

1) Quando a relaxação convexa na sub-região for inviável (poda por


inviabilidade);

2) Quando a resolução da relaxação convexa na sub-região fornece


uma solução sabidamente ótima para (P) nessa sub-região (poda
por otimalidade);

3) Quando se encontra uma solução viável para (P) com valor


objetivo inferior ao limite inferior da partição (minimização).

39
Branch-and-Bound
 Quando (P) é um problema de otimização inteira “convexo”, uma
forma simples de obter uma relaxação convexa para o mesmo é
descartando as restrições de integralidade (relaxação contínua)

40
Branch-and-Bound
 Quando (P) é um problema de otimização inteira “convexo”, uma
forma simples de obter uma relaxação convexa para o mesmo é
descartando as restrições de integralidade (relaxação contínua)

41
Branch-and-Bound
 Se a relaxação contínua de (P) não for convexa (ou (P) for um
problema contínuo não convexo), será preciso utilizar algum
esquema mais sofisticado para construir uma relaxação convexa
para (P).

42
Branch-and-Bound
Para tornar o B&B aplicável em problemas reais, é necessário
incorporar uma série de estratégias para melhorar sua eficiência:

43
Branch-and-Bound
Para tornar o B&B aplicável em problemas reais, é necessário
incorporar uma série de estratégias para melhorar sua eficiência:
 Pré-processamento de restrições;

44
Branch-and-Bound
Para tornar o B&B aplicável em problemas reais, é necessário
incorporar uma série de estratégias para melhorar sua eficiência:
 Pré-processamento de restrições;
 Início promissor (hot start);

45
Branch-and-Bound
Para tornar o B&B aplicável em problemas reais, é necessário
incorporar uma série de estratégias para melhorar sua eficiência:
 Pré-processamento de restrições;
 Início promissor (hot start);
 Heurísticas de viabilidade;

46
Branch-and-Bound
Para tornar o B&B aplicável em problemas reais, é necessário
incorporar uma série de estratégias para melhorar sua eficiência:
 Pré-processamento de restrições;
 Início promissor (hot start);
 Heurísticas de viabilidade;
 Estratégias variadas para ramificação: strong branching, GUB/SOS
branching, heurísticas para seleção de variáveis;

47
Branch-and-Bound
Para tornar o B&B aplicável em problemas reais, é necessário
incorporar uma série de estratégias para melhorar sua eficiência:
 Pré-processamento de restrições;
 Início promissor (hot start);
 Heurísticas de viabilidade;
 Estratégias variadas para ramificação: strong branching, GUB/SOS
branching, heurísticas para seleção de variáveis;
 Estratégias de exploração: melhor limite, profundidade, largura;

48
Branch-and-Bound
Para tornar o B&B aplicável em problemas reais, é necessário
incorporar uma série de estratégias para melhorar sua eficiência:
 Pré-processamento de restrições;
 Início promissor (hot start);
 Heurísticas de viabilidade;
 Estratégias variadas para ramificação: strong branching, GUB/SOS
branching, heurísticas para seleção de variáveis;
 Estratégias de exploração: melhor limite, profundidade, largura;
 Geração de cortes

49
Branch-and-Bound
Para tornar o B&B aplicável em problemas reais, é necessário
incorporar uma série de estratégias para melhorar sua eficiência:
 Pré-processamento de restrições;
 Início promissor (hot start);
 Heurísticas de viabilidade;
 Estratégias variadas para ramificação: strong branching, GUB/SOS
branching, heurísticas para seleção de variáveis;
 Estratégias de exploração: melhor limite, profundidade, largura;
 Geração de cortes
 ...
50
Dificuldades de BB para PNLIM
 Esforço grande em cada nó para resolver os subproblemas de PNL;

51
Dificuldades de BB para PNLIM
 Esforço grande em cada nó para resolver os subproblemas de PNL;

 Rotina de PNL pode falhar em convergir para soluções ótimas nos


subproblemas, ou ainda, atestar inviabilidade incorretamente
• O que compromete o B&B como um todo!

52
Dificuldades de BB para PNLIM
 Esforço grande em cada nó para resolver os subproblemas de PNL;

 Rotina de PNL pode falhar em convergir para soluções ótimas nos


subproblemas, ou ainda, atestar inviabilidade incorretamente
• O que compromete o B&B como um todo!

 Não linearidade traz empecilhos para o uso de técnicas de pré-pro-


cessamento.
• Todavia, pode-se ainda pré-processar possíveis restrições linea-
res presentes no problema

53
Dificuldades de BB para PNLIM

 O esforço computacional alto pode inviabilizar o uso de técnicas de


strong branching;

54
Dificuldades de BB para PNLIM

 O esforço computacional alto pode inviabilizar o uso de técnicas de


strong branching;

 Dificuldade de formulação de cortes;

55
Dificuldades de BB para PNLIM

 O esforço computacional alto pode inviabilizar o uso de técnicas de


strong branching;

 Dificuldade de formulação de cortes;

 Diferentemente do caso linear, é bastante difícil a aplicação de


técnicas de inicio promissor (hot start);

56
Dificuldades de BB para PNLIM

 O esforço computacional alto pode inviabilizar o uso de técnicas de


strong branching;

 Dificuldade de formulação de cortes;

 Diferentemente do caso linear, é bastante difícil a aplicação de


técnicas de inicio promissor (hot start);

 Todavia, desafios podem abrir caminhos para novas oportunida-


des! Esta última pode embasar a adoção de ramificação sobre múl-
tiplas variáveis!
57
Ramificação sobre múltiplas variáveis

Ramificação sobre uma


única variável. 7 nós para
duas variáveis binárias

58
Ramificação sobre múltiplas variáveis

Ramificação sobre uma


única variável. 7 nós para
duas variáveis binárias

Ramificação sobre duas


variáveis. 5 nós para
duas variáveis binárias

59
Ramificação sobre múltiplas variáveis
 Encurtam o caminho da raiz da árvore de BB até as folhas, re-
duzindo o número de subproblemas PNL resolvidos;

 A principal desvantagem é o aumento do consumo de memória

 A cada ramificação, são gerados 2r novos nós, onde r é o núme-


ro de variáveis tomadas para ramificação.

60
Ramificação precoce
 Estratégia de integração entre a enumeração de soluções inteiras e a
resolução de PNL;

 Ideia principal: interromper a execução do problema de PNL em cada


nó se for detectado que a solução ótima não respeitará restrições de
integralidade;

 Idealmente executa-se uma única iteração de PNL (Programação


Quadrática Sequencial) a cada nó e já se ramifica (se for o caso);

 Caminha em sentido contrário a dos algoritmos de branch-and-cut.


Aqui gasta-se o mínimo de esforço possível a cada nó.

61
Ramificação precoce
 Principais empecilhos:
• Difícil aplicação quando o método PNL é de pontos interiores;

62
Ramificação precoce
 Principais empecilhos:
• Difícil aplicação quando o método PNL é de pontos interiores;
• Indisponibilidade de bons solvers de Programação Quadrática
Sequencial;

63
Ramificação precoce
 Principais empecilhos:
• Difícil aplicação quando o método PNL é de pontos interiores;
• Indisponibilidade de bons solvers de Programação Quadrática
Sequencial;
• Não obtenção de limites inferiores para os sub-ramos.

64
Ramificação precoce
 Principais empecilhos:
• Difícil aplicação quando o método PNL é de pontos interiores;
• Indisponibilidade de bons solvers de Programação Quadrática
Sequencial;
• Não obtenção de limites inferiores para os sub-ramos.
 Impossibilita a poda por limite!

65
Ramificação precoce
 A impossibilidade da poda por limite pode ser remediada por meio da
adoção de um corte de nível objetivo nas relaxações resolvidas:

66
Ramificação precoce
 A impossibilidade da poda por limite pode ser remediada por meio da
adoção de um corte de nível objetivo nas relaxações resolvidas:

 Assim, podas que seriam realizadas por limite passam a ser


realizadas por inviabilidade;

 Ainda assim não se pode podar sub-regiões tão logo o limite superior
zu seja atualizado.
67
Solvers de ONLIM convexa com B&B

 Muriqui (opção de algoritmo: MRQ_BB_ALG );

 Bonmin;

 Knitro;

 SBB;

 ...

68
Obrigado!

wendelmelo@ufu.br

https://wendelmelo.net

69

Você também pode gostar