Algoritmos Paralelos Probabilsticos para Busca em Backtrack e
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 § § 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 (Bk. Fr) for Single and Multiple Clusters – First Conference on Computing Frontiers, Abril de 2004.
Agenda § § § § Busca e Otimização Combinatória Uso de Computação Paralela Backtrack Determinístico vs. Probabilístico Uso de Clusters Heurística de Branch-and-Bound Backtracking Framework - Bk. Fr Resultados obtidos
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
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
Algoritmo genérico § § Instância A do problema é dada Executa uma das operações: • • Resolve A diretamente ou Deriva de A os subproblemas A 1, A 2, . . . , Ad de forma que o problema A possa ser resolvido a partir da solução dos subproblemas
Á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
Árvore de soluções A A 11 A 12 A 13 A 21 A 22 A 23
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
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
Complexidade A A 11 A 12 A 13 A 21 A 22 A 231 § Limite inferior: max{n/p, h}
Trivialmente paralelizável? P 1 § P 2 P 3 P 4 P 5 P 6 Processadores realizam a busca na árvore de soluções de forma independente – não exige comunicação
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
Backtrack paralelo – definições § Definições: • Nó de fronteira • • Fronteira local • • Nó que foi gerado mas não expandido 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
Backtrack paralelo – definições raiz interno fronteira fronteira
Backtrack paralelo – estados § Estados: • Processador ocioso o • Sua fronteira local está vazia Processador ocupado o Sua fronteira local não está vazia
Backtrack paralelo – passos § Passos: • Expansão de nó o • Pareamento o • Cada processador expande seu nó de fronteira mais à esquerda Alguns processadores ocupados são selecionados como doadores Doação o Cada processador selecionado envia metade de seus nós superiores a um processador ocioso
Backtrack paralelo – algoritmo
Backtrack paralelo – algoritmo
Versão determinística § Escolhe maior pareamento possível
Versão determinística complexidade § Número de passos • • h d n p é é a o o o altura da árvore grau da árvore número de nós número de processadores
Versão probabilística
Versão probabilística complexidade § § Passo bom: mais de p/2 processadores executam uma unidade de trabalho Número máximo de passos bons
Versão probabilística complexidade § Número máximo de passos ruins § Com probabilidade
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
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
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)
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
Branch-and-bound paralelo
Best-First global § § A cada passo, expande os p nós mais promissores Exige manutenção de fila de prioridade global
Best-First local
Best-First local
Best-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
Bk. Fr – 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
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 z. Chaff 4: 32 0: 49 0: 33
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 z. Chaff 50: 59 4: 13 2: 35
Perguntas?
- Slides: 37