Downloads
Both software and
movies are available for downloading. They are all developed
using a Microsoft operating system, but some of them are useable
when transferred to other operating systems.
-
Version II_III
of the perspex machine is implemented in
Pop11. It can be run on both Microsoft and Unix operating
systems. This version of the machine was used to develop the
examples in the papers
Perspex Machine II
and Perspex
Machine III. It does not have documentation. It is not a
generic implementation of the perspex machine. It will be of use
only to skilled programmers.
-
Isabelle/HOL proof
files supporting the paper
Perspex Machine
VIII. This code will be of use only to mathematicians
familiar with Isabelle/HOL.
-
FibonacciPerspex
shows a perspex neural net compiled from a C program that
calculates the first ten Fibonacci numbers.
void main() {double i, j, k, l; i = 0; j = 1; k = 1; l = 0; for
(l = 0; l < 10; l = l + 1) {k = i + j; i = j; j = k;} k = k;}
-
The first frame of
the movie shows the initial condition of the neural net. The
neurons are shown in the standard perspex colours: read synapses
red, body orange, write synapse green, and jump synapses blue.
Processing starts in the bottom left of the net. The neuron at
the top left controls the number of Fibonacci numbers that are
computed. Moving this neuron higher up causes the net to compute
more Fibonacci numbers, lowering it causes the net to compute
fewer Fibonacci numbers. The net starts by growing some local
variables vertically upwards on the left hand side. It then
grows each Fibonacci number rightward, storing the result in one
of the local variables. When the net halts this variable holds
the tenth Fibonacci number.
In principle, any C program can be compiled into a perspex
neural net. The program then inherits the properties of perspex
neural nets but, unless these are accessed, it executes exactly
what the C source program instructed.
If the neural net were modified in some way, say, by applying
filtering or a genetic algorithm, the result would be a new
program related to the computation of Fibonacci numbers. If the
modification were extreme the relationship would be tenuous.
-
DijkstraPerspex
shows a net with over 600 perspex neurons that implements
Dijkstra's solution to the Travelling Salesman problem. This net
was compiled from the C source
code for Dijkstra's algorithm.
The movie shows the entire net with
all but the recently used neurons fading out over time. When the
net halts it has correctly computed the shortest
distance between the cities visited by the travelling salesman.
The vertical part is mostly local variables. The
cubical block of neurons to the left is the arrays used to hold
data about the position of cities. The fibres to the right are
mostly the evaluation function. The answer is recorded in one of
the local variables.

|
 |
|