OptaPlanner 是否支持连续变量的优化和约束?

2023-12-31

我正在阅读文档中矛盾的内容。

一方面,这段话似乎表明连续计划变量是可能的:

规划值范围是一个可能的规划值的集合 规划变量。该集合可以是离散的(例如第 1、2、3 行 或 4) 或连续(例如 0.0 和 1.0 之间的任何双精度值)。

另一方面,在定义计划变量时,您必须指定ValueRangeProvider用于值集的字段上的注释:

解决方案实现具有返回集合的方法。任何 该集合的价值是该集合的可能的规划价值 规划变量。

这两个片段都位于文档的同一部分(http://docs.jboss.org/drools/release/latest/optaplanner-docs/html_single/#d0e2518 http://docs.jboss.org/drools/release/latest/optaplanner-docs/html_single/#d0e2518)

那么,是哪一个呢?我可以使用完整的吗double作为我的计划变量,或者我是否需要将其范围限制为特定的值Collection?

看看提供的实际算法,我没有看到任何实际上适合优化连续变量的算法,所以我怀疑这是可能的,但最好能澄清并明确这一点。


我们正在努力完全支持连续变量。但目前(在 6.0.0.CR2 中)还没有得到很好的支持.

值范围确实可以是连续范围,但实际使用它们的管道尚不存在。我们最近取得了很好的进展,请参阅https://issues.jboss.org/browse/PLANNER-160 https://issues.jboss.org/browse/PLANNER-160.

其工作原理如下: 您将能够使用@ValueRangeProvider返回一个方法的注释ValueRange(代替Collection) too.

A ValueRange将是一个支持选择随机值、获取大小等的界面 我们将支持开箱即用的IntValueRange, DoubleValueRange, BigDecimalValueRange, ... (实现细节:我们将把那些返回 Collection 的方法改造为CollectionValueRange.)

然后 ValueSelector 实现将直接使用它。

至于优化连续变量的适宜性:

  • JIT 随机选择速度将非常快,并且非常节省内存。
  • 如果您有 NP 完全/NP 困难问题,那么 OptaPlanner 将是一个很好的选择。如果你只有连续变量(而不是单个离散变量),那么你的问题不太可能是 NP 完全的(除非你的约束反证了这一点),在这种情况下,你最好使用自定义的、手工制作的多项式算法(因为它不是 NP 完全的,所以有一个“简单”的解决方案)。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

OptaPlanner 是否支持连续变量的优化和约束? 的相关文章

随机推荐

  • Java的jps工具内部使用哪个API?

    我需要以编程方式重新创建 jps 工具的功能 我需要找出所有正在运行的 Java 进程及其 ID 以便我可以附加到该进程 类似于 JConsole 的做法 我认为 VirtualMachine API 会有帮助 但当我运行以下命令时没有得到
  • Laravel Blade:复选框将“空”值发送到数据库

    我不明白 选中时 我的复选框将 空 值发送回我的控制器 如果它在数据库中 它会返回检查 但是当我取消选中它 然后再次检查它时 我的表单发送一个 空 值我做错了什么 div class col div
  • 如何在 PowerShell 中通过 ::parsexact 解析日期时间?

    我在尝试使用 PowerShell 解析字符串并将其转换为 DateTime 格式时遇到问题 parseexact 有人能告诉我我哪里不好吗 这是我的代码 datetime parseexact 2018 05 07T15 19 17 83
  • Linq 存储过程问题 - 返回 int

    我正在尝试使用 Linq 调用存储过程 该存储过程在 SQL 中返回值很好 但是当我将其拖到 DBML 文件并尝试从我的代码中调用它时 它返回 找不到源类型 int 的查询模式的实现 未找到 选择 我查看了我拥有的其他线程和其他存储过程 出
  • Vagrant 配置程序上的 docker 守护进程版本是什么?

    我试图了解如果选择了 Docker 配置程序 Vagrant 在其虚拟机上安装的版本 我的具体情况 使用 box ubuntu trusty64 特别是 我希望它是一个固定版本 因为它必须反映我的暂存环境 不幸的是 在提供者的文件 http
  • React Native DuplicateError:重复的文件或模拟

    更新 xCode 后 我在一周内面临以下错误 我无法在设备上运行应用程序 我不认为问题出在 xcode 上 因为即使我尝试在 Android 设备上运行也会出现同样的问题 当我们使用重置选项运行 npm start 时会出现此问题 也会发生
  • 合并 RxJS/Angular 6 中相互依赖的不同 HTTP 调用

    我已经尝试找到这个答案有一段时间了 但作为 RxJS 和 Angular 2 的新手 我正在寻找一种方法来组合两个 HTTP GET 调用的结果 一旦一个呼叫完成 就必须根据该结果进行新的呼叫 第一次调用的结果将与第二次调用的结果合并 最好
  • Firefox 不显示 SVG

    我有一个使用 SVG 制作图像地图的页面 在 IE9 和 Chrome 中工作正常 但 FireFox 和 Opera 正在裁剪图像 尽管翻转仍然有效 该网站在这里 http www kollegetown com http www kol
  • 在文本框内放置一个按钮

    我正在尝试设计一个表单 在文本框中包含一个按钮 我希望该按钮位于文本框内 这就是我尝试的方法 div class row div class col sm 6 div class form group required div div di
  • SQL;仅计算每列中指定的值

    在 SQL 中 我有一个名为 answer 的列 其值可以是 1 或 2 我需要生成一个 SQL 查询来计算每个月 1 和 2 的数量 我有以下查询 但它不起作用 SELECT MONTH date YEAR date COUNT answ
  • - 自定义样式/css

    有没有办法制作
  • Elasticsearch 错误“引导检查失败”(绑定非环回地址)

    最近 安装Elasticsearch 7 3 2后 我发现服务器在绑定到localhost或127 0 0 1时工作正常 但我让它可供外部使用 即在特定的 IP 或 0 0 0 0 上 它引发了我的错误并停止了服务器 绑定或发布到非环回地址
  • 如何从命令行启动 Scala 方法?

    这个问题可能听起来有点愚蠢 但我不知道如何从命令行启动 Scala 方法 我编译了以下文件Test scala package example object Test def print println Hello World with s
  • 使用“LIMIT 1”是否可以加快主键查询速度?

    如果我有一个主键id我对密钥做了一个简单的查询 例如 SELECT id FROM myTable WHERE id X 它会找到一行然后停止查找 因为它是主键 还是最好告诉 mysql 通过使用来限制其选择LIMIT 1 例如 SELEC
  • 将图像发布到 REST API 并使用 Falcon 库收集数据的正确方法是什么?

    我尝试发布图像以通过 REST API 处理它 我使用 falcon 作为后端 但不知道如何发布和接收数据 这就是我目前发送文件的方式 img open img png rb r requests post http localhost 8
  • jQuery:全局异常处理程序[重复]

    这个问题在这里已经有答案了 可能的重复 JavaScript 异常处理 https stackoverflow com questions 205688 javascript exception handling 我有一个 Web 应用程序
  • 在 Windows 10 上使用 WinAPI SetWindowsHookExA 的 Python

    我正在尝试在 Windows 10 系统中使用 SetWindowsHookExA 在 python 中进行挂钩 我已经有了工作代码并且正确连接了 但我无法正确地将响应转换为密钥 我收到了 12 位数字的回复 但我在文档中没有看到任何有关它
  • PyAudio 响应式录音

    我在 PyAudio 网站上看到了用于录制固定长度录音的录音教程 但我想知道如何对非固定长度录音做同样的事情 基本上 我想创建按钮来开始和结束录制 但我还没有找到任何关于此事的信息 有什么想法吗 我不是在寻找替代库吗 最好是使用非阻塞的记录
  • 将基于Symfony 2.0的项目更新为Symfony 2.2

    我正在尝试将我用 Symfony 2 0 编写的项目更新为 Symfony 2 2 将源代码移至 2 2 项目结束config yml and security yml不兼容 有没有办法将 Symfony 2 0 项目正确迁移到 Symfo
  • OptaPlanner 是否支持连续变量的优化和约束?

    我正在阅读文档中矛盾的内容 一方面 这段话似乎表明连续计划变量是可能的 规划值范围是一个可能的规划值的集合 规划变量 该集合可以是离散的 例如第 1 2 3 行 或 4 或连续 例如 0 0 和 1 0 之间的任何双精度值 另一方面 在定义