You are on page 1of 2

Gold Digger

Seok Hyun Jin (sj372)


Seulgi Kim (sk765)

Goal
The goal is to provide a visual example of Genetic algorithm and A* Search. Given an environment,
we will use the two algorithms to find sequences of moves for a bot to score the most positive
outcome.

Definition of environment
Our world is N x N grid.
Inside the N x N grid, there are Treasures and Attacks.

Treasure : Immobile. Each treasure has different positive score. It will give a bot its positive score
when the bot reaches the location of this treasure. The treasure will disappear once a bot reaches it.
Think of it as the bot consuming the treasure.

Attacks : There are four kind of attacks - Stones, Knives, Mines, and Bullets.
Each attack has unique negative points associated with it. When a bot is hit by an Attack, it loses
corresponding points. Stones, Knives, and Bullets are mobile and follow pre-defined patterns.
Mines, on the other hand, are immobile and they disappear once the bot steps on them after giving
the bot its negative score.

Description of a bot
A bot starts with score zero, and makes a move each turn. A move is one of { stay at the current
location, move left, move right, move up, move down }. A bot is limited to make M number of
moves.

Genetics Algorithm
We start with a population of a certain size. At each iteration, 90% of population will evolve based
on the outcome of its previous generation while 10% will be mutants. We keep iterating until
further iterations wouldnt make much improvement.

A* Search Algorithm
A* algorithm will try to greedily get closer to Treasure while also factoring in our heuristics values.
The heuristics will mainly reflect
- how close the bot is moving toward a group of Treasures
- This should prevent the bot from moving toward a Treasure that is further away from every
other Treasures.
- how close the bot is moving toward Attacks
- This should help bot avoid Attacks as much as possible.

Implementation
We will fix N = 20 and M = 50, and we start with a population of 10 bots for Genetics Algorithm.

Evaluation
1. GUI should be able to simulate a bot navigating through NxN grid based on a given algorithm
and record results in a structured manner.
2. The improvement achieved by Genetic Algorithm will be measured by the difference of the
scores between the first generation and the last generation. The last generation should be a
generation such that the difference of its score and its previous generations score is negligible,
and any further iteration will not result in noticeable increase in the score.
3. The effectiveness of A* Search will be measured by comparing its performance against Genetic
Algorithm, Greedy Search, and Heuristics Search. A* Search should perform better than Greedy
Search and Heuristics Search. The final version of A* Search that based its heuristics on the
results of Genetics Algorithm should perform as good as Genetic Algorithm.

Timeline
Oct 21st : Proposal Due
Nov 3rd : Deadline for implementing test environment, including bots, Attacks, and Treasures.
Nov 10th : Deadline for implementing Genetics Algorithm and A* Algorithm.
Nov 24th : Deadline for improving A* Algorithm based on the results of Genetics Algorithm.
Dec 8th : Deadline for implementing GUI. Tentative deadline for making our project functional and
presentable.
Dec 15th : Finish working on features that need improvements and preparing for final presentation.

You might also like