Você está na página 1de 33

Branch and Bound Alocação de Tarefas Problema da Mochila Caxeiro Viajante Eficiência

Branch and Bound

Prof. Gustavo Soares

Análise e Técnicas de Algoritmos

Slides adaptados de Prof. Dr. Leandro Balby Marinho 1 / 26 UFCG CEEI


Branch and Bound Alocação de Tarefas Problema da Mochila Caxeiro Viajante Eficiência

Exemplo 1

A matriz abaixo mostra uma instância do problema onde Ci,j


denota o custo de alocar a tarefa j para a pessoa i.
 
9 2 7 8
6 4 3 7
C =
5

8 1 8
7 6 9 4

Qual o custo de uma solução força bruta? Resolva essa instância


do problema com backtracking.

Slides adaptados de Prof. Dr. Leandro Balby Marinho 2 / 26 UFCG CEEI


Branch and Bound Alocação de Tarefas Problema da Mochila Caxeiro Viajante Eficiência

Roteiro

1. Branch and Bound (B&B)

2. Problema de Alocação de Tarefas

3. Problema da Mochila

4. Problema do Caxeiro Viajante

5. Eficiência do Branch and Bound

Slides adaptados de Prof. Dr. Leandro Balby Marinho 3 / 26 UFCG CEEI


Branch and Bound Alocação de Tarefas Problema da Mochila Caxeiro Viajante Eficiência

Slides adaptados de Prof. Dr. Leandro Balby Marinho 3 / 26 UFCG CEEI


Branch and Bound Alocação de Tarefas Problema da Mochila Caxeiro Viajante Eficiência

Introdução

I Problemas de otimização combinatória buscam por um objeto


ótimo em um conjunto finito de objetos.
I Em problemas de otimização combinatória:
I uma solução viável é uma solução que satisfaz todas as
restrições do problema, enquanto
I uma solução ótima é uma solução viável com o melhor valor
da função objetivo.

Slides adaptados de Prof. Dr. Leandro Balby Marinho 4 / 26 UFCG CEEI


Branch and Bound Alocação de Tarefas Problema da Mochila Caxeiro Viajante Eficiência

B&B vs. Backtracking

I Comparado ao Backtracking, B&B requer dois componentes


adicionais:
I para cada nó da árvore, um limite1 para o melhor valor da
função objetivo para soluções que podem ser obtidas com
componentes adicionais.
I o valor da melhor solução até então.
I Com estas informações podemos comparar o valor limite do
nó com o valor da melhor solução até então.
I A ordem de geração dos nós é feita em largura e não em
profundidade.

1
superior para maximização e inferior para minimização
Slides adaptados de Prof. Dr. Leandro Balby Marinho 5 / 26 UFCG CEEI
Branch and Bound Alocação de Tarefas Problema da Mochila Caxeiro Viajante Eficiência

Função Limite

I Cada nó na árvore é associado a um valor real (chamado limite) e


denotado por g .
I Para nós folha, g é o valor da solução corrente.
I Para nós internos, g é um limite para o valor de qualquer solução no
subespaço de soluções do nó corrente.
I Nós que foram gerados mas ainda não foram expandidos são ditos
vivos.

Slides adaptados de Prof. Dr. Leandro Balby Marinho 6 / 26 UFCG CEEI


Branch and Bound Alocação de Tarefas Problema da Mochila Caxeiro Viajante Eficiência

Critérios de Poda

I O valor limite do nó não é melhor que o valor da melhor


solução conhecida.
I O nó não representa soluções parciais viáveis porque as
restrições do problema foram violadas.
I O subconjunto de soluções viáveis representadas por um nó
consiste de um único elemento.

Slides adaptados de Prof. Dr. Leandro Balby Marinho 7 / 26 UFCG CEEI


Branch and Bound Alocação de Tarefas Problema da Mochila Caxeiro Viajante Eficiência

Roteiro

1. Branch and Bound (B&B)

2. Problema de Alocação de Tarefas

3. Problema da Mochila

4. Problema do Caxeiro Viajante

5. Eficiência do Branch and Bound

Slides adaptados de Prof. Dr. Leandro Balby Marinho 8 / 26 UFCG CEEI


Branch and Bound Alocação de Tarefas Problema da Mochila Caxeiro Viajante Eficiência

Problema de Alocação de Tarefas

I Alocar n pessoas para n tarefas tal que o custo total de


alocação seja o menor possı́vel.
I Instâncias do problema podem ser especificadas por uma
matriz de custo C ∈ Rn×n .
I Selecionar um elemento de cada linha da matriz tal que
nenhum par de elementos esteja na mesma coluna e suas
somas sejam as menores possı́veis.

Slides adaptados de Prof. Dr. Leandro Balby Marinho 8 / 26 UFCG CEEI


Branch and Bound Alocação de Tarefas Problema da Mochila Caxeiro Viajante Eficiência

Exemplo 1

A matriz abaixo mostra uma instância do problema onde Ci,j


denota o custo de alocar a tarefa j para a pessoa i.
 
9 2 7 8
6 4 3 7
C =
5

8 1 8
7 6 9 4

Qual o custo de uma solução força bruta? Resolva essa instância


do problema com branch and bound.

Slides adaptados de Prof. Dr. Leandro Balby Marinho 9 / 26 UFCG CEEI


Branch and Bound Alocação de Tarefas Problema da Mochila Caxeiro Viajante Eficiência

Exemplo 1 cont.

I A primeira coisa é encontrar um limite inferior para o custo de


uma solução ótima. Como?
I Observe que o custo de qualquer solução não pode ser menor
que a soma dos menores elementos em cada linha da matriz.
I Nesse caso
2 + 3 + 1 + 4 = 10
I Aplicaremos o mesmo raciocı́nio às soluções parciais.
I Selecionando 9 na primeira linha, por exemplo, o limite
inferior seria
9 + 3 + 1 + 4 = 17

Slides adaptados de Prof. Dr. Leandro Balby Marinho 10 / 26 UFCG CEEI


Branch and Bound Alocação de Tarefas Problema da Mochila Caxeiro Viajante Eficiência

Exemplo 1 cont.

Qual nó expandir em seguida?

Slides adaptados de Prof. Dr. Leandro Balby Marinho 11 / 26 UFCG CEEI


Branch and Bound Alocação de Tarefas Problema da Mochila Caxeiro Viajante Eficiência

Exemplo 1 cont.

Qual nó expandir em seguida?

Slides adaptados de Prof. Dr. Leandro Balby Marinho 12 / 26 UFCG CEEI


Branch and Bound Alocação de Tarefas Problema da Mochila Caxeiro Viajante Eficiência

Exemplo 1 cont.

Slides adaptados de Prof. Dr. Leandro Balby Marinho 13 / 26 UFCG CEEI


Branch and Bound Alocação de Tarefas Problema da Mochila Caxeiro Viajante Eficiência

Exercı́cio 2

A matriz abaixo apresenta uma instância do problema da alocação


de tarefas onde cada valor da matriz representa a probabilidade de
um agente (linha) executar com sucesso a tarefa correspondente
(coluna).
 
0.9 0.8 0.9 0.85
 0.7 0.6 0.8 0.7 
C =
0.85

0.7 0.85 0.8 
0.75 0.7 0.75 0.7

Cada alocação representa a probabilidade total da alocação resultar


em sucesso. Por exemplo, (1, 2, 3, 4) = 0.9 · 0.6 · 0.85 · 0.7 = 0.3213.
Ache a alocação que maximiza a probabilidade de sucesso.

Slides adaptados de Prof. Dr. Leandro Balby Marinho 14 / 26 UFCG CEEI


Branch and Bound Alocação de Tarefas Problema da Mochila Caxeiro Viajante Eficiência

Roteiro

1. Branch and Bound (B&B)

2. Problema de Alocação de Tarefas

3. Problema da Mochila

4. Problema do Caxeiro Viajante

5. Eficiência do Branch and Bound

Slides adaptados de Prof. Dr. Leandro Balby Marinho 15 / 26 UFCG CEEI


Branch and Bound Alocação de Tarefas Problema da Mochila Caxeiro Viajante Eficiência

Problema de Mochila

I Ordene os itens em ordem decrescente de suas frações valor/peso.


I Primeiro item tem o melhor valor/unidade de peso e o último o pior:

v1 /w1 ≥ v2 /w2 ≥ . . . ≥ vn /wn

I Seja v o valor total dos itens selecionados até então e w o peso


total desses itens.
I Para calcular o limite superior ub, adicionamos a v o produto da
capacidade restante da mochila W − w com o melhor valor por
unidade de peso entre os itens restantes:

ub := v + (W − w )(vi+1 /wi+1 )

Slides adaptados de Prof. Dr. Leandro Balby Marinho 15 / 26 UFCG CEEI


Branch and Bound Alocação de Tarefas Problema da Mochila Caxeiro Viajante Eficiência

Exemplo 2

Use B&B para resolver a seguinte instância do problema da mochila para


W = 10.

item peso valor ($) valor/peso


1 4 40 10
2 7 42 6
3 5 25 5
4 3 12 4

Slides adaptados de Prof. Dr. Leandro Balby Marinho 16 / 26 UFCG CEEI


Branch and Bound Alocação de Tarefas Problema da Mochila Caxeiro Viajante Eficiência

Exemplo 2 cont.

Slides adaptados de Prof. Dr. Leandro Balby Marinho 17 / 26 UFCG CEEI


Branch and Bound Alocação de Tarefas Problema da Mochila Caxeiro Viajante Eficiência

Exercı́cio 2

Resolva a seguinte instância do problema da mochila com a abor-


dagem B&B para W = 16.
item peso valor ($)
1 4 100
2 7 63
3 5 56
4 3 12

Slides adaptados de Prof. Dr. Leandro Balby Marinho 18 / 26 UFCG CEEI


Branch and Bound Alocação de Tarefas Problema da Mochila Caxeiro Viajante Eficiência

Roteiro

1. Branch and Bound (B&B)

2. Problema de Alocação de Tarefas

3. Problema da Mochila

4. Problema do Caxeiro Viajante

5. Eficiência do Branch and Bound

Slides adaptados de Prof. Dr. Leandro Balby Marinho 19 / 26 UFCG CEEI


Branch and Bound Alocação de Tarefas Problema da Mochila Caxeiro Viajante Eficiência

Qual limite inferior usar?

Slides adaptados de Prof. Dr. Leandro Balby Marinho 19 / 26 UFCG CEEI


Branch and Bound Alocação de Tarefas Problema da Mochila Caxeiro Viajante Eficiência

Problema do Caxeiro Viajante

I Um limite inferior simples seria achar a menor distância entre


duas cidades e multiplicar pelo número de arestas restantes.
I Um outro limite mais informativo e mais fácil de calcular para
qualquer rota segue abaixo.
I Para qualquer cidade i, 1 ≤ i ≤ n, ache a soma si das
distâncias entre a cidade i e as duas cidades mais próximas.
I Calcule a soma s para as n cidades e divida o resultado por 2,
i.e.,
lb := bs/2c

Slides adaptados de Prof. Dr. Leandro Balby Marinho 20 / 26 UFCG CEEI


Branch and Bound Alocação de Tarefas Problema da Mochila Caxeiro Viajante Eficiência

Exemplo 3

I Para a instância da figura acima, por exemplo, terı́amos


lb := b[(1 + 3) + (3 + 6) + (1 + 2) + (3 + 4) + (2 + 3)]/2c = 14

Slides adaptados de Prof. Dr. Leandro Balby Marinho 21 / 26 UFCG CEEI


Branch and Bound Alocação de Tarefas Problema da Mochila Caxeiro Viajante Eficiência

Exemplo 3

I Para a instância da figura acima, por exemplo, terı́amos


lb := b[(1 + 3) + (3 + 6) + (1 + 2) + (3 + 4) + (2 + 3)]/2c = 14
I Temos que ajustar o limite para caminhos requerendo certas
arestas.

Slides adaptados de Prof. Dr. Leandro Balby Marinho 21 / 26 UFCG CEEI


Branch and Bound Alocação de Tarefas Problema da Mochila Caxeiro Viajante Eficiência

Exemplo 3

I Para a instância da figura acima, por exemplo, terı́amos


lb := b[(1 + 3) + (3 + 6) + (1 + 2) + (3 + 4) + (2 + 3)]/2c = 14
I Temos que ajustar o limite para caminhos requerendo certas
arestas.
I Para circuitos requerendo a aresta (a, d), por exemplo,
terı́amos o seguint:
b[(1 + 5) + (3 + 6) + (1 + 2) + (3 + 5) + (2 + 3)]/2c = 16

Slides adaptados de Prof. Dr. Leandro Balby Marinho 21 / 26 UFCG CEEI


Branch and Bound Alocação de Tarefas Problema da Mochila Caxeiro Viajante Eficiência

Exemplo 3 cont.

I Para reduzir a quantidade de trabalho potencial usamos as


seguintes obervações:
I Só consideramos caminhos começando em a.
I Como o grafo é indireto, só consideramos caminhos onde b
precede c.

Slides adaptados de Prof. Dr. Leandro Balby Marinho 22 / 26 UFCG CEEI


Branch and Bound Alocação de Tarefas Problema da Mochila Caxeiro Viajante Eficiência

Exemplo 3 cont.

Slides adaptados de Prof. Dr. Leandro Balby Marinho 23 / 26 UFCG CEEI


Branch and Bound Alocação de Tarefas Problema da Mochila Caxeiro Viajante Eficiência

Roteiro

1. Branch and Bound (B&B)

2. Problema de Alocação de Tarefas

3. Problema da Mochila

4. Problema do Caxeiro Viajante

5. Eficiência do Branch and Bound

Slides adaptados de Prof. Dr. Leandro Balby Marinho 24 / 26 UFCG CEEI


Branch and Bound Alocação de Tarefas Problema da Mochila Caxeiro Viajante Eficiência

Algoritmo

BranchAndBound()
1 v = root
2 H = Max-Heap()
3 best = value(v )
4 insert(H, v )
5 while (!empty(H))
6 remove(H, v )
7 if (bound(v ) is better than best)
8 for each child u of v
9 if (value(u) is better than best)
10 best = value(u)
11 if (bound(u) is better than best)
12 insert(H, u)

Slides adaptados de Prof. Dr. Leandro Balby Marinho 24 / 26 UFCG CEEI


Branch and Bound Alocação de Tarefas Problema da Mochila Caxeiro Viajante Eficiência

Eficiência do Branch and Bound

I Fatores que afetam a eficiência:


I tempo para gerar a próxima previsão.
I tempo de execução da função de poda.

I Uma boa função de poda reduz substancialmente o número de


nós considerados.
I Tradeoff: complexidade da função de poda vs. tempo para
avaliá-la.
I Análise do algoritmo virtualmente impossı́vel (depende da
instância de entrada).

Slides adaptados de Prof. Dr. Leandro Balby Marinho 25 / 26 UFCG CEEI


Branch and Bound Alocação de Tarefas Problema da Mochila Caxeiro Viajante Eficiência

Referências

Anany Levitin. Introduction to the Design and Analysis of


Algorithms. Segunda Edição. Pearson International Edition,
2007.

Slides adaptados de Prof. Dr. Leandro Balby Marinho 26 / 26 UFCG CEEI

Você também pode gostar