Professional Documents
Culture Documents
I. I NTRODUO
A. 8-Puzzle
O jogo do 8-Puzzle um jogo de tabuleiro de blocos
deslizveis. O problema bastante abordado na disciplina
de Inteligncia Artifial, segundo [1], alm do seu apelo
intelectual inerente, os jogos de tabuleiro tem certas propriedades que os tornaram objetos de estudo ideal para trabalhos
inicias.
O objetivo do jogo mover as peas a partir de um estado
inicial at encontrar seu estado final, quando o Puzzle est
ordenado de forma crescente, como na Figura 1. As regras
do jogo so bastante simples, a pea vazia a nica que
pode movimentar-se, dependendo da situo pode haver de
dois a quatro movimentos possveis (cima, baixo, direita
e esquerda). Estes movimentos geram novos estados at
econtrar o estado final. O Puzzle possui um espao de
estados no valor de 9!. Segundo [2] a soluo tima para
este problema pertence a classe NP-Completo.
B. Busca em Espao de Estados
Existem diversas maneiras de solucion-lo, tais como
algoritmos de combinao, busca em largura, profundidade,
tcnicas de busca direcional, entre diversas outras. Uma
forma de solucionar o problema usando a teoria de busca
Figura 1.
Estados do Puzzle
Figura 2.
Grafo
C. Backtracking
Tambm conhecido como Tentativa e erro ou mesmo
regresso, caracteriza-se como um Paradigma de Projeto de
Algoritmos, que segundo [3] busca decompor o processo
em um nmero finito de sub-tarefas parciais que devem
ser exploradas exaustivamente. Pode ser visto como um
processo de pesquisa ou de tentativa que gradualmente
constri e percorre uma rvore de subtarefas. A busca
em profundidade recursiva apresenta estas caractersticas,
por isto servir como parmetro de comparao com os
Algoritmos Genticos.
uma soluo clssica para problemas de busca, como
o proposto neste artigo, o problema que quanto maior o
espao de busca, menor as chances de se encontrar uma
resposta em tempo de execuo.
Seleo: a partir do valor de avaliao de cada cromossomo podemos selecionar quais so mais aptos
para continuar na prxima gerao. Existem vrios
mtodos de seleo como: o Elitismo, que privilegia os
indivduos mais aptos e o da Roleta, onde os individuos
so sorteados para prxima gerao, a probabilidade de
escolha de um indivduo diretamente proporcional a
sua aptido.
Operadores Genticos: existem dois operadores genticos. Eles garantem que a nova gerao herde
caractersticas das geraes anteriores. O primeiro
chamado de crossover ou cruzamento, ele recombina as
caractersticas dos pais gerando dois novos filhos, como
visto na Figura 3. O outro operador o de mutao,
onde um ou mais genes de um individuo so alterados
aleatoriamente, garantindo que o espao de busca no
fixe num mximo ou mnimo local.
D. Algoritmos Genticos
Fundamentado principalmente pelo americano John Henry
Holland, os Algoritmos Genticos pertencem a classe dos
algoritmos bio-inspirados, ou seja, inspirados na natureza
eles imitam o comportamento evolutivo das espcies. O comportamento evolutivo foi definido por Darwin, que afirma
que em uma populao, os indivduos mais aptos sobrevivem
e passam sua caractersticas para seus descendentes.
Segundo [4], eles empregam uma estratgia de busca
paralela e estruturada, direcionada busca de pontos de
alta aptido, ou seja, pontos nos quais a funo a ser
minimizada ou maximizada tem valores relativamente baixos
ou altos. Algoritmos Genticos no so buscas aleatrias
no-direcionadas, pois exploram informaes histricas para
encontrar novos pontos de busca onde so esperados melhores desempenhos.
Para caracterizar os Algoritmos Genticos deve-se levar
em considerao:
Figura 3.
Operador de Crossover
II. J USTIFICATIVA
Os jogos de tabuleiros facilitam o aprendizado em Inteligncia Artificial, isso devido a suas regras bem estabelecidas
possibilitando melhor entendimendo do espao de busca se
compararmos com problemas mais complexos da vida real.
Sendo assim para o incio de uma pesquiva em Computao Evolutiva seria interessante desenvolver uma aplicao
envolvendo Algoritmos Genticos e comparar com algum
mtodo convencional, no caso o Backtracking. Segundo
[4], as tcnicas convencionais de busca possuem limitao
de sua natureza serial. Com a expanso do processamento
paralelo, tcnicas de otimizao paralelas sero largamente
beneficiadas, o que o caso dos Algoritmos Genticos.
III. O BJETIVO
O objetivo deste trabalho desenvolver dois algoritmos
que resolvam o problema do 8-Puzzle, um baseado no paradgma de Backtracking e outro em Computao Evolutiva,
especificamente Algoritimos Genticos. Fazer uma anlise
de complexidade entre os dois algoritmos e apresentar os
resultados.
V. M TODOS
Ambos os mtodos foram implementados na linguagem de
programao C++, no ambiente de desenvolvimento CodeBlocks 10.05.
A. Backtracking
Baseado nos conceitos de Tentativa e erro, foi implementado um algoritmo de busca em profundidade recursiva. A
busca acontece expandindo o grafo de espao de estados,
como visto na Figura 4, por meio dos possveis movimentos
do estado atual, gerando filhos a serem visitados.
Figura 4.
B USCA E M P ROFUNDIDADE(EstadoAtual)
1 if EstadoAtual = Objetivo
2
return SU CESSO
3 F echado[] := EstadoAtual
4 while F ilhos[EstadoAtual] <> 0
5
F ilho := P roximoF ilho
6
if F ilho <> F echado[]
7
BuscaEmP rof undidade(F ilho) = SU CESSO
8
return SU CESSO
9 Fim-While
10 return F ALHA
11 Fim-funo
Os Agoritmos Genticos podem apresentar solues prximas as solues timas, segundo [4], uma de suas vantagens que as tcnicas de busca convencionais iniciam
seu processamento em um nico candidato, por outro lado
as tcnicas de Computao Evolutiva operam sobre uma
populao de candidatos em paralelo, assim elas podem
fazer a busca em diferentes reas do espao de soluo,
alocando um nmero de membros apropriado para a busca
em vrias regies. O algoritmo expresso da seguinte forma,
onde t representa cada gerao:
A LGORITMO G ENETICO()
1 t=0
2 criar populao P (t);
3 for cada indiviudo i de P (t)
4
avaliar aptidao individuo(i)
5 Fim-para
6 while condio de parada no satisfeita
7
t := t + 1;
8
Selecionar populao P (t) de P (t 1);
9
Aplicar operadores de cruzamento sobre P (t);
10
Aplicar operadores de mutao sobre P (t);
11
Avaliar P (t);
12 Fim-enquanto
Inicialmente gerada uma populao formada por um
conjunto aleatrio de indivduos que podem ser vistos como
possvel soluo do problema. A Figura 5 demonstra a
populao inicial gerada com genes formados com valores
variando de 0 a 3, (0 - cima, 1 - baixo, 2 - esquerda e 3
- direita), referentes aos movimentos da posio vazia do
Figura 5.
Populao Inicial
Para anlise de complexidade do algoritmo de Backtracking baseado em busca em profundidade recursiva, devemos
levar em considerao dois termos: o nmero em mdia de
filhos gerados por cada n (B) e a profundidade mxima
do grafo de espao de estados (m). Por no precisar manter
todos os ns do grafo na memria, esta busca possui uma boa
complexidade de espao. Como exemplificado na Figura 6,
os ns brancos ainda no foram visitados, portanto no gastam espao na memria. Logo a funo de complexidade de
espao linear e pode ser definada como: f (n) = O(B m).
No 8-Puzzle, a profundidade do grafo de espao de estados
se refere ao nmero de movimentos.
Figura 6.
Busca em Profundidade
PCompR eprod
(1/k (CompEscolherI ndividuo + Compmod )
Onde L o nmero de vezes que a gerao executada, k
o nmero de operadores genticos existentes e/ou utilizados no problema. CompEscolherI ndividuo a complexidade
de escolher um indivduo e Compmod a complexidade dos
procedimentos de mutao e/ou crossover.
No algoritmo desenvolvido neste trabalho, a funo de
complexidade possui algumas particularidades devido a estrutura dos cdigos, por exemplo , em uma nica funo
foram feitas as operaes de seleo, mutao e crossover.
Como foi utilizado o algoritimo de Insero para ordenar os
indivduos, esta funo possui complexidade O(n2 ), onde
n o nmero de indivduos. Como esta complexidade
domina as outras assintoticamente, pode-se considerar a
complexidade de tempo e espao deste algoritmo como:
f = numger O(n2 ), onde n o nmero de indivduos.
VII. E XPERIMENTOS
Como os Algoritmos Genticos so algoritmos estocsticos, ou seja, so processos no determinsticos, com origem
em eventos aleatrios, por isso cada instncia foi testada 10
vezes tirando-se uma mdia das solues encontradas. Para
realizao dos experimentos foram testadas cinco instncias,
todas elas com 4000 geraes e 1000 indivduos ou cromossomos.
A Tabela I demonstra como os resultados encontrados
usando os Algoritmos Genticos so eficientes, comparandoos com Backtracking at mesmo a mdia dos resultados
alcanados mantm uma grande diferena entre os mtodos.
Figura 7.
Tabela I
A NLISE DOS MTODOS
Instncia
1
2
3
4
5
Backtracking
94
137
84
300
316
Nmero de Movimentos
Mdia(AG)
Melhor Resultado(AG)
46,7
37
45,8
38
35
25
41
33
31,1
21
Figura 8.
VIII. C ONCLUSES
Os resultados comprovam que comparado com o Backtracking, os Algoritmos Genticos possibilitam encontrar
solues muito mais interessantes. Os operadores genticos
garantem que a busca no se torne puramente aleatria
aproveitando os melhores indivduos de geraes anteriores.
Os algoritmos Genticos posuem uma enorme vantagem
se comparado a outros mtodos, pois realizam uma busca