Franklina M. B. Toledo / Alysson M. Costa - ICMC/USP Programação inteira Branch-and-bound Aula...

Preview:

Citation preview

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

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).

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

FMBT/ AMC

Crescimento exponencial

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

FMBT/ AMC

Crescimento exponencial

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

FMBT/ AMC

Ideia básica

• Enumeração implícita.

Land and Doig, Econometrica, 28, 497-520

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

FMBT/ AMC

Conceitos básicos

FMBT/ AMC

Relaxação

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

z

Min z

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.

FMBT/ AMC

Limitante dual

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

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).

FMBT/ AMC

Composição de limitantes

S2

S1

S3

S

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

e se fosse min ?

FMBT/ AMC

Branch and bound(básico)

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

FMBT/ AMC

FMBT/ AMC

Prunning (optimality)

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

FMBT/ AMC

Prunning (bound)

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

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

FMBT/ AMC

Algoritmo

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

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

FMBT/ AMC

Usando a relaxação linear

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

FMBT/ AMC

Exemplo

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

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

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

FMBT/ AMC

Exemplo

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

FMBT/ AMC

Exemplo

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

FMBT/ AMC

Exemplo

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

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

FMBT/ AMC

Branch and bound(melhorando a performance)

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

FMBT/ AMC

Exemplo (com melhor limitante primal)

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

FMBT/ AMC

Exemplo (com melhor limitante primal)

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

FMBT/ AMC

Exemplo (com melhor limitante primal)

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

FMBT/ AMC

Limitante primal

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

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

FMBT/ AMC

Limitante primal

Obtenção “a priori”:

– Heurísticas– Meta-heurísticas

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

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

FMBT/ AMC

Limitante primal (cplex)

IBM ILOG Cplex reference manual

FMBT/ AMC

Melhorando a performance (intrinsecamente).

Ou

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

FMBT/ AMC

FMBT/ AMC

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:

FMBT/ AMC

Divisão

• Possibilidade 1:

• simples.• vantagem de adicionar apenas limites nas

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

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 é:

FMBT/ AMC

FMBT/ AMC

Seleção do nó

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

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.

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ó.

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).

FMBT/ AMC

Seleção do nó

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

FMBT/ AMC

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”

FMBT/ AMC

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

FMBT/ AMC

• variável mais infactível

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

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)

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.

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).

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

FMBT/ AMC

No Cplex

FMBT/ AMC

• Técnicas de preprocessamento.

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

FMBT/ AMC

FMBT/ AMC

• Algumas técnicas básicas.

FMBT/ AMC

• Algumas técnicas básicas.

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.

FMBT/ AMC

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.

FMBT/ AMC

• “probing”

FMBT/ AMC