09.05.2013 Views

aplicação de buscas heurísticas ao problema de determinação de ...

aplicação de buscas heurísticas ao problema de determinação de ...

aplicação de buscas heurísticas ao problema de determinação de ...

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Figura 49 – Expansão dos nós para solução do Problema das 4 Rainhas<br />

através <strong>de</strong> uma Busca em Profundida<strong>de</strong><br />

Ao implementar estratégias <strong>de</strong> busca em profundida<strong>de</strong> em grafos <strong>de</strong>vemos<br />

tomar certas precauções. Estritamente falando, o conceito <strong>de</strong> profundida<strong>de</strong><br />

para um nó <strong>de</strong> um grafo é <strong>de</strong>finido recursivamente como sendo um mais a<br />

profundida<strong>de</strong> do ancestral <strong>de</strong> menor profundida<strong>de</strong>, sendo a profundida<strong>de</strong> da<br />

raiz da busca igual a zero. Assim, para que a busca possa realmente ser<br />

consi<strong>de</strong>rada em profundida<strong>de</strong>, o programa <strong>de</strong>ve inspecionar todos os<br />

ancestrais dos novos nós gerados, incluindo os ancestrais consi<strong>de</strong>rados<br />

como <strong>buscas</strong> infrutíferas e já eliminados da memória. Este passo envolve<br />

gran<strong>de</strong>s complicações e aumento dos requisitos <strong>de</strong> memória. Em função<br />

disso, quando aplicamos estratégias <strong>de</strong> busca em profundida<strong>de</strong> a grafos,<br />

sacrificamos a observação estrita dos preceitos <strong>de</strong> busca em profundida<strong>de</strong><br />

em favor <strong>de</strong> uma estratégia LIFO (“Last In First Out”), a qual é <strong>de</strong> manutenção<br />

bem mais simples. Neste caso, nenhum nó será expandido enquanto nós <strong>de</strong><br />

maior profundida<strong>de</strong> ainda estiverem na lista OPEN.<br />

“Backtracking” é uma versão do algoritmo <strong>de</strong> busca em profundida<strong>de</strong> que<br />

aplica a política LIFO à geração <strong>de</strong> nós <strong>ao</strong> invés <strong>de</strong> aplicá-la à expansão <strong>de</strong><br />

nós. Assim, quando um nó é selecionado para exploração, apenas um <strong>de</strong><br />

seus sucessores é gerado, sendo, por sua vez, selecionado para exploração,<br />

até que o processo pare por alguma das duas condições <strong>de</strong>scritas<br />

anteriormente.<br />

Apêndice B 192

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!