Backtracking - PowerPoint PPT Presentation

About This Presentation
Title:

Backtracking

Description:

Title: HASHING Author: katia Last modified by: katia Created Date: 7/2/2002 4:24:39 PM Document presentation format: Apresenta o na tela Company – PowerPoint PPT presentation

Number of Views:110
Avg rating:3.0/5.0
Slides: 36
Provided by: kati1209
Category:

less

Transcript and Presenter's Notes

Title: Backtracking


1
Backtracking
  • Katia Guimarães

2
Backtracking
Técnica em procedimentos de busca que
corresponde ao retorno de uma exploração.
Ex (já visto) Busca-em-Profundidade Quando
chegamos a um nó v pela primeira vez, cada
aresta incidente a v é explorada e então o
controle volta (backtracks) ao nó a partir do
qual v foi alcançado.
3
Problema das Oito Rainhas
Colocar oito rainhas num tabuleiro de xadrez, de
forma que nenhuma delas fique atacada por outra.
Em outras palavras, escolher oito posições no
tabuleiro de forma que não haja duas delas
compartilhando a mesma linha, a mesma coluna
ou a mesma diagonal.
4
Algoritmo para O Problema das Oito Rainhas
1. Coloque uma rainha na posição mais à esquerda
da primeira linha.
2. Enquanto não houver oito rainhas no
tabuleiro faça Se na próxima linha
existir uma coluna que não está sob
ataque de uma rainha já no tabuleiro
então coloque uma rainha nesta posição
senão volte à linha anterior
/ backtrack /
mova a rainha o mínimo necessário
para a direita de forma
que ela
não fique sob ataque
5
Algoritmo para O Problema das Oito Rainhas
Q







6
Algoritmo para O Problema das Oito Rainhas
Q
Q






7
Algoritmo para O Problema das Oito Rainhas
Q
Q
Q





8
Algoritmo para O Problema das Oito Rainhas
Q
Q
Q
Q




9
Algoritmo para O Problema das Oito Rainhas
Q
Q
Q
Q
Q



10
Algoritmo para O Problema das Oito Rainhas
Q
Q
Q
Q
Q



11
Algoritmo para O Problema das Oito Rainhas
Q
Q
Q
Q




Q
12
Algoritmo para O Problema das Oito Rainhas
Q
Q
Q
Q
Q




13
Algoritmo para O Problema das Oito Rainhas
Q
Q
Q
Q





14
Algoritmo para O Problema das Oito Rainhas
Q
Q
Q
Q
Q




15
Algoritmo para O Problema das Oito Rainhas
Q
Q
Q
Q
Q
Q



16
Algoritmo para O Problema das Oito Rainhas
Q
Q
Q
Q
Q
Q
Q


17
Algoritmo para O Problema das Oito Rainhas
Q
Q
Q
Q
Q
Q
Q


18
Algoritmo para O Problema das Oito Rainhas
Q
Q
Q
Q
Q
Q



19
Algoritmo para O Problema das Oito Rainhas
Q
Q
Q
Q
Q
Q



20
Algoritmo para O Problema das Oito Rainhas
Q
Q
Q
Q
Q




21
Algoritmo para O Problema das Oito Rainhas
Q
Q
Q
Q
Q




22
Algoritmo para O Problema das Oito Rainhas
Q
Q
Q
Q
Q




23
Algoritmo para O Problema das Oito Rainhas
Q
Q
Q
Q
Q




24
Algoritmo para O Problema das Oito Rainhas
Q
Q
Q
Q
Q




25
Algoritmo para O Problema das Oito Rainhas
Q
Q
Q
Q





26
Algoritmo para O Problema das Oito Rainhas
Q
Q
Q






27
Algoritmo para O Problema das Oito Rainhas
Q
Q
Q
Q





28
Algoritmo para O Problema das Oito Rainhas
Q
Q
Q
Q





29
Algoritmo para O Problema das Oito Rainhas
início
(1,1)
(2,3)
(3,5)
(4,2)
(4,7)
(5,4)
(5,8)
(5,2)
(5,4)
(6,4)

(7,6)
30
Problema da 3-Coloração
Dado um grafo G(V, E), encontrar uma
3-coloração de G, ou seja, definir uma função
cor V ? 1, 2, 3 de forma que Se (u,v)
é uma aresta em E então cor (u) ? cor (v).
Ex

31
Algoritmo para 3-Coloração
Para v ? 1 até n faça cor
(v) ? 0 cor (1) ? 1 Se
(3-Colorir (1)) então
imprima cor senão imprima Impossível
3-colorir
32
Algoritmo para 3-Coloração
Procedimento 3-Colorir (v) Se v n
então retorne (suc) Tome o vértice z ?
v 1 Se z não tem vizinhos w com cor (w)
1 então cor (z) ? 1
se (3-Colorir (z)) retorne
(suc) Se z não tem vizinhos w com cor
(w) 2 então cor (z) ? 2
se (3-Colorir (z))
retorne (suc) Se z não tem vizinhos w
com cor (w) 3 então cor (z) ?
3 se (3-Colorir
(z)) retorne (suc) cor (z) ? 0 retorne
(fail) / backtrack /
33
O Problema da 3-Coloração
1
3
2
?
6
7
4
5

34
O Problema da 3-Coloração

35
Branch-and-Bound
Uma outra técnica muito usada que está
relacionada com Backtracking é a técnica chamada
Branch-and-Bound. Branch-and-Bound é uma técnica
de exploração mais sofisticada, que procura
explorar opções (branch), mas colocando um
limite quantitativo (bound), com o objetivo de
evitar buscas em espaços menos promissores.
Ex Análise das possíveis seqüências de lances
na implementação de um jogo,
explorando os lances que parecem
melhores, uma vez que o número total
de possibilidades é muito grande.
Write a Comment
User Comments (0)
About PowerShow.com