A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Programação inteira Branch-and-bound Aula baseada em diversas fontes:

Apresentações semelhantes


Apresentação em tema: "Programação inteira Branch-and-bound Aula baseada em diversas fontes:"— Transcrição da apresentação:

1 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

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

3 Através de ramificações, exploramos todas as possíveis soluções.
Ex.: problema com três variáveis binárias problemas que precisam ser resolvidos Wolsey, L. A., Integer Programming.Wiley-Interscience, 1998

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

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

6 Ideia básica Enumeração implícita.
Land and Doig, Econometrica, 28,

7 A ideia em duas dimensões é empurrar a função objetivo até que ela encontre um ponto inteiro. Mas como fazer isso em “n” dimensões ? Land and Doig, Econometrica, 28,

8 Conceitos básicos

9 Relaxação Ideia básica de vários métodos (incluindo branch-and-bound). z Min z

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

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

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

13 Composição de limitantes
e se fosse min ? Wolsey, L. A., Integer Programming.Wiley-Interscience, 1998

14 Branch and bound (básico)

15 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

16

17 Prunning (optimality)
Wolsey, L. A., Integer Programming.Wiley-Interscience, 1998

18 Prunning (bound) Wolsey, L. A., Integer Programming.Wiley-Interscience, 1998

19 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

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

21 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

22 Usando a relaxação linear
Slides do curso “Optimization methods” – Dimitris Bertsimas MIT Opencourseware

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

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

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

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

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

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

29 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

30 (melhorando a performance)
Branch and bound (melhorando a performance)

31 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

32 Exemplo (com melhor limitante primal)
Slides do curso “Optimization methods in management sciente” – J. Orlin et al., MIT Opencourseware

33 Exemplo (com melhor limitante primal)
Slides do curso “Optimization methods in management sciente” – J. Orlin et al., MIT Opencourseware

34 Exemplo (com melhor limitante primal)
Slides do curso “Optimization methods in management sciente” – J. Orlin et al., MIT Opencourseware

35 Limitante primal Solução factível. Maneiras de obtê-lo: Heurísticas
Tipo de exploração da árvore

36 Limitante primal Obtenção “a priori”:
Heurísticas Meta-heurísticas O branch-and-bound é usado, então, para provar a otimalidade.

37 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

38 Limitante primal (cplex)
IBM ILOG Cplex reference manual

39 Melhorando a performance (intrinsecamente).
Ou Questões de implementação no B&B

40

41

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

43 Divisão Possibilidade 1: simples.
vantagem de adicionar apenas limites nas variáveis, não aumentando o tamanho da base.

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

45

46 Seleção do nó regras de seleção: a priori adaptativas

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

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

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

50 Seleção do nó Adaptativas (melhor limitante): a ideia é explorar o nó que “promete” mais primeiro.

51

52 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”

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

54 variável mais infactível
Escolher a variável mais próxima de “0.5”.

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

56 (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.

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

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

59 No Cplex

60 Técnicas de preprocessamento.
Importantes para o funcionamento de algoritmos de branch-and-bound.

61

62 Algumas técnicas básicas.

63 Algumas técnicas básicas.

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

65

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

67 “probing”

68


Carregar ppt "Programação inteira Branch-and-bound Aula baseada em diversas fontes:"

Apresentações semelhantes


Anúncios Google