Ghost ProposalFrom Globulation2This is a draft specification of Ghosts for glob2. A Ghost is an artificial mind that records what a human player does and is able to play
ContentsFormal specification of ghostThe ghost is a Turing complete computing machine containing an internal state. It looks at what the human player does and records it. Then its final state can be loaded in the AIGhost that will act like the recorded human. At its creation, it is assigned an initial state S0. Here is the formal algorithm:<verbatim> S{0} = S0; t = 0; while playing { S{t} = F(S{t-1}, U{t}, O{t}); t++; } tFinal = t;</verbatim> Where:
The resulting trained ghost, formaly =S{tFinal}=, can now be used to initialize the ghost AI A: <verbatim> A{0} = I{S{tFinal}} </verbatim> Where:
Classes of ghostsFinding the right learning code for =F= is a very hard problem. So the ease the task, we have defined several classes of ghosts, starting from simple. Level 1 ghostsA level 1 ghost records human actions independently. It is essentielly a table of simplified universe states and actions. The corresponding AIGhost, when faced with a given universe state, will have to compute the order whose corresponding universe state has smallest distance and execute it. This operation is O(n) with the number of recorded universe state, so a universe state clustering algorithm, with probabilistic order choice will be implemented.
Ghost APIFor glob2 to support ghosts, a hook for order filtering has to be created. Just before order execution, it has to read it and update its internal state. | ||