Routing 需要链式变量的超类/接口信息
对于车辆路径问题,我删除了接口(即停止)并修改了解算器配置(即vehicleRoutingSolverConfig.xml),以将停止entityClass替换为车辆entityClass。还对代码进行了其他更改 但是,我在尝试运行解算器时遇到以下异常 线程“main”java.lang.IllegalArgumentException中的异常:entityClass(类org.optaplanner.examples.vehiclerouting.domain.Customer)有一个带有链接(true)和属性类型(类org.optaplanner.examples.vehiclerouting.domain.Vehicle)的PlanningVariable注释属性(previousVehicle)它不是entityClass(类org.optaplanner.examples.VehiclerRouting.domain.Customer)的超类/接口或与entityClass(类org.optaplanner.examples.VehiclerRouting.domain.Customer)相同Routing 需要链式变量的超类/接口信息,routing,optaplanner,chained,Routing,Optaplanner,Chained,对于车辆路径问题,我删除了接口(即停止)并修改了解算器配置(即vehicleRoutingSolverConfig.xml),以将停止entityClass替换为车辆entityClass。还对代码进行了其他更改 但是,我在尝试运行解算器时遇到以下异常 线程“main”java.lang.IllegalArgumentException中的异常:entityClass(类org.optaplanner.examples.vehiclerouting.domain.Customer)有一个带有链接
我试图理解,为什么optaPlanner要求在另一个实体类(即客户类型)中引用的链变量(即车辆类型)具有相同的超类/接口。请参阅关于链变量的文档。链式变量有许多内置规范:
- 每个链正好有1个锚点和0到n个实体(按顺序)
- 每个实体都指向前一个实体xor锚点,因此链被建模为链表
客户
)和锚点(如车辆
)需要一个公共接口(如静止
),否则实体.getPreviousInChain()
计划变量返回什么类型?两者都可以
至于你得到的错误:它说在那个模型中,一个实体不可能指向另一个实体,所以链不可能超过一个实体