-
Notifications
You must be signed in to change notification settings - Fork 1
/
final-assignment-2.tex
131 lines (110 loc) · 4.48 KB
/
final-assignment-2.tex
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
\documentclass[portuguese,oneside]{tcc}
\usepackage{graphicx}
\usepackage{multirow}
\usepackage{nicefrac}
\usepackage{algorithmic}
\usepackage{calc}
\usepackage{enumitem}
\usepackage{tikz}
\usepackage{pgfgantt}
\usepackage{mdframed}
\usepackage[colorinlistoftodos]{todonotes}
\newcommand\todoin[2][] {
\todo[inline, color=green!50, caption={2do}, #1]{
\begin{minipage}{\textwidth-4pt}
#2
\end{minipage}
}
}
\usepackage{listings}
\lstdefinestyle{customC++}{
frame=single,
language=c++,
numbers=left,
numbersep=5pt,
tabsize=2,
basicstyle=\footnotesize
}
\usepackage{subcaption}
\captionsetup{compatibility=false}
\usetikzlibrary{shapes.geometric}
\usetikzlibrary{shapes.misc}
\usetikzlibrary{positioning}
\usetikzlibrary{fit}
\usetikzlibrary{trees}
\usetikzlibrary{decorations.pathreplacing}
\author{Martin Duarte Móre e William Henrihque Martins}
\title{Explorando as Cavernas de Spelunky Utilizando Agentes Inteligentes}
{Exploring Spelunky's Caves Using Intelligent Agents}
\tipotrabalho{\tcii}
\curso{\cc}
\orientador{Felipe Meneguzzi}
\begin{document}
%\dedicatoria{Dedico este trabalho a meus pais.}
%\epigrafe{The art of simplicity is a puzzle of complexity.}
% {Douglas Horton}
%\begin{agradecimentos}
%\end{agradecimentos}
\begin{resumo}{\textit{Spelunky}, \textit{NEAT}, \textit{SpelunkBots},
Inteligência Artificial, agentes inteligentes}
\textit{Spelunky} é um premiado jogo de computador fácil de aprender mas
difícil de dominar, tanto para jogadores humanos quanto para agentes
inteligentes. O objetivo do jogador é explorar cavernas subterrâneas
enquanto coleta tesouros valiosos e evita monstros e armadilhas. Este
trabalho apresenta o desenvolvimento de um agente inteligente para
\textit{Spelunky} com o objetivo de tratar o problema do domínio de
navegação do jogo. Para tal, utilizamos \textit{SpelunkBots}, um
\textit{framework} de desenvolvimento de \textit{bots} para o jogo, e
\textit{NEAT}, uma técnica de Inteligência Artificial baseada na evolução
de redes neurais através de um algoritmo genético. Desenvolvemos cenários
de teste e experimentos para analisar o impacto de diferentes parâmetros de
configuração no desempenho dos agentes e formulamos funções de aptidão para
identificar boas medidas de desempenho. Por fim, examinamos os resultados
obtidos a fim de atestar a eficácia da técnica escolhida para resolver o
problema selecionado. A aplicação da técnica \textit{NEAT} nos permitiu
tratar pelo menos parcialmente o problema de navegação de
\textit{Spelunky}.
\end{resumo}
\begin{abstract}{\textit{Spelunky}, \textit{NEAT}, \textit{SpelunkBots},
Artificial Intelligence, intelligent agents}
\textit{Spelunky} is an award-winning computer game that is easy to learn
but hard to master, both for human players and for intelligent agents. The
player's goal is to explore underground caverns whilst collecting valuable
treasures and avoiding monsters and traps. This work presents the
development of an intelligent agent for \textit{Spelunky}, with the goal of
dealing with the game's navigation domain problem. To do this, we use
\textit{SpelunkBots}, a bot development framework for the game, and
\textit{NEAT}, an Artificial Intelligence technique based on the evolution
of neural networks through a genetic algorithm. We developed test scenarios
and experiments to analyze the impact of different configuration parameters
on the performance of agents and formulated fitness functions to identify
good performance measures. Finally, we examined the results obtained in
order to attest to the effectiveness of the chosen technique to solve the
selected problem. The application of the \textit{NEAT} technique allowed us
to deal at least partially with \textit{Spelunky}'s navigation problem.
\end{abstract}
%\listoftodos
\listoffigures
%\listoftables
\listofalgorithms
\listofacronyms
%\listofabbreviations
%\listofsymbols
\tableofcontents
\include{chapters/introduction}
\include{chapters/spelunky}
\include{chapters/spelunkbots}
\include{chapters/theory}
\include{chapters/modeling}
\include{chapters/development}
\include{chapters/scenarios}
\include{chapters/experimentation-and-results}
\include{chapters/related-work}
\include{chapters/conclusion}
\appendix
\include{appendices/spelunkbots-variables}
\include{appendices/spelunkbots-algorithms}
\include{appendices/neat-configs}
\bibliographystyle{tcc-num}
\bibliography{final-assignment-2-bib}
\end{document}