首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >优化CLPFD性能(累积,global_cardinality)

优化CLPFD性能(累积,global_cardinality)
EN

Stack Overflow用户
提问于 2018-11-27 05:12:34
回答 1查看 97关注 0票数 6

我已经编写了一些谓词来解决大型调度问题,它们工作得很好,但我希望它们有更好的性能。我已经运行了profile/1,我看到的是与CLPFD相关的谓词占用了99%的时间。尤其是garbage_collect --它占用了37%的执行时间。

现在,我能做什么呢?我的代码并不是特别复杂,它使用了很多cumulative/2和一些global_cardinality/2,除此之外没什么特别的。我已经尝试了一些不同的labeling/1选项(ff,ffc,二等分),但没有区别(二等分实际上会让事情变得更糟)。我尝试过使用set_prolog_stack/2提高内存限制(全局限制、本地限制、全局min_free、本地min_free)。

还有什么我能做的吗?

有没有其他的cumulative/2global_cardinality/2实现可以有更好的性能呢?

EN

回答 1

Stack Overflow用户

发布于 2020-08-20 17:54:44

在没有任何代码和问题域的情况下,我所能建议的就是考虑添加冗余约束来进一步减少搜索空间。

有关有效解决方案属性的

  • 用户考虑因素可以建议冗余的constraints
  • More通用方法,例如。dual paper
  • Another Thesis方法是识别不需要的解决方案中的对称性,然后添加消除这种对称性的约束。也就是说,可以很容易地从另一个
    • 推导出另一个
    • 。它们在某些方面是“相似的”,例如
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53489138

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档