68
Franklina M. B. Toledo / Alysson M. Costa - ICMC/USP Programação inteira Branch-and-bound Aula baseada em diversas fontes: “Integer programming” de L. Wolsey, 1998. “Integer and combinatorial optimization” de Nemhauser e Wolsey, 1988 Slides do curso “Optimization methods in management sciente” – J. Orlin et al., MIT Opencourseware Slides do curso “Systems Optimization” – John Vande Vate, MIT Opencourseware

Franklina M. B. Toledo / Alysson M. Costa - ICMC/USP Programação inteira Branch-and-bound Aula baseada em diversas fontes: Integer programming de L. Wolsey,

Embed Size (px)

Citation preview

Page 1: Franklina M. B. Toledo / Alysson M. Costa - ICMC/USP Programação inteira Branch-and-bound Aula baseada em diversas fontes: Integer programming de L. Wolsey,

Franklina M. B. Toledo / Alysson M. Costa - ICMC/USP

Programação inteira

Branch-and-bound

Aula baseada em diversas fontes:“Integer programming” de L. Wolsey, 1998.“Integer and combinatorial optimization” de Nemhauser e

Wolsey, 1988Slides do curso “Optimization methods in management

sciente” – J. Orlin et al., MIT OpencoursewareSlides do curso “Systems Optimization” – John Vande Vate,

MIT Opencourseware

Page 2: Franklina M. B. Toledo / Alysson M. Costa - ICMC/USP Programação inteira Branch-and-bound Aula baseada em diversas fontes: Integer programming de L. Wolsey,

FMBT/ AMC

Como resolver problemas combinatórios

• Exemplo:• três variáveis:

– x1

– x2

– x3

• Cada uma delas pode assumir valores 0 ou 1.

• Possibilidade: enumeração explícita (listar todas as soluções possíveis e verificar qual a melhor).

Page 3: Franklina M. B. Toledo / Alysson M. Costa - ICMC/USP Programação inteira Branch-and-bound Aula baseada em diversas fontes: Integer programming de L. Wolsey,

FMBT/ AMC

• Através de ramificações, exploramos todas as possíveis soluções.Ex.: problema com três variáveis binárias

Wolsey, L. A., Integer Programming.Wiley-Interscience, 1998

problemas que precisam ser resolvidos

Page 4: Franklina M. B. Toledo / Alysson M. Costa - ICMC/USP Programação inteira Branch-and-bound Aula baseada em diversas fontes: Integer programming de L. Wolsey,

FMBT/ AMC

Crescimento exponencial

Slides do curso “Optimization methods in management sciente” – J. Orlin et al., MIT Opencourseware

Page 5: Franklina M. B. Toledo / Alysson M. Costa - ICMC/USP Programação inteira Branch-and-bound Aula baseada em diversas fontes: Integer programming de L. Wolsey,

FMBT/ AMC

Crescimento exponencial

Slides do curso “Optimization methods in management sciente” – J. Orlin et al., MIT Opencourseware

Page 6: Franklina M. B. Toledo / Alysson M. Costa - ICMC/USP Programação inteira Branch-and-bound Aula baseada em diversas fontes: Integer programming de L. Wolsey,

FMBT/ AMC

Ideia básica

• Enumeração implícita.

Land and Doig, Econometrica, 28, 497-520

Page 7: Franklina M. B. Toledo / Alysson M. Costa - ICMC/USP Programação inteira Branch-and-bound Aula baseada em diversas fontes: Integer programming de L. Wolsey,

FMBT/ AMCLand and Doig, Econometrica, 28, 497-520

Page 8: Franklina M. B. Toledo / Alysson M. Costa - ICMC/USP Programação inteira Branch-and-bound Aula baseada em diversas fontes: Integer programming de L. Wolsey,

FMBT/ AMC

Conceitos básicos

Page 9: Franklina M. B. Toledo / Alysson M. Costa - ICMC/USP Programação inteira Branch-and-bound Aula baseada em diversas fontes: Integer programming de L. Wolsey,

FMBT/ AMC

Relaxação

• Ideia básica de vários métodos (incluindo branch-and-bound).

z

Min z

Page 10: Franklina M. B. Toledo / Alysson M. Costa - ICMC/USP Programação inteira Branch-and-bound Aula baseada em diversas fontes: Integer programming de L. Wolsey,

FMBT/ AMC

Relaxação

• Ideia básica de vários métodos (incluindo branch-and-bound).

• Duas condições:

– O espaço factível da relaxação contém o espaço factível do problema original.

– O valor objetivo da relaxação é melhor que o do problema original para cada solução factível possível.

Page 11: Franklina M. B. Toledo / Alysson M. Costa - ICMC/USP Programação inteira Branch-and-bound Aula baseada em diversas fontes: Integer programming de L. Wolsey,

FMBT/ AMC

Limitante dual

• Ao se resolver um problema de minimização (maximização), uma relaxação nos fornece um limitante inferior (superior).

Page 12: Franklina M. B. Toledo / Alysson M. Costa - ICMC/USP Programação inteira Branch-and-bound Aula baseada em diversas fontes: Integer programming de L. Wolsey,

FMBT/ AMC

Limitante primal

• Ao se resolver um problema de minimização (maximização), uma solução factível nos fornece um limitante superior (inferior).

Page 13: Franklina M. B. Toledo / Alysson M. Costa - ICMC/USP Programação inteira Branch-and-bound Aula baseada em diversas fontes: Integer programming de L. Wolsey,

FMBT/ AMC

Composição de limitantes

S2

S1

S3

S

Wolsey, L. A., Integer Programming.Wiley-Interscience, 1998

e se fosse min ?

Page 14: Franklina M. B. Toledo / Alysson M. Costa - ICMC/USP Programação inteira Branch-and-bound Aula baseada em diversas fontes: Integer programming de L. Wolsey,

FMBT/ AMC

Branch and bound(básico)

Page 15: Franklina M. B. Toledo / Alysson M. Costa - ICMC/USP Programação inteira Branch-and-bound Aula baseada em diversas fontes: Integer programming de L. Wolsey,

FMBT/ AMC

• Retomando o exemplo da enumeração explícita.

• Ideia: não resolver os nós folha, mas eliminar ramos anteriores da árvore (com o auxílio de limitantes).

Wolsey, L. A., Integer Programming.Wiley-Interscience, 1998

Page 16: Franklina M. B. Toledo / Alysson M. Costa - ICMC/USP Programação inteira Branch-and-bound Aula baseada em diversas fontes: Integer programming de L. Wolsey,

FMBT/ AMC

Page 17: Franklina M. B. Toledo / Alysson M. Costa - ICMC/USP Programação inteira Branch-and-bound Aula baseada em diversas fontes: Integer programming de L. Wolsey,

FMBT/ AMC

Prunning (optimality)

Wolsey, L. A., Integer Programming.Wiley-Interscience, 1998

Page 18: Franklina M. B. Toledo / Alysson M. Costa - ICMC/USP Programação inteira Branch-and-bound Aula baseada em diversas fontes: Integer programming de L. Wolsey,

FMBT/ AMC

Prunning (bound)

Wolsey, L. A., Integer Programming.Wiley-Interscience, 1998

Page 19: Franklina M. B. Toledo / Alysson M. Costa - ICMC/USP Programação inteira Branch-and-bound Aula baseada em diversas fontes: Integer programming de L. Wolsey,

FMBT/ AMC

Prunning (resumo)

• poda por otimalidade: zt = max{ cx: x2 St} resolvido.

• poda por limitante:

• poda por infactibilidade: St =

Wolsey, L. A., Integer Programming.Wiley-Interscience, 1998

Page 20: Franklina M. B. Toledo / Alysson M. Costa - ICMC/USP Programação inteira Branch-and-bound Aula baseada em diversas fontes: Integer programming de L. Wolsey,

FMBT/ AMC

Algoritmo

Slides do curso “Optimization methods” – Dimitris Bertsimas MIT Opencourseware

Page 21: Franklina M. B. Toledo / Alysson M. Costa - ICMC/USP Programação inteira Branch-and-bound Aula baseada em diversas fontes: Integer programming de L. Wolsey,

FMBT/ AMC

Comentários

• A relaxação usada não necessariamente é a linear.

• Frequentemente usa-se a relaxação linear devido, sobretudo, à eficiência computacional do método simplex.

Slides do curso “Optimization methods” – Dimitris Bertsimas MIT Opencourseware

Page 22: Franklina M. B. Toledo / Alysson M. Costa - ICMC/USP Programação inteira Branch-and-bound Aula baseada em diversas fontes: Integer programming de L. Wolsey,

FMBT/ AMC

Usando a relaxação linear

Slides do curso “Optimization methods” – Dimitris Bertsimas MIT Opencourseware

Page 23: Franklina M. B. Toledo / Alysson M. Costa - ICMC/USP Programação inteira Branch-and-bound Aula baseada em diversas fontes: Integer programming de L. Wolsey,

FMBT/ AMC

Exemplo

Slides do curso “Optimization methods in management sciente” – J. Orlin et al., MIT Opencourseware

Page 24: Franklina M. B. Toledo / Alysson M. Costa - ICMC/USP Programação inteira Branch-and-bound Aula baseada em diversas fontes: Integer programming de L. Wolsey,

FMBT/ AMCSlides do curso “Optimization methods in management sciente” – J. Orlin et al., MIT Opencourseware

Page 25: Franklina M. B. Toledo / Alysson M. Costa - ICMC/USP Programação inteira Branch-and-bound Aula baseada em diversas fontes: Integer programming de L. Wolsey,

FMBT/ AMCSlides do curso “Optimization methods in management sciente” – J. Orlin et al., MIT Opencourseware

Page 26: Franklina M. B. Toledo / Alysson M. Costa - ICMC/USP Programação inteira Branch-and-bound Aula baseada em diversas fontes: Integer programming de L. Wolsey,

FMBT/ AMC

Exemplo

Slides do curso “Optimization methods in management sciente” – J. Orlin et al., MIT Opencourseware

Page 27: Franklina M. B. Toledo / Alysson M. Costa - ICMC/USP Programação inteira Branch-and-bound Aula baseada em diversas fontes: Integer programming de L. Wolsey,

FMBT/ AMC

Exemplo

Slides do curso “Optimization methods in management sciente” – J. Orlin et al., MIT Opencourseware

Page 28: Franklina M. B. Toledo / Alysson M. Costa - ICMC/USP Programação inteira Branch-and-bound Aula baseada em diversas fontes: Integer programming de L. Wolsey,

FMBT/ AMC

Exemplo

Slides do curso “Optimization methods in management sciente” – J. Orlin et al., MIT Opencourseware

Page 29: Franklina M. B. Toledo / Alysson M. Costa - ICMC/USP Programação inteira Branch-and-bound Aula baseada em diversas fontes: Integer programming de L. Wolsey,

FMBT/ AMC

Exemplo

• Dificuldade:

A árvore gerada se aproxima da árvore da enumeração explícita.

Slides do curso “Optimization methods in management sciente” – J. Orlin et al., MIT Opencourseware

Page 30: Franklina M. B. Toledo / Alysson M. Costa - ICMC/USP Programação inteira Branch-and-bound Aula baseada em diversas fontes: Integer programming de L. Wolsey,

FMBT/ AMC

Branch and bound(melhorando a performance)

Page 31: Franklina M. B. Toledo / Alysson M. Costa - ICMC/USP Programação inteira Branch-and-bound Aula baseada em diversas fontes: Integer programming de L. Wolsey,

FMBT/ AMC

• Como melhorar o branch-and-bound ?

Resposta 1: melhorando o limitante primal.

Slides do curso “Optimization methods in management sciente” – J. Orlin et al., MIT Opencourseware

Page 32: Franklina M. B. Toledo / Alysson M. Costa - ICMC/USP Programação inteira Branch-and-bound Aula baseada em diversas fontes: Integer programming de L. Wolsey,

FMBT/ AMC

Exemplo (com melhor limitante primal)

Slides do curso “Optimization methods in management sciente” – J. Orlin et al., MIT Opencourseware

Page 33: Franklina M. B. Toledo / Alysson M. Costa - ICMC/USP Programação inteira Branch-and-bound Aula baseada em diversas fontes: Integer programming de L. Wolsey,

FMBT/ AMC

Exemplo (com melhor limitante primal)

Slides do curso “Optimization methods in management sciente” – J. Orlin et al., MIT Opencourseware

Page 34: Franklina M. B. Toledo / Alysson M. Costa - ICMC/USP Programação inteira Branch-and-bound Aula baseada em diversas fontes: Integer programming de L. Wolsey,

FMBT/ AMC

Exemplo (com melhor limitante primal)

Slides do curso “Optimization methods in management sciente” – J. Orlin et al., MIT Opencourseware

Page 35: Franklina M. B. Toledo / Alysson M. Costa - ICMC/USP Programação inteira Branch-and-bound Aula baseada em diversas fontes: Integer programming de L. Wolsey,

FMBT/ AMC

Limitante primal

• Solução factível.• Maneiras de obtê-lo:

– Heurísticas– Tipo de exploração da árvore

Page 36: Franklina M. B. Toledo / Alysson M. Costa - ICMC/USP Programação inteira Branch-and-bound Aula baseada em diversas fontes: Integer programming de L. Wolsey,

FMBT/ AMC

Limitante primal

Obtenção “a priori”:

– Heurísticas– Meta-heurísticas

O branch-and-bound é usado, então, para provar a otimalidade.

Page 37: Franklina M. B. Toledo / Alysson M. Costa - ICMC/USP Programação inteira Branch-and-bound Aula baseada em diversas fontes: Integer programming de L. Wolsey,

FMBT/ AMC

Limitante primal (cplex)

• Node Heuristic: “The node heuristic employs techniques to try to construct a feasible solution from the current (fractional) branch & cut node.”

• Relaxation Induced Neighborhood Search (RINS) Heuristic: “ Relaxation induced neighborhood search (RINS) is a heuristic that explores a neighborhood of the current incumbent solution to try to find a new, improved incumbent. It formulates the neighborhood exploration as another MIP (known as the subMIP), and truncates the subMIP optimization by limiting the number of nodes explored in the search tree.”

IBM ILOG Cplex user manual

Page 38: Franklina M. B. Toledo / Alysson M. Costa - ICMC/USP Programação inteira Branch-and-bound Aula baseada em diversas fontes: Integer programming de L. Wolsey,

FMBT/ AMC

Limitante primal (cplex)

IBM ILOG Cplex reference manual

Page 39: Franklina M. B. Toledo / Alysson M. Costa - ICMC/USP Programação inteira Branch-and-bound Aula baseada em diversas fontes: Integer programming de L. Wolsey,

FMBT/ AMC

Melhorando a performance (intrinsecamente).

Ou

Questões de implementação no B&B

Page 40: Franklina M. B. Toledo / Alysson M. Costa - ICMC/USP Programação inteira Branch-and-bound Aula baseada em diversas fontes: Integer programming de L. Wolsey,

FMBT/ AMC

Page 41: Franklina M. B. Toledo / Alysson M. Costa - ICMC/USP Programação inteira Branch-and-bound Aula baseada em diversas fontes: Integer programming de L. Wolsey,

FMBT/ AMC

Page 42: Franklina M. B. Toledo / Alysson M. Costa - ICMC/USP Programação inteira Branch-and-bound Aula baseada em diversas fontes: Integer programming de L. Wolsey,

FMBT/ AMC

Divisão

• Seja Si o espaço factível do nó i.

Podemos dividir o nó i em dois nós, Si1 e Si2 , da seguinte forma:

• selecionando d e x de maneira adequada tal que a solução atual, x0, não atenda nenhuma das restições:

Page 43: Franklina M. B. Toledo / Alysson M. Costa - ICMC/USP Programação inteira Branch-and-bound Aula baseada em diversas fontes: Integer programming de L. Wolsey,

FMBT/ AMC

Divisão

• Possibilidade 1:

• simples.• vantagem de adicionar apenas limites nas

variáveis, não aumentando o tamanho da base.

Page 44: Franklina M. B. Toledo / Alysson M. Costa - ICMC/USP Programação inteira Branch-and-bound Aula baseada em diversas fontes: Integer programming de L. Wolsey,

FMBT/ AMC

Divisão

• Possibilidade 2:

• Dadas restrições da forma:

• Uma solução x0 é infactível se, para qualquer Ql 2 Q,

• Uma ramificação possível é:

Page 45: Franklina M. B. Toledo / Alysson M. Costa - ICMC/USP Programação inteira Branch-and-bound Aula baseada em diversas fontes: Integer programming de L. Wolsey,

FMBT/ AMC

Page 46: Franklina M. B. Toledo / Alysson M. Costa - ICMC/USP Programação inteira Branch-and-bound Aula baseada em diversas fontes: Integer programming de L. Wolsey,

FMBT/ AMC

Seleção do nó

• regras de seleção:– a priori– adaptativas

Page 47: Franklina M. B. Toledo / Alysson M. Costa - ICMC/USP Programação inteira Branch-and-bound Aula baseada em diversas fontes: Integer programming de L. Wolsey,

FMBT/ AMC

Seleção do nó

• A priori (profundidade – depth-first): se o nó atual não for podado, o próximo nó a ser analisado é um dos seus filhos. Caso ele seja podado, volta-se na árvore (backtracking) até se encontrar um nó ativo.

• Vantagens:– Uso de reotimização (hot-start) na resolução

dos problemas lineares.*– soluções factíveis tendem a ser encontradas

em níveis mais fundos da árvore.

Page 48: Franklina M. B. Toledo / Alysson M. Costa - ICMC/USP Programação inteira Branch-and-bound Aula baseada em diversas fontes: Integer programming de L. Wolsey,

FMBT/ AMC

*hot-start

• Uma ramificação implica na adição de uma restrição (no problema primal)

• = adição de uma coluna (variável) no problema dual.

• A solução ótima do nó pai é factível para o nó filho (e, com frequência, não muito distante da solução ótima).

Consequência: menos iterações do algoritmo simplex são necessárias para resolver o problema em cada nó.

Page 49: Franklina M. B. Toledo / Alysson M. Costa - ICMC/USP Programação inteira Branch-and-bound Aula baseada em diversas fontes: Integer programming de L. Wolsey,

FMBT/ AMC

Seleção do nó

• A priori (largura – breadth first): todos os nós de um dado nível são considerados antes de se passar para o nível seguinte.

• Pode ser interessante em heurísticas (beam search).

Page 50: Franklina M. B. Toledo / Alysson M. Costa - ICMC/USP Programação inteira Branch-and-bound Aula baseada em diversas fontes: Integer programming de L. Wolsey,

FMBT/ AMC

Seleção do nó

• Adaptativas (melhor limitante): a ideia é explorar o nó que “promete” mais primeiro.

Page 51: Franklina M. B. Toledo / Alysson M. Costa - ICMC/USP Programação inteira Branch-and-bound Aula baseada em diversas fontes: Integer programming de L. Wolsey,

FMBT/ AMC

Page 52: Franklina M. B. Toledo / Alysson M. Costa - ICMC/USP Programação inteira Branch-and-bound Aula baseada em diversas fontes: Integer programming de L. Wolsey,

FMBT/ AMC

Seleção da variável de ramificação

• Escolher xi para ramificação com

• Decisão importante (com frequência, a fixação de um subconjunto de variáveis força o restante a ser inteira).

• Escolha comum: “user defined”

Page 53: Franklina M. B. Toledo / Alysson M. Costa - ICMC/USP Programação inteira Branch-and-bound Aula baseada em diversas fontes: Integer programming de L. Wolsey,

FMBT/ AMC

Achterberg, T., Koch, T. & Martin, A., 2005. Branching rules revisited. Operations Research Letters, 33, 42-54.

Page 54: Franklina M. B. Toledo / Alysson M. Costa - ICMC/USP Programação inteira Branch-and-bound Aula baseada em diversas fontes: Integer programming de L. Wolsey,

FMBT/ AMC

• variável mais infactível

– Escolher a variável mais próxima de “0.5”.

Page 55: Franklina M. B. Toledo / Alysson M. Costa - ICMC/USP Programação inteira Branch-and-bound Aula baseada em diversas fontes: Integer programming de L. Wolsey,

FMBT/ AMC

Seleção da variável de ramificação

• ramificação por pseudo-custo

Seja

Estimamos a pertubação da ramificação nos nós filhos:

(estimativa feita com auxílio de variáveis duais ou baseado em ramificações anteriores)

Page 56: Franklina M. B. Toledo / Alysson M. Costa - ICMC/USP Programação inteira Branch-and-bound Aula baseada em diversas fontes: Integer programming de L. Wolsey,

FMBT/ AMC

• (full) strong branching

– Resolver localmente problemas lineares com as ramificações e verificar qual resulta em uma maior perturbação no limitante.

– Se todas as variáveis possíveis (i.e., todas as fracionárias) são testadas, temos o “full” strong branching.

– pesquisa: selecionar quais variáveis selecionar.

Page 57: Franklina M. B. Toledo / Alysson M. Costa - ICMC/USP Programação inteira Branch-and-bound Aula baseada em diversas fontes: Integer programming de L. Wolsey,

FMBT/ AMC

• híbrido entre pseudo-custo e strong branching

– no começo, a estratégia de pseudo-custo funciona muito mal, pois não há informação. Então, na parte de cima da árvore, usa-se strong branching.

• variação: usar strong branching em variáveis ainda não inicializadas (mesmo que isto ocorra na parte de baixo da árvore).

Page 58: Franklina M. B. Toledo / Alysson M. Costa - ICMC/USP Programação inteira Branch-and-bound Aula baseada em diversas fontes: Integer programming de L. Wolsey,

FMBT/ AMCAchterberg, T., Koch, T. & Martin, A., 2005. Branching rules revisited. Operations Research Letters, 33, 42-54.

Page 59: Franklina M. B. Toledo / Alysson M. Costa - ICMC/USP Programação inteira Branch-and-bound Aula baseada em diversas fontes: Integer programming de L. Wolsey,

FMBT/ AMC

No Cplex

Page 60: Franklina M. B. Toledo / Alysson M. Costa - ICMC/USP Programação inteira Branch-and-bound Aula baseada em diversas fontes: Integer programming de L. Wolsey,

FMBT/ AMC

• Técnicas de preprocessamento.

Importantes para o funcionamento de algoritmos de branch-and-bound.

Page 61: Franklina M. B. Toledo / Alysson M. Costa - ICMC/USP Programação inteira Branch-and-bound Aula baseada em diversas fontes: Integer programming de L. Wolsey,

FMBT/ AMC

Page 62: Franklina M. B. Toledo / Alysson M. Costa - ICMC/USP Programação inteira Branch-and-bound Aula baseada em diversas fontes: Integer programming de L. Wolsey,

FMBT/ AMC

• Algumas técnicas básicas.

Page 63: Franklina M. B. Toledo / Alysson M. Costa - ICMC/USP Programação inteira Branch-and-bound Aula baseada em diversas fontes: Integer programming de L. Wolsey,

FMBT/ AMC

• Algumas técnicas básicas.

Page 64: Franklina M. B. Toledo / Alysson M. Costa - ICMC/USP Programação inteira Branch-and-bound Aula baseada em diversas fontes: Integer programming de L. Wolsey,

FMBT/ AMC

• Identificação de infactbilidade:

• se z > b, o problema é infactível.• problema tão difícil quanto o original mas,

pode-se buscar um limitante inferior de z.

Page 65: Franklina M. B. Toledo / Alysson M. Costa - ICMC/USP Programação inteira Branch-and-bound Aula baseada em diversas fontes: Integer programming de L. Wolsey,

FMBT/ AMC

Page 66: Franklina M. B. Toledo / Alysson M. Costa - ICMC/USP Programação inteira Branch-and-bound Aula baseada em diversas fontes: Integer programming de L. Wolsey,

FMBT/ AMC

• Identificação de redundância:

• se z · b, a restrição é redundante.• problema tão difícil quanto o original mas,

pode-se buscar um limitante superior de z.

Page 67: Franklina M. B. Toledo / Alysson M. Costa - ICMC/USP Programação inteira Branch-and-bound Aula baseada em diversas fontes: Integer programming de L. Wolsey,

FMBT/ AMC

• “probing”

Page 68: Franklina M. B. Toledo / Alysson M. Costa - ICMC/USP Programação inteira Branch-and-bound Aula baseada em diversas fontes: Integer programming de L. Wolsey,

FMBT/ AMC