Text only

CM30076 / CM30082
Individual Project

Project Ideas

Dr Daniel Richardson


Neural Visualiser
Spiking neurons interact by sending very short pulses, called spikes, to each other along links. The links are weighted, and may have time delays. A neuron adds up all the responses it has to spikes received recently, and when this response exceeds a threshold, the neuron itself spikes. The purpose of the project would be allow us to see the spiking as it occurs in a network. (Presumably there would be a little flash of light at a neuron as it spiked.) The spiking networks themselves would be contructed and simulated by a standard package, such as either CSIM, or (possibly better) the one written by Carl O'Dwyer here at Bath. The project could be done in several different ways. A) First run the simulation and record all the spikings of all the neurons. Then show the visualisation. B) (more interesting) Run the simulation and show the visualisation simultaneously. C) (even more interesting) Run the simulation and show the visualisation simultaneously, and also allow the user to interact, by changing some of the parameters.
Prerequisite Knowledge: Programming: Could be inside Matlab, or talk to Carl O'Dwyer about using or modifying his software.
Background Reading: Look up Spiking Neural Nets, CSIM;
Jellyfish Simulator.
The object is to simulate part of the nervous system of a Jellyfish using spiking neural nets.
Prerequisite Knowledge: Programming: Could be inside Matlab using CSIM, or using Carl O'Dwyer simulator.
Background Reading: Look at similar projects from last year.
Simulation of group behaviour, of flocks or swarms
An example would be simulation of a flock of sheep, and a sheepdog. The idea is that the group may have complex behaviour, even though the individual behaviour is quite simple. Look up artificial life on the web. Any programming language, with some schematic graphics. Something more than just boids would be good.
Simulation of telephone exchanges
We suppose that there are N cities, each pair connected by L lines. Calls arise between cities at some rate R, and calls die at some rate D. If all direct lines from city I to city j are being used, and a call arises from i to j, it may be rerouted via another city k, or it may be lost. The problem is to compare different algorithms for the rerouting.
Prerequisite Knowledge: Some probability theory is needed.
Background Reading: Read about Markov processes in continuous time.
Testing conjectures in number theory
The object would be to write efficient programs in some computer algebra language such as, for example, Maple, to search for counterexamples or near counterexamples to some famous (or not so famous) conjectures in number theory. An example would be the ABC conjecture.
Prerequisite Knowledge: An interest in number theory is required.
Background Reading: Look up ABC conjecture on web to see the current status.
A predicate calculus theorem prover
Given a sentence of a certain restricted type in a first order language, the prover should either produce a proof of the sentence or produce a counterexample. A non classical logic can be used if you wish.
Prerequisite Knowledge: Programmuing in Lisp or something like Lisp; Understanding of semantic tableaux.
Background Reading: See notes for CM20019.