As we want to create more and more complex machine with software programs as controllers, we search that it is often needful to create additional types of abstraction on top of the one given by a generic programming language. This is particularly true when the function of the exact calculation needs relays on considerably on details that is only received during the running of the machine.
It is theoretically possible to create an enormous digital computer program or circuit that has a look-up table, in which we calculated the path for all pairs of locations and save them away. Then when we want to search a path, we could simply take in the table at the place corresponding to the initial and goal position and get the computed path. We may create and design a general-purpose algorithm that will result any shortest-path problem in a graph. That algorithm and implementation will be needful for a wide variety of possible answers.
Another example of using internal methods is when the computer has some significant lack of information about the state of the environment. In such conditions, it may be required to explicitly model the set of given possible states of the external world and their related probabilities, and to modify this model over time as new evidence is collected. We will give an example of this approach near the end of the course