In the beginning was an idea: to investigate the field of artificial intelligence (AI) in a Young Scientist project called: AI: Future or Fable. Our three-strong team (Alex McAllister is the third member) from St Oliver's Community College, Drogheda, planned to write a program implementing one aspect of AI. After some brainstorming sessions, however, most of our ideas were abandoned as unfeasible.
Computer learning still interested us and we came up with something simpler. Our program learns by trial and error the fastest method of completing one task. Two coloured squares play out a game in a series of random two-dimensional maps. The white square moves randomly while the black square has two set patterns of movement. Black leaves behind a trail of grey squares on the screen. When white runs into this, the game is complete. Soon, black analyses the average times taken and develops a preference for the quickest method.
To bring this project to life, we ended up using an odd set-up: a Linux box running both C++ and Blitz Basic, the latter under UAE, the program that emulates an Amiga. (For the benefit of younger readers, the Amiga was an early personal computer which had sound and graphic features far ahead of its time.)
This set-up was chosen because our programmer, Trevor, is a full-time Linux user who was also adamant that the only way to get a graphical display was to use Blitz Basic. This ageing Amiga programming language was well suited to the split-screen scrolling effect that we ended up with.
Linux proved the right choice. A Windows machine might have sufficed, but we have found that Linux is much more stable under pressure (for a demanding program such as UAE) and much more satisfying for the computer-literate to use. Linux had no trouble keeping UAE, the X windowing system, several command prompts and a few copies of Emacs running.
For the learning part, we used C++, not being familiar with "real" AI languages such as Pro-log and Lisp. We decided in any case that it would be more interesting to come up with something entirely by ourselves in a language not ideally suited to AI work. When run, our C++ program generates a set of random games very quickly. These are stored in a set of text files that can be "played back" more slowly by the emulated Amiga program for the benefit of human observers.
In keeping with the spirit of doing everything for ourselves, no part of our algorithm was based on any neural network, fuzzy logic or even genetic algorithm books. We just puzzled it out for ourselves.
It was intriguing to us to see just how these things work. We were looking for something that was technically skilful yet easy and interesting for the public to understand. What we came up with was the closest thing possible to this goal. If a learning routine like ours can be created by three 17-year-olds, then some form of artificially created intelligence is certainly part of the future.
Fun though this was, travelling to the RDS last month to show our software to the public was the most enjoyable part. Among other things, the Young Scientist Exhibition gives young people a chance to meet knowledgeable strangers. Any exhibitors willing to talk about their work and meet new people will end up enjoying the week.
Finally, our exhibit was recognised by Nortel Networks, which gave us the prize for Best Use of Information Technology at this year's exhibition. We returned to Drogheda with a clear sense of achievement, some much-appreciated computer equipment donated by Nortel and a nice new fountain pen each.
We have been asked quite a few times where our project will go from here. Our software is similar to that of certain computer games and we have thought of improving the program with better graphics and even programming the computer to improvise. Anyhow, this all lies ahead of us, and as we all seem to be planning to study computers at third level, this may be just the first step to greater things.
tjohnston@oceanfree.net
This project is available at www.socc.ie/tjohnsto for download under the Gnu public licence.