Team Number: Team 008
School Name: Albuquerque Academy
Area of Science: Computer Science:A.I.
Project Title: Artificial Intelligence and Computational Learning
The goal of our project is to write a computer program that is initially incapable of performing a certain task. The program will then use artificial intelligence to learn how to achieve its goal by analyzing its own behavior, human behavior and another program's behavior. We will also explore our A.I. program's ability to learn through another program we will call a mentor program. The "mentor" will have the ability to analyze our programs decisions and tell it whether its decisions are correct or incorrect.
To accomplish this we will create a situation that requires intelligent decision-making to accomplish a set goal. A perfect situation that requires this kind of intelligence and knowledge is the game of chess. Chess will be our model of a complex problem with which we will analyze our "teaching" techniques. To accomplish our goal we will investigate several programming techniques, such as genetic algorithms, generational programming, and neural networks, to determine what methods produce the best results. This will help us determine how a computer learns best, which will help programmers with even larger problems to efficiently solve them.
Up to this date we have spent time on our "mentor program" which we are writing using traditional chess algorithms and programming techniques. This program will be able to keep our experimental Artificial Intelligence program on track and will also serve to mark its progress. The traditional techniques formally mentioned involve tree-searching, depth-first alpha-beta search algorithms, and quiescence searches to find the best moves for different positions.
Our goal is to move away from the traditional type-A strategy and create a program that depends more on type-B strategies. Type- A searching involves brute-force tactics with little tribute to theoretical knowledge. Type-B involves more intelligent calculations based on theoretical knowledge and analysis of similar positions. Type-B requires less processing power but is more difficult to program. Our hope is to create a program that can independently move towards type-B playing; which essentially would mean it is becoming more intelligent.
As programmers we know that computers are dumb, but like most 'dummies' they can learn. We have chosen as a source for the theoretical knowledge required for our A.I. program the book Chess for Dummies by James Eade. This book takes a very logical step-by-step approach to the concepts of chess and can take most any aspiring amateur into new levels of chess. Although it was designed for humans we intend to 'translate' the concepts of the book into code that our program can understand.
We plan to divide the knowledge in the book by chapter and compare the programs 'intellectual' gain by having different generations play each other. For example, by analyzing a game between a program with knowledge up to chapter 5 with another that has had chapter 6 added to it we can discover which principals are the most helpful and which are more trivial. We highly anticipate the results of applying the 'Dummy' knowledge to our program and using it to learn more about chess and the importance of theoretical knowledge in computing. There is a reason that the best human players in the world are still keeping the best chess programs scrambling through millions of calculated moves to keep up with them. Somehow the computers astronomical superiority in computing ability still can't completely match a humans intelligence which allows him/her to play positionaly. We believe that exploring a computers ability to play this way is one of the keys to the many mysteries of Artificial intelligence and that our project may have a lot to contribute to both the world of computers and the world of chess.