Estou procurando um algoritmo eficiente que me permita processar a árvore de pesquisa minimax para xadrez com poda alfa-beta em uma arquitetura distribuída. Os algoritmos que encontrei (PVS, YBWC, DTS, veja abaixo) são todos bastante antigos (1990 é o mais recente). Suponho que houve muitos avanços substanciais desde então. Qual é o padrão atual nesse campo?
Além disso, por favor, aponte-me para a explicação de DTS feita por um idiota, pois não consigo entendê-la nos trabalhos de pesquisa que li.
Os algoritmos mencionados acima:
- PVS: Divisão de variação de princípio
- YBWC: Jovens irmãos esperam conceito
- DTS: Divisão Dinâmica de Árvores
são todos discutidos aqui .
Respostas:
Sim, a teoria avançou significativamente e de certa forma devido à literatura de análise de xadrez e às técnicas gerais de programação paralela. aqui estão algumas referências mais recentes sobre a poda alfa (xadrez) sobre clusters / paralelismo distribuído. também algumas das primeiras literaturas de xadrez de computação distribuída são anteriores a muitos padrões básicos de design paralelo e podem ser conceituadas nessa estrutura.
Algoritmo alfa-beta paralelo na GPU / Strnad, Guid (2011)
Pesquisa alfa-beta paralela em multiprocessadores de memória compartilhada / Manohararajah (2001) 98pp!
Paralelamente a um programa simples de xadrez / Greskamp, 2003
Poda alfa-beta paralela de árvores de decisão de jogo: uma implementação de xadrez / Steele 1999
É possível executar uma pesquisa Minimax com a poda alfa-beta em paralelo com o OpenMP? (stackoverflow)
O algoritmo DTS de pesquisa em árvore paralela de alto desempenho (Hyatt 1994)
a idéia básica por trás do DTS é que as árvores de pesquisa são distribuídas entre os nós computacionais com base na complexidade do movimento / layout. processadores não utilizados que "terminam cedo" podem fazer um trabalho adicional além de uma alocação inicial, que pode ser distribuída o mais uniformemente possível inicialmente, mas acabará sendo desigual. portanto, é basicamente um tipo de fila de "balanceamento de carga" e "produtor / consumidor" , ou também semelhante à programação de tarefas.
fonte