370 likes | 488 Views
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.
E N D
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 (BkFr) 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 Cluster de Clusters • Heurística de Branch-and-Bound • Backtracking Framework - BkFr • 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 A1, A2,...,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
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 • Limite inferior: max{n/p,h}
Trivialmente paralelizável? • 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 • 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
Backtrack paralelo – estados • Estados: • Processador ocioso • Sua fronteira local está vazia • Processador ocupado • Sua fronteira local não está vazia
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
Versão determinística • Escolhe maior pareamento possível
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
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
Best-First global • A cada passo, expande os p nós mais promissores • Exige manutenção de fila de prioridade global
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
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