return new PooledEntityPlacer(moveSelector);
}
private MoveSelectorConfig buildMoveSelectorConfig(HeuristicConfigPolicy configPolicy) {
EntityDescriptor entityDescriptor = deduceEntityDescriptor(configPolicy.getSolutionDescriptor());
EntitySelectorConfig entitySelectorConfig = buildEntitySelectorConfig(configPolicy, entityDescriptor);
Collection<GenuineVariableDescriptor> variableDescriptors = entityDescriptor.getGenuineVariableDescriptors();
List<MoveSelectorConfig> subMoveSelectorConfigList = new ArrayList<MoveSelectorConfig>(
variableDescriptors.size());
for (GenuineVariableDescriptor variableDescriptor : variableDescriptors) {
subMoveSelectorConfigList.add(buildChangeMoveSelectorConfig(
configPolicy, entitySelectorConfig.getId(), variableDescriptor));
}
// The first entitySelectorConfig must be the mimic recorder, not the mimic replayer
((ChangeMoveSelectorConfig) subMoveSelectorConfigList.get(0)).setEntitySelectorConfig(entitySelectorConfig);
MoveSelectorConfig moveSelectorConfig;
if (subMoveSelectorConfigList.size() > 1) {