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

用于调度几何形态和面积的OptaPlanner

扶开诚
2023-03-14

我想使用OptaPlanner来安排最好在地图上表示为区域的任务。基本上,我在地图上有固定数量的正方形和多个具有不同优先级的圆圈,我需要优化正方形的位置以与圆圈相交,以优化由正方形相交的圆圈的优先级分数。

我的问题是决定哪些对象应该是规划实体,哪些应该是问题事实。OptaPlanner留档在这里声明

在多对一关系中,规划实体类通常是多边形。引用另一方的属性是规划变量。例如在员工名册中:规划实体类是ShiftAssignment,而不是员工,规划变量是ShiftAssignment.get员工(),因为一个员工有多个ShiftAssignment,但一个ShiftAssignment只有一个员工。

这似乎表明Circle将是规划实体,因为许多圆圈可以由单个Square激活。因此规划变量将是Circle.activatedBy()。然而,在稍后的留档中,它指出

规划实体是在求解过程中更改的JavaBean(POJO)。

圆圈固定在二维平面上——改变位置的是方块本身。此外,如果一个圆远离其他圆,或者优先级足够低,它很可能会被取消激活。在这种情况下,Circle.activatedBy()根本不会返回特定的方块。

我以前从未使用过optaplanner,因此我希望您能解释一下使用哪一种以及为什么。我也不太确定如何开始表示所有这些对象甚至都位于的2d平面,尽管我一直在研究GeoJSON和其他解决方案,以确定两个多边形是否相交。很可能像SquarePosition这样的东西是规划实体中最好的,尽管我不认为这对于OptaPlanner是可能的,因为一个多边形在2d平面上有无限多个潜在位置。

我的具体问题是:在这种情况下,规划实体注释会在正方形上,而规划变量是正方形的X和Y坐标吗?如果是这样,为正方形创建移动的最佳方法是什么?在这种情况下,每个圆都有一个优先级分数,如果正方形与一个圆相交,它会将其分数添加到总分中。我想优化最高分数,所以我在考虑可能让正方形“轨道”围绕最高优先级的圆,看看它可能与其他哪些圆相交,然后移动到下一个优先级圆并重复。不过,这听起来一点也不理想,据我所知,其他精彩的OptaPlanner留档都没有涵盖这些动作。

共有1个答案

颛孙天宇
2023-03-14

OptaPlanner 6.5还不能优雅地处理2D表面或3D体积包装。在未来的版本中,我们将支持它。

话虽如此,几年前我确实使用OptaPlanner破解了一个3D卷打包器来处理1m物体IIRC:打包圣诞老人的雪橇(这里是龙)。

带多边形的二维曲面填充是当前最前沿的研究:请查找CODeS group的论文,特别是Tony Wauters撰写的论文。

 类似资料:
  • https://stackoverflow.com/a/4682656/7924630这是一个非常有用的答案,帮助我解决这个问题 出于某种原因,这返回的区域值很小,我不明白为什么。例如,我在一个矩形区域上测试了这个。面积应该约为45平方米,但它返回0.0137平方米。我尝试了其他的实现,但没有找到任何对本机JavaScript有用的东西。

  • 我想计算一个随机多边形的面积和一个随机多面体的体积。谷歌搜索让我找到了镶嵌和蒙特卡罗方法。然而,我只感兴趣的是一个精确的计算,而不是通过收敛的近似值。可能有人知道确切的公式,或有一个网页的链接,这样的公式被描述? 对于奇异多边形或多面体,不需要用到这些公式。如果它们适用于简单的(不相交的边)凸形状,我已经很满意了。我只想使用一个顶点坐标列表或(可能按特定顺序排列)。 我能够阅读、、和。因此,用这些

  • 我试图解决的问题是: 给定平面上可以以圆为中心的M个点的集合和N个需要被圆覆盖的线段的集合,求线段的最小面积圆覆盖。也就是说,求圆和中心(从M个点中选择)的半径,使得所有N条线段都被覆盖,圆的总面积最小化。 任何指向论文、代码或近似算法的指针都会很棒。

  • 本文向大家介绍java用接口、多态、继承、类计算三角形和矩形周长及面积的方法,包括了java用接口、多态、继承、类计算三角形和矩形周长及面积的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了java用接口、多态、继承、类计算三角形和矩形周长及面积的方法。分享给大家供大家参考。具体如下: 定义接口规范: 希望本文所述对大家的java程序设计有所帮助。

  • 我有一个web服务,它对某个作业进行动态调度。job是一个Java类,它扩展了Quartz job接口 我还公开了一个API,它接收一个jobId、cron表达式,并调度一个新的StartJob(它将具有接收到的ID)。下面是我的Spring配置: 我错过了什么?这样的配置正确吗?从工厂中检索到的作业和触发器是同一个类的新实例还是同一个类实例?

  • 我正在使用postgresql、hibernate spatial和postgis,希望能够使用SqlQuery检索几何体对象。 然而,每当我试图查询点、多边形或几何体时,例如 我得到例外: hibernate.cfg.xml: 这不是hibernate spatial产品的一部分,还是我做错了什么? 谢谢你,保罗。 相关库/版本: Hibernate核心-3.6.0.最终.jar postgre