A Mind for a selected World (i.e. Hanoi Tower). The purpose of the Mind is to generate an optimal solution by solving the World's problem in the shortest number of moves. The problem is to be solved using any desired method (hand-coded, search, etc...) and is to be coded in the Java programming language. From an Artificial Intelligence point of view, this illustrates a problem as the World has been previously coded to include specific actions and states which limits the possible solutions to the problem. The priority of this assignment is to create an intelligent mind that can learn and understand its surroundings. This challenge is extremely difficult but creating an optimal solution can lead to countless benefits. Unfortunately adapting an optimal solution to a World with predefined states and actions is vastly complicated in completing. I found that when generating various scenarios, test cases, and an optimal solution to the problem, I discovered that every issue that arose was due to the strict rules and actions placed upon the disks and pegs. A simplistic Mind cannot be relied upon as it is forced to co-operate with the rules of the game, otherwise an infinite loop occurs.
In order to create a learning mind, a reliable and efficient world is required. Hanoi Tower is a reliable World, however the World lacks efficiency. The Hanoi Tower problem is a unique problem to pursue a solution to.
There are 3 approaches to the problem (further research is provided in documentation online)
- Predictability
- Recursion
- Mathematical
The Hanoi Tower World is a reliable world with a fixed state at the beginning of the Mind. By collaborating with the Actions and States of the World, the optimal solution can be solved in advance of the Mind's initialisation. Therefore, a predictability approach seems logical to pursue due to the constraints placed upon the Mind, in relation to Actions and States. By adapting the predictability approach, a solution can be generated by ensuring that all possible outcomes are foreseen and acted upon. This assists in determining that all scenarios the World has created are solved.
I realised that, due to Actions provided in the World, my efforts should be focused primarily on more basic solutions, rather than complex solutions. The reason for this is because there are an extremely limited number of solutions for this World, due to strict Rules, Actions and States being enforced. Before I began coding, I wrote out all possible steps to get from Peg A to Peg B or Peg C. Upon my research, I discovered that the shortest way to solve the problem is '2n - 1'. I wrote down a successful step-by-step approach that led to a total number of moves of 31. This satisfies the shortest solution: 2(5) - 1 = 31, where 5 equals the number of disks. When I was satisfied that I had explored the most optimal steps, I transformed my solution into code. I wished to invoke a more intelligent solution, rather than a list of Actions called in the correct order. My ideal procedure was to allow the Mind to check if the rings were all on a correct peg. Each step of the solution was unique and this avoided any confliction in the process. For simplicity reasons, I split the scenarios into their own private methods. Each method indicated what Action was to be invoked by the Mind. Upon the completion of the source code, the Mind runs in a recursive state, constantly checking and choosing the correct moves as it pursues a completed State.
After submitting my Mind online, I verified its operational performance. As the goal of the problem is to find the solution with the shortest score and having the World starting in a fixed state, relinquishes any competitiveness within the execution of the Mind. As audiences interact with the Mind, they’ll discover that the final score will be 19 (50 -31).
HanoiTower is a well written World and provides and an excellent incentive in which Artificial Intelligence may be developed. While proving to be an interesting problem, I do not believe the World has incorporated the correct Actions, as I have found its limitations to be a deteriorating factor in the solutions that I originally intended to pursue. This is in relation to my discoveries in the mathematical approach to the World (refer to references), which provided an interesting technique in regards to Artificial Intelligence algorithm development.
The following references are linked to my Mind’s description (which I have added my personal research information in the form of .html files)
HanoiTower Description http://w2mind.computing.dcu.ie/minds/SeanMind/index.html
HanoiTower World Description http://w2mind.computing.dcu.ie/minds/SeanMind/hanoi_tower_description.html
HanoiTower Mathematical Research http://w2mind.computing.dcu.ie/minds/SeanMind/state_calculations.html http://w2mind.computing.dcu.ie/minds/SeanMind/state_patterns.html