Is Artificial Intelligence the Best Way to Implement My Application?

Some of the applications that you may think of may be implemented less expensively using traditional approaches instead of AI techniques. Other applications may be beyond the capabilities of current AI techniques to implement cost effectively. Artificial intelligence software is likely to be the best way to implement an application if many of the following characteristics are present:

  • The activity is complex and uses human reasoning and expert knowledge.
  • The activity is normally accomplished manually by a human expert, who has developed his/her skills through extensive and lengthy experience and has considerable knowledge of the field.
  • The activity can be described clearly in considerable detail.
  • An adequate, but not perfect, and timely performance of the activity fulfills the organization’s expectations of the person or software responsible for the activity.
  • Automation of the activity is not amenable to straightforward solution by numerical computation; or, if numerical computation theoretically would provide a solution, it would require a long time to complete or require excessive amounts of resources
  • The activity involves decisions that are usually made based on uncertain, incomplete, probabilistic, or fuzzy knowledge, and that result in outcomes that don’t always turn out to be best in hindsight.
  • The activity occurs in a context that is always changing over time (i.e., is dynamic) so that a better solution is likely to be made by someone (or some software) that can take the changes into account as they happen, rather than set up rules for decision making ahead of time by trying to anticipate what changes may occur. If a person were to continue performing the activity, it would be better performed by empowered employees than ones following rigid rules.
  • People usually use rules of thumb (heuristics) to find solutions, and these rules work most of the time but without guarantee of success.
  • Problems that arise in completing the activity are ill-defined.
  • Success in the activity isn’t much more likely by breaking it up into sub-tasks and working on each part separately. When this is done, it is usually found that the interactions between the sub-tasks are so complex, the sub-tasks can’t really be dealt with independently of each other.
  • The activity can only be successfully performed if the context is which it is performed is taken into account (i.e., a person couldn’t complete it successfully if he or she didn’t pay much attention to what was happening around him or her).
  • The person or software performing the activity is sometimes required to explain the reasons underlying their actions.
  • The activity cannot be successfully automated using conventional software.