当前位置: 首页 > 知识库问答 >
问题:

二进制/布尔规划变量的Changemove-Optaplanner

范志勇
2023-03-14

我的计划变量是布尔的。

我只想使用changeMoves,我想使用changeMove的笛卡尔积来进行更粗略的移动。这在我的计划程序配置中:

    <unionMoveSelector>
        <changeMoveSelector/>
        <cartesianProductMoveSelector>
            <changeMoveSelector/>
            <changeMoveSelector/>
            <changeMoveSelector/>
            <changeMoveSelector/>
            <changeMoveSelector/>
        </cartesianProductMoveSelector>
    </unionMoveSelector>        

我怎样才能避免有一半的时间“搬不动”?

此刻,我经常有一个例子:

Move index (5) not doable, ignoring move (... {false -> false})

共有1个答案

况承福
2023-03-14

解决方法(未经测试--如果有效请在此告诉我):在 上添加movefilter来过滤不可执行的移动。这样他们就不会进入笛卡尔选择器,这可能会提高你的效率。

如果这个变通方法有效,它也证明了我们应该如何修复规划者-589上游。

 类似资料:
  • 各位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

  • 在制定时间表时,你必须遵守法律(硬性要求),该法律规定,作为一名员工,你每七天只能工作一定的时间。它没有说日历周的原因是在创建时间表时为雇主提供一些回旋空间(通常是提前4-16周)。一旦设置了此计划期的开始日期,在您想要进行完整的重新规划之前,该日期无法更改,但您需要通知员工。所以它可以被视为一个变量,直到你接受了时间表,然后它就变成了一个常数。当然,这是每个员工的个人情况。该开始日期将由您的第一

  • 照例,每个类型的值都有一个相应类型的变量。C++中的布尔类型叫做bool。布尔变量的使用和其他类型类似,如: bool fred; fred = true; bool testResult = false; 第一行是一个简单的变量声明;第二行是个赋值;第三行是声明和赋值的组合,叫做初始化。 前面提到过,比较操作符的结果是布尔值,所以可以将结果保存在布尔变量中,如: bool evenFlag =

  • 我用增量java解决了optaPlanner的一个问题,其中有一个规划变量和一个规划实体,但是现在在我们的项目中有很多规划变量的需求,比如我们要找到最好的房间(容量,isAC等),汽车(totalSeatsLeft,isAC等),我们不知道有多少资源,因为我们每天都需要根据用户的需求增加更多的资源,比如会议室设施等,所以给我一些想法,这样我们就可以为optaPlanner做一个域。多谢了。

  • 我正在研究来自OptaPlanner的示例用例。我也找不到任何类似的例子,可以在一个规划实体中求解多个规划变量。例如,在护士名册中,一个轮班的每个可能需要多个分配的。在这种情况下,如何利用planner和编写规则呢?

  • 问题内容: 我声明一个布尔变量。例如, 现在,如果我执行以下代码段: 我懂了。好吧,我知道它很明显,但是我需要知道其背后的原因。 问题答案: 当您评估对象的布尔值时,Java会将其取消装箱(自装箱功能,自1.5开始)。因此,实际的代码是:。然后它抛出。对于任何装箱的值,将空对象拆箱将引发此异常。 在1.5之前,您必须手动将值拆箱:所以它更明显(也更加冗长:)

  • 如何在JavaScript中翻转布尔变量的值,而不必两次包含变量名称?所以呢 没有写两次。

  • If set to true, config file values of on/true/yes and off/false/no get converted to boolean values automatically. This way you can use the values in the template like so: {if #foobar#} ... {/if}. If f