0
public class VehicleUpdatingVariableListener implements PlanningVariableListener<Customer> {}
上記のクラスは7.2で削除されました。 私のOptaplannerの実装では、上記のクラスの中にupdateVehicleメソッドの内部にピースコードを書いています。VehicleUpdatingVariableListenerはバージョン6.0の7.2 optaplannerから削除されました
protected void updateVehicle(ScoreDirector scoreDirector, Customer sourceCustomer) {}
追加されたコードは、車両が顧客で更新されたときに使用されます。相手の車両も更新しました。 相当品:余分なシャドウ変数が追加されました。
私はバージョン7.2でどうすればよいですか?
編集1
protected void updateVehicle(ScoreDirector scoreDirector, Customer sourceCustomer) {
Standstill previousStandstill = sourceCustomer.getPreviousStandstill();
Vehicle vehicle = previousStandstill == null ? null : previousStandstill.getVehicle();
Customer shadowCustomer = sourceCustomer;
while (shadowCustomer != null && shadowCustomer.getVehicle() != vehicle) {
scoreDirector.beforeVariableChanged(shadowCustomer, "vehicle");
scoreDirector.beforeVariableChanged(shadowCustomer.getCounterpartCustomer(),"vehicle");
shadowCustomer.setVehicle(vehicle);
scoreDirector.afterVariableChanged(shadowCustomer, "vehicle");
scoreDirector.afterVariableChanged(shadowCustomer.getCounterpartCustomer(),"vehicle");
shadowCustomer = shadowCustomer.getNextCustomer();
}
}
迅速な対応のため@GeofferyDeSmet感謝。 ArrivalTimeUpdatingVariableListenerはarrivalTimeを更新するためのものですが、Vehicle Shadow変数を更新します。コードスニペットで質問を編集しました –