7. Game playing.
General game playing is the design of artificial intelligence programs to be able to play more than one game successfully. For many games like chess, computers are programmed to play these games using a specially designed algorithm, which cannot be transferred to another context. For example, a chess playing computer program cannot play checkers. A General Game Playing system, if well designed, would be able to help in other areas, such as in providing intelligence for search and rescue missions. General Game Playing is a project of the Stanford Logic Group of Stanford University, California, which aims to create a platform for general game playing. The games are defined by sets of rules represented in the Game Description Language. In order to play the games, players interact with a game hosting server that monitors moves for legality and keeps players informed of state changes. There are other general game playing systems, which use their own languages for defining the game rules. In 1992, Barney Pell developed the system Metagame. This system was able to play a number of chess- like games, given game rules definition in a special language. In 1998, the commercial system Zillions of Games was developed by Jeff Mallett and Mark Lefler. The system used a LISP-like language to define the game rules.
Problem solving.
Problem solving consists in using generic or ad hoc methods, in an orderly manner, for finding solutions to problems. Some of the problem-solving techniques developed and used in artificial intelligence, computer science, engineering, mathematics, medicine, etc. are related to mental problem- solving techniques studied in psychology. In computer science and in the part of artificial intelligence that deals with algorithms, problem solving encompasses a number of techniques known as algorithms, heuristics, root cause analysis, etc. In these disciplines, problem solving is part of a larger process that encompasses problem determination, de-duplication, analysis, diagnosis, repair, etc.
The following techniques are usually called problem-solving strategies:
Abstraction: solving the problem in a model of the system before applying it to the real system;
Analogy: using a solution that solves an analogous problem;
Brainstorming: (especially among groups of people) suggesting a large number of solutions or ideas and combining and developing them until an optimum is found;
Divide and conquer: breaking down a large, complex problem into smaller, solvable problems;
Hypothesis testing: assuming a possible explanation to the problem and trying to prove (or, in some contexts, disprove) the assumption;
Lateral thinking: approaching solutions indirectly and creatively;
Means-ends analysis: choosing an action at each step to move closer to the goal;
Method of focal objects: synthesizing seemingly non-matching characteristics of different objects into something new;
Morphological analysis: assessing the output and interactions of an entire system;
Proof: try to prove that the problem cannot be solved. The point where the proof fails will be the starting point for solving it;
Reduction: transforming the problem into another problem for which solutions exist;
Research: employing existing ideas or adapting existing solutions to similar problems;
Root cause analysis: identifying the cause of a problem;
Trial-and-error: testing possible solutions until the right one is found.
