This project demonstrates using an artificial neural network to recoginize handwritten digits. The method of network training used is backpropagation with momentum, and the node activation function used is the sigmoid function. The network is made up of three layers: the input layer, a hidden layer, and the output layer.

# Applets

This is a collection of Java applets I developed for various reasons.

## 8-Puzzle Solver

This applet is another heuristic search exercise that solves the classic 8-puzzle from a given initial state. Unlike the A* search with a given area of terrain, the search space for this problem is an expansion of all possible states. From any given parent state, each possible move is a child node.

## A* Search Algorithm

This applet is a demonstration of the A* search algorithm. The Pythagorean distance from the avatar to the goal point is used as the heuristic value.

## Concurrent N-Body Simulation

This applet demonstrations a couple thread barrier synchronization techniques with an n-body simulation. The 'Parallel 1' options represent custom barrier synchronization, and the 'Parallel 2' options represent the CyclicBarrier supplied by the Java API.