我正在努力学习Optaplanner。作为一个学习项目,我正在尝试实现一个非常基本和简单的程序,计算“幻方”。
基本上,我试图将“数字”S分配给行和列中定义的“框”ES。
很抱歉没有直接从源代码复制/粘贴,我的开发机器无法连接到互联网,所以我会尝试用手写下类的重要部分。
我的域结构如下:
@PlanningSolution MagicSquareSolution
//facts
List<Column> columnList
List<Row> rowList
List<Number> numberList
//entity
List<Box> boxList
@valueRangeProvider (id="numberRange")
getNumberList()
@PlanningEntityCollectionProperty
getBoxList
@PlanningEntity框
Column column
Row row
Number number // planningVariable
@PlanningVariable(valueRangeProviderRefs="{numberRange}")
getNumber
我正在使用一个简单的Java分数计算器类。
在我的求解器配置xml中,我使用了FIRST_FIT和first_non_deterirating_score。
问题是;在我得到的解决方案中,数字被重用,就像
7 5 3
1 5 9
7 5 3
在这里你可以看到虽然行和列的总和等于15;数字7、5、3被多次使用。如何强制规划变量的值范围中的所有值至少使用一次且仅使用一次。
多谢了。
阿基夫,
添加分数约束:
when
Box($n : number, $id : id)
Box(number == $n, $id > id)
then
// -1 hard
各位opatplanner用户, 我的规划问题是:获取遥感卫星星座的有效时间表。 @PlanningEntity: @PlanningVariable: 我的问题数据主要是这样的: Image_Strip: D1 Sat2 22-12-2015 11:02:24.051 D1 Sat1 22-12-2015 11:04:24.122 A2 Sat3 22-12-2015 11:06:24.172
我用增量java解决了optaPlanner的一个问题,其中有一个规划变量和一个规划实体,但是现在在我们的项目中有很多规划变量的需求,比如我们要找到最好的房间(容量,isAC等),汽车(totalSeatsLeft,isAC等),我们不知道有多少资源,因为我们每天都需要根据用户的需求增加更多的资源,比如会议室设施等,所以给我一些想法,这样我们就可以为optaPlanner做一个域。多谢了。
我正在研究来自OptaPlanner的示例用例。我也找不到任何类似的例子,可以在一个规划实体中求解多个规划变量。例如,在护士名册中,一个轮班的每个可能需要多个分配的。在这种情况下,如何利用planner和编写规则呢?
我是Optaplanner的新手,我一直在考虑将VRP扩展到一个不同的问题空间。我用的是6.1.0-final。这是一个很难计算的问题,但下面是: 规划实体-装运(扩展Standstill),由运输商(即货船)锚定规划变量-终端(货物目的地),当然隐含运输商(作为VRP示例中的Vehicle这样的影子变量) 在这个路径问题中,货物直接运输到一个终端,然后再运回工厂。即一个运输机服务于一个终点站,然
我正在尝试限制可以与特定实体关联的计划变量。在 OptaPlanner 手册的第 4.3.4.2.2 节中,显示了一个示例,但不清楚应该如何生成变量列表。列表应包含哪些内容?这些计划变量本身吗?它们可以是副本吗?如果允许复制,那么如何比较它们?如果不是,则在定义计划实体时计划变量不在范围内 - 我意识到这是一个 Java 问题,但如何从计划实体定义访问计划变量列表并不明显。 这是早期版本不支持的6
在制定时间表时,你必须遵守法律(硬性要求),该法律规定,作为一名员工,你每七天只能工作一定的时间。它没有说日历周的原因是在创建时间表时为雇主提供一些回旋空间(通常是提前4-16周)。一旦设置了此计划期的开始日期,在您想要进行完整的重新规划之前,该日期无法更改,但您需要通知员工。所以它可以被视为一个变量,直到你接受了时间表,然后它就变成了一个常数。当然,这是每个员工的个人情况。该开始日期将由您的第一