在大型有限域上优化约束的一般方法?

时间:2012-01-08 18:56:26

标签: algorithm optimization

我有一个我一直在努力的约束问题,它有几个“有趣”的属性:

  • 域名庞大;基本约束将其降低到2 ^ 40到2 ^ 30左右,但如果没有......它很难进一步降低......
  • 解决方案的优化。没有单一的约束解决方案;我正在寻找基于一些复杂谓词的域中最适合的。

在寻找解决这个问题的方法时,我已经刷过了我的Erlang,Haskell和Prolog,但是这些语言还没有我正在寻找的高级谓词。我知道我的一些优化可能会降低搜索空间,人类可以相当快地仔细阅读这个领域,并对最佳答案做出非常好的猜测。 (该域名在十几个变量上被参数化;很容易选择离群值作为接近域中最佳值的可能候选者。)

我在这个问题中寻找的并不是处理这种搜索的神奇算法,而是对这个问题的回答:由于Prolog和Haskell不适合这个,所以哪种语言或库可能是更好的答案?我已经在Haskell中写了这个,但是在600万个项目的平凡限制搜索中,它甚至不能达到每秒一万次比较,也许这是因为Haskell不适合表达这些问题。

1 个答案:

答案 0 :(得分:0)

如果我没记错的话,Coq对约束的计算有很好的支持。至少,如果您的域可能被描述为正式系统,Coq将帮助将其作为代码写下来并执行基本计算。