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.

B.3 O Problema das 8 Rainhas<br />

Para facilitar o entendimento <strong>de</strong> conceitos básicos sobre <strong>buscas</strong> <strong>heurísticas</strong>,<br />

apresentaremos inicialmente o Problema das 8 Rainhas. Mais adiante<br />

recorreremos a uma variante <strong>de</strong>ste <strong>problema</strong> que utiliza apenas 4 rainhas e<br />

<strong>ao</strong> conhecido <strong>problema</strong> do caixeiro viajante para a apresentação <strong>de</strong> conceitos<br />

tais como espaço <strong>de</strong> estados e função <strong>de</strong> avaliação.<br />

O Problema das 8 Rainhas consiste em dispor oito rainhas sobre um tabuleiro<br />

<strong>de</strong> xadrez <strong>de</strong> forma que nenhuma <strong>de</strong>las tenha condição <strong>de</strong> atacar qualquer<br />

das outras. Isto significa dizer que nenhuma linha, coluna ou diagonal do<br />

tabuleiro <strong>de</strong>ve conter mais do que uma rainha. O <strong>problema</strong> po<strong>de</strong> ser resolvido<br />

<strong>de</strong> inúmeras maneiras. A mais simples, e por isso mesmo a <strong>de</strong> mais difícil<br />

implementação em termos computacionais, é iniciar um processo <strong>de</strong> tentativa<br />

e erro. Outra, um pouco mais inteligente, é tentar alcançar a solução <strong>de</strong> forma<br />

incremental, <strong>ao</strong> invés <strong>de</strong> tentar obtê-la em um único passo. Po<strong>de</strong>ríamos, por<br />

exemplo, dispor as rainhas <strong>de</strong> forma arbitrária sobre o tabuleiro<br />

e, iterativamente, tentar transformar o arranjo inicial em um que reúna as<br />

condições estabelecidas no <strong>problema</strong> (não mais que uma rainha em cada<br />

linha, coluna ou diagonal do tabuleiro). No entanto, para alcançar o objetivo<br />

final a partir <strong>de</strong> uma situação inicial qualquer, <strong>de</strong>vemos nos certificar <strong>de</strong> que a<br />

sequência <strong>de</strong> transformações aplicada sobre o arranjo <strong>de</strong> rainhas não seja<br />

aleatória, mas sistemática, para que não venhamos a gerar a mesma<br />

configuração repetidamente. Se não tomarmos este cuidado, corremos o risco<br />

<strong>de</strong> per<strong>de</strong>r a oportunida<strong>de</strong> <strong>de</strong> gerar o arranjo <strong>de</strong>sejado.<br />

Uma forma <strong>de</strong> sistematizar a busca pelo arranjo que soluciona o <strong>problema</strong> é<br />

tentar construir o arranjo solução, <strong>ao</strong> invés <strong>de</strong> tentar obtê-lo a partir <strong>de</strong> um<br />

arranjo inicial arbitrário. Assim, começando com o tabuleiro vazio, <strong>de</strong>vemos<br />

posicionar as rainhas, uma após a outra, sempre observando a preservação<br />

das restrições do <strong>problema</strong> a cada nova rainha adicionada <strong>ao</strong> tabuleiro, até<br />

que o arranjo solução, se existir, seja atingido. Caso não exista, esta<br />

conclusão <strong>de</strong>ve ser inequívoca, caracterizando o <strong>problema</strong> como insolúvel.<br />

É necessário, a partir <strong>de</strong>ste ponto, i<strong>de</strong>ntificar claramente os aspectos que<br />

<strong>de</strong>verão ser explorados, seja qual for o tipo <strong>de</strong> <strong>problema</strong> para o qual estamos<br />

buscando <strong>heurísticas</strong> que nos auxiliem em sua solução. Por<br />

Apêndice B 177

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

Saved successfully!

Ooh no, something went wrong!