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

Choco Solver——在运行时间过长的情况下,如何获得最接近的解决方案(满足大多数约束)?

吴经略
2023-03-14

在Choco求解器中,在寻找解决方案可能需要太长时间的情况下,如何获得最接近的解决方案(满足迄今为止最多约束的解决方案,但可能无法满足所有约束)?

例如,如果我在运行模型的中间。getSolver()。solve()是一个解决方案,我已经决定,尽管找不到解决方案,但它需要足够长的时间,我如何才能输出到目前为止最接近的解决方案?

共有1个答案

苏涵润
2023-03-14

看来我第一次没有读好问题。

你可以改变你的模型,将硬约束转化为软约束,这意味着你可以将你的满意度问题转化为优化问题,你可以使用约束具体化。

 类似资料:
  • 问题内容: 我正在研究分配液体的应用程序。这是数据库的组织 罐: canister_id {PK} Ingredient_id {FK} 成分: Ingredient_id {PK} 成分名称 喝: Drink_id {PK} 饮料名称 成分: instance_id {PK} Drink_id {FK} Ingredient_id {FK} 数量 每种饮料都有多种成分(保存在Ingredient

  • 问题内容: 是否可以获取旧的运行过程的开始时间?如果今天不是开始日期,似乎会报告日期(而不是时间),如果今年不是开始日期,则只会报告日期。旧工艺会永远失去精度吗? 问题答案: 您可以指定格式器并使用,例如以下命令: 上面的命令将输出所有进程,并带有格式化程序以获取PID,命令运行以及启动日期和时间。 示例(从Debian / Jessie命令行) 您可以阅读的联机帮助页或查看Opengroup的其

  • 问题内容: 我正在使用构建Web POST参数的方法,但是有一些值仅在它们不存在的情况下才想添加。 效果很好,但是如果我将变量设为可选,如何防止将其添加到参数中?像这样的东西(伪代码): 我希望这已经足够清楚了,有人知道如何解决吗? 问题答案: 创建初始字母后,您必须单独添加密钥: Python没有语法将键定义为条件键;如果您已经按顺序拥有所有内容,则可以使用dict理解: 但这不是很可读。 另一

  • 问题内容: 在Go中,对于time.Now()得到的时间戳记以 m = xx.xxxx … 结尾,这意味着 m ? 如何在打印时将其删除,或者是否有其他方法或功能来获取没有 m的* 时间戳 * 例如:-for time.Now()获取输出=> 2009-11-10 23:00:00 +0000 UTC m = + 0.000000001 但是我需要这样的输出=> 2009-11-10 23:00:

  • 我在espresso测试中工作,我需要以下依赖: 对于recycler-view来完成测试,但是当我添加这个依赖项时,我得到了这个错误: 原因:org.gradle.api.gradleException:找不到满足版本>constraints:Dependency path“MyProject:app:unspecified”-->>“com.google.android.material:ma

  • 我在学术论文中被问到过这个问题。请告诉我答案? 假设我们有一个算法,,在二维数组中查找元素x。算法 循环访问 的行,并在每个行上调用算法 直到找到 或搜索了 的所有行。 这个算法最坏的运行时间是多少 一个。如果每行中的元素都已排序? (二)如果每行中的元素未排序?