Artificial Intelligence for Problem Solving – Core Principles
1. The general idea is that every decision that a human makes takes time and mental energy. Time and energy can be saved by removing the human from the decision making process. If multiple people are having to make the same decisions every day, the savings can be multiplied if those individuals can share the automated process. The process has to be automated once, but multiple people can benefit from it every time they use the automated process. Instead of automating a single process, the ultimate goal is to automate the process of making the decisions involved in automating all processes.
2. Find the differences between the Actual and the Ideal. The first step is to define the Ideal. The second step is define the Actual. Once the Ideal and Actual have been defined, you can search for the differences (delta) between them. Finally, you need to translate each of those differences into actions that you know how to perform and apply them to the actual in order to transform the actual into the ideal – in order to “turn the water into wine.”
3. Use the “Known” to explain the “Unknown”. Metaphors work by using the “Known” to explain the “Unknown.” J.J. Thomson’s “plum pudding model of the atom” is a great example of how we use metaphor to transform what is unintelligible into what is intelligible. J.J. used the simple image of a plum pudding that everyone could understand in an attempt to explain what was very complicated – the internal workings of an atom. He used the “Known” to explain the “Unknown.” Similarly, in order to automate any process, I need to get all of the meanings that I have stored in my brain for the process translated into a language that the computer can understand. I need to connect what I know with what I currently do not know, which is how the computer would perform the operation.
4. Use Knowledge Base to store Translations. A knowledge base can be used to store the translations between my understanding of something (represented in human language) and the computers understanding (scripts written in computer language). The knowledge base serves as a key-value pair dictionary, with the human language as the “key” and the script in computer language as the ultimate “value.” In IdealAutomate, the scripts are actually little C# WPF applications.
IBM’s Watson is the best example of using a knowledge base for problem solving that I know. Watson is a software application that can translate natural language into structures that the computer can understand. In 2011, IBM “dumped” tons of trivia into Watson’s knowledge base, and that allowed Watson to beat the reigning human champions in Jeopardy. After that, they “poured” hundreds of thousands of medical journal articles into the knowledge base, and now Watson can rival human doctors in diagnosing illness from a list of symptoms.
5. Use Forward Chaining and Backward Chaining. You can use “forward chaining,” where you start with the actual and work towards the ideal. You can also use “backwards chaining,” where you start with the ideal and work backwards towards the actual. You can also use a combination of forwards and backwards chaining.
6. Build a bridge between the Actual and the Ideal. The general idea is that you have a number of component parts of things that you know how to do contained in a library called a knowledgebase. Then, you use forward or backward chaining to try to build a bridge between the actual and the ideal in the same way that MapQuest finds the shortest distance between two geographical locations. In the MapQuest analogy, the component building block pieces that have been automated are represented by the “roads” that can be used to get from Point A to Point B. Just as hundreds of thousands of roads had to be built before MapQuest could find the shortest route between A and B, many human understandings of how to perform specific skills will need to be translated into computer language. Each of these translated skills is represented by a “road” in the MapQuest analogy. Once all of the required skills are translated and stored in a knowledge base, problem solving software will be able to take any problem and navigate the shortest path to a solution.
The fact that hundreds of thousands of human skills need to be translated into computer language is why open source may be a good approach to building this problem-solving software. IdealAutomate is my attempt to start this kind of open source project. The name “IdealAutomate” refers to the fact that the goal of the software is to automate the process of turning Actual things into their Ideals.