throw new UnsupportedOperationException();
}
@Override
public Iterator<Move> createRandomMoveIterator(ScoreDirector scoreDirector, Random workingRandom) {
CheapTimeSolution cheapTimeSolution = (CheapTimeSolution) scoreDirector.getWorkingSolution();
Map<Machine, List<TaskAssignment>> positivePillarMap = new LinkedHashMap<Machine, List<TaskAssignment>>(
cheapTimeSolution.getGlobalPeriodRangeTo());
Map<Machine, List<TaskAssignment>> negativePillarMap = new LinkedHashMap<Machine, List<TaskAssignment>>(
cheapTimeSolution.getGlobalPeriodRangeTo());
List<TaskAssignment> taskAssignmentList = cheapTimeSolution.getTaskAssignmentList();
int pillarCapacity = (taskAssignmentList.size() * 2 / cheapTimeSolution.getMachineList().size()) + 1;
for (TaskAssignment taskAssignment : taskAssignmentList) {
Machine machine = taskAssignment.getMachine();
Task task = taskAssignment.getTask();
Integer startPeriod = taskAssignment.getStartPeriod();
if (startPeriod != null) {