@Override public List<QValue> getQs(State s) { StateHashTuple sh = this.stateHash(s); Map<String, String> matching = null; StateHashTuple indexSH = mapToStateIndex.get(sh); if (indexSH == null) { // then this is an unexplored state indexSH = sh; mapToStateIndex.put(indexSH, indexSH); } if (this.containsParameterizedActions && !this.domain.isNameDependent()) { matching = sh.s.getObjectMatchingTo(indexSH.s, false); } List<QValue> res = new ArrayList<QValue>(); for (Action a : actions) { List<GroundedAction> applications = s.getAllGroundedActionsFor(a); for (GroundedAction ga : applications) { res.add(this.getQ(sh, ga, matching)); } } return res; }