I have found rather an effective way to teach a computer to play renju and

gomoku. These games attracted me with a special simplicity of rules. Maybe

it's because I'm a physisist by education.

The aim in both renju and gomoku is to build a continuous row of five

belonging to the player stones in the squares of a 15x15 playing board.

Unlike chess, where the number of pieces decreases during the game, in renju

and gomoku their number increases and so does the number of their types. The

word "piece" here means not single stones but their certain geometrical combin-

ations. Along only any line the number of combination types exceeds 20.

In order to play renju well you must at least recognize these combinations.

Large number of combinations in renju makes purely scanning approach

impossible. Maybe that explains why authors of the first algorythms dropped

the scanning approach altogether. They based their decision on the supposition

that it was possible to build an ideal choice function as a function of state

of 40 squares belonging to lines which are crossing on the analyzed square.

But a simple example refutes this contention. It's easy to cite a position

where the winning quality of a move to a certain square is affected by state

of another square on the opposite side of the board. So even if there exists

an ideal value function it is a function of a much greater number of squares

most likely of all squares on the board. Nobody could build such a function


The most intricate thing in building an effective algorythm for games with

high coefficient of branching is to find a reasonable ratio between the

quantity of the needed scanning which depends on the quickness of the algorythm

and the effectiveness of the choice function.

A good choice function allows us to reduce the number of scanned variants

for a certain position and to increase the probability that those scanned

variants will include one of the best moves.

As a rule the more effective the function the higher price in calculation

we have to pay. So we have to reduce the tree to scan.

On the other hand if we use a simple choice function for games with

high coefficient of branching we get an interesting effect. With large

quantities of scanning the quality of playing nearly stops to grow with the

growth of scanned volume. It is easily understandable if you take into account

that in order to get a reliable appraisal of the situation on a greater depth

we shall have not only to deepen but also to widen the tree on all lesser

depths. Otherwise mistakes will happen.

To my mind most of renju programs which exist now on modern computers reach

this threshold of scanning "saturation". Experience shows that the more

intricate the euristics are used in a program the better it plays.

Maybe it will be appropriate to make a comparison with a human brain here.

Most games played by a man have such a wide variety of possible choices that

a scanning approach is out of the question. So Nature didn't strive to endow

a human with an ability to go through a million of possibilities a second.

Instead it gave him the ability to choose one-two variants out of a multitude.

It's called intuition.

So a realistic way to building effective algorythms which analyse multi-

possibility situations goes through improvement of choice functions.

For instance, a strong effect can be achieved through use of a dymamic

choice function which forms the next move not only upon the analysis

of a static position but also upon the information which comes up in the

process of scanning. Such a function imparts goal-oriented quality to the

process of scanning.

Artyom Shaposhnikov