Peter Ross's home page
To get in touch with me:
e-mail to P.Ross@napier.ac.uk ,
phone 0131-455-2766 (use +44 131 455 2766 if phoning from outside
the UK) ,
or write to:
Prof. Peter Ross,
School of Computing,
Napier University,
10 Colinton Road,
Edinburgh EH10 5DT,
Scotland
Here are one or two items of software you might like:
- A fast and simple robot simulator (version 1.8)
in C++, using the Fast Light Tool Kit for the user interface. It runs
under Linux or Windows. Think of it as a step forward from
Olivier Michel's old Khepera simulator. This one has a
separate world editor and allows circular and coloured
objects; so, for example you can draw objects in the
background colour and thus bite arcs and holes out of other
objects. The robot has noisy IR sensors and also colour
sensors, and can sense the colour it is standing
on. Anything grey (that is, equal R, G and B) counts as
carpet that the robot can cross. It can affect its world by
dropping, detecting and picking up grey blobs, and the user
can drag such blobs around too. On my 2Ghz
PC the robot will do around 10,000 steps per second, where
a step involves a movement, collision detection, any
necessary skidding or changes due to collisions and then
sensor updating.
- A program (version 1.5a)
to let you explore some of the issues to do with cell matching
that arise (or should arise) in artificial immune systems research. The program
displays a two-dimensional "shape space"; a cell located at (X,Y) has a particular
`shape' that depends continuously on X and Y. In keeping with Perelson and Oster's
model, cells can be stimulated by approximate matching with other cells whose shape
is close enough to being a perfect complement of their own shape. Interestingly,
this so-called self-assertion model of cell interaction leads to the formation of
semi-stable regions in shape-space. The software lets you explore several varieties
of what approximate matching might mean, and play with the associated parameters.
- A GA package, pga version 4.0, which
is intended for teaching and basic research in GAs. Source code
in C, documentation included; can be used interactively, or
non-interactively for massive batches of experiments. Loads of
built-in problems and GA options: for example you can often vary the
length of the chromosome, you can use an island GA, have the
chromosomes laid out on a 2-d grid with local mating, use
adaptive mutation rates, and so on. The built-in problem set
includes some of the oldest test functions and also things like
simplistic timetabling (not nearly as good as the package
listed below), Royal Road functions, NK landscapes, Long Path
problems and more.
- Old GA-based job-shop scheduling
software: source code, in C. Separate
gzipped Postscript documentation is available. No fancy
user interface; it was built for research, in a Unix environment.
Based on my pga, additions by Hsiao-lan Fang.
- A GA-based timetabling
package, mainly useful for exam timetabling although it
will handle some flavours of lecture timetabling too. Many
universities have used this. Our state of the art has advanced
somewhat beyond this now. Source code in C, documentation
included. It has a limited, text-based user interface; it was
built for research, in a Unix environment. Based originally on
my pga, many additions by Emma Hart, Dave Corne and me.
- A bug-fixed version of random.c, a
good random number generator originally created at Berkeley for
BSD in 1988 and included (in buggy form) in various commercial
operating systems. The bug is serious. For example, in Sun's
Solaris 2.6 the man page for random suggests that all bits
are usable and that random() & 01 generates an acceptably
pseudo-random sequence of bits. Although this is true, the
buggy version gives you access to only four such sequences!
- A program which finds
cliques in graphs (just the largest, or all of them).
It is deterministic, and can take a very long time if given a
large graph. Source code in C, by me.
- A simple program of mine which searches
quickly for true sentences of the form:
This sentence contains three As, one B, three Cs, two Ds, thirty-three
Es, five Fs, two Gs, seven Hs, eleven Is, one J, one K, two Ls, one M,
twenty-one Ns, sixteen Os, one P, one Q, six Rs, twenty-five Ss,
twenty-one Ts, two Us, six Vs, eight Ws, four Xs, five Ys and one Z.
- A fancier version of the sentence generator, with a
nice GUI using the
admirable, free, small, fast Fast Light Toolkit, a GUI
toolkit for X and Windows
that is well documented, has loads of examples, provides a neat and simple
GUI builder, works well with OpenGL and is generally much more fun to use
than heavyweight commercially-produced IDEs.