Free Open Source Artificial Intelligence C++ Parts
aiParts Open Source Project
Releases and Credits
v0.9.3 README File
assigning people and/or equipment to projects
History of the AI
View Source Files
and how they are organized
Support and Services
History of the AI
Development of the High-Hope AI TechniqueThe High-Hope artificial intelligence technique was developed by Brian Marshall in a series of part-time projects, off and on, since 1991.
The Challenge of Staff SchedulingIn 1991, Brian became interested in staff scheduling.
His brother, Scott Marshall, had written a program to create a staff schedule as a programming course project. It chose the best option at each decision.
It was a good project, but in practice, it was not a good technique. In a real-life staff scheduling problem, an acceptable solution may require decisions that some people do not like. Software that chooses the best option for each decision will often find that a solution can not be completed.
Trying the best two or three options at each decision is not much of an improvement. It increases the odds, but there is still the possibility of not being able to find an acceptable solution that a person could find. Furthermore, an impossibly large amount of computing could be required.
In 1991, Brian started a project to write staff scheduling software. He quickly decided that the best approach would be to consider how people do it.
Staff Scheduling, Navigating a Car, ChessFrom late in 1991 through 1993, Brian considered how people solve hard problems where a series of interacting decisions must be made. He focused on how people create staff schedules, navigate a car in a city, and play chess.
Brian realized some fundamental principles:
This makes for a chaotic system - tries affect aspects which affect subsequent tries.
WorkForce - Staff Scheduling SoftwareIn 1994 and 1995, Brian developed WorkForce - a staff scheduling solver and a crude user interface. It used these strategic factors when choosing options:
Brian briefly tested WorkForce at a Hotel in Calgary - it seemed that it would probably work for them, given a bit more work. The person in the hotel lost interest. Brian lost interest in trying to start a software company part-time.
Emotions and Decision-MakingIn 1995, Brian realized that the strategic aspects in WorkForce seemed to correspond to emotions:
Using emotions when choosing options seemed reasonable. It is easier to define reasons for a deer to have fear than it is to define when a deer should run away.
For staff scheduling and many other problems, options are chosen because they have the most "Hope" - the sum of static, dynamic and emotional aspects. Emotionally...
Hope = fear + greed + curiosity
This approach was not implemented in code until 2005.
The Beginning of aiPartsIn 1996 and 1999, Brian worked on projects to develop classes to match object to subjects. This work was an attempt to implement the artificial intelligence technique in WorkForce in C++ classes.
A preliminary version of aiParts was developed. The High-Hope technique was planned but not implemented.
A fundamental approach was established. Classes would implement problems, decisions and options. Messages could be passed between these components. A particular problem-domain would require a set of subclasses of the component classes.
AI Patterns - Pandemonium and EmotionIn 2002 and 2003, Brian started the aiPatterns project.
AIPatterns.org. is a collection of information about artificial intelligence patterns.
The general AI patterns of Pandemonium and Emotions are examined.
Modern aiParts - version 0.8.xIn 2005, Brian rewrote the aiParts software. The High-Hope AI technique was implemented. Sample programs were written to test and demonstrate:
The list of source files and their organization is on the aiParts Source Files page.
aiParts version 0.9.xIn 2008, Brian made significant enhancements to aiParts, including:
Some of the historical software developed along the way is described on the Old Software page.
In the past, the aiParts home-page was here.