algoritmos paralelos probabilísticos para busca em backtrack e heurística branch-and-bound
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 PresentationTRANSCRIPT
![Page 1: Algoritmos Paralelos Probabilísticos para Busca em Backtrack e Heurística Branch-and-Bound](https://reader035.vdocuments.mx/reader035/viewer/2022062323/56815173550346895dbfa9e9/html5/thumbnails/1.jpg)
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](https://reader035.vdocuments.mx/reader035/viewer/2022062323/56815173550346895dbfa9e9/html5/thumbnails/2.jpg)
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](https://reader035.vdocuments.mx/reader035/viewer/2022062323/56815173550346895dbfa9e9/html5/thumbnails/3.jpg)
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](https://reader035.vdocuments.mx/reader035/viewer/2022062323/56815173550346895dbfa9e9/html5/thumbnails/4.jpg)
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](https://reader035.vdocuments.mx/reader035/viewer/2022062323/56815173550346895dbfa9e9/html5/thumbnails/5.jpg)
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](https://reader035.vdocuments.mx/reader035/viewer/2022062323/56815173550346895dbfa9e9/html5/thumbnails/6.jpg)
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](https://reader035.vdocuments.mx/reader035/viewer/2022062323/56815173550346895dbfa9e9/html5/thumbnails/7.jpg)
Á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](https://reader035.vdocuments.mx/reader035/viewer/2022062323/56815173550346895dbfa9e9/html5/thumbnails/8.jpg)
Á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](https://reader035.vdocuments.mx/reader035/viewer/2022062323/56815173550346895dbfa9e9/html5/thumbnails/9.jpg)
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](https://reader035.vdocuments.mx/reader035/viewer/2022062323/56815173550346895dbfa9e9/html5/thumbnails/10.jpg)
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](https://reader035.vdocuments.mx/reader035/viewer/2022062323/56815173550346895dbfa9e9/html5/thumbnails/11.jpg)
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](https://reader035.vdocuments.mx/reader035/viewer/2022062323/56815173550346895dbfa9e9/html5/thumbnails/12.jpg)
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](https://reader035.vdocuments.mx/reader035/viewer/2022062323/56815173550346895dbfa9e9/html5/thumbnails/13.jpg)
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](https://reader035.vdocuments.mx/reader035/viewer/2022062323/56815173550346895dbfa9e9/html5/thumbnails/14.jpg)
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](https://reader035.vdocuments.mx/reader035/viewer/2022062323/56815173550346895dbfa9e9/html5/thumbnails/15.jpg)
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](https://reader035.vdocuments.mx/reader035/viewer/2022062323/56815173550346895dbfa9e9/html5/thumbnails/16.jpg)
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](https://reader035.vdocuments.mx/reader035/viewer/2022062323/56815173550346895dbfa9e9/html5/thumbnails/17.jpg)
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](https://reader035.vdocuments.mx/reader035/viewer/2022062323/56815173550346895dbfa9e9/html5/thumbnails/18.jpg)
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](https://reader035.vdocuments.mx/reader035/viewer/2022062323/56815173550346895dbfa9e9/html5/thumbnails/19.jpg)
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](https://reader035.vdocuments.mx/reader035/viewer/2022062323/56815173550346895dbfa9e9/html5/thumbnails/20.jpg)
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](https://reader035.vdocuments.mx/reader035/viewer/2022062323/56815173550346895dbfa9e9/html5/thumbnails/21.jpg)
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](https://reader035.vdocuments.mx/reader035/viewer/2022062323/56815173550346895dbfa9e9/html5/thumbnails/22.jpg)
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](https://reader035.vdocuments.mx/reader035/viewer/2022062323/56815173550346895dbfa9e9/html5/thumbnails/23.jpg)
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](https://reader035.vdocuments.mx/reader035/viewer/2022062323/56815173550346895dbfa9e9/html5/thumbnails/24.jpg)
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](https://reader035.vdocuments.mx/reader035/viewer/2022062323/56815173550346895dbfa9e9/html5/thumbnails/25.jpg)
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](https://reader035.vdocuments.mx/reader035/viewer/2022062323/56815173550346895dbfa9e9/html5/thumbnails/26.jpg)
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](https://reader035.vdocuments.mx/reader035/viewer/2022062323/56815173550346895dbfa9e9/html5/thumbnails/27.jpg)
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](https://reader035.vdocuments.mx/reader035/viewer/2022062323/56815173550346895dbfa9e9/html5/thumbnails/28.jpg)
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](https://reader035.vdocuments.mx/reader035/viewer/2022062323/56815173550346895dbfa9e9/html5/thumbnails/29.jpg)
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](https://reader035.vdocuments.mx/reader035/viewer/2022062323/56815173550346895dbfa9e9/html5/thumbnails/30.jpg)
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](https://reader035.vdocuments.mx/reader035/viewer/2022062323/56815173550346895dbfa9e9/html5/thumbnails/31.jpg)
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](https://reader035.vdocuments.mx/reader035/viewer/2022062323/56815173550346895dbfa9e9/html5/thumbnails/32.jpg)
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](https://reader035.vdocuments.mx/reader035/viewer/2022062323/56815173550346895dbfa9e9/html5/thumbnails/33.jpg)
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](https://reader035.vdocuments.mx/reader035/viewer/2022062323/56815173550346895dbfa9e9/html5/thumbnails/34.jpg)
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](https://reader035.vdocuments.mx/reader035/viewer/2022062323/56815173550346895dbfa9e9/html5/thumbnails/35.jpg)
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](https://reader035.vdocuments.mx/reader035/viewer/2022062323/56815173550346895dbfa9e9/html5/thumbnails/36.jpg)
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](https://reader035.vdocuments.mx/reader035/viewer/2022062323/56815173550346895dbfa9e9/html5/thumbnails/37.jpg)
Perguntas?