estudo comparativo entre algoritmo a* e...

28
ESTUDO COMPARATIVO ENTRE ALGORITMO A* E ESTUDO COMPARATIVO ENTRE ALGORITMO A* E BUSCA EM LARGURA PARA PLANEJAMENTO DE BUSCA EM LARGURA PARA PLANEJAMENTO DE PERSONAGENS EM JOGOS DO TIPO PACMAN PERSONAGENS EM JOGOS DO TIPO PACMAN Acadêmica: Acadêmica: Jeanita Jeanita Bassani Bassani da Silva da Silva Orientador: Prof. Paulo C Orientador: Prof. Paulo C é é sar sar Rodacki Rodacki Gomes Gomes

Upload: lekhue

Post on 21-May-2018

220 views

Category:

Documents


3 download

TRANSCRIPT

Page 1: ESTUDO COMPARATIVO ENTRE ALGORITMO A* E …dsc.inf.furb.br/arquivos/tccs/apresentacoes/2005-1jeanitabassanida... · estudo comparativo entre algoritmo a* e busca em largura para planejamento

ESTUDO COMPARATIVO ENTRE ALGORITMO A* E ESTUDO COMPARATIVO ENTRE ALGORITMO A* E BUSCA EM LARGURA PARA PLANEJAMENTO DE BUSCA EM LARGURA PARA PLANEJAMENTO DE

PERSONAGENS EM JOGOS DO TIPO PACMANPERSONAGENS EM JOGOS DO TIPO PACMAN

Acadêmica: Acadêmica: JeanitaJeanita BassaniBassani da Silvada Silva

Orientador: Prof. Paulo COrientador: Prof. Paulo Céésar sar RodackiRodacki GomesGomes

Page 2: ESTUDO COMPARATIVO ENTRE ALGORITMO A* E …dsc.inf.furb.br/arquivos/tccs/apresentacoes/2005-1jeanitabassanida... · estudo comparativo entre algoritmo a* e busca em largura para planejamento

ROTEIRO DA APRESENTAROTEIRO DA APRESENTAÇÇÃOÃO

�� IntroduIntroduçção;ão;�� Objetivos;Objetivos;�� Revisão bibliogrRevisão bibliográáfica;fica;�� Desenvolvimento do protDesenvolvimento do protóótipo do tipo do

jogo;jogo;�� ImplementaImplementaçção;ão;�� Resultados;Resultados;�� Conclusão;Conclusão;�� Trabalhos futuros.Trabalhos futuros.

Page 3: ESTUDO COMPARATIVO ENTRE ALGORITMO A* E …dsc.inf.furb.br/arquivos/tccs/apresentacoes/2005-1jeanitabassanida... · estudo comparativo entre algoritmo a* e busca em largura para planejamento

INTRODUINTRODUÇÇÃOÃO

�� O jogo O jogo PacManPacMan;;

�� Planejamento de caminho de personagens;Planejamento de caminho de personagens;

�� Caminho mCaminho míínimo;nimo;

�� MMéétodos de busca.todos de busca.

Page 4: ESTUDO COMPARATIVO ENTRE ALGORITMO A* E …dsc.inf.furb.br/arquivos/tccs/apresentacoes/2005-1jeanitabassanida... · estudo comparativo entre algoritmo a* e busca em largura para planejamento

O Jogo O Jogo PacManPacMan

Page 5: ESTUDO COMPARATIVO ENTRE ALGORITMO A* E …dsc.inf.furb.br/arquivos/tccs/apresentacoes/2005-1jeanitabassanida... · estudo comparativo entre algoritmo a* e busca em largura para planejamento

OBJETIVOSOBJETIVOS

�� Estudo comparativo entre algoritmos de busca Estudo comparativo entre algoritmos de busca em largura, busca em profundidade e algoritmo em largura, busca em profundidade e algoritmo A*;A*;

�� Desenvolver protDesenvolver protóótipo de jogo tipo de jogo PacManPacMan::�� Busca em largura;Busca em largura;

�� Busca em profundidade;Busca em profundidade;

�� Busca heurBusca heuríística (A*).stica (A*).

�� ComparaComparaçção de resultadosão de resultados dos algoritmos dos algoritmos implementados.implementados.

Page 6: ESTUDO COMPARATIVO ENTRE ALGORITMO A* E …dsc.inf.furb.br/arquivos/tccs/apresentacoes/2005-1jeanitabassanida... · estudo comparativo entre algoritmo a* e busca em largura para planejamento

Jogos por computadorJogos por computador

�� DefiniDefiniçção de um jogo;ão de um jogo;

�� Roteiro de um jogo:Roteiro de um jogo:�� Sinopse Sinopse –– trama do jogo;trama do jogo;�� Personagem Personagem –– descridescriçção, caracterão, caracteríísticas;sticas;�� CenCenáário rio –– local flocal fíísico, onde ocorre;sico, onde ocorre;�� ComentComentáários finais rios finais –– observaobservaçções, sugestões.ões, sugestões.

�� Tipos de jogosTipos de jogos�� ArcadesArcades –– interface e o jogo simples;interface e o jogo simples;�� Aventura baseado em texto;Aventura baseado em texto;�� Aventura grAventura grááficos ficos –– ““Uma figura vale mais que mil palavrasUma figura vale mais que mil palavras””;;�� EstratEstratéégia e de guerra gia e de guerra –– objetivo de controlar grandes grupos objetivo de controlar grandes grupos

de unidades para atingir uma meta.de unidades para atingir uma meta.

Page 7: ESTUDO COMPARATIVO ENTRE ALGORITMO A* E …dsc.inf.furb.br/arquivos/tccs/apresentacoes/2005-1jeanitabassanida... · estudo comparativo entre algoritmo a* e busca em largura para planejamento

Exemplos de jogosExemplos de jogos

Civilization III – Estratégia e de guerra

Escape from Monkey Island - Aventura gráfico

Page 8: ESTUDO COMPARATIVO ENTRE ALGORITMO A* E …dsc.inf.furb.br/arquivos/tccs/apresentacoes/2005-1jeanitabassanida... · estudo comparativo entre algoritmo a* e busca em largura para planejamento

Problema de caminho mProblema de caminho míínimonimo

�� Algoritmos de grafos;Algoritmos de grafos;

�� Grafo G = (V, E);Grafo G = (V, E);

�� Lista de adjacência.Lista de adjacência.

a) Grafo não orientado com 8 vérticesb) Grafo representado como uma lista de adjacência

Page 9: ESTUDO COMPARATIVO ENTRE ALGORITMO A* E …dsc.inf.furb.br/arquivos/tccs/apresentacoes/2005-1jeanitabassanida... · estudo comparativo entre algoritmo a* e busca em largura para planejamento

BUSCA EM GRAFOSBUSCA EM GRAFOS

�� Localizar um vLocalizar um véértice dentro de um grafo;rtice dentro de um grafo;

�� ““EExploramxploram”” a estrutura do grafoa estrutura do grafo;;

�� Servem de base para outros algoritmos Servem de base para outros algoritmos em grafos;em grafos;

�� MMéétodos mais comuns:todos mais comuns:�� Busca em largura;Busca em largura;

�� Busca em profundidade.Busca em profundidade.

Page 10: ESTUDO COMPARATIVO ENTRE ALGORITMO A* E …dsc.inf.furb.br/arquivos/tccs/apresentacoes/2005-1jeanitabassanida... · estudo comparativo entre algoritmo a* e busca em largura para planejamento

Busca em profundidadeBusca em profundidade

�� Pilha de vPilha de véértices;rtices;�� ÁÁrvore de busca;rvore de busca;�� DDáá preferência aos vpreferência aos véértices que estão rtices que estão

mais distantes da mais distantes da áárvore de busca.rvore de busca.

Árvore que a busca em profundidade gerou

Page 11: ESTUDO COMPARATIVO ENTRE ALGORITMO A* E …dsc.inf.furb.br/arquivos/tccs/apresentacoes/2005-1jeanitabassanida... · estudo comparativo entre algoritmo a* e busca em largura para planejamento

Busca em larguraBusca em largura

�� Fila de vFila de véértices;rtices;

�� Percorre caminhos mPercorre caminhos míínimos (em quantidade de nimos (em quantidade de arestas percorridas);arestas percorridas);

�� Esta busca examina todos os vEsta busca examina todos os véértices de certo rtices de certo nníível do grafo antes dos vvel do grafo antes dos véértices do nrtices do níível abaixo;vel abaixo;

Árvore que a busca em largura gerou

Page 12: ESTUDO COMPARATIVO ENTRE ALGORITMO A* E …dsc.inf.furb.br/arquivos/tccs/apresentacoes/2005-1jeanitabassanida... · estudo comparativo entre algoritmo a* e busca em largura para planejamento

BUSCA HEURBUSCA HEURÍÍSTICASTICA

�� Conhecimento especConhecimento especíífico do problema;fico do problema;

�� O algoritmo A*;O algoritmo A*;

�� A* adaptado;A* adaptado;

�� Busca em profundidade adaptado.Busca em profundidade adaptado.

Page 13: ESTUDO COMPARATIVO ENTRE ALGORITMO A* E …dsc.inf.furb.br/arquivos/tccs/apresentacoes/2005-1jeanitabassanida... · estudo comparativo entre algoritmo a* e busca em largura para planejamento

O algoritmo A*O algoritmo A*

�� Caminho entre dois vCaminho entre dois véértices em um grafo;rtices em um grafo;

�� Marca as posiMarca as posiçções exploradas;ões exploradas;

�� Atributos F, G e H:Atributos F, G e H:�� G G -- éé o custo para chegar ato custo para chegar atéé o vo véértice rtice

desejadodesejado;;

�� H H –– éé um valor estimado;um valor estimado;

�� F F –– éé a soma de G + H.a soma de G + H.

�� MantMantéém duas listas de vm duas listas de véértices.rtices.

Page 14: ESTUDO COMPARATIVO ENTRE ALGORITMO A* E …dsc.inf.furb.br/arquivos/tccs/apresentacoes/2005-1jeanitabassanida... · estudo comparativo entre algoritmo a* e busca em largura para planejamento

A* adaptadoA* adaptado

�� Derivado do A*;Derivado do A*;

�� NNúúmero limitado de vmero limitado de véértices da lista de abertos;rtices da lista de abertos;

�� AperfeiAperfeiççoa em velocidade;oa em velocidade;

�� PorPoréém nem sempre encontra o menor caminho.m nem sempre encontra o menor caminho.

Page 15: ESTUDO COMPARATIVO ENTRE ALGORITMO A* E …dsc.inf.furb.br/arquivos/tccs/apresentacoes/2005-1jeanitabassanida... · estudo comparativo entre algoritmo a* e busca em largura para planejamento

Busca em profundidade adaptadoBusca em profundidade adaptado

�� Mescla o busca em profundidade com o A*;Mescla o busca em profundidade com o A*;

�� Testa os vTesta os véértices na ordem de menor custo.rtices na ordem de menor custo.

Page 16: ESTUDO COMPARATIVO ENTRE ALGORITMO A* E …dsc.inf.furb.br/arquivos/tccs/apresentacoes/2005-1jeanitabassanida... · estudo comparativo entre algoritmo a* e busca em largura para planejamento

DESENVOLVIMENTO DO PROTDESENVOLVIMENTO DO PROTÓÓTIPO TIPO DO JOGODO JOGO

�� Requisitos funcionais:Requisitos funcionais:�� RF RF –– Selecionar o modo de debug;Selecionar o modo de debug;

�� RF RF –– Selecionar uma busca: busca em largura, busca Selecionar uma busca: busca em largura, busca em profundidade, busca em profundidade adaptada, em profundidade, busca em profundidade adaptada, A* e o A* adaptado;A* e o A* adaptado;

�� RF RF –– VisualizaVisualizaçção grão grááfica do ambiente do jogo fica do ambiente do jogo PacManPacMan..

�� Requisito não funcional:Requisito não funcional:�� RNF RNF –– Utilizar a linguagem de programaUtilizar a linguagem de programaçção ão ObjectObject

PascalPascal com ambiente com ambiente DelphiDelphi..

Page 17: ESTUDO COMPARATIVO ENTRE ALGORITMO A* E …dsc.inf.furb.br/arquivos/tccs/apresentacoes/2005-1jeanitabassanida... · estudo comparativo entre algoritmo a* e busca em largura para planejamento

Diagrama de ClassesDiagrama de Classes

Page 18: ESTUDO COMPARATIVO ENTRE ALGORITMO A* E …dsc.inf.furb.br/arquivos/tccs/apresentacoes/2005-1jeanitabassanida... · estudo comparativo entre algoritmo a* e busca em largura para planejamento

Diagrama de SeqDiagrama de Seqüüênciaência

Criação do labirinto

Page 19: ESTUDO COMPARATIVO ENTRE ALGORITMO A* E …dsc.inf.furb.br/arquivos/tccs/apresentacoes/2005-1jeanitabassanida... · estudo comparativo entre algoritmo a* e busca em largura para planejamento

Diagrama de SeqDiagrama de Seqüüênciaência

Busca em profundidade

Page 20: ESTUDO COMPARATIVO ENTRE ALGORITMO A* E …dsc.inf.furb.br/arquivos/tccs/apresentacoes/2005-1jeanitabassanida... · estudo comparativo entre algoritmo a* e busca em largura para planejamento

Diagrama de SeqDiagrama de Seqüüênciaência

Busca em largura

Page 21: ESTUDO COMPARATIVO ENTRE ALGORITMO A* E …dsc.inf.furb.br/arquivos/tccs/apresentacoes/2005-1jeanitabassanida... · estudo comparativo entre algoritmo a* e busca em largura para planejamento

Diagrama de SeqDiagrama de Seqüüênciaência

Algoritmo A* e A* adaptado

Page 22: ESTUDO COMPARATIVO ENTRE ALGORITMO A* E …dsc.inf.furb.br/arquivos/tccs/apresentacoes/2005-1jeanitabassanida... · estudo comparativo entre algoritmo a* e busca em largura para planejamento

Diagrama de SeqDiagrama de Seqüüênciaência

Busca em profundidade adaptado

Page 23: ESTUDO COMPARATIVO ENTRE ALGORITMO A* E …dsc.inf.furb.br/arquivos/tccs/apresentacoes/2005-1jeanitabassanida... · estudo comparativo entre algoritmo a* e busca em largura para planejamento

IMPLEMENTAIMPLEMENTAÇÇÃOÃO

Ferramentas utilizadas:Ferramentas utilizadas:

�� RationalRational Rose RequisiteRose Requisite--Pro;Pro;

�� Object PascalObject Pascal com ambiente Delphi.com ambiente Delphi.

Page 24: ESTUDO COMPARATIVO ENTRE ALGORITMO A* E …dsc.inf.furb.br/arquivos/tccs/apresentacoes/2005-1jeanitabassanida... · estudo comparativo entre algoritmo a* e busca em largura para planejamento

O labirintoO labirinto

�� Classe Classe TFrmLabirintoTFrmLabirinto;;�� TfrmLabirintoTfrmLabirinto..FormCreateFormCreate –– timerstimers

são definidos;são definidos;�� O labirinto O labirinto éé criado atravcriado atravéés de s de

texturas carregadas texturas carregadas dinamicamente;dinamicamente;

�� Matriz de 20 x 20;Matriz de 20 x 20;�� A medida que a matriz A medida que a matriz éé lida lida éé

montado o labirinto.montado o labirinto.

//Inicia a string que ser//Inicia a string que ser áá o labirintoo labirinto// P = Parede// P = Parede// V = Vitamina// V = Vitamina// C = // C = PacManPacMan// F = Fantasma// F = Fantasma//' '= Espa//' '= Espa çç o livre com comidao livre com comida

Const Const LabirintoLabirinto : : AnsiStringAnsiString = 'PPPPPPPPPPPPPPPPPPPP' += 'PPPPPPPPPPPPPPPPPPPP' +'PV VP' +'PV VP' +'P PPP 'P PPP PPPPPP P PP PPP P' +P PP PPP P' +'P P P P P' +'P P P P P' +'P PPP P P P PP PPP P' +'P PPP P P P PP PPP P' +'P P P' +'P P P' +'P PPP 'P PPP PPPPPP PPPP PPP P' +PPPP PPP P' +'P P P P P' +'P P P P P' +'P PPP P P P PP PPP P' +'P PPP P P P PP PPP P' +'P P' +'P P' +'P PPP P P P PP PPP P' +'P PPP P P P PP PPP P' +'P P F P P PCP' +'P P F P P PCP' +'P P PPPPP PPPPPP P P' +'P P PPPPP PPPPPP P P' +'P P P P' +'P P P P' +'P PPP P P P PP PPP P' +'P PPP P P P PP PPP P' +'P P P P P P' +'P P P P P P' +'P P PPPPP PPPPPP P P' +'P P PPPPP PPPPPP P P' +'P p 'P p pppppppppp pppppppppppp P' +P' +'PV VP' +'PV VP' +'PPPPPPPPPPPPPPPPPPPP' ;'PPPPPPPPPPPPPPPPPPPP' ;

Page 25: ESTUDO COMPARATIVO ENTRE ALGORITMO A* E …dsc.inf.furb.br/arquivos/tccs/apresentacoes/2005-1jeanitabassanida... · estudo comparativo entre algoritmo a* e busca em largura para planejamento

RESULTADOSRESULTADOS

��Foram realizado dez testes com cada algoritmo de busca com exceForam realizado dez testes com cada algoritmo de busca com exceçção do ão do

busca em profundidade;busca em profundidade;

��Busca em profundidade não obteve êxito;Busca em profundidade não obteve êxito;

��MMéédia de vdia de véértices testados;rtices testados;

323118107

42371896

43381890

31362378

413621108

32441794

383310118

35351876

343820118

35301994

A* adaptadoBusca heurística A*Busca em

profundidade adaptado

Busca emlargura

Page 26: ESTUDO COMPARATIVO ENTRE ALGORITMO A* E …dsc.inf.furb.br/arquivos/tccs/apresentacoes/2005-1jeanitabassanida... · estudo comparativo entre algoritmo a* e busca em largura para planejamento

Resultados e ConclusResultados e Conclusõesões

�� Busca em largura encontra a soluBusca em largura encontra a soluçção do ão do problema;problema;

�� Busca em profundidade não Busca em profundidade não éé eficiente para o eficiente para o problema proposto;problema proposto;

�� O algoritmo A* encontra sempre uma soluO algoritmo A* encontra sempre uma soluçção ão eficiente;eficiente;

�� A* adaptado A* adaptado ààs vezes testa menos vs vezes testa menos véértices que rtices que o A*;o A*;

�� Busca em profundidade adaptado obteve o Busca em profundidade adaptado obteve o melhor desempenho.melhor desempenho.

Page 27: ESTUDO COMPARATIVO ENTRE ALGORITMO A* E …dsc.inf.furb.br/arquivos/tccs/apresentacoes/2005-1jeanitabassanida... · estudo comparativo entre algoritmo a* e busca em largura para planejamento

CONCLUSÃOCONCLUSÃO

�� Busca heurBusca heuríística possui melhor desempenho;stica possui melhor desempenho;

�� Busca em profundidade pode nBusca em profundidade pode não encontrar ão encontrar caminho;caminho;

�� Linguagem utilizada foi eficiente.Linguagem utilizada foi eficiente.

Page 28: ESTUDO COMPARATIVO ENTRE ALGORITMO A* E …dsc.inf.furb.br/arquivos/tccs/apresentacoes/2005-1jeanitabassanida... · estudo comparativo entre algoritmo a* e busca em largura para planejamento

Trabalhos futurosTrabalhos futuros

�� ImplementaImplementaçção de outros algoritmos;ão de outros algoritmos;

�� Estudo e implementaEstudo e implementaçção de caminho mão de caminho míínimo 3D.nimo 3D.