Привет всем opatplanner пользователей,optaplanner @ValueRangeProfider для булева переменного планирования [optaplanner]
Моего проблема планирования является: получение действительного графика дистанционных зондирования спутников.
@PlanningEntity:
ImageStrip (String taskCode,
int stripIndex,
String satellite,
Timestamp timeSlot,
boolean selected (planning variable))
@PlanningVariable:
boolean selected
Мои проблемные данные первична так:
Image_strip:
D 1 SAT2 22-12-2015 11: 02: 24,051
D 1 Sat1 22-12-2015 11: 03: 24,069
А 2 Sat1 22-12-2015 11: 04: 24,122
А 2 SAT3 22 -12-2015 11: 06: 24,172
B 2 SAT3 22-12-2015 11: 07: 24,197
B 2 SAT2 22-12-2015 11: 08: 24,284
D 1 SAT3 22-12-2015 11 : 10: 24,042
А 3 Sat1 22-12-2015 11: 10: 24,395
А 2 SAT2 22-12-2015 11: 10: 24,441
А 1 SAT2 22-12-2015 11: 11: 24,456
C 2 Sat1 22-12-2015 11: 12: 24,465
B 1 Sat1 22-12-2015 11: 13: 24,469
B 1 SAT2 22-12-2015 11: 14: 24,551
С 2 SAT2 22-12 -2015 11: 15: 24,556
B 1 SAT3 22-12-2015 11: 16: 24,642
С 2 SAT3 22-12-2015 11: 17: 24,648
С 1 SAT3 22-12-2015 11:18 : 24,738
А 3 SAT3 22-12-2015 11: 19: 00,469
А 1 Sat1 22-12-2015 11: 20: 24,123
С 1 SAT2 22-12-2015 11: 20: 24,827
С 1 Sat1 22-12-2015 11: 21: 24,916
B 2 Sat1 22-12-2015 11: 30: 24,373
А 3 SAT2 22-12-2015 11: 40: 50,750
А 1 SAT3 22-12-2015 11: 50: 24,789
@PlanningSolution: Расписание
Пожалуйста, вопрос, как я могу определить поставщик диапазона значений просто логическую переменное планирование? Также я хочу использовать @PlanningVariable (nullable = true) для моей переменной планирования.
т. Е. @ValueRangeProvider для переменной планирования (выбираемой из булина), определенной в расписании. И используйте условие ограниченного планирования (nullable = true).
Мое правило заключается в следующем:
правил "Время переход Правила"
when
$leftImageStrip:ImageStrip($selected : selected,
$satellite : satellite,
selected != null,
$timeslot : timeslot)
$sumTime : Number() from accumulate (
$rightImageStrip : ImageStrip(selected == $selected,
satellite == $satellite,
Math.abs(timeslot.getTime() - $timeslot.getTime()) <= 180000,
this != $leftImageStrip),
sum($rightImageStrip.gain))
then
System.out.println(" SUM = " + $sumTime);
scoreHolder.addHardConstraintMatch(kcontext, -$sumTime.intValue());
я сделал следующее в объекте планирования:
@PlanningVariable (обнуляемый = истинный, valueRangeProviderRefs = { "selectedRange"})
public Boolean getSelected() {return selected; }
И в решении планирования я поставил следующее:
@ValueRangeProvider (ID = "selectedRange")
Список getValueRange() {вернуться Arrays.asList (Boolean.FALSE, Boolean.TRUE) ; }
открытый список getBooleanList() {return selectedList; }
public void setBooleanList (List selectedList) {this.selectedList = selectedList; }
Но я получил следующее сообщение об ошибке:
Исключение в потоке "АВТ-EventQueue-0" java.lang.IllegalArgumentException: entityClass (класс org.tasking.domain.ImageStrip) имеет PlanningVariable) аннотированный недвижимость (выбрано) со значениемRangeProviderRef (selectedRange), который не существует в зарегистрированном PlanningSolution или PlanningEntity.
Я не могу распознать причину ошибки. спасибо заранее!
Спасибо большое, но у меня есть проблема. Я сделал следующее: \t @PlanningVariable (обнуляемым = верно, valueRangeProviderRefs = { "selectedRange"}) \t общественного Логическое getSelected() { \t \t возвращение выбран; \t} в объекте планирования. и в решении планирования я поставил следующее: \t @ValueRangeProvider (ID = "selectedRange") \t Список getValueRange() { \t возвращение Arrays.asList (Boolean.FALSE, Boolean.TRUE); \t} \t общественности Список getBooleanList() { \t \t возвращение selectedList; \t} \t общественного недействительными setBooleanList (Список selectedList) { \t \t this.selectedList = selectedList; \t} , но я получил следующую ошибку: –
Исключение в потоке «AWT-EventQueue-0» java.lang.IllegalArgumentException: Суть класса (класс org.tasking.domain.ImageStrip) имеет связанное с PlanningVariable свойство (выбранное) со значением RangeProviderRef (selectedRange), которое не существует в зарегистрированном PlanningSolution или PlanningEntity. –