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

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

igualmente boas para o <strong>problema</strong> ou quando é possível, <strong>de</strong> forma antecipada,<br />

obter indicações seguras <strong>de</strong> que uma direção candidata incorreta foi tomada.<br />

Em árvores <strong>de</strong> busca o conceito <strong>de</strong> profundida<strong>de</strong> é muito bem <strong>de</strong>finido e um<br />

algoritmo <strong>de</strong> busca em profundida<strong>de</strong> não tem dificulda<strong>de</strong> em i<strong>de</strong>ntificar que nó<br />

em OPEN é o <strong>de</strong> maior profundida<strong>de</strong>, pois o nó mais profundo é aquele mais<br />

recentemente gerado. Logo, se OPEN for estruturada como uma pilha, uma<br />

estratégia <strong>de</strong> busca em profundida<strong>de</strong> <strong>de</strong>ve colocar o último nó gerado no topo<br />

<strong>de</strong> OPEN e selecionar para expansão o nó do topo. Esta organizaço do tipo<br />

LIFO (“last in first out) garante que nenhum nó no nível d será expandido<br />

enquanto ainda existirem nós em níveis mais profundos que ainda estiverem<br />

em OPEN.<br />

É fácil antever que esta estratégia, quando aplicada a um grafo <strong>de</strong> gran<strong>de</strong>s<br />

dimensões e/ou infinito, po<strong>de</strong> ser perigosa. O algoritmo po<strong>de</strong> continuar a<br />

“<strong>de</strong>scer” in<strong>de</strong>finidamente, <strong>ao</strong> longo <strong>de</strong> um caminho infrutífero, sem ter um<br />

mecanismo para se recuperar <strong>de</strong> maus resultados, retornando a um ponto<br />

anterior e tentando um outro subconjunto candidato. Por estas razões, estes<br />

algoritmos são normalmente dotados <strong>de</strong> regras <strong>de</strong> parada baseadas na<br />

produndida<strong>de</strong>. Assim, o algoritmo po<strong>de</strong> retornar <strong>ao</strong> ponto imediatamente<br />

anterior e com profundida<strong>de</strong> menor que a estipulada quando:<br />

1. O limite <strong>de</strong> profundida<strong>de</strong> é excedido.<br />

2. Um nó é reconhecido como um caminho infrutífero.<br />

Esta última situação ocorre quando um nó falha no teste <strong>de</strong> alguma<br />

proprieda<strong>de</strong> que <strong>de</strong>ve ser verda<strong>de</strong>ira para algum nó no caminho <strong>de</strong> uma<br />

solução do <strong>problema</strong> em questão.<br />

Algoritmo Básico <strong>de</strong> Busca em Profundida<strong>de</strong><br />

1. Colocar a raiz da busca r em OPEN.<br />

2. Se OPEN é vazia, finalizar com erro; caso contrário,<br />

continuar.<br />

3. Remover o nó do topo <strong>de</strong> OPEN e colocá-lo em CLOSED. Chamar<br />

este nó <strong>de</strong> n .<br />

Apêndice B 189

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

Saved successfully!

Ooh no, something went wrong!