next up previous
Next: Towers of Hanoi Up: Experiments: 60 Successive Tasks Previous: Experiments: 60 Successive Tasks


On Task-Specific Initialization

Besides the $61$ initial primitive instructions from Sections A.2.1, A.2.2, A.2.3 (appendix), the only user-defined (complex) tokens are those declared in Section A.3 (except for the last one, TAILREC). That is, we have a total of $61+7=68$ initial non-task-specific primitives.

Given any task, we add task-specific instructions. In the present experiments, we do not provide a probabilistic syntax diagram defining conditional probabilities of certain tokens, given previous tokens. Instead we simply start with a maximum entropy distribution on the $n_Q >68$ tokens $Q_i$, initializing all probabilities $p_i= \frac{1}{n_Q}$, setting all $p[curp][i]:=1$ and $sum[curp]:=n_Q$ (compare Section A.1).

Note that the instruction numbers themselves significantly affect the initial bias. Some instruction numbers, in particular the small ones, are computable by very short programs, others are not. In general, programs consisting of many instructions that are not so easily computable, given the initial arithmetic instructions (Section A.2.1), tend to be less probable. Similarly, as the number of frozen programs grows, those with higher addresses in general become harder to access, that is, the address computation may require longer subprograms.

For the experiments we insert substantial prior bias by assigning the lowest (easily computable) instruction numbers to the task-specific instructions, and by boosting (see instruction boostq in Section A.2.3) the appropriate ``small number pushers'' (such as c1, c2, c3; compare Section A.2.1) that push onto data stack ds the numbers of the task-specific instructions, such that they become executable as part of code on ds. We also boost the simple arithmetic instructions by2 (multiply top stack element by 2) and dec (decrement top stack element), such that the system can easily create other integers from the probable ones. For example, without these boosts the code sequence (c3 by2 by2 dec) (which returns integer 11) would be much less likely. Finally we express our initial belief in the occasional future usefulness of previously useful instructions, by also boosting boostq itself.

The following numbers represent maximal values enforced in the experiments: state size: $l(s)=3000$; absolute tape cell contents $s_i(r)$: $10^9$; number of self-made functions: $100$, of self-made search patterns or probability distributions per tape: $20$; callstack pointer: $maxcp=100$; data stack pointers: $maxdp=maxDp=200$.


next up previous
Next: Towers of Hanoi Up: Experiments: 60 Successive Tasks Previous: Experiments: 60 Successive Tasks
Juergen Schmidhuber 2004-04-15

Back to OOPS main page