Samuel Jackson's Portfolio

Project: Artificial Intelligence

Artificial Intelligence

Project Information

This page lists the 4 different A.I Projects completed during my final year at University. Each project was built within the game provided, minor alterations were made to each to implement the selected algorithms.

Each project seeks to solve a particular problem, with different implementations taken to solve each particular problem.

Neural Network

Flappy Birds

This implementation of Flappy Birds implements a Neural-Network that is trained through a Genetic Algorithm.

This particular Neural-Network consists of 2 Hidden layers, with each layer containing 3 Nodes. For the input, it uses:
Distance to Floor
Distance to Pipe
Distance to Pipe Gap.

This implementation of Flappy Birds implements a Neural-Network that is trained through a Genetic Algorithm.

This particular Neural-Network consists of 2 Hidden layers, with each layer containing 3 Nodes. For the input, it uses:
Distance to Floor
Distance to Pipe
Distance to Pipe Gap.

Decision Theory

Chess

This Chess implementation utilises Alpha-Beta pruning to improve the calculation times per move.

It calculates the best move based on:

Remaining pieces: Each piece time has it's own score.
Board Positions: Each Piece on the board has it's own positional table, with the King having 2 based on board state.

This Chess implementation utilises Alpha-Beta pruning to improve the calculation times per move.

It calculates the best move based on:

Remaining pieces: Each piece time has it's own score.
Board Positions: Each Piece on the board has it's own positional table, with the King having 2 based on board state.

Genetic Algorithm

Tower Defense

This Tower-Defense implementation uses a Genetic Algorithm to find the best combination of tower's and positions to get a score above 200.
The following selection algorithms were implemented:

Eliteism
Roulette Wheel
Rank
Steady State

By the end of the project it was found that Eliteism served as the best algorithm for this situation as it was capable of reaching the optimum solution within the shortest amount of generations.

This Tower-Defense implementation uses a Genetic Algorithm to find the best combination of tower's and positions to get a score above 200.

There are a hanful of selection algorithms implemented, but the most used is Eliteism.

Artifical Life

Boids

Artificial life seeked to simulate living fish in the proximity of a Predator.

To simulate it as such, each fish is powered by basic steering behaviors that cause them to flock together.

The Predator is also a fish, and inherits all properties. But with the additional functionality to move towards the average position of fish.
Overtime the Predator will lose speed, but gain a burst of it on eating Fish.

Artificial life seeked to simulate living fish in the proximity of a Predator.

To simulate it as such, each fish is powered by basic steering behaviors that cause them to flock together.

The Predator is also a fish, and inherits all properties. But with the additional functionality to move towards the average position of fish.
Overtime the Predator will lose speed, but gain a burst of it on eating Fish.