﻿ Game Development

Free JavaScript Editor     Ajax Editor ﻿

Main Page

### Fundamental Understanding

Statistics certainly provide an improvement over the purely theoretical approach, but there is still room for even further understanding. In many cases, the inputs and outputs exhibit more than statistical relationships. This knowledge of the problem domain is acquired in a more analytical fashion.

#### Properties of the Problem

Statistics reveal the big picture, but particular subareas of the problem domain exhibit patterns of their own.

##### Symmetry in the Domain

The different configurations of the variables may be indirectly related. In a certain part of the domain, for example, the values may be identical to another part (or even the opposite values). This is the case for navigation; turning left is the opposite of turning right.

This implies there is duplicate information, which the solution can take advantage of. Large problems will very often exhibit a certain level of redundancy. To extract this information, we need to make use of our own abstract thought and pattern-recognition abilities.

##### Tightness of the Solution

In the problem domain, particular combinations of inputs and outputs are classified as "valid" solutions (see Figure 21.7). For simple problems, the ratio of valid configurations over the total number will be very large (for instance, obstacle avoidance has much freedom in open space). With tougher problems, there will be significantly fewer valid solutions. (For instance, wall following required precise actions in each case.)

##### Variable Complexity of Subdomains

The solution may also vary in complexity in certain parts of the domain. The interdependency of the parameters may depend on other parameters.

In open space, for example, obstacle avoidance is pretty simple because almost any behavior is acceptable. The required output is restricted when the obstacles are nearby.

#### Nature of the Problem

Analysis of the problem parameters can reveal indirect dependencies involving more than just two variables (for instance, symmetry and conditional dependence). Conceptually, we can understand this as a direct dependency with hidden parameters. Expressing these parameters explicitly can help us understand the true nature of the problem (see Figure 21.8).

##### Figure 21.8. The problem has hidden parameters (shot difficulty and proximity) that are mostly independent from each other, but establish dependencies between the inputs and outputs.

This isn't straightforward to understand, so let's use target selection as an example. It's possible to learn to estimate the potential damage of a targeted rocket based on the state of the enemy. However, there's a hidden concept there: the prediction of the enemy's future position. Indeed, the damage estimate depends on this prediction. So, internally, the problem can be split up to expose the prediction aspect. Alternatively, we can use a rough prediction as an additional input to assist the solution.

﻿

Ajax Editor     JavaScript Editor