我在Scala中使用Drools Planner(用Java编写)时遇到了问题.Drools规划器中的一个接口声明为:
public interface Score<S extends Score> extends Comparable<S>
Run Code Online (Sandbox Code Playgroud)
但是另一个界面使用'Score'作为原始类型:
public interface Solution {
Score getScore();
Run Code Online (Sandbox Code Playgroud)
然后我想在Scala中实现这个接口:
class MySolution extends Solution {
def getScore: Score = ...
Run Code Online (Sandbox Code Playgroud)
我得到一个编译错误:Scala编译器不允许编写'def getScore:Score'.当我尝试添加'Score [_]'或'Score [whatever]'编译器抱怨类型不兼容时.我该怎么办?
我有一个日程安排问题,每个学生表达他对讲座的偏好,同时为所有学生生成课程时间表(如果可能的话,以批处理模式).
根据我的阅读和理解,Drools Planner非常适合解决此类问题.我在我的Eclipse IDE中安装了Drools和GEF.一切都很好.不幸的是,我无法弄清楚如何构建一个简单的项目.
我在网上寻找参考资料,并找到了Drools Planner的例子,这些例子看起来很棒.但是,除了一些代码片段之外,我没有找到任何可以引导人们完成简单案例的好教程.
如何为匹配/日程安排问题建模,其中3名具有独特时间和课程偏好的学生希望注册4门课程?我如何启动代码,在哪里放置约束,我调用哪些类,等等?
任何帮助将不胜感激!!
谢谢!!
java optimization artificial-intelligence drools-planner optaplanner
对于C++或C#中的optaplanner/drools planner,是否有类似的替代品?我只发现了2007年的一个非常古老的C#端口.或者你如何解决C++/C#中的NP-hard优化问题?
c++ optimization constraint-programming drools-planner optaplanner
我正在制作一个使用Drools计划器的应用程序.
该@ValueRangeFromSolutionProperty假设指代属性从另一个类(NQueens在这种情况下).来自@ValueRangeFromSolutionProperty的JavaDocs:
propertyName
The property name of which exists a getter on the Solution that returns a Collection.
Run Code Online (Sandbox Code Playgroud)
但我注意到一个不一致的地方:注释器使用了rowList来自的属性NQueens.但是rowList(相反RowList)是一个私有变量(参见下面的片段).如果它应该通过内省推断出一个属性(来自它的getter和setter方法),那么它是不是应该拼写RowList为getRowList()?
问题: Java如何从getter方法推断(内省)属性名称(case和all)?
或者直接@ValueRangeFromSolutionProperty访问私有变量?
背景细节:From Queen.java,代表棋盘上的女王的类:
public class Queen extends AbstractPersistable {
....
@ValueRangeFromSolutionProperty(propertyName = "rowList")
public Row getRow() {
return row;
....
Run Code Online (Sandbox Code Playgroud)
从NQueens.java,@ValueRangeFromSolutionProperty获取它的属性的类来自:
public class NQueens extends AbstractPersistable implements …Run Code Online (Sandbox Code Playgroud) 我正在阅读文档中的矛盾内容.
一方面,这段经文似乎表明连续的计划变量是可能的:
计划值范围是计划变量的可能计划值的集合.该集合可以是离散的(例如,行1,2,3或4)或连续的(例如,在0.0和1.0之间的任何双倍).
另一方面,在定义计划变量时,必须ValueRangeProvider在字段上指定要用于值集的注释:
Solution实现具有返回Collection的方法.该集合中的任何值都是此计划变量的可能计划值.
这两个片段都在文档的相同部分(http://docs.jboss.org/drools/release/latest/optaplanner-docs/html_single/#d0e2518)
那么,这是什么?我可以使用full double作为我的计划变量,还是需要将其范围限制为特定值Collection?
看看实际的算法,我没有看到任何实际上适合优化连续变量的东西,所以我怀疑它是否可能,但是如果澄清并明确表示它会很好.
optimization rule-engine constraint-programming drools-planner optaplanner