public float[] SelectAction() { int[] s_tt = Ds.GetCurrentState(); float[] utils; // use own asm to select one action? if (m_setup.UseHierarchicalASM) { utils = this.Rescale(m_asm.SelectAction(Mem.ReadData(s_tt))); } else { utils = this.Rescale(Mem.ReadData(s_tt)); } if (m_setup.PropagateUtilitiesInHierarchy) { float myMot = this.GetMyTotalMotivation(); Ds.PromoteUtilitiesToChilds(utils, myMot); } this.MarkSelection(utils); return(utils); }