Title: Algoritmos Paralelos Probabil
1Algoritmos 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
2Referê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.
3Agenda
- 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
4Problemas 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
5Problema 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
6Algoritmo 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
7Á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
8Árvore de soluções
9Uso 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
10Backtrack
- 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
11Complexidade
12Trivialmente paralelizável?
- Processadores realizam a busca na árvore de
soluções de forma independente não exige
comunicação
13Qual 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
14Backtrack 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
15Backtrack paralelo definições
16Backtrack paralelo estados
- Estados
- Processador ocioso
- Sua fronteira local está vazia
- Processador ocupado
- Sua fronteira local não está vazia
17Backtrack 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
18Backtrack paralelo algoritmo
19Backtrack paralelo algoritmo
20Versão determinística
- Escolhe maior pareamento possível
21Versã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
22Versão probabilística
23Versão probabilística - complexidade
- Passo bom mais de p/2 processadores executam uma
unidade de trabalho - Número máximo de passos bons
24Versão probabilística - complexidade
- Número máximo de passos ruins
- Com probabilidade
25Determiní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
26Cluster 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
27Heurí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) lt bound(B)
28Heurí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
29Branch-and-bound paralelo
30Best-First global
- A cada passo, expande os p nós mais promissores
- Exige manutenção de fila de prioridade global
31Best-First local
32Best-First local
33Best-First local - complexidade
- 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
34BkFr 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
35Resultados obtidos
1 proc 8 procs 16 procs
Soma de subconjuntos 528 056 042
SAT SBSAT 1419 312 149
SAT zChaff 432 049 033
36Resultados obtidos
1 proc 16 procs 1632 procs
Soma de subconjuntos 11327 904 336
SAT SBSAT 10713 714 506
SAT zChaff 5059 413 235
37Perguntas?