Upload
internet
View
107
Download
0
Tags:
Embed Size (px)
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