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
The High-Hope Technique
The High-Hope technique is used to find solutions to problems in which a number of decisions have to be made and each decision affects subsequent decisions.
The technique can be useful for many types of problems, including arbitrarily constrained problems that have an enormous number of possible solutions.
The technique is easy to implement in software, and easy to specialize to solve a particular type of problem. Software size and complexity grow very slowly with an increase in the number of problem constraints.
You may be interested in the history of the High-Home technique.
The TechniqueThe High-Hope Technique...
Given a problem, try to solve it repeatedly (physically or by consideration) and remember the best solution(s).
The High-Hope technique is a type of machine learning. Options have strategic aspects. The software learns about the solution space as tries affect these aspects which affect subsequent tries. This chaotic interaction controls the balance between exploring the unknown and taking advantage of what has been learned.
The technique is chaotically sensitive to initial conditions, parameters and the sequence of random numbers used for choosing equal options. A tiny change can result in a different choice in a try, which may affect subsequent choices and tries.
Big ProblemsThe High-Hope technique is a way of finding solutions to problems that have so many possible solutions that all of them cannot be considered. People routinely solve these types of problems. The number of ways to drive across a city is enormous, but a driver would only consider a tiny fraction of these ways.
The chess master does not consider all the possibilities, just the good ones.
The High-Hope technique is as an approach to exploring a very small proportion of a solution-space.
The Most HopeWhen trying to put together a good staff schedule, at each decision, a person chooses the option that appears to offer the most hope for success. This is true even if the person tries to complete the schedule multiple times.
Tries affect hopes which affect tries. One try differs from the next because the hopes of options are different. What appears best changes with experience with the problem.
Hope Combines AspectsHope is the result of evaluating many aspects. Option-hope is a single quantity that can be used to compare options.
The option-hope combines the results of evaluating...
Static and dynamic aspects are particular to the problem domain. For each aspect, you write a bit of code that evaluates the aspect and assigns a goodness value.
The strategic aspects are handled by the High-Hope classes. You create subclasses for the objects in your problem. An application assembles a problem using these subclasses.
Fear, Greed and CuriosityIn the High-Hope technique, the strategic aspects are emotions. The use of the word "emotion" and the names of the emotions are misleading because the words have multiple subtle meanings.
The strategic aspects that contribute to hope are fear, greed and curiosity:
Fear is the feeling that something bad may happen. Fear causes you to avoid an option that has been a problem in the past. Fear starts at Neutral and becomes more negative as an option is involved in unsuccessful tries.Hope = Fear + Greed + Curiosity
Hope is a SumA hope resolves to a goodness. Aspects that contribute to a hope resolve to a goodnesses. Aspects can be combined by adding, if goodnesses are implemented like...
VeryVeryBad = -1024 VeryBad = -512 QuiteBad = -256 Bad = -64 FairlyBad = -32 SomewhatBad = -8 SlightlyBad = -2 VerySlightlyBad = -1 Neutral = 0 VerySlightlyGood = 1 SlightlyGood = 2 SomewhatGood = 3 FairlyGood = 4 Good = 5 QuiteGood = 6 VeryGood = 7 VeryVeryGood = 8The lack of symmetry around Neutral is a reflection of the fact that the worse an aspect is, the more important it is. There may be, for example, a variety of good aspects to setting the alarm clock an hour later, but if one of them is probably getting fired, it's probably a bad option.
HypothesisThe author would like to humbly propose the hypothesis that people and other animals evolved the use of this technique, and evolved emotions as a way of making decisions, because it is so easy to implement.
It is simpler to hard-wire reasons for a deer to become more afraid than it is to hard-wire the decision to run away. The technique can be implemented simply in neurons or electronics or a programming language.