37
Algoritmos Paralelos Probabilísticos para Busca em Backtrack e Heurística Branch-and- Bound Roberto A. G. Motta sob orientação do Prof. Dr. Siang Wun Song

Algoritmos Paralelos Probabilísticos para Busca em Backtrack e Heurística Branch-and-Bound

  • Upload
    teenie

  • View
    39

  • Download
    0

Embed Size (px)

DESCRIPTION

Algoritmos Paralelos Probabilísticos para Busca em Backtrack e Heurística Branch-and-Bound. Roberto A. G. Motta sob orientação do Prof. Dr. Siang Wun Song. Referências. - PowerPoint PPT Presentation

Citation preview

Page 1: Algoritmos Paralelos Probabilísticos para Busca em  Backtrack  e Heurística  Branch-and-Bound

Algoritmos Paralelos Probabilísticos para Busca em Backtrack e Heurística Branch-and-Bound

Roberto A. G. Motta sob orientação do Prof. Dr. Siang Wun Song

Page 2: Algoritmos Paralelos Probabilísticos para Busca em  Backtrack  e Heurística  Branch-and-Bound

Referências Karp, R. and Zhang, Y. Randomized Parallel

Algorithms for Backtrack Search and Branch-and-Bound Computation – ACM Journal, Vol. 40, No. 3, Julho de 1993.

Kouril, M. and Paul, J. A Parallel Backtracking Framework (BkFr) for Single and Multiple Clusters – First Conference on Computing Frontiers, Abril de 2004.

Page 3: Algoritmos Paralelos Probabilísticos para Busca em  Backtrack  e Heurística  Branch-and-Bound

Agenda

Busca e Otimização Combinatória Uso de Computação Paralela Backtrack Determinístico vs. Probabilístico Uso de Cluster de Clusters Heurística de Branch-and-Bound Backtracking Framework - BkFr Resultados obtidos

Page 4: Algoritmos Paralelos Probabilísticos para Busca em  Backtrack  e Heurística  Branch-and-Bound

Problemas de busca combinatória

Busca por combinações de elementos que atendam certas características específicas

Grande número de arranjos possíveis Problemas NP Árvore de soluções

Page 5: Algoritmos Paralelos Probabilísticos para Busca em  Backtrack  e Heurística  Branch-and-Bound

Problema do caixeiro viajante

Encontrar um passeio de custo mínimo por um conjunto de cidades

Problema NP-difícil Todas as cidades precisam ser

visitadas Custo total deve ser o menor possível

Page 6: Algoritmos Paralelos Probabilísticos para Busca em  Backtrack  e Heurística  Branch-and-Bound

Algoritmo genérico

Instância A do problema é dada Executa uma das operações:

• Resolve A diretamente ou• Deriva de A os subproblemas A1, A2,...,Ad

de forma que o problema A possa ser resolvido a partir da solução dos subproblemas

Page 7: Algoritmos Paralelos Probabilísticos para Busca em  Backtrack  e Heurística  Branch-and-Bound

Árvore de soluções

Associa-se à instância do problema uma árvore

Raiz: instância do problema Nós internos: subproblemas Folhas: subproblemas que podem ser

resolvidos diretamente

Page 8: Algoritmos Paralelos Probabilísticos para Busca em  Backtrack  e Heurística  Branch-and-Bound

Árvore de soluções

A

A1 A2

A11 A12 A21 A22 A23A13

Page 9: Algoritmos Paralelos Probabilísticos para Busca em  Backtrack  e Heurística  Branch-and-Bound

Uso de computação paralela

Busca na árvore de soluções é facilmente paralelizável

Custo de comunicação é baixo Speed-up potencial é altíssimo Problemas propícios para aplicação

de computação paralela

Page 10: Algoritmos Paralelos Probabilísticos para Busca em  Backtrack  e Heurística  Branch-and-Bound

Backtrack

Busca em profundidade na árvore de soluções

Todos os nós serão visitados Todas as possíveis soluções serão

analisadas A melhor solução será encontrada

Page 11: Algoritmos Paralelos Probabilísticos para Busca em  Backtrack  e Heurística  Branch-and-Bound

Complexidade

Limite inferior: max{n/p,h}

A

A1 A2

A11 A12 A21 A22 A23A13

A231

Page 12: Algoritmos Paralelos Probabilísticos para Busca em  Backtrack  e Heurística  Branch-and-Bound

Trivialmente paralelizável?

Processadores realizam a busca na árvore de soluções de forma independente – não exige comunicação

P1 P2 P4 P5 P6P3

Page 13: Algoritmos Paralelos Probabilísticos para Busca em  Backtrack  e Heurística  Branch-and-Bound

Qual o desafio?

Distribuição de carga Processadores ociosos recebem nova

carga de trabalho Não implica em aumento de rodadas de

comunicação Exige modelagem otimizada dos nós da

árvore

Page 14: Algoritmos Paralelos Probabilísticos para Busca em  Backtrack  e Heurística  Branch-and-Bound

Backtrack paralelo – definições

Definições:• Nó de fronteira

• Nó que foi gerado mas não expandido• Fronteira local

• Conjunto dos nós de fronteira possuídos pelo processador

• Nível de um nó v• Número de nós no caminho da raiz até o nó

v, inclusive

Page 15: Algoritmos Paralelos Probabilísticos para Busca em  Backtrack  e Heurística  Branch-and-Bound

Backtrack paralelo – definições

raiz

interno interno

fronteira fronteira fronteira fronteira fronteira

Page 16: Algoritmos Paralelos Probabilísticos para Busca em  Backtrack  e Heurística  Branch-and-Bound

Backtrack paralelo – estados

Estados:• Processador ocioso

Sua fronteira local está vazia• Processador ocupado

Sua fronteira local não está vazia

Page 17: Algoritmos Paralelos Probabilísticos para Busca em  Backtrack  e Heurística  Branch-and-Bound

Backtrack paralelo – passos Passos:

• Expansão de nó Cada processador expande seu nó de

fronteira mais à esquerda• Pareamento

Alguns processadores ocupados são selecionados como doadores

• Doação Cada processador selecionado envia

metade de seus nós superiores a um processador ocioso

Page 18: Algoritmos Paralelos Probabilísticos para Busca em  Backtrack  e Heurística  Branch-and-Bound

Backtrack paralelo – algoritmo

1

i ;

i

i

i i

i

i i i

i

/* Passo de Expansão de Nós */

F ={r};

para i=2,3,...,p, F

enquanto algum F faça

para i=1,2,...,p faça em paralelo

se F então

v nó mais à esquerda em F ;

expande v ;

F F \{v };

se v não é folha en

i i itão F F (v );

Page 19: Algoritmos Paralelos Probabilísticos para Busca em  Backtrack  e Heurística  Branch-and-Bound

Backtrack paralelo – algoritmo

i i

i i i

/* Passo de Pareamento */

/* Passo de Doação */

determina um conjunto de pareamento

para i = 1,2,...,p faça em paralelo

seja T o conjunto de nós superiores em F ;

seja D T um conjunto de T / 2 nós em i

i i i

i

i

/* i doa Di para j */

T ;

se (i,j) R para algum j então

F F \D ;

envia mensagem "i doa D " para j;

para j = 1,2,...,p faça em paralelo

se j receber mensagem "i doa Di" então F Di;

Page 20: Algoritmos Paralelos Probabilísticos para Busca em  Backtrack  e Heurística  Branch-and-Bound

Versão determinística Escolhe maior pareamento possível

i j

/* Passo de Pareamento */

determina um conjunto de pareamento

R = i,j / F 1, F 0, 1 i,j p tal que

se i,j , i',j' R, então i=i', j=j' ou i i', j j';

Page 21: Algoritmos Paralelos Probabilísticos para Busca em  Backtrack  e Heurística  Branch-and-Bound

Versão determinística - complexidade

Número de passos

• h é a altura da árvore• d é o grau da árvore• n é o número de nós• p é o número de processadores

nlog d h

p

Page 22: Algoritmos Paralelos Probabilísticos para Busca em  Backtrack  e Heurística  Branch-and-Bound

Versão probabilística/* Pairing Step */

para j = 1,2,...,p faça em paralelo

se j está ocioso então

dest(j) um elemento aleatório de {1,2,...,p};

envia mensagem "j quer novo trabalho" para dest(j);

para i = 1,2,...,p faça em p

i

i

i

aralelo

se i está carregado então

seja A = {j / i recebeu uma mensagem "j quer novo trabalho"};

se A então

seleciona de forma arbitrária um k A ;

envia mensagem "i tem trabalho para compartilhar" para

k;

Page 23: Algoritmos Paralelos Probabilísticos para Busca em  Backtrack  e Heurística  Branch-and-Bound

Versão probabilística - complexidade Passo bom: mais de p/2

processadores executam uma unidade de trabalho

Número máximo de passos bons

6 log d n p

Page 24: Algoritmos Paralelos Probabilísticos para Busca em  Backtrack  e Heurística  Branch-and-Bound

Versão probabilística - complexidade Número máximo de passos ruins

Com probabilidade

nlog d h

p

2

1 dexp( n log )

4 p

Page 25: Algoritmos Paralelos Probabilísticos para Busca em  Backtrack  e Heurística  Branch-and-Bound

Determinístico vs. Probabilístico

Probabilístico• Dispensa controle global• Tem tempo de execução próximo ao

limite inferior• Tem como premissa tempo de

comunicação unitário entre quaisquer processadores

Page 26: Algoritmos Paralelos Probabilísticos para Busca em  Backtrack  e Heurística  Branch-and-Bound

Cluster de clusters

Oferece número significativamente maior de processadores

Apresenta ambiente “hostil” Fere premissa da comunicação em

tempo unitário Controle global é desejado ao permitir

tolerância à falha Determinístico é mais indicado

Page 27: Algoritmos Paralelos Probabilísticos para Busca em  Backtrack  e Heurística  Branch-and-Bound

Heurística branch-and-bound

Método mais utilizado na prática para solução de problemas de otimização combinatória

Branch – derivação de subproblemas Bound – limite inferior do custo da

solução ótima do problema A Se B é subproblema de A então

bound(A) <= bound(B)

Page 28: Algoritmos Paralelos Probabilísticos para Busca em  Backtrack  e Heurística  Branch-and-Bound

Heurística branch-and-bound

Nem todos os nós da árvore serão visitados

Subproblemas com bound maior que uma solução já encontrada podem ser descartados

Ordem de expansão dos nós pode ser alterada para best-first

A melhor solução será encontrada

Page 29: Algoritmos Paralelos Probabilísticos para Busca em  Backtrack  e Heurística  Branch-and-Bound

Branch-and-bound paralelo

F {r};

B ;

enquanto F faça

seleciona um conjunto de nós S F;

expande os nós em S;

F {F\S} (S);

B min({B} {c(v): v S e v é uma folha});

F {v F:c(v) B};

Page 30: Algoritmos Paralelos Probabilísticos para Busca em  Backtrack  e Heurística  Branch-and-Bound

Best-First global

A cada passo, expande os p nós mais promissores

Exige manutenção de fila de prioridade global

se F p então S=F;

senão S consiste dos p nós em F de menor custo

Page 31: Algoritmos Paralelos Probabilísticos para Busca em  Backtrack  e Heurística  Branch-and-Bound

Best-First local1

i

i

i

i

i i

/* Passo de Expansão de Nós */

F ={r};

para i = 2,3,...,p, F ;

para i = 1,2,...,p, B ;

enquanto algum F faça

para i = 1,2,...,p faça em paralelo

se F então

seja v o nó de menor custo em F ;

expande

i

i i i

i i

v ;

F F \{v };

se v é uma folha então Bi c(v );

Page 32: Algoritmos Paralelos Probabilísticos para Busca em  Backtrack  e Heurística  Branch-and-Bound

Best-First local

i

i

/* Passo de Chegada de M

senão

para cada filho w de v faça

dest(w) um elemento aleatório de {1,2,...,p};

envia w para dest(w);

senão

envia "uma folha de custo B " para um elemento aleatório de {1,2,...,p};

i i

i i

i

ensagens */;

para i = 1,2,...,p faça em paralelo

F F {w:dest(w)=i};

para i = 1,2,...,p faça em paralelo

B min(B {x:i recebeu uma mensagem "uma folha de custo x"});

para i = 1,2,...,p faça em paralelo

F

i i{v F :c(v) B };

Page 33: Algoritmos Paralelos Probabilísticos para Busca em  Backtrack  e Heurística  Branch-and-Bound

Best-First local - complexidade

nT(H,c) d h

p

H: instância do problema c: função bound utilizada d: constante Com grande probabilidade, a razão entre o tempo

de execução do Best-First local e o menor tempo possível para qualquer algoritmo em p processadores é constante

Page 34: Algoritmos Paralelos Probabilísticos para Busca em  Backtrack  e Heurística  Branch-and-Bound

BkFr – Backtracking Framework

Arcabouço para o desenvolvimento de aplicações paralelas de backtracking

Tolerante a falhas Apresenta controle hierárquico Permite a execução em múltiplos

clusters

Page 35: Algoritmos Paralelos Probabilísticos para Busca em  Backtrack  e Heurística  Branch-and-Bound

Resultados obtidos

1 proc 8 procs 16 procs

Soma de subconjuntos

5:28 0:56 0:42

SAT SBSAT 14:19 3:12 1:49

SAT zChaff 4:32 0:49 0:33

Page 36: Algoritmos Paralelos Probabilísticos para Busca em  Backtrack  e Heurística  Branch-and-Bound

Resultados obtidos

1 proc 16 procs 16+32 procs

Soma de subconjuntos

1:13:27 9:04 3:36

SAT SBSAT 1:07:13 7:14 5:06

SAT zChaff 50:59 4:13 2:35

Page 37: Algoritmos Paralelos Probabilísticos para Busca em  Backtrack  e Heurística  Branch-and-Bound

Perguntas?