【发布时间】:2014-09-11 12:48:26
【问题描述】:
这是我在这里的第一篇文章,我正在为我的学习 Java 程序员的学校项目团队发帖。所以我们不是好的程序员。 如何添加约束以使 Optaplanner 将讲座移动到特定的房间类型。 例如,我想将讲座“编程”移动到计算机室,将讲座“数学”移动到普通房间。但是在我的约束下,它声明了硬约束,但不会在他们的房间里移动讲座。这应该是一个负面约束。所以显示了这个硬约束的负分,但它仍然不会被解决/移动。
这是约束:
rule "computerroom"
when
$room : Room($computerroom : computerroom)
$course : Course(computerroom == $computerroom)
then
scoreHolder.addHardConstraintMatch(kcontext, -1);
end
我们向 Room 类添加了一个新变量,如下所示:
package org.optaplanner.examples.curriculumcourse.domain;
import com.thoughtworks.xstream.annotations.XStreamAlias;
import org.optaplanner.examples.common.domain.AbstractPersistable;
@XStreamAlias("Room")
public class Room extends AbstractPersistable {
private String code;
private int capacity;
private boolean computerroom;
public String getCode() {
return code;
}
public void setCode(String code) {
this.code = code;
}
public boolean getComputerroom() {
return computerroom;
}
public void setComputerroom(boolean computerroom) {
this.computerroom = computerroom;
}
public int getCapacity() {
return capacity;
}
public void setCapacity(int capacity) {
this.capacity = capacity;
}
public String getLabel() {
return code;
}
@Override
public String toString() {
return code + " {C" + capacity + "}";
}
}
你有什么建议吗?
另一件小事:Optaplanner 可以处理大量数据: 我们如何增加解决问题的最大秒数?因为我们尝试了超过 1152 的其他值,但它不起作用。 这只是一个小问题,约束更重要,但我们很乐意让程序运行!
问候 2014年9月
【问题讨论】:
标签: java constraints optaplanner