Performance
Upon presentation of an input – a binary string – XCS forms a match set
[M] of classifiers in [P] whose conditions are satisfied by the input. The
condition is satisfied if and only if each of its non-# positions is the same
as the corresponding bit of the input string.
[If no classifiers match, the input is “covered” by creating matching classifiers
with each of the possible actions, and placing them in [M]. Each new
classifier’s condition is a copy of the input except that #’s (“don’t cares”)
are inserted with probability P# per position. Parameters are given initial
values. If [P] has reached its allowable maximum N, deletion of classifiers
occurs to make room for the new ones (deletion is generally not necessary;
initial populations are empty and covering normally occurs only at the very
beginning of a run)].
Then, for each action ak represented in [M], the system computes a fitnessweighted
average Pk of the predictions pj of each classifier in [M] having
that action: Pk = j Fjpj /j Fj . Pk is termed the system prediction for
action k.
Next, XCS chooses an action from those represented in [M] and sends
it to the environment. According to the action-selection regime in force, the
action may be picked randomly or otherwise probabilistically based on the
Pk, or it may be picked deterministically – i.e., the action with the highest Pk
is chosen. Finally, an action set [A] is formed consisting of the subset of [M]
having the chosen action.