História de Guerra - Cobertura do
Tabuleiro de Xadrez
Projeto e Análise de Algoritmos
Professora Dra. Diane Castonguay
André da Cunha Ribeiro – [email protected]
Geoflávia Guilarducci de Alvarenga – [email protected]
1
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
2
História de Guerra - Cobertura do
Tabuleiro de Xadrez - Parte I
Próximo
Rei
Voltar
4
Dama
Voltar
5
Cavalo
Voltar
6
Bispo
Voltar
7
Torre
Voltar
8
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
9
10
11
12
13
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

14
Busca exaustiva

Este problema parece bem maduro para
solução de pesquisa exaustiva de
combinação;

O algoritmo do backtracking (regressão)
15
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
16
Considerações

A história de guerra seria solucionável
usando a técnica Backtracking, dependendo
do tamanho do espaço de procura.
17
Podagem (Pruning)

BackTracking

Sua eficiência depende da sofisticação do
esquema de “poda” da árvore de soluções.
Como efetuar essa
podagem ?
18
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.
19
Podagem

Árvore pode ser “podada” através do uso de
heurísticas de acordo com a aplicação.

Há uma redução da complexidade de busca
de maneira significativa.
20
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.
21
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.
22
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.
23
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?
24
Cobertura do Tabuleiro de Xadrez
BackTracking
+
Podagem
=
Eliminação acima de 95% do espaço
de pesquisa.
25
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.
26
Cobertura do Tabuleiro de Xadrez

Dois tipos de ataques num quadrado:
ataque forte e ataque fraco.
27
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.
28
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.
29
Considerações Finais

Configuração gerada pelo algoritmo:
30
Outros problemas [2]

Percurso do Cavalo no Tabuleiro de Xadrez

Problema das 8 Rainhas

Problema do Casamento Estável
31
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.

32
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.
33
Dúvidas ?
34
Fim
Obrigado !
André da Cunha Ribeiro
Geoflávia Guilarducci de Alvarenga
35
Download

Cobertura do Tabuleiro de Xadrez