This Essays section is a collection of small essays that the Generation5 team have written. Most of for beginners to AI, but as Generation5 grows more and more will be available for other levels. The section is divided up into the following sections:
This section merely serves as an introduction to the field of AI. Here you will find a brief history, an overview of the different areas and some of the problems that AI faces in computer science. Beginners should also see the next section - Applications - to get a rounded view of what AI is.
Can machines really be intelligent? What is understanding? Can we create human being? Clearing out skepticisms, with an introduction to the fascinating world of AI.
An introduction of AI and a report on the major progresses of AI from 1950's-1990's.
These essays are for beginners interested in looking at the applications of AI, and the subsequent problems that AI faces. None of these essays have any theory - just some simple explanations about how some AI programs work. If you would like to look at theory, please refer to the other relevant sections. The Applications in Music essay is due for a severe re-writing soon!
This essay looks at AI and music, and more specifically the guitar. The problems that arise as effects are added, as speed increases and as more and more instruments are added to a piece of music.
Did you know how closely the history of AI and the military were tied? This essay covers the military-related history and also discusses how AI can be applied to various military purposes. The essay focuses on genetic programming for radar returns and neural networks for sonar returns.
Rewritten 8/9/99: Finite-state machines, minimax trees, genetic algorithms and neural networks all discussed. A simple overview of some of the techniques you'll find in modern games today.
Artificial Life is an interesting field that is an offshoot, yet a competely different, field of Artificial Intelligence. ALife is now getting so advanced, our definitions of 'life' will either have to include various 'virtual organisms' or be re-defined...
ALife is a fascinating area to study, this essay gives you a brief introduction into cellular automata, flocking and other areas of ALife. Watch Conway's Life run and stabilize as you read the essay!
Everyone has heard about it, never few people know what it is. Since we are not that interested in FL, don't expect to see this list progress much further than a simple introduction to the topic!
New 13/9/99: This serves as an introduction to fuzzy logic. For anyone who has had no experience with fuzzy logic - this is for you! Plus, a fuzzy C++ class and source code for you to play with!
These essays should cover various topics that are helpful programming artificial intelligence for games, or for understanding some modern techniques used in games.
New 6/10/99: Not strictly about AI - how to utilize various object-orientated techniques in your game. Assumes C++ knowledge. I cover class inheritance, virtual functions and messaging.
Genetic algorithms are based on biological natural evolution - including reproduction, mutation and natural selection.
They have very many applications, from math, to music and puzzles. The effectiveness that GAs (genetic algorithms) have as heuristic search systems certainly make them very interesting.
Huge essay (7000+ words) detailing many aspects of AI - including conceptual representation, mentalese, the CYC project and COG. This was written as my Extended Essay for the International Baccalaureate. Abstract, diagrams, bibliography all included!
Programming Artificial Intelligence can be extremely difficult - these essays are aimed at looking at various tips, techniques and useful languages.
Updated 27/11/99: Why limit yourself to C++ (or your language of preference) when there are so many other languages, all with advantages and disadvantages! This growing essay has introductions to languages that have definite AI applications. Included so far are Prolog, SmallTalk and Forth.
New 17/11/99: My first Forth program fully explained. The program has AI, but it is purely defensive. Nevertheless, the pros and cons of Forth are quite well shown in just this simple program.
New 27/11/99: A simple expert system written in Prolog that holds 19 military aircraft statistics. The program answers a relatively complex question with ease - showing the power of Prologs logic capabilities.
Do natural language systems such as ELIZA possess actual understanding? Or are they truly, simply "chatterboxes",
programs that just play with words, syntax, and semantics. This essay provides a brief look at the Turing's test, real understanding, and the issues that face many natural language processing researchers.
Parsers, Syntax, and Semantics. Have you ever wondered what makes many NLP programs run? This tutorial provides a brief overview of what makes chatterboxes and other NLP programs tick.
This is a basic essay detailing the ideas of conceptual representation and scripting. The essay has some output from a few CR programs. A good essay for those not familiar with these concepts. To see more about theory see Does the Top-down or Bottom-up Approach Best Model the Human Brain?".
Most AI systems today are production systems. In fact many can argue that all computer programs are production systems. How are production systems different from the rest? What are their strengths and weaknesses? How do they work? Many task-structured programs such from puzzle solvers to chess playing programs to medical diagnosis expert systems, and to monsters in Quake2 are production systems.
Rewritten 11/9/99: A completely rewritten essay on the basics of neural networking. Covers the functions, types, architecture of functioning of a network at a very simple level.
A guide to creating multilayer feedforward networks and tips and details on how to implement the backpropagation algorithm in C++ with heavy theoretical discussion. Understanding of calculus is required.
Another Gen5 essay of back-propagation! This essay details how back-propagation works as a learning algorithm, but leaves out the heavy math-related derivations. Sam is the math genius on the Gen5 team...:)
New 17/9/99: This essay talks about Hopfield networks, the learning matrix, energy and other associative concepts. The essay includes screenshots from HIR2, so perhaps you will want to download this program too.
New 21/9/99: An essay on self-organizing networks, focussing on Kohonen networks. Perhaps it is a good idea to download my Kohonen Demonstrator program to help visualize the examples.
Updated 12/9/99: Philosophy often helps artificial intelligence in many fields, yet when looking at the concept of AI as a whole, often critizes the very fundamental parts of AI - questioning when intelligent machines will ever be possible. This essay is pretty much a free-flow of ideas and thoughts I have to offer!
Perhaps another one of the greatest challenges in AI is to create something that has knowledge of having knowledge. This idea follows Seymour Papert's: You cannot think about thinking, without, thinking about thinking about something. Let us take a look at our own minds in order to gain a better understanding of how we can create an artificial mind.
Robotics is an area of AI that increasingly interests me since I'm pretty much disillusioned by classical AI - and the top-down approach. Robotic projects, especially the ones at MIT, produce some incredibly interesting results. These essays skim the surface of some topics in robotics. Both these essays are due for a MAJOR overhaul!!
The problems that are faced by machine vision systems. Edge detection, depth perception, and shadow elimination are discussed.
Here are the case study essays grouped together. They are all listed above too under their respective categories. Case studies are in-depth essays into a certain paradigm in AI, using a particular example as a step-through guide of the processes/algorithms involved. There are two parts to a case-study - the essay part, and the programming part. Each essay section has a small write-up at the end showing how to use the C++ class written, but another essay breaks down the class and explains its functioning. The programming sections are linked in their respective essays, and are also available through the Programs section.