This book is about beliefs---how we get them and how we evaluate them. It takes the form of a fictional conversation makes the following points: 1) in analogy with robots, we humans know by the models we make of reality, 2) these models are always provisional and sometimes unreliable, 3) it is especially important to examine thoroughly those models upon which we base actions, and 4) the scientific method provides an excellent guide for such examination. The level of exposition is neither technical nor deeply philosophical
I enjoy writing and in addition to my published books I offer free Open Content material on this web page. I both enjoy and appreciate feedback on ideas for material and reporting any errors. I offer free web books on Java and artificial intelligence programming, Common Lisp programming, and a new but still incomplete book The Software Design and Development Book. I am also working on a Ruby AI book and a short paper on AI design patterns. I also have a link to an old paper on AI, Go and Consciousness (updated 1/25/2004) available here. I have a short paper Jumpstarting the Semantic Web available here (new version 1/14/2005). I am also starting to include my fiction (short stories) here in addition to computer science web books.
he A* (pronounced A-star) algorithm can be complicated for beginners. While there are many articles on the web that explain A*, most are written for people who understand the basics already. This article is for the true beginner. This article does not try to be the definitive work on the subject. Instead it describes the fundamentals and prepares you to go out and read all of those other materials and understand what they are talking about. Finally, this article is not program-specific. You should be able to adapt what's here to any computer language. As you might expect, however, I have included a link to a sample program at the end of this article. The sample package contains two versions: one in C++ and one in Blitz Basic.
The problem we're trying to solve is to get a game object from the starting point to a goal. Pathfinding addresses the problem of finding a good path from the starting point to the goal―avoiding obstacles, avoiding enemies, and minimizing costs (fuel, time, distance, equipment, money, etc.). Movement addresses the problem of taking a path and moving along it. It's possible to spend your efforts on only one of these. At one extreme, a sophisticated pathfinder coupled with a trivial movement algorithm would find a path when the object begins to move and the object would follow that path, oblivious to everything else. At the other extreme, a movement-only system would not look ahead to find a path (instead, the initial "path" would be a straight line), but instead take one step at a time, considering the local environment at every point. Best results are achieved by using both pathfinding and movement algorithms.
Braitenberg vehicles are simple automatons proposed by the German cyberneticist V Braitenberg to illustrate the abilities of reactive agents, thus representing the simplest form of behavior based artificial intelligence or embodied cognition, i.e. intelligent behavior that emerges purely from sensorimotor interaction between the agent and its environment, without any need for an internal memory, representation of the environment, or inference. A Braitenberg vehicle is an automaton that can autonomously move around. It has primitive light sensors and wheels (each driven by its own motor) that function as actuators or effectors. A sensor is directly connected to an effector, so that a sensed signal immediately produces a movement of the wheel. Depending on how sensors and wheels are connected, the vehicle exhibits different, goal-oriented behaviors. This means that it appears to strive to achieve certain situations and to avoid others, changing course when the situation changes.