Computer Science Honours Projects
My major research interests include artificial neural networks (ANNs), genetic algorithms (GAs) and particle swarm optimization (PSO).
The following is a list of potential Hons projects.
This is not a single project. It is really a large family of potential projects. In general, any project which involves optimising an objective function would be of interest to me. Some of the previous examples include: finding the shortest and smoothest route between two locations on a 3-d terrain, personnel assignment, lecture room assignment in a university, parameter optimisation for modelling certain materials, etc.
Note:Programming in C/C++/Java under UNIX/Solaris is important. You can come up with your own problem, but you need to know the problem domain fairly well before you embark on the project. You need to feel comfortable with algorithm design and analysis.
Hybrid evolutionary algorithms
Evolutionary algorithms are good at global sampling but not fine-tuned local search in general. This project investigates various ways to combining an evolutionary algorithm (e.g., a genetic algorithm) with a local search algorithm (e.g., Brent's algorithm). The problems used will be a set of benchmark functions.
Note:Programming in C/C++/Java under UNIX/Solaris is essential. A mathematically trained brain would help although I don't use much mathematics. Your implementation should be useable by non-experts (i.e., people do not know evolutionary algorithms).
An Evolutionary Approach to Cutting Stock Problems (CSPs)
The aim of CSP is to cut an object made of material that can be a reel of wire, paper, or a piece of wood, etc., to satisfy customers' demands. The material is referred to as the stock of ``(large) objects'' and the list of demands is so-called ``(small) items''. If there is more than one stock length to be cut to fulfill the requests, the problem is called a multiple stock length CSP. The objective is to minimise the wastage of cutting.
Genetically (or PSO) programmed checker player
Description: Recently a program based on an evolved neural network was developed to play checker at human-player level. A description of the program appears in the September 199 issue of the Proceedings of the IEEE journal. The evolved neural network is the result of an evolutionary algorithm that taught itself to play checkers using only the position of the pieces on the board and the piece differential. No other human expertise in the form of "features" such as mobility, control of the center, etc. were used. The program has evolved to play at a level that is competitive with human experts, as verified in games on the Internet at www.zone.com.
The objective of this project is to replicate (and perhaps improve on) the work described above using a computer programme evolved with a genetic programming system instead of a neural network.
Languages and/or other Software: any programming language.
Java-Based implementation of Neural Networks (or Particle Swarm Optimization) Library.
The goal of this project is to build a library of Java classes for allowing fast prototyping of Neural Networks. These classes should include:
- architecture creation and unit parameters initialization
- learning algorithms (BP, RBF, SOM) in C/C++
- graphical interface for neurons and layers vizualization (while training)
- Learning curves display
- whatever seems convenient…
Paper(s): lectures and lots of examples in the web