public override Tuple<int, int> GeneratePerceptAndUpdate()
{
int[] perceptSymbols = this.ContextTree.GenerateRandomSymbolsAndUpdate(this.Environment.perceptBits());
/*for (int k = 0; k < percept_symbols.Length; k++) {
MyLog.INFO.WriteLine("perc #" + k + " is "+percept_symbols[k]);
MyLog.Writer.FlushCache();
}*/
Tuple<int,int> OandR = this.decode_percept(perceptSymbols);
int observation = OandR.Item2;
int reward = OandR.Item1;
this.TotalReward += reward;
this.LastUpdate = PerceptUpdate;
return new Tuple<int, int>(observation, reward);
}