На основе этого примера из облака проблема балансировки, я пытаюсь удалить клиента из рабочего решения следующим образом:
Location toBeRemovedLocation = customerToBeRemoved.getLocation();
Location lookUpWorkingObject = (Location) scoreDirector.lookUpWorkingObject(toBeRemovedLocation);
scoreDirector.beforeProblemFactRemoved(lookUpWorkingObject);
routingSolution.getLocationList().remove(lookUpWorkingObject);
scoreDirector.afterProblemFactRemoved(lookUpWorkingObject);
Customer workingCustomer=(Customer) scoreDirector.lookUpWorkingObject(customerToBeRemoved);
for (Customer customer : routingSolution.getCustomerList()) {
nextCustomer=customer.getNextCustomer();
if (nextCustomer==workingCustomer) {
scoreDirector.beforeVariableChanged(customer, "nextCustomer");
customer.setNextCustomer(null);
scoreDirector.afterVariableChanged(customer, "nextCustomer");
}
}
scoreDirector.beforeEntityRemoved(workingCustomer);
routingSolution.getCustomerList().remove(workingCustomer);
scoreDirector.afterEntityRemoved(workingCustomer);
scoreDirector.triggerVariableListeners();
В результате у меня получилось вот это исключение:
java.lang.IllegalStateException: сущность (Customer - 6361356485874019865) имеет переменную (previousStandstill) со значением (Customer - 9027426768799526425), которая имеет переменную sourceVariableName (nextCustomer) со значением (null), которое не является этой сущностью. согласованность вашей проблемы ввода для этой переменной sourceVariableName
После этого я попытался также setPreviousStandstill
на null
:
scoreDirector.beforeVariableChanged(customer, "previousStandstill");
customer.setPreviousStandstill(null);
scoreDirector.afterVariableChanged(customer, "previousStandstill");
Но я получил:
java.lang.IllegalStateException: сущность (Customer - 6361368382933429785) имеет переменную (previousStandstill) со значением (Customer - 9027434800388369945), которая имеет переменную sourceVariableName (nextCustomer) со значением (null), которое не является этой сущностью. согласованность вашей проблемы ввода для этой переменной sourceVariableName.
Нужна помощь, пожалуйста.