A. M. Turing and Marvin Minsky both discuss artificial intelligence, but from opposite polarities. Turing talks about a method of testing if a machine is intelligent. There is no talk of how the machine is to be made intelligent. Turing talks about intelligence in terms of human intelligence. Even though he plays indulgent with an idea that intelligence might be of a different type, but there’s no elaboration on that. Turing say’s replicating intelligence in a machine may be possible if we have magnitudes of memory and processing power, but mostly on the ideology of how each of the human thinking elements might be embedded into a machine. Turing designs a test (the Turing test) for testing the described intelligence of a machine. He says, even the test itself tests one testable instance of intelligence – the ability to converse and to deceive in a conversation. This, though very elaborate as a process of thought and action, is still a singular instance of intelligence, as there may be multiple others that might not even overlap with this ideology of intelligence as tested through the Turing test.

Minsky takes a definitive approach to the process of putting intelligence into machines. He chalks out a complete process, which must be followed for a machine to intelligently solve complex problems. The complete problem of achieving this state is called “Heuristic programming”. This is divided into five main areas:

1.  Search

2.  Pattern Recognition

3.  Learning

4.  Planning

5.  Induction

Simply explained – The whole idea begins with a search. When a problem is encountered for which we can check a proposed solution, the correct solution may be found by searching the solution space. The problem becomes complex as the solution space increases (or vice versa). It is imperative that we find some method of looking through that solution space in a manner so that we don’t have to traverse all the solutions in it. We need to get a general idea of the upward slope of the accuracy of solutions, then just climb the slope and get the most accurate solution from the top of the slope (hill climbing). For hill climbing, solutions need to have some relations among themselves so that a direction may be defined for the slope.

A single search method (to search the solution) is highly impractical when we think of any type and number of problems. There must be different methods for different types of problems according to which method solves which problem best. But now the problem is classification of problems based on the type of methods that can solve them best. Pattern recognition is just for this task. Through pattern recognition, problems are categorized, and the best method to solve it may be applied.

The previous processes will start afresh each time for each problem from a new dimension if the system didn’t learn anything from the previous cases. If a problem is successfully solved by a particular method, the system should remember that this type of problem is effectively solved by this method. Thereafter, problems of this type may be referred to this method. If the method is not suited for a certain problem, which was tried by it, it too is learnt by the system. This way the system does not recommend pairing methods and problems that don’t produce the best solutions.

Planning comes into the picture when problems become so highly complex that they may be broken down into smaller parts for the machine to be more effectively able to solve it. Each of these sub-problems must be effectively solved for the entire problem to be solved. For each of these sub-problems the very steps should be taken, as those for a single problem. A new problem arises, as in this case a coordination/synchronization is also required. Sub-problems should be solved to achieve an answer for the complete problem, so there is much less scope for error in the sub-problem solution search.

Induction is akin to discovering a grammar to a language which allows you to create previously unknown, yet, technically (may not be semantically) correct sentences in the language. It is like forming a model of a structure, which helps one learn, relate, predict, estimate, etc. how the structure will perform and act.

All these factors contribute to a mechanical representation of intelligent problem solving techniques in heuristic programming. A proposed key to Artificial Intelligence by Marvin Minsky.

Turing’s and Minsky’s ideas differ in the manner described in the beginning of this article.

The blocks-world arch-learning example talks about a program which learns how to build a concept via line drawings, by using blocks. It produces structures in blocks which represent the concept that is drawn, sometimes though, there are near misses, when the structure doesn’t quite materialize. Learning, as defined by Minsky, could be an integral part in this program, as the program can learn which block is capable of supporting which block and which cannot support anything (sphere most probably cant support another block). Such factual learning is important, as also lessons on efficiency, such as, two triangles when married along their hypotenuse (which is equal) is equivalent to a rectangle.

Conclusion – Intelligence as describable via machines is achievable through heuristic programming. This type of programming is done to solve problems intelligently, problems whose methods are not directly hard coded into the machines to which each problem may be manually fed. This follows a five point architecture – 1) Search, 2) Pattern Matching, 3) Learning, 4) Planning and 5) Induction. Following a defined architecture on these points increases the programmability of intelligence-oriented programs. This is ONE manner of defining an intelligent process; it may or may not be the only one.