350 likes | 462 Views
História de Guerra - Cobertura do Tabuleiro de Xadrez. Projeto e Análise de Algoritmos. Professora Dra. Diane Castonguay André da Cunha Ribeiro – andre@cefetrv.edu.br Geoflávia Guilarducci de Alvarenga – geoflavia@inf.ufg.br. Tópicos. O jogo de Xadrez Idéias Centrais
E N D
História de Guerra - Cobertura do Tabuleiro de Xadrez Projeto e Análise de Algoritmos Professora Dra. Diane Castonguay André da Cunha Ribeiro – andre@cefetrv.edu.br Geoflávia Guilarducci de Alvarenga – geoflavia@inf.ufg.br
Tópicos • O jogo de Xadrez • Idéias Centrais • Problema da cobertura do tabuleiro de xadrez • O algoritmo do backtracking • Técnica de Podagem (Pruning) • Podagem aplicada à História de Guerra • Considerações Finais • Lição Aprendida
História de Guerra - Cobertura do Tabuleiro de Xadrez - Parte I Próximo
Rei Voltar
Dama Voltar
Cavalo Voltar
Bispo Voltar
Torre Voltar
Idéias Centrais – História de Guerra • O jogo de xadrez inspirou vários problemas de combinação • Em 1848, Kling propôs a seguinte questão: • Se todos os 64 quadrados do tabuleiro podem ser fortemente ameaçados simultaneamente por um arranjo das 8 peças principais no tabuleiro de xadrez • Configurações que simultaneamente ameaçam 63 quadrados foram conhecidas por muitos anos
Vejamos algumas considerações • Considere as 8 peças principais do xadrez • Quantos modos as peças podem ser posicionadas no tabuleiro de xadrez? • O número de posições aproximado é de 1015
Busca exaustiva • Este problema parece bem maduro para solução de pesquisa exaustiva de combinação; • O algoritmo do backtracking (regressão)
Backtrack(A) Calcule S1, conjunto dos primeiros elementos candidatos da solução A. k = 1 enquanto k > 0 faça enquanto Sk <> 0 faça (*avanço*) ak = próximo elemento de sk sk = sk - ak se A = (a1, a2, a3, …, an) é uma solução, imprima isso. k = k + 1 fim enquanto k = k - 1 (*backtrack*) fim enquanto
Considerações • A história de guerra seria solucionável usando a técnica Backtracking, dependendo do tamanho do espaço de procura.
Podagem (Pruning) • BackTracking • Sua eficiência depende da sofisticação do esquema de “poda” da árvore de soluções. Como efetuar essa podagem ?
Podagem (Pruning) • Técnica de eliminação de busca que atua no momento que estabelecemos que tal solução parcial não pode ser estendida na solução que nós almejamos.
Podagem • Árvore pode ser “podada” através do uso deheurísticas de acordo com a aplicação. • Há uma redução da complexidade de busca de maneira significativa.
Podagem aplicada à História de Guerra • BackTracking => gera uma combinação exaustiva de posições. Mas algumas poderiam ter sido podadas. • Quais são as posições candidatas a serem podadas? • São aquelas que não oferecem ameaça para uma dada peça.
Podagem aplicada à História de Guerra • Exemplos: • 1. Remoção de simetrias • Considerando as simetrias ortogonais e diagonais, haverá somente 10 posições diferentes para a Rainha.
Podagem aplicada à História de Guerra • Exemplos: (cont.) • 1. Remoção de simetrias(cont.) • Uma vez que a Rainha é colocada, há 2080 modos diferentes para posicionar um par de Torres ou Cavalos. • 64 lugares para localizar o Rei. • 32 lugares para cada um dos Bispos.
Podagem aplicada à História de Guerra • Exemplos: (cont.) • 2. Sp que já tivéssemos colocado 7 peças no tabuleiro, e juntas elas cobririam todos menos 10 quadrados no tabuleiro; e a peça restante fosse o Rei. • Existe alguma posição possível para colocar o Rei de forma que todos os quadrados são ameaçados?
Cobertura do Tabuleiro de Xadrez BackTracking + Podagem = Eliminação acima de 95% do espaço de pesquisa.
Cobertura do Tabuleiro de Xadrez • Considerações usadas na solução: • Os tabuleiros de xadrez podem ter qualquer número de peças, e mais de uma peça num quadrado.
Cobertura do Tabuleiro de Xadrez • Dois tipos de ataques num quadrado: ataque forte e ataque fraco.
Cobertura do Tabuleiro de Xadrez • Passos principais do algoritmo: • Listar todas as configurações dos tabuleiros nas quais todo quadrado é fracamento atacado. • Filtrar a lista considerando bloqueios e tabuleiros com n ou pouco menos quadrados seguros.
Considerações Finais • Sobre o algoritmo: • Não encontrou uma configuração que cobrisse todos os 64 quadrados, porém, mostrou que é possível cobrir um tabuleiro com 7 peças se a Rainha e um Cavalo possam ocupar o mesmo quadrado.
Considerações Finais • Configuração gerada pelo algoritmo:
Outros problemas [2] • Percurso do Cavalo no Tabuleiro de Xadrez • Problema das 8 Rainhas • Problema do Casamento Estável
Lição Aprendida • Uma ou mais estratégias de podagem usadas de maneira inteligente podem otimizar o trabalho de problemas de busca ou de pesquisa combinatória de maneira surpreendente.
Referências Bibliográficas [01] http://www2.toki.or.id/book/AlgDesignManual/BOOK/BOOK/NODE$.htm [02] Wirth, Niklaus. Algoritmos e Estruturas de Dados. Editora LTC, 1989.
Fim Obrigado ! André da Cunha Ribeiro Geoflávia Guilarducci de Alvarenga