Artificial Intellegence Patterns

-- Architecture
-- Original
-- for Abstraction
-- for Problems

-- Emotion Patterns

C++ Implementation



Emotion AI Patterns

Fearful Flight

Using the emotion of fear to decide when to take some special action.

Model Application:
A deer, eating some nice grass, but watching, listening and smelling for signs of predators, runs away if it becomes sufficiently afraid.

Reason for Using this Pattern:
It is simpler to hard-code a bunch of independent reasons to be more afraid than it is to hard-code when a deer should run away. You get more sophisticated behavior with less complexity.

General Application - may be used to:
monitor a situation with many changing variables to decide when it would be appropriate to take some special action.

Practical Applications:

  • intruder detection
  • patient monitoring
  • process monitoring

Fight or Flight

This is am implementation of defensiveness, the combination of fear and greed.

Using the emotions of fear and greed to decide whether to continue or abandon a risky but (potentially) rewarding option, activity or venture.

Model Application:
A dog with a bone is challenged by another dog and must either fight or run away.

Reason for Using this Pattern: When there is a significant downside to running away, in addition to a significant downside to not running away when you should, this pattern provides more sophistication than the Fearful Flight pattern. Herbivores can get by with just fear; carnivores, with wealth to acquire and defend, require greed.

General Application - may be used to:
monitor a changing situation, in which a decision has been made to do something that offers both risk and potential reward, to decide when it would be appropriate to reverse the decision.

Practical Applications:

  • speculating
  • making mission go/no-go decisions

Curious Crow

Use the emotions of fear, greed and curiosity to decide which option to choose.

Model Application
A crow, which is a scavenger who lives only so long as it finds new sources of food, sees some new thing and decides whether to investigate.

Reason for Using this Pattern:
This pattern uses curiosity, the desire to explore the unknown, to provide more sophistication than the Fight or Flight pattern when it is desirable to explore the unknown.

General Application - may be used to:
decide when it is appropriate to pursue what is know (with its potential risks and rewards) versus explore new possibilities where both the risks and rewards may be greater.

Practical Applications:

  • finding solutions to arbitrarily constrained hard problems
  • exploring just about anything